Martin LaMonica wrote an interesting piece in Cnet lamenting the lack of “simplicity” in web services today. According to the article “Tim Bray, co-inventor of XML and director of Web technologies at Sun Microsystems, said recently that Web services standards have become ‘bloated, opaque and insanely complex.'”. I think Bray is being far too kind.
One the the criticisms we had with the Unix operating system kernel (BSD or System V – it didn’t matter which) while creating 386BSD was the continual problem of managing a “bloated kernel” into which everyone wanted to throw their special cool thing whether it belonged there or not. When we introduced modularity in 386BSD Release 1.0 however, the reduction in complexity was not easily visualized by traditional kernel programmers used to a monolithic design, and also relegating them to a piece of the pie instead of the entire pie seemed to a few more vocal critics as “demeaning”. Web services is facing the same bias, only this time from companies anxious to have their particular widget inscribed in the annals of orthodoxy even if they are so odd that they actually belong as a special case module.
So where’s the simplicity in web services? We’ll get it when we get out of low-level design and understand the architecture better (see William F. Jolitz’s article Web Services and DataCenter Environments in the April 2003 edition of Dr. Dobbs Journal article for more information). The key is architecture in design first. This is the only way you get reliability, scalability, and security from the get-go.
Unlike kernel design, web services don’t even have an established user base yet, while people have made use of ad hoc Internet solutions using databases, scripts, and HTML / XML successfully. So perhaps, like OSI could not displace TCP/IP, web services will also “eat themselves into the grave” before they ever achieve acceptance.