SOA and Web 2.0
Considered as a precursor to SOA, the term web service was terrible. In the early days of web services, there was a need to continually disambiguate a "web service" from "services on the Web" as they were commonly understood. A service on "the Web" was just that, a Web site such as Amazon.com or Expedia.com, something very different from an XML-based, cross platform interface for application communication. As time passed, however, web services passed into SOA and "services on the Web" passed into Web 2.0. At last, at least in their naming, the two can finally be differentiated. There are, however, forces at play that put SOA and Web 2.0 concepts in a special relation to one another, as if they were two different realizations of a single concept. The purpose of this section is to critically examine this relationship. Specifically, we are interested in what subsets of the Web 2.0 idea are relevant for SOA, especially in terms of the practical or business level requirements.
Current predictions put SOA and Web 2.0 in a type of schizophrenic relationship: some blog pundits claim they are convergent while opposing theories claim they are divergent. In order to get to the bottom of the matter, we will have to provide an exposition of the defining components of Web 2.0 and then examine which parts or subset of Web 2.0 really bears relation to SOA in an enterprise setting. The reader may find this particular section a bit loftier than others, but the trends we are dealing with have an amorphous character that tends to escape formalization.
What Is Web 2.0?
For the uninitiated, the term Web 2.0 currently refers to a cluster of concepts that characterize the direction in which the current Web is evolving. Due to this evolutionary nature, there is an inherent danger in pinning down and conclusively describing the current state of Web 2.0. It can be done, but only for a given point in time, as the Web 2.0 phenomenon is capricious and undergoing rapid change. Figure 4 shows our interpretation of the Web 2.0 cluster that includes what we believe are the most fundamental ideas.
Compared to other descriptions of Web 2.0, our six concepts may seem minimal, and we recognize that there is much more to be discussed for a full treatment of Web 2.0. Here we aim only at its essence. The totality of Web 2.0 is difficult to grasp at once because the Web 2.0 phenomenon is really more of a social construction. The enabling technologies behind the success of the Web 2.0 phenomenon aren't necessarily new or revolutionary. In fact, the six concepts described in Figure 4 can be arranged by means of a derivation from emergent Web 2.0 technology memes that are themselves derived from relatively ancient technology building blocks. The term ancient is used half jokingly to convey the short shelf-life of most technology (but clearly not all) standards.
You should be aware that Figure 5 introduces new terms and acronyms not yet discussed or defined-we will treat it as a sort of roadmap for this section of the article.
Figure 5 is quite busy and demands some further explanation. First, arrows represent antecedent conditions, which simply mean that the referring concepts play a central role in the derivation of the new concept. Note that the arrow styles (dotted and dashed) are included for the sake of readability. Figure 5 should be read backwards from right to left to see how the six core Web 2.0 concepts are composed of first emergent Web 2.0 memes, which are themselves tied back to real technology standards. The timeline shown on the left edge of the figure only applies to the left side of the figure-that is, to the left of the dotted line. It is shown to highlight a major difference between SOA and Web 2.0, which is that while SOA is undergoing rapid standardization that includes new technology building blocks, the major technology enablers of Web 2.0 have been in place for many years. This is the core reason why we conceive Web 2.0 as a largely social construction that innovates based not on novel technology, but instead innovative ways of using old technology.
- Content aggregation and syndication: This implies both the primacy of user generated data and its syndication (distribution). Its major technology roots are HTTP, XML, and RSS (Rich Site Summary, or Really Simple Syndication) and it enables key Web 2.0 features such as user contributed content, the proliferation of web logs, and the emergence of Wikis as knowledge management tools. In practice, this is embodied in Web sites that provide instant feedback on articles or utilize reputation systems to rate and weigh the priority of content on a page.
- REST: As described in the previous section, this is an architectural style that has come to mean a diversity of resources coupled with scarcity of verbs (Create, Read, Update, and Destroy). As suggested in the previous section, REST allows for alternative views of the Web. Its major technology roots are HTTP, XML and XML Schema. It enables key Web 2.0 features such a developer interfaces (such as the storage service example in the previous section) that further allows for mashups. Mashups are web applications that draw on disparate data stores available over the Web. This meme implies the primacy of data at a basic level, whether it is user generated or not, the goal is to give web applications an easy, natural mechanism to put old data together in new ways.