On the surface, SOA (Service Oriented Architecture) seems a hard concept to wrap one’s head around due to the acronym’s vagueness. But in reality, the name is more confusing than the idea.
“SOA is a way of designing systems by composing them out of well-defined services as opposed to having monolithic applications,” said Arthur Ryman, development manager with IBM Canada in Mississauga, Ont.
To put it more simply, SOA takes a standard business application such as a customer profile application and changes it into a service shared across a business enterprise. Once a customer profile application becomes a service there is no need for every department in the company to have its own stand-alone customer profile application. Each department uses the same customer profile service thereby delivering consistent information to all users.
The advantage of this is when a banks’s personal banking division updates a customer’s personal information, that same customer information is now available to the bank’s insurance division, mutual fund division and business banking division through the customer profile service. This provides a consistent and accurate profile of that banking customer across the organization.
The goal of SOA is to break apart applications into reusable services, throw away the redundancies and deploy the rest over the network. What is aimed for is to make the sharing of business information and processes seamless across the entire enterprise thereby overcoming the tendency of ERP, CRM and SCM application to become monolithic and incommunicado silos of information.
Sounds simple, right? But is it really that simple? In fact it is.
All this is possible because SOA uses Web services. Web services are modular, self-contained components built on industry open standards. Web services is the mechanism used to build the services in an SOA environment as well as providing the means of communications between those services across the network in the enterprise.
Ronald Schmelzer, senior analysts with Waltham, Mass.-based ZapThink likens Web services and SOA to Legos. The SOA is a collection of Lego blocks that can be built in any number of ways and the little bumps on each of those blocks are the Web services allowing those different blocks to connect and communicate.
If there is any confusion surrounding SOA, it is because people use Web services and SOA interchangeably. In fact, a company can be using Web services without having in place an SOA. But it is not possible to have an SOA without Web services.
To simplify things a little, Web services can be thought of as technologies that connect things together, like those little bumps on the Legos. What those Web services connect are those services created by companies and developers, like the earlier example of the customer profile service. That customer profile service uses Web services to connect to other services in an enterprise, such as an accounts receivable service or to things like databases. So Web services facilitates the communication and exchange of data and information between services in an SOA.
Only, such services are not restricted to the confines set by a company’s walls. The advantage of using SOA and Web services is services can be shared amongst different companies or persons over the Internet.
A delivery company, for example, can use SOA so its delivery agents scattered around a city or across the country can use a service that identifies customer locations and delivery information. There is no need for stand-alone delivery applications to be deployed to each agent.
An automotive manufacturer can uses SOA and Web services to share manufacturing and accounting services between itself and its parts suppliers. Neither is left incommunicado because each company’s stand-alone applications cannot talk to each other.
“The advantage is that if a company creates these modular services, (these services) can be reused in many different ways,” said Sandra Rogers, director of SOA Web services and integration software with International Data Corp. in Framingham, Mass. “It adds a lot of efficiency, control and manageability.”
How does a company get that efficiency and manageability from SOA? Simple. Unlike stand-alone applications, services are much easier to create and modify to meet changing business needs. If a new business need arises a new service can be created instead of going out and buying a whole new application then integrating it into the enterprise.
As well, a service is much easier to deploy, integrate and maintain than a stand-alone application. If a company needs to add a new feature, it adds that feature to the service and everyone in the company gets that feature. That feature does not need to be added to each individual application sitting on someone’s desktop, laptop or handheld.
The cost savings alone from reducing the number of hours IT departments spend sending people out to remote locations or to individual desktops and laptops to install, change or update applications can be enough of an incentive to move to SOA.
Many companies are looking to SOA to help get different systems to communicate with each other. With more companies merging this becomes critical, IBM’s Ryman said, as the different companies — now cobbled together — often have different ways of storing and accessing information.
Ryman said the first step is to see if the applications in place conform to Web services standards. Most new applications now conform to those standards. If so, it easy to move application and business processes over to being service.
These standards are agreed upon sets of protocols allowing Web services and Web services-enabled applications to communicate and send information back and forth between each other. A list of these standards is available at http://dev2dev.bea.com/technologies/webservices/ standards.jsp.
Quick Link: 052840