Web service developers have generally been limited to two different development models, each with its own advantages and disadvantages. The "code-first" model provides a familiar environment and a flexible development process, but has historically suffered from impaired interoperability. The "contract-first" development model allows for elevated interoperability, but at the cost of a high entry barrier, a steep learning curve, and a heavy development process. In an effort to leverage the best of both worlds, Web service developers are increasingly adopting a "code-first, contract-aware" approach.
The proposed presentation will attempt to sort out the complex issues that surface when establishing a flexible, reliable development model for interoperable Web services. The Enunciate project will be introduced as a possible solution to contract-aware Web service development.
A concrete demonstration of contract-aware Web service development will be provided using Enunciate. A rich set of services and domain objects will be published as a fully-documented, interoperable web application that exposes its service endpoints via SOAP, REST-XML, and JSON. Client code for multiple platforms will also be generated and exercised to demonstrate the powerful interoperability features of the deployed application. The application will be much more than a simple "Hello, World" service, sporting complex objects, one-way operations, and MTOM binary attachments.