2.4 Eine Architektur für verteilte digitale Bibliotheken

Dieser Abschnitt beschäftigt sich mit einer Architektur für verteilte digitale Bibliotheken, die seit Januar 1997 an der Universität Frankfurt/Main an der Professur für Telematik und verteilte Systeme im Rahmen des Projektes „Digitale Bibliothek Frankfurt“ entwickelt wird.

Zunächst sollen die Ziele des Projektes umrissen werden, daran schließen sich Begriffsbildung und eine Erläuterung des derzeitigen Status des Projekts an.

2.4.1 Ziele des Projekts

Das Projekt „Digitale Bibliothek Frankfurt“ soll eine Infrastruktur für verteilte digitale Bibliotheken hervorbringen. Das resultierende Konzept wird es ermöglichen, die verschiedensten Arten von digitaler Information in verteilten Systemen zu verwalten und bereitzustellen.

Das Konzept sieht vor, auch neue Informationstypen mit geringem Aufwand zu integrieren. Desweiteren wird die Infrastruktur derart skalierbar sein, daß sie an zukünftige Anforderungen angepaßt werden kann. Eine detailierte Übersicht über Umfang und Ziele des Projekts liefert der Projektantrag [DK95].

2.4.2 Aufbau der Architektur

Eine digitale Bibliothek operiert auf digitalen Dokumenten. Ein digitales Dokument kann man sich als Menge digitaler Information vorstellen (z.B. ASCII Text, Bilder, Ton oder Videodaten). Um ein digitales Dokument innerhalb eines Gesamtsystems bearbeiten zu können, bedarf es einiger Verwaltungsinformationen. Es sollen mindestens folgende Daten zu jedem Dokument verfügbar sein:

Auf den digitalen Dokumenten können verschiedene Operationen ausgeführt werden. Eine bestimmte Menge von Operationen, die sogenannten Basisoperationen, müssen auf jedem Dokument definiert sein. Basisoperationen sind das Speichern, das Durchsuchen oder das Präsentieren eines Dokuments. Alle zusätzlich definierten Operationen sind optional. Um ein digitales Dokument typtransparent verarbeiten zu können, werden jedem Dokument Operationen zugeordnet.

Die Operationen werden in sogenannten Dokumentenmethoden realisiert. Jedes Dokument kann eigene Dokumentenmethoden besitzen. Eine Dokumentenmethode oder dokumentspezifische Methode definiert eine bestimmte Operation auf einem bestimmten Dokument. Für jedes Dokument wird eine Menge von Dokumentenmethoden definiert. Dadurch erreicht man die gewünschte Unabhängigkeit vom Typ der im Dokument enthaltenen Information (Typtransparenz).

Die dem Gesamtsystem bekannten Informationen über ein Dokument sind:

Diese Informationen werden in einem Metadokument zusammengeführt. Für jedes digitale Dokument gibt es ein Metadokument, das alle bekannten Informationen über das Dokument beinhaltet. Metadokumente kann man sich als eine Art Behälter für die Dokument-Informationen vorstellen. Die Informationen werden entweder als Bezug (Referenz) oder direkt in das Metadokument eingebunden. Der Aufbau eines Metadokuments wird systemweit festgelegt, um einen einheitlichen Zugriff zu gewährleisten. Metadokumente werden in Form eines SGML-Dokuments realisiert, die zugehörige DTD findet sich in Anhang A. Alternativ können Metadokumente auch in anderer Form vorliegen, beispielsweise in reinem ASCII-Text. Abbildung 2.7 zeigt ein Beispiel für ein Metadokument.


 <!DOCTYPE META SYSTEM "/usr/users2/DiBiF/Meta/meta.dtd">
 <META id="test-000" version="0.1">
 <HEADER>
     <INFO>Testmetadokument</INFO>
     <PROPERTY title="metadoc1.sgml" author="Hans Matzen"
               owner="Lehrstuhl Telematik"
               ident="TM001.HM1097"
               pubkey="mQBmAjFjzdkAAAECy">
 
     <METHOD name="Store"
             code="URL:http://www/~hans/tstore.py"
             mime="x-application/x-python">
     <METHOD name="Search"
             code="URL:http://www/~hans/tsearch.py"
             mime="x-application/x-python">
     <METHOD name="Present"
             code="URL:http://www/~hans/tpresent.py"
             mime="x-application/x-python">
 </HEADER>
 <DATA extern=URL:http://www/~hans/tdoku.sgml></DATA>
 </META>

Abbildung 2.7: Beispiel für ein Metadokument

Ein Metadokument besteht aus einem Headerbereich und einem Databereich. Im Headerbereich finden sich die Verwaltungsinformationen und die Dokumentenmethoden, im Databereich steht das eigentliche Dokument. Von besonderem Interesse sind die Methoden-Tags. Außer dem Namen der Methode, werden der Ort in Form eines „Uniform Ressource Names“ (URN, [SM94]) und der „Multipurpose Internet Mail Extensions“-Typ (MIME, [BF93]) der Methode angegeben. Über den MIME-Typ kann eine ausführende Instanz ermitteln, in welcher Programmiersprache die Methode implementiert ist. Es ist möglich eine Methode in mehreren Programmiersprachen zu implementieren und damit eine höhere Verfügbarkeit zu erlangen. Die durch die Metadokumente beschriebenen digitalen Dokumente bringen ihre Funktionalität mit.

Die ausführenden Instanzen heißen Elemente. Unter Elementen versteht man einen oder eine Menge von Prozessen, die innerhalb des Systems eine bestimmte Aufgabe wahrnehmen. Es gibt verschiedene Ausprägungen von Elementen. Zum Beispiel:

Die Elemente sind über eine definierte Schnittstelle an eine zum Gesamtsystem gehörende Infrastruktur verbunden, die Transportmechanismen bereitstellt, damit die Elemente miteinander kommunizieren können. Diese Schnittstelle definiert mindestens drei Kommandos. Ein Kommando dient der Übetragung von Dokumenten an das Element, eines der Ausführung von Dokumentenmethoden auf übertragenen Dokumenten und eines dem Abruf von Informationen über das Element und die von ihm bereitgestellten Funktionalitäten. Die Schnittstelle legt gleichzeitig die Basisfunktionalität aller Elemente fest.

Die Elemente stellen nur ihre Ressourcen zur Benutzung durch die Dokumentenmethoden zur Verfügung. In herkömmlichen Systemen findet man die Funktionalitäten in den Elementen realisiert. Damit sind die Möglichkeiten, Funktionalität auf Dokumentinhalte abzustimmen, beschränkt. Durch die Verbindung von Funktionalität und Dokument schafft man hier die Unabhängigkeit von den Dokumentinhalten und höchste Anpassungsmöglichkeiten an neue Dokumenttypen.

In Abhängigkeit von ihrer Funktionalität stellen die Elemente verschiedene Programmbibliotheken bereit, die von den Dokumentenmethoden benutzt werden, um auf die Ressourcen der Elemente zuzugreifen. Diese Bibliotheken werden nach ihrer Funktionalität gruppiert in sogenannten Paketen bereitgestellt. Jedes Paket realisiert eine Menge von Methoden (Operationen) zum Einsatz in den Dokumentenmethoden. Die bekannte Problematik beim Zusammenstellen von Operationen in Bibliotheken wächst durch den Anspruch an die Dokumentenmethoden, die Kenntnisse über elementspezifische Eigenschaften durch die Operationen zu verbergen. Das heißt, die Pakete stellen die Schnittstelle zwischen Methoden und Elementen dar.

Auf diese Weise können auf jedem Dokument typgerechte Operationen definiert werden. Soll eine Operation innerhalb eines Elements auf einem Dokument ausgeführt werden, so muß das Element keine Kenntnis über den Inhalt des Dokuments haben.

Jedes Element stellt mindestens eine Ablaufumgebung für Dokumentenmethoden bereit. Dokumentenmethoden werden ausschließlich innerhalb dieser Ablaufumgebungen der Elemente ausgeführt. Ist ein Metadokument zu einem Element übertragen worden, kann durch Senden einer sogenannten Aktivierung das Element dazu aufgefordert werden, eine bestimmte Dokumentmethode auf dem zugeordneten Dokument auszuführen. Dokumente werden entweder in den Metadokumenten oder aber über eine von den Methoden aufzubauenden separaten Netzverbindung übertragen. Zwischen Elementen werden lediglich Metadokumente, Aktivierungen und Rück- bzw. Fehlermeldungen übertragen. Abbildung 2.8 verdeutlicht ein Szenario dieser Art.


PIC
Abbildung 2.8: Kommunikation zwischen Elementen

Abschließend sei bemerkt, daß sich diese Architektur noch in der Entwicklung befindet und die hier erläuterten Sachverhalte keinesfalls einen endgültigen Stand repräsentieren. Eine ausführliche Beschreibung der Architektur ist in [MD98] gegeben.