The software industry has started a major overhaul of concepts and technologies to leverage the Web to build “connected systems”. This revolution started in 1997 with XML specification which enabled the exchange of information in a technology neutral way over the Web. It was quickly followed by three major specifications: Simple Object Access Protocol (SOAP), the Web Service Definition Language (WSDL), and the Universal Description Discovery and Integration specification (UDDI) which defined a technology and transport neutral protocol to exchange XML documents. An interface definition language describes the interfaces of connected agents and a registry discovers the existence of agents, the service they provided and their technical capabilities. Today the Web services stack has grown dramatically, with dozens of specifications that form the technology basis of Service Oriented Architectures (SOA).
Understanding service orientation
Since 2003 the industry has marketed new design principles for modular enterprise systems under the name of SOA and based on platform neutral open standards referred to as the Web services technology stack. The aim of service orientation is to organize software or hardware assets into autonomous software agents that interact as peers by exchanging messages.
These agents exchange messages to initiate activities, send event notifications, synchronize their state, request and send information. They expose interfaces that are specified by a contract definition. The unit of this contract is called a service. Service definitions specify all the operations that a service can handle. An operation materializes message exchanges. Service interfaces contain outbound operations in addition to the inbound operations traditionally found in object oriented interfaces.
Services are composable and generally designed to be re-used in several contexts, even in contexts unknown at design time. Services may encapsulate systems of record, computations or even, user-driven activities. Service granularity may be as small as a database insert or as large as managing the lifecycle of a purchase order.
SOAs are well suited to adapt to changing business conditions or resolve new problems and support the development of new business opportunities by exposing existing assets to customers or partners.
SAP is creating a new application model based on the service orientation concepts and technologies as the foundation of the Enterprise Services Architecture offering information, activity and transaction composability – a model commonly called the Composite Application Model. Combined with Web services, composite applications can deliver functionality which is crossing technology or even organization boundaries.
The IT landscape is diverse and based on technologies spanning decades. Therefore a Composite Application Model cannot exist without standards adopted broadly by all technology vendors to achieve interoperability and portability. Web services technologies are the answer of the software industry to these requirements. We present here a new categorization and architecture of the Web services standards based on message exchanged, services provided and activities performed by software agents.
The main goal of creating standards for exchanging messages in the Web services stack was to remain independent of the transport technologies like HTTP, JMS, or RMI and to allow mediators which understand at least parts of the message to make intelligent decisions about it. In addition, SOAP was designed to be extensible and enable task specific protocols to be layered within the protocol itself. For instance, transaction protocol, reliable exchange protocols, authentication or signature elements can be layered within the SOAP header of an application level message.
Contracts and directory
Contracts, the second layer of the Web services architecture, define the possible interactions with a software agent. The unit of contract definition is called a “service”. Software agents provide services and expose service interfaces which are defined with WSDL. Service contracts definitions specify the message exchanges that a software agent will carry out to perform a job. These message exchanges are packaged as “operations” and implement particular exchange patterns of WSDL 2.0 such as request/response pattern (a.k.a in-out pattern).
New specifications have complemented WSDL by adding the notion of “event”, called WS-Notification and “resources” which are entities managed by services of the WS-Resource Framework. The UDDI specification provides the interface definition for a service registry where service consumers may be able to discover services based on certain features within a classification, and fetch their interface description to be able to invoke them.
The activity layer is characteristic to service orientation. Up to now, distributed systems were built to distribute the processing load over a cluster of physically different but logically equivalent machines for scalability and fail-over. Service orientation addresses a new class of problems by enabling specialized software agents to perform work collaboratively, in particular enabling the assembly of composite applications where users can leverage functionality available in various systems to perform complex activities.
An activity often requires a context, especially when it is performed by a series of autonomous agents since the context may not be owned by any single agent. Similarly it may require an activation service to manage the lifecycle of activities. Finally, activities may require coordinators that facilitate the communication or handle non-business related services such as routing or transaction. Orchestrated and choreographed activities are the two main categories performed by autonomous agents.
WS-BPEL (Business Process Execution Language) is the standard that has been defined for specifying orchestration definitions. Choreographed activities do not rely on any particular agent to advance the state of the activity. The mere interactions of all agents participating in the activity advance the state of this activity. The Web Services Choreography Definition Language (WS-CDL) supports the definition of choreographed activities.
Web services architecture
The family of policy related standards and technologies of the semantic Web represents a major step for adding new semantics to Web services descriptions. They can be used in contexts like security, transaction, orchestration or choreography to match automatically the capabilities of services that participate in the same activity.
SOA has already started a major evolution enabling the development of connected systems and composite applications by a decentralized resource management model. SOA is poised to create new opportunities to innovate at the business level and better agility with much less technology constraints.