So how new is SOA, really?
I was talking with a user the other week about SOA.
She was enthused with the SOA bug, but was frustrated because her company is notoriously conservative when it comes to ‘new developments such as SOA’, as she put it. This is not the first time I have heard the view that SOA is a recent development.
I find this quite amusing. It never fails to amaze me how we in the IT industry can fall for something which we see as shiny and new, when in reality it is at least largely based on things long past. Perhaps IT is like fashion – hemlines may go up and down, but the latest thing is always ‘new’.
As far as SOA goes, it bears a strong resemblance to old software engineering disciplines of the early 80s, when programmers were advised to encapsulate functionality in ‘black box’ fashion, with clean inputs and outputs, so that routines could be easily reused. Then we had object-oriented programming, which was really just an extension of this. I wrote my first paper on SOA (although it did not actually use that three-letter acronym) in 1996, and I am sure I was not the first.
In fact, I met an old mainframe programmer once who had a pretty good story of how the IBM mainframe transaction processing system, CICS (the original application server, if you prefer), was actually the first implementation of an SOA. This is a bit contrived, but bear with me. In the days of companies running everything on mainframes, a CICS shop would make all its applications out of CICS transactions. IBM provided mechanisms for CICS systems to interoperate with each other across geographical and corporate boundaries, and hence CICS transactions could invoke each other. Therefore, CICS transactions became building blocks representing pieces of business functionality, and the applications were then assembled from collections of these building blocks, without any problems concerning the physical location of the transaction.
Actually, I think he had a point. What is SOA, really? It is easy to spout loads of intelligent-sounding stuff, but basically it is about three things – encapsulate business functionality into reusable building blocks, provide a standards-based way to understand and invoke it, and supply mediation functions that can handle differences in formats and environments, and can orchestrate the way the blocks join up. OK – this is a simple view, but looking at the old CICS example, given that if everything is in CICS then this makes interfaces ‘standard’ (yes I know this is a bit of a cheat), the only real difference lies with the orchestration piece.
And so this touches on two important points. One is that management need not look in terror at SOA as some new-fangled development that comes laden with risks. It is an awful lot about just doing things cleanly, much as in the software engineering or OO sense. The other is that orchestration is the key to getting the most out of SOA – in the CICS case, the understanding of HOW the different transactions should link together in which situation was built into the programs, making it hard wired. With SOA, it is outside the program, and hence is more readily understood and capable of being changed without resorting to extensive reprogramming.
Steve
Recent Comments
November 1, 2010 (8:36) CICS and PHP - DON'T PANIC It's great to see transactional support of any kind for a cloud language... be it PHP or not (whi...
July 16, 2010 (12:41) Does Micro Focus Server for SOA miss the point? I think Micro Focus has done a tremodeous introduction of Web Service from a COBOL. May not be a ...
June 15, 2010 (6:14) CICS and PHP - DON'T PANIC Hi Steve, Well, we don't actually *demand* that you host the PHP in regions separate to those ru...
April 3, 2010 (12:27) AMQP - Great idea, but it will never work As someone who has worked on DDS from an implementation perspective as well as an OMG standards p...
December 12, 2009 (9:15) Did Teilhard's JuxtaComm patent wipe out IBM, Microsoft and SAP? Subsequent to my post, the Calgary Herald ran an article (http://www.calgaryherald.com/business/P...
December 10, 2009 (9:01) AMQP - Great idea, but it will never work Now, this is a late reply! @Thorlin. I looked at DDS before embarking on AMQP (I also looked a...
December 7, 2009 (2:40) Come in Texas East District Court, your time is up The important thing to remember about patents is that they're all about the claims. While the bu...
October 27, 2009 (9:08) BAM vs BI Good article. Thanks, Emil
October 23, 2009 (11:04) So Oracle got Sun - but why? Oracle has stepped up the rhetoric when it comes to its plans for Sun. In a message to Sun custom...
September 16, 2009 (1:15) IBM gets Cognos to fill the gaps IBM has two BAM solutions now Cognos Now! and Websphere Business Monitor. Why two BAM solutions f...