Blackadder and the Micro-kernel Approach to Web Services Transactions
What is more productive? The micro-kernel or macro-kernel approach to developing working standards.
I mentioned here in 2001, a consortium of companies including Hewlett-Packard, Oracle and BEA began work on the OASIS Business Transaction Protocol (BTP), which was aimed at business-to-business transactions in loosely coupled domains such as Web Services. The specification developed two new models for transactions, both based around the two-phase (commit) protocol. It was based on the “one-size fits all” premise.
Notable by their absence from BTP were IBM, BEA and Microsoft, who in August 2002 released their own specifications: Web Services Coordination (WS-C) and Web Services Transactions (WS-T). Although these specifications also define two transaction models, they are both grounded in existing transactional infrastructures. In 2003, Arjuna, Oracle, Sun Microsystems, IONA Technologies and Fujitsu founded the OASIS Web Services Composite Application Framework, which has similar goals to IBM and Microsoft and defines three transaction protocols, each aimed at a specific use case.
The IBM, Microsoft and BEA specifications and OASIS WS-CAF share a similar model, which is based on many years of experience including [1]: a generic coordination infrastructure, which the different transaction protocols use and augment to achieve their aims, which are use-case specific. The intention is to take a leaf out of the micro-kernel approach to operating system design: define a core that is needed for the vast majority of users (the coordination services) and extend this via targeted protocols. As Doug McIlroy, the inventor of Unix pipes said, “Make each program do one thing well; to do a new job, build afresh rather than complicate old programs by adding new features” [2].
Which approach is right? The likes of IBM, Microsoft, Oracle, IONA, Arjuna etc. have based their current specifications on years of research, implementation and deployment experience. As far as the weight of the industry is concerned, it would appear that the answer to the question is obvious. However, despite this there are still a few proponents of the macro-kernel approach. Do they have a point?
In the Elizabethan “Potato” episode of the BBC Blackadder TV show [3], Edmund Blackadder confronts the captain (Rum) of the ship he is on about the total lack of a crew for their impending voyage of discovery:
"Edmund: I was under the impression that it was common maritime practice for a ship to have a crew.
Rum: Opinion is divided on the subject.
Edmund: Oh, really? [starting to get the picture]
Rum: Yahs. All the other captains say it is; I say it isn't"
The rest, as they say, is history!
References
[1] OMG, Additional Structuring Mechanisms for the OTS Specification, September 2000, document orbos/2000-04-02.
[2] McIlroy, D., Pinson, E., and Tague, B., "Unix Time-Sharing System Forward", The Bell System Technical Journal, Bell Labs, 1978, v. 57 (6, part 2), p.1902.
[3] Blackadder, BBC TV show, 1983 to 1989.
Trackback URL for this post: http://www.webservices.org/trackback/id/5780





