Contract-First Design Techniques for Building Enterprise Web Services
Based on real development experience, the paper presents a collection of design techniques for building enterprise web services. By applying the techniques to web services development, not only the development increases reusability and productivity, but also the web services improve agility and compatibility.Enterprise web services require high grade of competency in designing web service contracts. A contract of web service formalizes an agreement between web service provider and consumer, in the forms of WSDLs, service schemas and policies. Though contract-first method provides great potential of directly dealing with the contracts, and a number of articles have been published regarding designing WS and XML schemas, however it is still hard for developers to find cookbooks or guidelines concentrated on designing web service contracts with contract-first method. To fill the gap, a set of design techniques are introduced and deployed in practice, incorporating some best practices scattered over the web services community. These techniques cover most of the key aspects of web service, including consolidating service schemas in line with business entities, constructing coarse-grained namespaces, applying versioning over WSDLs and service schemas, and writing fine-grained filters with contracts.