Table of Contents

WS-DL

WS-Addressing

Service Orientation vs Object Orientation

Relationship between Web Services and Business Process Management Systems

Articles

Resources


The Web Services Stack

Service Oriented Architecture, SOA, Web Services, WSDL, UDDI, WS-CHOR, BPEL, WS-CAF

There are now literally dozens of web services related recommendations, specifications, notes, proposals or submissions.

Here is how ebPML.org views the web service architecture:

At the foundation of services or web services is a message. A service is typically composed of specific message exchanges. Services can be used outside a Service Oriented Architecture. However, when they are used within a SOA, one must distinguish "service fabric" (a.k.a service grid) related specifications and specifications that make it easier for a service to participate in a SOA. UDDI for instance is essential to a SOA, since it allow a very loose coupling between services.

My point of view is BPEL, touted as an orchestration language, is (no more and no less) providing an execution model for the long running behavior of a service within a service grid. Orchestration definitions may participate in different choreographies at the grid level.

Oracle sees BPEL and WS-Choreography as complementary.

 

WS-DL

This is a presentation from Jean-Jacques Moreau about SOAP 1.2 and WSDL 2.0 (April 2004)

WSDL 1.0 (Web Service Description Language) is an XML grammar. It provides a formal framework to describe services in terms of protocols, servers, ports, and operations which can be invoked. It also includes input/output document formats, and the exceptions which can be thrown by the service. WSDL is a joint proposal between Microsoft and IBM which is now being worked on, like SOAP, by the W3C as XMLP. WSDL is technology independent however, the specification provides a SOAP binding which is the most natural technology to use to implement Web Services. The fundamental semantics of WSDL are as follows:

  •  message: A message is a potentially multi-part package of documents and context data that constitutes the unit of communication with a web service. Each part in a message is defined using some well-defined type system. The type system may be abstract and the wire format of the messages may not be defined by the type. Messages are in this sense abstract.

  •  operation: An operation is a basic interaction pattern supported by a web service. These are either one way messages or request-response message pairs, with optional fault messages. Operations are defined in terms of incoming or outgoing messages with respect to the implementation of the service. Messages may be synchronous or asynchronous.

  • portType: A port type is a named set of abstract operations, defined using abstract message types. For instance, in Java an operation would be a method, and a portType would be an interface.

  • binding: A binding defines message format and protocol details for operations and messages defined by a particular port type. There may be multiple bindings for a given port type. The binding for a message defines the wire form of a message, typically in the context of a specific message format standard such as SOAP.

  • port: A port is an externally visible target for a set of operations supported by a web service. A port minimally specifies a transport end point at which a binding is deployed.

  • service: A (web) service is a group of related ports.

 These relationships can be summarized in the class diagram below:

There are four basic types of operations, which are relative to the request initiator or the service provider, which are summarized in the diagram below:

 

Relationship between Operations and BPMS Units of Work

An operation of a web service is a perfect match with the unit of work (a.k.a. activity or action) of a Business Process Management System: operations uses "documents" as input or output. Operations, like most activities of a business process, may be asynchronous. Operations are supported by an abstract definition and various bindings. Consequently, a business process may be specified as a sequence of operation invocations:

A business process may itself be wrapped as an operation as part of a service. It is initiated with an incoming message (a one way operation) and it may, as a result of the process execution, return an outgoing message (a notification):

We have chosen a basic approach to illustrate the relationship between an activity and an operation in the diagrams shown above. There is more to the relationship of messages to a business process definition (as we will see in the next sections). A BPMS metamodel, which deals with the way to bring together message flow, data flow, and control flow, is still pretty much a work in progress. BPML, XLANG, and WSFL provide their own approach to that problem.  

Articles

WebServices Oriented Architecture, By James R. Borck, InfoWorld, May 2001

Vitria's CTO explains the impact of Web services on application integration, InfoWorld, January 2002

Barriers to Web Services Adoption, Neil Macehiter