CMSstash

Magnolia CMS: Stark bei der Personalisierung

Autor: Sebastian Schürmanns

Magnolia CMS ist ein etabliertes Enterprise Content Management System mit einem stark mobile-inspirierte App-Konzept und einem besonderen Schwerpunkt auf Personalisierungs-Funktionen. In früheren Zeiten wurde das Java-CMS häufiger als Alternative zu Day CQ gehandelt, also dem Vorgänger-System von Adobe AEM. Und tatsächlich verbindet beide Systeme nicht nur Basel als gemeinsamer Geburtsort. Doch trotz einiger technischer und konzeptioneller Ähnlichkeiten repräsentiert Magnolia heute ein sehr eigenständiges CMS-Konzept, mit dem es sich fest in der Welt der großen Enterprise Systeme etabliert hat.

Magnolia CMS

Magnolia ist von den Schweizer Informatikern Pascal Mangold und Boris Kraft erstmals Ende 2003 als Open Source Projekt veröffentlicht worden. Seit 2006 konzentriert sich Magnolia auf den Vertrieb einer Enterprise Edition mit erweiterten Features unter MLA-Lizenz. Im Jahr 2016 hat Magnolia neben der selbstgehosteten Version eine Cloud-Version unter dem Namen "Magnolia Now" eingeführt. Die Open Source Variante von Magnolia wird seit Einführung der Enterprise Version als Community-Edition unter GPLv3-Lizenz angeboten. Die Community-Edition ist allerdings nicht auf GitHub oder anderen öffentlichen Repositories verfügbar. Auch auf der Webseite von Magnolia wird die offene Version nicht allzu offensiv beworben. Wer sucht, findet allerdings einen Download-Link in der Dokumentation. Anders als bei vielen rein proprietären Systemen in der Enterprise-Liga ist der Zugang zur Online-Demo von Magnolia allerdings sehr unkompliziert und im Tausch gegen ein paar Kontakt-Daten zu haben.

Magnolia für Content Manager

Autoren arbeiten bei Magnolia mit einem hybriden Inline-Editing-Modus. Die Webseite erscheint dabei in einer HTML-Vorschau. Die einzelnen Inhalte der Vorschau können im Formular-Modus geöffnet, bearbeitet und verschoben werden. Die verfügbaren Inhalts-Elemente sind abhängig vom verwendeten Template und werden bei Magnolia als Komponenten bezeichnet. Zusätzlich gibt es auf der linken Seite ein Menü für die Bearbeitung von Meta-Informationen und für allgemeine Seiten-Operationen wie Publizieren, Verschieben oder Kopieren.

Magnolia Bearbeitung von Inhalten

Das Konzept der Komponenten-basierten Seiten-Bearbeitung erinnert stark an Day CQ bzw. Adobe AEM. Andere Konzepte wie zum Beispiel das Prinzip der Content-Apps wirken dagegen sehr originär. Mit Hilfe der Content-Apps können Inhalte ausgelagert und separat organisiert werden. Auf der Tour-Webseite, die Magnolia als Demo anbietet, werden beispielsweise die einzelnen Reise-Touren und die Reise-Kategorien in separaten Content-Apps gepflegt. Im Zusammenspiel mit einer statischen Tour-Seite greift Magnolia auf die Inhalte dieser Content-Apps zu und generiert daraus sowohl die dynamischen Übersichts-Seiten, als auch die dynamische Seiten-Navigation.

Die strickte Trennung verschiedener Content-Typen in unterschiedlichen Content-Apps ist für Autoren und Content-Manager erst einmal gewöhnungsbedürftig. Die Trennung kann jedoch auch Autoren bei der Strukturierung der Inhalte helfen. Technisch werden diese Content-Apps vom Entwickler frei erstellt, sodass je nach Anforderung einer Webseite unterschiedliche Inhalte wie Touren, Foren, Kontakte, Kategorien, Blog-Posts etc. passend modelliert und organisiert werden können.

Das Magnolia-Dashboard mit den Apps

Eine weitere Besonderheit von Magnolia sind die sehr ausgereiften Targeting-Funktionen, mit denen sich eine Webseite personalisieren lässt. Dabei können nicht nur ganze Seiten über verschiedene Seiten-Varianten personalisiert werden, sondern auch einzelne Inhalts-Komponenten auf einer Seite. Die Varianten kann der Content-Manager in der Pages-App erstellen.

Für die Personalisierung können unterschiedlichen Daten genutzt werden: Entweder explizite Nutzer-Angaben wie Alter oder Geschlecht (sogenannte Traits), oder implizite Daten, die durch das Tracking des Nutzerverhaltens gewonnen werden. Explizite und implizite Merkmale können auch kombiniert werden, um daraus Regeln für die Personalisierung abzuleiten oder ganze Segmente und Personas zu erstellen. Auf Grundlage dieser Regeln werden dann die unterschiedlichen Varianten der Inhalte ausgespielt. Die Anwendung solcher Personalisierungs-Funktionen ist nicht trivial. Content-Manager und Marketing-Verantwortliche können jedoch mit einfachen Regeln beginnen und sich langsam in komplexere Szenarien einarbeiten.

Insgesamt wirkt die Oberfläche von Magnolia im Vergleich zu anderen komplexen Systemen sehr aufgeräumt, modern und übersichtlich. Die grundsätzliche Bearbeitung von Webseiten ist erst einmal selbsterklärend. Für die eingebettete Seiten-Preview und für die Bearbeitungs-Formulare im Popup sind allerdings große Bildschirme angebracht. Etwas Einarbeitung erfordern sicherlich Konzepte wie die getrennten Content-Apps und die erweiterten Personalisierungs-Funktionen. Gemessen an der Komplexität und Flexibilität dieser Features wirkt die Handhabung allerdings immer noch erstaunlich intuitiv.

Magnolia für Entwickler

Magnolia hat erstaunlich wenige System-Anforderungen und ist vergleichsweise einfach zu installieren. Erforderlich ist lediglich eine Java Runtime Environment (JRE) in Version 8 oder höher. Eine Datenbank ist nicht nötig, da Magnolia, ähnlich wie AEM, Apache Jackrabbit und den Java Content Repository Standard (JCR) für die Speicherung von Inhalten nutzt, also mehr oder weniger ein File-System verwendet. Magnolia unterstützt jedoch auch Datenbanken wie MySQL ab Version 5.0 oder Oracle ab Version 10g Enterprise Edition. Ebenfalls ähnlich zu AEM werden bei der Installation zwei Web-Applikationen aufgesetzt, eine Author-Instanz und eine Public Instanz.

Auch sonst dürften sich Entwickler über die Nutzung weit verbreiteter Standard-Technologien freuen. Magnolia arbeitet im Kern mit einer REST-API, die bei Bedarf für die Erweiterung des Systems oder die Anbindung externer Software genutzt werden kann. Die API bietet Delivery-Endpunkte (Read-Only) zur Abfrage von Inhalten sowie Node- und Properties-Endpunkte mit CRUD-Methoden und Command-Endpunkte nur mit der POST-Methode an. Für die Konfiguration von API-Endpunkten nutzt Magnolia YAML-Dateien, ein vor allem bei Flat File Systemen weit verbreiteter Standard. Und ähnlich wie bei Flat File Systemen werden auch bei Magnolia YAML-Dateien für die Definition von Dialog-Feldern genutzt. Das kann bei Magnolia wie folgt aussehen, wobei in der neuen Magnolia-Version anstelle der langen Klassen-Namen auch einfach nur die kurzen Field-Typen (z.B. "textfield") angegeben werden können:

form:
  tabs:
    - name: tabText
      label: Text
      fields:
        - name: title
          fieldType: text          
          label: Title
actions:
  commit:
    class: info.magnolia.ui.dialog.action.SaveDialogActionDefinition
    label: Save
  cancel:
    class: info.magnolia.ui.dialog.action.CancelDialogActionDefinition
    label: Cancel

YAML-Definitionen werden bei Magnolia auch extensive für einen Light-Development-Ansatz genutzt. Bei diesem Ansatz können YAML-Dateien nicht nur für die Konfiguration von Templates verwendet werden, sondern auch für die Erstellung von sogenannten "Light Modules" als etwas begrenztere Alternative zu den klassischen Maven-Modulen, die in Java entwickelt werden. Auch wenn ein tiefes Eindringen in das Magnolia-System immer noch Java-Kenntnisse erfordert, können mit dem Light-Ansatz Web-Projekte auch ohne Java-Kenntnisse und nur mit Frontend-Technologien realisiert werden. Für ein komplexes Enterprise-System ist dieser Light-Ansatz ein ziemlich smarter Schachzug, um sich dem anhaltenden Trend hin zur Frontend-Entwicklung zu öffnen.

Für die Templates selber werden per Default die Template-Sprachen FreeMarker oder JSP verwendet, es können jedoch auch andere Template-Sprachen konfiguriert werden. Beim Templating dürften Entwickler also kaum große Überraschungen erleben.

Neben Modulen und Templates sind Apps der zentrale Baustein von Magnolia. Mit den Apps wird auch die Nutzeroberfläche (UI) organisiert. Neben den diversen mitgelieferten Apps von Magnolia können auch eigene Apps entwickelt oder bestehende Apps angepasst werden. Dabei kann es sich um Content-Apps als eigenständige Untergruppe handeln, genauso gut aber auch um Apps, mit denen sich externe Systeme an Magnolia anbinden lassen. Apps sind damit das Gegenstück von Magnolia zu den bekannten Plugin- oder Extension-Konzepten anderer Content Management Systeme. Für die App-Entwicklung steht ein eigenes App-Framework zur Verfügung.

Wie inzwischen fast alle Enterprise Content Management Systeme nutzt auch Magnolia seine API-Architektur für einen hypriden Headless-Ansatz. Damit entwickeln sich die Headless-Varianten immer mehr zu einem Standard-Feature innerhalb der Enterprise Welt.

Kosten und Lizenz

Magnolia wird in drei Ausführungen angeboten:

Zusätzlich gibt es noch die Cloud-Variante Magnolia Now.

Wie im Enterprise-Bereich üblich sind die Lizenzkosten von Magnolia nicht öffentlich und variabel. Sie richten sich nach verschiedenen Merkmalen wie Produkt-Typ (Standard oder Pro), Anzahl der Installationen oder Anzahl der User. Auf der Webseite kann über ein Formular eine Kosteneinschätzung angefordert werden.

Wann macht Magnolia Sinn?

Magnolia wird von zahlreichen großen Unternehmen aus allen Branchen eingesetzt. Generali, Avis oder Migros sind nur einige der großen Namen. Das Schweizer Handels-Unternehmen Migros verbindet man vielleicht in besonderem Maße mit Magnolia und so scheint im Handel auch ein Schwerpunkt von Magnolia zu liegen.

Dazu passen sicherlich die sehr ausgefeilten Personalisierungs-Funktionen, die Magnolia für Marketing-lastige Branchen geeignet erscheinen lassen. Durch die Core-Version in GPLv3-Lizenz ist Magnolia aber auch für kleinere Unternehmen interessant, die nach einer offenen Standard-Lösung im Java-Umfeld suchen.

Auch andere Experten lesen gerne gute Inhalte und freuen sich, wenn Du diesen Artikel zum Beispiel über Twitter teilst. Auf Twitter gibt es außerdem von @CMSstash tägliche Updates.

Zuletzt aktualisert: 23.11.2018