CICS Web Support
CICS Web support refers to the set of Web connectivity features described in the CICS Internet Guide. Additionally, several shared components that are required for CICS to communicate with the Internet are considered part of CICS Web support, including TCP/IP support provided by the sockets domain and UNIX Systems Services support.
The service features provided by Web support include:
- The EXEC CICS WEB and EXEC CICS DOCUMENT Application Program Interfaces (APIs). Application programs can use these commands to interface with the Internet via HTTP. For example, a programmer could design a Web page to call CICS, passing an HTTP stream to a Web-aware program. The CICS program would then use the WEB commands to analyze the incoming HTTP and identify the request. After processing the request normally, the program would then use the WEB and DOCUMENT commands to build an output HTTP stream that would present request results to the user. This functionality can be used to make CICS an HTTP client, too, allowing a CICS program to access data or services available on the Web but not on the mainframe.
- For existing CICS programs that return data to a calling program via Commareas, CICS Web support provides for a user-written “converter” program that intercepts the transmission from the Web, converts it into an acceptable Commarea format, LINKs to the application processing program, and then converts the returned Commarea back into an HTTP stream for transmission to the original requester.
- For existing CICS applications using 3270 displays, CICS Web support provides several alternatives that let the programmer convert incoming HTTP to a 3270 data stream, pass that data stream to the application program (as if it had come from a terminal), receive the outgoing 3270 data stream and convert it to HTTP, and return the HTTP to the caller. The processes involved resemble the 3270 bridge facility and use some parts of the 3270 bridge architecture, but the support for 3270-to-HTTP connectivity is more extensive with CICS Web support than the support in the 3270 bridge.
To provide the functionality required by these services, CICS Web support includes several utility programs called at various points in the process. CICS Web support lets customers replace the IBM-supplied version of these programs with user-written programs to customize the data flow process. While these aren’t CICS User Replaceable Modules, they do provide a similar service.
IBM provides sample programs for the:
- Analyzer Program, which is called after the HTTP stream has been accepted from the Web
- Web Error Program, which is called when an abend or other error occurs
- Web Terminal Translation Application, which is called to convert outgoing 3270 data streams into HTML, using the 3270 bridge facility
- Password expiry management program, which is called to allow a user to define a new password if theirs has expired.
IBM doesn’t provide a sample Converter Program. CICS Web support will function as documented without changing these programs, but you can replace them with a user-written version.
CICS Socket Interface
The CICS Socket Interface (CSI) was the first IBM-supported method to connect CICS to the Internet. CSI is a feature of the z/OS Communication Server; it isn’t part of CICS and doesn’t use the CICS Sockets Domain. It was first supported by CICS/ESA 3.3, and provides an interface to let CICS programs interface directly with the z/OS TCP/IP sockets manager.
CSI uses the CICS Task Related User Exit (TRUE) to interface between the CICS application task and the CSI code running under z/OS Task Control Blocks (TCBs). As originally delivered, CSI managed its own pool of TCBs; with z/OS 1.7, CSI converted to use the CICS Open Transaction Environment (OTE) and now runs on L8 TCBs as a threadsafe resource.
Because CSI isn’t a CICS component, it doesn’t use the EXEC CICS API, but instead uses a call-level interface, where the programmer issues a CALL to a CSI program, passing parameters that describe the request. This interface is extremely fast, has low overhead, and (for z/OS 1.7 and above) provides CICS QR TCB CPU constraint relief by running on an L8 TCB. With this combination of qualities, CSI can support large-volume, strategic applications that require fast response times. Further, because CSI uses the native sockets interface, it can provide a connection to any device or platform that supports TCP/IP.