SOA and Ajax

New trends and technologies are emerging and converging to create exciting opportunities for enterprise IT and business stakeholders. In this article, I will discuss Service Oriented Architecture (SOA), Ajax and other emerging trends and how they all play a role together in crafting the next generation enterprise.



SOA Today

SOA is an overarching architectural philosophy that has gained widespread adoption in the enterprise by helping enterprise IT to quickly respond to the agile needs of the business. The SOA scenario is broad with many vendors and standards. The concepts behind SOA are not really new and we frequently compare and contrast SOA with prior efforts at distributed computing such as CORBA and DCOM. The key difference between CORBA and current SOA is the ubiquity of adoption of Web services standards (collectively referred to as WS-*). One of the biggest problems with CORBA was that we couldn’t get IIOP across the firewall, since the only ports that IT opened for external users were for the ubiquitous HTTP/HTTPS. Table 1 shows a brief comparison of past and current integration/SOA approaches.

Table 1: Comparison of past and current SOA approaches

Benefits of SOA

SOA brings together the two major enterprise stakeholders: IT and the business unit. IT is responsible for designing, implementing and deploying the IT infrastructure and applications, while the business unit is responsible for delivering value to its customers and end users. This alignment is key to making SOA successful in an enterprise and is a major reason for the higher levels of acceptance for SOA versus earlier approaches.

Enterprises traditionally placed IT assets into silos (applications, databases, legacy systems, etc.). But with SOA, enterprises are beginning to realize the true benefits of reuse because SOA leverages current IT assets and advocates a wrap and reuse strategy. This liberates the enterprise IT infrastructure from silo-orientation to become more service-oriented in nature. It helps the enterprise foster service reuse across the company and also enables exposing services for easier integration and partner enablement.

Emerging Trends in Enterprise Software

Rich Internet Applications and Ajax

Ever since Jesse James Garrett coined the term Ajax in early 2005, it has spread like wildfire. Many were developing Ajax-based technology and solutions long before it was termed Ajax. Lucky for us, the term stuck and we now know what to call it. And, lucky for the industry, Google was bold enough to use and deploy Ajax-based Google Maps and GMail, igniting industry interest in the potential of Ajax. As enterprises experiment with the technology, users have noticed and are now demanding more richness from enterprise Web applications. This is creating considerable pressure on the enterprise to create new RIAs and to modernize existing Web applications with RIA technology, most notably Ajax.

Software as a Service (SaaS)

SaaS is a relatively new delivery mechanism that enables end users to use software without worrying about downloads, upgrades, patches, and other issues related to traditional applications. It is important to note that many equate SaaS with the older ASP model that merely delivers hosted applications via the Web. But older, monolithic ASP applications were closed, siloed applications. The new SaaS model is more about developing and delivering software applications built on services.

Enterprise Mashups & Composite Applications

As part of the adoption and implementation of SOA in the enterprise, we have also seen the emergence of Composite Applications. A composite application is composed of other applications and services, often including coordination between those services. In the Web 2.0 world, this concept is often referred to as a Mashup. The consumer Internet space has already seen an explosion of mashups. Wikipedia defines it this way: A mashup is a website or web application that uses content from more than one source to create a completely new service. This definition is too narrow and simplistic because I can replace “mashup” with “portal” and still have the same meaning. A mashup is much more than just pulling data from multiple sources to create a new service. It combines multiple data sources and semantics in order to provide new meaning (service) that would otherwise not be possible with those individual data sources. The key link here is the semantics that are either discovered or provided by the user in mashing up these data sources.

Using Ajax to deliver composite applications with a rich client interface is an obvious choice to enable consumption of messages from services within the client. Creating these mashups of data and applications is easier with an Ajax based client.

Despite their popularity in the consumer world, enterprises are still struggling to grasp the implications of mashups – especially in areas like security, governance and business models. Mashups can provide huge benefits to enterprises by advancing their SOA goals and fostering service reuse. New mashups can consume and coordinate services exposed from different silos of enterprise applications. Since past approaches were limited only to IT, there will be much broader exposure if services are published and leveraged by business users, both internal and external to the enterprise.

Enterprise Web 2.0

Another term gaining considerable traction in the last year is Web 2.0 (suddenly, “2.0” is being added to every industry term!). Rather than restating what Web 2.0 is or isn’t, I suggest Tim O’Reilly’s article, “What is Web 2.0” (See http://www.ebizq.net/topics/real_time_enterprise/features/6667.html). What I want to point out here is the potential emergence of Enterprise 2.0, which can be defined as enterprise computing leveraging Web 2.0 principles and concepts. I predict that consumer-oriented Web 2.0 concepts like tagging, folksonomy (informal community-based taxonomy), wikis, blogs, and RSS feeds will also gain adoption in the enterprise context. Web 2.0 concepts and techniques enable capturing the semantics of different data and resources within the enterprise. Together with SaaS, Ajax, and SOA, this could constitute Enterprise 2.0.

The Next Generation Enterprise: SOA+Ajax+Mashups = Smashups

With increasing adoption of SOA, RIA and other emerging trends discussed above, enterprises will become service providers and will no longer dictate the type of applications built and deployed on the enterprise IT infrastructure. An ecosystem of applications built upon services will clearly benefit the enterprise, as illustrated by companies like eBay and Amazon that already expose a wide variety of services to their partners and customers.

Challenges and Opportunities

While there seems to be a natural synergy between Ajax and SOA, it is not easy to achieve. Current Web applications are based on a page-based interaction model that exchanges reasonably coarse-grained data elements between the browser and server. Ajax disrupts this established architecture with asynchronous and finer-grained interactions. The best way for enterprises to address this disruption is by adopting SOA and creating a services layer that new Ajax/RIA applications can leverage.

Web services are becoming the preferred standards-based SOA approach for enabling external enterprise integration, leading to confusion between SOA and Web Services. Simply remember that SOA is architecture and Web Services is one current implementation technology that can be used to achieve SOA.

While SOA and Web services are gaining traction, there are still problems to be solved. SOA governance and management is crucial to enterprises. What is the impact of SOA/WS on security within an enterprise? What is the business justification for SOA adoption? The services to be exposed by an enterprise must be determined by business needs and not by technological capabilities. That is, don’t expose services just because you can. What is the pricing and funding model for SOA and Web services? Who pays for the IT infrastructure and resources required to create and support new shared services? How do we track and manage the usage of those services? These are just some of the issues that need to be addressed.

While most SOA efforts to date have focused on creating the services and business processes, Ajax (and other RIAs) enables us to put a face on SOA that brings consumers closer to the enterprise applications. One reason that Ajax and SOA complement one another so well is that Ajax understands XML, the defacto language of SOA.

The outlook is exciting. With the adoption of SOA, Ajax/RIA, Web 2.0, and mashups in the enterprise, there are endless possibilities to take your enterprise to the next level. The question is, are you ready?