The services fabric

Looking forward to the intersection of Web services and grid computing

In 1998, Graham Glass was CTO of ObjectSpace, a Dallas-based vendor of a popular ORB (object request broker) known as Voyager. In an article on distributed agents, InfoWorld wrote: "Glass believes Voyager agents will increase their innate intelligence by interacting with one another as well as with the humans they serve." Pretty highfalutin stuff! If you were to project those ideas forward five years, you'd arrive at the intersection of Web services and grid computing. And that's just where Graham Glass is today. As CEO of The Mind Electric, another Dallas-based company, he created Glue, a popular SOAP toolkit that has rapidly matured into an application server. Now the next act is unfolding. The first beta version of The Mind Electric's Gaia, best described as a Web services fabric, is available from The Mind Electric. It's an eye-opener in more ways than one.

Even in this early incarnation, Gaia comes with excellent documentation and a nice set of examples. I jumped right in and launched two instances of a SOAP-based calculator service, then launched a client application that made repeated calls to the service. Gaia is built on top of Glue, which simplifies publishing services into a registry and binding to services in that registry. In both environments, publishing and binding are achieved in terms of native Java interfaces. (A .Net version is in the works too.) But in Gaia you’re publishing to a services fabric, not merely to a SOAP endpoint.

One thing fabric can do is automatic fail-over. So when I killed the instance of the calculator service to which the client had bound, the client found the other instance of the service and kept running. No muss, no fuss. I was able to fail-over from a service running on my Windows box to one on my Mac OS X box, but it gets even better. You can use Gaia management console to publish a .Net calculator service into the fabric, and then fail-over to that one as well. I haven’t tried all the permutations, but the claim — which seems credible — is that any Web service with an equivalent WSDL file can be published into the Gaia fabric.

The management console, by the way, is going to make every HTML-based console look so last-century. Its ambitious use of Flash 6 delivers an experience that rivals Windows’ PerfMon and EventViewer. Live charts and tables update continually as services come and go, and as SOAP packets pulse through the fabric. You can drill down into any part of Gaia’s distributed and replicated XML database of services, nodes, and rules. Gaia’s Flash console is still a work in progress, but Macromedia must be on the edge of its seat waiting to see how it will turn out.

I’ve written often about using active intermediaries to modulate the flow of messages in a network of XML Web services. Gaia makes it trivial to inject such intermediaries into the fabric. Its API supports filters, monitors, and transforms. Filters can reject messages that fail a test, for example an authorization check. Monitors gather data for logging and traffic analysis. Transforms can change the behavior of a SOAP endpoint by rewriting its input and output messages.

During the next few years, we’ll all be exploring how a services fabric can robustly support and flexibly adapt to the needs of our businesses. Gaia makes that vision seem closer — and simpler — than you might think.

Copyright © 2003 IDG Communications, Inc.

How to choose a low-code development platform