Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Planning</strong> <strong>and</strong> <strong>Impleme</strong>nting SOA<br />
www.butlergroup.com<br />
There are also successful SOA deployments using Z/OS IBM mainframes (albeit using a Web services<br />
mechanism), ‘green-screen’ UNIX applications that pre-date client/server, <strong>and</strong> even very elderly proprietary<br />
operating environments. However, we should differentiate between enabling these legacy platforms for use in a<br />
SOA, <strong>and</strong> deploying a non-st<strong>and</strong>ards-based approach. Using adapters to expose the underlying service<br />
functionality of legacy applications is part <strong>and</strong> parcel of the SOA model, provided that the adapters offer a Web<br />
services messaging interface. Adapters might be Commercial Off-The-Shelf (COTS), customised COTS, or entirely<br />
custom-built. Technology that bears a striking resemblance to the screen-scraping used by early client/server<br />
deployments can be used to obtain access to applications for which no other mechanism is available.<br />
Many vendors that support legacy products are very happy to provide Web services adapters to their<br />
applications, or connectors to the underlying platform. For example:<br />
<br />
<br />
<br />
IBM’s CICS transaction server can operate in a SOA environment in a number of different ways. First of<br />
all CICS directly supports Web services interactions, but can also work with WebSphere application<br />
server clients via Java Connector Architecture (JCA). It can also operate with an ESB, as well as a Web<br />
services gateway, providing considerable flexibility to those organisations that need to continue to use<br />
their legacy CICS systems, but want to enable reuse within SOA projects.<br />
During 2006, BEA Systems announced that it was enhancing its legacy Tuxedo infrastructure with SALT<br />
– Service Architecture Leveraging Tuxedo. BEA’s SALT is a way of service-enabling its Tuxedo platform<br />
by providing a native Web services layer on top of Tuxedo. Tuxedo is built on BEA’s Application-to-<br />
Transaction Monitor Interface (ATMI) architecture, allowing both C <strong>and</strong> COBOL programming. It is a<br />
transaction server built on UNIX, comparable to the IBM mainframe CICS transaction server, suitable for<br />
complex, transaction-based applications such as billing. What SALT brings is like an ‘ESB for<br />
transactions’ – it implements an XA st<strong>and</strong>ard, so that transactions either happen or not – there is no grey<br />
area (in other words one part of a transaction is automatically undone if the overall transaction fails to<br />
complete). It offers two-phase commit capability.<br />
Oracle is introducing the idea of Service Beans in its next version of the Oracle E-Business Suite. These<br />
will allow the underlying services within the suite to be deployed in a range of different ways – as EJB<br />
Session Beans; as Web services; or as co-located Java API. The service bean encapsulates the<br />
implementation details, <strong>and</strong> provides a consistent <strong>and</strong> easy-to-use interface, allowing them to be used<br />
as building blocks within a SOA. Such services are then available for BPEL process management, <strong>and</strong><br />
they can consume <strong>and</strong> output Service Data Objects (to the JSR 235 specification).<br />
High-performance SOA need not be an oxymoron, but good<br />
underst<strong>and</strong>ing of issues is needed.<br />
This Section has outlined some of the performance challenges <strong>and</strong> some of the potential solutions. The<br />
question now is how to achieve the best compromise between agility <strong>and</strong> performance. The natural<br />
inclination within IT (charged for many years with squeezing a growing workload into a diminishing<br />
technology budget) is to look for the high performance solution. However, this<br />
is not the best approach in these new circumstances.<br />
The challenge here is<br />
to model the services<br />
that are meaningful<br />
to the business <strong>and</strong><br />
then map these to the<br />
underlying<br />
application(s) that can<br />
support the service.<br />
Since SOA is architecture, we should be able to separate the logical design<br />
from the physical. The logical service architecture should be designed only<br />
considering the business requirements to ensure the maximum reuse of<br />
services. The challenge here is to model the services that are meaningful to<br />
the business <strong>and</strong> then map these to the underlying application(s) that can<br />
support the service. This may not be a one-to-one mapping – in order to<br />
satisfy the requirements of a business service it might be necessary to<br />
integrate several applications. Equally, each application is likely to provide a<br />
range of functionality that is best divided between logical services.<br />
The scope of this analysis should be constrained to the project in question, but using the business analyst’s<br />
experience <strong>and</strong> insight to determine where reuse will be possible in subsequent projects.<br />
The next step is to form a model for the likely performance characteristics of each service, <strong>and</strong> to use<br />
capacity planning tools to determine the infrastructure requirements to support the anticipated workload.<br />
The market for SOA capacity planning is maturing well, with a variety of competent products now available.<br />
26 Section 1: SOA Deployment<br />
December 2006