The Web Services stack of standards has grown rapidly in the last three years from its original form as SOAP, WSDL and UDDI specifications. With it, the Web has matured to be an open distributed computing platform with which we can build Service Oriented Architectures and Composite Applications. Within this platform, software agents may (Figure 1):
Provide or consume services
Perform cooperatively units of work
A software agent is any autonomous process capable of exchanging messages over the web. A service is a particular software agent which message exchanges are composed in operations as part of an interface. Message exchanges and operation invocations may be part of a unit of work performed by software agents. Instances of this unit of work have a precise lifecycle and often have a context. Some agents may be capable of performing multiple instances of the same unit of work type simultaneously. Service compositions represent a particular type of unit of work.
Figure 1. Taxonomy of message exchanges
All standards developed as part of the Web Services stack fall in one of these three categories (Figure 2). At the message exchange level, the message exchange protocol (SOAP) is layered on top of transport and syntax specifications. This protocol can be composed with other specifications for reliable and/or secure message exchanges. The WS-Addressing specification standardizes addressing mechanisms for the protocol.
At the service level, the service definition specification (WSDL) can be composed with other specifications to add the concepts of Event and Resource. A directory (UDDI) may be used to store, search and retrieve service definitions.
The foundation of the unit of work level is composed of Context, Lifecycle and optionally Coordination services for a particular type of unit of work. The most basic type is a transaction (WS-AT, WS-BA). WS-BPEL provides more sophisticated capabilities and can be used to specify service compositions. Finally, WS-CDL has the capability to describe any message exchanges performed by an arbitrary number of participants. WS-CDL is a choreography language as opposed to WS-BPEL which is an orchestration language. WS-BPEL is executable, WS-CDL is not. In a choreography, it is the mere exchange of messages by agents which advances the state of the choreography. The decision process by which an agent decides to send a message is hidden from the choreography definition. In an orchestration, an engine decides what to do next when it receives or sends a message, based on an orchestration definition. A choreography definition may be used by each participant to configure the validation of the current message exchange instead of hard coding it.
Last but not least, the WS- RemotePortlets specification provides a service interface to user activities.
Figure 2. WS-* Standards Architecture
The architecture is complemented by security (WS-Security, SAML , ), management (WS-DM) and metadata (WS-Policy) specifications.
Overall, these specifications have enabled the web to become a powerful distributed computing platform.
SAP is actively participating in and leading the design of many of these specifications and takes into consideration their integration when designing its products.