TYPO3 4.0: TER 2.0

Der Code-Basar in neuem Glanz

Das TER (TYPO3 Extension Repository) wird oft als das Herz des TYPO3-Projekts angesehen. Die Plattform, die Kasper Skårhøj Ende 2002 zusammen mit TYPO3 3.5.0 veröffentlichte, dient als zentraler Austauschpunkt für die mehr als tausend Erweiterungen, die von Mitgliedern der Community entwickelt wurden. Der umfangreiche Dokumentationsbereich, der durch das TER bereitgestellt wird, ist der am häufigsten besuchte Bereich auf typo3.org.

Seit der Entwicklung des TER hat sich die Community stark vergrößert und der Erfolg von TYPO3, der sich nicht zuletzt durch den einfachen Austausch von Erweiterungen begründet, hat die Zugriffszahlen stetig steigen lassen. Wie sich bald herausstellte, war das Repository dem Ansturm der 25.000 registrierten Nutzer nicht mehr gewachsen. Die in der Datenbank gespeicherten Erweiterungen nehmen zurzeit eine Größe von mehr als 1,7 Gigabyte ein – kein Leichtgewicht bei tausenden von Anfragen jeden Tag. Ein neues Repository soll hier Abhilfe schaffen und, aufbauend auf ein neues Konzept, auch neue Möglichkeiten bieten.

Auf der T3BOARD05 (TYPO3-Snowboard-Tour 2005) entstand zusammen mit Michael Hirdes und Karsten Dambekalns ein erster Entwurf [1] zur Restrukturierung des TER. Die wichtigsten Anforderungen an ein neues System waren Schnelligkeit, Ausfallsicherheit und Erweiterbarkeit. Im Juli 2005 startete die Umsetzung des Konzepts, nachdem die Karlsruher Firma punkt.de sich bereit erklärte, die Entwicklung des TER 2.0 finanziell zu unterstützen.

Die Implementierung des ursprünglichen Repositories entpuppte sich durch die intensiven Datenbankzugriffe im Laufe der Zeit als schlecht skalierbar. Um das TER ausfallsicher zu gestalten, musste außerdem eine Lösung geschaffen werden, die es auf einfache Weise ermöglicht, das Repository auf andere Server zu spiegeln. Das TER 2.0 speichert deshalb alle Erweiterungen als Dateien in einer Verzeichnisstruktur (s. Abb.). Beim Entwurf dieser Lösung stand unter anderem das ebenfalls dateibasierte Debian Package System Pate.

Extension Manager mit SOAP-Anbindung

Auch die internen Abläufe haben sich deutlich verändert. Um eine Erweiterung in das neue Repository hochzuladen, ruft nun eine angepasste Version des Extension-Managers eine bestimmte Funktion des TER 2.0 per SOAP-Schnittstelle auf. Der SOAP-Server nimmt die Anfrage entgegen und speichert die Erweiterung als Datei in seinem Verzeichnisbaum. Anschließend wird der Index aller verfügbaren Erweiterungen (extensions.xml.gz) aktualisiert. Für das Herunterladen einer Anwendung braucht sich der Extension Manager weder wie bisher (via POST), noch über eine SOAP-Anfrage mit dem Hauptserver zu verbinden. Er lädt lediglich das Extensionsverzeichnis (extensions.xml.gz) herunter und erhält damit alle notwendigen Informationen, um eine Liste aller verfügbaren Erweiterungen darzustellen. Hat der Nutzer sich für eine Anwendung entschieden, lädt der Extension Manager die entsprechende .t3x-Datei direkt aus dem Verzeichnisbaum.

Die neue SOAP-Schnittstelle wird also nur bei speziellen und eher selten benötigten Funktionen eingesetzt, etwa um neue Erweiterungen herunterzuladen oder Extension Keys zu registrieren. In allen anderen Fällen wird durch den direkten Dateizugriff eine enorme Entlastung des Servers und damit ein genereller Geschwindigkeitszuwachs erreicht.

Doppelt gespiegelt hält besser

Verzeichnisse und Dateien lassen sich durch Tools wie Rsync [2] sehr einfach auf andere Server spiegeln. Wenn es in Zukunft mehrere Mirrors des TER gibt, wird der Extension Manager automatisch den aktuell schnellsten Server auswählen und die Erweiterungen von diesem herunterladen.

Im TER2.0 werden Erweiterungen zusammen mit ihrem Icon als Dateien gespeichert.

Im TER2.0 werden Erweiterungen zusammen mit ihrem Icon als Dateien gespeichert.

Da durch das Spiegeln des TER alle dort gespeicherten Informationen öffentlich sind, wird es in Zukunft keine privaten Erweiterungen mehr geben können. Während der Umstellung des Repositories auf das TER 2.0 werden daher alle nicht-öffentlichen Erweiterungen gelöscht. Eine frühzeitige Warnung wird rechtzeitig auf typo3.org veröffentlicht werden. Wenn eine Extension, etwa während der Entwicklung, nur innerhalb eines bestimmten Personenkreises ausgetauscht werden soll, kann auf einfache Weise ein Repository auf dem eigenen Webserver angelegt und dessen Adresse der Konfiguration des Extension Managers hinzugefügt werden.

Neue Möglichkeiten

Bei der Entwicklung des TER 2.0 wurde darauf geachtet, die serverseitig benötigten Funktionen modular auf verschiedene Extensions aufzuteilen (siehe Kasten). Diese Aufteilung ermöglicht es auch anderen Entwicklern, auf einfache Art und Weise neue Funktionen beizutragen, ohne dass der Kern des Repositories verändert werden muss. Nachdem das TER 2.0 seine Feuertaufe bestanden hat, werden seit langem gewünschte Funktionen verwirklicht. Geplant ist unter anderem ein Bewertungssystem, mit dem die Mitglieder der Community Rezensionen zu den veröffentlichten Erweiterungen schreiben und diese bewerten können. Auch die automatische Analyse von Erweiterungen auf bestimmte Sicherheitslücken oder das Ausführen von Unit-Tests sind denkbare Ergänzungen.

Extension Keys lassen sich nun auch an andere Benutzer übertragen und löschen.

Extension Keys lassen sich nun auch an andere Benutzer übertragen und löschen.

Neues Format für Dokumente

Auch das Rendering und die Anzeige von Dokumenten wurde in eine eigene Komponente verfrachtet. Die Erweiterung „ter_doc“ konvertiert regelmäßig die Handbücher der neu hochgeladenen Erweiterungen in das intern verwendete DocBook-Format. Anschließend werden diverse Ausgabeformate durch separat installierte Erweiterungen („ter_doc_html“ etc.) erzeugt. Das XML-basierte DocBook ist ideal für die Speicherung von Dokumentationen und Artikeln geeignet und eröffnet, neben der automatischen Erzeugung zahlreicher Ausgabeformate, auch weitere wichtige Möglichkeiten bei der Erstellung, Pflege und Übersetzung von Dokumenten. Obwohl Handbücher langfristig gesehen von vornherein im DocBook-Format produziert werden sollten, kann der TYPO3-Entwickler die Dokumentation seiner Erweiterung nach wie vor als OpenOffice-Writer-Datei beifügen. Die Dokumente werden – sofern der Autor die empfohlene Vorlage [3] verwendet hat – problemlos konvertiert.

Die Roadmap

Die TYPO3-Version 4.0 wird bereits den neuen Extension Manager enthalten, der den Zugriff auf das TER deutlich beschleunigen wird. Äußerlich wird sich zunächst kaum etwas ändern, da zuerst die Basis-Funktionen integriert werden. Anfang nächsten Jahres wird es dann eine erweiterte Version des Extension Managers mit einigen spannenden neuen Funktionen geben, die das Entwicklerdasein einfacher machen. Das Extension Repository befindet sich bei Redaktionsschluss noch in der Testphase und kann, aller Voraussicht nach, kurz vor oder nach der Veröffentlichung von TYPO3 4.0 online gehen. Anschließend wird es noch einige Wochen dauern, bis auch äußerlich die neuen Möglichkeiten und Funktionen in Erscheinung treten. Wer zur weiteren Entwicklung des TER beitragen möchte, ist herzlich eingeladen im typo3.org-Team [4] mitzuwirken. Insbesondere bei der Weiterentwicklung des Documentation-Frameworks ist tatkräftige Unterstützung willkommen.

- Anzeige-

Dieser Artikel stammt aus:

 

Weitere Artikel dieser Ausgabe

AJAX

Revolution oder alter Wein in neuen Schläuchen?

AJAX (Asynchronous Javascript and XML) macht seit einigen Monaten als neuer Heilsbringer für... »

Barrieren im Internet

Erkennen, abbauen, vermeiden

Zehn bis zwanzig Prozent der Weltbevölkerung leiden unter einer Behinderung. Nicht alle... »

Darf es etwas mehr sein?

Multiserver-Szenarien mit TYPO3

TYPO3 hat unterschiedliche Eigenschaften, die seinen großen Erfolg begünstigen: Funktionsumfang... »

Dynamische Bildverarbeitung mit TYPO3

Eine der größten Stärken von TYPO3 sind die zahlreichen Möglichkeiten,... »

Formulare nach Wunsch

Dynamische FlexForms für das TYPO3 Backend mit der Extension DynaFlex

FlexForms sind seit TYPO3 3.6 eine neue Art Eingabemasken im Backend zu definieren. Sie erlauben... »

Innovatives Handwerk

Meister wissen wie’s geht: Komfortabel und effizient mit TYPO3

Optisch und technisch neu präsentiert sich der Internetauftritt des Zentralverbands des... »

Lagebericht

Die TYPO3 Association zieht Bilanz

Mit Ausnahme des Mega-Events TYCON3, der weltweit ersten TYPO3-Konferenz, schien es in den letzten... »

MySQL 5

Endlich Enterprise: Eine Datenbank wird erwachsen

Der Datenbankserver MySQL ist jetzt in der Version 5 erschienen. MySQL selbst bezeichnet diese... »

Object-TypoScript-Workshop

Dan Frost in Darmstadt

Am 4. und 5. November 2005 veranstalteten die User Groups Darmstadt und Frankfurt in den Räumen... »

Offen für alle Gruppen

Teamarbeit mit dem Open-Xchange Server

Manchmal entsteht durch geschickte Kombination mehrerer Komponenten ein neues Produkt, das mehr... »