Tuesday, October 26, 2004

The Three Faces of Web Services

I love Tim Ewal’s piece on “3 faces of Web services”. In the company I work for, most people would consider XML over HTTP not to be a web service because of the two missing elements “Envelope” and “Body”. This is unfortunate, but understandable. Most vendors have the same self-interest that we all have… looking out for number one (and in some case, the stock holders :-)). As such, most vendors will push the idea that if you are not using their toolkit (SOAP, SO< etc.), then you are not using web services. But, as other have pointed out (Tim Ewal and Sam Ruby), this is not the case in the real world. In the real world developers have done what they needed to do to get the product out. If you are big enough (read eBay) you can get away with a lot if the benefits of your service are worth the cost of getting in. But what about the internal corporate developer who have to integrate with more than one internal system to get her job done? For such a person, the eBay model usually works in the beginning, but once you begin to grow and would like the benefits of say Single Secure Sign-On, standards and conformance become very important. Tim Ewal said the overlap between SOAP and “XML over HTTP” is about 98%. Put another way, the differences between SOAP and “XML over HTTP” is 2% (read Envelope and Body element). Why not just put your XML in a SOAP envelope? Think of the great benefits you can gain down the road with WS-* (the ones you care about that is). For this reason, and knowing what we know today) I think XML over HTTP is just wrong… “Give SOAP a Chance”. Some might say that adding something to the XML (i.e., Envelope and Body elements) goes against principles such as TDD, but I would say that applies to code not data.

DevCon 2004

Applied XML Developers Conference
Recently Tim Ewal posted a topic on wanting Relax NG. The premise of the blog is that Relax-NG provides a better sokution as compared to XSD. So why not adopt RNG instead? While I think Tim is right on, this feels like the VHS vs. Betamax debate. Most people felt that Betamax as better than VHS; yet VHS dominated the market (side note – I heard this was due in-part to the amount of porn videos that were release on VHS). So I say lets get on with it and embrace XSD. I'm sure it will be replace very soon... but not before its time. Fast forward to 2004, how many of you would buy a VHS tape when you have an option to buy a DVD instead. The same thing will happen with XSD; something better will come along and take hold. Along the way we will have some contenders (insert Laser Disk), but no technology will die before its time. Its time for XSD to live… give me the support (insert Tools… not porn) so I may live peacefully with my new friend (insert XSD).

... back to the topic

The Applied XML DevCon was simply awesome. The mode of the first day was somewhat pessimistic, but I learned a lot. Day two was more upbeat, but now I can’t get that song out of my head.

The truth of the matter is there are problems with the current stack of Web Services tools, specification, etc. out in the wild. Meanwhile, back in the real world, we are building application that work despite these imperfections and perceived drawbacks. I have yet to use perfect technology and if I did I would be worried. I’m convinced that no matter what the big vendors produce (read Microsoft and IBM); someone will find flaws and criticize it. However, this should not stop you form trying the technology... if it makes sense. In fact, you should welcome it. Most of the problems with these specifications is a result of not needing the technology. In that case, don’t use it. For the ones you need, just stay away from the edges if you don't have the stomach and you'll do fine. Most of the problems are indeed at the edges and not usually part of the core.

For more interesting summaries of the DevCon visit Chris's site for a list of sightings.