I'll try to demystify some of these CICS/TXSeries talks to begin with in this blog.
All right.. so to start with let's figure out what CICS is..
CICS stands as an acronym for Customer Information Control Systems. A mouthful eh?
Well, I know that doesn't tell you anything about what CICS is all about.
Ok..ok.. let me try explaining this in a more simple way. CICS is a software originally designed to run on IBM mainframe systems, which helps customers to develop and deploy their business applications.
What does that mean? In modern parlance, you call CICS as a middleware. In a nutshell what it does is, it runs business applications for you. We'll see how is that done and what makes CICS so successful and mysterious.
So, we said CICS helps you running your applications. Let's see what is required to run applications. What do applications do normally? 3 things...
- Take some kind of inputs from a user or give some output to a user
- Store or retrieve some kind of data based on some logic
- Correlate the inputs in some way with the stored data
- Ability to interact with users through user interfaces (presentation)
- Ability to handle data
- Ability to write business logic to handle the data and inputs.
To begin with on the mainframes, data used to be (and even now in many cases) stored on what is called datasets or Files in a VSAM file system. CICS gives you APIs to access those files and read, write and modify data in these files. It is pretty much like the SQL apis that you use today with RDBMSs. CICS data management APIs get you the data the way you want, without you having to know where the data is and how it is stored.
Similarly, CICS gives you a set of APIs and capability for managing presentation interfaces. If you have seen old mainframe applications, you would have noticed those infamous green screens. Many of them are provided by CICS. Of course, modern day CICS applications seldom use those kind of presentation interfaces. But if you want a bare minimum application up and running all that you need is only CICS and it can give you a character based presentation layer.
Likewise, CICS also provides a number of APIs to manage business logic. You can call different programs from within applications, pass data, do various things to manage things.
In addition CICS supports multiple programming languages like COBOL, C, PL/I, Java which you can write your applications on.
So, in essence CICS gives you a basic infrastructure facility to write and host your applications, without worrying about the details underneath, like how the data is stored, where and how the user interface is presented or where a called program resides. It makes application programming much transparent and allows the application programmer to concentrate on what they want to do. ie. writing business applications.
Yes, that's what makes CICS unique and interesting. That's why it is here for the past 40 years and still going strong.
Hopefully that gives you an idea of what CICS is and what it does... Will come back with more sometime later.