Bookmark and Share
RSS

Recent Posts

sig·nif·i·cance – CICS and IMS as Early Real-Time Middleware

November 07, 2016

Last week, I wrote about how middleware came about because of the emergence of distributed computing systems. I wrote that these new systems created a need for certain types of software that had not existed before or existed mainly for internal use. Middleware software has roots in software that was developed for centralized computing for both batch and online processing. This week I focus on the real-time roots of modern middleware.  

Real-time Roots of Middleware
By real-time, I mean the kind of transactions that take place at your bank or credit union. You stand at the teller window and hand in a couple of checks and a form and the teller processes the transaction. Large centralized computers running a Transaction Processing (TP) monitor today handle most of these transactions. Just as JES was specialized for batch work, TP monitors like CICS and IMS, are specialized for online transactions.

CICS and IMS
Both CICS and IMS are database (DB) and data communication (DC) systems. The industry calls them DB/DC systems. Also, they both have been called TP Monitors. Since these products are environments or ecosystems that provide services they contain a significant amount of application support services. Many of these services are just like the ones that are provided today by modern middleware. CICS and IMS provide a collection of services involving programs, files, databases, serialization and queues, that are offered today by many different industry products. CICS and IMS do it all because a centralized environment makes this possible to consolidate a massive amount of functionality within a few DB/DC products.

CICS Examples
CICS has built-in capabilities that are very similar to functions provided by today’s middleware. CICS has support for procedure calls and this is like the middleware remote procedure call. CICS has support for program link and transfer as well as the ability to pass data between programs that utilize common programming constructs. So CICS has extensive support for procedure calls and this support extends well beyond what is provided by the OS as the task dispatching is kept internal to CICS and therefore work is kept flowing in the system at a real-time rate.
  
CICS has both file and database access. This capability is analogous to remote database access in modern middleware. File access is handled through a command-level interface that is used in the application program. All VSAM file types can be utilized including entry-sequenced datasets (sequential), relative-record data sets (direct) and key-sequenced data sets (indexed). CICS also supports database access to a large variety of commercial database products like Oracle, DB2 and ADABAS.

Coordination of activities—synchronous and asynchronous is like distributed transaction processing. In IT there is the notion of a logical unit (LU) of work. A LU is typically made up of a related set of activities that need to complete (or be backed out) as a group for them to make sense or to have integrity. CICS supports logical units of work through a wide variety of support services like syncpoint and rollback commands. These are just two examples.

CICS transient data and temporary storage, both non-recoverable and recoverable, are like message queuing that is used today in modern middleware. Transient data queues are logical places in which to store message to other transactions (programs) in the system. Transient data (TD) uses PUTQ and GETQ commands to access the data. Temporary storage (TS) queues are another type of message queue that are designed for larger, more persistent volumes of transaction-related data. TS queues can be defined to be recoverable in the event of a system failure.

Application programmer productivity is an important function of CICS as well as modern middleware. CICS has a command-level interface, multiple language support, interactive debugging, and WebSphere J2EE and studio support including a developer workbench.

Modern Middleware Has Roots
Modern middleware has its roots in powerful predecessors like JCL, CICS and IMS. This software provided powerhouse functionality that is relevant today as innovations in batch and on-line processing continue through IBM internal modernization of this software. 

Posted November 07, 2016 | Permalink

comments powered by Disqus