-
BEREICH DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein Datenabrufsysteme und insbesondere
Datenabrufsysteme mit Mitanwesenheitsmechanismen.
-
DER ERFINDUNG
ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK
-
Datenabrufsysteme
sind in der Technik bekannt. Ein typisches Datenabrufsystem ist
in 1 gezeigt, auf die nun Bezug genommen wird. Datenabrufsysteme
bestehen üblicherweise
aus einem Datenserver 10 und mehreren Datenabruf-Clients 12,
die gewöhnlich
einzelne Rechner sind. Nach einem Befehl von einem Datenabruf-Client 12 greift
der Datenserver 10 auf ein Datenarchiv (data repository) 14 oder
eine Datenbank zu, die Datenobjekte 16 enthält. Die
Datenobjekte 16 sind gewöhnlich Datendateien. Die Datenabruf-Clients 12 kommunizieren auch
mit einem Benutzer 17, gewöhnlich über einen interaktiven Bildschirm 18.
-
Eine
typische Datenabrufoperation, die in 2 gezeigt
ist, auf welche nun Bezug genommen wird, geht wie folgt vonstatten:
Nach dem Empfang eines Befehls (Pfeil 1) vom Benutzer 17,
ein bestimmtes Datenobjekt 16 abzurufen, sendet (Pfeil 2) der
Datenabruf-Client 12 eine Anforderung an den Datenserver 10,
auf dem sich das Objekt befindet. Der Datenserver 10 ruft
das angeforderte Datenobjekt 16 (Pfeil 3) aus
dem Datenarchiv 14 ab und sendet (Pfeil 4) das
Objekt 16 an den Datenabruf-Client 12 zurück. Der
Datenabruf-Client 12 zeigt (Pfeil 5) dann das
abgerufene Datenobjekt 16 dem Benutzer 17 an.
-
Zu
weiteren in einem Datenabrufsystem enthaltenen Merkmalen können ein
Datenverwaltungsmechanismus, der es einem Datenabruf-Client 12 ermöglicht,
ein neues Datenobjekt 16 zu erzeugen, ein abgerufenes Datenobjekt 16 zu ändern und
das erzeugte oder geänderte
Datenobjekt 16 an den Datenserver 10 zur Ablage
in dem Datenarchiv 14 zurückzusenden, sowie ein Genehmigungsmechanismus gehören, der
es dem Server 10 ermöglicht,
bestimmte Anforderungen von Clients anzunehmen oder abzulehnen.
-
Beispiele
für Datenabrufsysteme,
von denen einige die zusätzlichen
Merkmale enthalten, sind unter anderem das File Transfer Protocol
(FTP), das Hypertext Transfer Protocol (HTTP), die Gopher- und Network-File-System-(NFS-)Standards,
Netwerk-Nachrichtenserver (NNTP), DEC Notes der Digital Electric
Corporation, USA, Lotus Notes von Lotus Inc., USA, Novell NetWare
von Novell Inc., USA, und die relationalen Datenbankverwaltungssysteme (RDBMS)
wie zum Beispiel diejenigen, die von Oracle, Sybase und Informatix,
alle USA, hergestellt werden.
-
ZUSAMMENFASSUNG DER VORLIEGENDEN
ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, Datenabrufsysteme mit
einem Mitanwesenheitsmechanismus bereitzustellen, mittels dem zwei oder
mehr Benutzer, die gleichzeitig dasselbe Datenobjekt abrufen, einander
bemerken und folglich in Echtzeit miteinander kommunizieren können. Das Datenabrufsystem
gibt einem Benutzer, der auf ein bestimmtes Dokument zugreift, die
Möglichkeit,
dieses in Echtzeit mit anderen zu erörtern, die möglicherweise
zufällig
zur selben Zeit ebenfalls auf dieses Dokument zugreifen.
-
"Mitanwesenheit" ("co-presence") ist eine Funktion,
die zwei oder mehr Benutzern die Möglichkeit gibt, an einem "virtuellen" Ort "anwesend" zu sein. Beispielsweise
ist das vom National Center for Supercomputing Applications (NCSA)
an der University of Illinois entwickelte COLLAGE ein Client-Server-Paket, das
das gemeinschaftliche Arbeiten über ein
gemeinsam benutztes Whiteboard, eine weiße Zeichenfläche mit
Grafik-Werkzeugen, unterstützt. Ein
Benutzer kopiert ein Datenobjekt von einem Datenserver in eine laufende
COLLAGE-Sitzung
und bearbeitet dann das Datenobjekt in der COLLAGE-Sitzung. Andere Benutzer,
die der COLLAGE-Sitzung beitreten, können dasselbe Datenobjekt ebenfalls
bearbeiten; um der Sitzung beizutreten, müssen die Benutzer die Adresse
der Collage-Sitzung jedoch vorher kennen.
-
Das
Internet Relay Chat ist ein internetweites textbasierendes Interaktionswerkzeug
in Echtzeit für mehrere
Teilnehmer. Es ermöglicht
Personen, in Echtzeit über
ein Thema ihrer Wahl interaktiv zu kommunizieren und virtuellen "Kanälen", die bestimmten Themen
gewidmet sind, beizutreten und diese wieder zu verlassen.
-
Multiple-User
Dungeons (MUDs) ist eine Familie von interaktiven Spielen für mehrere
Spieler, die eine Vorstellung von miteinander verbundenen Orten vermitteln,
wobei jeder Ort Objekte und Durchgänge zu anderen Orten enthalten
kann. Die Spieler können sich
von einem Ort an einen anderen begeben, mit "ebenfalls anwesenden" Spielern kommunizieren und auf die
Objekte an dem Ort einwirken.
-
Diese
Mitanwesenheitssysteme stellen virtuelle Orte bereit, an denen Personen
kommunizieren können.
Die Mitanwesenheit ist jedoch weder datenbezogen noch wird sie in
Verbindung mit dem Abruf eines Datenobjekts erzeugt, wie es in der
vorliegenden Erfindung vorgesehen ist.
-
Darüber hinaus
ermöglicht
die vorliegende Erfindung die Festlegung einer Gemeinschaft von Benutzern.
Diejenigen Benutzer der Gemeinschaft, die an einem Datenobjekt anwesend
sind, sind gleichzeitig miteinander anwesend, jedoch nicht mit Benutzern
einer anderen Gemeinschaft, die sich ebenfalls an dem Datenobjekt
befindet.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung wird daher ein Datenabrufsystem bereitgestellt,
das einen Datenserver, einen Mitanwesenheitsserver und mindestens
zwei Mitanwesenheits-Datenabruf-Clients beinhaltet. Der Datenserver
ruft mindestens ein Datenobjekt einer Vielzahl von Datenobjekten
aus einem Datenarchiv ab. Die Mitanwesenheits-Datenabruf-Clients kommunizieren mindestens
mit dem Datenserver und dem Mitanwesenheitsserver. Der Mitanwesenheitsserver enthält eine
Gemeinschaftseinheit und mindestens einen virtuellen Ort. Die Gemeinschaftseinheit
führt mindestens
eine Liste von Mitanwesenheits-Datenabruf-Clients, die zu einer Gemeinschaft gehören. Der
virtuelle Ort hat eine Liste von Mitanwesenheits-Datenabruf-Clients
aus der Gemeinschaft an dem virtuellen Ort und ermöglicht mindestens
die Kommunikation zwischen den dazu gehörenden Mitanwesenheits-Datenabruf-Clients.
Jeder der Mitanwesenheits-Datenabruf-Clients
enthält
eine Objektzuordnungseinheit und eine Mitanwesenheitseinheit. Die
Objektzuordnungseinheit ordnet ein von dem Datenserver empfangenes
Datenobjekt einem der virtuellen Orte im Mitanwesenheitsserver zu.
Die Mitanwesenheitseinheit wird dem einen virtuellen Ort zugeordnet,
und sie ordnet den Client der Gemeinschaft zu. Die Mitanwesenheitseinheit
ermöglicht auch
die Kommunikation zwischen den Mitanwesenheits-Datenabruf-Clients,
die dem einen virtuellen Ort zugeordnet sind.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung enthält
die Gemeinschaftseinheit darüber
hinaus auch eine Sucheinheit und eine Kommunikationseinheit. Die
Sucheinheit versieht einen ersten Mitanwesenheits-Datenabruf-Client eines ersten
virtuellen Ortes mit einem zweiten virtuellen Ort, dem ein zweiter
Mitanwesenheits-Datenabruf-Client
zugeordnet wird. Die Kommunikationseinheit stellt zwischen dem ersten
und dem zweiten virtuellen Ort einen Kommunikationskanal bereit,
damit der erste und der zweite Mitanwesenheits-Datenabruf-Client
miteinander kommunizieren können.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung enthält
der Mitanwesenheitsserver außerdem
eine wechselnde Vielzahl von Ortsprozessen, einen für jeden
virtuellen Ort, und einen Verwaltungsprozess, um den Kommunikationsfluss
von den Mitanwesenheits-Datenabruf-Clients zu den Ortsprozessen
zu ermöglichen.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung umfasst die Objektzuordnungseinheit überdies
eine Einheit, die es ermöglicht,
sich an einen neuen virtuellen Ort zu begeben.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung lässt
sich anhand der folgenden ausführlichen
Beschreibung in Verbindung mit den Zeichnungen besser verstehen
und als vorteilhaft erkennen, in denen:
-
1 eine
schematische Darstellung eines Datenabrufsystems nach dem Stand
der Technik ist;
-
2 eine
schematische Darstellung einer Datenabrufoperation nach dem Stand
der Technik ist;
-
3 ein
Datenabrufsystem mit einem Mitanwesenheitsserver schematisch darstellt,
der gemäß einer
ersten bevorzugten Ausführungsform
der vorliegenden Erfindung aufgebaut ist und betrieben wird;
-
4 eine
Mitanwesenheits-Datenabrufoperation schematisch darstellt;
-
5 eine
alternative Ausführungsform
eines Mitanwesenheits-Datenabrufsystems
und seiner Arbeitsweise schematisch darstellt;
-
6 ein
Gemeinschafts-Mitanwesenheitssystem schematisch darstellt, das gemäß einer
weiteren bevorzugten Ausführungsform
der vorliegenden Erfindung aufgebaut ist und betrieben wird;
-
7 eine
Mitanwesenheits-Datenabrufoperation in dem System von 6 schematisch
darstellt; und
-
8 Operationen
in dem Gemeinschafts-Mitanwesenheitsserver von 6 schematisch
darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Es
wird nun Bezug auf die 3 und 4 genommen,
die das Datenabrufsystem der vorliegenden Erfindung veranschaulichen.
Das System der vorliegenden Erfindung umfasst üblicherweise einen Datenserver 10 und
ein Datenarchiv 14 wie nach dem Stand der Technik. Gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung umfasst es auch einen Mitanwesenheitsserver 20 und eine
Vielzahl von Mitanwesenheits-Datenabruf-Clients 22, von
denen jeder mit dem Datenserver 10, dem Mitanwesenheitsserver 20 und über den
zugehörigen
Bildschirm 18 auch mit einem Benutzer 17 kommuniziert.
-
Wie
nach dem Stand der Technik fordert jeder Datenabruf-Client 22 ein
Datenobjekt 16 über den
Datenserver 10 an, der das angeforderte Datenobjekt 16 aus
dem Datenarchiv 14 abruft. Gemäß einer bevorzugten Ausführungsform
der vorliegenden Erfindung informiert der Mitanwesenheits-Datenabruf-Client 22 darüber hinaus
gleichzeitig auch den Mitanwesenheitsserver 20, dass er
ein bestimmtes Datenobjekt 16, zum Beispiel das Objekt 16a,
abgerufen hat. Als Antwort darauf fügt der Mitanwesenheitsserver 20 den
Datenabruf-Client 22 zu einem virtuellen Ort 24 hinzu,
der dem abgerufenen Datenobjekt 16a zugeordnet ist. Der
Client 22 ordnet die virtuellen Orte 24a bis 24c den
abgerufenen Datenobjekten 16a bis 16c zu.
-
Um
die Erörterung
klar verständlich
zu machen, sagen wir, dass der Mitanwesenheitsserver 20 für jedes
auf dem Datenserver 10 gespeicherte Datenobjekt 16 einen
virtuellen Ort 24 verwaltet. Es wird als vorteilhaft erkannt
werden, dass der Mitanwesenheitsserver 20 einen virtuellen
Ort 24 auch auf Anforderung erzeugen kann, wenn der erste
Benutzer an dem Datenobjekt 16 erscheint, und den virtuellen
Ort 24 entfernen kann, wenn niemand anwesend ist.
-
Alle
Benutzer, die über
den Datenabruf-Client 22 auf ein Datenobjekt 16 zugreifen,
werden zu dem virtuellen Ort 24 hinzugefügt, der
zu dem Datenobjekt 16 gehört, auf das sie zugegriffen
haben. Außerdem
versieht der Mitanwesenheitsserver 20 jeden virtuellen
Ort 24 mit Möglichkeiten
zur Kommunikation zwischen Benutzern, so dass jeder Benutzer, der auf
ein Datenobjekt 16 zugreift, auf Wunsch mit den anderen
Benutzern kommunizieren kann, die gerade dasselbe Datenobjekt 16 verwenden.
Der Mitanwesenheitsserver 20 ermöglicht einem Benutzer 17,
der an einem Datenobjekt 16 anwesend ist, andere ebenfalls
anwesende Benutzer 17 zu bemerken und stellt ein Mittel
bereit, damit ebenfalls anwesende Benutzer 17 miteinander
in Echtzeit kommunizieren können.
Die Kommunikation zwischen Benutzern 17 kann auch von Client
zu Client erfolgen, wenn die Kommunikation über den Mitanwesenheitsserver 20 langsam
ist.
-
Im
Grunde wandelt der Mitanwesenheitsserver 20 jedes Datenobjekt
in einen virtuellen Ort um, an dem sich Benutzer 17 treffen
können,
um das Datenobjekt 16 zu betrachten, es zu verändern und
zu erörtern.
Wenn ein Datenserver 10 zum Beispiel Benutzerhandbücher für ein bestimmtes
Produkt enthält,
könnte
es für
den Verkäufer
des Produkts hilfreich sein, eine Person, die Unterstützung gibt,
an dem virtuellen Ort oder an den virtuellen Orten, der/die mit
den Benutzerhandbüchern
verbunden ist/sind, zu platzieren. Die Unterstützung gebende Person kann dann
in Echtzeit denjenigen Benutzern helfen, die auf die Benutzerhandbücher zugreifen, wenn
diese weitere Hilfe benötigen
oder Schwierigkeiten haben, "ihren
Weg" durch die Produktdokumentation
zu finden.
-
Der
Mitanwesenheitsserver 20 und der Mitanwesenheits-Datenabruf-Client 22 befolgen
ein Mitanwesenheitsprotokoll, das mit den Pfeilen 31 bis 38 von 4 veranschaulicht
ist.
-
Ein
Benutzer 17 ruft gemäß dem Protokoll, das
nach dem Stand der Technik beschrieben ist (Pfeile 31 bis 35, ähnlich den
Pfeilen 1 bis 5 von 2), ein
Datenobjekt 16d von einem bestimmten Datenserver 10 ab.
Gleichzeitig sendet (Pfeil 36) der Mitanwesenheits-Datenabruf-Client 22 eine
Nachricht an den virtuellen Ort 24d in dem Mitanwesenheitsserver 20,
der dem Datenobjekt 16d zugeordnet ist, die besagt, dass
der Benutzer auf das Datenobjekt 16d zugegriffen hat. (Üblicherweise
haben die Datenobjekte 16 festgelegte Namen auf dem Datenserver 10.
Clients 22 verwenden dieselben oder entsprechende Namen,
um die entsprechenden virtuellen Orte 24 auszuweisen).
Der virtuelle Ort 24d fügt (Schritt 37)
dann den Benutzer zu der Liste der ebenfalls anwesenden Benutzer
hinzu und sendet eine dementsprechende Nachricht (Pfeil 38)
an alle ebenfalls anwesenden Benutzer einschließlich des Benutzers, der gerade
erst zu dem virtuellen Ort 24d hinzu kam.
-
Wenn
ein an einem Datenobjekt 16 anwesender Benutzer 17 eine
Nachricht an ausgewählte der
ebenfalls anwesenden Benutzer 17 senden möchte, sendet
der erste Benutzer 17 eine dementsprechende Nachricht über den
Mitanwesenheits-Datenabruf-Client 22 und
den Mitanwesenheitsserver 20 an den zugeordneten virtuellen
Ort 24, der die Nachricht wiederum an die ausgewählten Benutzer 17 weiterleitet,
die am Datenobjekt 16 anwesend sind.
-
Wenn
ein Benutzer 17 seine Anwesenheit an einem Datenobjekt 16 beendet
(entweder weil er ein anderes Datenobjekt 16 von demselben
oder einem anderen Datenserver 10 abruft oder seinen Mitanwesenheits-Datenabruf-Client 22 abschaltet),
sendet der Mitanwesenheits-Datenabruf-Client 22 eine dementsprechende
Nachricht (Pfeil 36) an den virtuellen Ort 24,
der den Benutzer 17 wiederum aus der Liste der ebenfalls
anwesenden Benutzer entfernt. Der virtuelle Ort 24 sendet
dann eine Nachricht (Pfeil 38) an alle verbleibenden ebenfalls
anwesenden Benutzer 17, mit der er sie von diesem Ereignis
in Kenntnis setzt.
-
Das
Mitanwesenheitsprotokoll kann mittels der Operationen beschrieben
werden, die von dem Mitanwesenheits-Datenabruf-Client 22, dem Mitanwesenheitsserver 20 und
dem virtuellen Ort 24 durchgeführt werden. Der folgende Pseudocode
beschreibt das Protokoll:
-
Für den Client 22 des
Benutzers U:
-
Es
sei angenommen, dass der Benutzer U bereits über das Dokument D1 vom Server
S1 verfügt.
- – Wenn
der Benutzer U das Dokument D2 vom Server S2 anfordert:
- 1. Versuche, das Dokument D2 vom Server S2 abzurufen;
- 2. Wenn der Abruf erfolgreich ist, sende folgende Nachricht
an den virtuellen Ort P(D1) im Mitanwesenheitsserver C(S1), die
dem Dokument D1 entspricht: "U
begab sich zum virtuellen Ort D2 auf dem Server S2".
- – Wenn
der Benutzer U die Anforderung stellt, den Text T zu sagen:
- • Sende
die Nachricht "U
sagte T" an den
Mitanwesenheitsserver C(S2).
- – Nach
dem Empfang der Nachricht "Benutzer
V trat vom virtuellen Ort P(Dj) auf dem Server Sk ein" (oder "Benutzer V begab
sich an den virtuellen Ort P(Dj) auf dem Server Sk"):
- • Zeige
dem Benutzer U die aktuelle Liste der Benutzer an dem virtuellen
Ort an.
- – Nach
dem Empfang der Nachricht "V
sagte T":
- • Zeige
dem Benutzer U die Nachricht "V
sagte T" an.
-
Für den virtuellen
Ort P(Di) auf dem Mitanwesenheitsserver C(Si):
-
Es
sei CP die Gruppe der ebenfalls anwesenden Benutzer:
- – Nach
dem Empfang der Nachricht "U
begab sich an den virtuellen Ort P(Dj) auf dem Server Sk":
- 1. Entferne den Benutzer U aus der Gruppe CP der ebenfalls anwesenden
Benutzer.
- 2. Sende an jeden verbleibenden Benutzer V in CP die Nachricht: "U begab sich an den
virtuellen Ort P(Dj) auf dem Server Sk".
- – Nach
dem Empfang der Nachricht "U
trat vom virtuellen Ort P(Dj) auf dem Server Sk ein":
- 1. Füge
den Benutzer U der Gruppe CP von ebenfalls anwesenden Benutzern
hinzu.
- 2. Sende an jeden Benutzer V in der Gruppe CP der ebenfalls
anwesenden Benutzer die Nachricht "U trat vom virtuellen Ort P(Dj) auf
dem Server Sk ein".
- – Nach
dem Empfang der Nachricht "U
sagte T":
- • Sende
die Nachricht "U
sagte T" an jeden
Benutzer in der Gruppe CP der ebenfalls anwesenden Benutzer.
-
Der
Mitanwesenheitsserver 20 kann in einer beliebigen Weise,
die eine Mitanwesenheit ermöglicht,
realisiert werden. In einer Ausführungsform
ist der Mitanwesenheitsserver 20 als ein Unix-Prozess realisiert,
der eine nebenläufige
Programmiersprache mit der Bezeichnung Flat Concurrent Prolog (FCP)
ausführt.
Bei Verwendung eines FCP-internen leichtgewichtigen Prozessmechanismus,
wie er in der US-Patentschrift
5 222 221 von Houri u. a. beschrieben ist, die durch Bezugnahme
Bestandteil hiervon ist, kann jeder virtuelle Ort 24 als
ein Ortsprozess realisiert werden, wobei jeder Ortsprozess aus einem
Verbund von FCP-Prozessen gebildet wird. Jeder FCP-Prozess hält sich
an das vorstehend beschriebene Mitanwesenheitsprotokoll.
-
Der
Mitanwesenheitsserver 20 empfängt Mitteilungen auf einem
vorher zugewiesenen und veröffentlichten
Anschluss, dessen Kennung in dem Mitanwesenheits-Datenabruf-Client 22 enthalten
ist. Der Mitanwesenheitsserver 20 empfängt Nachrichten üblicherweise
von den Mitanwesenheits-Datenabruf-Clients 22 und stellt
sie dem entsprechenden virtuellen Ort 24 bereit.
-
Auf
Wunsch kann der verwaltende Unix-Prozess (der Mitanwesenheitsserver 20)
darüber
hinaus auch immer einen leichtgewichtigen Prozess (den virtuellen
Ort 24) erzeugen, wenn ein erster Benutzer auf ein Datenobjekt 16 zugreift,
und er kann einen Prozess immer entfernen, wenn an dem jeweiligen virtuellen
Ort 24 keine Benutzer mehr mitanwesend sind.
-
Es
wird als vorteilhaft erkannt werden, dass das Datenabrufsystem der
vorliegenden Erfindung mit standardmäßigen Datenabruf-Clients 12 arbeiten kann,
die nicht über
eine Mitanwesenheits-Funktion verfügen, da die Kommunikation mit
dem Mitanwesenheitsserver 20 von den Datenabrufoperationen getrennt
stattfindet.
-
Es
wird darüber
hinaus als vorteilhaft erkannt werden, dass das System der vorliegenden
Erfindung problemlos aus einem vorhandenen Datenabrufsystem nach
dem Stand der Technik erzeugt werden kann. Der Aufrüstprozess
beinhaltet das Hinzufügen
eines Mitanwesenheitsservers 20, wie er vorstehend beschrieben
wurde, und eine Änderung
der Datenabruf-Clients 12 dahingehend, dass aus ihnen Mitanwesenheits-Datenabruf-Clients 22 werden,
indem sie um das folgende Leistungsspektrum erweitert werden:
- a) die Fähigkeit,
einen zusätzlichen
Kommunikationskanal mit dem Mitanwesenheitsserver 20 zu öffnen;
- b) die Fähigkeit,
Datenobjekte 16 virtuellen Orten 24 zuzuordnen;
- c) die Fähigkeit,
Informationen über
die Mitanwesenheit anzuzeigen;
- d) die Fähigkeit,
Benutzern 17 die Kommunikation in Echtzeit zu ermöglichen;
und
- e) die Fähigkeit,
den Mitanwesenheitsserver 20 zu benachrichtigen, wenn der
Betrieb des Client 22 beendet oder der Client 22 abgeschaltet
wird.
-
Es
wird als vorteilhaft erkannt werden, dass Datenabruf-Clients, die nicht
aufgerüstet
wurden, trotzdem mit dem Datenabrufsystem der 3 und 4 arbeiten
können.
-
Es
wird nun Bezug auf 5 genommen, die eine alternative
Ausführungsform
der vorliegenden Erfindung veranschaulicht. In dieser Ausführungsform
umfasst das Datenabrufsystem dieselben Elemente, aber sie sind anders
konfiguriert. Im Einzelnen umfasst das Datenabrufsystem die Mitanwesenheits-Datenabruf-Clients, die mit
der Bezugszahl 40 gekennzeichnet sind, und einen Mitanwesenheits-Datenabrufserver 42 sowie
den Datenserver 10 und das Datenarchiv 14 wie
nach dem Stand der Technik.
-
In
dieser alternativen Ausführungsform
kommunizieren die Mitanwesenheits-Datenabruf-Clients 40 nur
mit dem Mitanwesenheits-Datenabrufserver 42, wobei sie
ihm ihre Datenabrufanforderungen, die der Server 42 wiederum
an den Datenserver 10 weiterreicht, und ihre Mitanwesenheits-Mitteilungen übergeben.
Der Mitanwesenheits-Datenabrufserver 42 enthält die virtuellen
Orte 44. Es können
auch viele Server 42 vorhanden sein, von denen jeder Datenabrufanforderungen
für seinen
zugehörigen
Datenserver 10 abwickelt.
-
Das
Folgende ist Pseudocode, der das Protokoll zwischen Clients 40 und
dem Server 42 beschreibt:
-
Für den Client 42 des
Benutzers U:
-
Es
sei angenommen, dass der Benutzer das Dokument D1 gerade auf dem
Server S1 hat.
- – Wenn der Benutzer das Dokument
D2 vom Server S2 anfordert:
- 1. Sende die Nachricht "U
stellt die Anforderung, vom Ort P(D1) auf dem Server S1 einzutreten" an den Ort P(D2)
im Mitanwesenheitsserver C(S2).
- 2. Wenn der Datenabruf erfolgreich ist, sende die Nachricht "U begab sich zum
Ort P(D2) auf dem Server S2" an
den Ort P(D1) im Mitanwesenheitsserver C(S1).
- – Wenn
der Benutzer U die Anforderung stellt, den Text T zu sagen:
- • Sende
die Nachricht "U
sagte T" an den
Mitanwesenheitsserver C(S2).
- – Nach
dem Empfang der Nachricht "V
trat vom Ort Dj auf dem Server Si ein" ("V
begab sich an den Ort Dj auf dem Server Si").
- • Zeige
dem Benutzer U die derzeit ebenfalls anwesenden Benutzer am Ort
P(Dj) an.
- – Nach
dem Empfang der Nachricht "V
sagte T":
- • Zeige
dem Benutzer U die Nachricht vom Benutzer V an.
-
Für den virtuellen
Ort P(Di) auf dem Mitanwesenheitsserver C(Si):
-
Es
sei CP die Gruppe der ebenfalls anwesenden Benutzer:
- – Nach
dem Empfang der Nachricht "U
begab sich an den virtuellen Ort P(Dj) auf dem Server Sk":
- 1. Entferne den Benutzer U aus der Gruppe CP der ebenfalls anwesenden
Benutzer.
- 2. Sende an jeden verbleibenden Benutzer V in CP die Nachricht: "U begab sich an den
virtuellen Ort P(Dj) auf dem Server Si".
- – Nach
dem Empfang der Nachricht "U
stellt die Anforderung, von dem virtuellen Ort P(Dj) auf dem Server
Sk einzutreten":
- 1. Versuche, Daten vom Datenserver 10 abzurufen.
- 2. Wenn dies gelingt:
- a. Sende die Daten an den Client 42 des Benutzers U.
- b. Füge
den Benutzer U zu der Gruppe CP der ebenfalls anwesenden Benutzer
hinzu.
- c. Sende an jeden Benutzer V in der Gruppe CP der ebenfalls
anwesenden Benutzer die Nachricht "U trat vom virtuellen Ort P(Di) auf
dem Server Si ein".
- – Nach
dem Empfang der Nachricht "U
sagte T":
- • Sende
die Nachricht "U
sagte T" an jeden
Benutzer in der Gruppe CP der ebenfalls anwesenden Benutzer.
-
Es
wird nun Bezug auf die 6 und 7 genommen,
die einen Gemeinschafts-Mitanwesenheitsserver, der gemäß einer
weiteren bevorzugten Ausführungsform
der vorliegenden Erfindung aufgebaut ist und betrieben wird, sowie
ein Verfahren, um ihn zu betreiben, veranschaulichen.
-
6 zeigt
zwei Gemeinschafts-Mitanwesenheitsserver 50A und 50B,
vier Mitanwesenheits-Datenabruf-Clients 52A, 52B, 52C und 53D sowie
vier Datenserver 54A, 54B, 54C und 54D.
Es wird als vorteilhaft erkannt werden, dass jeder Gemeinschafts-Mitanwesenheitsserver 50 mit
so vielen Datenservern 54 und Datenabruf-Clients 52 arbeiten kann,
wie gewünscht
werden; vier sind lediglich beispielhaft gezeigt.
-
Jeder
Gemeinschaftsserver 50 sieht über die Clients 52 eine
Gemeinschaft von ebenfalls anwesenden Benutzern vor, die alle auf
Daten zugreifen. Diejenigen Benutzer einer Gemeinschaft, die Daten wie
zum Beispiel eine Webseite betrachten, sind gleichzeitig miteinander
anwesend. Die Benutzer einer anderen Gemeinschaft jedoch (die beispielsweise
einen anderen Internet-Diensteanbieter nutzen könnte) sind nicht gleichzeitig
mit den Benutzern der ersten Gemeinschaft anwesend. Sie sind nur
mit den Benutzern ihrer eigenen Gemeinschaft gleichzeitig anwesend.
-
Dies
ist in 6 gezeigt. Die Clients 52A und 52B sind
dem Server 50A zugeordnet (siehe die durchgezogenen Linien 51A und 51B),
und die Clients 52C und 52D sind dem Server 50B zugeordnet (durchgezogene
Linien 51C und 51D). Wenn der Client 52A auf
ein Datenobjekt, das mit der Bezugszahl 56 gekennzeichnet
ist, auf dem Datenserver 54B zugreift, wie durch die gestrichelte
Linie 53A angegeben ist, erzeugt der Gemeinschaftsserver 50A einen virtuellen
Ort 58, der dem Datenobjekt 56 zugeordnet wird
und dem der Client 52A zugeführt wird (punktierte Linie 55A).
Wenn der Client 52B, der ebenfalls dem Gemeinschaftsserver 50A zugeordnet
ist, auf das Datenobjekt 56 zugreift (gestrichelte Linie 53B), wird
er dem virtuellen Ort 58 zugeführt (punktierte Linie 55B)
und ist gleichzeitig mit dem Client 52A anwesend, der sich
bereits dort befindet. Somit sehen die Clients 52A und 52B dasselbe
Datenobjekt, sie wissen von der Anwesenheit des jeweils Anderen
an dem Datenobjekt und können
miteinander in Dialog treten, entweder über das Datenobjekt oder über etwas
Anderes.
-
Wenn
der Client 52C jedoch auf das Datenobjekt 56 zugreift,
wie durch die gestrichelte Linie 53C angegeben ist, wird
er nicht dem virtuellen Ort 58 zugeführt, da dieser Ort zum Gemeinschaftsserver 50A gehört, und
der Client 52C gehört
zum Gemeinschaftsserver 50B. Vielmehr erzeugt der Gemeinschaftsserver 50B einen
eigenen virtuellen Ort, der mit der Bezugszahl 60 gekennzeichnet
ist und dem Datenobjekt 56 zugeordnet wird, und führt den Client 52C diesem
virtuellen Ort zu (wie durch die punktierte Linie 61A gekennzeichnet
ist). Wenn der Client 52D auf das Datenobjekt 56 zugreift,
wie durch die gestrichelte Linie 53D angegeben ist, führt der Gemeinschaftsserver 50B den
Client 52D dem virtuellen Ort 60 zu (wie durch
die punktierte Linie 61B angegeben ist), an dem der Client 52D gleichzeitig
mit dem Client 52C anwesend sein wird.
-
Es
wird als vorteilhaft erkannt werden, dass jeder Client 52 nur
mit denjenigen anderen Clients 52 gleichzeitig anwesend
ist, die zu demselben Gemeinschaftsserver 50 gehören, obgleich
alle vier Clients 52 auf dasselbe Datenobjekt 56 zugreifen.
-
Die
Prozedur, mit der eine Mitanwesenheit in einer Gemeinschaft ermöglicht wird,
ist in 7 veranschaulicht. Zuerst wird ein Benutzer 70 über seinen "Client"-Rechner 52 Teil
der Gemeinschaft, üblicherweise
indem er sich am Gemeinschafts-Mitanwesenheitsserver 50 anmeldet.
Dieser Schritt ist mit der Bezugszahl 71 gekennzeichnet
und beinhaltet das Führen
einer Liste von Benutzern, die Teil der Gemeinschaft bilden. Im
zweiten Schritt (mit der Bezugszahl 72 gekennzeichnet)
greift der Benutzer 70 auf ein Datenobjekt wie beispielsweise
das Datenobjekt 56 auf einem Datenserver 54 zu.
Im Schritt 73 stellt der Datenserver 54 dem Client 52 das
Datenobjekt 56 bereit. Im Schritt 74 sendet der
Client 52 eine Nachricht dahingehend, dass der Benutzer 70 auf das
Datenobjekt 56 zugegriffen hat, an den virtuellen Ort 58 auf
dem Gemeinschafts-Mitanwesenheitsserver 50, der dem Datenobjekt 56 zugeordnet
ist. Der virtuelle Ort 58 fügt dann den Benutzer 70 zur
Liste der Benutzer hinzu, die dort anwesend sind. Im Schritt 75 sendet
der Gemeinschafts-Mitanwesenheitsserver 50 schließlich eine
Nachricht, dass der Client 52 gerade auf das Datenobjekt 56 zugegriffen hat,
an alle anderen Clients 52, die in der Liste der Benutzer
des virtuellen Ortes 58 aufgeführt sind.
-
Es
wird als vorteilhaft erkannt werden, dass die Schritte 72, 73, 74 und 75 jeweils ähnlich den Schritten 32, 34, 36 und 38 von 4 sind.
Die durchgeführten
Aktionen sind dieselben wie die vorstehend beschriebenen, mit dem
einzigen Unterschied, dass virtuelle Orte sowohl dem Datenobjekt 56 als
auch dem virtuellen Ort 58 oder dem virtuellen Ort 60 des
jeweiligen Gemeinschafts-Mitanwesenheitsservers zugeordnet werden.
-
Es
wird nun kurz auf 8 Bezug genommen, die ein weiteres
Merkmal des Gemeinschafts-Mitanwesenheitsservers veranschaulicht. 8 stellt
einen Server 50, zwei Datenserver 54E und 54F und
zwei Mitanwesenheits-Datenabruf-Clients 52E und 52F dar.
In dieser Figur sind beide Clients 52E und 52F am
Server 50 angemeldet, aber der Client 52E greift
auf das Datenobjekt 70 des Datenservers 54E zu,
während
der Client 52F auf das Datenobjekt 72 des Datenservers 54F zugreift.
Folglich hat der Server 50 zwei virtuelle Orte 76 und 78, die
jeweils den Datenobjekten 70 und 72 zugeordnet sind.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung kann der Server 50 eine Kommunikation
zwischen den beiden Clients 52E und 52F ermöglichen,
obwohl sie zwei verschiedenen virtuellen Orten 76 und 78 zugeordnet
sind und somit nicht gleichzeitig miteinander anwesend sind. Um
einen Dialog einzuleiten, stellt einer der Clients, beispielsweise
der Client 52E, die Anforderung, dass der Server 50 den
Client 52F "findet". Der Server 50 durchsucht
die Listen der Clients, die jedem seiner virtuellen Orte 76, 78 usw.
zugeordnet sind, um den virtuellen Ort zu finden, dem der Client 52F zugeordnet
ist. Wenn er gefunden wird, öffnet
der Server 50 anschließend
einen Kommunikationskanal zwischen den beiden Clients über die
virtuellen Orte. Die beiden Clients sind nicht miteinander anwesend,
aber sie können
kommunizieren, da sie Teil derselben Gemeinschaft sind.
-
Es
wird darüber
hinaus als vorteilhaft erkannt werden, dass ein erster Client nach
einem zweiten Client suchen kann, der einem anderen Gemeinschafts-Mitanwesenheitsserver
zugeordnet ist, wenn es zwischen Gemeinschafts-Mitanwesenheitsservern
einen Kommunikationskanal gibt. Der Hauptserver sucht zuerst an
seinen virtuellen Orten, und wenn er den gewünschten Client nicht findet,
kann er die Anforderung stellen, dass die an ihn angeschlossenen
Server auch an ihren virtuellen Orten suchen. Wenn einer den gewünschten
Client findet, kann ein Kommunikationskanal zwischen den beiden
Servern und über
diese zwischen den beiden Clients geöffnet werden.
-
Der
Fachmann wird als vorteilhaft erkennen, dass die vorliegende Erfindung
nicht auf das beschränkt
ist, was vorstehend im Einzelnen gezeigt und beschrieben wurde.
Vielmehr wird der Umfang der vorliegenden Erfindung durch die folgenden
Ansprüche
festgelegt.