IBM launched the initial version of CICS in 1968.
It is a Database/Data Communication Control System where an application program can concentrate on the application processing without worrying about OS, hardware and others. Initially CICS was on macro level and later upgraded to command level.
CICS (Customer Information Control System) is an IBM database/data communication (DB/DC) system. CICS makes it easy to send, receive, and process data through interaction with a terminal that consists of a display unit or cathode-ray tube (CRT) and a keyboard.
CICS runs on IBM and IBM-compatible mainframe and microcomputer systems and provides an interface between application programs and the computer’s operating system. It functions like an online operating system. CICS application programmers use command-level COBOL to code easy-to-use instructions into their programs.
These commands facilitate accessing and updating online database files, data entry, and display of data and other information on the display terminal. Users of CICS can transmit data from their terminals to the system where the data is processed and then sent back to the user.
Following image shows the components of CICS and how they are inter-related.
CICS is a single task to MVS although it behaves like an operating system within an operating system, whose job is to provide an environment for the execution of on-line jobs including interfaces to files and databases.
CICS address space is given a favored status within the MVS system.
CICS has a multi-region operation feature, i.e., multiple CICS address spaces can communicate with each other.
CICS is easy to develop on-line applications and its Coding is similar to high level languages.
CICS has Common interface to database and Data sets.
CICS has Better response time.
CICS is easy to customize.
CICS does not need to code data for the purpose of displaying data onto the screen.
CICS gives easy forms development using BMS facility.
CICS is Device independence.
CICS has Data independence.
CICS enables sharing of code between applications.
An application is a collection of related programs that together perform a business operation, such as processing a product order or preparing a company payroll. CICS applications execute under CICS control, using CICS services and interfaces to access programs and files.
CICS is a transaction processing subsystem. That means that it provides services for you to run applications online, by request, at the same time as many other users are submitting requests to run the same applications, using the same files and programs. CICS manages the sharing of resources; integrity of data and prioritization of execution, with fast response.
A CICS program is invoked through a transaction. A CICS transaction is a collection of logically related programs in an application. The whole application could be logically divided into several transactions.
Transaction identifiers which are 1 to 4 characters long are used to identify the transactions which the users want to do.
A programmer links one program to the transaction identifier which is used to invoke all the application programs for that particular transaction.
A Task is a unit of work which is specific to a user.
Users invoke an application by using one of the transaction identifiers. CICS looks up for the transaction identifier to find out which program to invoke first to do the work requested. It creates a task to do the work, and transfers control to the mentioned program.
A transaction can be completed through several tasks.
A task can receive data from and send data to the terminal that started it. It can read and write files and can start other tasks also.
Task is a unit of work and transaction is an entity that initiates the execution of task. The transaction identifier identifies the transaction in CICS.
The difference between a transaction and a task is that several users can invoke a transaction but each user initiates his own task.
If you have any doubts or queries related to this chapter, get them clarified from our Mainframe experts on ibmmainframer Community!