PS.Content basiert auch auf einer Mikroservice-Architektur. Dh. PS.Content 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.Content Services sind plattformunabhängig (JAVA/Spring).
Des weiteren verwendet PS.Content 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.
...
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.
Alfresco DMS
Alfresco ist ein plattformunabhängiges Dokumenten Management System (DMS) welches von PS.Content verwendet wird, um Dateien jeglicher Art zu verwalten. Alfresco ist open source und in der "Community Edition" kostenfrei nutzbar.
...
PS.Content speichert alle Metadaten eines Assets in einem eigenen Content-Model am Alfresco-Dokument. Es können somit verschiedene PS.Content Instanzen mit einem Alfresco DMS verwendet werden. (Staging und Live zB.)
Active MQ (Message Broker)
Da PS.Content 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.Content 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.Content 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.
PS.Content Mikroservices
Config-Container
Der Config-Container stellt die zentrale Konfiguration für alle PS.Content-Container / Services außer den Editor-Service bereit.
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Konfigurationswerte für angeschlossene Systeme zur Verfügung stellen | nein | Unabhängig | keine |
Content.Admin (Admin-Container)
Der Admin-Container übernimmt die Benutzerauthentifikation und die Rechteverwaltung in PS.Content. Er wird idR. nur einmalig instantiiert.
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Benutzer und Rechteverwaltung | Ja | Unabhängig | Datenbank, Config-Container |
Content.Logic (Logic-Container)
Der Logic-Container übernimmt alle Transaktionen mit der Datenbank und dem DMS. Ferner übernimmt er auch alle Ex- und Importe und die Abarbeitung asynchroner Tasks.
...
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Applikationslogik | Ja | Unabhängig | Datenbank, DMS, Admin-Container, Config-Container |
Content.UI (UI-Container)
Der UI-Container stellt die Web-Oberfläche von PS.Content zur Verfügung.
...
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Web-UI | Ja | Unabhängig | Logic-Container, Config-Container |
Image-Processing
Der Service Image-Processing übernimmt die Bearbeitung von Bilddaten (Pixel und Vektor) zB. Zuschnitte, Previews etc.
...
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Bildverarbeitung | Bedingt (Cache nur pro Instanz) | Unabhängig | Config-Container |
Cnt.Event.Logic (#Event Logic)
Der Event-Logic-Container kapselt die Applikationslogik für das optionale PS.Content #Event Modul.
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Applikationslogik #Event | ja | Unabhängig | Datenbank, Admin-Container, Config-Container |
Cnt.Event.Gateway (#Event Gateway)
Der Event-Gateway-Container stellt einen REST-Webservice für den externen Zugriff auf Eventdaten für das optionale PS.Content #Event Modul bereit.
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
REST-Webservice #Event | ja | Unabhängig | Datenbank, Admin-Container, Logik-Container, Event-Logic-Container, Config-Container |
Cnt.Insight.Logic (#Insights Logic)
Der #Insights-Logic-Container kapselt die Applikationslogik für das optionale PS.Content #Insights Modul.
...
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Statistiken & Tracking, Schreiben der Tracking Daten | ja | Unabhängig | Datenbank, Admin-Container, Config-Container |
Cnt.Insight.Proxy (#Insights Proxy)
Der #Insights-Proxy gestattet dem Tracking-Skript, welches auf externen Webseiten, Portalen, Apps etc. eingesetzt wird, die Tracking-Daten zu schreiben.
...
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Proxy nach Außen Beschränkung der Requests/Sekunde | ja | Unabhängig | Insight Logic, Config-Container |
Editor Service
Der Editor-Service bildet die bi-direktionale Schnittstelle zum HUP Print-Redaktionssystem.
→ Konfiguration Editor-Service (Schnittstelle PS.Content zu HUP Print-RedaktionmyContent CMS zu myContent PRINT)
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Schnittstelle HUP Print | Ja | Windows x86 / x64 | HUP VL Logon/-Service |
...