Friday, August 3, 2007

Microsoft's 'service-enabled' approach is really only sorta-SOA

A new article on Redmondmag.com examines the fascinating topic of Microsoft and SOA. Microsoft's strategy -- pivoting on the strengths of Windows Communications Foundation (WCF) as well as (huh?) applications virtualization -- is different from earlier "embrace and extend" market assault campaigns.

Microsoft's SOA strategy amounts to embrace and contract. They want to allow services-enablement using the newest (read: massive upgrades) Microsoft infrastructure to offer a modest embrace of heterogeneity. However, the high-level rationale for SOA is to make heterogeneity a long-term asset, rather than a liability. You should not have to massively upgrade to .NET Framework 3.0 (and tools, and server platforms, and runtimes) to leverage SOA. As we know, SOA is a style and conceptual computing framework, not a reason to upgrade.

I'm liberally quoted in this article, so you can gather the gist of my observations in it. What is curious is the response Microsoft proffers to any suggestion that Windows Everywhere is not somehow synonymous with SOA.

I'm especially betwixt by the assertion that virtualizing a monolithic Windows application, so that it can be hosted (on Windows servers) and accessed via a browser as a service, allows it to "... be part of an SOA-like strategy."

Sorry, dudes, that doesn't even come close to a SOA-enablement of that application. Now, being able to deconstruct said application into a bevy of independent services that can be easily mixed and matched with others (regardless of origin, runtime, framework or operational standards) gets a wee bit closer to the notion.

How about delivering those legacy Windows monolithic server stack applications as deconstructed loosely coupled services on virtualized Windows runtime instances on a hot-swappable Linux on multicore x86 blade farms? Yeee-ha!

It's also curious to see the rationale for Microsoft's sorta-SOA through the lens of needing to gain "... the ability to rapidly evolve an application because you need to change things in near-real time," said Steve Martin, director of product management for Microsoft's Connected Systems Division, as quoted in the article.

This may be RAD or Agile or even Lean -- but it really isn't quite SOA. What we're thinking on the SOA business value plane is the ability to "rapidly evolve" business processes, to actually not have to muck around with the underlying applications and data (nor necessarily upgrade their environments) but instead extract and extend their value into a higher abstraction where transactions, services, data, metadata, and logic can be agilely related and universally governed.

Not sure if BizTalk Server has gained that feature set yet. Visio? Well, obviously you have not yet upgraded sufficiently, dear reader.

It's plain from the article that Microsoft will define SOA to suit its strengths and sidestep it's weaknesses. At least on that count Microsoft is adhering to the standard industry approach. But the risks for Microsoft as it seeks a higher profile in the core datacenters of the global 2000 of not applying SOA at its higher business value is significant. Better stated, they may win some battles but lose the war.

Already, competitors such as IBM, Oracle and BEA are moving toward offerings that reduce the emphasis on applications (virtualized or not) and instead places the emphasis on business processes maneuverability. And just like with SaaS, it's not about the technology -- but is everything about the business paybacks (top-line and bottom-line) and overall IT risk reduction. The business model of both the vendor and the customer need to match up.

IBM's strategies around reuse
and its focus on creating pools of services that can be applied not generally to IT but specifically to business verticals, industries, and even individual enterprises (think of its as the long tail wags SOA), is ultimately an aligning influence between IBM and its partners and customers. What runs IT beneath is more optional, so you might as well seek the best cost-benefits approach, which will include open source infrastructure, SaaS, and all the other options in the market.

If you save big on business agility, the cost differences of the underlying infrastructure (say between IBM or BEA or Microsoft) is a rounding error -- but you have to deliver business agility.

IT needs to move holistically at the speed of businesses. Microsoft seems to be saying with sorta-SOA that, "Hey, it will cost you less to virtualize your Windows applications so use us, even though you gain less total agility." Does not compute, Will Robinson.

Microsoft's sorta-SOA approach may have short-term benefits for Redmond, but medium- to long-term it divides Microsoft from its customers and prospects and their needed goals for IT. I've said it before, what's good for Microsoft is not necessarily good for its customers, their balance sheets, or their business agility. And only Microsoft can change that.

An enterprise that embraces sorta-SOA from Microsoft only will compete with an enterprise that embraces and extends SOA liberally, openly, leveraging all the options in the global market of labor, information, infrastructure, services, and both business and hosting models flexibility. As inclusive IT agility becomes the primary business enabler globally and specifically, the choices will be fairly stark fairly quickly. The choices will be more stark and more quickly for ISVs, service providers, and telcos.

At some point the savvy IT leaders may ask if dragging Windows Everywhere along for the ride makes sense. Why not just use sorta-SOA to expose all the existing Microsoft stuff, cut bait and move on for the real differentiating IT functionality and productivity?

Will Microsoft's vision of Windows Everywhere "plus services" do better for their clients than enterprises that just move to services everywhere? This is the ultimate question.

What's most likely about Microsoft's current SOA strategy is that it keeps them on the nuts and bolts level of good tools to make good applications and good services -- but at a price. Nowadays, making the services themselves, however, does not hijack the decisions on infrastructure, as it did in the past.

In a loosely coupled, virtualized world -- where hosting and deployment options abound -- there is nothing that locks in the applications as services to any platform. This is true on both the client and server, and more true at the higher abstractions of metadata and business processes.

And, sure, there will be new choke points, such as governance, policy, semantical symmetry -- but none of them for SOAs seem to carry the added tax of necessary, routine, massive upgrades of specific essential components up and down a pre-configured stack to work. Sorta.

The playing field is a bit more level. May the best IT approaches to total business agility win.

Disclosure: I am a paid columnist for Redmond Developer News, a sister publication to Redmond Magazine.