IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online transaction management and connectivity for applications on
IBM mainframe
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the large computer market. Current mainframe computers in IBM's line of business computers are developments of the basic design of th ...
systems under
z/OS
z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest:
* O ...
and
z/VSE
VSEn (''Virtual Storage Extended'') is an operating system for IBM mainframe computers, the latest one in the DOS/360 lineage, which originated in 1965.
DOS/VSE was introduced in 1979 as a successor to DOS/VS; in turn, DOS/VSE was succeeded by ...
.
CICS family products are designed as
middleware
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement co ...
and support rapid, high-volume
online transaction processing In online transaction processing (OLTP), information systems typically facilitate and manage transaction-oriented applications. This is contrasted with online analytical processing.
The term "transaction" can have two different meanings, both of wh ...
. A CICS ''transaction'' is a unit of processing initiated by a single request that may affect one or more objects. This processing is usually interactive (screen-oriented), but background transactions are possible.
CICS Transaction Server (CICS TS) sits at the head of the CICS family and provides services that extend or replace the functions of the operating system. These services can be more efficient than the generalized operating system services and also simpler for programmers to use, particularly with respect to communication with diverse terminal devices.
Applications developed for CICS may be written in a variety of
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s and use CICS-supplied language extensions to interact with resources such as files,
database connection A database connection is a facility in computer science that allows client software to talk to database server software, whether on the same machine or not. A connection is required to send commands and receive answers, usually in the form of a r ...
s, terminals, or to invoke functions such as web services. CICS manages the entire transaction such that if for any reason a part of the transaction fails all recoverable changes can be backed out.
While CICS TS has its highest profile among large financial institutions, such as banks and insurance companies, many
Fortune 500
The ''Fortune'' 500 is an annual list compiled and published by ''Fortune'' magazine that ranks 500 of the largest United States corporations by total revenue for their respective fiscal years. The list includes publicly held companies, along ...
companies and government entities are reported to run CICS. Other, smaller enterprises can also run CICS TS and other CICS family products. CICS can regularly be found behind the scenes in, for example, bank-teller applications,
ATM systems, industrial production control systems, insurance applications, and many other types of interactive applications.
Recent CICS TS enhancements include new capabilities to improve the developer experience, including the choice of APIs, frameworks, editors, and build tools, while at the same time providing updates in the key areas of security, resilience, and management. In earlier, recent CICS TS releases, support was provided for
Web services and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
,
event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
,
Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas, and ...
feeds, and
REST
Rest or REST may refer to:
Relief from activity
* Sleep
** Bed rest
* Kneeling
* Lying (position)
* Sitting
* Squatting position
Structural support
* Structural support
** Rest (cue sports)
** Armrest
** Headrest
** Footrest
Arts and enter ...
ful interfaces.
History
CICS was preceded by an earlier, single-threaded transaction processing system,
IBM MTCS. An 'MTCS-CICS bridge' was later developed to allow these transactions to execute under CICS with no change to the original application programs.
IBM's Customer Information Control System (CICS), first developed in conjunction with
Michigan Bell
Michigan Bell is the subsidiary of AT&T serving the state of Michigan. Following the Bell System divestiture on January 8, 1984, the company became a subsidiary of Ameritech, the Regional Bell operating company that served the midwestern United St ...
in 1966.
Ben Riggins was an IBM systems engineer at Virginia Electric Power Co. when he came up with the idea for the online system.
CICS was originally developed in the United States out of the IBM Development Center in
Des Plaines, Illinois
Des Plaines is a city in Cook County, Illinois, United States. Per the 2020 census, the population was 60,675. The city is a suburb of Chicago and is located just north of O'Hare International Airport. It is situated on and is named after the ...
, beginning in 1966 to address requirements from the public utility industry. The first CICS product was announced in 1968, named ''Public Utility Customer Information Control System'', or PU-CICS. It became clear immediately that it had applicability to many other industries, so the Public Utility prefix was dropped with the introduction of the first release of the CICS
Program Product
Program, programme, programmer, or programming may refer to:
Business and management
* Program management, the process of managing several related projects
* Time management
* Program, a part of planning
Arts and entertainment Audio
* Programm ...
on July 8, 1969, not long after
IMS database management system
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
.
For the next few years, CICS was developed in Palo Alto and was considered a less important "smaller" product than IMS which IBM then considered more strategic. Customer pressure kept it alive, however. When IBM decided to end development of CICS in 1974 to concentrate on IMS, the CICS development responsibility was picked up by the
IBM Hursley site in the United Kingdom, which had just ceased work on the
PL/I
PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. I ...
compiler and so knew many of the same customers as CICS. The core of the development work continues in Hursley today alongside contributions from labs in India, China, Russia, Australia, and the United States.
Early evolution
CICS originally only supported a few IBM-brand devices like the 1965
IBM 2741
The IBM 2741 is a printing computer terminal that was introduced in 1965. Compared to the teletypewriter machines that were commonly used as printing terminals at the time,
the 2741 offers 50% higher speed, much higher quality printing, quieter op ...
Selectric (golf ball) typewriter-based terminal. The 1964
IBM 2260
The text-only monochrome IBM 2260 cathode-ray tube (CRT) video display terminal (Display Station) plus keyboard was a 1964 predecessor to the more-powerful IBM 3270 terminal line which eventually was extended to support color text and graphics.
...
and 1972
IBM 3270
The IBM 3270 is a family of block oriented display and printer computer terminals introduced by IBM in 1971
and normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display terminal. Due to the text ...
video display terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal a ...
s were widely used later.
In the early days of IBM mainframes, computer software was free bundled at no extra charge with
computer hardware
Computer hardware includes the physical parts of a computer, such as the computer case, case, central processing unit (CPU), Random-access memory, random access memory (RAM), Computer monitor, monitor, Computer mouse, mouse, Computer keyboard, ...
. The
OS/360
OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
operating system and application support software like CICS were "open" to IBM customers long before the
open-source software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
initiative. Corporations like Standard Oil of Indiana (Amoco) made major contributions to CICS.
The IBM Des Plaines team tried to add support for popular non-IBM terminals like the
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
Teletype Model 33
The Teletype Model 33 is an electromechanical teleprinter designed for light-duty office use. It is less rugged and cost less than earlier Teletype machines. The Teletype Corporation introduced the Model 33 as a commercial product in 1963 after ...
ASR, but the small low-budget software development team could not afford the $100-per-month hardware to test it. IBM executives incorrectly felt that the future would be like the past, with
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
using traditional
punch cards
A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
.
IBM reluctantly provided only minimal funding when public utility companies, banks and credit-card companies demanded a cost-effective interactive system (similar to the 1965
IBM Airline Control Program
IBM Airline Control Program, or ACP, is a discontinued operating system developed by IBM beginning about 1965. In contrast to previous airline transaction processing systems, the most notable aspect of ACP is that it was designed to run on most m ...
used by the American Airlines
Sabre
A sabre ( French: sabʁ or saber in American English) is a type of backsword with a curved blade associated with the light cavalry of the early modern and Napoleonic periods. Originally associated with Central European cavalry such as th ...
computer reservation system Computer reservation systems, or central reservation systems (CRS), are computerized systems used to store and retrieve information and conduct transactions related to air travel, hotels, car rental, or other activities. Originally designed and ope ...
) for high-speed data access-and-update to customer information for their telephone operators (without waiting for overnight batch processing punch card systems).
When CICS was delivered to Amoco with Teletype Model 33 ASR support, it caused the entire OS/360 operating system to crash (including non-CICS application programs). The majority of the CICS Terminal Control Program (TCP the heart of CICS) and part of OS/360 had to be laboriously redesigned and rewritten by Amoco Production Company in Tulsa Oklahoma. It was then given back to IBM for free distribution to others.
In a few years, CICS generated over $60 billion in new hardware revenue for IBM, and became their most-successful mainframe software product.
In 1972, CICS was available in three versions DOS-ENTRY (program number 5736-XX6) for
DOS/360 machines with very limited memory, DOS-STANDARD (program number 5736-XX7), for DOS/360 machines with more memory, and OS-STANDARD V2 (program number 5734-XX7) for the larger machines which ran OS/360.
In early 1970, a number of the original developers, including Ben Riggins (the principal architect of the early releases) relocated to California and continued CICS development at IBM's
Palo Alto
Palo Alto (; Spanish for "tall stick") is a charter city in the northwestern corner of Santa Clara County, California, United States, in the San Francisco Bay Area, named after a coastal redwood tree known as El Palo Alto.
The city was estab ...
Development Center. IBM executives did not recognize value in software as a revenue-generating product until after federal law required software
unbundling
Unbundling is a neologism to describe how the ubiquity of mobile devices, Internet connectivity, consumer web technologies, social media and information access in the 21st century is affecting older institutions (education, broadcasting, newsp ...
. In 1980, IBM executives failed to heed Ben Riggins' strong suggestions that IBM should provide their own
EBCDIC
Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six- ...
-based operating system and integrated-circuit
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
chip for use in the
IBM Personal Computer
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
as a CICS
intelligent terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal and ...
(instead of the incompatible Intel chip, and immature
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
-based Microsoft 1980
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
).
Because of the limited capacity of even large processors of that era every CICS installation was required to assemble the source code for all of the CICS system modules after completing a process similar to
system generation
In computing system generation or sysgen is the process of creating a particular unique instance of an operating system by combining user-specified options and parameters with manufacturer-supplied general-purpose program code to produce an oper ...
(sysgen), called ''CICSGEN'', to establish values for conditional assembly-language statements. This process allowed each customer to exclude support from CICS itself for any feature they did not intend to use, such as device support for terminal types not in use.
CICS owes its early popularity to its relatively efficient implementation when hardware was very expensive, its multi-threaded processing architecture, its relative simplicity for developing terminal-based real-time transaction applications, and many open-source customer contributions, including both debugging and feature enhancement.
Z notation
Part of CICS was formalized using the
Z notation
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
History
In 1974, Jean-Raymond Abria ...
in the 1980s and 1990s in collaboration with the
Oxford University Computing Laboratory
The Department of Computer Science is the computer science department of the University of Oxford, England, which is part of the university's Mathematical, Physical and Life Sciences Division, University of Oxford, Mathematical, Physical and Life ...
, under the leadership of
Tony Hoare
Sir Charles Antony Richard Hoare (Tony Hoare or C. A. R. Hoare) (born 11 January 1934) is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and c ...
. This work won a
Queen's Award Queen's Award can refer to:
* Queen's Awards for Enterprise, formerly The Queens Awards to Industry
* Queen's Award for Voluntary Service, an annual award given to groups in the voluntary sector of the United Kingdom
* Queen's Award for Forestry
T ...
for Technological Achievement.
CICS as a distributed file server
In 1986, IBM announced CICS support for the record-oriented file services defined by
Distributed Data Management Architecture Distributed Data Management Architecture (DDM) is IBM's open, published software architecture for creating, managing and accessing data on a remote computer. DDM was initially designed to support record-oriented files; it was extended to support ...
(DDM). This enabled programs on remote, network-connected computers to create, manage, and access files that had previously been available only within the CICS/MVS and CICS/VSE transaction processing environments.
In newer versions of CICS, support for DDM has been removed. Support for the DDM component of CICS z/OS was discontinued at the end of 2003, and was removed from CICS for z/OS in version 5.2 onward. In CICS TS for z/VSE, support for DDM was stabilised at V1.1.1 level, with an announced intention to discontinue it in a future release. In CICS for z/VSE 2.1 onward, CICS/DDM is not supported.
CICS and the World Wide Web
CICS Transaction Server first introduced a native
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
interface in version 1.2, together with a Web Bridge technology for wrapping green-screen terminal-based programs with an HTML facade. CICS Web and Document APIs were enhanced in CICS TS V1.3 to enable web-aware applications to be written to interact more effectively with web browsers.
CICS TS versions 2.1 through 2.3 focused on introducing
CORBA
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
and
EJB technologies to CICS, offering new ways to integrate CICS assets into distributed application component models. These technologies relied on hosting
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
applications in CICS. The Java hosting environment saw numerous improvements over many releases, ultimately resulting in the embedding of the
WebSphere Liberty Profile into CICS Transaction Server V5.1. Numerous web facing technologies could be hosted in CICS using Java, this ultimately resulted in the removal of the native CORBA and EJB technologies.
CICS TS V3.1 added a native implementation of the
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are use ...
and
WSDL
The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also ...
technologies for CICS, together with client side HTTP APIs for outbound communication. These twin technologies enabled easier integration of CICS components with other Enterprise applications, and saw widespread adoption. Tools were included for taking traditional CICS programs written in languages such as
COBOL
COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
, and converting them into WSDL defined Web Services, with little or no program changes. This technology saw regular enhancements over successive releases of CICS.
CICS TS V4.1 and V4.2 saw further enhancements to web connectivity, including a native implementation of the
Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas, and ...
publishing protocol.
Many of the newer web facing technologies were made available for earlier releases of CICS using delivery models other than a traditional product release. This allowed early adopters to provide constructive feedback that could influence the final design of the integrated technology. Examples include the Soap for CICS technology preview SupportPac for TS V2.2, or the ATOM SupportPac for TS V3.1. This approach was used to introduce
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
support for CICS TS V4.2, a technology that went on to be integrated into CICS TS V5.2.
The
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
technology in CICS is similar to earlier
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are use ...
technology, both of which allowed programs hosted in CICS to be wrapped with a modern facade. The JSON technology was in turn enhanced in z/OS Connect Enterprise Edition, an IBM product for composing JSON APIs that can leverage assets from several mainframe subsystems.
Many partner products have also been used to interact with CICS. Popular examples include using the CICS Transaction Gateway for connecting to CICS from
JCA compliant Java application servers, and IBM DataPower appliances for filtering web traffic before it reaches CICS.
Modern versions of CICS provide many ways for both existing and new software assets to be integrated into distributed application flows. CICS assets can be accessed from remote systems, and can access remote systems; user identity and transactional context can be propagated; RESTful APIs can be composed and managed; devices, users and servers can interact with CICS using standards-based technologies; and the IBM WebSphere Liberty environment in CICS promotes the rapid adoption of new technologies.
MicroCICS
By January, 1985 a 1969-founded consulting company, having done "massive on-line systems" for Hilton Hotels, FTD Florists, Amtrak, and Budget Rent-a-Car, announced what became ''MicroCICS''.
The initial focus was the
IBM XT/370 and
IBM AT/370.
CICS Family
Although when CICS is mentioned, people usually mean CICS Transaction Server, the ''CICS Family'' refers to a portfolio of transaction servers, connectors (called
CICS Transaction Gateway {{Primary sources, article, date=December 2016
IBM CICS Transaction Gateway provides secure access to CICS from Java, Java EE, .NET Framework, C and C++ applications, using Internet protocols (for example TCP/IP).
CICS Transaction Gateway also inc ...
) and CICS Tools.
CICS on distributed platforms—not mainframes—is called
IBM TXSeries
IBM TXSeries for Multiplatforms is a distributed CICS (Customer Information Control System) online transaction processing (OLTP) environment for mixed language applications.
TXSeries was introduced by IBM's Transarc subsidiary in 1997 and bundle ...
. TXSeries is distributed transaction processing middleware. It supports C, C++, COBOL, Java™ and PL/I applications in cloud environments and traditional data centers. TXSeries is available on
AIX
Aix or AIX may refer to:
Computing
* AIX, a line of IBM computer operating systems
*An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set
* Athens Internet Exchange, a European Internet exchange point
Places Belgi ...
, Linux x86,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
, and
HP-UX
HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
platforms. CICS is also available on other operating systems, notably
IBM i and
OS/2
OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 ...
. The z/OS implementation (i.e., CICS Transaction Server for z/OS) is by far the most popular and significant.
Two versions of CICS were previously available for
VM/CMS
VM (often: VM/CMS) is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.
The following versions ...
, but both have since been discontinued. In 1986, IBM released ''CICS/CMS'',
[ which was a single-user version of CICS designed for development use, the applications later being transferred to an ]MVS
Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated ...
or DOS/VS
Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first d ...
system for production execution. Later, in 1988, IBM released ''CICS/VM''. CICS/VM was intended for use on the IBM 9370
The IBM 9370 systems are "baby mainframe" midrange computers, released 1986 at the very low end of, and compatible with System/370. The media of the day, referring to the VAX systems manufactured by Digital Equipment Corporation (DEC), carried ...
, a low-end mainframe targeted at departmental use; IBM positioned CICS/VM running on departmental or branch office mainframes for use in conjunction with a central mainframe running CICS for MVS.
CICS Tools
Provisioning, management and analysis of CICS systems and applications is provided by CICS Tools. This includes performance management as well as deployment and management of CICS resources. In 2015, the four core foundational CICS tools (and the CICS Optimization Solution Pack for z/OS) were updated with the release of CICS Transaction Server for z/OS 5.3. The four core CICS Tools: CICS Interdependency Analyzer for z/OS, CICS Deployment Assistant for z/OS, CICS Performance Analyzer for z/OS and CICS Configuration Manager for z/OS.
Releases and versions
CICS Transaction Server for z/OS has used the following release numbers:
Programming
Programming considerations
Multiple-user interactive-transaction application programs were required to be quasi
Quasi (phonetics 'kwa - zee') is an American indie rock band formed in Portland, Oregon in 1993 by former spouses Sam Coomes ( vocals, guitar, rocksichord, various keyboards, bass) and Janet Weiss (vocals and drums). Joanna Bolme performe ...
- reentrant in order to support multiple concurrent transaction threads. A software coding error in one application could block all users from the system. The modular design of CICS reentrant / reusable control programs meant that, with judicious "pruning," multiple users with multiple applications could be executed on a computer with just 32K of expensive magnetic core
A magnetic core is a piece of magnetic material with a high magnetic permeability used to confine and guide magnetic fields in electrical, electromechanical and magnetic devices such as electromagnets, transformers, electric motors, generators, in ...
physical memory
Computer data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers.
The central processing unit (CPU) of a computer ...
(including the operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
).
Considerable effort was required by CICS application programmers to make their transactions as efficient as possible. A common technique was to limit the size of individual programs to no more than 4,096 bytes, or 4K, so that CICS could easily reuse the memory occupied by any program not currently in use for another program or other application storage needs. When virtual memory
In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very l ...
was added to versions OS/360 in 1972, the 4K strategy became even more important to reduce paging
In computer operating systems, memory paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves data from secondary storage ...
and thrashing unproductive resource-contention overhead.
The efficiency of compiled high-level COBOL and PL/I language programs left much to be desired. Many CICS application programs continued to be written in assembler language, even after COBOL and PL/I support became available.
With 1960s-and-1970s hardware resources expensive and scarce, a competitive "game" developed among system optimization analysts. When critical path code was identified, a code snippet was passed around from one analyst to another. Each person had to either (a) reduce the number of bytes of code required, or (b) reduce the number of CPU cycles required. Younger analysts learned from what more-experienced mentors did. Eventually, when no one could do (a) or (b), the code was considered optimized, and they moved on to other snippets. Small shops with only one analyst learned CICS optimization very slowly (or not at all).
Because application programs could be shared by many concurrent
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), a ...
threads, the use of static variable
In computer programming, a static variable is a variable that has been allocated "statically", meaning that its lifetime (or "extent") is the entire run of the program. This is in contrast to shorter-lived automatic variables, whose storage is ...
s embedded within a program (or use of operating system memory) was restricted (by convention only).
Unfortunately, many of the "rules" were frequently broken, especially by COBOL programmers who might not understand the internals of their programs or fail to use the necessary restrictive compile time
In computer science, compile time (or compile-time) describes the time window during which a computer program is compiled.
The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concept ...
options. This resulted in "non-re-entrant" code that was often unreliable, leading to spurious storage violation
In computing a storage violation is a hardware or software fault that occurs when a task attempts to access an area of computer storage which it is not permitted to access.
Types of storage violation
Storage violation can, for instance, consist ...
s and entire CICS system crashes.
Originally, the entire partition
Partition may refer to:
Computing Hardware
* Disk partitioning, the division of a hard disk drive
* Memory partition, a subdivision of a computer's memory, usually for use by a single job
Software
* Partition (database), the division of a ...
, or Multiple Virtual Storage
Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated ...
(MVS) region, operated with the same memory protection key including the CICS kernel code. Program corruption and CICS control block corruption was a frequent cause of system downtime. A software error in one application program could overwrite the memory (code or data) of one or all currently running application transactions. Locating the offending application code for complex transient timing errors could be a very-difficult operating-system analyst problem.
These shortcomings persisted for multiple new releases of CICS over a period of more than 20 years, in spite of their severity and the fact that top-quality CICS skills were in high demand and short supply. They were addressed in TS V3.3, V4.1 and V5.2 with the Storage Protection, Transaction Isolation and Subspace features respectively, which utilize operating system hardware features to protect the application code and the data within the same address space even though the applications were not written to be separated. CICS application transactions remain mission-critical for many public utility companies, large banks and other multibillion-dollar financial institutions.
Additionally, it is possible to provide a measure of advance application protection by performing test under control of a monitoring program that also serves to provide Test and Debug features.
Macro-level programming
When CICS was first released, it only supported application transaction programs written in IBM 360 Assembler. COBOL
COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
and PL/I
PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. I ...
support were added years later. Because of the initial assembler orientation, requests for CICS services were made using assembler-language macros. For example, the request to read a record from a file were made by a macro call to the "File Control Program" of CICS might look like this:
DFHFC TYPE=READ,DATASET=myfile,TYPOPER=UPDATE,....etc.
This gave rise to the later terminology "Macro-level CICS."
When high-level language support was added, the macros were retained and the code was converted by a pre-compiler that expanded the macros to their COBOL or PL/I CALL statement equivalents. Thus preparing a HLL application was effectively a "two-stage" compile
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
output from the preprocessor fed into the HLL compiler as input.
COBOL considerations: unlike PL/I, IBM COBOL does not normally provide for the manipulation of pointers (addresses). In order to allow COBOL programmers to access CICS control blocks and dynamic storage the designers resorted to what was essentially a hack. The COBOL ''Linkage Section'' was normally used for inter-program communication, such as parameter passing. The compiler generates a list of addresses, each called a ''Base Locator for Linkage'' (BLL) which were set on entry to the called program. The first BLL corresponds to the first item in the Linkage Section and so on. CICS allows the programmer to access and manipulate these by passing the address of the list as the first argument to the program. The BLLs can then be dynamically set, either by CICS or by the application to allow access to the corresponding structure in the Linkage Section.
Command-level programming
During the 1980s, IBM at Hursley Park produced a version of CICS that supported what became known as "Command-level CICS" which still supported the older programs but introduced a new API style to application programs.
A typical Command-level call might look like the following:
EXEC CICS
SEND MAPSET('LOSMATT') MAP('LOSATT')
END-EXEC
The values given in the SEND MAPSET command correspond to the names used on the first DFHMSD macro in the map definition given below for the MAPSET argument, and the DFHMSI macro for the MAP argument. This is pre-processed by a pre-compile batch translation stage, which converts the embedded commands (EXECs) into call statements to a stub subroutine. So, preparing application programs for later execution still required two stages. It was possible to write "''Mixed mode''" applications using both Macro-level and Command-level statements.
Initially, at execution time, the command-level commands were converted using a run-time translator, "The EXEC Interface Program", to the old Macro-level call, which was then executed by the mostly unchanged CICS nucleus programs. But when the CICS Kernel was re-written for TS V3, EXEC CICS became the only way to program CICS applications, as many of the underlying interfaces had changed.
Run-time conversion
The Command-level-only CICS introduced in the early 1990s offered some advantages over earlier versions of CICS. However, IBM also dropped support for Macro-level application programs written for earlier versions. This meant that many application programs had to be converted or completely rewritten to use Command-level EXEC commands only.
By this time, there were perhaps millions of programs worldwide that had been in production for decades in many cases. Rewriting them often introduced new bugs without necessarily adding new features. There were a significant number of users who ran CICS V2 application-owning regions (AORs) to continue to run macro code for many years after the change to V3.
It was also possible to execute old Macro-level programs using conversion software such as APT International's '' Command CICS''.
New programming styles
Recent CICS Transaction Server enhancements include support for a number of modern programming styles.
CICS Transaction Server Version 5.6 introduced enhanced support for Java to deliver a cloud-native experience for Java developers. For example, the new CICS Java API
JCICSX
allows easier unit testing using mocking and stubbing approaches, and can be run remotely on the developer’s local workstation. A set o
CICS artifacts on Maven Central
enable developers to resolve Java dependencies using popular dependency management tools such as Apache Maven
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by the Apache Software Foundation, where it was ...
and Gradle
Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java (as well as Kotli ...
. Plug-ins for Maven
cics-bundle-maven
and Gradle
cics-bundle-gradle
are also provided to simplify automated building of CICS bundles, using familiar IDEs like Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
, IntelliJ IDEA
IntelliJ IDEA is an integrated development environment (IDE) written in Java (programming language), Java for developing computer software written in Java, Kotlin (programming language), Kotlin, Groovy (programming language), Groovy, and other ...
, and Visual Studio Code
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code complet ...
. In addition, Node.js
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code o ...
z/OS support is enhanced for version 12, providing faster startup, better default heap limits, updates to the V8 JavaScript engine, etc. Support for Jakarta EE
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
8 is also included.
CICS TS 5.5 introduced support for IBM SDK for Node.js, providing a full JavaScript runtime, server-side APIs, and libraries to efficiently build high-performance, highly scalable network applications for IBM Z.
CICS Transaction Server Version 2.1 introduced support for Java. CICS Transaction Server Version 2.2 supported the Software Developers Toolkit. CICS provides the same run-time container as IBM's WebSphere product family so Java EE applications are portable between CICS and Websphere and there is common tooling for the development and deployment of Java EE applications.
In addition, CICS placed an emphasis on "wrapping" existing application programs inside modern interfaces so that long-established business functions can be incorporated into more modern services. These include WSDL, SOAP and JSON interfaces that wrap legacy code so that a web or mobile application can obtain and update the core business objects without requiring a major rewrite of the back-end functions.
Transactions
A CICS transaction is a set of operations that perform a task together. Usually, the majority of transactions are relatively simple tasks such as requesting an inventory list or entering a debit or credit to an account. A primary characteristic of a transaction is that it should be atomic. On IBM Z
IBM Z is a family name used by IBM for all of its z/Architecture mainframe computers.
In July 2017, with another generation of products, the official family was changed to IBM Z from IBM z Systems; the IBM Z family now includes the newest mod ...
servers, CICS easily supports thousands of transactions per second, making it a mainstay of enterprise computing.
CICS applications comprise transactions, which can be written in numerous programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s, including COBOL, PL/I, C, C++, IBM Basic Assembly Language, Rexx
Rexx (Restructured Extended Executor) is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. ...
, and Java.
Each CICS program is initiated using a transaction identifier. CICS screens are usually sent as a construct called a map, a module created with Basic Mapping Support
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
(BMS) assembler macros or third-party tools. CICS screens
Screen or Screens may refer to:
Arts
* Screen printing (also called ''silkscreening''), a method of printing
* Big screen, a nickname associated with the motion picture industry
* Split screen (filmmaking), a film composition paradigm in which m ...
may contain text that is highlighted, has different colors, and/or blinks depending on the terminal type used. An example of how a map can be sent through COBOL is given below. The end user inputs data, which is made accessible to the program by receiving a map from CICS.
EXEC CICS
RECEIVE MAPSET('LOSMATT') MAP('LOSATT') INTO(OUR-MAP)
END-EXEC.
For technical reasons, the arguments to some command parameters must be quoted and some must not be quoted, depending on what is being referenced. Most programmers will code out of a reference book until they get the "hang" or concept of which arguments are quoted, or they'll typically use a "canned template" where they have example code that they just copy and paste, then edit to change the values.
Example of BMS Map Code
Basic Mapping Support defines the screen format through assembler macros such as the following. This was assembled to generate both the ''physical map set'' a load module in a CICS load library and a ''symbolic map set'' a structure definition or ''DSECT'' in PL/I, COBOL, assembler, etc. which was copied into the source program.
LOSMATT DFHMSD TYPE=MAP, X
MODE=INOUT, X
TIOAPFX=YES, X
TERM=3270-2, X
LANG=COBOL, X
MAPATTS=(COLOR,HILIGHT), X
DSATTS=(COLOR,HILIGHT), X
STORAGE=AUTO, X
CTRL=(FREEKB,FRSET)
*
LOSATT DFHMDI SIZE=(24,80), X
LINE=1, X
COLUMN=1
*
LSSTDII DFHMDF POS=(1,01), X
LENGTH=04, X
COLOR=BLUE, X
INITIAL='MQCM', X
ATTRB=PROT
*
DFHMDF POS=(24,01), X
LENGTH=79, X
COLOR=BLUE X
ATTRB=ASKIP, X
INITIAL='PF7- 8- 9- 10- X
11- 12-CANCEL'
*
DFHMSD TYPE=FINAL
END
Structure
In the z/OS
z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest:
* O ...
environment, a CICS installation comprises one or more "regions
In geography, regions, otherwise referred to as zones, lands or territories, are areas that are broadly divided by physical characteristics (physical geography), human impact characteristics (human geography), and the interaction of humanity and t ...
" (generally referred to as a "CICS Region"), spread across one or more z/OS system images. Although it processes interactive transactions, each CICS region is usually started as a batch processing, batch address space with standard JCL statements: it's a job that runs indefinitely until shutdown. Alternatively, each CICS region may be started as a started task. Whether a batch job or a started task, CICS regions may run for days, weeks, or even months before shutting down for maintenance (MVS or CICS). Upon restart a parameter determines if the start should be "Cold" (no recovery) or "Warm"/"Emergency" (using a warm shutdown or restarting from the log after a crash). Cold starts of large CICS regions with many resources can take a long time as all the definitions are re-processed.
Installations are divided into multiple address spaces for a wide variety of reasons, such as:
* application separation,
* function separation,
* avoiding the workload capacity limitations of a single region, or address space, or mainframe instance in the case of a z/OS SysPlex.
A typical installation consists of a number of distinct applications that make up a service. Each service usually has a number of "Terminal-Owning Region" (TORs) that route transactions to multiple "Application-Owning Regions" (AORs), though other topologies are possible. For example, the AORs might not perform File I/O. Instead there would be a "File-Owning Region" (FOR) that performed the File I/O on behalf of transactions in the AOR given that, at the time, a VSAM file could only support recoverable write access from one address space at a time.
But not all CICS applications use VSAM as the primary data source (or historically other single address space at a time datastores such as CA Datacom)- many use either IMS/DB or Db2 as the database, and/or MQ as a queue manager. For all these cases, TORs can load-balance transactions to sets of AORs which then directly use the shared databases/queues. CICS supports XA two-phase commit between data stores and so transactions that spanned MQ, VSAM/RLS and Db2, for example, are possible with ACID properties.
CICS supports distributed transactions using SNA LU6.2 protocol between the address spaces which can be running on the same or different clusters. This allows ACID updates of multiple datastores by cooperating distributed applications. In practice there are issues with this if a system or communications failure occurs because the transaction disposition (backout or commit) may be in-doubt if one of the communicating nodes has not recovered. Thus the use of these facilities has never been very widespread.
Sysplex exploitation
At the time of CICS ESA V3.2, in the early 1990s, IBM faced the challenge of how to get CICS to exploit the new zOS Sysplex
In computing, a Parallel Sysplex is a cluster of IBM mainframes acting together as a single system image with z/OS. Used for disaster recovery, Parallel Sysplex combines data sharing and parallel computing to allow a cluster of up to 32 systems ...
mainframe line.
The Sysplex was to be based on CMOS
Complementary metal–oxide–semiconductor (CMOS, pronounced "sea-moss", ) is a type of metal–oxide–semiconductor field-effect transistor (MOSFET) fabrication process that uses complementary and symmetrical pairs of p-type and n-type MOSFE ...
(Complementary Metal Oxide Silicon) rather than the existing ECL (Emitter Coupled Logic) hardware. The cost of scaling the mainframe-unique ECL was much higher than CMOS which was being developed by a ''keiretsu
A is a set of companies with interlocking business relationships and shareholdings. In the legal sense, it is a type of informal business group that are loosely organized alliances within the social world of Japan's business community. The ''ke ...
'' with high-volume use cases such as Sony PlayStation to reduce the unit cost of each generation's CPUs. The ECL was also expensive for users to run because the gate drain current produced so much heat that the CPU had to packaged into a special module called a Thermal Conduction Module (TCM) that had inert gas pistons and needed plumbed to be high-volume chilled water to be cooled. But the air-cooled CMOS technology's CPU speed initially was much slower than the ECL (notably the boxes available from the mainframe-clone makers Amdahl Amdahl may refer to:
People
* Einar Amdahl (1888-1974), Norwegian theologist
* Bjarne Amdahl (1903-1968), Norwegian pianist and composer
* Douglas K. Amdahl (1919–2010), American lawyer and judge from Minnesota
* Gene Amdahl (1922–2015), for ...
and Hitachi
() is a Japanese multinational corporation, multinational Conglomerate (company), conglomerate corporation headquartered in Chiyoda, Tokyo, Japan. It is the parent company of the Hitachi Group (''Hitachi Gurūpu'') and had formed part of the Ni ...
). This was especially concerning to IBM in the CICS context as almost all the largest mainframe customers were running CICS and for many of them it was the primary mainframe workload.
To achieve the same total transaction throughput on a Sysplex multiple boxes would need to be used in parallel for each workload but a CICS address space, due to its semi-reentrant application programming model, could not exploit more than about 1.5 processors on one box at the time even with use of MVS sub-tasks. Without this, these customers would tend to move to the competitors rather than Sysplex as they scaled up the CICS workloads. There was considerable debate inside IBM as to whether the right approach would be to break upward compatibility for applications and move to a model like IMS/DC which was fully reentrant, or to extend the approach customers had adopted to more fully exploit a single mainframe's power using multi-region operation (MRO).
Eventually the second path was adopted after the CICS user community was consulted and vehemently opposed breaking upward compatibility given that they had the prospect of Y2K to contend with at that time and did not see the value in re-writing and testing millions of lines of mainly COBOL, PL/1, or assembler code.
The IBM recommended structure for CICS on Sysplex was that at least one CICS Terminal Owning Region was placed on each Sysplex node which dispatched transactions to many Application Owning Regions (AORs) spread across the entire Sysplex. If these applications needed to access shared resources they either used a Sysplex-exploiting datastore (such as IBM Db2
Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON a ...
or IMS/DB
The IBM Information Management System (IMS) is a joint hierarchical database and information management system that supports transaction processing.
History
IBM designed the IMS with Rockwell and Caterpillar starting in 1966 for the Apollo ...
) or concentrated, by function-shipping, the resource requests into singular-per-resource Resource Owing Regions (RORs) including File Owning Regions (FORs) for VSAM Virtual Storage Access Method (VSAM) is an IBM DASD file storage access method, first used in the OS/VS1, OS/VS2 Release 1 (SVS) and Release 2 (MVS) operating systems, later used throughout the Multiple Virtual Storage (MVS) architecture and no ...
and CICS Data Tables, Queue Owning Regions (QORs) for MQ, CICS Transient Data (TD) and CICS Temporary Storage (TS). This preserved compatibility for legacy applications at the expense of operational complexity to configure and manage many CICS regions.
In subsequent releases and versions, CICS was able to exploit new Sysplex-exploiting facilities in VSAM/RLS, MQ for zOS and placed its own Data Tables, TD, and TS resources into the architected shared resource manager for the Sysplex -> the Coupling Facility
In IBM System/390 and IBM Z mainframe computers, a Coupling Facility or CF is a piece of computer hardware or virtual machine that coordinates multiple processors.
A Parallel Sysplex
relies on one or more Coupling Facilities (CFs). A coupli ...
or CF, dispensing with the need for most RORs. The CF provides a mapped view of resources including a shared timebase, buffer pools, locks and counters with hardware messaging assists that made sharing resources across the Sysplex both more efficient than polling and reliable (utilizing a semi-synchronized backup CF for use in case of failure).
By this time, the CMOS line had individual boxes that exceeded the power available by the fastest ECL box with more processors per CPU and when these were coupled together 32 or more nodes would be able to scale two orders of magnitude larger in total power for a single workload. For example, by 2002, Charles Schwab was running a "MetroPlex" consisting of a redundant pair of its mainframe Sysplexes in two locations in Phoenix, AZ each with 32 nodes driven by one shared CICS/DB/2 workload to support the vast volume of pre- dotcom-bubble web client inquiry requests.
This cheaper, much more scalable CMOS technology base, and the huge investment costs of having to both get to 64bit addressing and independently produce cloned CF functionality drove the IBM-mainframe clone makers out of the business one by one.
CICS Recovery/Restart
The objective of recovery/restart in CICS is to minimize and if possible eliminate damage done to Online System when a failure occurs, so that system and data integrity is maintained. If the CICS region was shutdown instead of failing it will perform a "Warm" start exploiting the checkpoint written at shutdown. The CICS region can also be forced to "Cold" start which reloads all definitions and wipes out the log, leaving the resources in whatever state they are in.
Under CICS, following are some of the resources which are considered recoverable. If one wishes these resources to be recoverable then special options must be specified in relevant CICS definitions:
* VSAM files
* CMT CICS-maintained data tables
* Intrapartition TDQ
* Temporary Storage Queue in auxiliary storage
* I/O messages from/to transactions in a VTAM network
* Other database/queuing resources connected to CICS that support XA two-phase commit protocol (like IMS/DB, Db2, VSAM/RLS)
CICS also offers extensive recovery/restart facilities for users to establish their own recovery/restart capability in their CICS system. Commonly used recovery/restart facilities include:
* Dynamic Transaction Backout (DTB)
* Automatic Transaction Restart
* Resource Recovery using System Log
* Resource Recovery using Journal
* System Restart
* Extended Recovery Facility
Components
Each CICS region comprises one major task on which every transaction runs, although certain services such as access to IBM Db2
Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON a ...
data use other tasks (TCBs). Within a region, transactions are cooperatively multitasked they are expected to be well-behaved and yield the CPU rather than wait. CICS services handle this automatically.
Each unique CICS " Task" or transaction is allocated its own dynamic memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
at start-up and subsequent requests for additional memory were handled by a call to the "Storage Control program" (part of the CICS nucleus or "kernel
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learnin ...
"), which is analogous to an operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
.
A CICS system consists of the online ''nucleus'', batch support programs, and applications services.
Nucleus
The original CICS nucleus consisted of a number of functional modules written in 370 assembler until V3:
* Task Control Program (KCP)
* Storage Control Program (SCP)
* Program Control Program (PCP)
* Program Interrupt Control Program (PIP)
* Interval Control Program (ICP)
* Dump Control Program (DCP)
* Terminal Control Program (TCP)
* File Control Program (FCP)
* Transient Data Control Program (TDP)
* Temporary Storage Control Program (TSP)
Starting in V3, the CICS nucleus was rewritten into a kernel-and-domain structure using IBM's PL/AS language which is compiled into assembler.
The prior structure did not enforce separation of concerns and so had many inter-program dependencies which led to bugs unless exhaustive code analysis was done. The new structure was more modular and so resilient because it was easier to change without impact. The first domains were often built with the name of the prior program but without the trailing "P". For example, Program Control Domain (DFHPC) or Transient Data Domain (DFHTD). The kernel operated as a switcher for inter-domain requests initially this proved expensive for frequently called domains (such as Trace) but by utilizing PL/AS macros these calls were in-lined without compromising on the separate domain design.
In later versions, completely redesigned domains were added like the Logging Domain DFHLG and Transaction Domain DFHTM that replaced the Journal Control Program (JCP).
Support programs
In addition to the online functions CICS has several support programs that run as batch jobs.
* High-level language (macro) preprocessor
* Command language translator
* Dump utility – prints formatted dumps generated by CICS Dump Management
* Trace utility – formats and prints CICS trace output
* Journal formatting utility prints a formatted dump of the CICS region in case of error
Applications services
The following components of CICS support application development.
* Basic Mapping Support (BMS) provides device-independent terminal input and output
* APPC Support that provides LU6.1 and LU6.2 API support for collaborating distributed applications that support two-phase commit
* Data Interchange Program (DIP) provides support for IBM 3770
The IBM 2780 and the IBM 3780 are devices developed by IBM to perform remote job entry (RJE) and other batch functions over telephone lines; they communicate with the mainframe via Binary Synchronous Communications (BSC or Bisync) and replaced ...
and IBM 3790 programmable devices
* 2260 Compatibility allows programs written for IBM 2260
The text-only monochrome IBM 2260 cathode-ray tube (CRT) video display terminal (Display Station) plus keyboard was a 1964 predecessor to the more-powerful IBM 3270 terminal line which eventually was extended to support color text and graphics.
...
display devices to run on 3270 displays
* EXEC Interface Program the stub program that converts calls generated by EXEC CICS
commands to calls to CICS functions
* Built-in Functions – table search, phonetic conversion, field verify, field edit, bit checking, input formatting, weighted retrieval
Pronunciation
Different countries have differing pronunciations
* Within IBM (specifically Tivoli Software, Tivoli) it is referred to as .
* In the US, it is more usually pronounced by reciting each letter .
* In Australia, Belgium, Canada, Hong Kong, the UK and some other countries, it is pronounced .
* In Denmark, it is pronounced ''kicks''.
* In Finland, it is pronounced
* In France, it is pronounced .
* In Germany, Austria and Hungary, it is pronounced and, less often, .
* In Greece, it is pronounced ''kiks''.
* In India, it is pronounced ''kicks''.
* In Iran, it is pronounced ''kicks''.
* In Israel , it is pronounced ''C-I-C-S''.
* In Italy, is pronounced .
* In Poland, it is pronounced .
* In Portugal and Brazil, it is pronounced .
* In Russia, it is pronounced ''kiks''.
* In Slovenia, it is pronounced ''kiks''.
* In Spain, it is pronounced .
* In Sweden, it is pronounced ''kicks''.
* In Israel, it is pronounced ''kicks''.
* In Uganda, it is pronounced ''kicks''.
* In Turkey, it is pronounced ''kiks''.
See also
* IBM TXSeries
IBM TXSeries for Multiplatforms is a distributed CICS (Customer Information Control System) online transaction processing (OLTP) environment for mixed language applications.
TXSeries was introduced by IBM's Transarc subsidiary in 1997 and bundle ...
(CICS on distributed platforms)
* IBM WebSphere
* IBM 2741
The IBM 2741 is a printing computer terminal that was introduced in 1965. Compared to the teletypewriter machines that were commonly used as printing terminals at the time,
the 2741 offers 50% higher speed, much higher quality printing, quieter op ...
* IBM 2260
The text-only monochrome IBM 2260 cathode-ray tube (CRT) video display terminal (Display Station) plus keyboard was a 1964 predecessor to the more-powerful IBM 3270 terminal line which eventually was extended to support color text and graphics.
...
* IBM 3270
The IBM 3270 is a family of block oriented display and printer computer terminals introduced by IBM in 1971
and normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display terminal. Due to the text ...
* OS/360 and successors
* Transaction Processing Facility
* Virtual Storage Access Method (VSAM)
References
External links
*
Why to choose CICS Transaction Server for new IT projects
IBM CICS whitepaper
*
CICS User Community website for CICS related news, announcements and discussions
*{{webarchive , url=https://web.archive.org/web/20050205184628/http://www.yelavich.com/ , date=February 5, 2005 , title=Bob Yelavich's CICS focused website. (This site uses frames, but on high-resolution screens the left-hand frame, which contains the site index, may be hidden. Scroll right within the frame to see its content.)
Assembly language software
History of human–computer interaction
IBM mainframe operating systems
IBM mainframe software
IBM software
Middleware
Multimodal interaction
Transaction processing
Z notation