You can use existing Web services to construct more complex Web services. It involves a certain amount of choreography, however. This article gets you started. It is excerpted from chapter 12 of Building Web Services with Java: Making sense of XML, SOAP, WSDL, and UDDI, written by Steve Graham et al. (Sams; ISBN: 0672326418).
Orchestrating Web Services - SkatesTown Requirements (Page 3 of 4 )
SkatesTown's business has grown over time, and the Web services it provides have become increasingly complex. The time has come to break up hard-wired service implementations into more fine-grained and manageable pieces. Processes expressed in a business process language can be changed more easily, which gives SkatesTown more flexibility and the agility to quickly react to changing business requirements.
Up to this point, SkatesTown has offered Web services that allow customers to submit purchase orders. These are now extended with a new service that lets customers cancel running purchase order requests.
Whenever SkatesTown receives purchase order requests, it initiates subsequent processing steps before a response is returned to the customer. These steps include SkatesTown-internal processing such as order request validation, stock management, delivery, and external interactions with the supplier.
During processing of a purchase order, three parties in different roles are participating in SkatesTown's overall business process:
The customer, acting as the buyer. The customer may submit order requests and may now in addition cancel orders.
SkatesTown itself, acting as the seller. The purchase order process that receives a customer order interacts with internal applications and optionally with services provided by a supplier.
The supplier. When SkatesTown can't fulfill a purchase order because it runs out of stock, an additional interaction with the supplier is initiated in order to replenish the item(s).
Figure 12.1 provides a high-level outline of SkatesTown's overall business process. Interactions with the business partners are indicated by lanes that show, from left to right, the communication with the customer, within SkatesTown itself, and with the supplier, respectively.
Figure 12.1 Outline of SkatesTown's purchase order process
We'll now examine more details of BPEL and give some example snippets for important elements of WSDL interfaces and BPEL processes. Finally, we'll explain how SkatesTown implements its business process with BPEL.