Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Temporäre Queues

Temporäre Queues werden per Programmaufruf erzeugt und können per Programm auch wieder gelöscht werden. Der Name der Queue wird beim Erzeugen einer Queue vergeben, d.h. er muss nicht generiert werden. Der Name kann wahlweise durch das Programm oder durch openUTM erzeugt werden.

Bei UTM-S bleiben Temporäre Queues über ein Anwendungsende hinaus erhalten, falls sie nicht zuvor explizit gelöscht wurden. Bei UTM-F gehen alle Temporären Queues verloren, nachdem die Anwendung beendet wurde.

Temporäre Queues eignen sich besonders gut zur freien Kommunikation zwischen voneinander unabhängigen Services („freier“ Dialog). Temporäre Queues verkörpern daher im besonderen Maße das Konzept des synchronen Wartens auf asynchrone Ereignisse. Sie stehen damit zwischen den beiden Konzepten „Strenger Dialog“ und „Hintergrundaufträge“.

Die Services können innerhalb einer Anwendung residieren oder sich auf unterschiedlichen Rechnern befinden. Zwei wichtige Anwendungsfälle für dieses Konzept sind:

  • Der Dialog zweier Services innerhalb einer UTM-Anwendung

  • Der Dialog einer UTM-Anwendung mit einer fernen Transportsystem-Anwendung

Beide Möglichkeiten werden im Folgenden anhand von Grafiken erläutert.

Im ersten Beispiel sucht der Service „Kunde“ einer Call-Center-Anwendung zusätzliche Kundendaten mit Hilfe des asynchronen Services „Suchen“. Dieser schreibt die Daten in eine Temporäre Queue, die in diesem Fall als reine „Reply-Queue“ verwendet wird, d.h. der Datenaustausch geht nur in eine Richtung.

Bild 27: Kommunikation zweier Services über eine Temporäre Queue

Der Service „Kunde“ erzeugt die Temporäre Queue und gibt den Namen der Queue beim Auftrag an den Service „Suchen“ weiter. Danach führt der Service „Kunde“ weitere Dialogabfragen mit dem Client aus, während der Service „Suchen“ im Hintergrund eine Datenbankabfrage durchführt. Wenn nötig wartet der Service „Kunde“ auf die Antwort vom Service „Suchen“ (synchrones Warten). Hat dieser die gewünschten Daten erhalten, schreibt er sie in die Queue und beendet sich anschließend. Sobald die Nachricht in der Queue steht, wird „Kunde“ aktiviert, übernimmt die weitere Verarbeitung und löscht anschließend die Queue.

Im zweiten Beispiel möchte eine UTM-Anwendung auf die Daten einer fernen Transportsystem-Anwendung zugreifen. Als reine Transportsystem-Anwendung kann diese keine höheren Protokolle wie. z.B. OSI TP oder LU6.1 für die Kommunikation einsetzen. Um dennoch einen Dialog führen zu können, werden auf UTM-Seite Temporäre Queues verwendet.

Bild 28: Kommunikation mit einer Transportsystem-Anwendung über eine Temporäre Queue

Der Service „Aktien“ erzeugt die Temporäre Queue und gibt den Namen der Queue beim Auftrag an die Transportsystem-Anwendung weiter. Danach wartet der Service „Aktien“ auf die Antwort (synchrones Warten). Inzwischen ermittelt die Transportsystem-Anwendung die gewünschten Daten und sendet sie an die Anwendung „Invest“; der Name der Queue muss dabei am Anfang der Nachricht stehen. Der Service „Aktien“ wird aktiviert, sobald die Nachricht in der Queue steht. Nach der Verarbeitung wird die Queue gelöscht.

Wie Sie Temporäre Queues erzeugen und löschen, ist im openUTM-Handbuch „Anwendungen programmieren mit KDCS“ beschrieben. Wie Sie die maximale Anzahl und die Eigenschaften von Temporären Queues festlegen können, erfahren Sie im openUTM-Handbuch „Anwendungen generieren“ unter den Stichwörtern QUEUE und Temporäre Queue.