E-Business Collaborations
The development of web services technology and its use for integrating widely spread legacy applications for a multi-location company was not sufficient. Something more was needed: the integration (composition) of web services deployed by different companies. A typical business transaction requires the use of diverse web services. Let us take an example of a travel booking. When you use a website for booking your flights, you are using the service provided by the website and also the service provided by the airline. You may even request the lowest quote from different airlines during this transaction. So, you will be using the services offered by several companies in a single business transaction. This kind of composition of web services introduces many more considerations. The participating web services (partners) must collaborate with other participants and a coordinator to perform the desired business operation. The operation may be to achieve a simple buyer-seller transaction or a complex supply chain transaction. All such transactions require a workflow to be defined between different collaborating parties. Defining and executing such workflows is called orchestration. In this book, you will learn the emerging standards for defining the workflows for e-business collaborations.
When two companies collaborate and allow the composition of their services into an aggregate service to be invoked by yet another partner (a client), we need to implement proper coordination for all involved activities. A client determines the workflow for the execution of different services. A typical business activity for travel booking is depicted in the following figure:
Clients interested in making an airline reservation at the cheapest rate log on to a travel agent’s site. They fill in the request for travel, specifying the origin, destination, and proposed travel dates. The travel agent’s service now passes on this information to various airlines to obtain the availability of seats and their best quotes. The availability, along with the lowest fare offer is then communicated to the clients. Clearly, such business activity requires collaboration between diverse parties.
We need a proper standardized language for describing such a workflow. As the workflow requires transport of several messages between coordinating partners, we need to establish an infrastructure for the reliable transmission of messages. The messages must be secured and their delivery should be guaranteed. The client may initiate a business process as a part of a transaction that may involve diverse partners. Such transactions must meet the usual requirements of a DTC (Distributed Transaction Control); this is discussed later in depth. As the messaging is XML-based, we need to create standards for transporting transaction contexts through an XML document, which is purely text based. The same thing applies even to security context—such context must be transported through a text-based document. Note that typically these contexts are binary and not text based.
Having seen the need for orchestrating web services to achieve e-business collaborations, let us first look at the various standards defined for such collaborations. The following diagram positions the various standards in the stack:
At the bottom of the stack, we have various specifications for component architecture. These may be Microsoft’s .NET/COM+ architecture, Sun’s Java EE architecture, or OMG’s CORBA architecture. On top of the component architecture, we have specifications for creating web services. This consists of mainly SOAP and WSDL. Above this, we have several new specifications to support the integration and composition of web services. This chapter discusses all such new specifications, why they are needed, and the purpose they satisfy. At the top we have BPEL, which is the subject of this book. In this section, we will describe the various specifications that will be discussed in the rest of this chapter:
- WS-Security: Addresses the transport of security context.
- WS-Coordination: Defines a framework for achieving coordination between partners.
- Web Services Transaction Specifications: Specifies the standard for creating a distributed transaction involving multiple web services. This consists of.
- WS-AtomicTransaction: Specification for creating Atomic transactions that typically last for a short duration.
- WS-BusinessActivity: Specifies the standard for creating long duration distributed transactions.
- WS-Reliable Messaging: Specifies standards for reliable delivery of messages between partners.
- WS-Addressing: Defines the endpoint of communication.
- WS-Inspection: Defines specifications used for dynamic discovery of service description documents.
- WS-Policy: Specifies the policy of a web service provider for the benefit of service consumers.
- WS-Eventing: Defines event sources and consumers in the event model.