Discovering Services with UDDI





Discovering Services with UDDI

The UDDI (Universal Description, Discovery, and Integration) standard solves a unique problem with Web services: how to register, find, and bind to Web services your applications need. It does so by introducing a federated, SOAP-based database of Web services. As such, it is part of the baseline of specifications needed for building and understanding Web service technology. As a federated database, UDDI is replicated across the world to multiple machines.

With UDDI, you can register any kind of electronic service, including e-mail addresses, EDI (Electronic Data Interchange) endpoints, and (of course) SOAP-based Web services. This kind of flexibility is found throughout the UDDI design and architecture, and it is accomplished through the use of a relational model similar to the one found in SQL (Structured Query Language) databases. The key to UDDI is the tModel, or Type Model. This element takes the form of a GUID (Global Unique Identifier), which is used to identify universally (and then relationally map together) all kinds of important information, such as service and business information.

Microsoft, IBM, and Ariba created UDDI. While it was active, the UDDI group involved companies from every major software and hardware vendor. Recently, this group was retired, and now the OASIS group owns developing the UDDI standard. You can find access to the UDDI registry on many of these companies' UDDI Web sites, or you can access UDDI via SOAP. UDDI enables dynamic registration of services and dynamic searching.

Listing 2.6 is a sample UDDI SOAP message, including the HTTP headers.

A UDDI SOAP Message
POST /find_service HTTP/1.1
Host: www.KeithUDDI.org
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: ""

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
     <find_service
        businessKey="123123123123"
        generic="1.0"
        xmlns="urn:uddi-org:api" >
            <name>Keith's Magic Service</name>
     </find_service>
  </soap:Body>
</soap:Envelope>

UDDI is not just for the Internet. You can deploy a UDDI server within the enterprise of your business. Large companies typically have many services, both for other programs and for users. UDDI within the enterprise can be a cost-effective and deployable solution, in particular for companies that use many different technologies and platforms internally.

You will find more information about UDDI in Chapter 11, Discovery Web Services. You can also find the complete set of UDDI specifications at http://www.uddi.org.

Other Protocols

Three major design goals of Web services are that the standards involved should be composable, modular, and extensible. To this end, there are many other standards in addition to the ones discussed in this chapter. The majority of this book discusses these new specifications—including many from the XML Web Services Architecture. These other specifications cover how to handle all kinds of scenarios, such as security, reliability, and business orchestration in your Web service.


     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows