Well Defined Web Service
- Functional Description
- Nonfunctional Description
- Aggregation/Orchestration Description
- Stack Summary
What makes a good service description? What aspects of the Web service must be described in order for the Web service to be considered sufficiently defined?
Submissions to the W3C have described a stack of Web services description standards that describe various aspects of a Web service. Details based on this stack are depicted in Figure 1.
Figure 1 The service description stack.
The layers of the service description stack can be divided into two broad groups: functional layers and nonfunctional layers. The bottom three layers are functional in nature, in that they describe details of how the Web service is invoked, where it is invoked, and so on. The upper layers are nonfunctional, or nonoperational in nature, in that they do not directly inform the mechanisms of invocation, but rather provide other details that influence whether a service requestor would choose to invoke the Web service.
The bottom, functional layers of the service description stack define the interface definition language (IDL) equivalent of the service description. The interface description language layers for Web service description serve the same function as IDLs in other distributed computing approaches. Let's examine the relationships between these layers. Fundamentally, it is the functional description of the Web service that determines what the service requestor needs to do in order to invoke a Web service.
Like most things in Web services, XML is at the basis of service description. XML is the type definition that is exploited, by default, in the service implementation and service interface definition layers of the stack. XML describes the datatypes for the elements that flow within the SOAP message, and, in particular, within the SOAP payload, that need to be formatted by the service requestor and interpreted by the service provider. Much of the effort within a Web services infrastructure goes into properly encoding and decoding XML elements to/from native programming language objects.
The service implementation definition and the service interface definition both use the Web Services Description Language (WSDL) standard.
The service implementation definition describes where the service is locatedor, more precisely, to which network address the message must be sent in order to invoke the Web service.
The service interface definition describes exactly what message needs to be sent and how to use the various Internet standard messaging protocols and encoding schemes in order to format the message in a manner acceptable to the service provider.