The Evolution of CICS: The Ten Year Evolution of CICS Web Support (2003)

CICS has come a long way since 1994 when it introduced its first support for the Internet. Today we have CICS Web Support (CWS), the CICS Transaction Gateway (CTG) and the CICS Universal Client (CUC). It's understandable that most people simply accept the present and do their job, but a look back as to how we got to where we are might prove enlightening, and demonstrate CICS' continued efforts to stay abreast of emerging technologies.

Ten years ago, if a CICS account wanted to begin enabling web browsers to access one or more CICS systems, the choices were the CICS Internet Gateway, the CICS Gateway for Java, CICS/ESA 4.1 CICS Web Interface (CWI) or having browsers access the operating system's Common Gateway Interface (CGI) and from there EXCI into a given CICS region.

Both the CICS Internet Gateway and the CICS Gateway for Java required outboard servers and use of CICS Client support such as External Presentation Interface (EPI) or External Call Interface (ECI) in order to access a given CICS system. The CICS Client came into being in the early 1990s and evolved into the so-called Common Client and more recently the support is now known as the CICS Universal Client.

An outstanding reference for the early CICS Web support is contained in a book by Susan Malaika entitled "Web Gateway Tools" (1997) (ISBN 0-471-17555-2). Although the book is outdated by current technologies, it is an excellent reference for early MVS-based Web support.

The CICS Internet Gateway provided a path whereby web browsers could access CICS 3270 applications. The Gateway provided for data stream conversion from HTML to 3270 and vice versa. The Gateway would be installed on an OS/2, Windows NT or AIX system. A browser would invoke the Gateway's host operating system CGI, which invoked the Gateway, and it used EPI to communicate with the target CICS system.

The CICS Internet Gateway supported pseudo-conversational and non-conversational CICS 3270 applications. The default conversion of HTML to 3270 and return resulted in something commonly referred to as the "ugly green screen". Unless the user utilized provided interfaces to provide enhanced HTML, the default presentation displayed data in the approximate position as with a 3270, and since browsers do not support PA and PF keys, those were emulated with clickable icons at the bottom of the screen. Generally, there was no need to change or recompile the CICS application.

The CICS Gateway for Java enabled the use of Java in a CICS context for the first time. As with the CICS Internet Gateway, the Java Gateway required an outboard server, such as OS/2, Windows NT or AIX. A Java Virtual Machine (JVM) was required on the browser, which is where the Java application (an applet) would execute once downloaded. The logic path would then be the browser's execution of the Java application, which in turn invoked the Gateway on its server and it would use ECI to communicate with the target CICS system. A CICS COMMAREA would be used to pass data between the Gateway and CICS machines.

Support for the CICS 3270 Bridge did not become available until CICS TS 1.2 in 1997. The use of Java within a CICS region did not become available until CICS TS 1.3 in 1998. The two CICS Gateways represented CICS's early web-enablement support.

CICS/ESA 4.1 became available in 1994 and IBM provided the CICS Web Interface (CWI) so as to enable web browsers to directly access CICS on the mainframe and not require an outboard server of any kind. This initial support was limited to COMMAREA-driven applications and did not provide support for accessing 3270-based applications. CWI would later be replaced with the newer, re-architected CICS Web Support (CWS) which became available with CICS TS 1.3 in 1998.

In the early years of CICS web-enablement, another path which could be utilized by the user was the operating system's CGI interface. A browser could access the operating system's web server and invoke its CGI exit. From there, user code could invoke a target CICS system using TCP Sockets, a SNA interface or probably most simply, use CICS' External CICS Interface (EXCI) (not to be confused with CICS' ECI which can only be issued by CICS Client support on an outboard server or desktop computer).

A user-written CGI routine could use EXCI much like CICS' Distributed Program Link (DPL) to invoke the target CICS application, using a COMMAREA to pass data. The use of the CGI method was popular among some users because at the time it was the only path with which security and encryption/decryption was available. This is no longer the case since CICS now supports the Secure Sockets Layer (SSL) on any supported web-related access to a target CICS system.

The CICS 3270 bridge became available with CICS TS 1.2. The bridge enabled web browsers to contact CICS directly and through the bridge code invoke CICS BMS or non-BMS applications. Provision was made for the conversion of HTML/3270 input/output data streams. Legacy applications (definition? - "they work") need not be changed and could continue to support 3270 terminals as well as the now new web access from browsers.

CICS Development moved rapidly in the 1994-1998 period, responding to user feedback and requirements so as to build and ship enhanced support for use of the Internet. Whereas the 3270 Bridge was an attractive enhancement in CICS TS 1.2, it had several severe limitations such as a lack of support for the CICS START command. This lack of support prevented common user menu transactions from STARTing a selected application.

CICS TS 1.3 became available in 1998 and contained major enhancements which greatly contributed to the effective use of the Internet. CICS Development would readily admit that prior to 1.3, it hurried to get Web support into the product and to respond to customer requirements. In this haste, the internals of CICS lacked good design and architecture for its web support. This was corrected with 1.3 by replacing CWI with the new CICS Web Support (CWS). Redundancies in code were removed. A new "sockets domain" was created conforming to domain architecture which existed throughtout the rest of the product. Note that the sockets domain is an internal CICS component and should not be confused with the Sockets API, from TCP/IP, used by user application programs.

In addition to the improvements in CICS internals, the CICS Bridge was enhanced in a number of ways, most notably prior restrictions were removed and the START command was now supported. New commands were added to CICS to better accomodate "web aware" applications where the wanted to work at a lower level of programming.

CICS TS 1.3 also introduced its Open Transaction Environment (OTE) whose initial purpose was to enable Java applications to execute within a CICS region, but under an OTE TCB and not the primary CICS QR TCB. CICS provided JCICS (Java classes) which enabled Java applications to invoke CICS services, such as file control, program control, etc.

The CICS Transaction Gateway V3 (CTG) and the CICS Universal Client (CUC) became available as free, downloadable software from IBM. The CTG could be installed and used either on an outboard server (e.g. AIX, Sun Solaris, etc) or on S/390 and MVS. CICS Client functions (EPI and ECI) were integrated into the CTG for use on outboard servers, whereas EXCI would be used for CICS connectivity if the CTG were used on the mainframe.

CTG on an outboard server provided a framework for client applications which then might use EPI or ECI. Written in Java, the CTG provided Java beans (think of them as subroutines) which could be used to assist the user in developing client applications. The CTG itself provided a sample "terminal servlet" to illustrate how browser input could be routed to a CICS mainframe region. On the mainframe, CICS provided a "plugin" to assist the user with CICS connectivity.

CICS delivered CTG V4 in 2001 but now it was fee-based software. Enhancements included support for HP-UX and Windows 2000. CTG V5 was delivered in 2002 and contained many new enhancements. Logging of EXCI requests, dynamic trace control, support for automatic restart, asynchronous ECI calls and J2EE connectivity for WebSphere were just some of the enhancements in V5. IBM announced that the CTG would now be considered the strategic connector for CICS and WebSphere.

With the apparent demise of a stand-alone CICS Client, IBM was quick to assure users that the CICS Universal Client could still be ordered and used for workstations not involving the CTG.

From its simple beginnings, the CICS support for the Internet has grown rapidly and comprehensively. This short article barely touches the surface of CICS' support. Java applications can run on the workstation, on an outboard server, within CICS regions or in MVS regions connected to CICS. Browsers or other computers can access CICS directly, through an outboard server or through an MVS-connected address space (and also through the operating systems CGI exit).

CICS TS V2 has improved its performance when using Java Virtual Machines (JVMs) on S/390 or z/OS. More than one Java program can be used within a CICS task, and the runtime characteristics of JVMs can be specified by the user for optimum performance. CICS performance using the Web and/or Java or EJB applications is equal to or better than any other transactional environment. The CICS commitment is evident with regard to supporting emerging technologies.

Copyright © 2003 - Yelavich Consulting, Sparks, NV
Click here for other articles regarding the evolution of CICS.