Welcome to MSDN Blogs Sign in | Join | Help

Welcome to The Metaverse

Navigating the service-oriented, identity aware metaverse

News

  • Disclaimer:
    The content of this blog are my own personal opinions and do not necessarily represent Microsoft's position, commitments or strategy. In addition, my thoughts and opinions often change, and as a weblog is intended to provide a semi-permanent point in time snapshot you should not consider out of date posts to reflect my current thoughts and opinions.




    Add to Technorati Favorites
IBM Hursley, SOA, ESB and Consulting

James Governor, co-founder of RedMonk, dropped me a mail today pointing at a blog where he comments on my recent posting about how Microsoft is doing its best not to blindly jump onto the acronym bandwagon.

James raises several points in his article, namely:

  1. He appears to be offended by my comment regarding IBM Hursley
  2. He claims neither that IBM or any other middleware vendor claims to sell a SOA and considers my stance on SOA to be FUD
  3. He seems to infer that Microsoft doesn't believe in architecture and does believe in magic
  4. James also seems to believe that SOA is really really difficult

Firstly, I want to absolutely crush the thought that my comments are explicitly aimed at dissing IBM Hursley. IBM Hursley demands great respect - it is the place where CICS and MQSeries were created and the impact of the work carried out at Hursley cannot be understated. My comment was meant to be tongue in cheek point aimed more at IBM's deep technical capabilities and the fact that IBM's latest ESB offering appears more as a blatant marketing release than a technical innovation which the nomenclature of WebSphere Enterprise Service Bus would infer. As a Brit, tongue-in-cheek commentary is second nature, but it often gets lost in translation ;)

On SOA:
James states that he knows of nobody who claims to "sell a SOA". Interesting. Whilst there may indeed be few claims that someone will sell you something called “a SOA” (although there sure used to be a few), there are many instances of vendors proffering SOA platforms. Let's expand this statement ... a "Service Oriented Architecture Platform" ... i.e. a platform upon which you build a Service Oriented Architecture ... huh? How do you build an architecture?

On Architecture:
In my experience, an architecture lays out the relationships between applications, systems, services and components and is expressed in a manner that is independent from as many specific technology considerations as possible. The architecture should define which components, services, etc., need to speak to which other services and components and what information needs to be exchanged during these conversations. The architecture lays out the grand scheme of things. Once the architecture is sound and has been optimized to ensure the removal of unnecessary "chatter", the design process begins where we translate the abstract architecture into technology-specific implementation detail, defining what technologies are used for each piece of the picture. The architecture MUST remain distinct from the design in order to ensure that the overall concepts, goals and objectives are not lost and to provide a validation of the eventual design. Once the design is done, coding can begin.

On SOA Platforms:
To this end, what is a Service Oriented Architecture Platform? What is soooo very different in the architecture, design and implementation of Service Oriented systems relative to other forms of distributed systems? What is is precisely that makes Service Oriented systems so very much more complex or harder to build? In a recent post, I commented on the notion that Service Orientation does not in and of its self create any new architectural concepts that we've never seen before. The key thing that Service Orientation introduces, that is different from how we approach systems design and implementation today, is that it fundamentally changes the assumptions that we make when approaching the architecture, design and implementation of a given system. When we're thinking in a Service Oriented manner, we are far more sceptical and paranoid. We assume that all services might be running on different platforms, communicating via insecure and unreliable networks and that the network is relatively constrained. Just these assumption changes generally result in distinctly different approaches to the design of a given system.

On ESB Platforms:
The same thing problem is now affecting the term Enterprise Service Bus: Today, several companies offer an ESB ... or an ESB platform. I can't help but wonder what happens in 2 years time when ESB is past its sell-by date and gets replaced with the acronym du jour ... will we see WebSphere ESB being renamed to WebSphere SNMB (Shiny New Message Bus)? Will SNMB convey any revolutionary new concepts that will transform how we build systems? Who knows, but I can predict right here and now that whatever the shiny new thing will be called … customers will be confused.

James also asks "What is traditional ESB?" Good question. What is the traditional approach to a term that has been in existence for less than 5 years and for which there is no standard definition? If you believe Tibco, theirs should be considered the norm. If you believe Sonic, theirs is. IBM of course has their perspective. But none of these definitions are quite the same. We're straight back to square one! 

Interestingly, in his blog, James discusses his "Goldilocks meme" and refers to Ronan Bradley as the source of this analogy. Ronan himself states in his post titled "IBM and the two tiers of ESB" that "IBM has announced that the ESB is a product as well as an architecture after all. What’s more it has not one but two ESB products with which to bewilder potential customers. On one hand is a ‘fully featured’ ESB – which is a not very subtle rebadging of some existing EAI products. On the other is a ‘lightweight’ ESB – effectively extending their existing Application Server product".

I believe this further vindicates my statements about the meta-issue that the IT industry is infected with the malaise of coining some apparently new architecturally-related term or acronym and re-branding yesterday's technology as this shiny new thing.

STOP IT! Unless there is truly something fundamentally revolutionary and useful to say, don't make something up! Why not just call your new iteration of an existing thing what it is and stop inflicting customers with FUD that makes it sound like you've introduced a new thing? And if you DO have something new, clearly delinate between the concept and the thing. PLEASE?

On Consulting Services:
James then goes on to ask "Who is this 'we'?" I am referring to We as in Microsoft, our consulting arm Microsoft Consulting Services (MCS) and our partners.

James also states that "Rich's post also relies on the common fallacy that Microsoft technology installs itself somehow, that problems are solved by magic." I don't think that anyone in the world believes that their systems are installed nor that problems are resolved "by magic". What I think James is getting at here is the following statement from my original post:

We'd much rather work to help understand a custmer's requirements and objectives and help the customer implement a solution that satisfies all the requirements rather than try to confuse them to the point that they give up and resignedly hire a legion of consultants to do for them what they could do for themselves.

To understand this statement, let's consider the different approaches to consulting that differentiate Microsoft from the likes of IBM, Sun, Oracle, BEA, etc:

IT consulting organizations exist because customers need help navigating the path of building complex computer systems. Many customers want to concentrate on running their business rather than building an IT organization – they believe that IT should be a commodity and don’t want to spend time and effort getting their business computerized. This is a perspective that consulting organizations the world over have taken advantage of. The boom in outsourcing in the 90’s is evidence of this. However, as computer systems and software in particular increases in reliability, simplicity and ease-of-use, the need for customers to have to rely upon consulting organizations for the mundane should decrease.

So, what’s the point here? The point is best raised through a question: “which companies are really committed to simplicity and clarity”?

IBM Global Services is a colossal organization of over 200,000 people that accounts for almost 50% of IBM's annual revenues ($46.2B of $96.3B in 2004), and is by far the largest revenue center in all of IBM. IBMGS is a well skilled organization which is primarily geared to handling long-term depth consulting and outsourcing engagements.

I have had the pleasure of working alongside IBM Global Services consultants on many an occasion. By and large they’re smart, dedicated intelligent individuals that are passionate about their work and keen to deliver value to their customers. The same applies to consultants from Oracle, Sun, BEA and many other consulting organizations.

But, here’s the rub:

Microsoft’s business model is all about commoditizing what was yesterday’s cutting-edge technology and making consumers of our products and productive, efficient and empowered as possible. Microsoft Consulting Services is an organization of around 8500 people world-wide (around 12% of Microsoft’s global headcount) chartered with one thing - helping customers get the very best value from Microsoft's software and systems. When I joined MCS in 2000 after forming and running my own consulting organization for 5 years, I was surprised at the MCS modus operandi: to engage, to transfer knowledge, to ensure competency and get out! If necessary, MCS will work with the customer to engage a skilled partner to provide ongoing assistance.

While IBM and others claim that their platforms and technologies are extraordinarily powerful and easy-to-use, they’re making extraordinary revenues from their services divisions. Why? If their products and technologies are so powerful and easy to use, why do customers need so much assistance? Further, what interest would a company making around 50% of their annual revenue through services have in making their products so easy to use that their customers need fewer services? I suggest that there isn’t a truly b desire within many such companies to truly invest in making their products and technologies easy to use. I also suggest that many such companies perpetuate the concerns of some that new == risky and that new == difficult.

Is this approach appears to be why many vendors promote the notion that moving to Service Orientation is complex and difficult – that it increases services sales? I believe so.

In my experience, Service Orientation is not any harder than any other architectural approach. In fact, I would argue that it is far simpler and far easier.

I have seen many customers begin the process of adopting a service-oriented mindset and reaping the rewards through the simplicity, flexibility and power of the resulting systems. Some of these customers have achieved this by building interoperable services on top of Web Services stacks. Some customers have performance requirements that SOAP/HTTP cannot currently meet and they’ve used proprietary/binary technologies under the hood … but their systems are architected, designed and implemented in such a way that migrating over time to something like WCF in the future will be clean and simple.

Finally:
So, in closing, is Microsoft's position on "SOA" just FUD? I believe very bly that it is not. We're not just dismissing the notion out of hand - we're aiming to clarify many misconceptions and industry confusion (and FUD clearly created by other parties) through consistent messaging and avoidance of pooly overloaded, badly defined terms and concepts.

It is also important to remember that Service Orientation is evolutionary approach to systems architecture. SO embodies a different set of assumptions than those that we’ve held so close for so long and which aims to make explicit what has until now been implied. SO is about simplicity and clarity and is more than achievable today.

Posted: Tuesday, December 13, 2005 12:36 PM by RichTurner666

Comments

Richard G Brown said:

Very interesting article... Thanks for taking the time to expand on the points, Rich.

I've added some thoughts of my own from the perspective of an IBM Software Services consultant. Here: http://gendal.blogspot.com/2005/12/we-dont-all-work-for-global-services.html
# December 14, 2005 5:23 PM

Ronan Bradley said:

Hi Rich,
Thought-provoking opinion as always - and plenty of ground covered in a single post!

Firstly, I think you are fixating a little on the use of SOA platform as a term - it is clear enough to convey what we are talking about. Knocking a concept purely because it uses some jargon would be a dangerous precident for the software industry!

To address a more substantive point, I totally reject the idea that SOA, or the ESB, are simply some form 'evolved EAI' because they address similar challenges in a (very broadly) similar way. The functional scope of the product is not the issue.

What killed EAI was not what it could do, but how it went about doing it. These products were proprietary, complex, required scarce skills and as a result delivered lousy productivity and spiralling costs. In this case what you might appear to be small differences between traditional EAI and current ESB, deliver dramatically different results. We know, because our customers tell us.

Having said all that, I am a pragmatist. I believe that the primary job of any integration vendor is to address specific business issues and in doing so deliver return on investment. Most organizations don't want to be sold an architecture, or an ESB, for it's own sake. They do, however, want to adopt new approaches to integration - approaches that are standards-based, flexible, agile, and designed to support the loosely-coupled integration that is an essential aspect of SOA adoption. If customers and analysts find the label "ESB" to be a convenient short-hand for those approaches, then vendors are hardly likely to disagree.

Regarding my comments around IBM - they were intended to illustrate what I think is happening in the ESB market. To some extent I agree that the term is confusing, but only because so many products have jumped on the bandwagon. With that in mind I argue that ESBs really break down into two categories - and that only the "fully featured" variety is likely to succeed in complex real-world environments.
# December 16, 2005 7:03 AM

James said:

Really curious question. How come not a single MS product actually ships with a WSDL file?
# February 3, 2006 7:32 AM

Bill Higgins said:

Hi Rich, just posted a response to this post on my IBM developerWorks blog:

http://www-03.ibm.com/developerworks/blogs/page/BillHiggins?entry=software_group_global_services_and
# March 29, 2006 7:52 AM
Anonymous comments are disabled
Page view tracker