SSDL: The SOAP Service Description Language

We are finally ready to request the community’s feedback on our latest work, the SOAP Service Description Language, or SSDL. Jim and I collaborated with a small team of people to produce a description language for Web Services that we think is exciting since it encourages us to reason in terms of messages, rather than ‘operations’, ‘interfaces’, and ‘inheritance’, when writing contracts.

The SSDL core specification defines the format of a contract document and mechanisms for Protocol Frameworks to reference the declared messages. Protocol frameworks are used to correlate the messages into simple MEPs or complex protocols. We have made available four such protocol frameworks: MEP, CSP, Rules, and SC). There are also an SSDL high-level overview document and a whitepaper available.

The structure of an SSDL contract is simple; you define structure using a schema language, you declare messages in terms of header and body elements (SOAP faults are messages too), and you define protocols by referencing the declared messages. If you want, you can put endpoints as WS-Addressing EPRs. That’s it.

We have also some tooling that validates and processes SSDL contracts and produces .NET 2.0 C# + WSE 2.0 code. The tooling promotes a message-oriented API for developing Web Services. Each message is represented as a class; appropriate send methods are provided for each message; and the arrival of messages is indicated by events. You can read all about it in the whitepaper. We haven’t yet released our tool but we’ll do soon. We are currently working on the plugin infrastructure.

Jim just posted a very good introduction/announcement to SSDL. You can find lots of information at http://ssdl.org. Please let us know what you think.

2 responses to “SSDL: The SOAP Service Description Language”

  1. Holy cow, when you mentioned on your blog that you had developed a non WSDL meta language I had no idea you had taken it to this level. I haven’t been able to digest it all yet but I like the idea – WSDL is just too broad in scope. One of the issues is of course tool support. Languages like Java are going to be easier because people in the Java community are (more) used to adopting outside toolkits. I.e. onces which don’t come directly from Sun. But it seems the .NET community is a bit harder to penetrate in that respect. The good news is of course that this will hopefully enable you to write better tools giving developers an impetus to use it. So I’m looking forward to checking out your alpha. Anyway, congratulations and I look forward to looking more in depth.
  2. Thanks Dan! I’ll try to post the tool as soon as possible for people to play with. While i am not adding new features at the moment, I just want to make sure that the plugin architecture works well.