Login
Newsletter
Werbung

Mo, 3. Juli 2006, 00:00

Der WebDAV-Server Catacomb

Die Standardmodule mod_dav und mod_dav_fs machen aus dem Webserver Apache einen stabilen und performanten WebDAV-Server. Immer internationalere und dezentralisiertere Projekte und Zusammenarbeit machte diese Erweiterung des HTTP-Protokolls notwendig. Sinnvoll wird es für viele Unternehmen aber erst, wenn auch die von den WebDAV-Arbeitsgruppen erarbeiteten Erweiterungen wie serverseitige Suche (DASL), Versionierung (DeltaV) und Zugriffskontrolle (ACL) zur Verfügung stehen. Hier streckt auch mod_dav die Flügel und genau an dieser Stelle wird die Auswahl der verfügbaren Open-Source-Produkte eng, die das alles bieten. Das Catacomb-Projekt schickt sich an, genau diese Lücke zu schließen.

Erweiterungen zu WebDAV

Um die verschiedenen Anforderungen abzudecken, wurden mehrere Arbeitsgruppen ins Leben gerufen, entsprechende Standards zu entwickeln. Mittlerweile stehen die Standards fest, doch obwohl es eine große Vielzahl von WebDAV-fähigen Clients und Servern gibt, ist der Grad der WebDAV-Implementierung sehr unterschiedlich, da es Aufgrund der Komplexität der Spezifikation nur wenig Referenzimplementierungen gibt. Im Folgenden sollen diese Erweiterungen vorgestellt und kurz erläutert werden.

Metadata Management

Grundsätzlich verwaltet WebDAV nur Ressourcen und Collections. Collections sind im Prinzip als eine spezielle Art einer Ressource zu sehen. Im Allgemeinen werden Ressourcen oft mit Dateien und Collections mit Verzeichnissen verglichen. In einigen Serverimplementierungen ist die Handhabung genau so, was jedoch nicht so sein muss. Ganz ähnlich einem Dateisystem entsteht damit auch in WebDAV eine Baumstruktur, die sich aus Collections mit Sub-Collections und Ressourcen zusammensetzt. Jede Ressource besitzt eine Menge von Eigenschaften, Metadaten oder Properties genannt. Es gibt eine vorgegebene Grundmenge von Metadaten, wie beispielsweise Dateinamen und Dateigröße, es ist jedoch auch möglich, eigene hinzuzufügen, wie beispielsweise Autor oder Ort der Entstehung. Diese WebDAV-Properties werden unterschieden in Live Properties und Dead Properties. Live Properties sind jene, die der Benutzer nicht beeinflussen kann oder die gar jedesmal erst neu generiert werden müssen. Dead-Properties, oder auch Custom Properties, sind eine von Benutzer selbst hinzugefügte beliebige Anzahl von Name/Wert-Paaren.

Locks

Wenn zwei oder mehr Leute an demselben Dokument arbeiten, wird das Thema Überschreibschutz interessant, um dem »lost update«-Problem zu entgehen, bei dem sich zwei oder mehr Personen ihre jeweiligen Änderungen gegenseitig überschreiben durch gleichzeitiges und unkoordiniertes Arbeiten an der selben Ressource. Oftmals ist aufgrund von räumlicher Trennung eine einfache Absprache nicht möglich, so dass man Alternativen wählen musste.

Shared Locks

Bei Shared Locks wird auf dem WebDAV-Server ein Lock erzeugt, wenn ein Benutzer ein Dokument zu bearbeiten wünscht. Wenn nun eine andere Person dieselbe Datei zu editieren versucht, wird diese darauf hingewiesen, dass bereits an der Datei gearbeitet wird. Die zweite Person kann trotzdem die Datei bearbeiten, vielleicht weil es einfach eine Absprache gab oder weil aus einem anderen Grund bekannt ist, dass es nicht zu Überschneidungen kommen kann.

Exclusive Locking

Bei dieser Art des Lockings wird beim Verändern einer Datei ein Lock auf die Ressource angelegt, der nur vom Besitzer des Locks wieder entfernt werden kann. Ein Versuch einer anderen Person, eine so gelockte Datei zu editieren, würde vom Server verweigert werden.

WebDAV unterstützt beide Arten von Locks, um möglichst flexibel bei verschiedensten Zusammenarbeiten zu sein. Während Shared Locks bei einer dichten Zusammenarbeit und räumlicher Nähe sicherlich oft besser geeignet sind, sind Exclusive Locks unabdingbar bei Arbeitsgruppen, die eventuell sogar gar keinen persönlichen Kontakt zueinander haben. Beide Typen von Locks werden über die LOCK-Methode erzeugt und über die UNLOCK-Methode wieder freigegeben.

Der Gültigkeitsbereich der Locks kann sich auf eine einzelne Ressource oder auch auf eine Sammlung von Ressourcen, z.B. einen Ordner mit all den in ihm befindlichen Dateien, erstrecken. Um herauszufinden, welche Locks sich auf der momentanen Web-Ressource befinden, gibt es die LOCKDISCOVERY-Methode. Ein Read-Lock ist im WebDAV-Protokoll nicht vorgesehen.

Locks haben einen zugehörigen Timeout, um bei abgestürzten Clientprogrammen oder Netzwerkproblemen nach Ablauf dieser Zeit automatisch entfernt zu werden. Die Größe der Zeit, die der Lock auf dem Server bleibt, bevor er entfernt wird, ist abhängig vom Clientprogramm. Einige setzen sehr lange Zeiten, teilweise Tage, andere hingegen nur Minuten, um diese dann regelmäßig zu erneuern. WebDAV-Locks sind unabhängig von der TCP-Verbindung zwischen Client und Server. Dadurch kann eine Ressource gelockt, offline bearbeitet und danach auf dem Server aktualisiert werden mit der Gewissheit, dass es in der Zeit keine Änderungen an der Ressource gegeben hat.

DASL

DAV Searching and Locating erweitert WebDAV um Möglichkeiten, Ressourcen serverseitig suchen zu lassen. Das Protokoll erlaubt sowohl eine Suche im Inhalt einer Ressource als auch in deren Metadaten. Der Suchbereich selbst kann auf wenige Ressourcen oder einzelne Collections eingeschränkt werden. Der Name der HTTP-Methode für diese Aktionen ist SEARCH. Mit dieser Methode werden die Suchanfragen als XML-Anfrage an den Server übermittelt und man bekommt eine Antwort, die einem PROPFIND-Response entspricht.

DeltaV

DeltaV, die Versionierung von Ressourcen, ist für die Zusammenarbeit von vielen Personen eine sehr wichtige Eigenschaft. Folgende Funktionen sieht das Protokoll vor: Checkout, Checkin, Version History. Alte Versionen können durchsucht werden. Außerdem wird die Autoversionierung unterstützt, das Versionierung für Clients bereitstellt, die selber keinerlei Versionierungsfunktionen unterstützen. Es wird unterschieden zwischen einfacher und erweiterter Versionierung. Bei der einfachen Versionierung ist es dem Benutzer möglich, festzustellen, ob eine Ressource unter Versionskontrolle steht, eine Ressource unter Versionskontrolle zu stellen und verschiedene Versionen einer Ressource zu erzeugen und zu lesen. Die erweiterte Versionierung bietet Funktionen wie Branching und Parallelentwicklung.

ACP

Das Access Control Protokoll bestimmt, welche Personen welche Operationen mit den Ressourcen durchführen dürfen. Zugriffsrechte werden entweder verliehen oder entzogen (grant/deny). Das Entziehen von Zugriffsrechten ist vor allem interessant, wenn beispielsweise einem einzelnen Mitglied einer Benutzergruppe ein Privileg entzogen werden soll, das die Gruppe im Allgemeinen aber hat. Beim Erstellen von Collections oder Ressourcen können diese ihre ACL dynamisch von der übergeordneten Collection erben, wobei Änderungen der ACL der übergeordneten Ressource auch Änderungen der ACL der untergeordneten nach sich zieht, oder auch statisch sein.

Der Name der HTTP-Methode für diese Aktionen ist ACL. Mit dem ACL-Kommando kann eine ACL sowohl ausgelesen als auch die Werte einer ACL gesetzt werden.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung