This article is part of SHARE’s intro to the mainframe series. If you would like to contribute to this series, please reach out to editor@share.org.
Originally called the Customer Information Control System, this IBM product is now known simply as CICS. IBM says CICS is “a secure and scalable platform for transactional enterprise applications in hybrid architectures.” But what does that mean?
CICS Transaction Server for z/OS (to give its official name) is IBM software that runs and manages mainframe applications that process transactions, such as inquiries, sales, or purchases, on a large scale — billions of transactions per day. If you’ve ever taken money out of an ATM, more than likely — and without knowing it — you’ve used CICS.
CICS provides common services to applications in an enterprise, such as security, recovery, and data conversion, so that each application doesn’t have to try to handle those complex things on an individual basis. It connects the diverse applications to each other and to data from many different sources, so that an organization can grow and adapt its infrastructure across different technologies, without having to rewrite its most business-critical applications every time. CICS used to be called “middleware,” reflecting its role between the IBM z/OS operating system and an enterprise’s applications.
This article provides a high-level overview of CICS’ importance and relevance to the mainframe.
Where Does CICS Fit Into the IT and Mainframe Landscape?
Incredibly, CICS began in 1969. There aren’t many pieces of software that are still going strong at 56 — and it has no plans to slow down. It’s a mainstay of governments, major banks, brokers, insurers, retailers, and manufacturing companies. Typically, it’s used by companies who need to process massive numbers of requests, with confidence that those requests are fast, reliable, and secure. Other companies have grown a large ecosystem of tools that work with CICS.
What Are the Major Benefits of CICS?
Over years, it’s proven that it can safely manage huge volumes of transactions. It smooths out complexity for application developers by providing services for common programming challenges. For example, IT security is complex but critical. On behalf of an application, CICS checks that users can access only the resources that they are authorized to use. This means that the application programmer doesn’t have to code these checks. It also means that security changes can be implemented without changing the application code – and that applications can’t skip certain security checks!
Because it can handle many different programming languages and types of data, it can be hooked into new technologies and use cases. For example, allowing site reliability engineers to track and optimize CICS as just another part of an overall IT environment by surfacing Open Telemetry data from CICS, or cutting through the complexity of problem determination by giving AI agents access to relevant information about a CICS system through the CICS Model Context Protocol (MCP) server.
It’s a bit like extending your house without having to demolish its foundation.
Are There Drawbacks of CICS?
Over the last 56 years, IT environments have changed greatly. CICS’ history, and the fact that it’s designed to be flexible, means that it has a lot of configuration options. Some of these options allowed for very fine-grained tuning back when compute resources were scarce and expensive, and these are hard to master for new system administrators. IBM is working to simplify configuration. For example, IBM is allowing key system parameters to be set through YAML files using practical defaults, instead of system administrators having to pick a value and code it in JCL. Additionally, IBM is enabling artificial intelligence (AI) to surface information administrators may need.
Who Uses CICS?
Almost all consumers use systems that CICS supports. When we check our bank balances, transfer money, book holidays, or go shopping, we’re using CICS. Behind the scenes, skilled system programmers configure and manage it, and they work with security administrators, capacity planners, and site reliability engineers to integrate CICS into the IT infrastructure and operations of the company.
Developers contribute the applications that CICS runs.
How Do You Use CICS?
I work for IBM on the CICS product documentation so my use of CICS is a bit different to a typical user. As such, I log into a CICS region (an instance of CICS) to check elements of the interface and represent those in the documentation.
For a more typical case, imagine that a company wants to provide a new service to its clients.
- An IT architect decides that the new function will be written in Java. The Java function will extend an existing application and will run in CICS.
- A Java developer is charged with writing the extension. Even though the existing application is in COBOL, the developer can write their new bit in Java. CICS handles the interaction between the two programming languages.
- The developer provides the application for the new service.
- The system programmer provides the CICS environment and the resources for the application to run. They monitor the application in action, optimizing CICS facilities to make sure that it runs as securely and speedily as it needs to.
How Would You Recommend Learning to Use CICS?
This IBM video course gives a straightforward overview. The product documentation has everything that you’d need to know. Various companies offer training courses, in person and online. Typically, CICS users learn on the job because each organization uses its preferred combination of the many configuration options and capabilities.
If Anyone Would Like a Job Where They Regularly Use CICS, What Would You Recommend?
CICS is regularly represented at conferences like SHARE, GSE, WaveZ, and in online mainframe communities and meetups. I’d recommend participation at any of these to develop an awareness of which organizations use CICS and how, and to build up contacts. You can also ask CICS questions on Stack Overflow.
Melita Saville is the technical content strategist for IBM Z Software, where she oversees the development of user information for Z products. She leads the team that is responsible for creating CICS product documentation, alongside the CICS Development team. Saville works closely with users to identify their needs and is passionate about providing the right information to help them to get their work done.
Looking for some online education on this topic? Check out these SHARE’d Knowledge members-only courses: