Click to edit Master notes styles
Second Level
Third Level
Fourth Level
Fifth Level
•IBM’s CICS has withstood the test of time.  It rose out of a need by a public utility in the 1960’s to perform interactive look-up of customer information.  CICS has transformed over the past thirty years to run on a number of hardware platforms and operating systems.  CICS supports languages ranging from the lowest level assembler to the most modern object oriented.  Even Internet applications are served.  •This presentation begins with the definition of a transaction.  We will then discuss the history of CICS from the 1960’s to the present, list the languages and platforms that support CICS, and show the internal structure of the system.  We finish with a simple program example.
•
•
In order to understand why CICS is necessary, you must understand what a transaction is.  The definition presented in the article by Comaford is quite common and is known as is ACID definition.  ACID stands for Atomic, Consistent, Isolated, Durable. [Comaford] Atomic means that a transaction will operate on one or more tables and rows such that either all of the changes occur or none of the changes occur.  This group  is known as a unit of work (UOW). A Commit occurs when all of the changes succeed and the changes are made permanent.  A Rollback occurs to reverse the changes and the database is restored to how it was before the start of the UOW. Consistency means that the database conforms to all of its rules at the end of any work.  For example, this might mean that no two row identifiers are the same. Isolated means that changes performed by one person cannot be seen or interfere with anyone else until they are committed. It is as though you have your own private database. Durable means that once changes to the database are committed, the change can live through a system failure.  Uncommitted changes cannot survive a system failure. [Nusphere]
•
In the 1960’s IBM’s System/360 machines had no interactive capabilities to start although customers, especially public utilities, clamored for one.  Ben Riggins, known as the father of CICS, was sent to an IBM development facility near Chicago to make one.  The result was the Public Utility Customer Information Control System.  The name was later shortened to the Customer Information Control System, now known as CICS. In 1969, IBM unbundled software from hardware and began to sell CICS on its own. In 1971, IBM began to sell CICS for its smaller operating systems, DOS for small mainframes and the simpler DOSE, the entry version of DOS. In 1973, the development of CICS moved from the Chicago area to Hursley, England, where it is today. A CMS version was marketed in 1985 as a single user development environment. A production VM version was introduced in 1987. During the 1990’s, CICS continued its movement to other operating platforms such as the AS/400 and web environments.
•
This is the list of the IBM hardware and operating systems that support CICS.
•The first application programs for CICS had to be written in Assembler.
•By the 1970’s support for COBOL and PL/I were added. [Ankrum]
•Although CICS supports a variety of languages, most applications are written in COBOL.  [Menendez] •Rexx is not really for application programming, but is similar to a Unix scripting language. •Besides the programming languages listed above, you may write programs in Visual basic to interact with CICS via IBM’s Extended Call Interface (ECI).  HTML can communicate with CICS via Internet Inter-ORB Protocol (IIOP) [Horwill] •RPG II was briefly supported and then dropped.  Ada development support was also dropped due to a lack of market acceptance. [Ankrum]
•
•
•CICS is divided into a set of service programs responsible for different aspects of transaction execution. •CICS runs under the direction of the management services program.  The most important of these is the Task Control Program ( KCP).  The KCP looks through the Active Chain of executing tasks and determines the highest priority work.  If there is no work, the KCP puts CICS into an operating system wait state. [Hudders] •Data Management Services are handled by the File Control Program (FCP) for VSAM datasets, DL/I for IM databases, and SQL for DB2 access. [Hudders] •The Application Programming Interface ensures that CICS services are invoked in a consistent manner.  The Program Control Program (PCP) handles the program selection and execution using the Program Processing Table (PPT).  Requests from the application program are sent to the correct resource. [Hudders] •Basic Mapping Support (BMS) handles the defined screen formats, called mapsets.  The are two types of mapsets.  Physical mapsets determine the location, appearance, and operation of display data.  Symbolic mapsets allow manipulation of the screen data.[Menendez] •The Terminal Control Program (TCP) controls messages from terminal sessions into CICS and CICS responses back to the terminal session.[Hudders]
•
•The most popular operating system to run CICS is OS/390. 
•The Red boxes show the services under control of CICS.  These include the program API, Basic Mapping Services (BMS), and Terminal Control •The White boxes show the services under control of the operating system, in this case OS/390.  These services include communication protocols, such as  TCP/IP, the databases and file systems that store data, such as DB2, and the actual application program that will accomplish the task. •The Blue box represents the outside user of the system.  This is the end user of the CICS application.[Menendez]
•
CICS is able to handle simultaneous execution of many tasks.  This ability to handle many simultaneous tasks is known as multitasking. For CICS a task is the running of a set of programs as a unit to form a transaction.  To start a transaction, a four character code known as the TRANS-ID is entered.  In an interactive session a user types this TRANS-ID in at a terminal and presses the Enter key. The TRANS-ID is sent to the Program Control Table (PCT) which contains a translation of the four character code to a program name. Assuming that the TRANS-ID is valid, CICS checks the Processing Program Table (PPT) to find where the program resides.  The program may already reside in memory, in which case execution begins.  If the PPT shows that the program is on disk, the executable version of the program, known as the LOAD MODULE, is retrieved from disk and loaded into memory.  Once inside of the CICS memory area, known as the ADDRESS SPACE, the program runs and the transaction completes.
The following example of running a CICS program is taken from Menendez, pages 26-29. After logging on to a CICS session, the user types the four character TRANS-ID, INQ1, to begin the task. The session could be initiated on a 3270 terminal or from a PC equipped with terminal emulation software.  This session was run on a PC using WRQ’s Reflection Terminal emulation software. Once the TRANS-ID is sent to CICS, the PPT is searched and the program name, CUSTINQ1, is started. Notice that the TRANS-ID, INQ1, is in the upper right corner of the map.  The map set name is in the upper left corner, INQMAP1.  The long form of the name, “Customer Inquiry” is displayed in the middle of the first line of the map. The Customer Inquiry screen, known as a CICS map, is then displayed on the terminal with the instructions to “Type a customer number. Then Press Enter.” Notice the function key definitions at the lower left corner of the map.  Pressing the F3 key exits the map.  Pressing the F12 key cancels the transaction.  [Menendez, pg 26, 27]
•
The user enters the customer number, 123456, and presses the Enter key. [Menendez, pg 27]
•
If the customer number exists, the address information is displayed. [Menendez, pg 29]
•
•A new customer number is entered and the Enter key is pressed again.  This time, the customer number is not found. An error message is displayed just above the function key definitions. [Menendez, pg 29]
•This concludes the presentation.
A list of terms used in this presentation.  Other CICS definitions may be found at the URL listed at the end of the slide.
•
These are the references used in preparation of this presentation.
•