Middleware and Datastores       

In the 1960s, operating systems were traffic cops that enabled multiple applications programs to run separately on the same physical machine. In 1966 the information management system (IMS), designed for the Apollo moon program, enabled multiple applications to cooperate by sharing common data definition. In the late 1960s and 1970s, we invented relational databases, which made sharing even easier. Cooperation between processes was further enhanced by inventions of reliable message sending and massively parallel transaction processing (to prevent updates from different processes from getting in each other's way). With the advent of the web, IBM's J2EE and WebSphere contributions provided the ability for millions of users to shop simultaneously on the web, while still maintaining precise records of inventory and correct bank account balances. More recently IBM has pioneered techniques that make it easy to handle continuous flows of input data, as needed for applications from astronomy to Internet of Things (IoT) to finance.

  1. 1969:  CICS
  2. 1969:  DB2/SQL - Relational Database
  3. 19??:  Distributed Databases [need content]
  4. 1977:  4th Normal Form
  5. 1979:  Extendible Hashing
  6. 1981:  Optimistic Database Speculation
  7. 1985:  Optimistic Recovery in Distributed Systems
  8. 1992:  ARIES - Fine Grain Transaction Recovery
  9. 1993:  Mining Association Rules
  10. 1998:  J2EE - Enterprise Java
  11. 1999:  Schema Mapping
  12. 2003:  Rank and Score Aggregation
  13. 2006:  Stream Computing

Image credit: IBM Systems Magazine