Chapter 5 Client Design
207
messages delivered from the JMS queue. When one arrives, the bean retrieves the
message and initiates the purchase order processing workflow. The purchase order
is processed asynchronously while the Web service receives other purchase
orders.
In this example, the workflow consists of three additional stages performed by
separate Web services: a credit card charging service, a shipping service, and a
service that sends an order confirmation. The message driven bean aggregates the
three workflow stages. Other systems within an organization may provide these
services and they may be shared by many applications.
5.2.2 Designing J2SE Clients
Unlike the J2EE environment, developers of non J2EE clients are responsible for
much of the underlying work to look up a service and to create and maintain
instances of classes that access the service. Since they cannot rely on a container,
these developers must create and manage their own services and ensure the avail
ability of all runtime environments needed to access the Web services.
J2SE clients, such as desktop applications developed using the Swing API,
have the capability to do more processing and state management than other cli
ents. This type of application client can provide a rich GUI application develop
ment environment that includes document editing and graphical manipulation.
However, there are some points that should be kept in mind when considering
J2SE clients:
Long running applications Using J2SE is particularly good for Web service
clients that run for extended periods of time. Because these applications run for
long periods, developers must consider that both the client and the Web service
may need to maintain the state of at least some of the data. It is possible to em
bed conversational state within each method invocation, if required by the ser
vice's use case.
Using a rich graphical user interface (GUI) for complex data J2SE clients can
provide users with a rich view of data. Such a rich interface might permit a user
to navigate and modify offline a large set of data returned by a service. The cli
ent can later update the Web service with any changes to the data.
Requiring only intermittent network access J2SE client can use Web services
without needing to maintain continuous network access, relieving some of the
New Page 1