Radovan responds re SOA
Radovan Janecek (VP of Engineering at Systinet) and I have been trading blogs for a few days now discussing SOA. In his most recent response, he claims that I agree with his definition of SOA ... alas, I don't. What I did agree with was his definition of the TERM "SOA" as "An enterprise architecture based on SO principles". What I do not agree on is his definition of what a SOA is and does. Just because I undersand the definition of a Sasquatch/Bigfoot does not mean that I've ever seen one or that I necessarily believe they exist! ;)
I disagree that enterprise discovery is a core foundational part of a SOA ... unless we're extending the notion of discovery to DNS, I think we'll always struggle with the assertion that services should be catalogued in a registry or directory. The problems that can result from misuse of the Windows Registry are just a drop in the ocean compared to the problems one would experience from mismanagement of an enterprise directory, as anyone who's experienced a corrupted enterprise directory such as DNS, LDAP (such as AD or NDS) or suchlike will attest. I think we (as an industry) are some way off solving this problem.
But, Radovan, your closing paragraph in this post is what concerns me most:
"Rich, you say "Everyone claims to have a SOA and yet all I see is product linkage and spin." I guess you talk about Microsoft as well. DSI, SDM, Biztalk, Infocards, SMS, MOM, AD... Aren't all these acronyms going to create 'product linked' implementation of SOA? ;-)"
Absolutely and totally NOT! Microsoft explicitly does not claim to have a SOA. We do not subscribe to the notions of SOA and do not refer to any of our products as SOA. We do strongly subscribe to the notions of SO as abstract guidance and goals for building distributed systems. We have a broad range of powerful products, technologies and services which can be used to construct sophisticated, powerful, efficient solutions ... but we don't have a SOA because we don't believe such a thing exists, and if it is, its too poorly defined for us to adopt.
Besides which, SO(A) is only part of the story and talks only about part of building a solution. SO(A) talks about how to construct a system from loosely coupled, cooperative services, but makes no mention of how to visualize data, how to integrate devices, how to analyze and mine information etc. This is what we (Microsoft) use to infer a Connected System. More on this at another time! ;)