# Information Management System

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.

## Geschichte

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.

## Aufbau und Features

Der Datenzugriff aus Anwendungsprogrammen erfolgt mittels DL/I (Data Language Interface, auch Data Language One genannt). 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.

## Anwendungsprogramme

Unter IMS existieren folgende Arten von Anwendungsprogrammen:

### DL/I

    Anwendungen, die im reinen Batchbetrieb auf IMS-Datenbanken zugreifen. Die durch diese Anwendungen verarbeiteten Datenbanken stehen während der Zeit der Programmausführung dem Online-Betrieb nur dann zur Verfügung, wenn für diese DL/I-Anwendung Database Recovery Control (DBRC) und der Internal Resource Locking Manager (IRLM) aktiviert ist. Ohne DBRC und ohne IRLM gilt: Wenn diese Datenbanken während des Tages online verfügbar sein sollen, dann kann eine solche Verarbeitung erst stattfinden, nachdem IMS TM beendet wurde.

### BMP (Batch Message Processing)

    Hierbei handelt es sich um Programme, die aus einem Job heraus gestartet werden, aber in der Lage sind, Zugriffe auf Datenbanken innerhalb des Online-Betriebs auszuführen. Diese Programme sind in der Lage, auf die Messagequeue zuzugreifen.

### MPP (Message Processing Programs)

    Hierbei handelt es sich um Online-Anwendungen, die von einem Benutzer am 3270-Terminal gestartet werden. Der Benutzer füllt hierzu zuerst eine Bildschirmmaske aus. Nach Betätigen der FREIGABE-Taste wird eine Nachricht an das entsprechende Programm erzeugt und in der Messagequeue eingefügt. IMS TM startet daraufhin das Programm und stellt dem Programm die entsprechende Message zu. MPPs sind in der Lage, mehrere Messages, die von verschiedenen Benutzern erzeugt wurden, zu verarbeiten. Daher sind solche Programme so zu programmieren, dass zwischen den Dialogschritten keine sitzungsbezogene Daten im Programm gespeichert werden.
    Es besteht die Möglichkeit, MPP-Programme über eine Middleware, wie z. B. IMS Connect aufzurufen. Die Kommunikation erfolgt hierbei über die Messagequeue, so dass die Anwendung keinen Unterschied bemerkt, ob die Nachricht von einem Terminal oder einer Middleware erzeugt wurde. Der Vorteil dieser Verfahrensweise besteht in der Integration von sogenannten Legacy-Anwendungen in Webanwendungen, ohne dass die Anwendung hierzu angepasst werden muss.

## Zugriff auf IMS-Datenbanken

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.