Composing New Applications From Your Existing CICS Applications Using Web Services

By

Don Fowler
MCE Inc, December 2005

 

SOA Is Here To Stay

Service Oriented Architectures will continue to be a highly significant model for computing for a long time, so it’s 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 mainframe’s use. This attitude is self-destructive and will lead to a death spiral for the mainframe professional’s 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.         

 

CICS And SOA

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.

IBM CICS Service Flow Feature

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 organization’s 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.

 

What Comes With The Feature

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.

How To Compose The SOA Service

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 XSE bottom-up artifactshas 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:

Overview of Development Tasks 

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.

  1. Import the COBOL interface definition into a z/OS Local Project
  2. Use the Web Services Enablement wizard to generate the converter driver, input and output converters, XML schemas, WSDL, and WSBind files
  3. Build and deploy the generated artifacts to CICS TS
  4. Use the Web Services Explorer tool to test the CICS-based Web service          

What To Do Next

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.

CICS-L

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.

 

References and Resources