IBM SOA Reference Architecture
IBM's SOA Reference
Architecture defines a vendor and technology agnostic set of
comprehensive IT capabilities that are required to support your SOA at
each stage in a typical SOA life cycle. When an organization defines a
solution architecture based on this reference architecture, they would
not need all of the capabilities needed initially. But over time, to be
successful in SOA, all the capabilities need to be evolved and added.
What is Reference Architecture?
A Reference Architecture
captures the essence of the architecture of a collection of systems. It
models the abstract architectural elements in the domain or a solution
area, independent of the technologies, products, and protocols that are
used to implement the domain. It differs from a reference model in that a
reference model describes the important concepts and relationships in
the domain focusing on what distinguishes the elements of the domain.
Thus reference architecture is useful for:
Providing a common ground domain model
Basis for realizing an architecture vision Providing key architectural guidance and a blueprint as a baseline
Reference architecture is
typically abstract and is abstract for a purpose. You typically
instantiate or create solution/system architectures based on the
reference architecture. Example reference architecture includes Unisys
3D Blueprints, IBM Insurance Application Architecture, and NGOSS
reference architecture from the TM Forum, and so on.
Key elements of IBM SOA Reference Architecture
The IBM Software Reference
Architecture is a reference model that lets you leverage information,
applications, and tools as services in an interoperable,
system-independent way. The subsequent diagram shows the IBM SOA
Reference Architecture organized around the key capabilities required
for building any SOA-based solution.
Development Services
provide the capabilities in terms of development tools for the end
users to efficiently complete specific tasks and create specific output
based on their skills.
Interaction Services provide the user interaction capabilities required to deliver the Business Services and data to end users.
Process Services
provide the control, management, choreography, and orchestration of the
business processes that interact with multiple services.
Information Services
provide the capabilities required to federate, unionize, and transform
data from one or multiple applications or data sources and expose them
as services.
Enterprise Service Bus delivers all the connectivity capabilities required to leverage and use services implemented across the entire organization.
Business Innovation and Optimization Services provide the monitoring capabilities and manage the runtime implementations at both the IT and business process levels.
Business Application Services
are services provided by existing applications or ones that will have
to be exposed by the applications itself including third-party systems.
Access Services
allow access to the end applications, legacy applications, pre-packaged
applications, enterprise data stores (including relational,
hierarchical, and nontraditional, unstructured sources such as XML and
Text), and so on using a consistent approach. These typically leverage
the business application services.
Infrastructure Services provide security, directory, IT system management, and virtualization capabilities to the SOA solution.
Partner Services provide the capabilities for the efficient implementation of business-to-business processes and interactions.
So what is the
relationship between the process integration, key capabilities needed
for successful process integration, SOA, IBM SOA reference architecture,
IBM WebSphere Process Server, and IBM WebSphere Enterprise Service Bus?
The answer is pretty obvious.
Having defined the
essential elements for a BPM enabled by SOA approach, having explained
the need for a reference architecture, and in particular, what IBM's SOA
reference architecture is all about how does it all come together? How
would a (reference) solution architecture, based on the IBM SOA
Reference Architecture, look? The following figure shows one such
instantiation of the "BPM enabled by SOA" solution architecture. It
incorporates all of the building explained above, as categorized and
organized into the appropriate IBM SOA reference architecture
buckets/layers. Also, what each layer and each building block should
have as capabilities within itself is explained.
Introducing IBM WebSphere Process Server (WPS)
WebSphere Process Server
(WPS) is one of the key and core products in the IBM WebSphere BPM
suite. Referring back to the key capabilities needed for a successfully
process-driven integration approach enabled by SOA, WPS addresses
capabilities including Business Process Execution, Business Rules,
Enterprise Service Bus, and a key enabler for Business Process
Monitoring. WPS platform provides a standards-based uniform programming
model for representation of data, invocation of services, and structure
of composite applications. It provides a unified tooling, namely, WebSphere Integration Developer (WID) for the visual development of composite applications.
Role of WPS in SOA
As explained in the
previous sections, process integration is fundamentally built on the
concept of an SOA. In recent times, most of the applications expose web
services. These services, which may be very fine-grained or atomic in
nature, will have to be assembled into coarse-grained services that make
meaningful sense to the business. A process-driven integration
leverages these Business Services as business tasks in the larger
choreography or orchestration of a business process. Because of the fact
that fine-grained atomic services are assembled into coarse-grained
business services, the use of the service is independent of the IT
infrastructure needed to accomplish the task. Each Business Service then
becomes a building block that, when combined with other Business
Services, can become the fundamental building block to realize an end to
end business process. The structuring of business processes, in this
way, provides a flexible solution to real business problems, allowing
the creation of new and modified processes easily. You can use WPS to
develop and execute standard-based, component-based Business Integration
applications using an SOA approach. The use of standards-based
technology, including Web Services, helps to make the SOA vision a
reality.
WPS leverages a programming
model, which is very fundamental to understanding how applications are
developed in WPS and WID (as explained earlier, WID is the integrated
development environment for WPS). The programming model has three parts:
Invocation Model-defines
Invocation is the way in
which a request is made from one piece of code to another.
Programmatically, there are several methods of invocation including
REST, HTTP, EJB stateless session beans, JAX-WS, JAX-RPC, JDBC for
communicating with databases, JMS for messaging, and so on. WPS has
adopted the Service Component Architecture (SCA) specifications as the
basis for its invocation model. SCA is a set of specifications that
describe a model for building applications and systems using an SOA
approach. SCA divides the steps in building a service-oriented
application into two major parts:
The implementation of components which expose (export) services and consume (import) other services The assembly of sets of components to build business applications, through the wiring of references to services SCA
uses Service Data Objects (SDO) to represent the business data that
forms the request and response values of service and/or components. SCA
supports bindings to a wide range of access mechanisms used to invoke
services and also through both synchronous and asynchronous programming
styles.
Data Model-defines
Programmatically, there are
several ways to represent data-EDI message, JDBC row set, JMS message,
Java Persistence API (JPA), and so on. WPS has standardized the way in
which data is represented and will be using Business Object (BO). BOs
are extensions of Service Data Objects (SDO) to provide an abstraction
layer for data access. Business Objects include some extensions that are
very important for integration solutions and further describe the data
that is being exchanged between Service Component Architecture-based
services. This includes metadata-like change history or information on
the context of the data such as update, create, delete, and so on.
Composition Model-how
WPS has adopted
Business Process Execution Language (BPEL) as the way to define the
overall business process. When the business process accesses data, it
does so by making calls to SCA services passing Business Objects.
Platform architecture
WPS at its core is built on
WebSphere Application Server, providing a robust application server
runtime with capabilities that the process server implementation can
exploit such as Java Message Service (JMS) messaging and enterprise
beans. It can also make use of the application server qualities of
services such as transactions, security, and clustering. The following
image shows the platform architecture of WPS and the different
components it is made up of.
The components in the WPS platform architecture can be categorized as follows:
SOA Core
The foundation of
SOA includes the main components, namely, the Service Component
Architecture (SCA), Business Objects (BOs), and the Common Event
Infrastructure (CEI). The CEI provides the foundation architecture for
the management and handling of events produced by business processes.
This is essential for enabling the monitoring of business processes with
products such as the WebSphere Business Monitor.
Supporting Services On
top of the SOA Core are a set of Supporting Services, which provide the
transformation primitives required when building SOA solutions using
SCA and BO. These include:
Interface maps which enable mapping to semantically similar but syntactically different interfaces. Business object maps, which enable the transformation of business data between fields of Business Objects. Relationships
enable the correlation and synchronization of data representing the
same business entity stored in multiple backend systems. Selectors provide for a dynamic invocation of a target. Java to invoke Java code.
Service Components
Service Components provide different component types that can all be assembled together when building an SOA solution.
Business
Processes, which are defined using BPEL, realize an executable version
of a business process in which the different activities of the process
are carried out by making calls to the individual SCA services that
implement the specific activities. Human
Tasks provide the human task capabilities for people to participate and
collaborate with the business processes. Human tasks can be integrated
directly into the BPEL. Business
State Machines are another way of modeling a business process that are
highly event-driven and are well suited to being thought of in terms of a
state transition diagram. The Business State Machine component allows
you to model the business process using similar constructs as UML 2.0
state machine support and then generates BPEL for the implementation. Business
rules enable the implementation and enforcement of business policy
business rules and also for them to be managed independently from other
aspects of an application. There are two styles of business rules,
if-then rule sets and decision tables. A Web client is provided where
the parameters of business rules can be changed by a business user using
a natural language. Adapters
are used for integration with various applications and backend systems
that are external to the WPS. Adapters are categorized into technology
and application adapters. These adapters are compliant with the Java
Connector Architecture (JCA) 1.5 specification.
Common BPM adoption scenarios
In the collection of
patterns for e-business, IBM has leveraged its vast experience from its
architects and solutions and developed various classes and categories of
patterns that can be applied to create solutions rapidly, whether for a
small local business or a large multinational enterprise. The site http://www.ibm.com/developerworks/patterns/ breaks down these pattern assets into the following elements:
Business patterns
Integration patterns
Custom designs
Application and Runtime
Product mappings
Guidelines
All of the above
integration patterns give interesting insight into how to integrate
applications and data within an individual business pattern. At its
highest level, application integration by itself is divided into Process
Integration and Data Integration patterns.
Now let's look at some of the
most common BPM adoption patterns, and more specifically, how WPS can be
adopted in real-life client scenarios. IBM's BPM adoption patterns are
classified into the following broad categories:
Process Automation-Streamline and automation of manual business processes to gain and hence optimize costs and efficiency. Examples include:
Automation of insurance rate-quote-issue process across multiple product lines Customer billing and invoice inquiry or dispute process automation in the telecommunications industry Order handling business process automation applicable to several vertical industries Member/Patient claims handling processes automation in healthcare Automation of student registration/on-boarding in education
Capture Insights for Effective Actions-Achieve
visibility through monitoring and capturing new insights to seize
opportunities and mitigate risks. Business Activity Monitoring (BAM), in
combination with role-based dashboards, augments and helps deliver this
capability. Examples include:
Define time-bound KPIs on loan origination and approval business processes in the banking industry and act on them. Detecting the root cause of service activation failures in the Telecommunication industry and acting on them. Based
on strategically defined business goals to improve customer
satisfaction (defined as KPI) and improve customer problem handling
business processes. Define
fraud detection rules (too many withdrawals on an account from ATM,
high rate of claims requests, and so on) and act on them appropriate by
automating the detection and acting upon processes.
Discover and Design-Unlock
valuable process opportunities and uncover critical improvement areas
by focusing on high return on investment (ROI) areas. Examples include:
Leveraging
existing SOA service models and industry content to rapidly enable
process modeling and automation efforts. IBM's Industry Content Packs is
a good example here. Define
library of KPI models based on the particular industry’s information
model, business terms and concepts and use it as a means to measure and
monitor strategic business goals. Leverage third-party content, collaborate on process models and bring them into your ecosystem.
Adapt and Respond Dynamically to Change
In the white paper
titled "BPM Process Patterns: Repeatable Design for BPM Process
Models"-BPTrends May 2006, Dan Atwood has discussed, in detail, six
categories of process design patterns.
|