The SOAP Service Description Language: A High Level Overview
The SOAP Service Description Language (SSDL) is a SOAP-centric contract description language for Web Services. It is meant as a means for exploring ideas in the areas of contract and protocol description and Web Services implementations using message-oriented programming abstractions.
SOAP is the standard message transfer protocol for Web Services. However, the default description language for Web Services (WSDL) does not explicitly target SOAP but, instead, provides a generic framework for the description of network-exposed software artefacts. The work on SSDL aims to investigate the advantages/disadvantages of Web Services description when SOAP is assumed from the outset compared to the transfer-independent approach of WSDL. The use of formal models for describing message-based interactions is also a goal for SSDL. Finally, this work aims to demonstrate the benefits of focusing on message-orientation when architecting, designing, and building Web Services rather than on the interface and remote procedure call abstractions.
The SOAP Service Description Language provides the base framework for a range of protocol description frameworks which at one end of the spectrum can be a simpler, SOAP-focussed, direct replacement for WSDL MEPs while at the other end of the spectrum can enable formal validation and reasoning about the protocols that a Web Service supports.
The frameworks are componentised in a similar way to the WS-Policy suite of specifications, with a base SSDL framework providing the fundamental protocol building blocks for describing messages while other specifications utilise those building blocks to describe the way in which the messages participate in the protocols that a Web Service supports. This is illustrated in Figure 1.
Figure 1 - The SSDL Suite of Specifications
Four protocol description frameworks are provided with the base SSDL specification but it is expected that others will be implemented to meet different needs. The protocol description frameworks provided with the initial release of SSDL 1.0 are:
SSDL v1.0 and v1.0 versions of four protocol frameworks have now been publicly released. In addition, the originators of the specifications have developed next-generation tool support (currently available only on the .NET 2.0 beta platform) which enables SSDL contracts to be consumed and appropriate code to be generated which can be used for the implementation of Web Services or communication with remote Web Services. The tooling does not try to abstract Web Services as objects and message exchanges as method calls – the APIs and programming abstractions presented to developers expose programmatic representations of messages to the user code via events for incoming messages, and provides methods for the explicit sending of messages, which are represented as objects, for outgoing messages.
While these specifications have been reviewed in private by a number of distributed systems researchers and practitioners, SSDL has not yet been submitted for public review. With the public release of SSDL v1.0 we are explicitly soliciting feedback from the community on the strengths, weaknesses, and general utility of the approach.
SSDL was a collaborative effort by a number of researchers and practitioners worldwide. The central point of contact for the SSDL community is via the ssdl.org web site, at http://www.ssdl.org. For further details please contact Jim Webber (firstname.lastname@example.org) and Savas Parastatidis (email@example.com).
The following people have contributed to the SSDL work:
The authors would like to thank Alan Fekete (School of Information Technologies, University of Sydney, Australia), Surya Nepal (CSIRO Information and Communication Technology Centre, CSIRO, Australia), and Paul Watson (School of Computing Science, University of Newcastle upon Tyne, UK) for their feedback on this work.
 School of Computing Science, University of Newcastle, Newcastle upon Tyne, NE1 7RU, UK
 ThoughtWorks Australia Pty. Ltd.