The previous two chapters showed the generic Service-Oriented Architecture pattern and the Architecture Adapter pattern. These patterns illustrated the primary communication paths between services. There was a notable piece of the service-oriented architecture missing from both chapters ”an in-depth look at the service directory. The service directory facilitates location transparency in service-oriented architectures. Without the service directory, Web Services appear similar to what Java's Remote Method Invocation (RMI) has to offer: a way to communicate between services using remote protocols.
The combination of the communication protocols and a standardized directory could make Web Services as ubiquitous as the Web is today. Web Services can achieve this ubiquity by giving common locations to find services and robust interfaces to look up the exact service you want. In essence, a standardized service directory and the Web Service communication protocols and techniques give you a similar model to the Google search engine with Hypertext Transfer Protocol (HTTP) and Hypertext Markup Language (HTML) for locating and using published content.
Web Services and service-oriented architectures use the service directory much as you use the Yellow Pages to locate businesses that fulfill your needs. For example, if you need to find a place that can sell you coffee beans in Milwaukee, Wisconsin, it is worthwhile to first check the Milwaukee phone book's Yellow Pages , probably under the heading Coffee . Using better search criteria and depending on how much information a seller placed in the phone book, you can get closer and closer to the exact phone number of a business that can sell you unroasted coffee beans.
This chapter first looks at how you can use a service directory to help your P.T. Monday Coffee Company application, as well as how service directories get used in today's applications. You will then look at a generalized service directory structure that forms the basis of the Service Directory pattern. The bulk of this chapter discusses the Universal Description, Discovery, and Integration (UDDI) service directory interface. The UDDI service directory structure has not only gained acceptance, but it continues to gain dominance over other service directory implementations for the Web Service environment.