In SOA We Trust
In SOA, Matrix I have described SOA as the foundation for the ultimate Management and Control System (unlike the common conception of SOA as a mean to enable Integration, Interoperability, Reusability etc.). The Management and Control market reveals a deserted landscape, incapable of managing and controlling complex systems, such as an Enterprise, a State, or the Internet. SOA is the first architecture to provide the foundation for complex-systems Management & Control. It is doing so by focusing attention – not on the Objects that make part of the complex-system, but rather on their Conversations. Pretty much as the NSA is trying to protect the USA, not by tracking down each individual, but rather by capturing and analyzing conversations, SOA is intrigued, not by the Service Providers, nor by the Services associated with them, but rather by the Business Conversations generated by the Services: what they say, when they say it, to whom they say it and where the Conversation is taking place. This linguistic reductionism deliberately ignores Objects' variations and Objects' internal intricacies in favor of Business (aka, the Complex-System) syntax, semantics and speech acts – or briefly, in favor of text analysis.
If we accept this axiom, we could then point at THE paradigm shiftER that has enabled this revolution. And no, it is not the Web Service (see, by the way, its REST and [in a sense] RSS competitors – does the fact that Web Services are no longer alone undermines the concept of Services, or of mash-ups, or of tagging or of web 2.0? Of course it does not. Hence, it's not Web-Services). I would agree, of course, with Dare Obasanjo that it is not even XSD :). The SOA revolution has been lit up by the simplest form of… XML. It is not a particular XML standard that has changed the way we do things, but rather the simple fact that Resources have started to converse by exchanging TEXT, and that this TEXT could be meaningful in a context of a Business Conversation.
Under this light, the idea presented in SOA, Matrix should be more comprehensible. If SOA is a linguistic phenomenon, then Services are Signifiers and Resources (Service Providers) are Signified. The semantic relation between a Service and a Resource (a Service Provider) is, like in any natural language, Arbitrary. Having said that, two implications arise:
A. the Service is indifferent to the Resource that implements it. In different contexts, the same Service could be realized by different Resources.
B. It also implies that a Resource can realize different Services.
Hence, the following statement, which I see so many times, is simply wrong and incorrect: "...services exposed by an application (such as SAP)". Services are never exposed by an application; APIs are exposed by an application.
Services are always Words in a (specific) Business (Enterprise) Language. It is the Business that decides on the creation of Business Speech Acts (Services) and on their association with certain APIs. Naturally, the confusion should be attributed (again) to the misusage of Web Services – a technological standard to represent APIs [which immediately implies another technological standard instructing how to consume these APIs). Again, a Resource (SAP) does not define the Business (Enterprise) Services – it's the Business that defines them. I reckon this might be controversial. But do bear with me for a little while.
If the definition of Services and their Semantics is external to Resources, it implies that the inter-resources Business Conversations happen in the SOA level, without the Resources' awareness. It is completely a non-intuitive thought for us – rational, cause-and-effect Westerns – but do think on the Butterfly Effect, which is so much identified with complex-systems and chaos. A Resource-Butterfly might be producing something in its day-to-day behavior. This "something" could be updating its own database, producing a log entry, raising an exception, or performing any action it has been programmed to do. On the Resource-Butterfly-level this is it. In its limited beholder's eyes the chain of cause-and-effect has reached its end. But, in the outer-resource world this event has a different meaning, a Business meaning. Something, external to the Resource, might interpret the Resource actions or non-actions (idleness) and decides to act upon them.
If the actions or the request for actions (Speech Acts) work with symbolic words (Services), Management & Control is simplified. A complex-system that has to govern its internal elements interactions (or non-interaction), will do it much easily if it could settle with symbols, not having to deal with the heterogeneity of the physical world. Therefore, Business Language with Services as words and policies as syntax fits here perfectly. Do note that the Business Language, Syntax and Business Conversations (aka business reactions) do not imply changes to the Resources language or view of the world. As there is a phase of interpretation from the Resource produced-events into Business Semantics, the Resource can keep on living its ignorant, happy life. Having said that, successful Enterprise SOA implementations should start and could start without a change to the existing applications.
So what are the elements that have to be present in this ultimate Management and Control System?
First we got the Eavesdropper. Its role is to listen to private conversations. Then we got the Interpreter, which translates the information into Business Symbols. Next comes the Controller, which based on the Services past, present and predicted future takes on-the-spot decisions. The Controller does not know the Resources behind the Services – its role is to operate the Services, "to do things with words".
Hence, SOA is actually a 360° life-cycle management & control system for… symbols.
As I mentioned in the previous post, Cisco is one of the rare industry leaders that got it right. Cisco Intelligent Information Network with the recently released Cisco AON (Application-Oriented Networking) understands that if they control the communication lines that all Resources are connected to, they can actually manage and control a complex-system, using symbolic manipulation. With Cisco AON there's no need to install or to designate a dedicated Eavesdropper for each Resource, as all private conversations run anyhow on the network Cisco is controlling. So Cisco is performing the Interpretation to the Business Language and let the administrator define how the Cisco AON Controller should react. The reaction would be an invocation of a Service. What's behind the Service? Cisco does not know and shouldn't care. It could be a human being receiving an email or an SMS notification telling him to run and install a new server for a specific application; or it could be SAP.
If Cisco will enable full life-cycle management of (only) Services, or symbols, or words inside its AON offering, it will become a real end-to-end solution for complex-systems management. IBM understands that already (see also: Why IBM bought DataPower?).
*The last post in the "SOA as a Management and Control System" is Organizing the Information of the World, in which it is explained why Google is the Real-World SOA.