Wikipedia · einfach zusammengefasst · Stand
Content-Management-System
Ein Content-Management-System (kurz CMS, deutsch Inhaltsverwaltungssystem) ist eine Software oder ein Service zur gemeinschaftlichen Erstellung, Bearbeitung …
Inhalt5 Abschnitte
Definition und Bedeutung
Ein Content-Management-System (CMS, deutsch Inhaltsverwaltungssystem) ist eine Software oder ein Service zur gemeinschaftlichen Erstellung, Bearbeitung, Organisation, Darstellung und Auslieferung digitaler Inhalte. Diese Inhalte können in Webseiten, Apps, Digital Signage und anderen Medienformen verwendet werden.
An einem CMS arbeiten unterschiedliche Nutzergruppen: Autoren verwalten und veröffentlichen Inhalte, das Publikum nutzt sie, Entwickler passen Funktionen an und der Betrieb sorgt für eine sichere und zuverlässige Nutzung. In größeren Unternehmen können zusätzliche Rollen für Planung und die Einhaltung von Unternehmenszielen hinzukommen. Umfang, Architektur und Zuständigkeiten unterscheiden sich je nach System; manche Aufgaben werden an andere Software übertragen.
Die Qualität eines CMS zeigt sich besonders daran, ob Leser, Autoren, Entwickler und Betrieb das System unabhängig und ohne Unterbrechungen nutzen können. Deshalb sind Ausfallsicherheit und Skalierbarkeit, also die Fähigkeit, auch bei wachsender Belastung zuverlässig zu funktionieren, für viele größere Systeme wichtig. Viele CMS speichern Inhalte medienneutral, sodass sie neben HTML auch für andere Medienformate genutzt werden können. Üblich sind relationale Datenbanken; daneben gibt es Flat-File-CMS mit Speicherung in Dateien sowie hochskalierbare Systeme mit Filehosting.
Im Januar 2023 hatte WordPress unter den Web-CMS in Deutschland einen Marktanteil von über 63 %. Weitere bekannte und häufig verwendete Systeme waren Joomla, TYPO3, Drupal, Wix.com, Shopify und Adobe. Der Begriff CMS wird meist für Web-Content-Management-Systeme (WCMS) verwendet, obwohl es auch Systeme für Print, Radio und unternehmensinterne Lösungen wie Enterprise-Content-Management gibt.
Funktionen und redaktionelle Arbeit
Ein CMS ordnet Inhalte und Nutzer in einem geregelten Verfahren. Zu den grundlegenden Funktionen gehören:
- verschiedene Rollen, Verantwortlichkeiten und Content-Kategorien oder -Typen festlegen;
- Nutzer und ihre Rollen identifizieren;
- Verarbeitungsprozesse als Workflow definieren;
- Verantwortliche bei Änderungen an Inhalten benachrichtigen;
- mehrere Versionen einer Unterlage verwalten;
- Inhalte semantisch ordnen und in einer Ablage, etwa einer Datenbank, veröffentlichen;
- Inhalte aus anderen Arbeitsumgebungen importieren oder dorthin exportieren;
- große Inhaltsmengen und verschiedene Formate effizient bearbeiten;
- responsives Webdesign, Personalisierung durch Content Targeting, Webreporting, Mehrsprachigkeit und Suchmaschinenoptimierung mit Metadaten für Suchergebnisse unterstützen.
Die Hauptaufgabe ist die zielgruppengerechte und barrierefreie Darstellung von Text- und Multimediainhalten auf unterschiedlichen Geräten. Darstellung und Datenquellen werden durch Skins beziehungsweise Vorlagen getrennt. Responsive Skins passen sich an Smartphones und andere Geräte an; alternativ kann eine mobile Website angeboten werden. Auch eine gut druckbare Version soll möglich sein.
Zusätzlich können Sprachversionen, Währungen, Preise, rechtliche Informationen, Veröffentlichungsdatum, Autor und Inhaltsverzeichnis eingebunden werden. Inhalte lassen sich mehrfach verwenden, etwa durch Transklusionen. Externe Datenquellen wie Kalender, Karten oder Nutzerdaten können über APIs und Webservices eingebunden werden. Das CMS kann Inhalte nach Kategorien, Zeitpunkten oder Ähnlichkeit aggregieren und sie als Atom-, RSS- oder JSON-Ausgabe für andere Dienste bereitstellen. Das Content-Life-Cycle-Management ermöglicht zeitlich begrenzte Veröffentlichung und automatische Archivierung. Integrierte oder externe Suchmaschinen durchsuchen die Website; OpenSearch erlaubt den Zugriff auf die Suchfunktion auch von außerhalb.
Das Erstellen und Bearbeiten geschieht meist online im Backend oder direkt in der Darstellung (Inline Editing beziehungsweise In Place Editing). Je nach System und Kenntnissen stehen WYSIWYG-Editoren, Texteditoren, Markdown oder HTML zur Verfügung. Vorschaufunktionen zeigen die endgültige Darstellung. Assistenten helfen beim Einfügen von Hyperlinks, Grafiken und anderen Elementen. Eine Versionsverwaltung archiviert und protokolliert den Erstellungsprozess und ermöglicht die Wiederherstellung älterer Versionen.
Bearbeiter müssen sich authentifizieren und erhalten anhand eines Berechtigungskonzepts bestimmte Rollen. Artikel können beispielsweise von Editoren angelegt, aber erst von Administratoren freigeschaltet werden. Hierarchische oder bereichsbezogene Rechte bilden einfache Freigaben nach dem Vier-Augen-Prinzip ebenso ab wie komplexe Workflows mit Autoren, Editoren und Webmastern. Solche Systeme werden auch als Redaktionssysteme bezeichnet.
Bei Blogs und anderen Social-Media-Webseiten können Nutzer Gästebucheinträge, Kommentare und Trackbacks hinterlassen. Bei User-generated Content vermischen sich Nutzerinteraktion und Inhaltserstellung. Gegen Suchmaschinen-Spamming werden unter anderem Captchas, nofollow und DNS-based Blackhole Lists eingesetzt.
Technik und Erweiterbarkeit
CMS sind größtenteils plattformunabhängig, weil sie in Skriptsprachen oder Java entwickelt werden. Zu den verwendeten Skriptsprachen zählen PHP, Ruby, Perl, Python und JavaScript. Gängige Webserver wie Apache, IIS und nginx unterstützen diese Sprachen. ASP.NET benötigt zusätzlich das .Net-Framework oder mono.
Inhalte werden häufig in Datenbanken gespeichert, weil diese schnelle Zugriffe und Datenbankindizes für Kategorien, Listen und Feeds ermöglichen. MySQL wird praktisch von allen CMS unterstützt; außerdem werden PostgreSQL und Microsoft SQL Server verwendet. Kleinere Systeme können Inhalte auch in Textdateien speichern. Das CMS verbindet Inhalte mit Formatvorlagen und übergibt sie an den ausliefernden Webserver. Architektonisch wird meist das Muster Model View Controller verwendet. Die eng verbundenen Softwarebestandteile werden oft gemeinsam installiert; bei Open-Source-CMS dienen LAMP und für Entwicklungsumgebungen XAMPP als Bundles.
CMS laufen auf Hosts und werden entweder selbst betrieben oder von Hostern als Webhosting beziehungsweise Application Service angeboten. Erweiterungen erfolgen häufig über Plug-ins, serverseitige Hooks und clientseitige Standardbibliotheken wie jQuery. Aufgaben wie Weiterleitungen, Clean URLs, Permalinks und 404-Fehlerseiten können vom CMS gemeinsam mit dem Webserver übernommen werden. Mandantenfähigkeit erlaubt den Betrieb mehrerer unabhängiger Webseiten. Wenn ein System darüber hinaus komplexe Funktionen abbildet, spricht man von einer Webanwendung.
Ein Content-Management-Framework (CMF) ist ein Framework zur Entwicklung von CMS. Es stellt wiederverwendbare Bausteine bereit, etwa Zugriffsschutz, Datenbankschnittstelle, Template-Engine und Suchfunktionen. Die meisten CMF sind in Skriptsprachen umgesetzt und dienen vor allem der Entwicklung netzbasierter CMS. Beispiele sind ProcessWire, SilverStripe, Drupal, MODX, TYPO3 und Zope.
Website-Baukästen
Ein Website-Baukasten ist eine Sonderform des Web-Content-Management-Systems. Er ermöglicht die vergleichsweise einfache Erstellung einer Website, hat gegenüber klassischen WCMS oder Enterprise-Content-Management-Systemen aber einen eingeschränkten Funktionsumfang. Meist wird er von einem Application Service Provider bereitgestellt und über einen Webbrowser bedient, sodass keine Installation beim Anwender nötig ist.
Design und Inhalte sind durch Templates, also Design-Vorlagen, weitgehend getrennt. Dadurch kann das Design gewechselt werden, ohne die Seiten neu zu erstellen. Der Anbieter stellt normalerweise eine Auswahl an Templates bereit; manche Systeme erlauben auch individuelle Vorlagen. Typische Zielgruppen sind private Anwender, Vereine, Kleinunternehmen und Ortsverbände großer Organisationen. Der Hauptzweck ist die schnelle und preiswerte Erstellung und Aktualisierung einfacher Internet-Präsenzen. Branchenspezifische Baukästen bieten zunehmend passende Navigations-, Text- und Bildvorschläge sowie rechtlich vorgeschriebene Elemente wie Impressum und Datenschutzerklärung.
Online-Baukästen laufen auf den Servern des Anbieters. Nutzer benötigen ein Benutzerkonto; der Anbieter stellt Webspace und eine Subdomain oder Domain bereit. Die Bearbeitung erfolgt im Browser und meist in Echtzeit als WYSIWYG-Darstellung. Die fertige Website wird überwiegend beim Anbieter gehostet, manchmal aber als statifizierte HTML-Seiten exportiert.
Offline-Baukästen werden lokal auf dem eigenen Rechner installiert. Der Anbieter liefert dabei in der Regel nur die Bearbeitungssoftware; Hosting und Domain muss der Nutzer selbst organisieren. Als Beispiel werden kostenlose Programme wie Mobirise genannt.
Sicherheit und Formen der Seitenauslieferung
Die große Verbreitung von CMS und ihre vielen Funktionen führen dazu, dass regelmäßig Sicherheitslücken entdeckt werden. Für die Jahre 2002 bis 2015 wurden als Common Vulnerabilities and Exposures 143 Lücken in Drupal, 170 in Joomla!, 179 in TYPO3 und 205 in WordPress eingetragen. Solche Schwachstellen können als Einfallstor für Hackerangriffe dienen.
Eine Sicherheitsstudie des BSI aus dem Jahr 2013 untersuchte Drupal, Joomla!, Plone, TYPO3 und WordPress. Für einen sicheren Betrieb sind neben der Sicherheit der Software auch eine korrekte Konfiguration und ein angemessenes Systemmanagement wichtig. Die untersuchten Open-Source-Projekte verfügten nach der Studie über Sicherheitsprozesse, veröffentlichte Releasepläne und transparente Bugtracker. Keines der Systeme sollte jedoch unbeobachtet oder ohne Fachkenntnisse betrieben werden. Für das Szenario „Private Event Site“ wurde empfohlen, statt einer eigenen Website einen professionellen Dienstleister zu nutzen. Der Klassifizierungsabschnitt des Artikels weist außerdem darauf hin, dass nicht alle Angaben ausreichend belegt sind.
CMS unterscheiden sich auch danach, wie Seiten ausgeliefert werden:
-
Volldynamische Systeme erzeugen jedes angeforderte Dokument neu. Vorlagen und Inhalte werden erst beim Aufruf zusammengeführt. Die Seite ist dadurch aktuell und Personalisierung ist einfach. Die wiederholte Berechnung kann bei hoher Last die Auslieferung verzögern oder den Server überlasten; Caching kann die Last verringern.
-
Statische Systeme erzeugen aus Vorlagen und Inhalten einfache HTML-Dateien, die im Dateisystem oder in einer Datenbank liegen. Der Webserver kann sie ohne ASP, JSP oder PHP direkt ausgeben. Das ermöglicht hohe Geschwindigkeit, geringe Serveranforderungen und eine hohe Sicherheit gegen Angriffe. Wenn später dynamische Funktionen benötigt werden, kann die Portierung auf ein dynamisches System aufwendig sein.
-
Hybride Systeme verbinden beide Verfahren. Nicht ständig veränderte Bestandteile wie Seitengerüst, Navigation, bestimmte Texte und Bilder liegen statisch vor. Nur dynamische Bestandteile, etwa Nachrichten, Suchabfragen, personalisierte Inhalte oder Shopdaten, werden zur Laufzeit aus der Datenbank geladen.
-
Halbstatische Systeme speichern alle Daten in statisch erzeugten Dateien, die beim Abruf sofort ausgegeben werden. Dynamische Inhalte entstehen, wenn Programmcode in eine Datei eingebunden wird oder einzelne Datensätze geändert beziehungsweise neu angelegt werden.