Adam Bosworth gave a whirlwind tour of BEA's WebLogic Workshop. After the obligatory Hello World, he dived into the good stuff. Cajun (I'll still call it that, for brevity) takes the web services mantra of loose coupling very seriously. It separates interfaces from implementations by generating XML grammars, called maps. In a nutshell, your map abstracts away from member variables in implementation code. An element in the map, say <PERSON>, is not sensitive to changes in the names of underlying member variable names. This contrasts with most SOAP toolkits which generate interfaces based on those names -- interfaces that break when the names change.
A second key abstraction is conversational context. The framework persists member variables when a service is marked as conversational, and automatically sets up one-way messaging with callbacks. Under the covers, JMS (Java Messaging Service) is used rather than HTTP as the SOAP transport.
Bosworth argued that Microsoft's toolkit makes it too easy to create tightly-coupled RPC-style services. In the follow-on panel discussion, Microsoft's Dave Stutz admitted as much. "Guilty as charged," he said, while pointing that as with VB, early concept demos have been biased toward the simple, easy-to-use end of the spectrum.
I asked Stutz, Bosworth, and IBM's Sam Ruby if the doc/literal style of SOAP usage, which Visual Studio.NET in fact prefers, represents the generic approach to BEA's mapping technology. They agreed violently. Bosworth: "I'd even say RPC was a bad idea to begin with."
Bubbling under the surface here are the somewhat ominous implications of an architectural style that solely addresses application-to-application communication. "Where's the web in web services?" asked KnowNow's Rohit Khare. The term is a complete misnomer, the panel agreed. It should have been called Net Services, not Web Services, but the name stuck and it's too late to change it.
Tim O'Reilly jumped up to say that we ignore the social dimension of the web at our peril. There is "innovative froth" that comes from the bottom up, driven by open source energy and by the interactions among people and applications. I agree. Web services are reinventing the client/server space, and aiming to solve coordination and scaling problems that were never solved before. This necessarily goes beyond the original charter of the web, which was to be a distributed hypermedia application. But the two worlds are not wholly incompatible either. Not every message requires conversational context and asynchronous callbacks. There's a vast and useful intersection between the web as an interactive hypermedia application (used promiscuously by humans and applications), and web services as a mainly application-to-application affair.
It's great to see BEA, Microsoft, and IBM violently agreeing on architectural principles and protocols. But like Tim O'Reilly, I wish that consensus didn't sound so much like a vendor-driven secession from the web ecosystem.
Former URL: http://weblog.infoworld.com/udell/2002/05/16.html#a244