Systemarchitektur PS.eWorxx

PS.eWorxx basiert auf einer Mikroservice-Architektur. Dh. es besteht aus verschiedeneren, unabhängigen Diensten (im ug. Schaubild blau), welche spezielle Services dediziert zur Verfügung stellen. Diese Services können auf unterschiedlichen Servern (VMs) und in der Regel mehrfach betrieben werden, um das System entsprechend den Anforderungen zu skalieren. Alle PS.eWorxx Services sind plattformunabhängig (JAVA/Spring).

Des weiteren verwendet PS.eWorxx verschiedene Drittanbieterkomponenten (im ug. Schaubild grün), um zB. Daten oder Dateien abzuspeichern bzw. zu verwalten.

Drittanbieterkomponenten

PostgreSQL

PostgreSQL (kurz Postgres) ist ein plattformunabhängiges objekt-relationales Datenbanksystem. Postgres ist open source und somit kostenfrei einsetzbar.

PostgreSQL wird auch vom Alfresco DMS (siehe unten) als Datenbanksystem verwendet. Es ist daher möglich, aber nicht empfehlenswert, Alfresco und PS.eWorxx in die gleiche Datenbankinstanz zu installieren. Da mehrere PostgreSQL Instanzen in verschiedenen Versionen auf einem Server betrieben werden können, kann der gleiche Datenbankserver jedoch für beide Produkte verwendet werden.

In der Datenbank werden von PS.eWorxx sämtliche Daten - außer Dateien (Assets) - abgelegt. Zur Ablage von Assets wird ein DMS verwendet. Siehe Alfresco.

Von der Performance her ist PostgreSQL mit Microsoft SQL Server und Oracle Database vergleichbar oder sogar schneller. Es stehen GUI und CLI Management-Tools zur Verfügung.

Postgres-GUI Tools

Alfresco DMS

Alfresco ist ein plattformunabhängiges Dokumenten Management System (DMS) welches von PS.eWorxx verwendet wird, um Dateien jeglicher Art zu verwalten. Alfresco ist open source und in der "Community Edition" kostenfrei nutzbar.

Alfresco ist über eine CMIS Schnittstelle an PS.eWorxx angebunden. Es können auch andere DMS Systeme eingesetzt werden, sofern sie eine CMIS Schnittstelle anbieten.

PS.eWorxx speichert alle Metadaten eines Assets in einem eigenen Content-Model am Alfresco-Dokument. Es können somit verschiedene PS.eWorxx Instanzen mit einem Alfresco DMS verwendet werden. (Staging und Live zB.)

Metadaten sind:

  • Originaler Dateiname,
  • Originale Änderungszeit,
  • Hash-Wert zur Erkennung von Duplikaten,
  • Extern-Kennzeichen zur Identifizierung von externen Assetimporten 
  • Löschkennzeichen (logisch)
  • Verwender (von Kundendatei in Gestaltungsaufträgen)

vgl. eworxx-aspect.zip

Active MQ (Message Broker)

Da PS.eWorxx aus verschiedenen, zum Teil mehrfach instantiierbaren Mikroservices besteht, die bei Bedarf miteinander kommunizieren müssen, wird eine Message-Queue verwendet um Ereignisse von einem Mikroservice zu potentiellen Empfängern zu übermitteln. Ereignisse können zB. das Speichern eines Artikels, das Importieren eines Elements, das Verändern von Daten etc. sein. Empfänger können zB. Teile von PS.eWorxx aber auch Schnittstellen oder andere Softwareprodukte / -komponenten sein. So reagieren zB. UI Elemente, wie die History-Kachel eines Artikels eigenständig auf Änderungen am angezeigten Datensatz, sobald ein entsprechendes Event empfangen wird - Zb. beim Verändern des Artikels durch einen anderen Benutzer oder einen Systemprozess.

Der Austausch dieser Events erfolgt über JMS (Java Message Service). Active MQ kann Ereignisse Punkt zu Punkt und Punkt zu Mehrpunkt zustellen. Ereignisse werden dabei in einer eigenen Datenbank gepuffert, sodass die Zustellung von kritischen Ereignissen selbst nach einem Neustart des Messaging-Systems oder bei einem Ausfall des Empfängers gewährleistet ist.

Spring Boot Admin

Spring Boot Admin ist eine Management Oberfläche für sog. Spring-Boot-Container. Ein Spring-Boot Container ist eine in sich ausführbare JAVA Applikation die außer einer JAVA Installation (zB. OpenJDK oder Amazon Corretto) keine weiteren Abhängigkeiten aufweist. Alle PS.eWorxx Mikroservices werden als Spring-Boot Container geliefert und können daher automatisch über die Spring-Boot-Admin Oberfläche überwacht und administriert werden. So können zB. die CPU Auslastung, der Speicherverbrauch, die Systemkonfiguration oder Protokollmeldungen eingesehen oder Protokolllevel und Umgebungsvariablen zur Laufzeit ohne Neustart umgestellt werden.