Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!ncar!noao!asuvax!nud!xroads!edge!doug
From: doug@edge.UUCP (Doug Pardee)
Newsgroups: comp.lang.misc
Subject: Re: CICS what is it?
Summary: grisly details
Message-ID: <1282@edge.UUCP>
Date: 26 Sep 88 21:19:11 GMT
References: <3923@okstate.UUCP> <8943@srcsip.UUCP> <5740@utah-cs.UUCP>
Organization: Edge Computer Corporation, Scottsdale, AZ
Lines: 75

>CICS.
>
>Since I don't know what it is, I don't know where to post;
>however, I think it's some sort of language.
>
>Could anyone tell me?

The 2 previous responses I've seen are basically correct; here's some
additional info...

CICS stands for Customer Information Control System.  It is a DB/DC
(DataBase/Data Communications) program for the IBM 360/370/30xx/43xx/9370
series of computers.  CICS is typically used for handling database
update/inquiry transactions.  Hotel reservations, bank tellers, library
card catalogs, police records, whatever.

It was originally written by IBM as a custom program for one of their
customers.  IBM was, for many years, reluctant to sell it to other customers
because it competed with the (bigger and much more expensive) DB/DC program
that IBM had developed as a commercial product (namely IMS).  But even IBM
knows that the customer is always right -- IF you can't change his mind.  So
IBM has sold CICS/VS as a Licensed Program Product for some time now.

CICS provides multiple-user terminal access, screen data formatting, and data
base access (although the actual database is a separate Licensed Program
Product, usually DL/1 but some sites are now using the DB2 relational data
base).  CICS can automatically log all transactions, and provides both
back-up and back-out (if a transaction half-completes and then aborts)
facilities.

The terminal operator begins a transaction by typing a 4-character
code which CICS looks up in a table and runs an appropriate transaction
program.  Transaction programs can be written in COBOL, PL/1, or assembler.
As a practical matter, almost all are written in COBOL because that is the
language that business-type programmers are most familiar with.

CICS's most unloveable feature is that all transaction programs are run
as subroutines of CICS and so are NOT protected from each other.  Nor is
CICS itself protected from the transaction programs.  A minor screw-up
in a transaction program can bring the whole CICS region crashing down,
leaving hundreds of terminal operators cursing at the computer and telling
their customers that "the computer's down".  Naturally, you can buy some
special software which will reduce the likelihood of such disasters :-)

A side effect is that data security is difficult.  This is a major
consideration in many database applications; there are laws about this
stuff.  And what a surprise!  It turns out that you can buy some special
CICS security software  :-)

Early "macro level" CICS was very fast and efficient, but required very
smart and careful programmers.  Finding the data that you needed was
difficult, and changing the wrong data was therefore too easy.

Almost all CICS these days is done at "command level".  A command level
transaction program is mostly just a zillion calls on special CICS
subroutines, with the host language being used mainly for "if" tests
and for looping.  To make the programmer's life easier, IBM provides a
translator program which takes in "command level statements", all of
which begin with the words EXEC CICS, and produces the appropriate
subroutine calls.  Command level programming is much easier, especially
for the "average COBOL programmer", and it's a lot harder to make a
catastrophic boo-boo, but the overall efficiency of CICS suffers.  Ah well,
if it isn't fast enough IBM will be glad to sell you a bigger computer :-)

It isn't unreasonable to call the CICS command level statements a "language",
and I've seen books that treat them that way.  Just remember that it's not a
complete language; the CICS statements are always embedded inside a COBOL,
PL/1, or assembler program.

IBM has been claiming that "one of these days" the old macro level CICS
will go away.  As of a year and a half ago it hadn't; I don't know about
today.
-- 
Doug Pardee, Edgcore Technology (formerly Edge Computer), Scottsdale, AZ  
{ames,hplabs,sun,amdahl,allegra}!oliveb!edge!doug    uunet!ism780c!edge!doug