Zum Hauptinhalt springen

SOA-Service

SOA-Service Beschreibung des SOA-Service

info

Eine Auflistung der Betriebssysteme, auf denen der SOA-Service betrieben werden kann, finden Sie in den Systemvoraussetzungen .

Der SOA-Service ist eine Anwendungsumgebung, in der unter einem einzigen Systemdienst mehrere voneinander unabhängige Tasks laufen. Jeder Task läuft in einem eigenen Betriebssystemprozess und kann separat gestartet oder gestoppt werden. Der Prozess des Systemdienstes selbst ist dabei nur für das Starten und Stoppen der definierten Tasks zuständig. Ein Task kann entweder zeitgesteuert (Betriebsart TIME) oder als Socketserver (Betriebsart SOCKET) betrieben werden. Die Task und die Betriebsart des Task werden bei der Konfiguration des SOA-Service festgelegt.

Der SOA-Service benötigt auf dem Rechner, auf dem er läuft, einen Benutzer, sofern nicht bereits ein anderer Client gestartet ist.

Betriebsart TIME

In dieser Betriebsart wird die Ereignisprozedur des Task in zeitlichen Abständen wiederholt aufgerufen. Der Zeitpunkt des nächsten Aufrufs kann innerhalb der Ereignisprozedur verändert werden. Während der Ausführung der Ereignisprozedur finden keine weiteren Ereignisse statt, es ist somit maximal eine Verarbeitungsinstanz aktiv. Benötigt die Verarbeitung einen längeren Zeitraum, sollte ein oder mehrere Jobs (siehe unten) gestartet werden.

Betriebsart SOCKET

In dieser Betriebsart wartet der Task passiv auf eingehende Verbindungen auf einem bestimmten TCP/IP-Port. Beim Zustandekommen einer Verbindung wird die Ereignisprozedur des Tasks gestartet, die dann die Kommunikation mit der Gegenstelle durchführt. Nach dem Ende der Prozedur wird die Verbindung in der Regel automatisch geschlossen. Sie kann aber auch für einen bestimmte Zeit (Keep-Alive-Time) noch bestehen bleiben, um beispielsweise weitere Anfragen der Gegenstelle zu verarbeiten. Wenn während der Ausführung der Ereignisprozedur weitere Verbindungen entstehen, werden weitere Instanzen der Ereignisprozedur gestartet, es können somit mehrere Ereignisprozeduren parallel ablaufen.

Ein socketbasierter SOA-Service kann optional mit Verschlüsselung unter Verwendung der Transport Layer Security betrieben werden. Dafür ist ein entsprechendes SSL/TLS-Zertifikat notwendig. Das Zertifikat muss im PEM-Format vorliegen. Die Datei für das Zertifikat wird in den Einstellungen des Tasks angegeben (siehe SOA-Service - Konfigurationsdatei ). Die Daten werden beim Start des Tasks verwendet, treten dabei Fehler auf, befinden sich entsprechende Eintragungen in der Protokolldatei des Tasks . Nach dem Starten des Tasks werden nur noch Verbindungen akzeptiert, die SSL 3.0 oder TLS 1.x entsprechen.

Jobs

Innerhalb einer Ereignisprozedur können sogenannte Jobs gestartet werden. Ein Job führt eine Prozedur aus, die parallel zur Ereignisprozedur durchgeführt wird und auch nach dem Ende der Ereignisprozedur noch weiterlaufen kann. Ein Job kann innerhalb des Task-Prozesses als separater Thread oder alternativ als eigenständiger Betriebssystemprozess durchgeführt werden. Die Ereignisprozedur kann mit der Job-Prozedur einen Datenaustausch mit Hilfe von MSX-Befehlen realisieren. Eine Job-Prozedur benötigt einen eigenen Datenbankbenutzer.

Session-Management

Bei socketbasierten Tasks entsteht häufig die Notwendigkeit, über mehrere Anfragen hinweg einen Verarbeitungskontext zu haben, der nicht implizit durch das verwendete Protokoll gegeben ist. Bei SMTP gibt es beispielsweise für die gesamte Session nur eine Verbindung die auch nur durch einen einzigen Prozeduraufruf verarbeitet wird. Bei HTTP dagegen handelt es sich um ein "zustandsloses" Protokoll, bei dem Sessions außerhalb des Protokolls verwaltet werden müssen.

Innerhalb eines SOA-Tasks lässt sich ein Verarbeitungskontext erzeugen, in dem Deskriptoren und globale Datenbereiche nach einem Prozeduraufruf gesichert und beim nächsten Prozeduraufruf wiederhergestellt werden. Ein Verarbeitungskontext wird nach einem konfigurierbaren Timeout (siehe session_timeout_max ) automatisch durch den Task gelöscht. Alle weiteren Einstellungen zum Session-Management sind im Abschnitt Konfigurationsdatei des SOA-Service beschrieben.

Für die Handhabung von Sessiondaten steht der Befehl SvcSessionControl () zur Verfügung.

Betriebsart DRIVE

Mit dieser Betriebsart wird der Laufwerkstreiber gestartet. Mit dem Laufwerkstreiber wird ein Laufwerk definiert. Alle Aktionen auf dem Laufwerk lösen eine Nachricht an eine definierte Applikation aus. Die Applikation muss die angeforderten Informationen zur Verfügung stellen.