I am a huge proponent of doing “contract-first” (sometimes called “WSDL-first” or “schema-first”) development of web services. When creating web services as part of a Service Oriented Architecture (SOA), you want to design service oriented interfaces (SOIs) where information is passed to and from your service interface using XML documents. The definition of these SOIs is a contract defined by XML schemas and WSDL. This contract is your public interface to the outside world.
The idea of contract-first design is that instead of creating your implementation classes and then creating WSDL to expose the classes as web services (code-first), you create the WSDL and schemas first and then create the implementation classes to match the defined contract (contract-first). This is the best way to ensure interoperability and decoupling from service implementations.
The current IDE’s tend to provide good support of contract-first development for clients consuming web services. You point them to a WSDL and they create appropriate code (java or .NET) to consume the web service. Unfortunately, when it comes to creating web services that will be consumed by others, these same tools seem to assume that you have an existing implementation that you want to expose as a web service. It’s not that contract-first is not supported for exposing web services, it’s just that it’s not supported as seamlessly as code-first. I’m including some links to articles that cover following the contract-first approach using existing tools. The articles I’m including are mostly from a .NET perspective, but if you google “contract first” you can find a lot of people talking about this topic on both the .NET and java platforms.
Here is an article from Microsoft describing doing “Contract First” web service development with Visual Studio .NET and Eclipse:
Contract First Web Services Interoperability between Microsoft .NET and IBM WebSphere
Here is another article from MSDN magazine:
Contract-First Service Development
Here is an article from MSDN magazine that talks about enhancements in Visual Studio 2005 that help to support this type of development:
Developing .NET Web Services with Beta 2
Finally, here is a link to Microsoft’s main web services interop web site:
Web Services Developer Center: Web Services Interoperability
I don't want to end without mentioning Aaron Skonnard, who's the author of some of these articles and one of the biggest proponents of getting better tool support for contract-first development.
Monday, April 18, 2005
Friday, April 08, 2005
Pope John Paul II Buried Today
Pope John Paul II was buried today. I recorded his funeral, which aired at 4:00 am here, but I haven't had a chance to watch it, yet. I sang for a diocesan requiem mass for the Pope this afternoon at St. James Cathedral. It was very moving.
Our choir sang for the Pope at the Vatican back in 1993 and it was a life changing event. We got to have our picture taken with him and at that time it was apparent that he was no ordinary man. You could feel his holiness. My wife's comment today pretty much sums it up: "he was a saint walking among us".
Saint Pope John Paul II the Great, thank you for your inspiration. You will be sorely missed.
Our choir sang for the Pope at the Vatican back in 1993 and it was a life changing event. We got to have our picture taken with him and at that time it was apparent that he was no ordinary man. You could feel his holiness. My wife's comment today pretty much sums it up: "he was a saint walking among us".
Saint Pope John Paul II the Great, thank you for your inspiration. You will be sorely missed.
Subscribe to:
Comments (Atom)