In December, Roger Sessions published a touchstone essay in ACM Queue on the topic of objects, components, and services. He offered the following definitions: objects share a common operating system process, components share a common hosting/runtime environment, and services share nothing but a common message format. These are complementary techniques, he wrote:
...all useful, but for different purposes. Web services are useful for tying together autonomous systems; components for coordinating the process distribution within a system; objects for organizing the code within a process. [Fuzzy Boundaries: Objects, Components, and Web Services]In a follow-on discussion in the current issue, Sessions makes two points that raised my eyebrows. First, that CORBA's downfall was an attempt to standardize on a platform, not just on a method of communication. "CORBA was 95 percent API, 5 percent interoperability. Web services is zero API and 100 percent interoperability." Second, that cross-enterprise Web services is a marginal use case -- the real value is in "getting different technology systems to interoperate within the same enterprise."
Given the tendency of enterprises to absorb other enterprises into themselves, the inter- versus intra-enterprise distinction is yet another fuzzy boundary. But assuming we can draw that line somewhere, isn't the higher cohesion afforded by a "platform" just the sort of efficiency that Sessions recommends exploiting within a system boundary?
In her Catalyst keynote, Anne Thomas Manes identifies IBM, Microsoft, Oracle, SAP, and BEA as "superplatform" vendors and expects all (with the possible exception of BEA) to grow more dominant over time, not less, because of the massive resources required to sustain and enhance a superplatform. If she's right, we'll be seeing the same familiar movie again.
Consider workflow. Microsoft's new Windows Workflow Framework (WWF) isn't a product, it's a chunk of the .NET Framework intended to enable that platform -- which is only artificially bound to the Windows family of operating systems, by the way -- to weave workflow into everything from intermittently-connected handhelds to desktops to collaboration servers to orchestration servers. Will WWF-to-WWF workflow run more smoothly than WWF-to-WS-*? Sure. Will this tend to lock you in to the WWF? Sure.
WS-* could ultimately prove more ambitious, in "platform" terms, than CORBA ever was, sucking in collaboration, workflow, identity management, you name it. But arguably the only real difference between CORBA and Web services is that, this time around, the superplatform vendors are in somewhat better agreement on where they'll commoditize, compete, and interoperate.
Former URL: http://weblog.infoworld.com/udell/2005/10/03.html#a1313