
The subject of Web 2.0 has become profoundly important over the last year. Web 2.0 describes the next generation of the Web as an application platform where most of a user's software experience resides. The subject is somewhat controversial, but it's becoming ever more apparent as the successor to monolithic system architecture, prepackaged software, and traditional Web applications.
Software as a Service (SAAS) and Web as Platform are only two of the larger mantras of Web 2.0 that most of the major software vendors have begun to embrace recently. Yet not only is Web 2.0 still very misunderstood, it's actually part of an even larger way of thinking about software in a fully service-oriented manner. This includes building composite applications, remixing data, building ad hoc supply chains, harnessing user involvement, aggregating knowledge, and more. Web 2.0 is becoming embodied in best practice sets such as service-oriented architecture (SOA).
The term Web 2.0 was originally coined by O'Reilly's Dale Dougherty to describe the forces behind the huge post-dot-com success of Internet companies like Google, eBay, Amazon, and iTunes, as well as noncommercial, emergent Web phenoms such as Wikipedia and BitTorrent. Web 2.0 describes Web experiences that fundamentally engage users by: 1) allowing them to participate in sharing information and enriching data freely, 2) readily offering their core functionality as open services to be composited or "mashed up" into new services and sites, and 3) placing the Web at the center of the software experience both in terms of data location as well as where the software is.
Applications in which the Web app is primarily an online catalog are changing the most. Instead of being just a way to browse for products or information, the Web 2.0 app is itself the tip of an iceberg that integrates services and data from multiple sources and then makes the results available to users and other Web 2.0 apps. At the end of the day, the integration achieved by one Web 2.0 app will likely get rolled up into someone else's Web 2.0 app.
Now evangelized by Tim O'Reilly and others as Web 2.0, the concepts themselves are not really new, but they are beginning to dominate the IT industry's collective consciousness. The powerful force of architecture of participation, which is the combined network effects of pervasive two-way participation (blogging, wikis, and media sharing), is having a huge effect and is creating a single, communal service architecture on the Web. In the end, users want access to information anywhere, from multiple sources, without synchronization, delay, or maintenance (software upgrades, data backups, etc.). Users want to be able to share knowledge and collaborate with peers. To do this they need to be using the same underlying set of technologies and paradigms, and this is what Web 2.0 promotes.
A Closer Look at Web 2.0
While large traditional software organizations such as Microsoft, IBM, and Oracle are struggling mightily to deliver traditional prepackaged software on long-term, aperiodic cycles, a newer generation of companies (Google, Yahoo!, Amazon, eBay, and many other smaller companies like 37signals and del.icio.us) are delivering capable software entirely online. This new agile way of providing functionality as a service over the Web provides a nimble, continuous experience with no software upgrades, and no synchronization of data or programs among work, home, or mobile locations. Equally important is that it provides a way to build new capabilities on top of existing functionality that becomes larger than the pieces.
Tim O'Reilly, one of the leading evangelists of the Web 2.0 approach, generally provides seven classic characteristics of Web 2.0 software. These are described in the subsections below.
Web as Platform
Software and services are now the same thing, and the Web has become a computing platform in its own right. The Web is where most software is moving for cost, convenience, agility, and increased overall value.
Harnessing Collective Intelligence
The network effects of massive amounts of users make the collaborative Web a much more potent force than stand-alone software. Wikipedia says network effects "cause a good or service to have a value to a potential customer dependent on the number of customers already owning that good or using that service." Put another way, online collaborative entities such as Wikipedia are a network effect of the combined contributions of their users. This is a classic example of the high-value emergent properties of Web 2.0 forces.
Data Is the Next Intel Inside
The core functionality of many modern information systems is not software; more accurately, it's the valuable data within it. Look at Google's search database, Amazon's products and associated reviews, or eBay's auctions. While the services these sites provide are also important and integral, the data they possess are just as important, perhaps even more so.
End of the Software Release Cycle
When software is on the Web, upgrading becomes a different experience. Discrete changes become less obvious while continuous improvement becomes the norm. Because services are always available 24 hours a day to anyone connected to the global Internet, upgrades and improvements to service are instantly available and encouraged to be as nondisruptive as possible.
Lightweight Programming Models
When the clients of Web software are numerous and diverse, complex standards can get in the way, reduce interoperability, and stifle connectivity. Web 2.0 realizes that demand for services will route around unnecessary impedance and leverage the easiest methods that work well. This has led to simpler services such as REST and RSS instead of SOAP and WS-* standards. Remixing and compositing of services is also much easier with clean, clear, simple models, and this has also promoted loose coupling and suppler services, especially in the large. Dynamic programming languages that support rapid change are becoming more popular too.
Software Above the Level of a Single Device
PCs are an increasingly smaller aspect of the Web. With so many different devices such as mobile phones, PDAs, and even digital video recorders and personal media servers becoming connected to the Web and both providing and consuming functionality and content, the Software as a Service landscape of the Web now includes these in the picture.
Rich User Experiences The Web has ceased to be about static Web pages. They still exist, but they are much less important. More central to the Web are rich user experiences that immerse the user in the functionality of the services available on the Web without getting in the way. The AJAX browser application model is famously a Web 2.0 technique that uses the raw ingredients of modern browsers to provide the full interactive experience of native applications to the user while leveraging XML Web services on the back end to provide access to data and services.
There are many interlocking, reinforcing details that are vital to appreciating the best practices in the Web 2.0 toolset, however, the intent of this article isn't to explain every nuance of Web 2.0. Instead the article should convey a general mental model of it and describe Web 2.0's striking similarity to the SOA model. The point is that Web 2.0 describes the Web as a galactic collection of high-value Web services to be used, reused, and leveraged to meet users' needs. The Web itself provides the universal fabric upon which all of this rests and this includes the standards, the users, and the data. The premise of this article is that Web 2.0 actually describes the Web as the convergence of software services into a global service-oriented architecture.
Web 2.0: The Web as the Global SOA
As the rich user experiences portion of Web 2.0 notes, Web pages as the face of the Web are becoming less important in general. Rather, the foundation for the Global SOA has Web services as the underpinning. Open Web services connect the silos of the data and functionality that often fragmented the previous generation of the Web by providing clearly formatted, machine-digestible information instead of the less useful visual HTML layout. This enables information consumers anywhere to take data from a service, present it, remix it, and syndicate it just as they need. Note that the exact mechanism of data sharing in Web 2.0, whether it's XML/HTTP, REST, RSS, SOAP, JSON, etc., doesn't matter as long as it's easily consumable (see Table 1).
When it comes to SOA and services, the principles of service-oriented architecture strongly encourage the liberation of the underlying functionality of software by providing ready, open access via standards. Web 2.0 also strongly promotes open services, as observed above. Both SOA and Web 2.0 embrace Web services in all their forms, though SOA usually has a more complex, hard-wired service model, while Web 2.0 encourages simpler, malleable forms with clear overlap in the middle.
Web 2.0 describes "data as the next Intel inside" and paints a vision of vast interactive access to back-end databases through an open service model. SOA encourages this as well.
Admittedly, most SOAs are still conceptually trapped inside an organization's firewall or VPN. Also, Web 2.0 envisions the global Web as the global stage upon which to act out grand visions of constructing vast supply chains of data and mashed-up functionality. However this is only a matter of scale and is not a genuine difference at all.
Do the connections between Web 2.0 and SOA go deeper, to a more fundamental level than sharing Web services, encouraging composition and reuse, and leveraging cross-cutting views of information to meet users' needs? Are Web 2.0 and SOA actually different at their core, and if not, how else do they relate?
In my opinion, there are at least two major conceptual connections between Web 2.0 and SOA. The first is that Web 2.0 can indeed be conceptualized as a Global SOA that is already hosting millions of services, thousands of composite applications, and millions of users, today. Second, many traditional brick-and-mortar businesses that are currently implementing SOA as their architectural model will need to connect their Web-facing apps to their internal SOAs, thereby aggregating them onto the Web for further use and composition by their business partners and customers.
Thus Web 2.0 is about the entire Web being a reusable, shareable, public SOA. It's also about organizations adding their own, extant SOAs to the Web. The majority of today's organizations that are withholding their SOA assets from the Global SOA will miss out on the benefits of leveraging large-scale network effects, customer self-service, harnessing users as co-developers via mash-ups, access to The Long Tail, and much more.
Note that the industry analyst firm Gartner recently reported that 80 percent of all software development would be based on SOA by 2008. By 2006, Gartner believes that 60 percent of the $527 billion IT professional services industry will be based on exploiting Web services and technology. This is serious convergence of focus. If it's true, this means that more than half of all software development, SOA and otherwise, will revolve around the Web technology, inside or outside organization boundaries. This means Web 2.0 and SOA will be so deeply intertwined that they will inevitably begin to converge into an almost indistinguishable set of software development practices (see Figure 2).
However the real question is: Do the deep connections between the two provide compelling advantages as IT departments and Internet businesses launch Web 2.0 applications, open services, and SOAs? One possible problem is that many people outside of the IT industry haven't heard of SOA. Even then, there are vociferous arguments about what SOA really is, just as there are endless debates about what exactly Web 2.0 is. However in the end, there are too many best practices that need to cross-pollinate and SOA's IT-bound sphere of influence isn't really a factor because people building Web 2.0 will mostly have the same skill sets and background. Only Web 2.0 architects will have to understand these techniques and their connections. Web 2.0 and SOA users themselves will generally be blissfully unaware of Web 2.0 or SOA as their underlying organizing principles.
All of this is not to say that Web 2.0 and SOA don't also have significantly divergent elements too. Web 2.0 emphasizes a social aspect that SOA is completely missing, and probably to its lasting detriment. SOA has much more central configuration control, management, and governance, while Web 2.0 is freewheeling, decentralized, grassroots, and has virtually no command and control structure. Web 2.0 also talks about presentation, and the front end is displayed to the user. SOA is largely silent on the issue of presentation, though it certainly admits its existence. SOA tends to be generic and faceless, whereas Web 2.0 shines brightly on human/service interaction. They seem to need each other to be whole. Finally, Web 2.0 is almost too informal and practically calls out for discipline, while SOA is mute and autistic in comparison, a technical virtuosity that wants to be social but that doesn't know how. UDDI? Not likely.
All of this encourages us to view one through the other to check basic principles. For example, SOA has best practices for building business processes into vast supply chains (and so does Web 2.0). SOA is also a mature view of software that eschews a technical view of information and data. Furthermore, it identifies a motive force for business processes via something called orchestration. This is a concept that Web 2.0 does not have explicitly and could certainly use, though its users provide it in some degree. SOA principles also encourage creation of a common vocabulary across establishing lexicons in language that is native to the domain.
SOA also gets very close to addressing a big issue in software development today: that too many IT systems tend to have technology myopia and ignore their most important elements - the people who use them and the way that they work. Web 2.0 gets this part even more right in all of the significant ways. Web 2.0 embraces people, collaboration, architectures of participation, social mechanisms, folksonomies, real-time feedback, etc. All of these are things that SOA - in its more traditional, corporate clothes - does not address, at least not explicitly. The complementary, highly overlapping nature between the two seems clear.
There are other synergies as well between these two powerful software approaches. One checks and finishes the other. SOA is both a heavyweight version of Web 2.0 and a key archetype for it as well (though admittedly, one that lacks a few important ingredients). What is compelling is that Web 2.0 actually has powerful mechanisms that complete a service landscape. For example, Web 2.0 offers services a face and includes numerous best practices for presentation and technical innovation such as radical decentralization for stability and scalability. In the service landscapes that are common today, there is a lot of SOA without the "A": services with nothing tying them together. Web 2.0 can be the "something" that integrates and visualizes these resources. Web 2.0 also identifies important techniques to immerse users into social processes that can make data and services exposed by SOA vastly more valuable.
Web 2.0 is really the Global SOA, available to the whole world today. Don't forget that it will also be connected to your local SOA in ways you will need and are barely beginning to suspect. Be prepared to leverage Web 2.0 and SOA, and reap the enormous benefits of these emerging mindsets and toolkits.