Professional Documents
Culture Documents
Martin Keen
Stuart Jones
The focus of the case study in this paper is the challenges and solutions
associated with the connectivity of services for opening new accounts. This
paper describes how to apply the realization patterns of the Service Connectivity
SOA Scenario to solve the business and IT challenges as they relate to the case
study.
The JKHLE team is focusing on solving the challenges that are presented by
creating new customer accounts in a consistent manner throughout each of the
sales channels. This SOA adoption initiative is known as the Account Open
Project. Using an SOA approach will allow for a more rapid implementation and
greater flexibility for future changes that the business might need.
Note: For more detailed information about the case study, refer to Case Study:
SOA Account Open Project Overview, REDP-4376.
The case study that we describe in this paper includes the following key actors
and roles:
Edmund Smythe-Barrett, Enterprise Architect
Sandy Osbourne-Archer, Chief Technical Architect
The Account Open Project architecture team is focused on solving the significant
issues with the existing multiple mechanisms that customers use when opening
accounts with JKHLE. They want to develop an improved, single mechanism for
opening accounts from both the business and IT viewpoints.
The Account Open Project will be the first test case for a new SOA
implementation within JKHLE.
There are some clear requirements that Sandy has for this project with which
Edmund can help.
Note: For solution details, refer to “Business Value Driven Service Availability”
on page 14.
Note: For solution details, refer to “Consumer Side ESB” on page 23.
Service Service
ESB
Consumer Provider
Figure 1 An ESB
Proposed solution
Edmund proposes an ESB architecture. The ESB can interact with multiple
channels and can convert the different message types from each channel into a
single canonical format that is passed on to the Account Open process. Figure 2
shows this architecture.
SOAP/JMS
Intranet Portal
SOAP/HTTP
.NET Application
Applications
Applications
Consumer
Provider
Enterprise
XML/HTTP SOAP/JMS
Internet Application Service
Bus
Fixed length/MQ Account
Rich Client Apps Open
Process
SOAP/HTTP
IVR Apps
This ESB component can also be used to communicate with other back-end
processes, as described in “Internal connectivity based on open standards” on
page 12.
Sandy has counseled Edmund that she needs a secure, controllable, and
manageable connection to a fixed set of external services. This is the only way
that the CIO/CTO will allow her to connect to an external provider.
Partner
Account
Open SOAP/HTTP
Integration
Process Appliance
Credit
Verification
Registry/ Service
Repository
Security SOA
Manager Management
Edmund explains to Sandy that the Account Open process simply has to make a
service call and the Integration Appliance will take care of the details. Edmund
explains that some of the other advantages of adopting an Integration Appliance
are:
The Integration Appliance can be positioned in the JKHLE demilitarized zone
(DMZ), therefore providing further protection for the JKHLE environment. The
Integration Appliance is a security-hardened device that has been designed
to handle connections to external networks.
The Integration Appliance contains specific built-in capabilities to protect
against a range of XML and Web services attacks.
SAP IDOC
Adapter
Enterprise
SOAP/HTTP SAP
Service
Bus
Account Siebel XML
Open Adapter
Process
Registry/ Siebel
Repository
Service Monitoring
Some of these requests are standards-based service requests and others are
XML grammars that need to be mapped to a SOAP-based service request.
These requests are all internal to JKHLE and so do not suffer from some of the
issues mentioned previously. However, there is still a need to exercise a level of
control over the service requests. Consequently, Edmund wants to ensure that
there are service control and management capabilities in place.
The applications in the remote locations are all reasonably modern, using
various XML grammars as their data formats and Java™ Message Service (JMS)
as their transport. The headquarters applications, however, all require Web
service protocols, SOAP over HTTP.
XML/JMS
ESB
Application 1 SOAP/HTTP
Service
SOAP/JMS
Registry /
Repository
Application 2
SOA SOA
Management Agent Management
Sandy and Edmund use four more realization patterns for the Service
Connectivity SOA Scenario to help design their solutions:
Business Value Driven Service Availability
ESB Federation
WebSphere Message Broker and WebSphere Process Server Interaction
Consumer Side ESB
Sandy explains to Edmund that there is a problem with the Credit Verification
Service that the Account Open process uses. Currently the Account Open
process connects directly to a Credit Verification Service that is hosted by an
external provider called CVCo. This direct connection provides a low cost
solution, but customers have complained about slow response times. Sandy
wants to improve the response times to meet acceptable limits, which in turn
should lead to higher customer satisfaction.
JKHLE CVCo
ESB Gateway
SOAP/HTTP SOAP/HTTP
Account Credit
Open Verification
Process Service
The request messages from the Account Open process to the Credit Verification
Service pass through an ESB Gateway. The ESB Gateway allows the connection
to take place between the JKHLE and CVCo, providing a service proxy, XML
firewall, and Web services security.
Sandy points out to Edmund that although the service that CVCo hosts is
occasionally unreliable, it is the lowest cost option and, in many cases, does
provide acceptable response times. Other service providers offer similar credit
verification services with improved and more reliable response times but at a
higher cost. JKHLE is reluctant to adopt this higher cost for every customer credit
verification.
Using this approach, JKHLE can offer a business-driven solution. They can
improve customer satisfaction by offering better response times to users of the
Account Open process while also minimizing cost. They can keep costs in check
by only using the more expensive Verity service provider when there is a
business need to do so. This solution represents a significant cost saving over
using Verity for all credit verifications, while offering the same level of customer
satisfaction that a solution that uses the Verify service exclusively would provide.
Edmund shows how both CVCo and Verity can be incorporated into the new
architecture, using dynamic routing. CVCo remains the preferred service
provider, but when it is not meeting the predefined service level agreement, the
Verity service provider is used instead (see Figure 7).
SOAP/HTTP
ESB
Credit
SOAP/HTTP Verification
Account Service
Open
Process
Verity
Registry / System
Repository Management SOAP/HTTP
Credit
Verification
Service
ESB Federation
JKHLE has a distributed structure that consists of a headquarters and many
smaller remote offices. This leads to an organization built from many domains. A
domain can be based on line of business, an organizational unit, or a
geographical location.
Edmund has been tasked to define a solution that imposes standards for service
interaction but also offers freedom within a domain to makes changes to
providers and interfaces without impacting consumers.
Current environment
Figure 8 shows the current JKHLE environment.
SOAP/HTTP
Application Service
Registry /
Repository
This solution works well for JKHLE, but it does not meet Sandy’s goal of being
able to adapt easily to changes in the HQ service. If the HQ service changes its
interface, every remote office ESB would need to be updated to take this change
into account.
Proposed solution
Edmund describes how the current JKHLE environment can be modified to meet
all of Sandy’s objectives. By introducing an ESB and a Registry in the HQ
domain, the JKHLE environment can support loosely coupled dynamic routing in
all domains (see Figure 9).
JKHLE HQ
JKHLE Remote Office
Any
ESB
ESB
SOAP/HTTP
Application Service
Sandy explains that the Account Open process has some significant connectivity
requirements:
The Account Open business process needs to accept requests from multiple
channels that use different transport and data formats.
The Account Open business process also needs to access an increasing
variety of JKHLE back-end applications, many of which do not support
standard service interfaces.
SOAP/JMS
Intranet Portal
SOAP/HTTP
.NET Application Business Process
Applications
Applications
Consumer
Server
Provider
Enterprise
XML/HTTP SOAP/JMS
Internet Application Service
Bus
Fixed length/MQ Account
Rich Client Apps Open
Process
SOAP/HTTP
IVR Apps
Figure 10 Current environment: ESB interacting with a Business Process Server provider
Proposed solution
Edmund recalls to Sandy that one of the selling points of the Exposing Existing
Systems to Multiple Channels pattern is the straightforward ability to add
additional clients in the future. Sandy’s new requirements are the perfect
opportunity to demonstrate this solution.
The Account Open process can already receive requests from multiple channels,
through the use of the ESB component. Edmund explains that by making the
Account Open process a consumer (as well as a provider) of the ESB, it can also
access the variety of JKHLE back-end applications that Sandy is requesting.
Each back-end application is added as a provider to the ESB, and the Account
Open process is a consumer that uses the ESB to reach these applications.
Using this architecture the Account Open process does not have to access the
back-end systems in their native format.
SOAP/JMS
Intranet Portal Business Process
Server
SOAP/HTTP SOAP/JMS
.NET Application
XML/HTTP Account
Internet Application
Open
Process
Enterprise
Applications
Applications
Fixed length/MQ
Consumer
Provider
COBOL CICS
Bus
SOAP/HTTP Copybook/MQ IMS
IVR Apps
SOAP/HTTP .NET
Business Process Provider
Server
SOAP/JMS XML/HTTP Perl
Provider
Account
Open
Process
Registry/
Repository
Figure 11 Proposed solution: Support for a Business Process Server consumer and a Registry added
External trading partners are an important part of JKHLE’s business, and Sandy
wants to ensure that changes to JKHLE services have minimal impact on the
service consumers of trading partners. Sandy emphasizes that partners should
experience minimal disruption and minimal development costs as the result of
changes to JKHLE services.
Current environment
Figure 12 shows the current architecture that trading partners use to access
JKHLE’s line of business service providers. The remote applications do not use
the multi-channel pattern (described in “Expose Existing Systems to Multiple
Channels” on page 7) because they want to retain control of how and where their
service requests are routed, represented, and processed.
SOAP/HTTP Service
WebLogic
(JAX-RPC)
Application
Sandy explains that she wants a new architecture constructed to address the
following concerns:
JKHLE needs the freedom to change the JKHLE providers physical location
without having to contact each of the trading partners to inform them of the
change.
JKHLE also wants to add support for additional protocols. There is an
immediate request for SOAP over JMS support and a requirement for
Representational State Transfer (REST) support in the future.
JKHLE wants to register service consumers and to track their use of JKHLE
services.
Registry /
Repository
Service
WebLogic SOAP/HTTP
(JAX-RPC)
Application
This environment requires that all of the service consumers make a one-time
change to update service consumer applications to include a registry lookup
code module. This registry lookup module queries the JKHLE Registry and
Repository for information about the service provider that they want to invoke.
The Registry and Repository returns information about the service, including
service endpoint address, message format, and server configuration. The
service consumers use this information to make calls to the JKHLE providers.
This method replaces the current method of using hard-coded information in
each service consumer to locate JKHLE service providers.
Sandy is concerned about asking each trading partner to change the consumer
applications, but Edmund assures her this change will be a one-time change that
will save trading partners development costs and disruption in the long term. If
any JKHLE providers change (by supporting additional transport protocols or
change location) then the Registry and Repository will be updated with that
information and each service consumer will retrieve that new information at
runtime. The trading partners will not be required to change their consumer
applications to reflect these changes.
Edmund recommends that JKHLE implement the Registry and Repository with
WebSphere Service Registry and Repository.
References
This section includes reference information for further reading materials that are
related to the Service Connectivity SOA Scenario:
IBM SOA Sandbox found at:
http://publib.boulder.ibm.com/infocenter/soasdbox/v1r0m0/index.jsp?t
opic=/com.ibm.soln.SOASandbox.nav.fw.doc/home_pages
Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228
Case Study: SOA Account Open Project Overview, REDP-4376
Martin Keen is a Senior IT Specialist for the IBM International Technical Support
Organization in Raleigh, NC, USA.
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy,
modify, and distribute these sample programs in any form without payment to IBM for the purposes of
developing, using, marketing, or distributing application programs conforming to IBM's application
programming interfaces.
© Copyright International Business Machines Corporation 2008. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by
GSA ADP Schedule Contract with IBM Corp. 29
This document REDP-4380-00 was created or updated on January 21, 2008.
Send us your comments in one of the following ways: ®
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an e-mail to:
redbook@us.ibm.com
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099, 2455 South Road
Poughkeepsie, NY 12601-5400 U.S.A.
Redpaper ™
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both: