When you need the fast and full-featured user interface of desktop client-server applications, you can partition your application so that a portion of itincluding all or part of the user interface logicruns in Java directly on the client. Client-server communication is handled by WebObjects. WebObjects applications that are partitioned in this way are known as Java Client applications.
Java Client distributes the objects of your WebObjects application between the application server and one or more clientstypically Java applications. It is based on a distributed multitier client-server architecture where processing duties are divided between a client, an application server, a database server, and a Web server. With a Java Client application, you can partition business objects containing business logic and data into a client side and a server side. This partitioning can improve performance and at the same time help to secure legacy data and business rules.
Figure 2-3 illustrates a Java Client application in which the client portion is running as an application installed on the users computer. Java Client applications, just like Web applications, can communicate with the application server using HTTP requests. In addition, Java Client passes objects between a portion of your application residing on the users computer and the portion of your application that remains on the application server.
Figure 2-3 Java Client applications in action
Java Client allows your application to look and feel like a traditional desktop application and still take full advantage of the power of WebObjects.
For more information on desktop applications, see Desktop Applications.