Thursday, March 22, 2007

Enunciate 1.0

Web Cohesion is pleased to announce the release of Enunciate 1.0.

Enunciate is an open-source Web service deployment framework. The idea is simple: you develop your complete Web service API in source code. Make sure it's well-documented and that the metadata is correct, but don't worry about deployment descriptors, servlet configuration, packaging, or even interoperability.

From your source code, Enunciate will build a fully-documented, interoperable web application in the form of a web application archive (war file). A consolidated, annotated XML contract is generated at compile-time. Each service class is published as a SOAP endpoint, a REST endpoint, and a JSON endpoint according to the supplied metadata. Enunciate leverages JAX-WS and JAXB annotations, but is not a full implementation of either of those specifications.

Enunciate enables code-first development, but enforces interoperability at compile-time (the "compiled contract" development model). Client-side libraries for multiple platforms are also generated and made available for download from the web application.

Be sure to walk through the getting started guide, where you'll see an example of the straightforward, enabling approach to Web service development that Enunciate facilitates. And the getting started guide is more than just a "Hello, World" example; it's got multiple services, complex objects, web faults, and binary attachments.

1.0 is only the first public release version of Enunciate; there are a lot more features planned on the roadmap.

Monday, March 19, 2007

Compiled Contract Published

Web Cohesion is pleased to publish the first draft of Compiled Contract. Compiled contract is a development model for Web service programming. It is a resolution between the two opposing philosophies of web service development, contract-first and code-first, claiming the major benefits of both. The web service API is built and maintained in source code, but developers are warned at compile time about the possible ambiguities and interoperability issues in the generated contract. The compiled contract model is formalized in this document.