Customer Information Control System (CICS)
In this tutorial you will learn about Customer Information Control System (CICS) – CICS – An overview, Functions of CICS, Task, Transaction and CICS Components.
CICS – An overview
CICS is called as Customer Information Control System. The main functionality of CICS is it acts as an interface between the Operating System and application programs.
Functions of CICS
- Acts as interface between operating system and application programs
- Does the function of data communication and therefore handle data. In other words CICS can support number of terminals or systems and acts as a data communication system between them.
- Take care of application program functions along with that take care of system functions also
- Also help in the task of monitoring
- Acts as a specialized operating system by providing environment for the execution of online application programs.
- CICS handles file management itself and so there is no need for statements like READ ,WRITE,OPEN
Before going into what CICS does and handles it would be easier if we get to know some common terminologies used with CICS namely
Task: This is defined as the fundamental unit of work which is scheduled by CICS namely to write to the workstation, read from workstation, read from a file, write to a file, initiate another task, call another function and so on.
Transaction: This is one which commences the execution of a task. CICS assigns and identifies each transaction by a transaction identifier
Having known about task and transaction let us see how both are handled together in CICS. We have seen above that when a transaction is started then it executes a task. But one may have a doubt whether CICS can handle more than one task at the same time for same transaction. The answer is yes. In other words if a transaction say tran1 is started or initiated more than one time again and again then CICS transaction tran1 create more than one task at the same time. This is how a task or more than one task gets created. Now we switch to see how to initiate a transaction which is essential for starting a task. There are many ways to start transaction let us see some of the ways of initiating or starting a transaction.
One of the ways could be to use a transaction identifier to initiate a transaction. This is because we have seen already that CICS assigns and identifies each transaction by a transaction identifier. So by entering the transaction identifier in the CICS screen and by pressing enter key CICS transaction associated with the transaction identifier entered gets initiated and invoked. It is also possible to initiate a transaction by using the CICS command START. This also provides the facility of starting a transaction after a specified time interval.
CICS also has the option of initiating a task automatically technically called as Automatic Task Initiation. One can initiate a transaction in this way also.
There are three major components associated with CICS namely Management Modules, Control Tables and Control Blocks. These three are very essential in CICS environment and so let us see an overview of the function of each. We have seen that CICS act as an interface between operating system and application program and this is achieved by management module. In other words Management Modules are programs that act as interface between operating system and application program. Control table is associated with management module and is used to define the CICS environment. A control block is used to store information about CICS system. For instance we have seen that a transaction handled by CICS is identified by transaction identifier. And also each transaction may have number of task in it. Control blocks have the information about the task in an area called as task control area. Like that control block has many system information stored.
Having got an idea about what CICS is what a transaction is and the components used in CICS now its time to look in brief as how a transaction gets initiated and executed in CICS.
Let us take a example where the
Transaction Identifier: EXFOR
Application program: A1
User Makes call to file student for data
Let use see how the above transaction given in example is initiated and executed by CICS and how the data is presented on the terminal as output in CICS environment. As we have seen before each transaction in CICS has a transaction identifier associated with it. So as a first step to initiate the transaction one types the transaction identifiers on the terminal. For instance in our example the transaction identifier is EXFOR and it is typed on the terminal. This is taken by CICS and the transaction identifier EXFOR is stored in working storage division. The CICS service treats the transaction identifier say EXFOR as a call to the associated application program. The application program can be present in storage division or in program library. Suppose in our case if the associated application program say A1 was in program library so A1 is loaded from program library into working storage. Now task is created and the program is started or initiated. Now we must know an important technology called as BMS. BMS is also called as Basic mapping support. We know the output of any program would appear on the terminal screen.
There are many features which are specific to hardware and this may affect the output. In other words to get the output as desired say in formatted way and in order to remove the dependency CICS has a facility called BMS. Now after the program is initiated the next step is to give the control to user. This is done by giving terminal control and also BMS is used by CICS now to get the requirements from user that is from screen. As per our example user wants to get value from student file. So file control is given by CICS to student file and the information requested by user is retrieved. Now BMS as explained does the primary function of formatting of the data retrieved from student file and present it on the terminal.
This is how transaction flows between user application and system in a CICS environment. There are lot of functions and features available in ICS but the above description gives an overview of CICS.