| |
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.
|