Benutzerraum und Dokumentenraum

Nachbarschaft im WWW

Klaus H. Wolf und Konrad Froitzheim

Abteilung Verteilte Systeme, Universität Ulm

Zusammenfassung:

Das World Wide Web ist der vielseitigste Dienst im Internet. Das Web bietet Unterhaltung, Nachrichten, Bilder, Software, Reisen, Bücher und viele andere Dinge, die man im täglichen Leben braucht. Aber ein Aspekt, der in der realen Welt eine wichtige Rolle spielt, fehlt bisher: die Möglichkeit andere Menschen zu treffen. Zwar gibt es sogenannte Virtual-Neighborhoods in Form von Chat-Räumen. Die Möglichkeit Menschen zu treffen ist aber beschränkt auf sehr wenige, speziell dafür vorgesehene Webseiten. Wir beschreiben ein Modell und ein Softwaresystem, das aus dem gesamten Web einen Treffpunkt macht. Es ermöglicht den Benutzern des Webs, sich auf jeder Seite zu treffen. Das System basiert auf dem Konzept der dynamischen Nachbarschaft (dynamic neighborhood). Mit Hilfe der dynamischen Nachbarschaft werden Benutzer des Web gegenseitig sichtbar gemacht. Die so sichtbaren Benutzer können dann Kommunikationskanäle öffnen, um miteinander in Ton und Bild zu sprechen.


1 Die Einsamkeit des Web-Surfers

Für Viele ist das Internet zu einem unentbehrlichen Hilfsmittel geworden. Das World Wide Web (hier nur als Web bezeichnet) ist bei weitem der häufigst benutzte Internetdienst für die Suche nach Informationen. Das Web basiert auf asynchroner Kommunikation, insbesondere der Verteilung von Dokumenten verschiedener Typen. Synchrone Kommunikation zwischen Personen ist kein Dienst des Web, kann aber auf einfache Weise integriert werden durch sogenannte Protocol-Handler, Plug-Ins, externe Programme (Helper Applications) oder andere Erweiterungsmöglichkeiten von Web-Klienten.

Millionen Menschen sind zur gleichen Zeit online im Web, oftmals sogar Hunderte, manchmal Tausende auf dem gleichen Web-Server oder der gleichen Web-Site. Aber Benutzer im Web können sich normalerweise nicht gegenseitig sehen. Jeder ist für sich allein unterwegs. Außer Verzögerungen und längeren Wartezeiten zu bestimmten Tageszeiten gibt keine Anzeichen, daß noch andere Menschen gleichzeitig online sind. Surfen im Web gleicht einem Stadtbummel in leeren Straßen. Es ist, als ob die Geschäfte und Bibliotheken voll von Waren sind, aber in den virtuellen Kaufhäusern ist nicht einmal ein Verkäufer zu finden. Ob dies ein Vorteil oder Nachteil des Web im Vergleich zur realen Welt ist, soll dem Leser überlassen bleiben. Tatsächlich sind wir es aber gewohnt, Menschen zu treffen. Darüber hinaus ist es zweifelhaft, ob es sich die Betreiber von virtuellen Geschäften und Kaufhäusern auf Dauer leisten können, potentielle Kunden nicht persönlich anzusprechen.

Das Web erscheint leblos und statisch. Dies ist aber nicht die Wirklichkeit. Tatsächlich gibt es viele Menschen im Web. Manche springen schnell von Seite zu Seite, andere gehen langsam und lesen die angebotenen Inhalte genau. Menschen bewegen sich im Web, um zu arbeiten, Informationen zu suchen oder einfach um sich die Zeit zu vertreiben. Es gibt sogar unbemannte Vehikel, genannt Robots, auf den Sraßen des Web, die automatisch Informationen sammeln. Das Web ist also erfüllt mit Leben. Leider ist dieses Leben unsichtbar für den normalen Benutzer.

Diese Analogie mit der realen Welt zeigt, daß auf dem Web eine wichtige Dimension fehlt, nämlich die Benutzer. Werden die Benutzer hinzugefügt, dann wird das World Wide Web zum richtigen Cyberspace.

1.1 Cyber-Nachbarschaft

1.1.1 Dynamische Verzeichnisdienste

Dynamische Verzeichnisdienste (Dynamic Directory Services, DDS) sind ein einfacher Ansatz um Web-Benutzern mitzuteilen, daß Andere gleichzeitig online sind (siehe [1][2]). Zur Verwendung dynamischer Verzeichnisdienste erzeugen die Benutzer Listen von Freunden und Bekannten (sogenannte Buddy-Lists) und schicken diese an den DDS-Server. Der Server benachrichtigt dann jeden registrierten Benutzer, sobald jemand von der zugehörigen Buddy-Liste den Web-Browser startet. Dynamische Verzeichnisdienste geben aber nur einen flüchtigen Eindruck von der lebhaften Natur des Web. Sie sind nicht flexibel genug, um Zufallstreffen zu ermöglichen, die einfach nur deshalb zustande kommen, weil sich zwei Menschen gleichzeitig für dieselben Themen interessieren und auf den gleichen Web-Seiten surfen. Deshalb kann man auf diese Art niemals neue Partner oder Freunde im Cyberspace treffen. Außerdem müssen alle Teilnehmer eine spezielle Software, den DDS-Klienten, installieren.

1.1.2 Virtuelle Konferenzräume - Statische Nachbarschaft

Virtuelle Konferenzräume (Static Neighborhoods / Web Communities) bestehen normalerweise aus einer kleinen Zahl fest vorgegebener Web-Seiten. Menschen, die sich auf diesen Seiten bewegen, sind im gleichen virtuellen Konferenzraum (Virtual Meeting Room, VMR). Im Gegensatz zu dynamische Verzeichnisdiensten können sich in VMRs Menschen treffen, die sich vorher noch nicht kannten. Der Benutzer gibt nur den Ort des VMRs an und nicht die Liste der Partner in Buddy-Lists. Die Liste der sichtbaren Partner wird vom VMR zur Laufzeit bestimmt.

Es gibt viele verschiedene Ausführungen von VMRs. Sie reichen von statischen HTML-Seiten über sogenannte Chat-Räume bis zu komplexen Datenbanksystemen. Sogar dynamische Verzeichnisdienste (DDS) können verwendet werden, um virtuelle Konferenzräume zu simulieren. In diesem Fall erzeugt der VMR-Server die Buddy-Lists dynamisch.

Virtuelle Konferenzräume haben, wie reale Konferenzräume, einen festen Platz. Menschen gehen zu diesem Ort und treffen dort Andere, die die gleiche Web-Seite gewählt haben. Alle Personen in einem VMR können sich gegenseitig sehen. Der sichtbare Bereich - die Web-Seiten - ist gleich für alle Teilnehmer. Er ist definiert durch die Konfiguration des virtuellen Konferenzraums. Der sichtbare Bereich ist damit unabhängig von der tatsächlichen Position eines Teilnehmers innerhalb des VMRs.

Abbildung 1: Beispiel für einen virtuellen Konferenzraum (Virtual Meeting Room, VMR) aus mehreren Web-Seiten.

Virtuellen Konferenzräume modellieren geschlossene Räume. Dies ist vor allem für solche Aktivitäten sinnvoll, die am besten in geschlossenen Gruppen durchgeführt werden. Beispiele hierfür sind synchrone oder asynchrone gemeinsame Arbeit (CSCW), Besprechungen oder Schulungen bis hin zu Vorlesungen. Geschlossene Räume sind aber nicht geeignet für viele andere Aktivitäten im Web, wie Informationssuche oder Einkaufsbummel.

1.2 Dynamische Nachbarschaft

Das Modell der dynamische Nachbarschaften allgemein in dem Sinne, als es die oben beschriebenen statischen Nachbarschaften, bzw. virtuellen Konferenzräume und die dynamischen Verzeichnisdienste beinhaltet. Wir werden zeigen, daß dynamische Nachbarschaften besser geeignet sind, die dynamische Natur des Web darzustellen. In diesem Kapitel wird der Begriff der dynamische Nachbarschaft eingeführt. Das nächste Kapitel geht genauer auf das von uns verwendete Dienstemodell ein. Dieses Dienstemodell bildet die Grundlage für die in Kapitel 3 beschriebene Implementierung. Im vierten Kapitel werden Ergebnisse vorgestellt und ein Einblick in die aktuelle und zukünftige Arbeit gegeben.

In der realen Welt ist der übersehbare Bereich für jede Person verschieden. Jeder sieht deshalb eine verschiedene Untermenge von Objekten. Überträgt man dies auf das Web, dann muß für jede Person eine eigene (persönliche) Nachbarschaft berechnet werden. Der sichtbare Bereich (die Nachbarschaft) darf nicht nur von der Umgebung - den Web-Seiten - abhängen, sondern muß auch vom Benutzer, seiner genauen Position im Web oder anderen Eigenschaften beeinflußt werden. Während die statische Nachbarschaft nur auf der Konfiguration der Umgebung basiert, bezieht die dynamische Nachbarschaft auch den Benutzer mit ein. In der statischen Nachbarschaft ist der Sichtbarkeit aller Benutzer gleich, da sie durch die Konfiguration des virtuellen Konferenzraums voreingestellt ist. Bei der dynamischen Nachbarschaft wird dagegen der sichtbare Bereich für jeden Benutzer individuell berechnet. Die Berechnung basiert dabei auf Eigenschaften und Konfigurationen des Benutzers, die sich dynamisch ändern können.

Die wichtigste und offensichtlichste Eigenschaft eines Benutzers des Web ist die Position der besuchten Web-Seiten. Wie in der realen Welt bestimmt diese Position den sichtbaren Bereich und damit die Menge der sichtbaren Objekte in der Umgebung. Im Web wird die Umgebung repräsentiert durch Web-Seiten und Verbindungen zwischen den Seiten (Hyper-Links). Die Anordnung von Seiten durch die Verbindungen beeinflußt die sichtbare Nachbarschaft. Wenn Personen sich bewegen, dann führen sie ihre individuelle Nachbarschaft mit sich. Dabei ändert sich die Nachbarschaft entsprechend der Position und den umgebenden Web-Seiten und Hyper-Links. Im einfachsten Fall (Abbildung 2) besteht die dynamisch berechnete Nachbarschaft aus den Web-Seiten, die in der Nähe der jeweils besuchten Seite sind. Gemessen wird die Nähe dabei in Hypertext-Links. Der Benutzer sieht alle benachbarten Seiten und alle Objekte, die mit diesen Seiten assoziiert sind, z.B. andere Benutzer auf diesen Seiten. Bewegt sich ein Benutzer, dann ändert sich die Menge der sichtbaren Objekte. Gleichzeitig sehen andere Benutzer denjenigen, der sich bewegt, in ihrer Nachbarschaft auftauchen und wieder verschwinden.

Abbildung 2: Beispiel für eine Person, die sich von einer Web-Seite zur nächsten entlang eines Hyper-Links bewegt. Die Nachbarschaft, d.h. der sichtbare Bereich, ist mit der Person verbunden. Sie bewegt sich mit der Person und ändert sich dabei. Im Gegensatz zur realen Welt gibt es im Cyberspace mehr Freiheit bei der Definition von Nachbarschaft. Es wurden schon abstrakte Nachbarschaften realisiert, die statt durch Positionen im Web (URLs), durch andere Parameter definiert sind. Ein sehr schönes Beispiel dafür ist die Wissens- und Interessen-basierte Nachbarschaft des WerWeissWas-Dienstes [3]. Diese Nachbarschaft ist ebenfalls benutzerorientiert. Sie hängt aber nicht von Positionen im Web ab, sondern sie ist definiert durch die Ähnlichkeit von Interessensgebieten.

Es ist der Zweck aller Nachbarschaftsmodelle Personen in Beziehung zu setzen. Dies soll auf eine Art geschehen, die den Nutzen des Internets, bzw. des Web vergrößert. Ein Nachbarschaftsdienst hat deshalb die Aufgabe sinnvolle, d.h. für die Benutzer nützliche, Assoziationen mit anderen Benutzern herzustellen. Um diese Aufgabe zu erfüllen muß ein Nachbarschaftsdienst Informationen über die Benutzer erlangen. Wir verwenden dabei frei verfügbare Informationen über Bewegungen von Benutzern (durch Spurverfolgung) und Informationen, die die Benutzer explizit eingeben (z.B. Interessen, wie der WerWeissWas-Dienst).

Das Web - URLs und Links - bildet die Infrastruktur und bietet Inhalte. Dies ist der mit Web-Klienten sichtbare Teil des Cyberspace. Andere Objekte sind unsichtbar, obwohl sie vorhanden sind. Der Nachbarschaftsdienst wird als zusätzlicher Dienst eingeführt, um - wie ein Nachtsichtgerät - diese verborgenen Objekte für den Benutzer sichtbar zu machen. Im nächsten Kapitel wird das Modell eines dynamischen Nachbarschaftsdienstes vorgestellt, der dies leistet.

2 Modell des Nachbarschaftsdienstes

2.1 Orte und Wege im Web

2.1.1 Seiten

Wir glauben, daß die durch das World Wide Web gegebene Infrastruktur ein gutes Fundament für eine virtuelle Welt darstellt. Adressen und Links im Web basieren auf sogenannten Universal Resource Locators (URL). URLs und ihre Obermenge Universal Resource Names (URN [4]) repräsentieren Orte im Web. Dies wird vermutlich für längere Zeit (mehrere Jahre) so bleiben. Obwohl wir hier meistens den Begriff URL verwenden werden, können alle Konzepte gleichermaßen auf URNs angewendet werden, sobald diese in größerem Maßstab im Web verwendet werden.

Wir betrachten Web-Seiten und alle anderen Arten von Dokumenten, die über das Netz verfügbar sind, als Orte in der virtuellen Welt. Diese virtuellen Orte sind das Gegenstück zu Orten in der realen Welt, wie Räume, Straßenecken und Geschäfte. Personen bewegen sich im Web zwischen virtuellen Orten über Hypertext-Links. Hypertext-Links sind die Verbindungen zwischen den virtuellen Orten. Sie entsprechen den Straßen und Wegen der realen Welt. Der einzige Unterschied zu realen Straßen besteht darin, daß es nicht möglich ist, auf den virtuellen Straßen anzuhalten, bevor das Ziel erreicht ist. Die Funktion der Straße als Aufenthaltsort wird im Web von sogenannten Indexseiten übernommen, die als Zubringer zu den Inhaltsseiten dienen.

Orte im Web sind nicht notwendigerweise nur statische HTML-Seiten. Es gibt abstrakte Orte, wie die oben erwähnten, die auf persönlichen Interessen von Benutzern basieren. Diese Orte sind nicht Teil des Adressenraumes, der durch die URLs aufgespannt wird. Trotzdem können sie für den Zweck der dynamischen Nachbarschaft durch URLs repräsentiert werden. Ihre URLs bestehen dann aus der Adresse des Diensteanbieters (z.B. www.wer-weiss-was.de) oder des Datenbankservers und den Parametern des Benutzers (z.B. einer Zeichenkette kodierter Interessensbeschreibungen).

2.1.2 Links

Hypertext-Links dienen momentan nur als Verbindungen zwischen Orten (Seiten). Tatsächlich haben sie aber oft noch andere Eigenschaften. Ein Beispiel dafür ist das rel-Attribut von HTML-links. Das rel-Attribut enthält zusätzliche Information über die Art des Links. In unserer Implementierung verwenden wir ein zusätzliches Attribut zum Anker-Tag (HTML <A>-Tag), das über die Länge eines Links Auskunft gibt. Dieses Attribut (genannt "distance") ist optional. Es enthält ein Maß für die Stärke der Verbindung. Orte können durch dieses Attribut weit entfernt sein, obwohl sie durch einen Hypertext-Link direkt verbunden sind. Dies ist sehr nützlich, um Seiten zu trennen, die miteinander verbunden, inhaltlich aber nicht verwandt sind. Beispiele für solche Links gibt es auf sogenannten Hotlist- oder Bookmark-Seiten, die Verweise auf viele, nicht inhaltlich verwandte, Seiten enthalten. Der umgekehrte Fall ist eine Distanz von Null. Durch die Null-Distanz können mehrere Seiten zu einer virtuellen Seite kombiniert werden. Natürlich wird das Distanz-Attribut auf unmodifizierten Web-Seiten (Web-Servern) normalerweise fehlen. Der Standardwert für diesen Fall ist "1". Das Distanz-Attribut enthält entweder einen numerischen Wert in Einheiten von Hypertext-Links (Fließkommawerte) oder eine textuelle Konstante als sogenannte Named-Relationship. Momentan sind die Konstanten "near", "far", und "unrelated" definiert.

Die weitaus meisten Hypertext-Links im Web sind nur unidirektional. Dies ist der Grund für das bekannte "dangling links"-Problem (siehe zum Beispiel [5]). Im Rahmen des Nachbarschaftsdienstes wurde dagegen entschieden, Links zwischen Dokumenten symmetrisch, d.h. bidirektional zu behandeln, da damit eine symmetrische Sichtbarkeit gewährleistet wird, die der alltäglichen Erfahrung entspricht. Diese Entscheidung ist aber nicht Teil des Nachbarschaftsmodells. Sie kann in einer anderen Implementierung des gleichen Dienstes anders ausfallen, ohne die Kompatibilität zu verletzen.

2.1.3 Konferenzräume

Das Distanz-Attribut "unrelated" bedeutet eine komplette Trennung von Orten so, wie reale Wände die Räume eines Gebäudes trennen. Obwohl Personen sich problemlos, wie gewohnt, zwischen Web-Seiten bewegen können, können sie doch nicht sehen, was sich hinter der durch das "unrelated"-Attribut entstandenen Wand befindet. Tatsächlich wird dies realisiert, indem die als "unrelated" markierten Links in HTML durch den Nachbarschaftsdienst ignoriert werden. Da Web-Klienten das Distanz-Attribut ignorieren, wird Web-Browsen über einen solchen Link nicht behindert.

Diese Möglichkeit wird dazu verwendet, um virtuelle Konferenzräume und geschlossene Gruppen zu erzeugen. Virtuelle Konferenzräume werden im Web durch URLs und Web-Seiten repräsentiert. Diese Seiten können durch Hypertext-Links, wie alle anderen Seiten in das Web eingebunden werden, sind jedoch als "unrelated" markiert, und wirken deshalb wie Wände um den Konferenzraum. Für geschlossene Gruppen können bei Bedarf durch Mechanismen des Web (HTTP) zusätzlich auch Zugriffsbeschränkungen eingeführt werden. Man kann sich leicht eine Liste von Konferenzräumen vorstellen, die Hypertext-Links in verschiedene Räume besitzt. Durch das "unrelated"-Attribut ist es nicht möglich in die Räume hineinzusehen. Die Räume sind verschlossen durch Web-eigene Authentifizierungsmechanismen. Unter Umständen könnte man sogar trotzdem den Blick von innen nach außen zulassen. Dies zeigt, daß die Länge von Links nicht notwendigerweise symmetrisch sein muß.

Statische Nachbarschaften fügen sich so nahtlos in das Konzept der dynamischen Nachbarschaften ein. Statische Nachbarschaften sind nur ein Spezialfall der dynamischen Nachbarschaften. Die Web-Seiten sind durch entsprechende Distanz-Attribute so arrangiert, daß alle Personen in einem Konferenzraum die gleiche Sicht, d.h. den gleichen sichtbaren Bereich haben.

Abbildung 3: Der sichtbare Bereich ist beschränkt durch Hypertext-Links, die als "unrelated" markiert sind. Die Seite ist für den Nachbarschaftsdienst isoliert vom Web. Isolation bedeutet hier, daß es für Personen auf dieser Seite nicht möglich ist, die Umgebung zu beobachten und umgekehrt.

2.2 Personen und Kommunikation

Die virtuelle Welt besteht nicht nur aus Seiten und Verbindungen. Personen und andere aktive Einheiten, z.B. Robots, agieren in dem Raum, der durch die URLs aufgespannt ist. Wir unterscheiden bisher zwei Aktionsformen. Die erste ist Bewegung durch den virtuellen Raum, wie oben beschrieben. Die zweite Aktionsform ist Kommunikation zwischen den aktiven Einheiten, z.B. Personen oder mobilen Agenten. In der realen Welt sehen wir nicht nur Personen, die sich in der Nähe befinden, sondern wir kommunizieren auch mit ihnen auf verschiedene Art und Weise. Oder wir registrieren Kommunikation, die zwischen anderen Personen stattfindet.

Sowohl Personen, als auch Kommunikation bereichern das Web um neue Dimensionen. Während das World Wide Web die Infrastruktur bildet, bzw. das Substrat darstellt, existieren Personen und Kommunikation innerhalb dieser Umgebung. Natürlich sind Personen, die sich im Web bewegen nicht gleichzeitig überall. Das würde der Erfahrung aus der realen Welt widersprechen. Die Präsenz von Personen ist beschränkt auf die betrachteten Web-Seiten (die Position im Web) und die Umgebung dieser Seiten. Die Stärke der Präsenz - oder die Sichtbarkeit durch andere Personen - wird dabei bestimmt durch die sogenannte Sichtbarkeitsfunktion. Jede Person besitzt eine Sichtbarkeitsfunktion, die vom Abstand von der Position abhängt. Der Abstand wiederum wird durch die verwendete Metrik bestimmt. Die erste Wahl für die Metrik ist natürlich die Distanzmessung in Einheiten von Hypertext-Links. Aber es sind auch andere Metriken vorstellbar, wie zum Beispiel Distanzmessung durch Überlappung von Dokumenteninhalten.

Abbildung 4: Das Web ist die Basis der virtuellen Welt. Andere Objekte fügen neue Dimensionen hinzu. Das Web ist hier zweidimensional dargestellt, obwohl es tatsächlich ein Graph ist. Die linke Seite zeigt eine vereinfachte Darstellung von zwei Personen an verschiedenen Positionen im Web. Auf der rechten Seite sind die entsprechenden Sichtbarkeitsfunktionen zu sehen. Die Personen können sich gegenseitig sehen und kommunizieren, wenn sich die Sichtbarkeitsfunktionen überlappen.

Kommunikationsbeziehungen können dann hergestellt werden, wenn sich die Sichtbarkeitsfunktionen überlappen. Die Kommunikation wird mit synchronen Kommunikationsdiensten, wie MBONE-tools oder Internet-Telephony, durchgeführt. Dabei sind die Eigenschaften der Kommunikation, wie Qualität, nur durch die verwendeten Programme und die Netzwerkverbindung bestimmt. So wird im Gegensatz zur realen Welt die Kommunikationsqualität (z.B. die Lautstärke) bei einer schwachen Überlappung der Sichtbarkeitsfunktionen nicht künstlich verringert.

Kommunikationsbeziehungen werden durch Kommunikationsobjekte repräsentiert. Diese Objekte fügen sich perfekt in das Modell des hier vorgestellten dynamischen Nachbarschaftsdienstes ein. Wie Personen, haben auch Kommunikationsobjekte eine Sichtbarkeitsfunktion. Die Funktion hängt dabei von den Eigenschaften der beteiligten Objekte (z.B. Sichtbarkeitsfunktionen der beteiligten Personen) ab. Ein Kommunikationsobjekt ist dann sichtbar für eine dritte Person, wenn seine Sichtbarkeitsfunktion mit derjenigen dieser Person überlappt. Zusätzlich gibt es Vorkehrungen, die Privatsphäre garantieren, falls dies von den Kommunikationspartnern gewünscht wird.

Kommunikationsobjekte dienen nur als koordinierende Instanz. Sie realisieren nicht die Kommunikation selbst. Dies bleibt externen Programmen überlassen. So ist es zum Beispiel die Aufgabe eines Komunikationsobjekts für MBONE-tools eine Multicastadresse zu reservieren und diese an die beteiligten Kommunikationsprogramme zu verteilen. Kommunikationsobjekte für Punkt-zu-Punkt Kommunikationsprogramme, wie Internet-Phones, verteilen die Kommunikations-URLs der beteiligten Personen, z.B. RTSP URLs. Damit wird es möglich, in einem User Interface auf den Namen einer Person zu klicken, um die Kommunikationsbeziehung zu starten.

2.3 Abstraktionen

2.3.1 Objekte

Das Modell der dynamischen Nachbarschaft basiert auf einer erweiterbaren Menge von Objekttypen, bzw. Klassen im Sinne der objektorientierten Programmierung. Da das Modell der dynamischen Nachbarschaft unabhängig von der Programmiermethode ist, lehnen uns nicht zu sehr an die Terminologie der objektorientierten Programmierung an. Es werden jeweils die im Protokoll verwendeten englischen Begriffe angegeben.

Die aktuelle Implementierung umfaßt drei Objekttypen:

Jedes Objekt (Instanz) - einschließlich den Orten - besitzt eine Sichtbarkeitsfunktion. Diese Funktion bestimmt die Stärke der Präsenz eines Objekts im Raum, der durch die URLs aufgespannt wird.

2.3.2 Objektidentifikation

Objekte werden durch Typ und Namen identifiziert. Der Name muß global eindeutig für jeden Objekttyp sein. Er kann auf den Objekttyp zugeschnitten sein, um die Lesbarkeit des Protokolls zu erleichtern, die Adressierung externer Ressourcen zu vereinfachen oder eine effiziente Datenorganisation zu unterstützen. Orte (URLs) sind die wichtigsten externen Ressourcen. Das Konzept der URLs oder URNs wird vom Web in den Nachbarschaftsdienst übernommen. URLs werden als Namen für Ortsobjekte verwendet.

Personen- und Kommunikationsobjekte werden vom Nachbarschaftsdienst neu definiert. Für sie wird nicht wie bei Ortsobjekten auf externe Ressourcen zugegriffen. Die Namen von Personen- und Kommunikationsobjekten sind deshalb nicht durch externe Strukturen vorgegeben. Sie werden durch den Namen des Nachbarschaftsservers, der die Objekte erzeugt, global eindeutig gemacht. Der Name einer Person kann z.B. als p123@servicehost.domain:serviceport dargestellt werden. Implementierungen können aber auch andere global eindeutige Namen vergeben, wie z.B. die Email-Adresse eines Benutzers, soweit diese bekannt ist.

2.3.3 Variablen

Jedes Objekt hat Instanzvariablen, die Informationen über das Objekt speichern. Teile dieser Information werden von Benutzern bereitgestellt, z.B. in Dialogboxen eingegeben. Andere Informationen werden von Hilfskomponenten des Nachbarschaftsdienstes auf verschiedene Arten gewonnen oder zur Laufzeit erzeugt. Die veröffentlichte Spezifikation des Nachbarschaftsdienstes definiert einen Datentyp für jede Variable [6].

Die wichtigsten Variablen einer Person sind: "icon", tatsächlicher Name "realname", Position "locations" und Nachbarn "neighbors". Die Variablen "icon" und "realname" dienen dazu, die Person an der Benutzerschnittstelle darzustellen. Sie werden von den Benutzern angegeben, bzw. auf Standardwerte gesetzt, falls dies nicht geschieht. Andere Variablen kontrollieren die Berechnung des sichtbaren Bereiches und der Sichtbarkeitsfunktion. Die "neighbors"-Variable wird regelmäßig zur Laufzeit berechnet. Sie enthält die wichtige Liste der sichtbaren Personen in der Nachbarschaft.

Ortsobjekte haben Variablen, wie "icon", "links" und "persons". Das Icon dient ähnlich wie bei Personen zur Darstellung im User Interface. Es enthält z.B. ein verkleinertes Abbild einer Web-Seite (Thumbnail-Image). Die "links"-Variable enthält eine Liste von URLs, die den Hypertext-Links eines Dokuments entsprechen. Zusätzlich enthält diese Liste Linkeigenschaften wie die Distanz. Die "persons"-Variable ist das Gegenstück zur "locations"-Variable der Personen. Dies bedeutet aber nicht, daß die Information doppelt gespeichert ist. Der Inhalt der "persons"-Variable kann auch zur Laufzeit erzeugt werden. Derartige Implementierungsdetails werden von Leistungsüberlegungen bestimmt.

2.3.4 Methoden

Auf Objekte und ihre Variablen wird durch eine Menge von Methoden zugegriffen. Momentan sind folgende Methoden definiert:

Informationen zwischen Komponenten des Nachbarschaftsdienstes werden angefordert und ausgetauscht durch Kommandos. Die meisten dieser Kommandos beziehen sich auf Variableninhalte. Kommandos zur Manipulation von Variablen bestehen jeweils aus:

2.3.5 Assoziationen

Die Methoden ASSOCIATE und DISSOCIATE arbeiten auf Objekten. Sie werden verwendet um Objekte in Beziehung zu setzen. Das hier vorgeschlagene Nachbarschaftsmodell verwendet gerichtete, zweiwertige Assoziationen. Jede Assoziation besteht aus zwei Objekten, dem Quell- und dem Zielobjekt.

ASSOCIATE-Kommandos sind an das Zielobjekt gerichtet. Sie bestehen aus der Identifikation des Zielobjekts, der des Quellobjekts und zusätzlichen Attributen, die Details der Assoziation vermitteln. Die Objekttypen sind dabei beliebig.

Zur besseren Lesbarkeit des Protokolls wurden Parallelbezeichungen (Aliases) eingeführt, die zwischen bestimmten Kombinationen von Objekttypen anstatt des ASSOCIATE-Kommandos verwendet werden können.

Assoziationen arbeiten auch auf symbolischen Objektnamen. Momentan existieren die symbolischen Namen "_new", "_any", und "_visible". Sie bedeuten, daß ein Kommando ein neues Objekt des genannten Typs anlegen soll, von allen Objekten ausgeführt werden soll oder sich auf alle sichtbaren Objekte bezieht. Diese symbolischen Objektnamen wurden zur Optimierung eingeführt, nachdem sich gezeigt hatte, daß derartige Gruppenoperationen häufig vorkommen.

3 Realisierung

3.1 Komponenten

Der beschrieben Dienst zur Berechnung der Nachbarschaft wird vernünftigerweise als verteiltes System realisiert. Die eigentlichen Nachbarschaftsserver bilden dabei das Herz des Systems. Klienten dienen als Benutzerschnittstelle und zusätzliche Hilfskomponenten sammeln Informationen über Benutzer und das Web.

3.1.1 Server

Die Nachbarschafts-Server stellen die Benutzer-Dimension der virtuellen Welt zur Verfügung. Sie versorgen Nachbarschafts-Klienten im selben Sinne wie Web-Server die Web-Browser als Klienten bedienen. Das Web ist in Bereiche aufgeteilt, die im wesentlichen von den Web-Servern gebildet werden. Ein Nachbarschafts-Server ist verantwortlich für den Benutzerraum eines solchen Teil des Web und erzeugt den entsprechenden Teil des Benutzer-Raums. Jeder WWW-Server wird also im Prinzip durch einen Nachbarschafts-Server ergänzt, obwohl auch der Benutzer-Raum mehrerer Web-Server von einem einzigen Nachbarschafts-Server erzeugt werden kann.

Ein Nachbarschafts-Server unterhält im wesentlichen zwei Datenbanken, eine Link- und eine Benutzerdatenbank. Die Linkdatenbank spiegelt die Dokumenten- und Verbindungsstruktur des begleiteten Web-Servers wider, die noch durch Rückwärtsreferenzen aller Hypertextzeiger ergänzt wird, um symmetrische Sichtbarkeit zu gewährleisten. Links zu Objekten auf dem lokalen Server (core links) sind dabei einfach zu verwalten. Links zu Dokumenten auf anderen Servern (surface links) erzeugen hingegen Netzwerkverkehr zwischen den Nachbarschafts-Servern. Der oben beschriebene Link-Befehl (ASSOCIATE) dient zur Bekanntgabe eines Links. Er wird aber eher selten verwendet, so daß die erzeugte Netzlast neben dem HTTP-Verkehr zwischen Web-Klienten und -Servern fast verschwinden wird.

Abbildung 5: Auf der linken Seite ist eine vereinfachte Sicht eines Nachbarschafts-Servers dargestellt. Er kommuniziert mit Klienten, Web-Servern und anderen Nachbarschafts-Servern. Der rechte Teil zeigt eine Situation, in der ein N-Server für mehrere Web-Server verantwortlich ist.

Die Hauptaufgabe eines Nachbarschafts-Servers ist die Berechnung von sichtbaren Objekten. Sie geschieht auf der Grundlage der Link-Struktur, der Benutzervorgaben und verschiedener Systemparameter. Benutzervorgaben und Server-spezifische Einstellungen beeinflussen die Berechnung der Sichtbarkeitsfunktion und somit der Menge der sichtbaren Objekte. Gegenwärtig benutzen wir eine in Raum und Zeit quaderförmige Funktion: die personenbezogene Variable Link-Distanz bestimmt die Länge des Quaders. Der Wert 2 bedeutet zum Beispiel, daß alle Personen, die maximal zwei Hypertext-Referenzen entfernt sind, sichtbar sind (siehe Abbildung 6).

Ein zweiter Parameter steuert die Tiefe der Sichtbarkeit in der Zeit. Obwohl die Zeit nicht in Abbildung 4 gezeigt wurde, hat sie sich doch als sehr sinnvoll für die Benutzbarkeit des Systemes erwiesen. Die zeitliche Dimension der Sichtbarkeitsfunktion glättet nämlich die Bewegung der Benutzer zwischen Seiten, Benutzer bleiben noch für eine Weile sichtbar, obwohl sie die Seite schon verlassen haben.

Abbildung 6: Seiten im Sichtbarkeitsgebiet hängen von der Linkdistanz ab. Im rechten Teil kann man sehen, daß die Form dieser Zone durchaus komplex werden kann, da Benutzer mehrere Seiten gleichzeitig besuchen können.

Das Resultat der Berechnung, die Liste der sichtbaren Personen, Seiten und der Kommunikationsbeziehungen wird für die Nachbarschafts-Klienten, beispielsweise die Komponenten der Benutzerschnittstelle (das Userinterface), bereitgehalten.

3.1.2 Klienten

Nachbarschafts-Klienten präsentieren dem Benutzer eine Sicht auf den Benutzerraum. Sie benutzen das oben eingeführte Protokoll um Information über den Aufenthaltsort der Benutzer, die Umgebung, andere Benutzer und deren Eigenschaften abzufragen.

3.1.2.1 Benutzerschnittstelle

Die einfache Benutzerschnittstelle hat als Testwerkzeug für die Protokollmaschine und den Nachbarschafts-Server begonnen. Im Laufe der Entwicklung hat sie sich aber zum 'fettfreien' User Interface gemausert, das sich durch kurze Ladezeiten über das Internet und einfachste Bedienung auszeichnet. Es zeigt die Nachbarn als Liste mit Bildern, Namen und Position (URL). Dieses einfache Interface erlaubt auch die Änderung der Instanzvariablen (siehe 2.3.3) durch den Besitzer eines Objektes im Nachbarschafts-Server.

Abbildung 7: Die einfache Benutzerschnittstelle: Nachbarn werden als kleine Bilder (Icons) gezeigt, die auch zum Start von Kommunikationsverbindungen angeklickt werden können. Das kleine Chat-Fenster rechts oben soll die Benutzer zur Teilnahme ermuntern.

3.1.2.2 Erweiterte Benutzerschnittstelle

Die Virtual Reality Modeling Language (VRML) wurde in der Version 2.0 durch das sogenannte external authoring interface (EAI) erweitert, so daß dynamische virtuelle Welten dargestellt werden können. Anders als die einfache Benutzerschnittstelle zeigt unser erweitertes User Interface nicht nur eine Liste der Benutzer. Es modelliert vielmehr einen Ausschnitt des WWW und des Benutzerraumes dreidimensional, ähnlich wie das in [8], "A Graphical Hypertext Navigation Tool" geschieht. Es verwendet aber die VRML-Maschine, um die dreidimensionalen Szenen auf dem Computer des Benutzers anzuzeigen. Die erweiterte Benutzerschnittstelle kommuniziert dabei mit dem Modell über dynamische VRML-Objekte und Java-Skripts. Um die Umgebung besser zu symbolisieren, werden verkleinerte Abbilder der WWW-Seiten, sogenannte Thumbnails, von einem neuartigen Thumbnailserver erzeugt. Diese Repräsentanten der 'location objects' werden durch Linien verknüpft, die Links symbolisieren. Wieder dienen Icons und Namen als Platzhalter für Personen, sie werden um die Seiten, die sie gerade besuchen, gruppiert. Textkommunikation zwischen Benutzern (chat) erscheint in dieser Schnittstelle als Textspur, die vom Vordergrund der 3-D-Szene in der Hintergrund fließt. Wieder kann man mit der Maus auf die Bilder der Personen drücken, um Audio- und Video-Kommunikation einzuleiten.

3.2 Protokoll

Die Gesamtheit der Protokolldaten, Befehle und Parameter werden in HTTP gekapselt. Der wichtigste Vorteil dieser Technik ist die Kompatibilität mit anderen WWW- und Internet-Komponenten, wie zum Beispiel Proxies und Firewalls.

Das Nachbarschafts-System, Server und Klienten, basiert auf Daten, die sich ständig ändern. Um die Nachbarschaft korrekt zu berechnen und die Sichtbarkeit anzuzeigen, müssen Änderungen in der Datenbank oder von Parametern anderen Komponenten zügig gemeldet werden. Hier unterscheidet sich das dynamische Wesen des Nachbarschaftsdienstes ganz wesentlich von der statischen Natur des WWW. Während der Implementierungsarbeiten wurde klar, daß das Protokoll für den Transport solcher Information ein Dienstelement zum dynamischen Update benötigt, das im klassischen HTTP-Request/Response Verfahren nicht vorgesehen ist.

Wir haben uns deshalb entschieden, einen asynchronen Mechanismus in das HTTP Request/Response Verfahren einzubetten. Dabei wird die Methode SELECT verwendet, um Änderungsbenachrichtigungen für ein bestimmtes Objekt zu abonnieren. SELECT erzeugt einen wartenden Request beim Empfänger, der entweder nach einem sehr langen Timeout erfolglos oder vorher mit einer Änderungsbenachrichtigung zurückkehrt. Der Abonnent wird den neuen Wert anschließend mit einer konventionellen Request/Response Transaktion abholen, so daß kein unnötiger Verkehr durch regelmäßig wiederkehrende Abfragen (Polling) entsteht.

4 Ergebnisse

Der in diesem Bericht beschriebene Dienst wurde von uns in den Jahren 1996 und 1997 implementiert. Der voll funktionsfähige Prototyp wurde erstmals im Oktober 1997 auf mehreren WWW-Servern installiert und funktioniert seitdem zur vollen Zufriedenheit.

Diese Server berechnen unter anderem die Nachbarschaft für zwei besondere WWW-Server:

Beide Installationen haben gezeigt, daß die Benutzer überrascht und erfreut sind, andere Benutzer auf der selben Seite zu sehen. Da die meisten Benutzer (noch) keine Multimediaausrüstung und die nötige Konferenz-Software haben, wird von dem eingebauten chat-Werkzeug eifrig Gebrauch gemacht. Problematisch ist allerdings die etwas umständliche Bedienung des fernschreibartigen Chat-Dienstes, die die Verweildauer in der Konferenz doch verkürzt. Obwohl sich manche Benutzer sehr bemühen, die Unterhaltung in Gang zu halten, sind andere einfach zu bequem, die Tastatur zu benutzen.

Die Implementierungen der zentralen Komponenten, also des Nachbarschafts-Servers und der zugehörigen Programme zum Sammeln von Informationen, sind zuverlässig und auch schnell genug für ihre Aufgaben. Unsere anfängliche Sorge, daß einfache Graph-Traversierungsalgorithmen nicht leistungsfähig genug sind, hat sich als unbegründet erwiesen. Falls die Bearbeitung der Graphen in extrem viel besuchten, großen Servern in Zukunft ein Problem werden sollte, können besonders effiziente Verfahren, wie sie in der OR-Forschung entwickelt worden sind, Abhilfe schaffen.

Die Implementierung der Dienstelemente, die in die Klienten-Computer geladen werden, also die Benutzerschnittstelle, hat uns hingegen deutlich mehr Schwierigkeiten gemacht. Als Applets sind sie zeitgemäß in Java programmiert. Obwohl sich Java als Programmiersprache bewährt hat, hat der Test der Applets sich als äußerst zeitraubend erwiesen. Jede Komponente muß auf jedem Browser auf jedem unterstützten Betriebssystem erneut getestet und meist auch umprogrammiert werden.

5 Aktuelle und zukünftige Arbeiten

Das dynamische Nachbarschafts-System ist implementiert und wird bereits genutzt. Wie immer gibt es viele Möglichkeiten, Dienst und System zu verbessern. Wir arbeiten laufend an der Wartung und planen Erweiterungen, die die Benutzung erleichtern sollen oder Forschungscharakter haben.

5.1 Erweiterte Nachbarschaftsmodelle

Die Benutzer sollten die Möglichkeit haben, die Berechnung ihrer persönlichen Sichtbarkeits-Funktion zu steuern. Das gilt besonders in Servern, in denen sich Hunderte von Benutzern gleichzeitig aufhalten. In anderen Fällen wollen die Benutzer nur für eine bestimmte Gruppe sichtbar sein, die dafür aber auch weiter entfernt sein können. Deshalb wollen wir die Berechnung der Nachbarschaft durch benutzerspezifische Programme - Meetlets - erweitern.

Theoretisch genügen benutzerspezifische Programme, um die Sichtbarkeitsfunktion zu berechnen. In der Praxis ist das allerdings undurchführbar, da diese Methode wegen ihrer Komplexität (O(n2)) nicht skalierbar ist auf Größenordnungen von Tausenden oder mehr Benutzern . Deshalb benötigt der Dienst eine relativ kleine Startmenge, die auf konventionelle Weise berechnet wird. Die Meetlets dieser Menge erzeugen dann eine Untermenge, die sichtbar wird. Wir haben mit der Verwirklichung eines solchen Ansatzes auf der Basis unseres existierenden Systems begonnen. Die Meetlets entscheiden, ob ein Objekt durch den Benutzer gesehen werden soll und ob Objekte des Benutzers, zu dem das Meetlet gehört, für andere sichtbar sein sollen.

5.2 Benutzbarkeit und Installierbarkeit

Einfache Benutzbarkeit entsteht aus intuitiver Visualisierung der Nachbarschaft und direkter Manipulation der Kommunikationsbeziehungen. Diese Eigenschaften werden in der fortgeschrittenen Benutzerschnittstelle verwirklicht. Der Preis für diese Weiterentwicklung ist jedoch hoch: der Programmcode wird kompliziert und vor allem groß. Im Falle eines zur Laufzeit über das Internet geladenen Applets, das auf der Zielmaschine interpretiert werden muß, entsteht beim Benutzer beträchtlicher Unmut über die langen Wartezeiten. Obwohl wir gegenwärtig das Verhältnis Benutzbarkeit-Codegröße optimieren, verfolgen wir gleichzeitig einen anderen Ansatz, nämlich die Entwicklung eines konventionelle Programmes, das auf dem Klienten-Rechner permanent installiert wird.

Für Betreiber bedeutet Benutzbarkeit einfache Installation des Dienstes auf existierenden WWW-Sites, ohne daß der Inhalt neu geschrieben oder überarbeitet werden muß. Unser System kann bisher als zusätzlicher Dienst unter WindowsNT mit dem IIS oder unter UNIX mit dem CERN-Server mit minimalem Aufwand installiert und betrieben werden. Gegenwärtig erstellen wir Filter für den Netscape Enterprise Server und ein Apache Modul. Zur Wartung der Komponenten ist bereits ein WWW-basiertes Management Interface eingebaut.

6 Zusammenfassung

In den vorangegangenen Kapiteln haben wir Konzept, Implementierung und erste Ergebnisse unseres Systems zur dynamischen Nachbarschaft im World Wide Web vorgestellt. Das System ist implementiert und befindet sich seit einigen Monaten im Einsatz auf unseren WWW-Servern. Ungefähr 1000 Besucher werden pro Tag bearbeitet. Diesen Benutzern wird ihre Nachbarschaft während des Besuches graphisch präsentiert. Sie können andere sehen und deren Bewegung von Seite zu Seite beobachten. Außerdem erhalten sie Gelegenheit zur synchronen Kommunikation untereinander - ein einfacher Druck auf die Maustaste startet ein Internet-basiertes Videotelefon.

Wir warten und verbessern das System ständig. Außerdem erweitern wir den Dienst durch neue, verbesserte Mechanismen wie die Meetlets. Der Erfolg des Dienstes hängt jedoch vor allem von seiner Installation auf möglichst vielen WWW-Servern ab. Jeder Leser ist deshalb aufgefordert, die kostenlose Software von unserer WWW-site http://www.cobrow.com zu laden und auf seinem eigenen WWW-Server zu installieren. Selbstverständlich werden wir uns im Rahmen des "Universitätsmöglichen" bemühen, die Programme zu warten und bei der Installation zu helfen.

Die beschriebene Arbeit wurde im Rahmen des EU Telematics Projektes Cobrow (RE1003) durchgeführt. Wir möchten unseren Projektpartnern danken, die an anderen Komponenten des CoBrow-Dienstes, den synchronen Internet-Konferenzwerkzeugen und den Integrationsmechanismen für CSCW-Programmen, arbeiten.

7 Literaturverzeichnis

[1] Firefly Network, Inc. Personalize your Network. Cambridge, MA, 1997, Software online at http:/www.firefly.net/.

[2] Mirabilis Ltd, ICQ - World's Largest Internet Online Communication Network, Tel Aviv, Israel, 1997, Software online at http://www.mirabilis.com/.

[3] WerWeissWas, a search engine for experts, Germany, 1997, Software online at http://www.wer-weiss-was.de/.

[4] URN Syntax. R. Moats. Internet RFC 2141, proposed standard, May 1997, ftp://ds.internic.net/rfc/rfc2141.txt.

[5] R. Fielding: Maintaining Distributed Hypertext Infostructures: Welcome to MOMspider's Web, Computer Networks and ISDN systems, Volume 27, issue 2, 1994.

[6] EU Telematics Project CoBrow: "System Specification", Project Deliverable 4.3, Feb. 1997

[7] James E. Pitkow, R. Kipp Jones: Supporting the Web: A Distributed Hyperlink Database System, Fifth International World Wide Web Conference, Paris, France, May 6-10, 1996.

[8] P. Domel: WebMap - A Graphical Hypertext Navigation Tool. Proceedings of the Second International World Wide Web Conference. Chicago: 1994. http://www.tm.informatik.uni-frankfurt.de/Publications/Doemel/WWWFall94/www-fall94.html>

Adressen der Autoren

Dr. Konrad Froitzheim
Abteilung Verteilte Systeme
Universität Ulm
89069 Ulm
Email: frz@informatik.uni-ulm.de
Klaus H. Wolf
Abteilung Verteilte Systeme
Universität Ulm
89069 Ulm
Email: wolf@informatik.uni-ulm.de