dev-blog

Saturday, November 05, 2005

Desing Web Services "Contract First"

In the Web Service arena many developers have recognised that the good old software engineering principles still apply these days: First discuss and design the interface and then implement it:


I somehow agree with this principle due to the following reasons:
  • Interface constraints or restrictions cannot be expressed exactly enough using programming languages. For example: "enumerations of concrete values" or "date vs time" etc.
  • Interface very often contains only subset of the internal domain data, maybe even transformed, often restricted. A separate layer of mapping is usually anyway requred.
  • Designing the contract first encourages early discussion and agreement with service partners.
  • Designing the contract first encourages explicit considerations of interoparability compliance (for example WS-I Basic Profile) instead of completely relying on a tool


Web Service toolskits on the other hand often encourage developers to use there well known programming environment and extract a the contract (WSDL) .

Axis supports contract first with it's WSLD2Java tool.

The open question is how good J2EE Web services (JSR 109) support this approach?

0 Comments:

Post a Comment

<< Home