Friday, November 25, 2005

SOA, Matrix

I have decided to explicitly (try and) explain why SOA is a fundamental paradigm shift that will change our lives. I'll start by briefly tracking the current whereabouts of the SOA meme, just to take the discussion far away from Integration and Interoperability.

Last month, OASIS published its early seeds of an SOA reference architecture. In the introduction, Steve Jones from Capgemini, gave his warning on SOA: "Services have been hijacked by technology vendors trying to sell integration and development tools, which most normally focus on “Business Process”, “Orchestration” or “Web Services”. This technology driven approach fundamentally misses the point of Services".

And Dave Linthicum published last week a warning on a hijacker named ESB: "A mere messaging system, with Web services interfaces, that has been renamed ESB. Just like all middleware became EAI back in 1997/1998, and later the same and unchanged middleware became B2B when that word became hot. Get the pattern? The technology remained the same, but the TLA change to slot into an emerging market. You got to love the reuse aspect of that".

So industry experts are warning us from keeping on falling into the technology trap, promoted by the Vendors. But the meme energy of SOA is currently centered on Integration, Interoperability and Agility. Wouldn't it be natural to translate these ideas into ESB, Web Services, BP4WS engines and so forth? I think it is natural. And I think many people are feeling, just because it’s so intuitive, a cognitive dissonance in trying to figure out where’s the drama.
YET I am sure that whoever practiced SOA in a strategic, Enterprise level, felt that there’s much more to SOA than solving Integration problems & facilitating Interoperability. SOA is a paradigm shift and it is about to change our lives. I don’t remember, though, any messaging bus that made me feel this way (though I did get excited at the time from TCP/IP sockets :)). I would therefore suggest a different perspective on SOA and hopefully succeed in communicating the essence of the revolution.

SOA is the foundation for the ultimate Management & Control System. It solves the biggest problem of managing and controlling an infinite number of distributed and heterogeneous objects that nevertheless make part of a single entity – be it the Enterprise, the Internet or whatever.

Management Silos of today's Enterprises are characterized by two dimensions: the Class and the Life-Cycle. By Class I refer to any Class of objects found in an enterprise: processes, employees, applications, routers, storage units, servers, databases, stored procedures, UI, codelets, scripts and so forth. By Life-Cycle I refer to the stage in which the object is: development, testing, execution, operation, support. By Silos I mean that most of the management tools out there are usually managing one Class in one stage of its Life-Cycle.
This state of things, where information is locked behind hundreds of silos, prevents end-to-end management. “Knowing that a certain counter has reached 1000 is interesting, but does not describe the dependencies of one service in another, or provide the ability to assure redundancy when a network link is lost” (The Continuing Evolution of Distributed Systems Management), to give one example.

Along history, people have always aspired at the creation of a holistic, unified, semantically-common world. The reversing of Babel, the creation of Utopia. Accordingly, the Distributed Management Task Force (DMTF) believes that if all management systems will adhere to its Common Information Model (CIM) management problems would be gone. Tim Berners-Lee and the Semantic Web/Ontology fraction think the same about the Internet. Well, I would dare say that just as the tag-o-mania proved the semantic web is utopic, CIM is deemed to have a similar destiny. Diversity, heterogeneity and disorder are much more powerful than standard, homogeneity and order. So changing the multi-dimensional, physical world into an opaque reality is not something I believe to be possible.

We could, nevertheless, do it in our own virtual reality. Oh yes: in my virtual world everybody speaks the same, looks the same, adheres to the same social rules and reports periodically about anything I need to know – so I could rule. Oh yes, Knowledge is Power and in my opaque virtual world, I have an absolute knowledge, therefore I have an absolute control.

The missing link: SOA allows the creation of a virtual, unified, homogenous, uni-dimensional world on top of a fragmented, distributed, disconnected and heterogeneous world, without having to change anything in the real physical world. SOA achieves this by employing a brutal reductionism: it reduces all Classes to a unified level of Resources and all Methods to a unified level of Services. That's it, and that's what gets managed: Services & Resources. SOA is a dimensions compressor: humans, processes, infrastructures or applications are collapsed into resources that provide services. Managing meta-data, policies, inter-relations and dependencies with such a simple and opaque representation is easy. "For the next decade, most of the value in SOA will be captured by making everything dumber instead of making everything smarter", says Miko Matsumura from Infravio (probably in a much different context, still it fits good to my thesis :)).

But actually, SOA is more radical than that: it settles with the management of Services only. As if the Resources do not matter, unless they converse. As such, SOA manifests itself as a linguistic phenomenon. As we know, Language is Reality, and Communication is Existence (unlike what Descartes thought). Hence, Resources are of an interest only when they communicate. According to the linguistic theory of Pragmatics, any communication is a utilitarian speech act, or – under the SOA paradigm – a Service. Therefore, in order to manage reality it suffices to be in a complete control of the speech acts, or the Services. Words are placeholders for acts (Austin, J.L., "How to do things with words"), Resources are placeholders for Services.

Differently put: it is enough to control the communication lines in order to control reality. Service-Oreinted [Management] Architecture provides the ultimate Management & Control System by focusing on mansifested actions only.

In my next post* I [ might | will ] discuss Cisco's Intelligent Information Network vision and Google's Web 2.0 Services ("I'm a Google Person") – two great [and rare] examples of companies which understand SOA to its management & control bones.

* There are two sequels to this post: In SOA We Trust, that further elaborates on the ideas here presented and discusses Cisco AON's role in the Enterprise, and Organizing the Information of the World, which explains why Google's the Real-World SOA.


Blogger davids said...

You are facing a daunting task of bridging between the Architecture and the Implementation. It's the philosophical equivalent of reducing metaphysics to the ontology of the actual being. Architecture is truly a metaphysical environment limited only by the capabilities of the human brain, and therefore virtually limitless in creativity and intellectual wizardry. The reality (phusis) is much more difficult to tackle and therefore the challenge of bridging between the Architecture and Implementation. He who can achieve this by creating (defining) the fundamental bridges (real world components) between the two concepts will be remembered as the Aristotle of SOA.

2:13 PM  
Blogger Philip Hartman said...

I read recently (I think it was in CIO) that basically recommended that CIO's stop spending so much time looking for new ideas and spend more time trying to overcome resistance to change in their organizations... if an idea isn't implemented it is basically worthless.

6:42 PM  
Anonymous Ittay Dror said...

i think SOA to the enterprize world is like what OOP was to the programming world: in C you have an exposed set of data (C struct) floating around your system, unprotected, where anyone could do with it what he liked, without any control. in an OO language, the data is hidden, and only methods are exposed. your data is then safe (well, safer, depending on the methods you write)

8:20 PM  

Post a Comment

<< Home