Services-Oriented Architecture (SOA):
A Concise Definition and Discussion

A Services-Oriented Architecture (SOA) is a business approach that emphasizes the wide-spread sharing of common business processes to satisfy common business requirements, whether the sharing parties are in the same business unit, spread across the organization in different departments or divisions, or even in different companies.

Business applications designed and built to operate within a SOA are called “Composite Applications”, because they are “composed” of two major parts:  The service requester/consumer and the Web Service.  The service requester component sends a message over the Web asking the Web Service that provides a needed business function to perform that function.  The Web Service receives and interprets the request message, performs the requested business process, and sends back a message containing the results of the process.  The requester/consumer component, now changing roles, receives and “consumes” the results of the Web Service.

From an IT perspective, the SOA approach implements 3 core technical principles differently (and, maybe, better) compared to previous architectures.

1. First, Web Services “generalize” the business functions that they provide, making them widely shareable and reusable across a range of business scenarios.

2. Second, Web Services “abstract” and “externalize” the business functions by exposing and deploying the functionality independently outside of any specific application or silo, making the shared business functions readily available to all business processes.

3. Third, Web Services “standardize” to achieve cross-platform externalization through the rigorous use of open and non-proprietary standards and protocols defined and controlled by international standards bodies and supported by all software vendors.

When organizations successfully implement these three principles, any requester/consumer can use any Web Service across applications and business areas, and even across organizations (subject to security policies).

By implementing the SOA approach, organizations can achieve three inter-related sets of business benefits.

1. First, rigorous use of open standards and protocols fosters integration, making it much easier to move data around the organization and much easier to share common business processes.  Many organizations begin their SOA journey by building limited-scope “Tactical Web Services” to satisfy various data and application integration requirements and to “wrap” legacy application modules for redeployment as Web Services.  Later on their SOA journey, organizations may use the SOA approach to integrate their business processes internally with the business processes of other departments and divisions, and to integrate business processes with their suppliers, partners and customers, automating their B2B Supply/Value Chain to create an External SOA.

2. Second, organizations will begin to realize the benefits of reuse as they increase the numbers of business processes deployed as shared Web Services.  Since many business functions and applications share the same Web Services, the cost of extensibility (adding new business functions) and changing existing functionality decreases since the enhancement work occurs only once and is centrally managed.

3. Third, and perhaps most important, organizations should see major improvements in their business agility as they implement extensive Web Service collections using a SOA approach.  Business agility is defined as “Functional Flexibility x Deployment Speed”.  Web Services and SOA deliberately designed to provide generalization and externalization provide vehicles that foster relatively easy extensibility, and, thus, function flexibility.  On the speed side, the ability to add or change or combine business functions in a single shared Service, and immediately achieve business-wide impact, dramatically increases the capability of the organization to rapidly adapt to changing business conditions.

Because the SOA approach derives from and always revolves around the organization’s underlying business process, Methodology and Sociology, as well as Technology, play critical roles in the design, development, deployment and management of the SOA and its component Web Services.

  • The principal Methodology concerns include business process modeling to define and analyze business function requirements for deployment as shared Web Services, as well as the creation and oversight of the processes for designing, developing and managing shared Web Services, often called Governance and Stewardship.

  • The primary Sociology issues include helping the business leaders understand and accept their responsibility for SOA sponsorship, and the Change Planning and Change Management that help evolve the organization and its culture “from Siloed to Shared”.

  • The major Technology challenges depend on the stage of the SOA journey:

    • Initially, IT must learn and master the use of the SOA and Web Services standards and protocols, as well as the different design approaches required to create effective and efficient Web Services.

    • Later on the SOA journey, as the organization builds and deploys large, long-running, complex and distributed work flows that use many Web Services, IT will likely have to implement a coordination layer that mediates between the requestor/consumer and the Web Services layer to orchestrate and coordinate the work flow.  Depending of the vendors and platforms that the organization selects to implement its SOA, the coordination layer requirements may involve the deployment of an Enterprise Services Bus (ESB).

In summary, the SOA approach integrates both business and technical architecture to enable business organizations to increase their agility, efficiency and effectiveness.

 

 

Copyright © 2006, Paul S. Jacobson. All rights reserved.