Einführung
Content-Management-Systeme unterscheiden sich unabhängig von der Plattform massgeblich im Ansatz der Seitengenerierung. Werden die Seiten während der Abfrage dynamisch erzeugt oder handelt es sich beim Abrufen der Seiten um eine dynamisch erzeugte statische "Kopie"? Der erste Ansatz hat sich bei den modernen und technisch anspruchsvollen Systemen durchgesetzt.
Innerhalb dieser sog. dynamischen Systeme, zu denen contentserver zählt, gilt es weiterhin zu unterscheiden, wie dort die Leseberechtigungen Einfluss auf die Seitengenerierung nehmen. Auch hier gibt es wieder zwei Varianten. Unterschieden werden muss, ob die Leserechte nur insofern Einfluss nehmen, dass auf die gesamte Seite Zugriff besteht, oder wie die Seite in Abhängigkeit der Leserechte aussieht bzw. welcher Inhalt in der Seite angezeigt wird.
contentserver steuert nicht nur den globalen Zugriff auf einzelne Seiten, sondern unterscheidet auch innerhalb der Seiten, welche Inhalte in Abhängigkeit der Leserechte anzuzeigen sind. Nicht zuletzt dadurch eignet sich contentserver ideal zum Aufbau von komplexen Intranet- und Extranet-Anwendungen.
Caching
Eine Schwierigkeit beim dynamischen Ansatz ist es, "akzeptable" Antwortzeiten garantieren zu können. Dies führt zwangläufig zu der Frage nach geeigneten Caching-Strategien. Das CMS soll nur Anfragen dynamisch beantworten, die nicht bereits beantwortet wurden - unter Berücksichtigung auch der Leseberechtigung des Anfragenden und eventueller Inhaltsänderungen.
Klassische "Out-of-the-Box"-Ansätze wie "Reverse-Proxying" können solche komplexen Probleme nicht lösen.
contentserver ist daher mit einem eigenen "Application-Proxy" (Cache) ausgestattet. Dieser ermöglicht es, jedes Template mit sog. Zeitscheiben zu versehen. Diese Zeitscheiben geben den Zeitabschnitt vor, während dem "gleiche" Anfragen aus dem Cache ausgegeben werden.
Der Cache unterstützt völlig transparent die Leserechte und Ablauffristen der einzelnen Seiten. Er erkennt selbständig die einzelnen Abhängigkeiten der angezeigten Inhalte und verwirft bei Inhaltsänderungen auch die indirekt betroffenen Seiten automatisch aus dem Cache.
Am Beispiel einer typischen Einstiegseite einer Webanwendung zeigt sich diese Stärke deutlich:

Auf der Startseite (links) wird auf Unterseiten (rechts) verwiesen, deren Inhalte als Vorschau angezeigt eerden. Werden nun zum Beispiel die Inhalte der rechten Seite verändert oder die Inhalte verlieren ihre Gültigkeit (Publikationsfrist), so wirkt sich das direkt auch auf die gecachten Inhalte der Startseite (links) aus. Die Cache-Inhalte der Startseite werden in diesem Fall verworfen.
Zusätzlich erlaubt diese Lösung auch, einzelne Code-Fragmente innerhalb der gecachten Ausgabe volldynamisch im Kontext des Benutzers ablaufen zu lassen ("Fragment Cache" bzw. "Partial Page Cache"). Durch diese Fähigkeit werden auch stark personalisierte Anwendungen "cachebar".
Desweiteren unterstützt contentserver das "Cachen" von Binär-Dateien, was u.a. dafür sorgt, dass einmal skalierte oder manipulierte Bilder über den
integrierten Bildeditor
nicht permanent neu berechnet werden müssen. Auch dort erkennt der Cache automatisch Veränderungen und sorgt dafür, dass sich keine überholten Bilder im Cache befinden.
Performance
Das Ergebnis dieser einmaligen Kombination aus dynamischer Seitengenerierung und intelligentem Caching sind Antwortzeiten, die denen statischer Webauftritte entsprechen. So werden auf kostengünstiger Hardware überzeugende Seitendurchsätze erzielt.
Exemplarische Konfiguration
- Pentium III XEON 550 MHz
- 100 MBit Ethernet
- 1 GB RAM
- Cache Timeout: 1 Minute (d.h. Cache-Files, die älter als 1 Minute sind, gelten als invalide und müssen aktualisiert werden)
Erzielte Ergebnisse
- ca. 1500 Requests/Sekunde
- ca. 130 Mio. Requests/Tag
- deutlich < 1 Sek. "Time to first Byte"
- Sättigungsgrad Fast Ethernet wird erreicht.
API Schnittstelle
Dem Entwickler stellt das Cache-API zusätzlich die vollständige Kontrolle über den Cache zur Verfügung. So können z.B. über Eventhandler bestimmte Cache-Files gelöscht aber auch proaktiv generiert werden. Über die API lassen sich auch die Verbindungen bzw. Abhängigkeiten einzelner Artikel (Webseiten) erfragen und verarbeiten.
Internet World Award
Die Caching-Technologie des contentserver galt schon 2002 als führend und wurde seither kontinuierlich verbessert. Auf der "Internet World 2002" in Berlin wurde contentserver dafür ausgezeichnet: Die Software erhielt den dritten Preis in der Kategorie "Bestes Produkt".