Monday, 11 January 2010

SOA Manifesto comments

There have been over 600 signatories to the SOA Manifesto as I write. I do surf and look at what people have to say. Some are +ve some are -ve. The -ve's are loud to say the least but offer little in terms of concrete suggestions. Which in some cases is a great pity because some of the voices may have something to offer but don't do so.

Anyway I thought I'd blog a while on my thoughts on the -ve's as a generic thing rather than dealing with specifics. One of the complaints seems to stem from a violent reaction against SOA and often it is confused with REST over SOAP arguments.

The REST over SOAP argument is irrelevant. An instance of a SOA can use either, could use both or indeed neither.

The violent reaction against SOA I cannot quite understand. One of the key aspects of any instance of a SOA is some notion of a Service Contract. I don't claim WSDL is a good way of doing it but it is a way. There may well be other descriptions that are better, capture more and so allow us to reason over them. Are Services Contracts a good thing? For those that think not I'd like to understand why. For those that think they are, why are they a good thing?

From my perspective without a Service Contract (ideally more than is available in WSDL) we cannot understand "type". And "types" are what make programming languages effective. The use of "types" in composition is not confined to programming languages which manipulate "types" and in which a complier checks "types" which leads to less errors. Indeed "types" in a service composition are surely a useful thing for all the same reasons that "types" are part of any good programming language.

Now if an instance of a SOA is dominated by the presence of a Service Contract (and therefore some notion of "type") why is it a bad thing?

I cannot find a reason. Perhaps you readers can and if so feel free to post. I will publish all.