The Web Will Find a Way
The biggest obstacle with those designing real web services is, I think, a certain kind of over-design. As somebody who’s not a fan of YAGNI and someone who actually encouages developers to think carefully about their design before writing a bunch of code, I’m somewhat leery of throwing around the charge of “over-design” but in this case I do think it’s warranted.
The problem with much of the service proposals I see, and particularly those that are focused on the “social” space or those that are focused on the general problem of discovery, is that too often they tend to want to address every conceivable problem, from security to schema versioning. This is a noble sentiment of course but it’s also somewhat misguided. Firstly, nobody has solved these very difficult problems like security on the level of a single enterprise consisting of a few thousand people. Proposing solutions for the web, which consists of a billions of strangers, is a tad premature. Secondly, and more importantly, these top-down end-to-end protocols tend to ignore the very organic nature of the web.
This is particularly true in the general problem of service discovery. With all the complexity you find in most service discovery protocols and the many standards available, from UDDI to XBEL, you might think that service discovery is a critical part of any distributed computing platform. But somehow the web has managed to scale out tremendously without a standard discovery mechanism. People exchanging URIs via email, im, sms and voice have proven to be enough for the most part. Indeed one might wonder that perhaps discovery isn’t a technical problem at all but is instead a fundamentally social problem.