We began this chapter with a question: How does the requestor know what message format should be used to invoke a Web service? We motivated the role of service description within a service-oriented architecture and explained how service description was the basis for the publish, find, and bind operations. We reviewed the characteristics of a well-defined service and outlined a service description stack. The basis of a well-defined service is an IDL-level description of its interface, described using the Web Services Definition Language (WSDL). We reviewed the WSDL language in great detail, using Web service descriptions for several of SkatesTown's services. We also reviewed how WSDL relates to Java programming language artifacts, including building Java client-side proxies and server-side skeletons from a WSDL definition and generating WSDL definitions from existing Java program assets. We concluded this chapter by discussing the future direction of the Web service description stack, in particular the standardization efforts around the Web Services Endpoint Language (WSEL) and the Web Services Flow Language (WSFL).
In the next chapter, we will review the role of service registries in a service oriented architecture, and in particular, outline the role of the Universal Description Discovery and Integration (UDDI) standard.