My blog has moved and can now be found at

No action is needed on your part if you are already subscribed to this blog via e-mail or its syndication feed.

Saturday, December 10, 2005
« Caveats using DateTime when building Int... | Main | XML Schema to Object Mappings - Issues a... »

I am a big fan of Top-Down/Contract-First Style of web service development as a mechanism to improve web services interoperability.  I recently came across a series of articles from IBM on improving interoperability between J2EE and .NET. I wanted to explicitly call out their summary of best practices for web services interoperability:

  • Design the XSD and WSDL first, and program against the schema and interface.
  • If at all possible, avoid using the RPC/encoded style.
  • Wrap any weakly-typed collection objects with simple arrays of concrete types as the signature for Web service methods.
  • Avoid passing an array with null elements between Web services clients and servers.
  • Do not expose unsigned numerical data types in Web services methods. Consider creating wrapper methods to expose and transmit the data types.
  • Take care when mapping XSD types to a value type in one language and to a reference type in another. Define a complex type to wrap the value type and set the complex type to be null to indicate a null value.
  • Because base URIs are not well-defined in WSDL documents, avoid using relative URI references in namespace declarations.
  • To avoid conflicts resulting from different naming conventions among vendors, qualify each Web service with a unique domain name. Some tools offer custom mapping of namespaces to packages or provide refactoring of package names to resolve this problem.
  • Develop a comprehensive test suite for Web Services Interoperability Organization (WS-I) conformance verification.

Here are links to the articles:

Comments are closed.