Up to this point, we have focused on using JDO to write applications in one- and two-tier environments. We now turn to distributed environments, with an emphasis on writing applications in which your JDO application code runs in a server.
The two most popular server environments in which Java is the implementation language for applications are the web server and the application server. A web server provides a web container in which servlets and JSP pages execute. Typically, a web server also provides support for serving static web content (HTML, GIF, and JPEG files, etc.) in addition to dynamic content. Both web servers and application servers support remote clients using a variety of protocols, including HTTP (Hypertext Transfer Protocol), HTTPS (HyperText Transfer Protocol over SSL), and SOAP (Simple Object Access Protocol). In addition, application servers support CORBA IIOP/RMI (Common Object Request Broker Architecture Internet Inter-Orb Protocol/Remote Method Invocation) protocols. We cover application servers in more detail in Chapter 17.
With either of these types of servers, the implementation of remote services is opaque to the client; the services could be implemented by any kind of host running any language that supports the protocols. JDO fits into these environments to provide access to persistent data for applications that implement dynamic content.