My presentation this week on Web 2.0 and the Global SOA at the SOA Web Services Edge conference in New York City afforded an opportunity for me to spend some quality time on the subject and really organize my thoughts. Increasingly, this has been a subject of discussion in enterprise architecture and business strategy circles (John Hagel, Andrew McAfee, Ross Mayfield), and the strange attractor story of SOA and Web 2.0 convergence is only getting more interesting and relevant to software architects and business leaders. I do agree with Michael Platt however; namely that putting excessive attention on the technical plumbing risks the loss of decision maker’s attention, though at the corresponding risk of losing the folks that do the technical execution.
The result: While folks like myself and Peter Rip took early interest in this topic last year as the connections became clear, the discussion has continued on from a conversation into an larger industry dialog, including related events such Microsoft’s SPARK conference and many others.
One of the key concepts I focus on when talking about Web 2.0 and SOA is the idea of turning applications into platforms. This concept, and the focus on software via services (via user interfaces and Web services both), seems to be one of the more accessible starting points for this discussion. The convergence and overlap between both organizing principles in software seems to appear the most obvious at this perspective. Of course, service-oriented architecture initiatives tend to have application integration as one of their primary goals, while Web 2.0 software often has communities, user participation, and unintended uses as primary goals that are enabled by extremely simple consumption and integration. Both, however, are accomplished by exposing open, interoperable interfaces to the public so that the number of consumption scenarios increases and more value can be accessed or distributed. In this way, Web 2.0 and SOA both have the fundamental value of openness, with Web 2.0 having the clear edge on encouraging the important part: the potential (both positive and negative) of social computing.
Key point: Far beyond the world of acronyms, Web 2.0 is focused on using lightweight integration for a larger purpose; 1) low-barrier formation of communities and 2) enabling two-way use of information technology to create vibrant online ecosystems of people and their relationships and knowledge.
What’s interesting though is that business applications have always tended towards the collective intelligence aspect of which Web 2.0 software aspires. Enterprise users have always used their IT systems to create shared databases of customer information. And enterprises have increasingly let their customers do it for themselves as well. This information is then made available to the rest of the enterprise (albeit with often restricted access) and approved partners and suppliers. This has formed the basis of enterprise-wide record keeping for years and is a limited kind of harnessing collective external intelligence.
The part where enterprises often haven’t been so good is in harnessing their own collective intelligence. Enterprise workers can guard their organizational knowledge fiercely. Or the local tools just don’t support the sort of low-barrier, ad hoc knowledge collection that has been proven so successful with things like Wikipedia, leaving opportunities for storing knowledge or collaborating on the floor and unexploited.
That’s not to say some some haven’t argued that this vision isn’t ready for prime-time.
In addition, the Web itself continues to grab an increasingly larger share of the software architecture discussion. Technologies or approaches which don’t align themselves closely to the way the Web works will find increasing impedance for acceptance. Ajax is an example of it and is a extremely useful technique that provides zero-foot, rich software to the browser with nothing more than what can be found in any Web client. And Ajax demands the use of Web services in order to function. And specifically those based on pure HTTP, not SOAP, which no browser presently speaks today as a native protocol, despite its prevalence in SOAs today. Ultimately, Ajax is aligned with the way the Web works and forms a natural solution for many problems in online software.
This brings us to Web-style information architecture. Information stored in XML, referenced by URL hierarchies, and readily permalinked are increasingly coming into vogue (look at Flickr’s fairly sensical URL structure as a decent example.) Inability to access information by URL prevents indexing by major search engines, lightweight integration, or information navigability. Fighting the native structure of the Web essentially isolates services and and data from the things that made the Web such an interesting place to begin with.
Finally, the Web 2.0 way of designing, testing, and maintaining software, particularly the support of recombinant software by the virtue of simple JavaScript includes (client-side mashups) or simple, granular REST-style Web services, is facilitating the growth of a rising Global SOA or mashosphere. Lightweight Web services and syndication models like RSS and Atom are creating an information ecosystem that has virtually no barrier to consumption and integration. Essentially, with techniques that provide the right fertilizer, the Web garden has fostered better solutions for many integration scenarios than upfront design.
That’s not to say the future is entirely rosy. The Ajax model of software deployment is ripe for security issues, particularly the fact that the code itself is easy to manipulate and hack, such as around passwords and underlying access to Web services. Worse, there are not many tools for doing a lot of this yet and too often requires deeper knowledge of technology to pull off well than it should. And while user guided mashups and other self-service IT techniques are going to be an increasingly popular trend in software development, it’ll be years before the tools are good enough to fully enable it. Finally, there are data ownership issues, privacy, service level agreements, and even licensing models for mashed up functionality and data that are federated across an organization or the Web.
My best prediction for the future of Web 2.0 and SOA? It’s not that there will be a SOA 2.0, but rather a resurgence in interest in effective, simple, Web-aligned models for information creation, sharing, and management. In the end, it’s small pieces, loosely joined that has worked best over and over again. As Grady Booch pointed out (read the Systemantics entry) a little while back, all complex systems generally start out as simple systems that worked.
Where do you see Web 2.0 and SOA heading? Converging or on separate paths?
