Home Unix/Linux Mainframe Other Servers Software Reviews
 

IBM In-Depth
IBM's CICS TS V3.1 Application Transformation

Application Transformation with
CICS Transaction Server for z/OS V3.1

It isn't just about XML Web services                                                            Read about CICS TS V3.1 Web Services

by Anura Guruge, Editor at Large and author of
"Web Services: Theory and Practice" [at Amazon.com etc.]

The latest release of mainframe CICS [i.e. T.S. V3.1], unveiled on November 30, 2004, was rightly lauded for its ground-breaking, SOA empowering, bi-directional XML Web services capabilities.  Theses Web services features, categorized by IBM as offering “increased integration of CICS applications”, though strategic, were, however, not the only major ‘host integration’ functionality of particular note within this release.  IBM grouped the enhancements in T.S. V3.1 into three primary areas:

     1.  Increased integration of CICS applications

     2.  Enhanced application transformation

     3.  Improved performance and enterprise management

 

source: IBM

I   IBM's depiction of the SOA-centric CICS TS V3.1 for z/OS with its 3 groups of enhancements  

The first group of enhancements, in the so called ‘integration’ category, is, as to be expected, spearheaded by the CICS Web services support but it also includes improvements made in the areas of HTTP interoperability and SSL/TLS security.  With this latest HTTP support, compliant with the HTTP version 1.1 specification, CICS can now act as both an HTTP server as well as HTTP client – using simple EXEC CICS commands.  On the security front, the previously existing support for SSL 3.0 has now been extended to embrace TLS 1.0, the successor standard to SSL – replete with accommodation for the 128- and 256-bit Advanced Encryption Standard (AES) cipher suites (where it is worth noting that most commercial-sector Web products, including Internet Explorer 6.0, currently use 128-bit ciphers for most of their standard encryption needs).

Enhanced application transformation

This, the second category of enhancements, were described by IBM as functionality to facilitate the enhancements of existing applications as well as the development of new applications using contemporary languages, constructs, and tools.  This V3.1 application transformation category includes four distinct features:

      1.  optimized data exchange between CICS programs via a new API

2.  better integration of programs written in assembler [i.e. BAL] with the CICS Language Environment technology

3.  64-bit address “tolerance” where 64-bit applications can now run as task-related user exists (TRUEs) within the CICS address space – though CICS T.S. V3.1 per se does not support the native execution of 64-bit applications

4.  Unicode code-page conversion now added to CICS previous capability to convert between EBCDIC and ASCII
to provide bi-directional conversion between EBCDIC or ASCII and Unicode UTF-8 or UTF-16.

 

Of these, the most significant, without doubt, is the new inter-program data transfer API.  This API, based around the concepts of containers and channels, provides a 21st century alternative to the much beloved, but long-in-the–tooth CICS COMMAREA approach – with its 32KB data size restriction which is proving to be a tad too constraining with the current penchant for using verbose XML.  The COMMAREA interface was the way that most applications traditionally exchanged data parameter data using the EXEC CICS LINK API.  This API specified (or pointed to) a communications area (COMMAREA) – where the COMMAREA was a pre-allocated memory ‘buffer’ that contained the data to be transferred.  The data in the COMMAREA would be ‘typed’ data representing a specific data structure defined by the applications.

 

The new API though retaining the comfortably familiar EXEC CICS ‘API’ convention and supporting structured data is meant to be more flexible and capable of dealing, with no caveats, with large volumes of data, in both XML and non-XML form.  It is also supposedly more intuitive, though I suspect the jury is still out on that one.  The new API relies on two new data transferring ‘mechanisms’ referred to as containers and channels – where a channel, as will be seen, can be thought of as a superset of containers.

 

source: IBM

A container is a named holder of information – with no CICS imposed limitations on how big it can be (albeit it with some potential z/OS caveats when it really starts to ‘push the envelope’).  CICS also does not dictate the data formats used within a container.  Thus the data formats used within a container are entirely application-specific.

A channel, on the other hand, is a named group of containers – with no CICS imposed limits as to the number of containers that may appear within a channel.  Channels, in serial mode [i.e. one at a time], are what gets transferred between CICS applications via this new API.  Channels and COMMAREA are, however, mutually exclusive – meaning that applications can’t opt to use both schemes in parallel.

You can share your views with me at: anu@guruge.com

© IT In-Depth & Anura Guruge, 2005