Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Status-Webservice

Der Status-Webservice implementiert die Back-End-Dienste, die primär für die Nutzung durch den Statusmonitor vorgesehen sind.

Die Back-End-Dienste können auch von jeder externen Anwendung aufgerufen werden, die Statusinformationen zur xSuite-Interface-Verarbeitung benötigt.

Hinweis

Eine weiterführende Beschreibung der Status-Endpunkte ist in dieser Dokumentation nicht enthalten.

Die Integration einer externen Anwendung muss projektspezifisch abgestimmt und durchgeführt werden.

Für die Nutzung des Statusmonitors muss der Status-Webservice und die Auslieferung statischer Web-Dateien (Eigenschaft WebService.Web­Root­Folder) aktiviert sein. Wenn die notwendigen Zugriffsrechte gesetzt sind (Eigenschaft StatusService.AllowUser), ist die Anwendung über die folgende URL aufrufbar:

{Basisadresse}/{Basispfad}/Status

In dem Unterobjekt StatusService.LiveInfo sind Konfigurationseigenschaften zusammengefasst, die dazu dienen, im Statusmonitor Laufzeitinformationen der aktiven Worker-Instanzen in Echtzeit zu betrachten. Dazu zählen die laufenden Protokollausgaben der Worker und Informationen zu dem aktuellen Zustand der Worker. Wenn mehrere aktive Programminstanzen vorhanden sind, werden die Ausgaben aller Instanzen zentral in der Instanz gesammelt, die den Status-Webservice ausführt. Der Datentransfer erfolgt direkt über das Netzwerk in Form von UDP-Paketen.

Die Live-Informationen, die per UDP übermittelt werden, können genutzt werden, um auf der Startseite weitere laufende Programminstanzen anzuzeigen. Auf diese Weise können Informationen von Programminstanzen angezeigt werden, die auf einem anderen Server ausgeführt werden und nicht auf Basis der lokal laufenden Prozesse identifiziert werden können. Eine solche Konstellation liegt z.B. vor, wenn xSuite Interface in der xSuite Cloud über mehrere Docker-Container läuft, die sich wie separate Server darstellen.

Eigenschaft

Beschreibung

StatusService.Activate

Wahrheitswert, ob der Status-Webservice aktiviert ist

Standardwert: FALSE

StatusService.Tenant[]

optionale Angabe der Namen der Mandanten, die in einer Instanz des Statusmonitors angezeigt werden

Standardmäßig werden implizit alle Mandanten herangezogen, die gemäß der Konfiguration Worker[].Tenant aktiv sind.

Diese Konfigurationseigenschaft muss zwingend gesetzt werden, wenn der betreffenden Programminstanz keine Worker zugeordnet sind, weil diese Instanz z. B. ausschließlich für den Betrieb des Status-Webservices zuständig ist, und wenn gleichzeitig mit anderen Mandanten als nur mit dem Standardmandanten "Default" gearbeitet wird.

StatusService.AllowUser[]

Definition von Benutzerrechten zum Aufruf des Status-Webservices

Jeder Eintrag setzt sich aus den folgenden Einzelparametern zusammen:

  1. Name*: Name des betreffenden Benutzers (Syntax: siehe WebService.AuthMode)

  2. Rights: Rechte des Benutzers

  3. Tenant: Mandant, für den der Eintrag gilt

Die Rechte (Rights) bestehen aus einer zusammengesetzten Zeichenfolge mit den folgenden möglichen Werten:

  • R (Read): Anzeige von Daten

  • E (Edit): Bearbeitung von Daten

  • D (Delete): Löschen von Daten

  • J (JSON): Anzeige interner JSON-Daten

Wenn in einem Eintrag keine einschränkenden Rechte definiert sind, erhält der Benutzer implizit alle Rechte. Wenn gar keine Benutzerrechte definiert sind, erhält jeder Benutzer vollen Zugriff. Sobald aber Rechte definiert sind, erhalten nur noch explizit dort aufgeführte Benutzer Zugriff.

Wenn in einem Eintrag der Parameter Tenant angegeben ist, gelten die Berechtigungen nur für diesen Mandanten. Für denselben Benutzer können somit mehrere Einträge vorgenommen werden, die sich jeweils im Mandanten unterscheiden.

StatusService.AllowGroup[]

Definition von Rechten für Benutzergruppen zum Aufruf des Status-Webservices

Diese Eigenschaft ist nur relevant, wenn die Windows-Authentifizierung aktiviert ist, da ausschließlich Gruppen aus einem Windows Active Directory unterstützt werden. Der Gruppenname muss als erster Parameter in der Syntax Domäne\Gruppenname angegeben werden.

StatusService.LiveInfo.UdpAddress(*)

Adresse des UDP-Dienstes zum Empfang der Live-Informationen

Syntax: {Host}:{Port}

Diese Konfigurationseigenschaft ist für die empfangende und für die sendenden Programminstanzen relevant. Aus Sicht des Empfängers ist Host die IP-Adresse, auf der UDP-Pakete empfangen werden sollen. Stellvertretend für alle Adressen, die an den Server gebunden sind, kann ein Stern (*) angegeben werden. Aus Sicht eines Senders ist eine konkrete IP-Adresse oder der Servername des Empfängers anzugeben. Als Port muss ein anderer Port gewählt werden als beim Empfänger unter Webservice.Url[] konfiguriert ist, da der UDP-Dienst parallel zu den normalen Webservices läuft.

Eine Programminstanz dient als Empfänger, wenn eine UDP-Adresse konfiguriert und gleichzeitig der Status-Webservice aktiviert ist (Eigenschaft StatusService.Activate). Wenn nur eine UDP-Adresse angegeben ist und der Status-Webservice nicht aktiviert ist, wird die UDP-Adresse als Empfängeradresse gewertet und die Instanz arbeitet als Sender. Der Empfänger selbst schickt sich seine eigenen Live-Informationen nicht per UDP, sondern übergibt diese programmintern.

StatusService.LiveInfo.StatusServiceUrl

URL des Status-Webservice für die Verschlüsselung der UDP-Daten

Syntax: {Basisadresse}/{Basispfad}

UDP unterstützt als Protokoll keine direkte Verschlüsselung der Daten. Die Verschlüsselung erfolgt auf Anwendungsebene. Jeder Sender erzeugt dazu minütlich einen neuen Schlüssel für eine symmetrische AES-Verschlüsselung. Der Sender übermittelt den Schlüssel vorab an den Empfänger für die Entschlüsselung. Die Schlüsselübertragung erfolgt an den Status-Webservice des Empfängers, die per TLS abgesichert sein sollte. In der Eigenschaft StatusServiceUrl ist senderseitig die URL dieses Status-Webservices anzugeben.

In der empfängerseitigen Konfiguration ist diese Eigenschaft nicht relevant. Wenn diese Eigenschaft beim Sender nicht gesetzt ist, findet keine Schlüsselübertragung und somit ein unverschlüsselter UDP-Datenversand statt.

StatusService.LiveInfo.ProcessName

optionaler Anzeigename für die aktuelle Programminstanz in der Live-Informationsansicht des Statusmonitors

Im Standard wird ein generisch erzeugter Name verwendet. Für die Worker-Instanzen eines Prozesses kann ebenfalls ein sprechender Name definiert werden. Dazu dient die Eigenschaft Worker[].Name in der globalen Konfiguration.

StatusService.LiveInfo.ViewWorkers

Wahrheitswert, ob im Statusmonitor Informationen zum aktuellen Zustand der einzelnen Worker-Instanzen angezeigt wird

Wenn das Programm konfigurationstechnisch in mehrere Programminstanzen getrennt ist, muss diese Eigenschaft in allen Instanzen den Wert true haben. Diese Eigenschaft dient als Kennzeichen für die Instanz, die den Status-Webservice ausführt. Wenn die Eigenschaft den Wert true hat, werden die Daten angezeigt. Für die anderen Instanzen dient die Eigenschaft als Kennzeichen, dass die Daten übermittelt werden sollen.

Standardwert: FALSE