myContent CMS Systemarchitektur
PS.Content basiert 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.
PS.Content verwendet neben der Basis-Datenbank noch zwei PostrgreSQL-Erweiterungen: PostGIS (Geokoordinaten) und TimeScale-DB (Verarbeitung von Zeitreihendaten für PS.Content #Insights).
PostgreSQL wird auch vom Alfresco DMS (siehe unten) als Datenbanksystem verwendet. Es ist daher möglich, aber nicht empfehlenswert, Alfresco und PS.Content 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.Content 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.
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.
Alfresco ist über eine CMIS Schnittstelle an PS.Content angebunden. Es können auch andere DMS Systeme eingesetzt werden, sofern sie eine CMIS Schnittstelle anbieten.
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.
Der Image-Processing Service stellt jeweils einen optionalen LRU (least recently used) DiskCache für Original-Bilder und die erstellten Bildausschnitte bzw. Bildvarianten bereit, sodass bei Requests das DMS (Alfresco) diese nicht permanent erneut ausliefern muss bzw. die Varianten erneut berechnet werden müssen.
→ Konfiguration Image-Processing
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.
Es kann ein #Insights-Proxy für einen oder mehrere #Insights-Logic-Container verwendet werden.
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 myContent CMS zu myContent PRINT)
Aufgabe | Mehrfach instantiierbar | Zielplattform | Abhängigkeiten |
---|---|---|---|
Schnittstelle HUP Print | Ja | Windows x86 / x64 | HUP VL Logon/-Service |
Bei Fragen oder Problemen mit Ihrem Zugriff, melden Sie sich gerne bei uns: help-atlassian-cloud@hup-company.atlassian.net