It’s been quite a week of discussion on Web 2.0 and its applicability to the enterprise. John Hagel did quite a write-up at the beginning of the week that was subsequently picked up by quite a number of folks (Nick Carr, Joe McKendrick, Dave Orchard, and Jason Kolb) including myself. Some of these cited one of my original articles that tied together some striking similarities between large-scale enterprise architecture and what’s happening on the Web today, titled Is Web 2.0 The Global SOA?
A lot of people have positively responded to this connection of concepts because the apparent convergence and similarity between these two organizing principles in software has become increasingly evident. This despite both ideas having been famously accused of either being too vague or not existing at all (some good non-existence citations for Web 2.0 and SOA here) despite clear evidence to the contrary. Part of the problem? Both Web 2.0 and SOA paint pictures on a very large conceptual canvas indeed, and it’s often hard to get one’s mind wrapped around them and their many implications.
What if I agree Web 2.0 and SOA are vaguely similar? So what?
A small but essential part of the issue is that the excitement and buzz that often floats above the Web 2.0 community makes the dull grey corridors of corporate IT look a lot less exciting. This makes some people interested in taking both the enthusiasm for the ideas, and the ideas themselves, and using them to improve the state of IT. I am one of them. But a hype and buzz transplant is not at the heart of the issue, it’s the genuinely similar patterns and structures between them that is. Of course, that presents its own set of challenges, especially since Web 2.0 and SOA are different though complementary in several important ways.
As I commented directly on Jason Kolb’s blog post on this topic, it’s often too easy to focus on just one aspect of SOA or Web 2.0 and compare them, and turn the question into a REST vs. SOAP debate, for instance. With so much conceptual real-estate described by both views, as top-level organizing principles, I do find that people often get stuck on one particular piece or another. I’ve heard time and again that “Web 2.0 is Ajax”, or “Web 2.0 is RSS”, or Web 2.0 is some other small bit of technology. I’ve heard similar things about Service-Oriented Architecture (SOA is about asynchronous messaging, SOA is WS-*, etc). At some point, the noise surrounding the debate distracts more than it helps, and that’s certainly something we all have to keep in mind.
I do like however Barry Briggs’ line when he says: “SOA is heavyweight but robust enterprise architecture; Web 2.0 is democratic, social and participant-based. On the surface, they are orthogonal. They target different problems: so it’s just as hard to imagine building a lightweight wiki with SOA as it is a global supply chain with (say) MySpace.“
Achieving Clarity of Mind with Web 2.0 and SOA
For my money, SOA is easier to understand for most people than Web 2.0, particularly people with technical backgrounds. This is partially because SOA is primarily an architectural concept. Web 2.0 is a good bit larger and messier because it directly addresses what I call the people problem. Too much software just doesn’t take into account the most important ingredient, the people that use it. Ross Mayfield actually had it right when he said a while back, somewhat tongue in cheek, that Web 2.0 is made of people.
In the end, the Web gets out ahead and shows us where IT is heading; that powered by network effects, people have become by far the most important factor in software. They are the source of the majority of content, information, revenue, traffic, and just about anything else you might care about. By taking advantage of this massive power on the edge of the network (both people and their computing/network power), we can build self-organizing communities that will dynamically form their own information ecosystems using the raw infrastructure they are provided. That is, if you embrace the possibilities rather than try to constrain them.
It becomes a type of open/closed principle problem in this respect. Too much of the software that exists today fails to allow unintended uses, discourages users by taking control away from them, forms walled gardens, and isolates them from other users, when the exact opposite is increasingly turning out to have the most value. I’ve said numerous times in the past that users don’t have to understand hardly anything about the ideas in Web 2.0 in order to be successful with it, but those that build Web 2.0 software need to have a very clear understanding of it indeed.
And so, for that latter audience, and the curious, I have tried over the last 6 months to build visualizations and graphics that explain many of the elements of Web 2.0 and how they relate. The Web 2.0 visualization that seems the most successful so far is my depiction of the Elements of the Web’s Next Generation, which I get about one request a week to reprint or reuse. In that vein, as I start to prepare for my SOA Web Services Edge session on this exact topic in June, I have begun creating a series of visualizations that tie the ideas of Web 2.0 and SOA together and I will present them here for discussion. In the end, I do believe that the connections between them are far from contrived and that they are literally two views of a single central idea that I have sometimes called a timeless way of building software.
Finally, we’re really starting to see actual Global SOA-style enterprise applications emerge such as the offerings by Rearden Commerce and One Network. I will write about these shortly to show how Web 2.0 and enterprise convergence is starting to happening on a large scale indeed.
Update: Informative new posts on this subject from Ramesh Loganathan, Abhishek Balaria, and Javier Cabrerizo.
Is all this big picture architecture thinking necessary? Or should people just focus on building great software?