10 May 2005

A better WSDL

The project I'm currently working on is using Web Services as the integration point between itself an the outside world. After using it on a few previous projects, I once had no problems with WS, but have now come to look at it in a new light. There's a good adage that we've adopted, "if you have a problem and you pick XML as a solution, you now have two problems". I think the same sentiments can be levelled at WSDL.

We've found the technology we're using (Castor/Axis/XSD/etc.) to be "squidgy", such that it sometimes works and sometimes doesn't, failing silently sometimes, working other times when it should fail (for example allowing an operation to be invoked with no message, when the WSDL clearly states otherwise). We've taken steps to sure it up (such as hooking payload validation into the backend, but we're constantly butting heads with it, so much so, that we've developed a mini-methodology for working with changes to the WS interface (no such method required for Java integration points, they have their own niceties :).

I have no problem with WS in theory, sending XML across HTTP seems like a great way (albeit heavyweight) to do integration, what I do have a problem with is the current state of the standards and the tools (thankfully most are OSS so they can be improved readily).

Yes, we could have used a REST-based Web Service, but unfortunately bigger organisational issues prevented us from doing so. Still, it's not really the transport mechanism that is broken, much comes down to the way you declare your service, typically done using WSDL.

So it didn't really strike me as a surprise when I found that Tim Bray is also replacing WSDL with something better. He poses two options, his own SMEX-D and another, NSDL. Now, I'm yet to read either, but they both sound quite promising.

Update: XINS - XML Interface for Network Services seems to be another candidate in this simplification effort.

0 Comments:

Post a Comment

<< Home