1 Overview
This chapter discusses:
Service-Oriented Architecture (SOA) as an architectural style
Factors relating to the adoption and deployment of SOA within the enterprise
Using the TOGAF Architecture Development M
...
1 Overview
This chapter discusses:
Service-Oriented Architecture (SOA) as an architectural style
Factors relating to the adoption and deployment of SOA within the enterprise
Using the TOGAF Architecture Development Method (ADM) to develop your SOA
This chapter, where appropriate, includes references to Technical Standards and Guides developed by The Open Group SOA Work Group.
22.2 Introduction
As the business environment becomes more sophisticated, the challenges facing organizations are shifting away from questions of efficiency and automation
towards questions of complexity management and business agility.
Complex webs of existing applications and interfaces create highly complex landscapes where change becomes more and more difficult and the impacts of change
become harder to predict and understand.
The concept of SOA provides an architectural style that is specifically intended to simplify the business and the interoperation of different parts of that business. By
structuring capability as meaningful, granular services as opposed to opaque, silo'ed business units, it becomes possible to quickly identify functional capabilities of
an organization, avoid duplicating similar capabilities across the organization and quickly assemble new capabilities.
By standardizing the behavior and interoperation of services, it is possible to limit the impacts of change and also to understand in advance the likely chain of
impacts.
From a software development perspective, SOA focuses on structuring applications in a way that facilitates system flexibility and agility - a necessity in today's
complex and fast-moving business environment. SOA aims to break down traditional application silos into portfolios of more granular services that operate in open
and interoperable ways, while extracting commodity capability into a virtualized infrastructure platform of shared re-usable utility services.
22.3 SOA Definition
Note:
This section is provided for reader convenience. Part I, should be referred to for the formal definitions.
Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation.
Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.
A service is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data, consolidate
drilling reports, etc.) and:
Is self-contained
May be composed of other services
Is a "black box" to consumers of the service
An architectural style is the combination of distinctive features in which architecture is performed or expressed.
22.4 SOA Features
SOA is based on the design of the services - which mirror real-world business activities - comprising the enterprise (or inter-enterprise) business processes. Service
representation utilizes business descriptions to provide context (i.e., business process, goal, rule, policy, service interface, service component, etc.).
SOA places unique requirements on the infrastructure. Because of this, it is recommended that implementations use open standards to realize interoperability and
location transparency. For instance, the availability of services must somehow be documented in a place easily accessible by those requiring the use of those
services. An SOA-specific Directory Service and an Enterprise Service Bus (ESB) are two examples of technology implementations that require adherence to
relevant open standards to achieve the interoperability that SOA promises.
Implementations are enterprise environment-specific - they are constrained or enabled by context and must be described within that context. Given that, SOA
requires strong governance of service representation and implementation.
22.5 Enterprise Architecture and SOA
Enterprise architecture provides frameworks, tools, and techniques to assist organizations with the development and maintenance of their SOAs. Some of the key
benefits that enterprise architecture provides include:
Consistent abstractions of high-level strategies and deliverables to support planning and analysis
Linkage of different perspectives to a single business problem (e.g., business, information systems, technology, breadth, depth, level of detail, etc.) providing a
consistent model to address various domains and tests for completeness
Identification of clear roadmaps to achieve future state
Traceability that links IT and other assets to the business they support
Support for impact assessment, risk/value analysis, and portfolio management
Identified and documented principles, constraints, frameworks, patterns, and standards
Governance frameworks and processes that ensure appropriate authority for decision-making
Enterprise architecture becomes a foundation for service-orienting an organization, because it links stakeholders together, ensuring that the needs of each
stakeholder community are met and that each stakeholder community is aware of appropriate context. This linkage is the foundation for interoperability and re-use.
Through its linking of the business context to IT, enterprise architecture readily identifies and provides justification for the cost of change programs in relation to the
business value to be derived from the effort. Enterprise architecture may provide the context and analysis capabilities to:
Show how SOA solutions can be effectively architected to support business capabilities
Show which services should be built and which should be re-us
[Show More]