Service-Oriented Design (Part III: Service Design)
Service Oriented Design (Part III Service Design)
Before we can develop a service, we need to have defined the interface of that service. This is the mantra of the commonly accepted "WSDL first" approach to designing Web services, and it is also the basis for each of the three service design processes we describe in this chapter. Defining the service interface prior to development is important to establishing a highly standardized service-oriented architecture and required to realize a number of the characteristics we identified as being part of contemporary SOA.
Specifically, the following benefits can be attained by creating the service contract prior to the service logic:
- Services can be designed to accurately represent the context and function of their corresponding service candidates.
- Conventions can be applied to service operation names, which leads to standardized endpoint definitions.
- The granularity of operations can be modeled in abstract to provide consistent and predictable interface designs that also establish a message size and volume ratio suitable for the target communications infrastructure.
- Underlying applications are required to conform to the expression of the service design, not vice versa. (This often results in the need for a business façade layer to compose older components that rely on RPC-style communication.)
- The design of business services can be assisted by business analysts to ensure an accurate representation of business logic.
The process descriptions provided in this chapter are generic in nature and only suggest a series of steps for completing the design of service interfaces. They should be viewed as a starting point from which organizations can derive their own, custom design processes.
Note
The end result WSDL and XSD schema documents in these samples have been tested for compliance with the WS-I Basic Profile version 1.1.