I've been away for a while - traveling, working on product, celebrating my little boy's first birthday, and loosing my Outlook .pst file. But it's time to start again and Don's post about Steve Loughran and Edmund Smith's Alpine work is the perfect motivation. Alpine is a new Java WS kit that doesn't bother with JAXRPC's standard object mapping layer. Don noticed I was mentioned in the Alpine paper's acknowledgements and felt my fingerprints on some of the thinking, including his favorite quote:
My favorite quote (that channels a certain New Hampshire native who shows up in the acknowledgements):
We believe that only two categories of web service developer exist: those who are comfortable with XML and
want to work with it, and those who aren’t but end up doing so anyway.
I can't take credit for the phrasing, but I definitely agree on this point. Don also pointed out another quote:
If an XML-centric design were to prove equally unworkable, this might well mean that the promised flexibility of XML messaging infrastructures is not easily accessible to languages of the “Java generation” (in which we include C# and VB.NET), all of which share a similar static type system and object model. Should these
languages not prove flexible enough to exploit the full potential of XML, then it may be that the promise of XML messaging systems, both REST and SOAP, will only be realised by the next generation of platforms, be they extensions of existing languages, such as Comega, or XML runtimes such as Apache Cocoon and NetKernel by 1060 Research
This led to a lot of comments...
Dare was quick to blame WSDL and XSD, noting that POX/REST/AJAX systems don't have this problem. Certainly the customers I talk to who have done POX/REST systems are moving toward WSDL and XSD because they want metadata about services in order to facilitate reuse. Without it, they don't have a clear picture of what their systems are doing - or how to reuse them in other contexts. For a closed system, lack of descriptive metadata is fine. But if you want something open and reusable across apps, it really helps to have it.
MarkN suggested that the problem was deeper still: with XML itself being too complicated. I won't even go there; I don't know about you, but I don't feel like starting over. XML is totally tractable.
David threw up his hands, exclaiming that it was object model mapping that made Web services useful in the general case. He echoed Dare in bemoaning the complexity of WSDL and XSD and the inability to reign in the people who are addicted to it.
So having digested all that, here's my thinking...
I love that Steve and Edmund are going about creating the WS stack they want. It certainly nice to see people moving away from JAXRPC 1.0 as the definitive WS word in the Java world. I believe all WS tools should provide access to raw XML if desired. I believe JAXRPC 2.0 allows that, but I don't know if it would satisfy their requirements.
I reject the notion that we need to start over yet again with something simpler than XML. We might need something better than WSDL and XSD, but when I've argued for that in the past, the response has always been that that's what people have settled on and that alone makes it worthwhile.
Finally, I reject the notion that XML-centric design requires new languages and / or runtimes. It's not that those things wouldn't be useful, it's just that they aren't required. If vendors applied more creativity to solving the problems without reinventing the specs, languages, platforms, etc. and if developers were realistic about the extent to which it is possible or even desirable to hide XML, we would get to a much better place without starting over yet again.
Posted
May 31 2005, 02:48 PM
by
tim-ewald