As the saying goes, necessity is the mother of invention. What was the necessity that CICS addressed? IBM had announced...
the System 360 in 1964 and by 1966 and 1967 a number of these hardware systems were being delivered. Customers were really taken by the S/360 product range, but it introduced technologies that they really didn't have much experience with -- [specifically] teleprocessing or what today would be called data communications. How did IBM come to develop CICS? Ben Riggins, who is credited with being the father of CICS, happened to be in the Richmond, Va., office and one of his accounts was the Virginia Electric Power Company (VEPCO). A lot of companies like VEPCO had ordered S/360s and terminals to use as customer information systems. In 1967 and 1968, IBM was looking for a good sample program to show customers how to implement such a customer information system. Was it hard explaining to executives the value they would receive if they invested in CICS? It was a lot easier to sell to executives than it was selling to technicians. Executives wanted a responsive customer information system. With such a system, customers [could] go to their neighborhood electric company office and make inquiries about their bills. The business aspect of having an online, quick inquiry-type system was easily understood by executives. Technicians would balk because it required the full operating system, not the small intermediary system. It also required coding in assembler. There really weren't too many people proficient in coding with assembler and dealing very directly with file access methods. IBM unbundled software from hardware because of a Department of Justice lawsuit alleging monopolistic practices. Was there a pushback in 1969 when you tried to sell them software, such as CICS?
CICS was supporting [technology] before its time. Specifically, I am thinking of the 3270 [terminal.]. Today, a lot of people pooh-pooh the 3270. [Now] the focus is on workstations, intelligent workstations, PCs, browsers and so on. CICS, if not the first product to support 3270, was certainly among the leaders. Back then, within IBM, development managers [made sure their product got] CICS support. The expression was called drag. CICS would drag your product into that customer's shop and probably account for a sale of your product.
The other thing CICS supported quite early on was the notion of virtual systems, virtual operating systems. That was, from a technology point of view, a very difficult thing for CICS development to incorporate. The early releases of CICS assumed real storage and did things above and beyond the operating system to get the most efficient use out of real storage. Along comes the concept of virtual storage. CICS developers had to incorporate the technology but at the same time, not disrupt what CICS had done thus far, especially what customers had done with applications.
In 1975, CICS got into recovery restart so if a transaction failed or the system failed, it could be restarted with data integrity. The data was put back to what it was before the failure occurred. From a technology point of view, that was a significant milestone. How has CICS evolved in the past 10 years?
CICS got into client/server or distributed systems about 1978. With distributed systems, not everything had to be located in a central location. CICS has been supporting that since 1970s. In the 1990s, client/server got a big push from the press and certain software vendors. Some said CICS couldn't do it, but that was technically not true.
When the Internet came along, CICS was accused of being a legacy, a dinosaur and old but it adapted. It's just not a SNA [Systems Network Architecture] and VTAM [Virtual Telecommunications Access Method] kind of world, but CICS adapted readily in a straightforward manner so browsers could initiate legacy CICS applications.
It's important to note that as CICS introduced new support, it has almost never removed something without replacing it with a more current piece of technology. A good example today would be Java and Enterprise Java Beans -- technologies that are getting an awful lot of attention in the industry and certainly a lot of push by IBM. Instead of making it look like an odd duck, CICS supports Java in a manner very similar to COBOL, PL/I and assembler. You have the same facilities available to you. CICS customers appreciate not having to unlearn skills they have learned in the past.