By
Don Fowler, MCE Inc, December 2004
On November 30, IBM announced that CICS TS Version 31 will be available on March 25, 2005. This version which includes Web services support that extends CICS applications to an SOA and provides support for the SSL security protocol. It also has an optimized CICS data exchange capability and the ability to use a single development tool (WebSphere Studio Enterprise Developer) provides enhanced application transformation capabilities. Also, the product offers improved performance and system management through the extension of the CICSPlex System Manager Web User Interface, improved workload throughput, and enhanced C/C++ program performance.
With the release of CICS Transaction Server for z/OS Version 3.1, administrators can now integrate their traditional workloads to fully participate in an SOA. This capability should lay the groundwork for being able to extend older CICS applications to go after fresh business opportunities, company officials contend.
"I think the crucial thing here is we have delivered [with Version 3.1] a language-neutral solution. This works for Cobol and PL/1 applications as well as Java applications. Many of our users have their apps written in Cobol, but now those apps can play a bigger part in a Web services story going forward," said Phillip Hanson, CICS Manager for IBM's Application and Integration Middleware in a story by INFOWORLD.
Besides extending CICS applications to work with SOAs, the new version also features improved CICS data exchange capabilities along with the ability to exploit just one development tool, namely IBM's own WebSphere Studio Enterprise Developer. This was announced as a statement of direction with the November 30 CICS TS 31 announcement.
CICS® Transaction Server (CICS TS) for z/OS® Version 31 introduces a range of enhancements, which fall into three main arenas.
A group of functions is introduced to enhance and further open access to CICS. Major new support is provided for Web services, by an evolution of the functions previously provided as the SOAP for CICS optional feature. These capabilities allow CICS-based applications to be integrated with a Service Oriented Architecture (SOA), enabling them to be exposed as on demand Web services.
Distributed transaction coordination is provided for partners complying with the WS-Atomic transaction specification. Message-level security function that complies with the WS-Security specification will be provided later in this release.
New HTTP capabilities are offered as part of CICS Web support, moving the level of specification supported to HTTP 1.1, and adding outbound HTTP function. Security enhancements are provided to the existing support for Secure Sockets Layer (SSL), including support for the TLS 1.0 protocol.
A range of new and enhanced capabilities is provided which enable re-use of existing CICS applications within broader e-business scenarios, by the use of broadly adopted APIs and standard protocols.
A major extension and evolution is provided from the SOAP for CICS function, previously made available as an optional feature for use with CICS TS V2.2 or CICS TS V2.3. This function is integrated into CICS TS V3.1, as part of support by CICS for Web services. Together with a range of extensions and new capabilities, this enables CICS business logic to be exposed as Web services, as part of a SOA solution.
Within an overall SOA, CICS applications will naturally act in the role of both service provider and service requester. Additionally, the CICS support for Web services enables applications to implement mediations in the style of the Enterprise Service Bus pattern. The services are defined using Web Services Description Language (WSDL). The infrastructure provided as part of CICS TS V3.1 includes a distributed transaction coordination capability compatible with the WS-AtomicTransaction specification. It will also include a WS-Security compatible implementation for securing SOAP messages. This will be delivered, via the service channel, at a later date.
In order to enable this, the CICS Web Services Assistant is introduced. This is a build-time capability provided to create a WSDL document from a simple language structure, or a language structure from an existing WSDL document. This support is provided for COBOL, C/C++, and PL/I. The Assistant also generates information used to enable automatic run-time conversion of the SOAP messages to containers (refer to below) and COMMAREAs, and vice versa.
The ability of CICS to act as a Web services service provider means that it is relatively simple to transform an existing CICS application into a Web service. The ability of CICS to act as a service requester means that a CICS application can use a Web service provided by any external provider.
The CICS Web Services Assistant includes Eclipse technology.
CICS Web support has been enhanced by upgrading the support for HTTP. It is now conditionally compliant with the HTTP 1.1 specification. Outbound HTTP support has been added, so that CICS can act as both an HTTP server (CICS Web inbound support) or as an HTTP client (CICS Web outbound support).
CICS now meets the requirements of RFC 2616 for the roles or facilities that it is designed to provide. Persistent sessions are now the default for interactions between CICS and a remote partner; and CICS supports pipelining and chunking of messages. As well as serving HTTP requests as an HTTP server, outbound requests can be created using EXEC CICS commands for a CICS application as an HTTP client.
New Resource Definition Online (RDO) definitions for objects known as URIMAPs can manage the HTTP server facility; CICS automatically creates virtual hosts using these definitions, so multiple host names can be provided at the same IP address, which can be managed using CICS system commands. Static responses can be provided for HTTP requests, formed from a document template or Hierarchical File System (HFS) file.
This means that CICS application programs can be written using a common HTTP protocol for business-to-business communication, to control hardware or software, or to access information in non-browser HTTP applications.
Changes to the management of connected, but inactive, IP sockets allow many more clients to connect to a CICS system. Using an internal pseudo-conversational model no CICS task resources are consumed by IP sockets waiting for a message from a partner.
CICS TS V3.1 introduces a range of improvements to security. In addition to the existing support for Secure Sockets Layer (SSL) 3.0, support is provided for the Transport Layer Security (TLS) 1.0 protocol. This includes support for the Advanced Encryption Standard (AES) cipher suites, which offer 128-bit and 256-bit encryption.
Resource definitions have been enhanced to allow the user to specify the precise list of cipher suites to be used in the negotiation. This capability is also included in the new URIMAP resource definition. To support management of the new capabilities and resources, there are new System Programming Interface (SPI) commands.
Certificate revocation lists (CRLs) are now supported when negotiating with clients, allowing any connections using revoked certificates to be closed immediately. A new supplied transaction, CCRL, is provided for updating the CRL in an LDAP server. More flexibility is offered in these negotiations: a minimum as well as a maximum encryption level can be specified for negotiation.
It is now possible to specify whether session IDs are shared across a sysplex, so improving the current use of the cache at the address space level. Caching enables an SSL handshake to be optimized based on a previous negotiation, thereby improving the performance of connection setup.
An increased number of simultaneous SSL connections can now be active, as a result of the introduction of support for pthreads within the Language Environment® enclave from which System SSL is invoked. This achieves better throughput and improves the support for new functions such as Web services.
All these functions also apply with the new outbound HTTP function, already described.
CICS TS V3.1 has the ability to support an underlying capability for case-sensitive passwords. When this function is active, it will be indicated on the CICS-supplied signon panel.
This capability will also be made available on CICS TS V2.2 and CICS TS V2.3 via the service channel.
The revoked status of a userid or group connection is now tested for by the EXEC CICS START USERID() command when it is issued, in order that the issuer can get notified by the USERIDERR condition if applicable.
The second group of enhancements to CICS TS provides new capabilities for the generation of new applications, and the development of existing applications, using contemporary programming languages and techniques. Support is introduced for totally Language Environment®-enabled Assembler application programs.
A new mechanism (Channels and Containers) is provided for inter-program data transfer, which offers an alternative that is not subject to the 32-KB restriction of the COMMAREA mechanism. All the EXEC CICS Web API commands have been made threadsafe. Support for the XPLink feature of z/OS enables improved performance of applications written in C/C++.
More efficient use of z/OS multiprocessor capabilities is enabled by extension of Open Transaction Environment (OTE) support to use open TCBs.
The Information Center has been completely redone. It is nows provided as a plug-in to the Eclipse platform. It brings benefits through commonality with this framework now being employed by many other IBM products. This is a giant step forward over the archaic NETQUERY adaptation previously used.
This second group of enhancements provide a range of new functions that enable enhancement of existing applications, and construction of new applications, using contemporary programming languages, constructs, and tools.
Enhanced C/C++ support:
New support for C/C++ has been introduced, which brings the performance of these
applications to a level comparable with that obtained with COBOL, PL/I, or Assembler
applications. This is provided by the Extra Performance Linkage (XPLink) feature of z/OS,
which provides high performance subroutine linkage mechanisms and guard pages for stack
extension, resulting in highly optimized execution path lengths. These benefits are
achieved by running these applications in the CICS Open Transaction Environment (OTE),
instead of in the Quasi-Reentrant (QR) task control block (TCB). This also has the benefit
that the applications can be run on dedicated TCBs. The applications use standard Language
Environment services, with CICS storage management.
This requires that the C/C++ applications be written to threadsafe standards, and maximum performance will be achieved only if the applications are limited to the use of threadsafe CICS commands.
XPLink support under CICS enables the latest compiler and optimization technologies included with C/C++ to be exploited. In particular, XPLink DLLs used outside CICS can now be used inside CICS as well. This means greater C/C++ code reusability.
Enhanced Open Transaction Environment:
CICS TS V3.1 extends the use of the OTE by providing support for COBOL, PL/I, Assembler,
and non-XPLink C/C++ OPENAPI application programs. The program will run on its own OTE TCB
from the start. OPENAPI requires the application to be coded to threadsafe standards; use
of any non-threadsafe CICS commands will cause a switch to the QR TCB, then CICS will
switch back to the OTE TCB before returning control to the program.
The main benefit of this support allows application workloads to be moved off the single QR TCB onto multiple OTE TCBs, thereby allowing better utilization of machine resources to achieve better throughput. Note that existing recommendations concerning use of non-CICS APIs continue to apply when executing on an OTE TCB.
Language Environment MAIN support for Assembler:
Support has been introduced to enable coding of totally Language Environment enabled
application programs in Assembler: in other words, Language Environment MAIN support is
provided for Assembler programs. A new translator option LEASM is provided which causes
Language Environment function to be used to set up the program's environment. This
improves the ease of integration of these applications into the Language Environment, so
that Language Environment services can be run more easily. Improved Debugger support is
available.
Enhanced inter-program data transfer (beyond the 32-KB COMMAREA limit):
The restriction of a maximum of 32 KB that has previously applied to the amount of data
that can be passed between programs by using a COMMAREA has been removed by the
introduction of containers and channels . Containers are named blocks of
data (sort of like uniquely named COMMAREAs with no length limits) for passing information
between programs. Any number of containers can be passed between programs. Containers are
grouped together in named channels.
Channels can be used as a standard mechanism for exchanging data between programs. A channel can be passed on EXEC CICS LINK, START, XCTL, and RETURN commands. Data can be exchanged on a DPL, remote START, or pseudo-conversation between CICS TS V3.1 systems connected by either MRO or ISC.
Channels provide a more flexible and more structured method of passing data between program components. Variation in the size and number of containers can conveniently be accommodated to allow easier evolution of the interfaces between programs. The size of a container is limited only by the amount of storage available. There is no limit to the number of containers that can be added to a channel. This mechanism also removes the need for programs to know the exact size of the data returned. When containers go out of scope, they are automatically destroyed, so that the programmer is relieved of storage management concerns.
Channels can be used by applications written in any of the programming languages supported by CICS. Options on the container and related API commands are provided for data conversion, providing a much simpler mechanism than that employed with a COMMAREA. Moreover, whereas in COMMAREA applications data conversion is controlled by the system programmer, with the new mechanism it is controlled by the application programmer.
This mechanism can only be used for communication between programs running under CICS TS V3.1. Communication with programs running under earlier levels of CICS Transaction Server still requires the use of COMMAREAs. Note that channels and COMMAREAs can coexist within the same task.
Threadsafe Web Commands:
All the EXEC CICS Web API commands have been made threadsafe. These are WEB READ, WEB
WRITE, WEB SEND, WEB RECEIVE, WEB RETRIEVE, WEB STARTBROWSE, WEB READNEXT, WEB ENDBROWSE,
WEB EXTRACT, EXTRACT WEB, EXTRACT TCPIP, and EXTRACT CERTIFICATE. This removes the
requirement for CICS to return to the quasi-reentrant task control block (QR TCB) to
execute these commands, so applications (both Java and non-Java) that use these
commands should be able to obtain the performance improvements resulting from reduced TCB
switching. Also threadsafe are the new Web API commands in support of outbound HTTP
WEB OPEN, WEB CLOSE, WEB CONVERSE, and WEB PARSE URL.
64-bit addressing toleration:
Although CICS TS V3.1 does not support execution of 64-bit applications, support is
introduced which allows 64-bit code (such as in Task Related User Exits (TRUEs)) to
execute in a CICS address space. Extensions are provided to the CICS abend capture
mechanisms to allow the contents of the full 64-bit general purpose registers to be
reported.
Codepage conversion enhancements:
To the existing CICS codepage conversion capabilities, which enable conversion between a
range of EBCDIC and ASCII codepage combinations, are added the conversion of data between
EBCDIC or ASCII and Unicode, in either direction. This support makes use of z/OS
conversion services. The capability applies to either UTF-8 or UTF-16, and support is also
provided for conversion between these forms of Unicode. Little endian to big endian
transpositions for UTF-16 data are carried out if needed.
This capability is expected to be used mainly for HTML, XHTML, and XML data, as part of the CICS support for HTTP 1.1 by Web services, and by the new Channel Container commands introduced in this version of CICS. However, the enhanced codepage conversions are available for any application need so long as the application can identify the source and target codepage CCSIDs and the specific conversion is enabled in z/OS conversion services.
The third area of enhancements is to the systems management capabilities of CICS TS
V3.1. Many improvements are made to the CICSPlex® SM Web User Interface, both
providing new functions and enhancing its usability. A new interface is provided for the
CICSPlex SM data repository batch update facility. With these enhancements, CICSPlex SM
can be configured, set up, and run without involving the TSO or CAS components, saving
time and effort for both existing and new users.
These functions are provided by the CICSPlex® SM element of CICS TS V3.1, to which additional capabilities are also added to support the new functions introduced in this version of CICS.
CICSPlex SM Web User Interface enhancements:
The Web User Interface already provides important functions that are not available with
the old TSO End User Interface, in addition to its greatly improved usability. CICS TS
V3.1 introduces a further range of improvements to the Web User Interface that deliver
significant user benefits.
New functions added are:
With these enhancements to the Web User Interface, together with jobstep access to batchrep (see below), CICSPlex SM can be configured completely without any need to activate the CAS or TSO components. Establishing it in this configuration significantly reduces the time to exploitation of CICSPlex SM functionality for new users. For existing users, it simplifies migration to the new level of CICS TS.
CICSPlex SM batchrep access enhancements:
In CICS TS V3.1, a group of new facilities is introduced which provide a
batch update mechanism for maintenance of definitions on the CICSPlex SM data repository.
These are:
These new capabilities offer improved usability for the batchrep facility, together with introducing the ability to maintain CICSPlex SM definitions from a job step. They also provide access to the batchrep facility through the Web User Interface.
Sample application: A new sample application is provided which illustrates how to code and implement a Web services provider and requester application, together with a range of other functions including COMMAREAs and channels, as an example of suggested best practices using the new functions of CICS TS V3.1.
Information Center on Eclipse platform: In CICS TS V3.1, the Information Center is powered by Eclipse technology. It consists of an Eclipse Help System, with the information for CICS TS as a plug-in. This brings a range of benefits to the user. A major benefit is the use of a common framework which is now the infrastructure of choice adopted by many IBM products, offering a common look and feel, together with consistency of behavior and a new search engine. This infrastructure also allows users to customize their own Information Centers using plug-ins from multiple products, or to write their own plug-ins. The CICS TS V3.1 Information Center also delivers plug-ins for other products from the CICS portfolio. The new Information Center enables direct links (eSupport) from CICS TS information to support information.
Eclipse: Eclipse is an award-winning, open source framework for the construction of powerful software development tools and rich desktop applications. Leveraging the Eclipse plug-in framework to integrate technology on the desktop saves technology providers time and money by enabling them to focus their efforts on delivering differentiation and value for their offerings. Eclipse is a multi-language, multi-platform, multi-vendor supported environment that is built by an open source community of developers and is provided royalty-free by the Eclipse Foundation.
Eclipse is written in the Java language, includes extensive plug-in construction toolkits and examples, and can be extended and deployed on a range of desktop operating systems including Windows, Linux, QNX and Macintosh OS X. Full details on Eclipse and the Eclipse Foundation are available at http://www.eclipse.org.
CICS Transaction Server for z/OS V2.2: Since the general availability of CICS TS V2.3, CICS TS V2.2 has also remained in marketing to provide a solution for users who are running a level of operating system lower than z/OS V1.4. It is planned that CICS TS V2.2 will be withdrawn from marketing effective March 31, 2005.
If you are in an archaic organization that still has OS/VS COBOL, you are now at a total dead-end. This version of CICS will APCE ABEND if CICS encounters a OS/VS COBOL application attempting to run.
If you were bleeding edge at one time and used ECI Base Classes (ECIREQUEST) or Common Connector Framework, (CCF) sorry but these are now gone. You'll have to probably replace them with the CCI Connector for CICS TS.
The detector and reporter components of the CICS Transaction Affinities utility have been removed from CICS TS and added to IBM CICS Interdependency Analyzer for z/OS V1.3.
There are a couple of more gotchas, but nothing major, you can read the IBM CICS TS 31 Technical Overview Presentation to see all of the items. Click here to download the PDF copy of the presentation.
We suggest you start with the IBM CICS TS V31 Business Value Presentation. If you need help in developing or presenting the CICS story, just contact us!
Use Your Browser's BACK Button to Return to Previous Page