A perennial SOA discussion is whether it is a universal architecture or whether there will be complementary or even competing architectures.
This article in Water’s Online focuses on this issue in the context of where SOA is being used and more importantly not being used. While the tone of the article is probably negative to SOA, it is interesting to notice how established SOA is in the large investment banks with quotes featured from both HSBC and Bear Stearns.
To briefly cover the argument: SOA has obvious overheads if messages are encoded in XML and used synchronously. This makes it unusable in some of the trading and market data applications where the volumes of data are huge and speed is everything. In this space, Complex Event Processing (CEP) tools such as those from Progress Apama and Streambase are clearly more suitable than SOA based on business processes and synchronous processing models. To quote a well balanced view from a senior IT person at Bear Stearns:
“The more glamorous parts of the trading system typically involve super high-performance networks, data-distribution models, and technologies such as CEP that are ‘in line’ with information coming from and going to the markets,” says Moschetti [chief architecture officer at Bear Stearns]. “But other aspects of the system, such as entitlements, configuration, loading of baskets, lookups on reference data, and so on, can use what the industry conceives as SOA—that is, Web services, XML over message busses, and so on,” he adds.
Therefore, it isn’t a matter of one approach dominating the other is some strange Darwinian struggle. For industries where the processing requirements include real time streams (and in particular where the stream volume and complexity exceeds what ‘static’ approaches based on variations on data warehousing can handle), CEP will have a bright future. That means at the moment: front office in financial services, some government security applications and Massive Multiplayer Online Gaming (as shown by Streambase’s recent announcement). Apart from that CEP has an important role to play in control and monitoring within the SOA layer as Steve has previously blogged about.