Tuesday, February 2, 2016

THE CICS JOURNEY CONTINUES - By Nick Garrod

CICS recently celebrated 46 years as the premier transaction processor (some IMS fans may disagree here—that is their right) but what does this mean all these years later? Well, for starters, we have a piece of software that has lasted 46 years in the market and that is not something one sees every day (again, IMS fans could take issue as they are a year more mature). CICS has evolved over the years to be rather good at enterprise-grade, mixed-language application serving and the recent announcement of CICS Transaction Server V5.3, (CICS TS V5.3), along with the CICS Tools, make a compelling proposition that in 46 years hence CICS will still be leading the field.

When CICS V5 entered the market, it was underpinned by three main themes:
• Service Agility
• Operational Efficiency
• With Cloud enablement.

Internally, we also talked about the enhancements we were making to core CICS function, the foundation of CICS. The three releases have built on these themes (and the core foundation) and remain largely similar with a slight amendment to the final point, which in release 3 we refer to as cloud with DevOps. This is not just a marketing ploy to jump on the DevOps bandwagon; there is serious value to the DevOps teams to be found in this release.

Service Agility

The improvements in this space are largely around two key areas, support for Java and support for the WebSphere Liberty Profile, providing better interoperability, simplified management and enhanced Java SE support.

A set of new WebSphere Liberty profile features provide support for a wider range of Java web APIs and application frameworks. CICS TS V5.3 augments the previously provided Liberty profile features with:

• Contexts and dependency injection (CDI)*
• Enterprise JavaBean (EJB) Lite subset
• Managed Beans*
• MongoDB*
• OSGi Console*
• Session persistence (JDBC type 4 driver only)*.
  • Also available for CICS TS V5.2 via APAR PI25503
These features are new, but work has also gone into improving existing Liberty profile features. Specifically, the work that has been done is in the area of adding EAR support for bundles, making Java-based web applications even more portable, adding SQLJ support for use with the DB2 type 2 driver data sources and adding transaction support to the Blueprint feature.

Enhanced operability is addressed in CICS TS V5.3 with technology that provides the ability for Java programs in a Liberty profile Java Virtual Machine (JVM) and non-Java programs to call each other using standard API calls. This enables Java applications to use the standard JEE Connector Architecture (JCA) to invoke CICS programs in any supported language. Non-Java CICS programs can issue an EXEC CICSLINK to call a Java application running in a Liberty profile JVM server.

IBM z/OS Connect feature is now supported by CICS TS (in CICS TS V5.2 via APAR PI25503), which provides RESTful APIs and accepts JavaScript Object Notation (JSON) payloads between CICS, Mobile devices and cloud environments. Java applications and JVM system objects can now be monitored using Java Management Extensions (JMX). The following JMX-related Liberty profile features are now supported:

• Local JMX connector*
• Monitoring*
• REST connector (for JMX)*.
  • Also available for CICS TS V5.2 via APAR PI25503
Users of the Liberty profile JVM server can now manage and monitor applications and system objects locally by using the JMX client API, or remotely by using the Jconsole monitoring tool included in Java SE.

JVM server administration is improved by simplifying the process of managing log files that include controls for a maximum number of zFS logs, the ability to redirect log files to the MVS JES log and the standardization of timestamps.

Java SE programs that run in a CICS OSGi JVM server can now use the WebSphere MQ classes for the Java Message Service (JMS) as an alternative to proprietary WebSphere MQ classes for Java. Developers familiar with the JMS API can easily access WebSphere MQ resources with enhancements made to the CICS MQ attachment facility to support the required new commands.

There is no Java SE support in a Liberty profile JVM server; it is currently limited to Java programs that run in an OSGi JVM server. Support from WebSphere MQ that uses the WebSphere MQ classes for JMS is provided in WebSphere MQ for z/OS V7.1 and V8. However, there are several requirements:

• V71 requires MQ APAR PI29770 (built on fix pack 7.1.0.6) or later
• V8.0 requires base APAR PI28482 and fix pack 8.0.0.2 or later
• CICS TS V5.2 is also supported and requires APAR PI32151.

Operational Efficiency

The improvements in this theme concern performance optimizations, better metrics and additional security. These optimizations are largely in the area of web services. Since its introduction into CICS TS V3.1 in 2005, web services has become one of the most popular methods of interacting with CICS applications and in this new release there are a number of significant optimizations.

The pipeline processing of HTTP requests has been improved, removing the need for an intermediate web attach task (CWXN transaction) in the majority of use cases. This will reduce the CPU and memory overhead for most types of SOAP and JSON based HTTP CICS web services. This optimization may also be used for inbound HTTPS requests, where SSLL support is provided by the Application Transparent Transport Layer Security (AT-TLS) feature of IBM Communications Server. CICS TCPIPSERVICE resources may be configured as AT-TLS aware to obtain security information from AT-TLS. HTTPS implementations using CICS SSL support still use the CWXN transaction but should also see performance improvements due to reduced TCB switches from these scenarios.

CICS TS V5.3 sees performance improvements in many areas that help to reduce CPU overhead. These include exploitation of a number of new hardware instructions introduced in the IBM z9, cache alignment of some key CICS control blocks, the use of prefetch, reduced lock contention within monitoring algorithms, improvements to the MRO session management algorithms and tuning of internal procedures. Improvements in efficiency have noticeable gains in the CICS trace facility, the CICS monitoring facility and for MRO connections with high session counts.

CICS transaction tracking identifies relationships between tasks in an application as they flow across CICS systems and can be visualized in the CICS Explorer. In this release, transaction tracking has been extended to transactions started by the CICS-WebSphere MQ bridge, expanding the scope of transactions that can use this facility to help with reporting, auditing and problem determination.
A number of new metrics have been added into the global CICS statistics for transaction CPU time measurements and are captured without the need for CICS monitoring to be active. This allows greater insight into the CPU resource usage of the regions without the SMF 110 records processing overhead.

Additional security features include new support for the Enhanced Password Algorithm, implemented in RACF APAR OA43999, allowing stronger encryption of passwords. There is enhanced support for Kerberos providing an EXEC CICS SIGNON TOKEN command, avoiding the need to flow a password. Applications can now validate a Kerberos security token (as determined by an external security manager) and associate a new user ID with the current terminal.

A new EXEC CICS REQUEST PASSTICKET API can be used for outbound requests from the current task, where basic authentication is required, which avoids the need to flow passwords. RACF or similar external security manager builds the PassTicket. There are further opportunities to offload authentication requests to open TCBs, which reduces contention on the resource owning TCB.

Cloud With DevOps

The underlying capability in the area of cloud and DevOps enables adoption of a continuous development integration model for automated CICS deployments. The value comes from four main areas:
• Automated builds
• Scripted deployments
• UrbanCode Deploy support
• Enhance cloud enablement.

Bundles and cloud applications are a convenient way to package and manage components, resources and dependencies in CICS.

In this release, a command line interface for automating the building of CICS projects created in the CICS Explorer is introduced in the shape of a CICS build toolkit. CICS cloud applications and bundles, as well as OSGi components, can now be automatically built from source code.
Scripts call the CICS build toolkit to create a build, which automatically runs when application updates are made. A build script would typically check the latest application version from source control, along with its dependencies. It then calls the CICS build kit to build the projects from the application.

In a final step the script initiates a copy of the built projects to an appropriate location—such as an artifact repository or a staging area on zFS. The CICS build kit is supported on z/OS, Linux and Microsoft Windows, and supports CICS TS V4.1 and later (see Figure 1).

A built CICS project that resides in zFS may be programmatically deployed across CICS systems by using a set of scripting commands new to this release and can simplify and automate application deployments.

DFHDPLOY is a new batch utility to support the automated provisioning of CICS bundles, OSGi bundles within CICS bundles and CICS applications by using the following simple commands:
• SET APPLICATION
• SET BUNDLE
• DEPLOY APPLICATION
• UNDEPLOY APPLICATION
• DEPLOY BUNDLE
• UNDEPLOY BUNDLE.
script to deploy them across CICS systems and set them to a desired state, such as “enabled” or “available.” It can also be used to undeploy and remove them when they are no longer required (see Figure 2).

IBM UrbanCode Deploy orchestrates and automates the deployment of applications, middleware configurations and database changes. CICS has made available a plugin for UrbanCode Deploy that supports the deployment of CICS applications as part of these orchestrations (see Figure 3).
Multiple deployment steps can be coordinated in a single action with UrbanCode Deploy. Similar applications and environments such as development systems or more tightly controlled test and production environments can reuse these deployment processes.

The UrbanCode plugin provides function for installing and removing resources, NEWCOPY and PHASEIN for programs and performing pipeline scan. Batch utilities like DFHDEPLOY can be reused using the z/OS utility plugin (see Figures 4 and 5). The plugin is available for CICS TS V4.1 or later and may be downloaded from the UrbanCode Deploy plugin website at https://developer/ibm.com/ urbancode/plugin/cics-ts.

In addition to these deployment capabilities, there are a number of improvements made to the core CICS cloud function to increase the value to CICS customers. Threshold policies were introduced in CICS TS V5 and in this recent release they have been enhanced by providing the ability to supply a threshold policy for the number of IBM MQ requests, DL/1 requests, named counter requests and shared temporary storage requests issued by a CICS task. This now brings the number of thresholds against which an action can be triggered to 14.

Program and URI entry points have been available before but this release sees the addition of transaction entry points. This provides the ability to scope policies to be specific to a particular transaction ID. Recovery of the application infrastructure is enhanced, so that the available or unavailable state of an application is automatically recovered across CICS restarts.

CICS TS version 5 has seen many new innovations: It has been the first version to have a family release (five CICS Tools have been announced on the same day as the run-time); we have seen faster development cycles between major releases; we have seen rich feature packs available for download; and we have seen more requirements deliver than ever before (by the time release 3 hits the streets, more than 300 customer requirements will have been satisfied); and we have seen a move toward design thinking in the way this latest release was developed. Advances in the hardware provide potential benefits to CICS customers such as:
• Simultaneous multithreading (SMT) processors by CICS Java applications
• Greater data compression and reduced data transfer time for CICS SMF data
• Cryptographic acceleration for CICS transactions using SSL or TLS
• Planned availability of large memory on z/OS (for storage above the bar or JVM heap storage).

All these things, together with advances in the hardware CICS runs on, the mainframe, provide supreme additional value for your CICS environment and a compelling reason to upgrade. If you just want to try out some of the exciting new capability, you can always download the CICS TS Developer Trial as many times as you wish

No comments:

Post a Comment