Magnolia – Das Headless CMS im Zusammenspiel mit Single Page Apps

Warum ein Headless CMS mit einer SPA kombinieren?

Im Zuge des Redesigns eines webbasierten responsiven Vendor Management-Systems bei unserem Kunden AviationStaffManagement (kurz ASM) bestand die Herausforderung, eine Online-Hilfe und andere Inhalte wie z.B. Informationen zu Ansprechpartnern in die Anwendung zu integrieren. Für die Inhaltserstellung sollten folgende Rahmenbedingungen beachtet werden:

  • Die Pflege der Inhalte soll von Mitarbeitern der ASM nutzerfreundlich über ein Web-Frontend möglich sein,
  • die Inhaltserstellung/-pflege soll separat von den öffentlich sichtbaren Inhalten erfolgen,
  • nach der Freigabe der Inhalte sollen diese in der Testumgebung der Anwendung sichtbar sein, um Integrationstests durchführen zu können,
  • nach der endgültigen Freigabe sollen die Inhalte auf einfache Art und Weise in das Live-System publizierbar sein.,
  • die Inhalte müssen mehrsprachig sein und für bestimmte Anwendungsrollen bzw. Mandanten im System (die aufgrund unterschiedlicher Funktionalitäten Anpassungen in den Hilfetexte erfordern) sollen separate Inhalte pflegbar sein,
  • die Inhalte der Online-Hilfe sollen unter Berücksichtigung der Anwendungsrolle und des Mandanten durchsuchbar sein.

Diese Rahmenbedingungen sprachen aufgrund ihrer Komplexität für den Einsatz eines Content Management Systems (CMS) und gegen die Erweiterung der Anwendung um eigene Funktionalitäten zur Pflege und Darstellung/Filterung dieser Inhalte.

Aus technischer Sicht waren folgende Fragestellungen zu beachten:

  • Layout des Inhalts innerhalb der Anwendung und Abruf der publizierten Inhalte aus dem CMS über eine API,
  • einfache Erweiterungsmöglichkeiten des Authentifizierungsverfahrens für die Ermittlung der personalisierten Inhalte im Hinblick auf die Nutzerspezifika (Anwendungsrolle, Mandant),
  • Möglichkeit einer Volltextsuche über die publizierten personalisierten Inhalte des CMS über die API sowie
  • einfache Integration des CMS in die bestehende Infrastruktur.

Wir entschieden uns für das CMS Magnolia, einem CMS auf Java-Basis, das browserbasiert läuft, den genannten Rahmenbedingungen gerecht wird und sowohl als klassisches CMS mit einem Frontend für die Darstellung der publizierten Inhalte, als auch als Headless CMS mit einer REST-API zum Zugriff auf den publizierten (unformatierten) Content eingesetzt werden kann.

ZARAS – Ein Vendor Management-System für die AviationStaffManagement

Unser Kunde AviationStaffManagement bietet einen Vendor Management Service, der unter anderem die Steuerung des gesamten Rekrutierungsprozesses von Zeitarbeitnehmern, die dazugehörige administrative Abwicklung, Support, sowie die Koordination der externen Lieferanten wie auch eine Lieferantenbewertung bietet. Mit tiefgreifenden und fundierten Branchenkenntnissen und dem Wissen über die Bedarfe der Kunden hat ASM in Zusammenarbeit mit uns ZARAS (Zeitarbeitnehmer-Rekrutierungs- und Administrations-Software) als eigene, innovative Softwarelösung entwickelt, mit der Prozesse optimiert und wirtschaftlich effizienter gestaltet werden können. So kann ASM die Qualität im Vendor Management sichern und allen Kundenanforderungen mit speziell darauf abgestimmten Leistungen und dem individuellen Einsatz geeigneter Produkte begegnen. ZARAS ist eine web- und workflowbasierende JavaEE-Applikation, die in diesem Jahr komplett neu als responsive Single Page App (SPA) unter Nutzung von Angular umgebaut wurde.

Magnolia – Das flexible Headless CMS

Magnolia unterstützt zahlreiche Standards wie JSR 168 oder JSR 170 für den Zugriff auf den Content. Hervorzuheben sind vor allem das Java Content Repository (JCR) bzw. JSR 170 und JSR 283, da diese Standards die Basis von Magnolia bilden. Magnolia ist nicht irgendein rudimentäres CMS, sondern setzt ganz auf etablierte Standards wie sie auch z.B. Adobe AEM verwendet.

Außerdem ermöglicht Magnolia durch den kompatiblen Technologie Stack (Java EE/JBoss).eine optimale Einbindung in den Kontext der ZARAS Applikation. Eine einfache Integration des CMS in die bereits bestehende Infrastruktur war somit gegeben.

Zu guter Letzt unterstützt Magnolia neben der Umsetzung von klassischem CMS die Realisierung von Projekten mit Headless CMS Architektur – also die Auslieferung der Inhalte über eine JSON API. Der Vorteil von Headless ist die Trennung von Content und Darstellung / Verwendung. Das CMS liefert den Content und verfügt über die für die Pflege benötigten Tools. Somit muss der Inhalt nur einmal gepflegt werden und kann für verschiedene Front-Ends verwendet werden.

Vorteile von Magnolia

Die hohe Zahl an Personalisierungsoptionen bei Magnolia war einer der Hauptgründe, weshalb wir uns für dieses CMS entschieden haben. Mehrsprachigkeit, gruppen-/rollenspezifischer Content, die Sicherheitseinstellungen, Stichwort- und Volltextsuche sowie Freigabeworkflow und Qualitätssicherung konnten komplett auf die Wünsche von ZARAS arrangiert werden.

Mehrsprachigkeit

Um dem Anwender eine optimale Nutzung zu ermöglichen, sollte das ZARAS Frontend in unterschiedlichen Sprachen vorliegen. Magnolia bietet durch seine Mehrsprachigkeit die Möglichkeit, Inhalte (Texte und Grafiken) in mehreren Sprachen bereitzustellen, zwischen denen während der Nutzung bequem gewechselt werden kann.

Gruppen- / Rollenspezifischer Content

Oft wird es als Herausforderung gesehen, Inhalte individuell nach User-Gruppen zu liefern. Mit Magnolia bietet sich die Möglichkeit, generische Inhalte durch gruppen-/rollenspezifische Inhalte zu ergänzen.

Für die Auslieferung werden der generische und der individuelle Content ermittelt und gemeinsam als JSON ausgeliefert. Zunächst wird ein Hilfetext für alle Anwender gepflegt. Einige Anwender jedoch sollen zusätzliche Informationen erhalten. Bei ZARAS liefert das CMS zuerst den allgemeinen Hilfetext, gegebenenfalls gefolgt von weiteren Texten entsprechend der Rolle. Dies bietet den Vorteil, dass sich die Inhalte nach Zielgruppe gestalten lassen. Das Frontend muss sich um diese Rollenthematik nicht mehr kümmern, wodurch hier weniger Zuarbeit benötigt wird.

Authentifizierung

Um eine möglichst hohe Sicherheit zu gewährleisten, dürfen CMS Daten nur von berechtigten Anwendern abrufbar sein, d.h. ohne Authentifizierung ist kein Zugriff möglich. Da das ZARAS Backend bereits mit JSON Web Tokens (JWT) arbeitet, wollten wir diese auch für die Zugriffssteuerung des CMS nutzen.

Zur Umsetzung dieses Authentifizierungsverfahrens haben wir einen eigenen Filter implementiert und in die Magnolia Filter Chain angehängt. Das Angular Frontend schickt bei jedem Request einen Authorization Header (JWT). Im Anschluss verifiziert und analysiert dieser Filter den JWT Token. Bei ungültigen oder fehlenden Tokens wird die weitere Contentauslieferung geblockt.

Stichwort- und Volltextsuche

Zusätzlich zur kontextsensitiven (routenabhängigen) Einblendung der Hilfetexten – die definierten Routen im Angular-Frontend spiegeln sich eins zu eins in der Seitenhierarchie im CMS wieder — soll der Anwender innerhalb von ZARAS kontextübergreifend Informationen zu fachlichen Fragestellungen — ein Lieferant möchte z.B. Informationen zum Thema „Vorschlag von Kandidaten“ — suchen können. Für die personalisierte Umsetzung mit Magnolia wurde im Frontend eine Stichwort- und Volltextsuche integriert.

Diese Suche haben wir mithilfe der in Magnolia enthaltenden JCR Query API implementiert, die vom Frontend nach der Eingabe der Anfrage aufgerufen wird. Das ermöglicht es, mit einer SQL ähnlichen Syntax den gesamten Content zu durchsuchen. Da die Einschränkung auf rollen- bzw. gruppenspezifische Inhalte nicht direkt in der JCR-Anfrage abgebildet werden kann, liefert diese zunächst die Basismenge von relevanten Inhalten, die anschließend nach den spezifischen Kriterien gefiltert wird. Dem Frontend wird das Ergebnis schließlich als JSON Response zur Verfügung gestellt.

Die Stichwort-/Volltextsuche wird innerhalb des Hilfe-Layers ausgeführt. In der Ergebnisliste werden die zur Anfrage relevanten Hilfethemen — mit einer kurzen Darstellung des Kontextes, in dem die gesuchten Stichwörter vorhanden sind — angezeigt. Von der Ergebnisliste kann dann wie gewohnt zu einem konkreten Hilfetext gesprungen werden

Freigabeworkflow zur Qualitätssicherung

Vor der Bereitstellung von neuen oder geänderten Inhalten für den Anwender ist eine Qualitätssicherung und Freigabe erforderlich, welche ebenfalls mit Magnolia erteilt werden kann.

Eine Magnolia Installation besteht aus jeweils mindestens einem Autor und einer Public Instanz. Die Autor Instanz ist für die Pflege und Qualitätssicherung zuständig. Entspricht der Content den Vorgaben, wird der Content (Texte und Assets, bspw. Bilder oder PDF Dateien) als Bestandteil des Freigabeworkflows auf die Public Instanz übertragen. Erst nach dieser Veröffentlichung bzw. Aktivierung sind die aktuellen Inhalte für alle Anwender verfügbar – natürlich unter Berücksichtigung entsprechender Authentifizierungen und Zugriffskonzepte. So konnte schlussendlich ein effektiver Workflow generiert werden, der den aktuellen Kundenanforderungen entsprach.

Optimale Lösung mit Magnolia

Warum sollte Magnolia als CMS integriert werden? Magnolia erlaubt es mit wenig Aufwand ein Java basiertes CMS aufzusetzen. Der Vorteil ist, dass man als Entwickler, bedingt durch saubere Architektur und umfangreiche Dokumentation, schnell mit dem System vertraut wird.

In allen Bereichen bleibt dem Entwickler ein hohes Maß an Flexibilität für projektspezifische Erweiterungen. So konnten wir für unseren Kunden ZARAS schlanke Templates zur Pflege und Verwaltung der Inhalte generieren. Die Mitarbeiter machten sich schnell mit der Bedienung vertraut und pflegten direkt produktive Inhalte ein.

Dank großem Funktionsumfang (Mehrsprachigkeit, Personalisierung usw.) und Erweiterbarkeit eignet sich Magnolia für eine Vielzahl von Projekten unterschiedlicher Größe. Im Fall von ZARAS hat neben klassischen CMS Funktionen vor allem die Unterstützung von Headless Architekturen überzeugt. Die Integration in die Infrastruktur ist sehr simpel, da das CMS als eigenständige Web-Applikation auf demselben Applikation-Server wie die eigentliche Anwendung betrieben kann. Der Betrieb des CMS als separater Mikroservice in einem eigenständiger Applikationsserver ist genauso einfach realisierbar.

Der Relaunch der ZARAS Applikation als Single Page Application auf Basis von Angular im Zusammenspiel mit Magnolia ist hier ein voller Erfolg.

Kontakt

Wie denken Sie über Magnolia? Mit welchem CMS arbeiten Sie in Ihrem Unternehmen? Oder nehmen Sie direkt Kontakt zu unserem Team auf. Wir freuen uns auf Sie: Kontaktformular

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.