March 14, 2011, 11:40 p.m.
posted by angryuser
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.
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.
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.