SOA (service-oriented architecture) is replacing Web services, which took the spot of object-oriented programming, which usurped the client/server computer, which supplanted mainframe computing as the primary way that companies design their applications. As the latest transition takes place, SOA is encountering some of the problems that the other initiatives had to overcome: a dramatic corporate retooling, which is needed in order to reap the advantage of the new programming capabilities.
At the moment, most corporations are just beginning this migration. While many observers view the transition as inevitable, questions remain about how quickly movement to SOA will take and what the payback will be for e-commerce companies that embrace it.
SOA is the latest quest designed to break the silo effect of application development. Traditionally, applications, such as a billing system or an order entry system, were built in a monolithic manner, with the programming code available only to that system.
SOA tries to define programming functions in a loosely coupled way. Not only are they no longer bound to applications, but also they are not tied to specific operating systems or programming languages. Theoretically, functions, such as updating inventory, are designed as distinct units (services), which can be distributed over a network.
There are many potential benefits of SOA. Companies can design software that can be shared across disparate business units and lower their long-term programming expenses. Existing services can be combined and reused to create new business processes, a change that promises to reduce application development significantly. Also, SOA can make it easier to design compliance reports; legacy systems can be modernized; and corporations can take advantage of new applications, such as unified communications and business intelligence.
However, making the switch from traditional architecture to SOA requires a significant investment. In most cases, a large enterprise would start off by spending more than US$1 million on the software, training and services, and then embark on a multiyear, multimillion-dollar endeavor.
To date, companies have been unwilling to make such investments. “The ramp-up to SOA has moved along slower than many of us anticipated,” admitted Dana Gardner, president and principal analyst at Interarbor Solutions.
Meanwhile, the term itself has become hard to pin down for a variety of reasons. Vendors have been rebranding old products and claiming they are SOA-compatible. Because it is not in their interest to have products that are fully compatible with their competitors’ technology, they are developing proprietary “value-added” extensions to their deployments, making it more difficult to mix and match different services.
SOA Means What Exactly?
The definition of SOA has been changing as the underlying technology has evolved. “One popular belief is that you must have an [Enterprise Service Bus] to do SOA, although it is a misguided belief propagated by the vendors,” Anne Thomas Manes, an analyst at Burton Group, told the E-Commerce Times. “An ESB is a useful tool in the toolbox, but it is not essential. SOA management and [Extensible Markup Language] gateways are typically much more valuable as core infrastructure products.”
Consequently, certain companies do not really know what they are investing in with SOA projects. Sometimes, multiple reasons are cited for new application development initiatives within any organization, so SOA appears as a buzzword justification for a number of unrelated individual priorities.
SOA’s actual rather than potential benefits are also hard to pinpoint. “Reuse is the major item that companies focus on when talking about SOA, but it is not feasible in many instances,” Jess Thompson, research vice president at Gartner, told the E-Commerce Times.
In select cases, applications could share a service, such as looking up a customer’s name and address, but in most instances, each service is specific to a particular business unit and not something that can be easily shared. In addition, most current SOA platforms have not been engineered to handle complex events, in which a pattern of activities — both random and scheduled — trigger a set of services, but such transactions are common, especially in high-transaction e-commerce environments. Consequently, SOA has not been a fit for some new projects.
The Quest to Quantify Agility
Vendors have also been selling the idea that IT department will become more agile and better able to respond to changing market factors by adopting SOA. However, that point is difficult to clarify and then quantify.
Another problem is most IT departments are overworked and unable to take on expansive new initiatives like SOA. “In the last several years, IT departments have been continually asked to do more with less,” Interarbor Solutions’ Gardner told the E-Commerce Times. “In response, they are working on many large, complex projects, such as server consolidation, virtualization, grid computing, SOA and now cloud computing. There are only so many projects that they can take on at any one time.”
While SOA has encountered a few roadblocks, it has also had its positive moments. The industry has begun moving to open source SOA products, which promises to drive down costs and expand SOA’s potential reach. The Eclipse Foundation has been promoting the Swordfish initiative; MuleSource delivers open source SOA products; and Iona launched its Fuse open source SOA products, which are based on the successful Apache project.
Other Initiatives to Drive Adoption
SOA also meshes nicely with other initiatives, such as virtualization, grid computing and cloud computing. All of these movements emphasize breaking software down into discrete components so it can dynamically be exchanged via something like an ESB.
The roots for SOA deployments are now being planted in many e-commerce companies. Questions remain about how long it will take before they sprout and then bloom, but the new programming option is expected to eventually take its place as the next dominant approach to application development.