Web services can be defined as loosely coupled software components delivered over IP networks. The primary objective of Web services is to simplify and standardize application interoperability within and across companies, leading to increased operational efficiencies and tighter partner relationships.
A Web service architecture consists of three primary functions: discovery, description and transport. For each of these functions, there is an accompanying standard, all based on XML. Web services are discovered through Universal Description, Discovery and Integration (UDDI), described by Web Services Description Language (WSDL), and transported using Simple Object Access Protocol (SOAP). Web service transactions run over HTTP and TCP/IP networks.
The typical Web service transaction flow occurs after a Web service is built by a Web service provider, a description of the service is posted to a Web service registry. The registry is a searchable index of service descriptions through which Web services can be located and executed.
The Web service requester (the entity in need of a Web service) searches the service registry and finds the desired service description. Through the information the requester finds in the registry, the requester connects to the Web service provider and invokes the service.
At its foundation, UDDI is a group of specifications that lets Web service providers publish information about their Web services and lets Web service requesters search that information to find a Web service and run it.
Under the covers, UDDI consists of an XML schema that defines UDDI’s four core data structures – business, service, binding and programmatic interface – and a set of APIs that operate on those structures. UDDI was developed by IBM Corp., Microsoft Corp. and Ariba Inc., and is now under the stewardship of the UDDI Community ( http://www.uddi.org), which has more than 200 member companies. UDDI is currently at Release Level 2.0; Version 3.0 is under development.
A Web service listing is created using WSDL and then sent to a UDDI registry. A listing is comprised of three elements. At the highest level there are White Pages, which contain basic information about the providing company and its services. Next are Yellow Pages, which organize services by industry, service type or geography. Finally there are Green Pages, which include the technical mechanics (such as interfaces and URL locations) about how to find and execute a Web service. An application requesting a service will use WSDL to electronically interact with the Green Pages section of that service’s listing.
The architecture of UDDI allows for public and private registries, with private registries accessible by business partners across an extranet and within an organization over an intranet. Private registries are expected to achieve earlier adoption than public registries, because Web services are first being deployed by corporations inside the firewall. For corporations, UDDI registries provide a key advantage over standard software release management practices. As new or updated versions of a Web service are released, a UDDI registry lets the service be put to use immediately by the requesting application without any recoding or reintegration work.
While UDDI registries appear to offer for Web services what search engines did for the World Wide Web, a few problems are hindering their broad rollout. First, the UDDI specification has not been finalized, which is causing companies to pause before committing resources. Also, the categories of a registry have not been standardized, making searches tedious. Further, UDDI lacks the authentication features needed to restrict access to trusted applications. Companies will not expose business-sensitive Web services in a nonsecure environment. Finally, there are not enough production-level Web services available to warrant the widespread use of registries.
Greg Govatos is the vice-president of Chutney Technologies, which develops software for optimizing Web service infrastructures. He can be reached atgreg@chutneytech.com.