Académique Documents
Professionnel Documents
Culture Documents
developing service-oriented
solutions
&
INTRODUCTION neering then advanced the state of the art and built
The evolution of software engineering has passed on the foundation laid by object orientation. The
through various eras, including structured pro- focus on the unit of deployment as the component
gramming, analysis, and design and undulated gradually gave way to a protocol of remote
between data orientation or process orientation until invocation of those components over a distributed
it finally brought us to the notion of object network using hitherto unprecedented consensus
1,2
orientation, where data and process unite to form
the object (class). An object exposes a set of
methods that can be invoked to manipulate under- ÓCopyright 2008 by International Business Machines Corporation. Copying in
printed form for private use is permitted without payment of royalty provided
lying data structures whose implementations are that (1) each reproduction is done without alteration and (2) the Journal
hidden from the invoker. Object-oriented (OO) reference and IBM copyright notice are included on the first page. The title
2 and abstract, but no other portions, of this paper may be copied or distributed
analysis and design (OOAD) methods abounded in royalty free without further permission by computer-based and other
information-service systems. Permission to republish any other portion of the
the early 1990s. Component-based software engi- paper must be obtained from the Editor. 0018-8670/08/$5.00 Ó 2008 IBM
SOMA is an end-to-end software development Our first case study is concise and demonstrates the
method for building SOA-based solutions. This SOA value derived from using the capabilities defined
method was harvested from hundreds of successful within SOMA that focus on the solution of key
experiences and lessons learned from the difficulties business problems. We use a pattern format to
and challenges encountered in early SOA design and convey this case study. The next case study is more
for an SOA project. They wanted to ensure that the service granularity and apply a defined set of
service plans and service features would be offered criteria called a service litmus test (SLT) to
consistently across the various channels: point of determine which candidate services are appropri-
sale, Web, and customer service representatives. ate to expose—that is, to publish using Web
The business logic and rules were maintained in Services Description Language (WSDL).
Technical feasibility exploration: Identify potential
their mainframe computer. The channels were
allowed to override the price plans offered by the viable solutions to various problems, such as the
back-end systems. This often led to a situation in conversational nature of the service request when
which a user could get certain features or price plans the front-end systems have to interact with back-
at a better discount from one channel compared end systems several times in order to service the
with the other. The company quickly realized that request. Multiple fine-grained transactions to
fulfill a service request have an impact on the
this is not a good business practice and made it
service performance and hence user experience.
business goal to provide consistent services across
all channels.
Consequences: The application of the above capa-
bility patterns helped in developing a solution to
Problem: To address the business goal of providing
resolve the challenges:
consistent service across channels while creating
new service orders. Discussions with the client
Duplicate logic was addressed by analyzing
subject-matter experts and detailed analysis of the
existing assets to develop refactoring approaches
relevant systems and IT environment revealed the
and by creating common reusable components.
following challenges and opportunities: The problem of multiple calls to back-end systems
was addressed by refactoring logic into appropri-
Duplicate logic had a negative impact on mainte-
ate SOA layers, by adding mediation logic in the
nance and support costs.
integration layer and business logic in the service-
Multiple calls to back-end systems resulted in
component layer, and by caching.
expensive mainframe CPU-cycle consumption and The inflexible design and architecture was recti-
had a negative impact on network traffic. fied by refactoring the code and by creating
An inflexible design and architecture could not
common reusable components.
support variations—for example, varying features Performance was improved by all of the above.
by region.
Performance was degraded by unstructured code,
Case study: XYZ Financial Services
duplicate code, and code that was not required— The XYZ Financial Services case study is a com-
that is, it did not support any specific business posite of real-world experiences with multiline
function. financial institutions. We use it to describe SOMA
concepts and the key activities of the method that
Solution: To address these problems, the following are recommended to identify, specify, realize,
SOMA capability patterns, also known as techniques implement, and deploy services as prescribed by the
(reusable parts of a larger method) were applied: SOMA method.
Service identification: Decompose the service- XYZ Financial Services, Inc., (XFS) has two major
order creation process to identify services. lines of business: insurance and investment. Its
Service specification: Develop service-interface and market analysis had revealed that the aging of baby
message specifications, service dependencies, boomers and their changing needs in their retire-
Business
modeling and
transformation
Business architecture
and models,
Solution SOA maturity, and Identification
management transformation Identifying
Hybrid solution roadmaps services,
type selection, components, flows
method adoption and and information
integration, project Realization
management, Decisions,
enterprise solution templates
architecture and patterns,
detailed SOA
Deployment, reference Specification
monitoring, and architecture, of services,
management technical feasibility components,
Packaging and prototyping flows and
provisioning, information
process and
performance Implementation
monitoring, and build/assembly:
management Construction,
generation, assembly,
integration
Testing:
Unit, integration,
UAT
Runtime governance,
monitoring and management
Figure 1
SOMA phases—a fractal model of software development
phase to identify existing components and objects connected with the notion of service evolution and
and their operations that we can reuse to realize the implies a focus on not only the risks associated with
services. And as a third example, we initially model the implementation, but also with the dependencies
dependencies among services when we define the associated with the service portfolio as services
service portfolio but we further elaborate the evolve through the life cycle. The notion of service
dependencies of services with components and dependencies on other services, and potentially
physical systems when we identify components and other dependencies on actual back-end systems,
make decisions to realize the services. In addition, databases, and components, must be called out.
we apply similar principles in successive levels of
detail to elaborate the SOA reference architecture as Thus, in SOMA, a prioritization of the service model
we progress in the SOMA life cycle. is conducted and based on a service-dependency
diagram and takes into account the risk factors
The second principle of fractal software develop- involved in the IT aspects of the architecture. A
ment is successive iteration. The concepts of subset of services is prioritized for the next
iterative and incremental development life cycles implementation release in which technical feasibil-
have existed for a long time. They focus on ity is planned for, measured, and exercised within a
prioritization and mitigation of risk factors in order proof-of-concept prototype.
to ensure the product quality of the solution. This
has its roots in the spiral model of software Over time, functionality or business capabilities that
10
development by Boehm. Successive iteration is were not selected for service exposure may get
Figure 2
SOMA life-cycle high-level flow
identified in a later iteration, when they are this phase is not strictly required but is highly
reassessed using the SOMA SLTs, and a determina- recommended.
tion is made whether they should be exposed as
services in this release or implemented in a Solution management
traditional manner. SOA solutions are hybrid in nature and typically
include multiple solution types. This is because
The flow shown in Figure 2 is a sequential depiction services identified and specified during the early
of the overall fractal flow at a high level. Whereas phases in SOMA can be realized in subsequent
Figure 1 depicts the capability patterns and fractal phases of SOMA by different scenarios, such as
nature of the SOMA method, Figure 2 illustrates a custom development, legacy integration and trans-
typical process flow of an engagement executing the formation, and package application integration.
SOMA method. In this paper we focus primarily on
SOMA is designed to support the hybrid nature of
the identification, specification, and realization
SOA solutions and it prescribes specific activities
phases. In the following sections, for lack of space,
and guidance to implement each of the above
we do not discuss the details of the roles; we do
solution types. In the SOMA method, the method
discuss activities, tasks, some work products, and
content common to all SOA solution types is
some guidance concerning tasks. Collectively this separated from the variable method content that is
constitutes the method. dependent on specific solution types. The variable
method content—tasks, work products, roles, and
Business modeling and transformation guidance—specific to each of the solution types is
In this phase, the business is modeled, simulated, defined and externalized as a method template
and optimized, and a focal area for transformation is called a solution template. At the beginning of an
identified that will drive a series of subsequent engagement and subsequently when realization
projects using the set of phases shown in Figure 2 decisions for the services are made, we typically
and discussed in the following sections. Note that discover and select the solution types needed to
In the case of XFS, the existing customer relation- Thus, multiple complimentary techniques are in-
ship management (CRM) system is used to access troduced during SOMA identification to identify
customer information from the customer database. candidate services as well as components and flows.
Hence, the solution template for package application In this paper, we primarily focus on service
integration was selected. This solution template identification rather than component and business-
provides prescriptive tasks necessary to integrate process flow identification, although the latter is
with packaged applications such as, in this case, a also mentioned.
CRM system from SAP AG.
Services are initially designated as candidate during
Identification phase identification because all identified business capa-
The identification phase pertains to the identifica- bilities and functionalities will not have to be
tion of the three fundamental constructs of SOA: exposed as services nor will funding be available to
services, components, and flows. Our experience cover them all. Furthermore, only the relevant
indicates that it is a best practice to utilize a set of subset of candidate services will become exposed
complementary service identification techniques. services, and thus participate in a given release. The
Relying on a single technique tends to create an entire service portfolio will often have to be
incomplete set of services. This introduces infor- staggered over several releases. Thus, services
mation entropy early in the development life cycle, designated as exposed will still be implemented,
often to be remedied at greater cost later in the albeit not as Web services but as functionality
service life cycle as it entails greater efforts of implemented in the ordinary course of software
service refactoring. Additionally, this often leads to development, such as methods on the component or
the failure to identify service dependencies early on, mapped to application program interfaces (APIs) or
which impacts release planning and, ultimately, transactions of the back-end legacy system. When
project delivery. and if business prioritization of needs is able to
make a strong case, some of those unexposed
We conduct an initial pass of service identification services will be reevaluated using the service
techniques to identify the candidate services. Upon refactoring and rationalization activity and may
further assessment, we perform service refactoring make their way back into the service portfolio over
and rationalization opportunistically, which in- the lifetime of another release.
cludes the essential task of filtering out those
business capabilities that will be exposed as services Three main service identification techniques
within the scope of the project. The latter assess- Service identification follows three main comple-
ment includes the SLT technique. mentary techniques: GSM, domain decomposition,
and existing asset analysis. GSM uses an approach
The recommendation is to start by aligning services that is predicated on business challenges and
with business goals, a step we call goal-service opportunities, corporate strategy, and business
modeling (GSM). This aligns IT execution with goals. Domain decomposition—which comprises
business drivers, imperatives, and objectives as well multiple service identification techniques of its
as monitoring and managing the scope of further own—uses a top-down analysis technique that is
business-process modeling and existing asset anal- focused on business process modeling, rules,
ysis. information, and variation-oriented analysis. Asset
analysis addresses the fact that an organization
SOMA identification is a process of identifying typically will have acquired more than a quarter of a
candidate services and creating a service portfolio of century of legacy systems and applications that are
business-aligned IT services that collectively support integrated and enhanced and whose ongoing sup-
the business processes and goals of the organiza- port requires a significant amount of funding. One of
1.1.1 Enable banking products Increase number of customers Number of accounts opened Open account
such as checking, savings, using banking products in banking products such Close account
money market accounts, as checking, savings, money Get banking customer
CDs online market accounts, CDs report
1.1.1.1 Enable banking services Increase number of customers Number of banking services Make payment
such as bill payment, fund using banking services through various channels Transfer funds
transfers, check status, and Get account summary
check reorders via Number of transactions Get account activities
self-service portal or IVR initiated by various Order checks
(integrated voice response) channels Get check status
Get statement
Get payment history
identify services, components, and flows. We A dynamic view of an enterprise is reflected in its
analyze both static and dynamic views of the business processes. Typically, processes are identi-
business including information, rules, and varia- fied and a process hierarchy is developed for a
tions. business domain to initiate the process modeling
and decomposition. A subset of business processes
The business domain is partitioned into coarse- traceable to relevant business goals requires more
grained functional areas to arrive at a static view of detailed process modeling and decomposition to
its underlying structure. The key elements of a gain further insight into the interactions of the
functional area are the business functions it is selected set of business processes. The objective of
responsible for, the business entities that participate process modeling is to define to-be representations
in fulfilling those responsibilities, and the associated of business processes by taking into account as-is
policies and rules. The process of information process models, best practices, industry and refer-
analysis begins with the identification of business ence models, the goal-service model, and process
entities. Further partitioning is performed to arrive optimization for the purpose of identifying services
at set of loosely coupled subsystems as logical IT and their composition and flows. Reference to
boundaries for carrying business functionalities. The industry models is recommended in order to adopt
domains and their functional areas are initial de facto standards and leverage existing assets—
connections to governance under SOA; they will be which is a corresponding capability pattern within
the owners of the services. SOMA. The process, subprocess, and process
activities are then considered as candidate services
The results of domain decomposition in our case with some filtering criteria.
study are shown in Table 2. We focused on the
account services and customer management do- In our case study, a process hierarchy was first
mains for analysis in accordance with the scope developed for the Manage Account business pro-
defined by the goal-service model. cess, and further process decomposition of Open
Collection recovery
Credit administration
Account and Make Payment subprocesses was that were identified are: customer, account, product,
performed to identify candidate services (see transaction, and statement.
Table 3). Processes and activities from process
decomposition are added to the service model. Some The life-cycle methods for these significant business
of these services are also identified during GSM, and entities are added as candidate services to the
hence can validate the service model. service portfolio. At XFS there was a need to support
marketing and outreach programs to educate their
Information flows through all three constructs of existing customers from the insurance and invest-
SOA, namely, service, component, and flows. A ment lines of business about the new banking
common business glossary is essential so that products and services. A candidate information
everyone in the enterprise can learn to speak the service was identified that would make it possible to
same terminology, to define a consistent way to search the customer base by factors such as location
express the business in terms of information, and to and net assets. As result of information analysis, the
ensure that terms mean the same for all parties. following services were added to the service
Business entities identified during functional area portfolio: Get Customer, Update Customer, Delete
analysis and data flow in the business processes (if Customer, Create Account, Get Account, Update
available) are the two key inputs to information Account, Delete Account, Create Transaction, Get
analysis. In addition, existing client information Transaction, Update Transaction, Delete Transac-
models and industry models—such as IBM Infor- tion, and Search Customer.
mation Framework (IFW), IBM Insurance Applica-
tion Architecture (IAA), ACORD** (Association for Rules and policies drive day-to-day business in the
Cooperative Operations Research and Development) financial services sector. Rule and policy analysis is
standards for the insurance industry, and TF Forum essential when a large number of rules are involved
Enhanced Telecom Operations Map** (eTOM)—are within the scope. Rules are typically recorded during
also potential inputs. Information life-cycle methods process modeling. In rules and policy analysis, we
(create, retrieve, update, and delete) for each of the collect all instances of rules, categorize the rules into
key entities might be considered as candidate rule types, and identify candidate rule services
information services. In addition, we analyze the based on rule types.
existing information systems and data sources and,
depending on the disparity in the same kinds of Variation-oriented analysis (VOA) identifies com-
information from multiple data sources, we identify monalities and variations in the process, structure,
12
additional services to provide a consistent view of data, and rules. VOA is a necessary part of service
the data for the enterprise. The life cycles of modeling to ensure reusability and robustness of
business entities are analyzed for further candidate service design. Structural variations for XFS were
services. In the case study, the key business entities the following:
Process variations are identified to handle recurring The comprehensive service model for the case study
versus one-time payment requests. Additional pro- after applying all the complementary techniques for
cess activity to schedule the next payment is service identification is shown in Table 4.
performed for recurring payment requests. Hence,
Schedule Next Payment is added to the service Service refactoring and rationalization
portfolio as a candidate service. This activity consists of three parts: refactoring of
services, the service litmus tests, and rationaliza-
Existing asset analysis tion. Services in the services hierarchy are refac-
In this activity, the SOA architect conducts a high- tored in such a way that lower-level services that
level analysis of existing systems, application have some kind of logical affinity are grouped
services, and other assets available to the project. together under a higher-level service. Subsequently,
1.2.5.3. Submit Payment the SLTs are applied to the set of candidate services
to yield a set of exposed services. The services that
1.2.5.3.1. Validate Payment
have failed the SLTs will still be implemented as
1.2.5.3.2. Process Payment ordinary functionality within, for example, Sun
1.2.5.3.2. Schedule Next Payment
Enterprise JavaBeans** or mapped to back-end
legacy systems, but will not be exposed as Web
1.3. Close Account services. Note that not all services will be imple-
1.4. Order Checks mented in WSDL, but may be deferred to a later
release for this form of implementation. The
1.5. Get Statement
functionality will most likely still be required and
2. Maintain Account will continue to be implemented by traditional
2.1. Create Account
means, but within the context and principles
outlined by SOA. A release plan will include
2.2. Update Account dependencies between services, components, flows,
2.3. Delete Account information, and rules. Rationalization consists of a
review of the service model with the business
3. Get Account
stakeholders to verify the continued relevance of the
3.1. Get Account Summary services that have been selected for exposure and
4. Maintain Transaction
subsequently planned for and funded to be built in
the next release.
4.1. Create Transaction
We categorize or group services by functional areas
4.2. Update Transaction
to define a service hierarchy and we maintain
4.3. Delete Transaction parent-child relationships between services in the
5. Get Transaction hierarchy, later to be used in separating out services
and operations.
The combined application of technical feasibility Refactoring of existing assets and code in prepara-
exploration and service refactoring and rationaliza- tion for making decisions about how to realize a
tion accelerates SOA projects and helps in focusing given service (e.g., with the back-end legacy
development efforts and resources and in alleviating application) must be given careful thought and
risk. preparation. We analyze the system interfaces and
the input and output parameters of the existing
Specification phase
systems and perform a fine-grained mapping of the
In the SOMA specification phase, the SOA is
service to a specific legacy application transaction or
designed. High-level design as well as significant
batch process. The mapping provides a potential set
parts of the detailed design of service components is
of realization decisions for the SOA. The leveraging
completed in this phase. During the specification
of existing assets through refactoring and mapping
phase, we leverage the existing assets and further
to services is a key aspect of service orientation. For
elaborate the services, flows, and components from
example, we need to identify duplicate, unstruc-
the identification phase in an iterative and incre- tured, and unused code before we can rationalize
mental fashion to help reach the realization deci- and encapsulate the functionality to be exposed as a
sion. The service model is further elaborated in shared service across channels and consumers.
terms of service dependencies, flows and composi-
tion, events, rules and policies, operations, mes- Service specification
sages, nonfunctional requirements, and state Service specification is the core of the service
management decisions. modeling activity and focuses on elaborating the
detailed design of the services. The dependencies of
We perform two foundational and preparatory services on other services, components, or applica-
activities before we elaborate and specify the tions, the composition of services, and the flow
services, flows, and subsystems (component among services together define the realization and
boundaries): first, we elaborate and specify infor- choreography of services to enable business func-
mation models, and second, perform further fine- tions and processes. Service operations are invoked
grained analysis and specification of existing assets. to execute a business function in an IT implemen-
tation and hence are a key addition in the service
Business entities and their high-level structure and model. Service operations are designated based on
relationships (entity relationship diagrams are rele- service granularity, functional affinity, and cohe-
vant to the service scope) are identified during the siveness of services in the service hierarchy. When
identification phase. We elaborate the conceptual identifying service operations, we look only for
data model into a logical data model to populate the services in the service hierarchy that are to be
attributes to be implemented, which must be exposed (i.e., those that passed the SLTs). After
defined in terms of their domains or logical data service operations are identified, the service hierar-
types (e.g., character, number, date, and picture). chy will contain services that will not be exposed as
well as services and their operations that will be
In doing specification, we also focus on the design of exposed. All service operations map to operation in
service messages which include input, output, and WSDL during IT implementation. Exposed services
error messages. In order to eliminate multiple data and service operations are mapped into IT imple-
transformations in the service layer, a best practice mentation as one of following three scenarios, as
is to use a common message model that is accepted illustrated in Figure 3:
by the enterprise. The model defines the message
flow in the services layer. In the canonical message 1. Service operations of an unexposed service
model, we select the message format (e.g., Extensi- 2. Both service and its service operation are exposed
Scenario 2a
Scenario 2b exposed WSDL
Service
WSDL exposed Service name
2
Service name Service operation Port type name
Port type name exposed Operation name
Service
Operation name 3 exposed
Service operation
Scenario 3a
WSDL
Service name
Port type name
Operation name
Figure 3
Service model mapping into IT implementation as WSDL using three different scenarios, noted in the
red numbered boxes
3. Both service and it service operations are exposed and indicate the flow of messages between services
but the parent of the exposed service is a and the various underlying systems that implement
functional area in the service hierarchy them. We describe the input, output, and error
messages for a service operation based on a
Service operations are typically described in busi- canonical message model defined earlier. We also
ness use cases where requirements are gathered. We map parameters of service operations to the
advocate the use of service-cases (see the section
parameters of existing asset interfaces so service
‘‘Paradigm shift from OO to SOA’’ above for more
operations can be realized by leveraging those
detail) as an alternative. We specify the nonfunc-
interfaces. We identify the fit gap, specify how to
tional requirements affecting the quality of service
bridge the gap, and realize the gap using extension,
(QoS) (e.g., cost of transaction, performance,
configuration, and customization in order to lever-
availability, and security) for the service and its
age existing assets.
operations. The nonfunctional requirements will be
used to commit resources for service components
Although services in SOA are stateless, state
that offer the services and to fund the realization
management decisions ensure that the entities acted
and maintenance of service components that will
upon during the service invocation are at the right
ensure the delivery of the QoS over time.
transactional state. We also document invocation
We develop a service context diagram depicting the and messaging styles, such as one-way and request-
service ecosystem for a group of related services response, for the services. In a one-way message
illustrating service consumers and service providers exchange pattern, the sender gives a best effort to
<<Functional component>>
Transaction
<<Functional component>>
Account
Figure 4
Composition of a financial transaction processing subsystem
move a message from a source location to the components into a set of functional components
destination. In a request-response message ex- (supporting business capabilities) and we look for
change pattern, a client asks a service provider a the technical components responsible for providing
question and then receives the answer to the auxiliary support from the perspective of technology
question, which may be a fault or exception. and infrastructure. As we perform OOAD within a
subsystem, we are able to specify the service
Subsystem analysis components that realize the subsystems. We model
Subsystems signify logical IT boundaries for busi- the static and dynamic behavior of service compo-
ness functionality. Subsystems are identified by nents by defining service component interfaces,
functional decomposition of functional areas. Func- developing component diagrams, identifying de-
tional areas and the subsystems that exist in those pendencies on functional and technical components,
functional areas are refined into coarse-grained and determining the internal flows of the compo-
service components that are each responsible for a nents. We select such patterns as the enterprise
13
functional aspect of the subsystem. A major output component pattern to represent the inner structure
of this task is a subsystem dependency diagram that of components for each of the service components
shows the dependencies of all subsystems and their and, depending on the complexity and function of
interfaces to one another and identifies underlying the service components, all or a subset of the
existing assets. We typically apply OOAD within the enterprise component pattern is used to generate the
confine of subsystems to better partition object component specification, as shown in Figure 5 for
graphs with fewer dependencies, as shown in XFS.
Figure 4 for XFS. This is in contrast to using OOAD
for the entire system and building traditionally Realization phase
larger and more unwieldy object associations. We validate realization decisions by performing
technical feasibility exploration that seeks to exer-
Component specification cise the architectural decisions and highest project
During component specification we explore the use risk factors through extensible prototypes designed
of patterns that can help us to structure service and developed early on.
<<Mediator>>
Account manager
<<Technical component>>
Rule engine
Figure 5
Account management service component specification using the enterprise component pattern (static view)
Selection and instantiation of patterns is funda- adopting SOMA and its underlying technological
mental to successful and repeatable SOA deploy- infrastructure.
ment. We select corresponding pattern categories to
handle several problem domains including infor- SOA reference architecture layers
mation service patterns for information realiza- In SOMA, as we discover the key elements and
14
tion, enterprise service bus (ESB) patterns for produce work products, we gradually populate a
15 16
integration scenarios, and rule patterns for rule reference architecture that provides a snapshot view
realization. of our SOA. This view facilitates communication
and provides a representation of progress and
Technical feasibility exploration and realization evolution of the SOA in one high-level diagram.
decisions Multiple detailed work products support this high-
Technical feasibility exploration is a way of assess- level view.
ing, planning, and implementing key prototypes that
4,5
exercise the architectural constructs outlined in the The layers of the SOA reference architecture are
realization decisions and that have the highest thus instantiated (Figure 6) as we go through the
potential of impact and risk to the nonfunctional SOMA 3.1 phases. The reference architecture pro-
(operational) requirements of the SOA-based solu- vides a dashboard view of the artifacts that are
tion. In technical feasibility exploration, we plan for produced and where we are in the SOMA 3.1
risk factors and technical challenges focusing on process. It can be used to cover all aspects of SOA
nonfunctional requirements. One key task in reali- development including the governance.
zation is to detail and instantiate the SOA reference
architecture. It is recommended that technical Implementation and deployment, monitoring,
feasibility exploration be conducted for each of the and management phases
service interaction patterns chosen in the solution In the implementation phase, we construct, gener-
based on layers of the SOA reference architecture. ate, and assemble service, functional, and technical
Technical feasibility exploration designates interac- components that realize services, components, and
tion patterns that are selected based on several flows. We create necessary wrappers or other
factors, including the maturity of the organization mechanism by which an existing component can
Authorization
framework
mediation
mediation
Protocol
Caching
Registry
Business process
service
Data
Goal service
Service consumer
Withdraw
payment
payment
Transfer
account
Validate
Deposit
balance
Process
payees
payees
Open
funds
funds
funds
Add
Get
Get
Data architecture
Service provider
Technical
components
Governance
Integration
Functional Customer Account Transaction Payment
components processing
Realization
Operational systems
management
Retrieve customer information
Reporting
Auditing
Existing Search customer
engine
CRM
Event
Update customer
Figure 6
Instantiation of the SOA reference architecture for the case study
participate in realizing a service. In some cases, solution. Depending on the solution types, addi-
existing assets are refactored and refined so that tional activities and tasks from the corresponding
they can be used to realize a service. We perform solution templates are executed to create and update
unit, integration, and system testing for services, the necessary artifacts.
components, and flows.
In the deployment, monitoring, and management
SOMA uses a variety of solution templates that phase, we focus on packaging, provisioning, exe-
include support for custom development, packaged cuting user-acceptance testing, and deployment of
application integration, legacy integration and services in the production environment. As in the
transformation, ESB design and use, and composite implementation phase, the deployment phase is also
business services. The implementation phase is extended by activities and tasks from solution
extended by activities and tasks from these solution templates for different solution types in the overall
templates for different solution types in the overall solution. In addition, SOMA provides support of
16. A. Arsanjani, ‘‘Rule Object 2001: A Pattern Language for Kerrie Holley
Adaptive and Scalable Business Rule Construction,’’ IBM Global Business Services, 425 Market Street, San
Proceedings of the 8th Conference on Pattern Languages of Francisco, CA 94105 (klholley@us.ibm.com). Mr. Holley is an
Programs, Monticello, IL (2001), http://jerry.cs.uiuc. IBM Fellow. He is the chief technical officer (CTO) of the IBM
edu/;plop/plop2001/accepted_submissions/PLoP2001/ SOA CoE and a member of the IBM Academy of Technology.
AArsanjani1/PLoP2001_AArsanjani1_0.pdf. His responsibilities include technical leadership for SOA
projects, architecture and design, technical oversight,
enterprise architecture design, and IT strategy. As CTO, he is
Accepted for publication February 7, 2008. responsible for IBM SOA delivery methods and related tools.
Published online August 6, 2008. His focus is on helping customers realize the sustained
benefits of applying SOA. As an IBM Fellow, he helps define
IBM SOA strategy and direction. He has a B.A. degree in
Ali Arsanjani mathematics from DePaul University and a J.D. degree in law
IBM Global Business Services, 625 32nd Avenue SW, Suite 130, from the DePaul School of Law. &
Cedar Rapids, IA 52404 (arsanjan@us.ibm.com). Dr. Arsanjani
is an IBM Distinguished Engineer and Chief Technical
Officer, Emerging SOA Technologies, supporting larger IBM
clients in complex, distributed projects. He leads the 6000-
member IBM SOA Community of Practice and is a member of
the IEEE and the IBM Academy of Technology. He received a
Ph.D. degree in computer science and engineering from
DeMontfort University, U.K.