XML Protocol Technology Reference
November 1, 2000
XML Protocol Technology Reference
The use of XML for loosely-coupled application integration has become a high profile topic, crucial as it is for the future conduct of electronic business transactions. This area has seen a proliferation of activity from both consortia and individual vendors.
This article gives an overview and essential information about the most important technologies and initiatives in the XML protocol area. Most of these technologies are being developed under the auspices of either a multi-vendor consortium or standards body.
The XML protocol technologies are presented in alphabetical order in this article. They may also be divided into the following specialist areas.
Protocols and Messaging
Advertisement and Discovery of Services
ADS is a proposal from IBM to allow web service providers to advertise the availability of their services. It allows for aggregation of this service information at a well-known location, and it provides ways of linking content and services.
ADS complements a registry-based approaches like UDDI as it provides an alternative, decentralized, service-announcement mechanism. It follows the same lines as, and is more advanced than, Microsoft's DISCO idea.
Blocks eXtensible eXchange Protocol
BXXP offers a slightly different approach to protocols like XML-RPC and SOAP. Instead of building on top of HTTP, BXXP is layered directly on TCP. It's been designed from the start for protocols. It supports authentication, transport security, and data communication. IMXP, a protocol for instant messaging that uses BXXP, has been created by BXXP's originators.
Standardization of BXXP is now being pursued through the IETF.
Integrating XML, CORBA and HTTP
The OMG, custodian of the CORBA distributed object architecture, has issued a request for proposals to support CORBA semantics over SOAP and to enable SOAP clients to access CORBA services. This would bridge the vast world of deployed CORBA application services to the emerging world of XML/SOAP web services.
Discovery of Web Services
DISCO "represents the current thinking" (as of July 2000) within Microsoft about discovery of SOAP/web services. It proposes a way that information about web services might be embedded in documents and recovered by a user agent.
It has similarities with IBM's ADS.
- Status: Thinking out loud.
- Read more: DISCO.
Electronic Business XML Initiative: Transport/Routing and Packaging -- Messaging Service
ebXML is a project hosted by the United Nations body for Trade Facilitation and Electronic Business (UN/CEFACT) and OASIS to create an XML infrastructure for conducting electronic business. As part of that initiative, the ebXML Transport/Routing and Packaging group has devised a protocol for sending XML messages.
The ebXML messaging draft differs from some other efforts in this area (e.g. SOAP) in that it uses MIME to package up the parts of a message rather than a 100% XML solution.
Network-Accessible Service Specification Language
SOAP Contract Language
SCL is an XML language created by Microsoft for describing SOAP interfaces. It has been superseded by WSDL, as has an earlier proposal, SDL.
- Status: Obsolete.
Simple Object Access Protocol
SOAP is a lightweight protocol for the exchange of XML-encoded information. It has three parts: an XML-envelope to carry the messages, rules for encoding program objects into XML, and a convention for performing remote procedure calls (RPC).
Created by Microsoft, IBM, DevelopMentor, Lotus, and UserLand, SOAP has been in development for a long time. Borne out of work that originally generated XML-RPC, SOAP has been through three major iterations (0.9, 1.0 and 1.1), and is now the most practical XML/HTTP messaging and RPC combination.
- Status: At version 1.1, submitted as input to the W3C's XML Protocol activity, software deployed (but see W3C XML Protocol)
- Read more: Web Services and the Simple Object Access Protocol (Microsoft)
- Read the spec: W3C NOTE: SOAP 1.1
- Write code: Perl, Java, Windows, Python.
- Community: SOAP mailing list.
Universal Description, Discovery and Integration of Business for the Web
The UDDI group was started in July this year by Microsoft, IBM and Ariba. Most other leading B2B companies have joined the effort.
UDDI provides a framework for the description and discovery of business services on the web. It does this by using distributed Web-based registries of services, and conventions for accessing that registry using SOAP.
- Status: In development, initial specs issued.
- Web site: UDDI.org
- Read more: Technical White Paper
- Read the spec: Specifications in Word and PDF
- Write code: jUDDI is a Java-base open source implementation of a UDDI registry and client code, spearheaded by James Tauber of BowStreet.
- Community: General and technical newsgroups.
In response to the growing interest in the use of XML for distributed peer-level communication, the W3C has created an XML Protocol Activity. The aim of the activity is to develop solutions that "allow a layered architecture on top of an extensible and simple messaging format, which provides robustness, simplicity, reusability and interoperability."
The first working group to be chartered within the activity is the XML Protocol Working Group. Broadly speaking, this WG is chartered with producing a SOAP-like protocol for XML messaging comprising an envelope, object serialization conventions, an HTTP transport binding and conventions for conducting remote procedure call.
SOAP is likely to be superseded at least in part by the introduction of the result of this working group, but this won't be until the end of 2001 at the earliest.
Web Services Description Language
Released by Microsoft, IBM and Ariba (the three initiators of UDDI), WSDL is an XML language for describing network services or endpoints. WSDL 1.0 includes bindings of service descriptions for the SOAP protocol, and also for simple HTTP GET and POST requests.
A predecessor of SOAP, created by members of the early SOAP team UserLand, Microsoft and Developmentor, XML-RPC has gained a lot of software support. XML-RPC provides a simple protocol for remote procedure call that utilizes XML and HTTP. Some interesting implementations have been created using XML-RPC, from embedded devices through web browers (Mozilla) to application servers (Zope).