Composing New
Applications From Your Existing CICS Applications Using Web Services
By
Don Fowler
MCE Inc, December 2005
Service Oriented Architectures will continue to be a highly significant model for computing for a long time, so its critical that CICS is aligned with this model. SOA capabilities were announced in CICS TS V3.1. These first announcements included CICS Transaction Server V3.1 and CICS Transaction Gateway V6.0. They include several significant enhancements that herald that CICS will not just be a passive legacy system but will be driving new applications and users into the web services world.
Why is this important to the CICS technical professional? We have seen a vague sentiment running through some items on CICS-L, that lean toward simply watching continued erosion of their mainframes use. This attitude is self-destructive and will lead to a death spiral for the mainframe professionals career. If given the proper information and behind-the-scenes assistance from organizations such as your IBM Business Partner that sponsors this newsletter, the technical professional can show true cost to benefits, justifications, and how these new enhancements can address existing business problems. The advent of SOA has breathed new life into the mainframe as the Server of Servers to any enterprise with a legacy systems heritage. We all need to get the word of this to the decision makers who may not have looked at the mainframe in five years or more.
The previous two releases of CICS TS had support for SOAP but only as a service provider. This meant that new web services applications could request services from existing CICS applications; this wrapping of CICS allowed new applications to use existing CICS applications.
CICS TS V3.1 provides more Web Services function and in particular the ability to develop CICS applications that are requesters of web services. Most of these applications were modifications of existing systems but some were new solutions. Developing an application that is a requester is an indication that there are no plans to phase the application out. This means that CICS users see a long-term future for CICS on the mainframe and IBM has extended the functions on that basis.
The new versions have a variety of improvements but the most important are:
IBM also announced CICS Batch Application Control for z/OS V1.1, allowing easier management of batch processes that must co-exist and share resources with one or more CICS online transaction systems.
The CICS Batch
Application Control add-on:
For more information on CICS Batch
Application Control, click here.
CICS Service Flow Feature,
available on Dec 16, 2005, is a no charge optional feature of CICS TS 3.1 that is a
business service integration adapter for all CICS applications. It contains both tooling
and run-time components. You'll be able to unlock existing legacy IT applications and data
and re-utilize them into service assets for an SOA. The process of transforming existing
applications is far more efficient than creating all new applications.
An organizations CICS
applications are tried and trusted, reliable and high-performance. If an organization
tried to develop new applications with the same capabilities, they would incur high
development costs, high risks, and a long time to deployment.
Consider integrating your
CICS applications as new services into your new business processes, carrying over those
all-important qualities of service. With CICS Service Flow Feature and its entitlements,
and CICS TS V3.1, the tools exist to do just that.
The CICS Service Flow Feature
delivers the capability to implement CICS business services by composing a sequence of
CICS application interactions. In a single offering, CICS Service Flow Feature delivers:
CICS business services built with
and hosted in CICS Service Flow Feature expose business function interfaces that can
readily be published as Web services in an SOA by exploiting the Web services capabilities
of CICS TS V3.1. This approach complements and extends the Web services capabilities
offered in CICS for use with composed CICS applications.
Additionally, these business services can be integrated as process steps in a business process orchestrated by a business process engine such as WebSphere® Process Server or Sonic Orchestration Server.
CICS Service Flow Feature preserves
the natural modeling style of business integration solutions while shielding the solution
implementer from the detail of the CICS application implementation. CICS application
interfaces, including 3270 transaction screens and COMMAREAs, can be imported as
components into the composition workspace. Imported CICS application components are
composed to produce a CICS business service adapter that extends the value of CICS
application components with a business service interface.
The CICS Service Flow Runtime
adapters allow access to existing CICS transaction and application interfaces using
non-invasive techniques, so that the CICS application assets orchestrated by the service
flow do not have to be altered to support the CICS business service flow. This enables the
fast reuse of existing assets while minimizing the risk of the new implementation.
To read more about Service Flow Feature, click here.
The Service Flow Feature is a
no charge feature that comes with ten entitlements to use WebSphere® Developer for zSeries® V6.0.1. (WDz).
WDz contains the
Service Flow Modeler that enables business service integration for CICS applications. It
provides graphical modeling work spaces that enable enterprise solution architects,
integration developers, and CICS application specialists, who need to implement
service-oriented architecture (SOA), to create business services that may be invoked as
Web Services, by composing a sequence of CICS application interactions.
WebSphere Developer for zSeries V6
is based on the IBM Rational Software Development Platform and facilitates the development
of both Java- and z/OS-based applications. It includes capabilities that make traditional
z/OS mainframe development, Web development, and integrated composite development faster
and more efficient. It reduces the complexity and effort required to create mixed workload
applications by supporting and leveraging the heterogeneous skill sets (COBOL, PL/I, and
Java) in IT organizations. In particular, WebSphere Developer contains tools that support
the development of Web services and the XML enablement of existing z/OS COBOL
applications. This makes it easier to create the distributed and z/OS-based components
that form parts of a Service Oriented Architecture (SOA).
The XML Services for the Enterprise
(XSE) capability of WebSphere Developer provides tools that let you easily adapt
COBOL-based applications so that they can consume and produce XML messages. This
adaptation is accomplished without modifying the existing COBOL applications; and, more
importantly, without modifying other applications that call the existing COBOL
application. A COBOL application must be able to processing XML messages to become a Web
service, since XML is the language used to describe the Web service request and the
parameters that are passed to the existing application. XSE supports the creation of
driver programs that work with existing CICS or IMS applications.
You can read about
WDz by clicking here.
Together these
tools allow you to immediately start to
model new business processes which can be deployed as CICS applications or as Web
services.
As stated earlier, the COBOL application must be able
to process XML messages and this is done by mapping of XML elements to COBOL data items,
which can be accomplished with the following three approaches:
The first two approaches essentially transform existing COBOL applications and make them available as service providers. The third approach assists in the creation of a COBOL-based service requester, which is essentially dealing with a new application. WebSphere Developer for zSeries V6 currently supports the bottom-up and meet-in-the-middle approaches. In the context of running in the Web services environment of CICS TS V3.1, this article will focus solely on the bottom-up approach. If the Top-down approach is required use the existing CICS TS 3.1 Web Services Assistant utility.
The CICS TS 3.1 Web Services
Assistant can create a WSDL document
from a simple language structure, or a language structure from an existing WSDL document,
and supports COBOL, C/C++, and PL/I. It also generates information used to enable
automatic runtime conversion of SOAP messages to containers and COMMAREAs, and vice versa.
The XSE capability of WebSphere
Developer extends and complements this by converting COBOL types and constructs that are
not covered natively by the CICS Web services assistant. For example, OCCURS DEPENDING ON
and REDEFINES on data description entries are not supported by the assistant. WebSphere
Developer also
has Web services tools for testing the
CICS-based Web service from the generated WSDL, and tools that can facilitate the creation
of Java-based clients.
The Web
Services Enablement wizard is the XSE tool that supports the bottom-up approach. It
takes as input COBOL data declarations that define the input and output interfaces for a
COBOL application. The XML structure and data types are derived from the COBOL data
declarations. Based on these, the Web Services Enablement wizard generates the following
set of artifacts (see Figure 1).
WebSphere
Developer will generate
the required programmatic elements for the section identified as Conversion
Program or the pipe. These elements are:
To create a CICS Web service, you need to perform the following development tasks, which are covered in detail in the Using WebSphere Developer for zSeries V6 to Create a CICS Web service in CICS Transaction Server for z/OS V3.1
Paper by Wilbert Kho at the IBM DeveloperWorks website. Click
here for that paper.
Make sure your order for CICS
TS V3.1 includes the CICS
Service Flow Feature.
Make sure you're enterprise solution architect, enterprise integration developer, CICS application developer, or CICS application specialist gets a copy of this article. They will be the most likely ones to use this tool to create CICS business services for integration in a SOA business process collaboration.
A Mail List facility that is available for
all CICS technical professionals. CICS-L serves a very
valuable need for self-help and community communications ("how do I...?",
"has anyone done...", where can I find, etc). To view the CICS-L
keyword searchable archives or subscribe and post queries click here.