Information Management System (IMS) | |
Latest Release Version: | 15 |
Operating System: | z/OS V2.2 or later |
Platform: | IBM System z |
Genre: | Database & transaction processing subsystem |
License: | Proprietary |
The IBM Information Management System (IMS) is a joint hierarchical database and information management system that supports transaction processing.[1]
IBM designed the IMS with Rockwell and Caterpillar starting in 1966 for the Apollo program, where it was used to inventory the very large bill of materials (BOM) for the Saturn V Moon rocket and Apollo space vehicle.
The system was first considered operational when the first "READY" message appeared on an IBM 2740 terminal in Downey, California, on August 14, 1968.[2] In the interim period, IMS has undergone many developments as IBM System/360 technology evolved into the current z/OS and IBM zEnterprise System technologies.
Vern Watts had worked continuously on IMS since the 1960's[3] and was IMS's chief architect for many years. Watts joined IBM in 1956 and worked at IBM's Silicon Valley development labs until his death on April 4, 2009.[4]
IBM Information Management System (IMS) utilizes a hierarchical database model, distinct from IBM's later relational database model as seen in IBM Db2. In IMS, data is organized into segments, each comprising multiple fields, structured hierarchically to manage complex relationships effectively.[5] For instance, in a customer database, a root segment at the top of the hierarchy may include fields such as phone number, name, and age. Child segments can be added beneath, such as order segments under each customer segment, representing orders placed by customers, with further child segments for individual items on each order.
- Originating from the Data Language Interface (DL/I) databases developed for Apollo, full function databases support primary and secondary indexes, accessed via DL/I calls similar to SQL calls in IBM Db2 or Oracle.- These databases can be accessed through various methods, with Hierarchical Direct (HDAM) and Hierarchical Indexed Direct (HIDAM) being prominent. Other formats include Simple Hierarchical Indexed Sequential (SHISAM), Hierarchical Sequential (HSAM), and Hierarchical Indexed Sequential (HISAM).[6] - Data in full function databases is stored using VSAM, a native z/OS access method, or OSAM, an IMS-specific method optimizing I/O for IMS access patterns, particularly benefiting from sequential access (OSAM Sequential Buffering).
- Optimized for high transaction rates, Fast Path databases include Data Entry Databases (DEDBs) and Main Storage Databases (MSDBs).- DEDBs employ direct (randomizer) access similar to HDAM in Full Function databases, offering enhanced performance through high-performance access methods and asynchronous write after commit. They leverage a Unit of Work (UOW) concept for simplified online reorganization utilities starting from IMS Version 11.[7]
- Introduced in IMS V7, HALDBs extend the capabilities of full function databases to enhance availability and handle large data volumes effectively.[8] - IMS V9 introduced online reorganization for HALDBs, supporting continuous availability and accommodating data volumes exceeding 40 terabytes.
IMS is a transaction manager, (IMS TM, also known as IMS DC) which interacts with an end user connected through VTAM or TCP/IP, (including 3270 and Web user interfaces) or another application. It can process a business function (such as a banking account withdrawal), and maintain state throughout the process, making sure that the system records the business function correctly to a data store.
IMS TM uses a messaging and queuing paradigm. An IMS control program receives a transaction entered from a terminal (or Web browser or other application) and then stores the transaction on a message queue (in memory or in a dataset). IMS then invokes its scheduler on the queued transaction to start the business application program in a message processing region. The message processing region retrieves the transaction from the IMS message queue and processes it, reading and updating IMS and/or Db2 databases and ensuring proper recording of the transaction. Then, if required, IMS enqueues a response message back onto the IMS message queue. Once the output message is complete and available, the IMS control program sends it back to the originating terminal. IMS TM can handle this whole process thousands (or even tens of thousands) of times per second. In 2013, IBM completed a benchmark on IMS Version 13 demonstrating the ability to process 100,000 transactions per second on a single IMS system.[9]
IMS TM provides a standard environment for transaction execution. Several Chinese banks had purchased IMS by the late 2000s to support the country's burgeoning financial industry.[10]
IMS complements IBM Db2, IBM's relational database system introduced in 1982. IMS generally performs faster than Db2 for common tasks, but may require more programming effort to design and maintain for non-primary duties.
A relational data warehouse may be used to supplement an IMS database. For example, IMS may provide primary ATM transactions because it performs well for such a specific task.