Web services: Tight or loose coupling?
As more work is done with Web services, some developers say they are encountering "limitations" in the technology, according to Andy Gray, technology evangelist at Rogue Wave Software, a Boulder, Colo.-based provider of software components.
Gray said his current mission is to educate the industry on what he variously describes as "issues, shortfalls and barriers" to Web services development. He begins his "lesson" by challenging the idea that Web services represent flexible, loosely coupled technology.
"Some of the limitations we see in the Web services deployment space include tight coupling," said Gray. "It surprises some people because Web services are often billed as loosely coupled technology. That's one of the big advantages of Web services, right? Well, actually, we think Web services are fairly tightly coupled for a couple of reasons. First, in the time domain, most Web services work being done today uses SOAP as an RPC [remote procedure call] mechanism. An RPC model is inherently synchronous in that the client and server need to be very much in synch. They have to rendezvous at a particular time in order to make anything effective happen."
Gray also argues that if Web services have coupling issues in time, the technology has problems in space.
"On the space side of the Web services world, the RPC model is typically used, so we're talking about very explicitly named end points," he explained. "In a transaction, it's one network address to another network address. And you don't necessarily have more flexibility to abstract away the identity of both end points. Second is this notion of point-to-point exchange patterns. Again, falling back on the RPC model, what we're talking about here is a one-to-one communications model without the flexibility of having one-to-many or many-to-many kinds of conversations."
To address the time and space problems with Web services standards, Rogue Wave is offering developers an intermediary component it dubs Ruple from its Web site (http://www.roguewave.com). Originally created as part of an e-commerce project scrapped after the dot-com bust, Gray calls Ruple a Web services intermediary (WSI).
Positioned between client and server in Rogue Wave's vision of Web services architecture, Ruple is designed to facilitate the exchange of XML documents without what Gray views as the tight coupling requirements of the standard RPC mechanism.
"Ruple technology is an implementation of XML that gives us a nicely decoupled, secure way of doing XML document exchange," he noted. "In particular, Ruple can be used as an intermediary in the Web services world to provide decoupling between clients or participants in a Web services conversation and the providers of those Web services."
Rich Seeley is Web Editor for Campus Technology.