Information Management System (IMS) ist ein Informationssystem des Unternehmens IBM, das auf Server der Modellreihe System z unter z/OS betrieben werden kann. Es besteht aus den Komponenten IMS DB (hierarchisches Datenbanksystem) und IMS TM (Transaktionsmonitor – frühere Bezeichnung: IMS DC). Der IMS TM kann auch ohne die IMS DB eingesetzt werden. Er bietet Schnittstellen via APPC, MQSeries, TCP/IP und Java.
IMS wird vorwiegend bei Banken und Versicherungen für Anwendungen eingesetzt, die hohe Transaktionsraten und eine hohe Systemverfügbarkeit benötigen.
IMS wurde in den Jahren 1966 bis 1968 (noch unter dem Namen ICS – Information Control System) von IBM, North American Rockwell und Caterpillar Tractors für die Stücklistenverwaltung des Apollo-Mondprogramms entwickelt. Der ursprüngliche Name dafür war BOMP, Bill Of Materials Processor, also Stücklistenbearbeitung (wurde zu VBOMP weiterentwickelt und dann aufgegeben) und die Ansteuerung der CICS-Makrolevel-Programmierung ähnlich. Am 14. August 1968 lief die erste Version bei Rockwell Space Division in Downey, California. Im Jahr 1969 wurde ICS umbenannt in IMS (Information Management System) und von IBM bis heute ständig weiterentwickelt.
Der Datenzugriff aus Anwendungsprogrammen erfolgt mittels DL/I (Data Language Interface, auch Data Language One genannt[1]). Diese Programmierschnittstelle, eine DML, wird von den Programmiersprachen Assembler, C, C++, COBOL, FORTRAN und PL/I unterstützt. IMS enthält umfangreiche Mechanismen zur Gewährung der Datenintegrität (Locking, Logging).
IMS besteht aus den Komponenten IMS DB (hierarchisches Datenbanksystem) und IMS TM (früher bekannt als IMS DC). IMS DB sorgt hierbei für den Zugriff auf Datenbanken, während IMS TM einen Transaktionsmonitor darstellt, der es erlaubt, unter IMS Dialogprogramme (interaktiv) zu verarbeiten, die im Regelfall mit dem Benutzer über ein 3270-Terminal/-Emulation kommunizieren. Hierbei wird ebenfalls die Programmierschnittstelle von IMS DB benutzt, wobei die Kommunikation mit dem Anwender systemintern über eine so genannte Message Queue erfolgt.
Unter IMS existieren folgende Arten von Anwendungsprogrammen:
Für den Zugriff auf IMS-Datenbanken aus PC-Anwendungen existieren verschiedene Lösungsansätze. So existiert z. B. das Produkt IMS Connect, welches es einer PC-Anwendung ermöglicht eine Nachricht an eine IMS-Transaktion zu senden. Die IMS-Transaktion verarbeitet dann diese Nachricht ohne Kenntnis, dass diese von einer PC-Anwendung erzeugt wurde. Das Ergebnis dieser Verarbeitung wird dann wieder als Nachricht an die PC-Anwendung zurückgesandt.
Eine weitere Lösung besteht auch in dem Einsatz des Produktes Shadow Direct. Diese Lösung ermöglicht die Entwicklung so genannter RPCs, die auf dem Host unter der Kontrolle von Shadow Direct gestartet werden. Diese RPCs können unter anderem auf IMS-Datenbestände zugreifen. Als Ergebnis kann eine relationale Tabelle erzeugt werden, die über eine ODBC-Schnittstelle an die PC-Anwendung gesandt wird.
Seit Version 7 unterstützt IMS JDBC. Dadurch wird ein direkter Zugriff des IMS TM aus einem Java-Programm ermöglicht. Dabei kann der zAAP Assist Prozessor eingesetzt werden.
Seit Version 9 kann das XML-Toolkit for z/OS verwendet werden. Dadurch werden Web-Anwendungen unterstützt, die Daten im XML-Format benötigen. XML-Daten können direkt in der IMS DB abgelegt werden.
Seit der Version 10 können auch XQuery und XPath zur Recherche in gespeicherten XML-Daten eingesetzt werden.