The Web Service Standards

The Web services picture is composed of various XML-based technologies, including SOAP, WSDL, and UDDI. These three standards are far from being set in stone: They're undergoing constant revisions from standards bodies such as the W3C (World Wide Web Consortium), and multiple versions exist, as shown by the various Web service platforms.

XML (eXtensible Markup Language) is a specification for defining and organizing structured data in text format. XML derives much of its power from flexibility. But flexibility can also be a weakness: it encourages different formats for the same task, making for incompatibilities.

XML alone cannot bring civilization to Web services. XML Schemas describe and constrain the contents of classes of XML documents. By using the XML Schema Definition associated with XML data, a parser can automatically validate not just the syntax of the data but also its structure and logical correctness—a big step forward. Different industries can use schemas to suit their purposes. For example, a banks schema might include a tag for balance, while clothing distributor's might include tags for size and color.

At the heart of Web services is SOAP (Simple Object Access Protocol), an XML-based messaging protocol for invoking program logic over HTTP. SOAP relies heavily on XML Schemas to describe three sections: the envelope, the encoding rules, and the RPC (remote procedure call) conventions. The envelope defines the who and what of the message—in other words, how to process it. The encoding rules define the way the data types for specific applications are exchanged. RPC defines conventions for accomplishing remote procedure and method calls and their responses over the Internet.

WSDL (Web Services Description Language) provides an abstract way to describe the capabilities of Web services. WSDL tells other machines how to format their requests and responses to a Web service. WSDL also defines a service's binding to a network transport protocol, usually HTTP.

UDDI (Universal Description, Discovery, and Integration) is a specification for an Internet-wide registry of Web services and their metadata (data about the data). The metadata contains information about the company offering a given service and technical details of how to access it.

Businesses use UDDI to register information about themselves and the services they offer in white, yellow, and green pages. The white pages contain general information about businesses, such as their names and contact information. The yellow pages classify businesses into taxonomies according to their industries, products/services, and locations. And the green pages specify the technical details of invoking specific services.

When a significant number of entries are made in public UDDIs, the dynamic discovery of services will become possible. Microsoft and IBM have already set up a public UDDI, but before such directories gain widespread acceptance, companies will use private enterprise versions internally. A private UDDI offers a company greater control over access to its system and its applications metadata.

SOAP, WSDL, and UDDI work together in a threefold service architecture (see the diagram "The Web Service Model"). Service providers publish their services in a UDDI registry so that service requesters can find them. After finding a service in UDDI, a requester calls upon a provider to process a SOAP transaction. The service's WSDL interface describes the appropriate requests and responses that the service supports.