No day at the beach for web services standards
Innoq was kind enough to draw up this nifty map of today’s extant Web Services standards.
This of course was throwing a proverbial softball to WS-* standards cynics like our friends over at MuleSource.
Oh the complexity! So confusing! So hard to learn! What where they thinking???
Standards weenies are an easy target. They’re anal retentive, they spend 5x more time in committees than developing software and more than infrequently, they generate an impractical standard (CORBA anyone?).
But I think the kvetching over the WS-* complexity is pretty overblown. What struck me looking at Innoq’s diagram is how similar it is to the Java class library (or any other major language’s class library for that matter).
There are major categories and sub categories, commonly used categories and more esoteric ones. While Java gets its own share of abuse for complexity, it hasn’t hindered its adoption. In fact Java is an indisputably successful language in terms of adoption. And learning all of the Java libraries is much more extensive than all of the WS-* standards.
My first point is in both cases, you don’t have to learn all the inner workings of either standard to make good use of it. You either:
1) Learn and choose to leverage only the most useful bits of the standard that are relevant for your project. For example, most every Java EE developer has utilized the standard’s messaging, JDBC connectivity, servlet engine and garbage collection. Most everyone skips the container based persistence model. Same thing with WS-*. I think most enterprisey folks would say WSDL is pretty useful and BPEL and WS-RM are getting a lot of pickup. But that doesn’t mean you have to use the other 20. Or you:
2) Utilize some combination of tools and platforms that hide the complexity of the underlying standards. For Java or C#, these are abundant, from app servers of all shapes and sizes to IDE’s to model-driven code generators. For XML and the WS-* stack, it’s still early days, but we’re starting to see tools and runtimes emerge. Sure they’re incomplete, slow and often difficult to use, but does anyone remember Java circa 1997?
My other point is that this evolution of the WS-* stack further reinforces a trend that’s already apparent to some: XML is the platform. Those of you who already read or write about the “programmable web” are probably saying “duh” right now, but I think that’s still a small minority of the tech community. I had a rather extensive discussion on this with my fellow Enterprise Irregulars and I heard back a variety of suppositions like “EC2 is the next major platform” or “Apex could be the next platform.” Nein. XML is the platform. Say it to yourself, think about it, sleep on it and be born again.
When XML fully realizes its potential as the next major platform, it's going to have a much greater impact than what most people anticipate today.
[Platforms], [XML], [WS-*]