Im Folgenden finden Sie vier Anwendungsszenarien für den Zugriff von HTTP-Clients auf UTM-Anwendungen.
Bestehende Line-Mode Teilprogramme direkt aufrufen
Bestehende Line-Mode Programme können von HTTP-Clients aufgerufen werden, ohne dass eine Änderung an den Anwendungsprogrammen erforderlich ist.
Voraussetzung ist, dass es sich bei dem adressierten Vorgang um einen Ein-Schritt-Vorgang handelt.
Die Nachricht für das Teilprogramm kann in der Query und/oder dem Message Body des HTTP-Requests übergeben werden.
Wird der TAC des Teilprogramms direkt im Path angegeben, dann führt openUTM in BS2000-Systemen eine Code-Konvertierung der HTTP-Nachrichten für einen solchen TAC durch. Die HTTP-Response formatiert openUTM als HTML-Nachricht, wobei mehrere mit MPUT NT übergebene Nachrichtenteile zusammengefasst und Zeilenumbrüche erhalten werden.
Bestehende Teilprogramme über einen HTTP-Exit aufrufen
Dieser Anwendungsfall ist sinnvoll für Programme, die Daten in einem definierten Layout erwarten, wie z.B. Programme, die bisher von UPIC-Clients aufgerufen werden.
Das Teilprogramm muss nicht geändert werden. Stattdessen kann der Anwender ein HTTP-Exit Programm erstellen und diesen Exit in einer HTTP-DESCRIPTOR Anweisung dem TAC zuordnen.
Das HTTP-Exit Programm wird von openUTM dann für jede Ein- und Ausgabenachricht dieses TACs aufgerufen.
In dem HTTP-Exit Programm kann der Anwender die Umsetzung der Netznachricht auf die vom Teilprogramm erwartete Datenstruktur, sowie die Umsetzung der Antwortnachricht vom Teilprogramm in eine Netznachricht durchführen.
Des Weiteren hat das HTTP-Exit Programm die Möglichkeit einen HTTP-Request in mehrere Nachrichtenteile zu strukturieren, die ein Teilprogramm dann jeweils mit einem eigenen MGET NT lesen kann. Auf ähnliche Weise kann das HTTP-Exit Programm eine HTTP-Response aus mehreren mit MPUT NT-Aufrufen übergebenen Nachrichtenteilen zusammensetzen.
Bestehende Teilprogramme von einem selbst erstellten HTTP-Client aufrufen
Wenn eine bestehende Anwendung nicht modifiziert werden soll, dann kann ein Anwender auch neue Client-Programme erstellen, die mit der UTM-Anwendung über das HTTP-Protokoll kommunizieren und die die Daten in dem von den Teilprogrammen seiner UTM-Anwendung erwarteten Format bereitstellen und die Antwort der UTM-Anwendung in einer für den Benutzer geeigneten Form präsentieren.
Neue Teilprogramme für die Kommunikation mit HTTP-Clients erstellen
Neue Programme, die speziell für die Kommunikation mit HTTP-Clients erstellt werden, haben die Möglichkeit auf Protokollinformationen zuzugreifen.
Zum einen kann durch eine Option des Aufrufs INIT PU Information zu einem HTTP-Request angefordert werden.
Zum anderen stellt openUTM eine Reihe von Funktionen bereit, mit denen auf Teile einer HTTP-Nachricht direkt zugegriffen werden kann.
Lesen einer HTTP-Nachricht
Eine für ein Teilprogramm bestimmte Nutznachricht kann in einem HTTP-Request in der Query und/oder im Message Body mitgegeben werden.
Lesen einer HTTP-Nachricht ohne HTTP-Exit
Ein Teilprogramm kann die Nutznachricht eines HTTP-Requests mit MGET lesen. Enthält der HTTP-Request eine Query, dann liefert openUTM beim ersten MGET eines Teilprogrammlaufs die Query zurück. Mit nachfolgenden MGET Aufrufen kann der Message Body gelesen werden.
Ist in einem HTTP-Request keine Query enthalten, dann gibt openUTM beim ersten MGET den Message Body zurück.
Lesen einer HTTP-Nachricht mit HTTP-Exit
In diesem Fall bestimmt der HTTP-Exit welche Daten das Teilprogramm beim MGET bekommt und wie diese Daten in Nachrichtenteile strukturiert sind.
Aufbau einer HTTP-Response
Antwortnachrichten an einen HTTP-Client übergibt ein Teilprogramm mit MPUT-Aufrufen. Über spezielle Funktionen kann ein Anwenderprogramm auch den Status-Code sowie Header einer HTTP Response versorgen.
Funktionen zum Zugriff auf Teile der HTTP-Nachricht
Für Anwenderprogramme ist nicht nur die Nutznachricht ("payload") einer HTTP-Nachricht von Interesse. Auch die URL und die HTTP-Header können Informationen enthalten, die ein Anwenderprogramm zur Verarbeitung der Nachricht benötigt.
Deswegen stellt openUTM eine Reihe von Funktionen zur Verfügung, mit denen ein Anwender aus einem HTTP-Exit oder einem Teilprogramm lesend oder schreibend auf Teile einer HTTP-Nachricht zugreifen kann. Ein Anwender kann mit Hilfe dieser Funktionen den Programmablauf steuern und Teile der Antwortnachricht an openUTM übergeben.
Eine Übersicht der Zugriffsfunktionen finden Sie im Unterkapitel „Die Programmschnittstelle UTM-HTTP" im openUTM Handbuch „Anwendungen Programmieren mit KDCS". |