Check out Web Services at a Crossroads, by Daryl Plummer, who’s group VP and chief fellow at Gartner. Yet another finding that when it comes to Web Services, you can choose between simple,reliable, standards-based infrastructure that’s here now and the sprawling, shifting WS-* technology that’s still under construction, mostly by IBM and Microsoft, both well-known champions of simplicity. Plummer’s piece is mostly right, but I’m going to ignore Tolstoy’s advice and pick some nits.
Tolstoy? · It’s a couple of decades since I read War and Peace, but I seem to remember that the last hundred pages or so are mostly a really boring lecture on military theory, the central lesson being “When your adversary is doing what you want him to, don’t get in the way.” Well, if Gartner is now granting the point I’ve been trying to make for the last two years, I guess, per Tolstoy, I should bloody well shut up and get out of the way. But Plummer’s piece contains some important mistakes and some potentially-dangerous framing that I think shouldn’t go unaddressed.
Standards-Based!?!?!? · Plummer says “First, only 20% of all enterprise systems built today require the kind of robustness that standards-based Web services provide.” I think that when he says “standards-based Web services”, he means WS-*. Well, excuse me, HTTP and XML, the things that REST-flavored lightweight services are based on, have been stable, ratified, international standards for a decade or so, while the legion of WS-* specs are still mostly unratified by anyone but their authors at IBM and Microsoft. There’s only one option available today that’s actually standards-based.
What Are Web Services? · Plummer says they are “defined as Web applications that use open standards to interact with one another dynamically across heterogeneous systems.” Uh, no; they are defined as distributed programming interfaces based on specifying message exchange patterns (the messages usually being XML) rather than object models and method calls.
Two Camps? · “Users fall into two camps. One group advocates using Web services to build complex internal systems known as enterprise service-oriented architectures (SOAs). The other seeks to use emerging Web technologies in tandem with Web services to create flexible external applications.” I’m kind of puzzled; it seems to me like the pressures on both inward-facing and outward-facing applications are pretty similar: operation across heterogeneous systems, stringent reporting and auditing requirements, high performance. And Service-Orientation is pretty important out there on the Net, too... the notion that the term “SOA” is reserved for talking about internal systems seems dangerous and wrong.
What are Web Services For? · “When it comes to building SOAs, I can’t get over how much effort is wasted trying to force Web services to deliver enterprise-level capabilities they were never intended to handle. For example, managers at a well-known airline once asked me how to make their Web services provide an enterprise-level distributed-transaction environment.” Perhaps, those airline managers had read the official map of WS-standards over at Microsoft, which has a whole category called “Transactions”, with draft specs that seem to suggest they should be used in, you know, enterprise-level distributed-transaction environments.
Plummer is OK · Having spent four paragraphs finding fault with Plummer’s language and terminology, it’s important to note that he also says some really smart things; about granularity, and risks around interoperability and programmability.
I think he’s also arguing that even in the REST context, SOAP envelopes are probably a large part of the network-computing picture going forward.
Sun · I think our position is clear. Microsoft is making a huge, company-scale bet on the WS-Future; a really remarkable amount of work by Really Smart People went into WCF. The customers that that adopt this stuff will need to work with the Java universe and with our enterprise products, and we’ve said we’ll work with Microsoft to make that happen. (For a sample of that interoperability work, see Arun Gupta’s recent Sun participating in WS-Policy Interop Workshop and Rohan Pinto’s It Takes 2 to Tango.)
Speaking for myself, not for Sun, I think that we ought to be pouring resources and investment into tooling and developer support around simple XML/HTTP/REST technologies. You know, the standardized ones that work today.