Content Management Systeme aus Sicht eines Entwicklers
Als Softwareentwickler und Spezialist für Content Management Systeme kennt Ingo Jäger die Tücken, Vorteile und Herausforderungen unterschiedlichster CMS-Lösungen. Im “Digitalmacher”-Interview zeigt Ingo die Unterschiede zwischen kommerziellen und Open-Source-Lösungen auf, beschreibt seine Erfahrung mit Magnolia CMS und erklärt, weshalb er nichts von Out-of-the-box-Lösungen hält.
Mit welchem CMS lassen sich Webportale am Besten umsetzen?
Ich habe sowohl mit Enterprise als auch Open-Source-Lösungen gearbeitet, wie DotCMS, Magnolia CMS, FirstSpirit oder auch an eigenen Entwicklungen, wie dem ATPS System, welches bei AOL Deutschland zum Einsatz kam. Jedes CMS ist anders und stellt spezifische Anforderungen. Aus Entwicklerperspektive spielt die zugrunde liegende Technologie, die bestehende Systemlandschaft und Schnittstellen und die zur Verfügung stehenden Entwicklerressourcen eine entscheidende Rolle, um Kundenwünsche umsetzen zu können. Ein kommerzielles Produkt ist nicht automatisch besser als eine Open-Source Software, nur weil es teurer ist.
Sind Open-Source-Lösungen den kommerziellen überlegen?
Darauf gibt es keine eindeutige Antwort. Beide Welten haben Vor- und Nachteile. Enterprise Systeme sind in der Regel auf dem Markt etabliert, besitzen einen Kundenservice mit Hotline und Ticketsystemen, an den man sich bei Fragen oder Problemen wenden kann und weisen in der Regel eine hohe Funktionsvielfalt auf. Diese Leistungen werden über Lizenzen abgedeckt.
Open-Source-Lösungen sind dagegen kostenfrei und werden durch eine große Community gepflegt und dokumentiert. Fragen und Probleme werden in der Regel schnell gelöst. Aus Entwicklersicht ist eine Open-Source Lösung interessant, da das System hochskalierbar ist und auf meine Bedürfnisse angepasst werden kann – sofern es für die Community interessant ist.
Nach welchen Kriterien wählst du das passende CMS aus?
Oftmals gibt der Kunden bestimmte Parameter vor, für die das passende Content Management System gefunden werden muss. Dazu zählen bestehende Systemlandschaften, in die das CMS eingebettet werden muss, Wünsche an die einzusetzenden Technologien wie Java oder PHP und nicht zuletzt die Vorlieben und das Know-how auf Kundenseite. Daher ist es sehr wichtig, dass die Anforderungen des Projektes vorab genau definiert werden. Welche Funktionen soll das CMS erfüllen? Wie skalierbar in Bezug auf die Last und Performance soll das Projekt sein? Welche Schnittstellen (ERP Systeme, Datenbanken, Warentools) müssen angebunden werden? Erst wenn solche grundlegenden Fragen geklärt sind, kann eine Auswahl getroffen werden.
Wie sind deine Erfahrungen mit dem Magnolia CMS?
Ich habe sowohl mit der kostenfreien als auch mit der Enterprise Lösung von Magnolia gearbeitet. Überzeugt hat mich vor allem die Magnolia Architektur, die einen unkomplizierten Austausch von Komponenten und eine alternative Implementierung verwendeter Standards ermöglicht.
Die Funktionalitäten sind modularisiert, wodurch sich der Funktionsumfang gut skalieren lässt. Auf diese Weise können spezielle Module nachträglich installiert, überflüssige Standard-Module entfernt und eigene Module erstellt werden.
In meinem letzten Projekt, bei dem wir toggolino.de für Super RTL auf Basis von Magnolia CMS umgesetzt haben, konnten wir beispielsweise als Persistenzschicht für Jackrabbit MySQL anstatt Filesystem oder Derby implementieren. Als Templating Engine haben wir Thymeleaf statt Freemarker oder JSP genutzt. Auch ein Austausch der JCR-Implementierung durch z. B. Modeshape statt Jackrabbit ist möglich.
Für die Integration eines Produktkataloges, wobei das Produkt ein spezifisches, vom Redakteur, bzw. Administrator konfigurierbares Club-Abonnement darstellt, ließ sich beispielsweise mit dem Konzept der Content Apps umsetzen, welches Anpassungen der JCR Workspaces sowie der Redaktions-GUI bei stark strukturierten, bzw. speziellen Inhalten erlaubt.
Der Einstieg in Magnolia CMS ist sehr einfach, da Magnolia CMS alle bekannten Standard-Open-Source-Technologien (Java, JCR / Jackrabbit, Vaadin, Spring usw.) verwendet. Sämtliche Magnolia-Sources (auch in der kostenpflichtigen Enterprise Edition) sind frei verfügbar und werden in der Regel durch das Magnolia Maven Repo (Nexus) bereitgestellt. Auch ein Zugriff auf die Magnolia Git Repositories ist möglich.
Durch die Kombination aus zur Verfügung stehender Technologien und Sources auf der einen Seiten und den flexiblen Gestaltungsmöglichkeiten auf der anderen Seite, lässt sich das Magnolia CMS beliebig anpassen und in die Entwicklungs-Workflows integrieren.
Als etwas Nachteilig habe ich das EE-Bundle von Magnolia empfunden, mit dem eine ganze Reihe von Modulen mitausgeliefert und installiert werden, die für unser Projekt nicht relevant waren. Leider ist zumindest auf den ersten Blick überhaupt nicht klar ist, welche Abhängigkeiten es zwischen den einzelnen Modulen untereinander gibt, so dass es sehr zeitaufwendig ist nicht benötigte Funktionalitäten / Module nachträglich wieder zu entfernen. Zudem wird das komplette Redaktions-, bzw. Admin-GUI ausschließlich als Website im Browser bereitgestellt. Das bietet zwar große Vorteile bezüglich der Plattformunabhängigkeit, aber stößt bezüglich Benutzer-Komfort (z.B. bei Drag & Drop Features) und Performance gelegentlich an gewisse Grenzen.
Was sollte ein gutes CMS aus deiner Sicht als Softwareentwickler mitbringen?
Das wichtigste Kriterium für die Bewertung eines CMS aus Entwicklersicht ist die Flexibilität und Anpassbarkeit eines Systems hinsichtlich der Integration in bestehende System-Landschaften, der Interaktion mit anderen System-Komponenten, sowie mit externen Systemen (Schnittstellen für Import und Export von Daten) und der Implementierung zusätzlicher kundenspezifischer Funktionalitäten.
Die perfekte Out-of-the-box-Lösung existiert im Umfeld komplexer Enterprise Systeme meiner Meinung nach nicht, weder bei kommerziellen Produkten noch im Open-Source-Bereich. Es wird immer zusätzlichen Anpassungs- und Individualisierungsbedarf geben. Die Herausforderung besteht darin, das CMS zu finden, welches im Rahmen der spezifischen Kunden- und Projektanforderungen die größten Anteil der gestellten Anforderungen abdeckt und dementsprechend die geringste Anzahl von Funktionslücken offenbart.
Welche sonstigen Technologien interessieren dich in Zusammenhang mit CMS-Systemen?
Grundsätzlich interessieren mich Software-Lösungen, die für die Integration eines CMS in ein heterogenes-Multi-Komponenten-System von Bedeutung sind, z.B. Messaging-Server-Lösungen (RabbitMQ) oder auch Technologien, die sich mit REST beschäftigen, wie beispielsweise Apache Sling. Außerdem finde ich das Thema OR-Mapping grundsätzlich recht spannend (Hibernate, Spring Data).
Veröffentlichung am 16. Juni 2015, aktualisiert am 09. Oktober 2020