The primary goal of GXA is to define the syntax and semantics of a new family of Web-service-specific protocols that take the basic capabilities of SOAP and XML to the next level of interoperability. While a lot of work has been done to create standards for Web services over the past few years, there is more to be done. This work consists mainly of enhancing and specializing the way in which Web services interact and interoperate. The GXA initiative is aimed at defining specifications for these infrastructure-related services that form a sort of abstract virtual machine for a new generation of Web services.
A few years of real-world experience with Web services revealed that a large percentage of applications implement repetitive tasks that cut through a broad range of problem domains. Issues such as security and message routing are common to many, if not all, distributed enterprise-level applications. As such, they would be better addressed by ad hoc wire-level protocols than individually by each application.
For example, when SOAP was first introduced back in 1998, it was an XML-based protocol for remote procedure calls (RPC). Everyone who was interested in RPC over the Web had to learn how to write raw SOAP payloads. Today SOAP is perceived as a kind of low-level driver that platform-specific libraries abstract away and bury within the Web server’s infrastructure for Web services. Examples of this infrastructure are ASP.NET in the Microsoft .NET platform and Axis in the Apache open source world. In both cases, you create and consume Web services using classes in an object-oriented paradigm instead of dealing with raw SOAP payloads.
In a similar fashion, you currently must secure Web services yourself by writing similar pieces of code over and over again. You’re also responsible for having SOAP messages travel from an initial sender to the final receiver, potentially routed through a bunch of intermediaries.
GXA attempts to define SOAP-based protocols to deal with security, routing, and more, using a common and well-understood syntax and semantics. Companies involved with the development of the GXA extended infrastructure may one day bury the details of the protocols into some sort of virtual machine.
Extensions for building applications
The official definition of GXA is a protocol platform implemented as SOAP extensions for building Web-service-based applications. The list of extensions includes WS-Security, WS-Routing, plus support for transaction coordination, reliable message delivery, ubiquitous metadata, and more.
WS-Security proposes a standard set of SOAP extensions that can be used to implement data integrity and confidentiality in Web services. Its goal is to allow applications to exchange SOAP messages securely by integrating in the SOAP schema ad hoc extensions to deal with encryption and credentials.
WS-Routing is a stateless protocol for routing SOAP messages asynchronously over transportation means like TCP and HTTP. Headers that form the various protocols can be composed to form a richer context for the message that may also contain attachments.
WS-Attachments and Direct Internet Message Encapsulation (DIME) also fall under the umbrella of the GXA, and the number of specifications in GXA continues to grow.
Microsoft currently supports a WS-Security specific extension for .NET Web services, as does IBM in its WebSphere SDK for Web Services version 5.0. Although the WS-Routing specification exploits the concept of an intermediary already built in SOAP 1.1, Microsoft and IBM don't natively support WS-Routing yet.
The future of Web services
While the GXA focuses on interoperability, a committee within the W3C is concerned with creating new versions of the core Web service specifications. By design, W3C is continuously catching up with the progress of the technology. The committee attempts to standardize and formalize what is sometimes already established by the evolution of breakthrough products.
Although the GXA and W3C are doing different things (with GXA being one generation ahead), in a few years the definition and the implementation of Web services will have a unique grammar and a unique semantics. To be successful, Web services must seamlessly integrate with applications and with each other. For this to happen, the GXA must be entirely outlined and developed. When that process is complete, the W3C will standardize the results, and we’ll have a single specification.
As for GXA, Microsoft is committed to include a significant implementation of the standards in the next major release of the .NET platform (currently slated to be released around Q3 2004), and in the next version of Windows (codenamed Longhorn).
Builder.com originally published this article on 29 May 2003.