The Right Tool
I’m a huge proponent of the KISS principle. So I don’t recommend using WS-* for all service interactions. If an application doesn’t require enterprisey infrastructure semantics, then it’s much more appropriate to use a simpler middleware system, such as “plain old XML” (POX) over HTTP. In fact, for applications that require Internet scalability (e.g., mass consumer-oriented services), POX is a much better solution than WS-*
I agree wholeheartedly, but then I would wouldn’t I? What’s interesting is her opening statement:
I’m one of the folks responsible for mixing the Kool-Aid. I presented at the W3C Workshop on Web Services (representing Sun). I participated in numerous standardization efforts at W3C, OASIS, WS-I, uddi.org, and JCP. I have a vested interest in making sure that WS-* succeeds.
Given this context the earlier quote is rather puzzling. Here’s my interpretation: the enterprise web service stack doesn’t scale and there’s some fundamental problem we can’t fix that means it never will. So, if you want your application to scale we recommend you use an alternative service technology
If the fundamental problem could be fixed then I would expect the recommendation to be that we wait for that to be sorted out, as we have waited through the various versions of the 60+ WS specifications. But instead we’re told that the WS-* stack doesn’t suit Internet-scale applications, only enterprise applications.
Where should the line be drawn between enterprise and Internet-scale? How do you even characterise Internet-scale? I think the only sensible scale characterisation is in terms of volume of transactions. Mass consumer-oriented services
suggests large numbers of concurrent transactions involving a large number of participants. But as organisations deal more directly with their customers, trade effectively with growing numbers of partners and coordinate activity between employees across the globe aren’t the systems needed to support these processes becoming more and more Internet-scale? In fact, when the enterprise term first emerged it was used to characterise very high volume systems to support things like EDI with trading partners. Now the reality is that WS-*, designed for the enterprise, isn’t up to the job.
I think this is a case of a technology finding its niche as I pointed out last year. Java went through a series of repositionings from its origins as a set-top box technology, through applets and the desktop before finally maturing into a place that suits its characteristics – building maintainable back-ends for web applications.
What’s the niche for WS-*? The vendors say it’s the enterprise which excludes organisations without a dedicated IT department. It also now excludes all organisations that wish to develop Internet-scale, high transaction volume applications. Its niche is those organisations that wish to build only applications that support their own processes, so long as those organisations are not themselves Internet-scale. So, if you’re a medium level organisation, not too small and not too large and you don’t deal with the public over the Internet then the 60+ specifications of the WS-* stack would appear to be suitable for you.
By the way, there’s a gem of a quote in the comments too:
WS-* makes J2EE look like a toy in terms of complexity.
Made me chuckle on the train this morning.
Technorati Tags: webservices, enterprisey



