I hosted a lively session on what Service Orientated Architecture really means at TechEd Amsterdam. While it was a Birds of a Feather session, I decided to run it as a park bench format in order to take advantage of having David Chappell, Michele Leroux Bustamante and John Hooper (blogless MCS UK Architect) come to the session. Here were some of the interesting discussion points that came up:
- There was some agreement that SOA is a pragmatic marketing term that unites many existing architectural principles around SOAP.
- The closest agreement about a definition for SOA was that it was based around common architectural principles of encapsulation, loose coupling and messaging.
- There was some discussion about whether asynchronous messaging was a necessary part of service orientation. My feeling is that since you can achieve synchronous patterns over asynchronous communications that having asynchronous messaging capabilities is extremely useful.
- Although it's possible that these principles could be applied without SOAP, it's the fact that Microsoft, IBM, BEA and others have agreed that SOAP will be the lowest common denominator that is the pragmatic reason behind the current push for SOA.
- David made a point that service orientation will be whatever Indigo supports when it ships. Shipping software always wins. I think there's a lot of merit in this argument, but to the extent that SOA is based on generic architectural principles it is worth considering using these principles in systems that are design today (as Clemens demonstrated all conference). If SOA principles help solve your business problems today then it's definitely worth starting today rather than waiting for Indigo.
- Some delegates were suspicious that using Indigo would enable them to interoperate with other systems that didn't use Indigo. There was some confusion about the idea that Indigo will provide an object model that can be used to develop a system that has the capability to send messages between the systems that are based on interoperable WS-* specifications.
- The four tenets of service orientation are necessary but not sufficient for a system to be considered a service oriented architecture. Some people thought they were too technologically focussed because they were tied too closely to XML technologies.
- David mentioned that the best SOA installation he'd seen was using CORBA several years ago - it had support for finding services, common schemas etc. Michele backed up the need for shared industry schemas based on some of her experienced.
- John Hooper was interested in Pat Helland's assertion that services should not share transactions, which led into the difference between WS-Transactions (classic two-phase commit) and WS-BusinessActivity (compensating transactions).
- A delegate who was learning about the topic came up to the chairs and spoke about what he'd learnt at TechEd. This was great to hear and generated a lot of discussion. Clemens' presentations clearly had some impact with many in the audience.
Here's me with David Chappell after the session. I've been a fan of his since reading Understanding ActiveX and OLE when I started Microsoft programming.