Verwalten von Web-Inhalten mit Perforce

Laura Wingerd

[ English | Français ]

Auszug

Perforce ist als schnelle, aufwandarme, produktive Lösung im Bereich Software-Konfigurationsmanagement (SCM) eine anerkannte Marke. Weniger bekannt ist jedoch, dass Perforce auch Lösungen für das Verwalten von Web-Inhalten (WCM) bietet. Perforce wird in einer Vielzahl an WCM-Anwendungen von:    Unternehmen eingesetzt, die mit Intranet die interne Dokumentation    Firmen verwendet, bei deren Produkten es sich um Webinhalte und nicht um Software handelt und    von Privatpersonen, Unternehmen und Firmen mit externen Webseiten eingesetzt. In diesem Artikel werden die Entwicklungsmodelle von Perforce betrachtet, die für die Verwaltung von Webinhalten momentan verwendet werden. Zudem werden die Funktionen identifiziert, die Perforce zu einer geeigneten WCM-Lösung machen.

1. So funktioniert Perforce

Perforce arbeitet mit einer Client-/Serverarchitektur. Der Perforce-Server behält ein Repository an versionierten Dateien (das Depot) und eine Datenbank mit SCM-Informationen (die Metadaten). Bei einem Client von Perforce handelt es sich um einen beliebigen Benutzer oder eine beliebige Anwendung, die mit dem Server kommuniziert. Ein einziger Perforce-Server kann eine Vielzahl an vor Ort vorhandenen oder weltweit verteilten Clients unterstützen. Clients von Perforce erhalten Dateien vom Depot, ändern diese und reichen die geänderten Dateien wieder ins Depot ein. Die Dateien werden lokal in den Client-Arbeitsplätzen gespeichert.

2. Eine einfache Methodik zum Verwalten von Webinhalten (WCM)

Webserver lesen Dateien von einem Dateisystem. Client-Arbeitsplätze von Perforce können in jedem beliebigen Dateisystem abgebildet werden. Die einfachste Möglichkeit, Perforce als Manager für Webinhalte zu verwenden, ist es daher, einen dedizierten Client-Arbeitsplatz von Perforce zu schaffen, bei dem es sich um das Dateisystem der Webseite handelt. Entwickler und Verfasser von Webinhalten arbeiten an den Webdateien in ihren eigenen Arbeitsbereichen und reichen die geänderten Dateien an das Depot ein. Der dedizierte Arbeitsbereich (d.h. das Webseiten-Dateisystem) wird mit dem Depot automatisch alle paar Minuten mithilfe von P4FTP, einem Systemdienst oder Daemon-Ablauf, synchronisiert.

Somit erhalten Entwickler von Webinhalten gleichzeitig und doch kontrolliert Zugriff auf Webseiten, wobei die Webseite selbst jedoch davon ausgenommen ist. Bei den einzigen Agenten, die direkten Zugriff auf das Webseiten-Dateisystem haben, handelt es sich um die automatisierten Synchronizer und den Webserver. Das spricht für das Verwalten von Webseiten-Dateisystemen mit Perforce:

  • Mit Perforce können Entwickler Änderungen an mehreren Dateien in eine einzige Einheit gruppieren, die man Änderungsliste nennt. Änderungen, die in verschiedenen Dateien auftauchen, können so leicht verfolgt und erneut geprüft werden.

  • Entwickler von Webinhalten können die Funktionen von Perforce zur Berichterstattung verwenden und so genau herausfinden, welche Dateiversionen sich auf der Webseite befinden, welche Versionen sich in ihrem eigenen Arbeitsplatz befinden und welche sich in den Arbeitsplätzen anderer befinden. Es steht auch der ganze Dateiverlauf zur Verfügung.

  • Zwar bieten die meisten Tools zum Verfassen von Webinhalten Möglichkeiten, Dateien direkt auf die Webseiten zu stellen, doch nur wenige bieten die Möglichkeit, die Vorgängerversion wieder herzustellen. Mit Perforce können Webseiten mit Vorgänger-Dateiversionen neu synchronisiert werden.

  • Beim Überprüfen von Webinhalten mithilfe des P4Web haben Sie direkten Zugriff auf Vorgängerversionen der Webseite über das chronologische Browsen.

  • Mithilfe von Perforce können mehrere Entwickler gleichzeitig ohne Dateisperre arbeiten. Entwickler von Webinhalten können für ihre Arbeit die Merge-Tools von Perforce oder Merge-Tools von Drittanbietern ihrer Wahl verwenden und müssen nicht darauf warten, exklusiven Zugriff auf die Datei zu erhalten.

  • Die Kennwörter und der Depotschutz können bei Perforce so genutzt werden, dass der Zugriff von Autoren auf Dateien spezifisch eingestellt werden kann.

  • Perforce unterscheidet zwischen einer Vielzahl an Dateitypen, darunter Unicode, das Binär-Dateiformat, komprimierte Binärdateien sowie Unix- und Macintosh-spezifische Dateitypen.

  • Entwickler von Web-Inhalten können innerhalb einer Firewall arbeiten. Neben dem Webserver ist der einzige Agent, der außerhalb der Firewall auf das Webseiten-Dateisystem Zugriff benötigt, der Dienst, der die Dateien synchronisiert.

3. Die Stufen der Webimplementierung

In dem einfachen, oben beschriebenen Modell, sind die Änderungen des Autors im Webbrowser sichtbar, sobald die Dateien an das Depot eingereicht und mit dem Dateisystem der Webseite synchronisiert wurden. Es wird nicht zwischen veröffentlichten Webinhalten und solchen, die noch von Verfassern bearbeitet werden, unterschieden. Dieses Modell ist zwar für ein kleines Intranet geeignet, für die meisten Webseiten ist es jedoch nicht ausreichend.

Webinhalte durchlaufen von der Entwicklung bis zur Veröffentlichung verschiedene Implementierungsstadien. Außerdem werden die Webinhalte, die Benutzer sehen, dynamisch erstellt. Die tatsächlichen Inhalte, die von SCM gesteuert werden, sind die Server-Quelldateien der Webanwendung, Datenbankabläufe und ähnliches. Für jede Implementierungsstufe ist es notwendig, die Komponenten, die den Inhalt erstellen, neu zu kompilieren. Die Stufen der Webimplementierung von verwalteten Inhalten - ganz gleich, ob es sich dabei um dynamische oder statische Inhalte handelt - können von Perforce mit Labels, Verzweigungen oder beiden Optionen gesteuert werden.

3.1 Verwenden von Labels zum Steuern der Implementierung

Der Labeling-Mechanismus von Perforce kann eine Implementierungsphase mit einer speziellen Dateirevision assoziieren. Im einfachsten Fall wird ein interner Webserver mit Zugriff auf die aktuellste Entwicklungsversion ("Head Revision") der Dateien zum Testen und Prüfen von Änderungen verwendet, wenn Autoren Inhalte in das Depot einreichen. Bewilligte Änderungen können mit einem Label gekennzeichnet werden, wobei die gekennzeichneten Revisionen mit externen Webseiten-Dateisystemen synchronisiert werden.

Der Vorteil bei der Verwendung von Labels liegt darin, dass diese leicht verständlich und ganz einfach einzurichten sind. Ohne eine zusätzliche Infrastruktur ist beim Steuern von Inhaltsveröffentlichungen mit einem Label kein Änderungsprotokoll ("Audit Trail") vorhanden. Es ist zwar immer möglich, die Vorgängerversion wieder herzustellen, doch weiß man nicht immer, welche Versionen auf einer Webseite zu einer bestimmten Zeit vorhanden sind.

3.2 Verwenden von Verzweigungen ("Branches") zum Steuern der Implementierung

Eine optimiertere Methodik, die Implementierung zu steuern, ist das Verzweigen von Dateien in einzelne Depotorte. Jeder Ort bzw. jede Verzweigung entspricht einem bestimmten Stadium der Webimplementierung. Verzweigungen können alle Stufen der Webimplementierung darstellen und so auch die Integration von Komponenten, Betatest-Sites, Qualitätskontrolle, spezifische Portale und andere Inhalte. Client-Ansichten von Perforce werden verwendet, um Verzweigungen mit Stufen der Webseiten-Dateisysteme zu assoziieren.

In einem einfachen Szenario arbeiten Autoren an Dateien in einer Entwicklungsverzweigung, wobei bewilligte Änderungen an eine veröffentlichte Verzweigung propagiert werden. Externe Webseiten erhalten Dateien von der veröffentlichten Verzweigung, und interne Webseiten erhalten die Dateien von der Entwicklungsverzeigung.

Es gibt verschiedene Vorteile bei der Verwendung von Verzweigungen für das Verwalten von Webinhalten:

  • Wenn Dateisysteme von Webseiten kontinuierlich mit den neuesten Dateien der jeweiligen Verzweigung synchronisiert werden, bieten die Metadaten von Perforce ein umfangreiches Inventar und einen Verlauf jeder Webseite.

  • Perforce kann Berichte über angesammelte Informationen für eine Verzweigung erstellen. Vor kurzem ausgeführte Aktionen, noch auszuführende Integrationen, Unterschiede bei Dateien etc. können für jede Verzweigung angezeigt werden und so auch für jede Stufe der Implementierung von Webinhalten.

  • Da die Verzweigungen von Perforce wie Verzeichnisse aussehen, sehen Autoren und Webmaster sofort die Stufen der Verzweigungen in dem Depot und prüfen die Inhalte dieser.

  • Perforce verfolgt das Propagieren von Dateien und Änderungslisten von einer Verzweigung zur nächsten. Ein Webmaster weiß, welche Dateien zwischen den Stufen der Verzweigungen propagiert werden müssen. Ein Entwickler sieht, ob seine Änderungsliste bereits an eine bestimmte Stufe der Verzweigung propagiert wurde.

4. Direkter Zugriff auf das Depot

Die oben beschriebenen Modelle arbeiten auf der Basis, dass die Dateisysteme der Webseite kontinuierlich mit dem Depot synchronisiert werden. Eine Alternative zur Verwendung eines Webseiten-Dateisystems ist die Verwendung eines Webservers, der auf die Depotdateien von Perforce direkt zugreifen kann. Einfacher Direktzugriff ist auch mit dem WebKeeper-Modul von Perforce für den Apache HTTP Server oder mit P4Web als Webserver möglich.

Dank des direkten Depotzugriffs ist die Synchronisierung der dedizierten Client-Arbeitsplätze und des Webseiten-Dateisystems überflüssig. Beispielsweise kann ein WebKeeper-fähiger Webserver Inhalte in einer Entwicklungsverzweigung zum Prüfen und Testen verfügbar machen, sobald die Dateien eingereicht wurden, während die veröffentlichten Inhalte bei einem anderen Webserver verfügbar werden, sobald der Inhalt in der veröffentlichten Verzweigung hochgestuft wird.

5. Kompatibilität mit Tools für die Webimplementierung

Bei Perforce gibt es keine Einschränkungen für die Werkzeuge oder die Umgebung, die für die Erstellung und Implementierung von Webinhalten verwendet werden. Manche Funktionen von Perforce sind mit der Webimplementierung besonders gut kompatibel:

  • Werkzeuge zum Verfassen von Webinhalten (beispielsweise Dreamweaver) arbeiten normalerweise mit FTP, um die Webseitendateien zu aktualisieren. P4FTP bietet Autoren von Webinhalten, die diese Werkzeuge verwenden, eine ähnliche Oberfläche wie Perforce.

  • Für Entwicklungswerkzeuge, die programmierbare Befehlsmenüs oder Symbolleisten liefern, können P4-Skripte spezifische Aufgaben von Perforce ausführen.

  • Integrierte Entwicklungsumgebungen wie Microsoft Developers Studio können Aufgaben von Perforce direkt mit installierten IDE-Plugins von Perforce verwalten.

  • Wenn die von Autoren verwendeten Werkzeuge kein FTP-Oberfläche oder eine Oberfläche zur Quellcodeverwaltung bieten, können Client-Programme von Perforce wie P4Win, P4Web und P4 direkt verwendet werden. Perforce-Client-Programme erkennen neue und geänderte Dateien in dem Entwicklerarbeitsplatz. So können Autoren alle Dateien der Webseite unter die Quellcodeverwaltung stellen, selbst wenn Tools zum Erstellen von Webinhalten Dateien unerwartet erstellen oder ändern.

  • Perforce C/C++ API (P4API) kann in CGI-Programme, Webanwendungsserver oder andere ausführbare Programme integriert werden, um Zugriff auf Depotdateien direkt vom serverseitigen Ablauf zu haben. P4API-Erweiterungen sind für verschiedene Programmier- und Skriptsprachen erhältlich.

6. Schlussfolgerung

Der Großteil der Kunden von Perforce sind Softwareentwicklungsunternehmen. Ein weiterer Vorteil von Perforce ist, dass das Werkzeug, wenn es erst einmal für die Softwareimplementierung installiert ist, für die Verwaltung von Webinhalten ohne zusätzlichen Aufpreis verwendet werden kann. Zudem ist der anfallende Verwaltungsaufwand gering. Jedoch ist Perforce auch für das Verwalten von Webinhalten geeignet, unabhängig davon wie die Softwareentwicklung verwaltet wird. Wie die oben genannten Modelle zeigen, bietet Perforce eine umfassende, uneingeschränkte Steuerung der Entwicklung von Webinhalten und der Verteilung in zahlreichen Implementierungen.

Anhang: Wichtige Funktionen von Perforce

Für die Verwaltung von Webinhalten sind manche Funktionen von Perforce besonders wichtig:

  • Der Ablauf, der den Arbeitsplatz mit dem Depot ("Sync" genannt) synchronisiert, überträgt Dateien nur, wenn dies erforderlich ist. Das heißt, dass der Synchronisierungsvorgang nicht so häufig wie gewünscht ausgeführt wird, sondern dass der Server nur Dateien an den Arbeitsplatz sendet, wenn die Version des Arbeitsplatzes nicht mehr aktuell ist. Dies gilt für automatisierte Dienste, die Webseiten-Arbeitsplätze alle paar Minuten synchronisieren sowie Entwickler, die den örtlichen Arbeitsplatz mit Kopien der neuesten Webseitendateien auf dem neusten Stand halten. Hat sich in dem Depot nichts geändert, werden auch keine Daten übertragen.

  • Die automatische Synchronisierung von Dateien von Webseiten und FTP-Seiten kann entweder mithilfe von P4FTP oder mit systemeigenen Diensten durchgeführt werden.

  • Reicht ein Benutzer verschiedene, geänderte Dateien ein, nummeriert Perforce eine Transaktion, also eine Änderungsliste, und zeichnet diese auf. Perforce stellt die Integrität jeder Änderungsliste sicher, sodass selbst bei Problemen mit dem Netzwerk oder dem System ein Benutzer nie unbeabsichtigt mit einer teilweise eingereichten Arbeitseinheit arbeiten muss. Nummerierte Änderungslisten können verwendet werden, um nicht nur die Dateien und Revisionen zu identifizieren, die damit im Zusammenhang stehen, sondern den Status jeder beliebigen Depotdatei zu dem Zeitpunkt, an dem die Änderungsliste eingereicht wurde.

  • Dateiversionen werden mit Nummern oder symbolisch repräsentiert. Beispielsweise weist "foo.html#12" auf die zwölfte Version von foo.html hin, wobei "foo.html@reviewed" die Version von foo.html ist, die mit dem Symbol "geprüft" versehen wurde. Typischerweise werden Labels als Symbole verwendet, doch können auch Namen von Client-Arbeitsplätzen und Nummern von Änderungslisten verwendet werden. Wird beispielsweise ein Webseiten-Arbeitsplatz als "Webseite" bezeichnet, dann weist "foo.html@website" auf die Version von foo.html hin, die sich auf der Webseite befindet.

  • Perforce verwendet TCP/IP für die Kommunikation zwischen Client und Server und bietet Möglichkeiten für die Datenkomprimierung für den Dateitransfer und das Speichern im Depot. Es basiert nicht auf NFS oder einem anderen System zum Dateiaustausch.

  • Perforce unterstützt Clients auf einer Vielzahl an Plattformen wie Macintosh, Windows 95/NT, Windows NT Alpha, IBM OS/2, IBM OS/390OE, Alpha VMS, VAX OpenVMS und fast alle Unix-Plattformen.