Sie sind auf Seite 1von 2
Michael Ablass TYPO3 und Oracle LESEPROBE Praxisbericht: Umsetzung eines Intranets für 800 Mitarbeiter Die neuen Intranet-

Michael Ablass

TYPO3 und Oracle

LESEPROBE

Praxisbericht: Umsetzung eines Intranets für 800 Mitarbeiter

Die neuen Intranet- und Internetseiten für die Mitarbeiter eines Berliner Forschungsinstituts wurden mit TYPO3 und Oracle umgesetzt. Weitere Anforderungen waren ein intelligenter statischer Seitenexport, eine verbesserte Mediendatenbank und eine stark vereinfachte Nutzung der Live- und Entwurfsumgebung über TYPO3-Workspaces. Letztlich konnten alle diese Stolpersteine aus dem Weg geräumt werden.

Pflichtenhefte offenbaren oft viele Überraschungen. Im vorlie- genden Beispiel lag eine der größten Herausforderungen darin, TYPO3 mit Oracle als Datenbank zu betreiben. Neben dieser An- bindung fanden sich viele kleine und große Wünsche für Ände- rungen an TYPO3, seinen Erweiterungen oder für neue Erweite- rungen. Nach Projektabschluss kamen so knapp 100 reine Kern- oder Extensionpatches, ein Dutzend neue Erweiterungen und eine komplette Überarbeitung des DBAL (Datenbank-Abstrakti- onslayer) sowie des Workspacesystems zusammen.

TYPO3 mit Oracle

Die TYPO3-Featureliste und diverse Publikationen suggerieren, dass TYPO3 praktisch mit jeder Datenbank funktionieren kann. Hierfür existiert der DBAL von Karsten Dambekalns, der als Binde- glied zwischen TYPO3 und anderen Datenbankwelten fungieren soll. Um keine falsche Kritik aufkommen zu lassen: Betrachtet man die Applikationsstruktur des derzeitigen TYPO3 bleibt praktisch nur der DBAL, um fremde Datenbanken an TYPO3 anzudocken. Das bringt in seiner aktuellen Ausbaustufe allerdings noch viele Probleme mit sich. Das gilt zum Beispiel, wenn die Datenbank (wie eben Oracle) nicht größtmöglich kompatibel mit dem MySQL- Sprachschatz ist oder komplexere Anfragen benötigt werden. Oracle wird vom DBAL laut Spezifikation zwar unterstützt, den- noch scheitert ein Versuch, TYPO3 mit Oracle zu verbinden spä- testens dann, wenn Standarderweiterungen wie TemplaVoila, die Mediendatenbank oder „tt_news“ eingesetzt werden sollen. Nach dem Entfernen verschiedenster Fehler und der Beach- tung einer großen Anzahl von Oracle-Besonderheiten wurde schnell klar, dass die überarbeitete Version des DBAL zukünftig nur noch für Oracle sinnvoll nutzbar sein wird. Neben dem DBAL musste weiterhin praktisch jede Erweiterung ausführlich auf mög- liche Inkompatibilitäten hin geprüft werden. Sehr oft wurden dann Datenbankanfragen generalisiert oder konkret auf Oracle umgeschrieben.

Oracle und Geschwindigkeit

Die Nutzung des DBAL bedeutet grundsätzlich einen Performan- ceverlust, da jede Anfrage durch ein Zwischensystem geleitet und dort bearbeitet wird. Dieser Verlust wurde auf zwei Arten mini- miert. Zum einen wurde der PHP-Beschleuniger „eAccelerator“ [1] eingesetzt und zum anderen dem DBAL ein Zwischenspeichermodul spendiert, damit ein großer Teil der An- fragen nicht neu berechnet werden muss. Der Hauptverlust an Performance tritt jedoch interessanter- weise bei jedem Aufruf im PHP-Oracle-Treiber auf, was sich durch Profiling schnell nachweisen lässt. Hier sind die Möglichkeiten der Einflussnahme gering bis gar nicht vorhanden. Ein guter Weg, um der Seitenausgabe von TYPO3 in dieser Konstellation noch Geschwindigkeit abzuringen, ist die Nutzung

von separaten Frontend-Caches (auf Ausgabe- oder Datenbank- basis). Schließlich bedeutet jede Anfrage, die nicht an die Daten- bank gestellt wird, einen Geschwindigkeitsvorteil. Aufgrund des statischen Exports war dies für dieses Projekt jedoch nicht nötig. Es wäre im Umkehrschluss sogar hinderlich gewesen. Im Backend macht das Zwischenspeichern von Seiten oder Daten wiederum nur wenig Sinn, denn der Redakteur will die aktuellen Inhalte se- hen. Im Rückblick bleibt zu sagen: Dieses Projekt hat den Beweis angetreten, dass man mit den aktuellen Techniken ein stabiles TYPO3 mit einer Oracle-Datenbank als Datenquelle aufsetzen kann. Allerdings ist die Geschwindigkeit selbst eines optimierten Systems nicht mit dem eines MySQL-TYPO3 vergleichbar.

Ein Freigabesystem für jedermann

Michael Ablass TYPO3 und Oracle LESEPROBE Praxisbericht: Umsetzung eines Intranets für 800 Mitarbeiter Die neuen Intranet-

Aufgeräumt zeigt sich das überarbeitete Freigabesystem.

Nächster zu bearbeitender Punkt: Das TYPO3-Freigabesystem überzeugt aus Sicht eines Redakteurs nicht unbedingt durch seine übersichtliche und einfache Bedienung. Im Projektverlauf stellte sich dies sehr schnell als Handicap heraus. Aus diesem Grund sollte das Modul einer „Schönheitskur“ unterzogen werden. Im Gegensatz zu den ursprünglichen Workspaces wurde die Übersichtsdarstellung stark vereinfacht – weniger ist eben oft mehr. Das Freischalten von ganzen Seitenbäumen statt nur ein- zelner Elemente stand als nächstes Feature auf der Tagesordnung. Berechtigungen des Redakteurs spiegeln sich in der Ansicht nun ebenfalls wieder. Das Workflowsystem für den Freigabeprozess musste auch abspecken, wurde jedoch parallel um eine verfeiner- te Eingabemaske für Informationen an den „Chefredakteur“ er- weitert. Die Vorschau von Seiten aus dem Workspace erfuhr eine Vereinfachung und erhielt eine intuitivere Lösung für das Frei- schalten. Nebenbei kann der Redakteur in der Voransicht nun zwischen „Splitscreen“ und „Vollansicht“ wählen.

LESEPROBE Die Schulungen nach Projektabschluss zeigten schnell, dass die Änderungen am Freigabemodul bei den Redakteuren gut

LESEPROBE

Die Schulungen nach Projektabschluss zeigten schnell, dass die Änderungen am Freigabemodul bei den Redakteuren gut auf- genommen wurden. Konkret heißt das, dass das System ohne größere Nachfragen einfach genutzt wurde.

Berechtigungen fürs Medienmanagement

Eine andere Herausforderung war das Mediendatenbank-Modul von TYPO3. Es ist zwar eine großartige Möglichkeit, größere Me- dienmengen zu verwalten. Allerdings sind die Möglichkeiten zur Rechtevergabe nur rudimentär und beschränken sich auf die Ka- tegorien. Aus diesem Manko ergab sich der Wunsch nach einstell- baren Backend-Berechtigungen für jedes einzelne Medium. Die Grundidee des Systems lehnt sich am TYPO3-Berechti- gungssystem an. Hierzu wurde das vorhandene DAM-Modul um die Berechtigungen Lesen, Schreiben und Löschen pro Medium erweitert. Ein spezielles Untermodul sorgt für eine komfortable Verwaltung der Rechte. Doch damit noch nicht genug: Es wurde ein DAM-Administrator eingeführt: Dieser darf alle Medien ver- walten, während der normale Redakteur nur Medien nutzen kann, auf die er auch Zugriff hat. Die Berechtigungen ziehen sich bis in die Dateiliste des Rich-Text-Editors durch. Nachträglich wurde das Prinzip zusätzlich auf die DAM-Verzeichnisse ausgedehnt.

LESEPROBE Die Schulungen nach Projektabschluss zeigten schnell, dass die Änderungen am Freigabemodul bei den Redakteuren gut

Auflistung der Backend-Berechtigungen eines DAM-Verzeichnisses.

Mit dem Backend-Berechtigungssystem für Medien erhielt die Mediendatenbank eines der wenigen wirklich noch fehlenden Features. In der Praxis muss sich jedoch jeder Betreiber einer TYPO3-Installation die Frage stellen, ob der durch Medienberech- tigungen erzeugte Zusatzaufwand wirklich in einer sinnvollen Relation zum Nutzen steht.

Wohin mit all dem Wissen?

Im Laufe von längeren Projekten wie diesem wird in der Regel viel Wissen generiert. Im günstigsten Fall wird dieses Wissen schon während der Umsetzung konserviert. Neben dem Wissen, wie et- was funktioniert, zählen vor allem auch konkrete Lösungsansätze zu den Informationen, die auch nach Projektende zum Beispiel für den Kunden verfügbar gehalten werden sollten. Insbesondere bei umfangreichen Änderungen am TYPO3- Kern und parallel an vielen Erweiterungen ist die Nutzung eines

Versionsverwaltungssystems für das gesamte Projekt (auch den Kern) unabdingbar. Spätere Upgrades werden damit erleichtert und vor allem Änderungen und Fehlerkorrekturen nachvollzieh- bar gemacht. Erklärungen zu komplizierteren Zusammenhängen sind in Wikis gut aufgehoben. Damit dieser Wissenspool nicht zur Einbahnstraße wird, sollte auch im stressigen Agenturalltag auf die Rückführung nicht nur geachtet, sondern diese bestenfalls in den normalen Arbeitsablauf eingebettet werden. Neu erzeugte Erweiterungen an die TYPO3-Gemeinschaft zu geben, gehört ebenfalls zu den Tugenden von TYPO3-Agenturen. Insbesondere die Erweiterung zur Zugriffsberechtigung der DAM sowie den hier noch nicht genannten DAM-Stichwortmanager wird man in Kürze auf typo3.org finden. Selbiges erfolgt auch beim Oracle-DBAL. Hier steht jedoch vorher noch ein gründliches Auf- räumen des Sourcecodes an.

Intelligenter statischer Export

Letzte Herausforderung: Um vorhandene Berechtigungsmecha- nismen und (so außergewöhnlich es klingen mag) altgediente SSI- Mechanismen weiter nutzen zu können, sollten alle Seiten statisch exportiert werden. Als Nebeneffekt wurde dadurch eine hohe Per- formance der Seitenausgabe gesichert. Für den Export standen vorhandene TYPO3-Erweiterungen für statische Exports Pate: „crawler“ und „staticpub“. Dennoch waren die Anforderungen so konkret, dass eine Neuimplementierung als TYPO3-Kommandozeilen-Programm nötig wurde. Im Grunde sollte das Programm einfach alle Seiten auslesen, Pfade modifizieren, Module wie Newssysteme beachten und das Ergebnis in einem Verzeichnis ablegen. Erschwerend kamen je- doch die geplante hohe Anzahl von Seiten (mehrere tausend) und der Wunsch eines Exports möglichst in Echtzeit dazu. Deshalb wurde ein intelligenter Mechanismus notwendig, der die zu ex- portierenden Seiten erkennen kann und dann dem Robot kon- krete Seiten zum Verarbeiten gibt. Bestimmte Änderungen an Seiten ziehen leider den Export von weiteren Seiten mit sich: So müssen beispielsweise beim Up- date des Seitentitels einer Seite automatisch auch alle Seiten geändert werden, die in direktem Bezug zu dieser Seite stehen (zum Beispiel Inhalt und Navigation). Hierfür gab es den Ansatz, mit TYPO3-Hooks zu arbeiten, die erkennen, welche Seiten tat- sächlich exportiert werden müssen. Allerdings entschied sich der Auftraggeber für eine andere Lösung, die er selbst implementier- te: Die Datenbank selbst sollte über komplexe Triggeranweisun- gen erkennen, welche Seiten tatsächlich exportiert werden müssen. Neben den einfachen Seiten werden vom Exportsystem auch News, Start- und Stoppzeiten sowie Sprachen berücksichtigt. Erst die Intelligenz hinter dem Robot sorgt dafür, dass auch bei einer tausende Seiten großen TYPO3-Installation einzelnen Seiten oder Bereiche gefahrlos separat exportiert werden können.

Links und Literatur

LESEPROBE Die Schulungen nach Projektabschluss zeigten schnell, dass die Änderungen am Freigabemodul bei den Redakteuren gut

Softlink 2140

[1]

PHP-Beschleuniger eAccelerator: http://eaccelerator.net

DER AUTOR

Michael Ablass ist geschäftsführender Gesellschafter der 1998 gegründeten TYPO3-Spezial-Agentur Netresearch GmbH & Co. KG (www.netresearch.de). Er

Michael Ablass ist geschäftsführender Gesellschafter der 1998 gegründeten TYPO3-Spezial-Agentur Netresearch GmbH & Co. KG (www.netresearch.de). Er verantwortet die Bereiche Software-Ent- wicklung und Projektmanagement. Ne- tresearch verfügt über langjähriges Kow- how in den Bereichen TYPO3, PHP sowie Zend Framework und wird als Spezialist von anderen Agenturen beauftragt.