-
Die
Erfindung bezieht sich im Allgemeinen auf Computer und Computersoftware.
Spezieller bezieht sich die Erfindung generell auf ein Verfahren, Vorrichtung
und Datenverarbeitungsprogramm zur Anzeige von Hypertext-Dokumenten
und die Navigation zwischen ihnen mit Browser-Computerprogrammen
und dergleichen.
-
Hintergrund der Erfindung
-
Auf
Grund von Fortschritten in der Computer- und Netzwerk-Technologie wächst die
Menge und die Vielfalt an Informationen, auf die mit einem Computer
zugegriffen werden kann, weiterhin mit einer verblüffenden
Geschwindigkeit. Insbesondere das Internet hat Computernutzer in
die Lage versetzt, auf eine große
Vielfalt von Informationen auf Computern zuzugreifen, die sich in
aller Welt befinden.
-
In
dem Maße,
wie mehr und mehr Computernutzer mit Netzwerken wie dem Internet
verbunden sind, zeigte sich eine überwältigende gesellschaftliche
Verschiebung. Auch wenn Computernutzer in unterschiedlichen Städten oder
Staaten oder selbst auf unterschiedlichen Kontinenten physisch voneinander
getrennt sind, können
sie jetzt miteinander verbunden werden, um eine wirklich globale
Gemeinschaft zu bilden, die üblicherweise
als "Cyberspace" bezeichnet wird.
Innerhalb einer solchen Gemeinschaft haben Nutzer ein Bedürfnis, miteinander
zu kommunizieren, und dieser Wunsch nach Dialog (interaction) ist
eine der überwiegenden
Kräfte
gewesen, die das Wachstum des Internet antrieben.
-
Den
Nutzern steht eine Anzahl von Technologien zur Verfügung, um
miteinander über
ein Netzwerk zu kommunizieren. Elektronische Übertragung von Nachrichten,
auch als "Email" bezeichnet, ermöglicht Nutzern,
einander Nachrichten zu senden in ganz ähnlicher Weise, wie man Briefe
auf Papier mit dem normalen Postdienst an eine andere Person schicken
würde.
Elektronische "Schwarze
Bretter" (bulletin
boards) erlauben es den Nutzern, Nachrichten einzugeben, die von
jedem gelesen werden können,
der Zugriff auf diese Bretter hat. Echtzeit-Diskussionsforen, auch
als "Plauderräume" (chat rooms) bezeichnet,
erweitern die Konzepte elektronischer Schwarzer Bretter, um es Nutzern
zu ermöglichen,
von anderen Nutzern gesendete Nachrichten in Echtzeit zu sehen,
d.h. während
diese Nachrichten getippt werden. Groupware-Systeme erlauben es den
Nutzern, Informationen gemeinsam zu benutzen und als eine Gruppe
für weitere
gemeinsame Ziele zusammenzuarbeiten, d.h. Nutzern zu ermöglichen, Dokumente
gemeinsam zu erstellen und Kommentare zu diesen Dokumenten gemeinsam
zu verwenden.
-
Im
Unterschied zu den oben beschriebenen, auf dem Netzwerk beruhenden
Werkzeugen bieten herkömmliche
Web-Browser vergleichsweise wenig Dialog zwischen den Nutzern. Web-Browser
werden typischerweise benutzt, um auf Informationen zuzugreifen
und Informationen zu sehen, die in einem Teil des Internets gespeichert
sind, der als das "World Wide
Web" bezeichnet
wird. Solche Informationen werden typischerweise im World Wide Web
in Form von Hypertext-Dokumenten gespeichert, die typischerweise
Sammlungen von Informationen sind, die in einer Sprache formatiert
sind, die als Hypertext Markup Language (HTML) bekannt ist. Auf
Grund der immensen Popularität
des World Wide Web speichern auch viele private Netzwerke Informationen
in der Form von Hypertext-Dokumenten.
-
Praktisch
jede beliebige Information kann in einem Hypertext- Dokument dargestellt
werden, gleichgültig,
ob sie als Text, graphisch, als Video, akustisch, als Animation
usw. dargestellt ist. Wenn man jedoch die unermesslichen Ressourcen
ansieht, die im Internet und innerhalb privater Netzwerke verfügbar sind,
dann ist es oft für
Nutzer von Web-Browsern schwierig, nützliche Hypertext-Dokumente
und somit nützliche
Informationen ohne nennenswerte Anstrengungen auszumachen. Nach
einiger Zeit kann ein Nutzer schließlich eine gewisse Erfahrung beim
Auffinden von Informationen zu einem bestimmten Thema gewinnen;
aber immer wenn ein Nutzer zum ersten Mal versucht, Informationen
zu einem neuen Thema zu lokalisieren, muss er oft eine übermäßige Menge
nicht verwandter und nutzloser Informationen aussondern, bevor möglicherweise
nützliche
Informationen gefunden werden.
-
Andere
Nutzer können ähnliche
Mittel für
die Entwicklung von Erfahrung zu einem bestimmten Gebiet aufgewendet
werden, und es könnte
für neue Nutzer
außerordentlich
hilfreich sein, wenn sie von den vergangenen Bemühungen dieser anderen Nutzer
profitieren könnten,
um die Entwicklung ihrer eigenen Erfahrung auf diesem Gebiet zu
beschleunigen. Mit konventionellen Web-Browsern werden jedoch wenige
oder keine Möglichkeiten
der Zusammenarbeit unterstützt,
die es Nutzern erlauben, Ressourcen gemeinsam so zu benutzen wie
andere auf dem Netzwerk beruhende Werkzeuge zur Zusammenarbeit.
-
Unternehmungslustigere
Personen entwickeln wahrscheinlich ihre eigenen persönlichen
Websites, wenn sie an einem bestimmten Thema interessiert sind,
und beziehen vielleicht eine Liste "heißer Verbindungen" (hot link) ein,
die auf verwandte Hypertext-Dokumente
zeigen, die eventuell nützliche
Informationen zu diesem Gegenstand enthalten. Andere Nutzer müssen jedoch
erst wissen, wo sich die Website dieses Nutzers befindet, um auf
die heißen Verbindungen
zuzugreifen. Damit die Website nicht an Wert verliert, muss ihr
Eigentümer
die Initiative ergreifen, sie zu entwickeln und ständig zeitlich
zu aktualisieren, um neue nützliche
Informationen einzubringen.
-
Eine
andere Form der Zusammenarbeit, die für Nutzer von Web-Browsern verfügbar ist,
ist auf HTML beruhende Unterhaltung (HTML-based chat). Ähnlich zu
nicht auf HTML beruhenden Unterhaltungssystemen erlauben es auf
HTML beruhende Unterhaltungssysteme den Nutzern, an stattfindenden
On-line-Diskussionen
in Echtzeit teilzunehmen. Ein auf HTML beruhendes Unterhaltungssystem
unterscheidet sich jedoch von nicht auf HTML beruhenden Unterhaltungssystemen
dadurch, dass das System Skripte der Unterhaltungssitzung als HTML-Dokumente
erzeugt und überträgt, was
es demzufolge den Nutzern erlaubt, auf die Skripte über einen Web-Browser
anstatt mit anderer spezieller Software zuzugreifen. Mit einem solchen
System sind die Nutzer typischerweise imstande, an Unterhaltungsdiskussionen
(chat discussions) teilzunehmen, und es ist ihnen oft erlaubt, Profilinformationen über andere teilnehmende
Nutzer, zum Beispiel ihre Lieblingsverbindungen (favorite links),
Homepages, persönliche Informationen
usw. abzurufen.
-
Das
Ansehen von Skripts von auf HTML beruhenden Unterhaltungssystemen
ist jedoch dem Suchen im Web nicht besonders ähnlich, da der Inhalt der angezeigten
Skripts von den Teilnehmern der Unterhaltung und nicht von einem
Hypertext-Dokument des
Autors diktiert wird.
-
Ähnlich verhält es sich
auch bei der so genannten Blaxxun-Technik (Blaxxun CCpro. In: c't 12/1998 S.119),
die ein Plug-in für
herkömmliche Browser
wie Internet Explorer und Netscape Navigator darstellt. Dabei wird
auf entsprechenden Web-Seiten gezeigt, was andere Nutzer der Web-Seite
unternehmen. Es wird jedoch nicht gesagt, wie die Zugriffe auf die
Webseite kontrolliert und für
andere Benutzer transparent gemacht werden. Ausserdem werden die
Benutzer nicht über
die Existenz anderen Benutzers benachrichtigt.
-
Eine
weitere Form der Kommunikation im Internet ist die ICQ-Technik (ICQ Panels
Generation). Dabei handelt es sich vorrangig um einen Weg zur Kommunikation
in Echtzeit mit Besuchern auf einer eigenen Web-Seite und nicht
um eine Suchhilfe durch Verbindungen mit anderen Nutzern auf einer fremden
Web-Seite. Die Sicht ist also darin die des Besitzers der Webseite,
der sich dafür
interessiert, wer seine eigenen Webseite wie benutzt. Zwar werden
auch Listen von Benutzern der Web-Seite bei einem „ICQ Communication
Panel" auf der Seite
angegeben, doch wird diese Angabe vom jeweiligen Nutzer oder dem
Web-Seiten-Inhaber selbst beeinflusst bzw. diktiert. Die Adresse
des jeweiligen Nutzers wird nicht schon beim Aufsuchen der fremden
Web-Seite in die Liste als Information für andere Nutzer aufgenommen.
Somit ist auch diese Technik für
die Suche nach Informationen im Internet nicht ausreichend informativ.
-
Zwar
gibt es eine automatische Speicherung von URLs (Uniform Resource
Locator (gesamte Adresse einer Internet-Seite) ohne Inhaltsangaben durch
den Nutzer. Doch diese Technik wird in ganz anderen Bereichen als
in der Nutzererkennung für Web-Seiten
eingesetzt. So wird in der US-Patentschrift
US 5764908 A ein URL-cache
bei der Anwendung einer neuen, nicht hierarchischen, sondern auf Gleichberechtigung
der Programmmmodule (Cells) basierenden Programmarchitektur benutzt.
Dieser URL-cache dient zum Anrufen von Parameter-Files im Netzwerk
durch die Programmmodule (cells) bei Ausführung eines Programms.
-
Auch
sind Skripts von Unterhaltungen dynamisch und zeitlich veränderlich
und sind nicht schon vorher vorhanden und statisch wie viele Hypertext-Dokumente.
Weiterhin modifiziert bereits das einfache Ansehen des Skripts einer
Unterhaltung das Skript, das Hinzufügen oder Entfernen eines Betrachters
des Unterhaltungsskripts typischerweise im Text des Skripts widergespiegelt
wird. Darüber
hinaus fordern On-line-Unterhaltungssysteme typischerweise, dass
sowohl die Unterhaltungsverwaltung als auch die Erzeugungs- und Übertragungs-Funktionen des
Dokumentes stark in einer einzigen Anwendung integriert werden,
was solche Systeme für
das Ansehen von Hypertext-Dokumenten, die über verschiedene Stellen im
Internet verteilt sind, ungeeignet macht.
-
Infolgedessen
bleibt das Suchen im Web bis heute mehr oder weniger eine einsame
Aktivität,
im wesentlichen frei von dem Dialogverkehr, der von anderen auf
dem Netzwerk beruhenden Anwendungen unterstützt wird. Während es konventionelle, auf
dem Netzwerk beruhende Anwendungen den Nutzern erlauben, Ideen gemeinsam
zu benutzen und zusammenzuarbeiten, werden Nutzer von Web-Browsern allein
gelassen, sich durch all die Ressourcen im Internet zu plagen, die
möglicherweise
nützliche
Informationen enthalten. Wenn man das immer vorhandene Verlangen
nach mehr Nutzerdialog im Cyberspace berücksichtigt, dann begrenzt das
Fehlen von Dialogbetrieb, der durch konventionelle Web-Browser unterstützt wird,
oft wesentlich das Vergnügen und
die Produktivität
des Nutzers.
-
Deshalb
ergibt sich die Aufgabe, ein Verfahren, eine Vorrichtung und ein
Datenverarbeitungsprogramm bereitzustellen, durch das beim Suchen
im Web das wissen um die Benutzung bestimmter Web-Seiten durch andere
Nutzern und der Kontakt mit diesen automatisch ermöglicht wird,
wobei dieses Verfahren von konventionellen Web-Browsern unterstützt werden
soll.
-
Zusammenfassung
der Erfindung
-
Die
Erfindung widmet sich diesen und anderen Problemen, die mit dem
Stand der Technik zusammenhängen,
indem sie eine Vorrichtung, ein Programmerzeugnis und ein Verfahren
bereit stellt, die verfolgen, wo bestimmte Nutzer in einer Mehrbenutzer-Computerumgebung
suchen und solche Informationen einem oder mehreren Nutzern innerhalb
der Umgebung zur Verfügung
stellen. Beispielsweise kann in gewissen Ausführungsformen der Dialog zwischen
Nutzern unterstützt
werden, um das dynamische Auffinden und Abrufen nützlicher
Informationen zu erleichtern, beispielsweise, indem Nutzern erlaubt wird,
auf Listen von Lieblingsdokumenten, Homepages, Navigationsaufzeichnungen
usw. von anderen Nutzern während
der Suche zuzugreifen. Gewisse Ausführungsformen können auch
den Nutzerdialog verbessern, indem Nutzern erlaubt wird, während des
Suchens direkt miteinander zu kommunizieren, z.B. durch elektronische
Nachrichten, Echtzeitdiskussionen usw. Auf diese Weise kann die
Suche im Web von einer relativ isolierten Aktivität zu einem mehr
interaktiven Forum gemacht werden, durch das die Nutzer miteinander
zusammenarbeiten und auf der Erfahrung aufbauen können, die
andere entwickelt haben, um die gewünschten Informationen zu einem
bestimmten Gebiet aufzufinden.
-
In Übereinstimmung
mit einem Aspekt der Erfindung wird Zugang zu Hypertext-Dokumenten
in einer Mehrbenutzer-Computerumgebung bereitgestellt, indem Zugriffe
auf wenigstens ein Hypertext-Dokument
durch eine Vielzahl von Nutzern verfolgt werden, worunter sich ein
erster Nutzer und ein zweiter Nutzer befinden, und der erste Nutzer
von der Identität
des zweiten Nutzers unterrichtet wird. In Übereinstimmung mit einem weiteren
Aspekt der Erfindung wird Zugang zu Hypertext-Dokumenten in einer
Mehrbenutzer-Computerumgebung bereitgestellt, indem verfolgt wird,
welches Dokument aus einer Vielzahl von Hypertext-Dokumenten ein erster Nutzer
gerade anschaut, und einem zweiten Nutzer eine Kopie des Hypertext-Dokumentes übermittelt wird,
das gerade von dem ersten Nutzer angeschaut wird.
-
Diese
und andere Vorteile und Merkmale, die die Erfindung kennzeichnen,
werden in den hier angefügten
Ansprüchen
dargestellt und bilden einen weiteren Teil hiervon. Für ein besseres
Verständnis der
Erfindung und der durch ihre Anwendung erreichten Vorteile und Ziele
sollte jedoch Bezug genommen werden auf die Zeichnungen und den
begleitenden beschreibenden Text, in dem beispielhafte Ausführungsformen
der Erfindung beschrieben werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm eines vernetzten Computersystems in Übereinstimmung
mit der Erfindung.
-
2 ist
ein Blockschaltbild einer beispielhaften Hardware- und Software-Umgebung
für das vernetzte
Computersystem von 1.
-
3 ist
ein Blockdiagramm der Datenstruktur der aktiven Tabelle, die in
dem Client-Computer von 2 benutzt wird.
-
4A und 4B sind
Flussbilder, die den Programmablauf einer Hauptroutine für den Browser von 2 zeigen.
-
5A und 5B sind
Flussbilder, die jeweils die Programmabläufe der Routinen 'Verarbeite Nutzeroperation' und "Verarbeite Lieblingsverbindung
der Seite" von 4B darstellen
-
6 ist
ein Flussbild, das den Programmablauf des Anfragemoduls von 2 darstellt.
-
7 ist
ein Flussbild, das den Programmablauf einer Hauptroutine für den Sitzungsserver
von 2 darstellt.
-
8 ist
ein Flussbild, das den Programmablauf einer Hauptroutine für den Webserver
von 2 darstellt.
-
9 ist
ein Flussbild, das den Programmablauf der Routine 'Lade Seite' (get page) von 8 darstellt.
-
10 ist
ein Flussbild, das den Programmablauf der Routine 'Gib Seite frei' (release page) von 8 darstellt.
-
11 ist
eine Darstellung einer beispielhaften Computeranzeige, die die Operation
des Browsers von 2 veranschaulicht.
-
12 ist
eine Darstellung einer beispielhaften Dialogbox zur Benutzung bei
der Anzeige einer gespeicherten Nutzerliste mit dem Browser von 2.
-
13 ist
ein Flussbild einer Seitenanzeigeroutine, die von dem Browser von 2 ausgeführt wird.
-
14 ist
ein Blockdiagramm einer weiteren beispielhaften Hardware- und Software-Umgebung für das vernetzte
Computersystem von 1.
-
Ausführliche
Beschreibung
-
Hardware-
und Software-Umgebung
-
Wir
wenden uns nun den Zeichnungen zu, in denen in den verschiedenen
Ansichten gleiche Zahlen gleiche Teile bezeichnen; 1 stellt
ein Computersystem 10 in Übereinstimmung mit der Erfindung dar.
Das Computersystem 10 ist als ein vernetztes Computersystem
dargestellt, das eine Mehrbenutzer-Computerumgebung definiert und einen
oder mehrere Client-Computer 12, 14 und 20 enthält (z.B. Desktop-Computer
oder PCs, Workstations usw.), die mit dem Server 16 (z.B.
ein Server auf einem PC, einem Minicomputer, einem Computer mittlerer
Leistung, einem Großrechner
(mainframe) usw.) durch ein Netzwerk 18 verbunden sind.
Es ist auch ein zusätzlicher
Server 16a dargestellt, der eine Schnittstelle zum Server 16 über das
Netzwerk 18a besitzt und mit dem ein Client-Computer 12a verbunden
ist. Die Netzwerke 18 und 18a können praktisch
jede beliebige Art einer vernetzten Verbindung darstellen, darunter
(aber nicht darauf begrenzt) Nah- und Fernverkehrsnetze (local- area, wide-area networks), drahtlose
und öffentliche
Netzwerke (z.B. das Internet). Darüber hinaus kann eine beliebige
Anzahl von Computern und anderen Geräten durch die Netzwerke 18, 18a vernetzt
sein, z.B. zusätzliche
Client-Computer bzw. Server.
-
Der
Client-Computer 20, der den Computern 12, 12a und 14 ähneln kann,
enthält
eine Zentraleinheit (CPU) 21, eine Anzahl von peripheren
Komponenten, zum Beispiel eine Computer-Bildschirmeinheit 22, eine
Speichereinheit 23, einen Drucker 24 und verschiedene
Eingabeeinheiten (z.B. eine Maus 26 und eine Tastatur 27).
Die Server-Computer 16, 16a können in ähnlicher Weise konfiguriert
sein, wenn auch typischerweise mit größerer Verarbeitungsleistung
und Speicherkapazität,
wie es im Fachgebiet wohlbekannt ist.
-
2 veranschaulicht
auf andere Art und Weise eine beispielhafte Hardware- und Software-Umgebung
für ein
vernetztes Computersystem 10, die eine Vorrichtung 28 mit
einer Clienteinheit 30, die über ein Netzwerk 48 eine
Schnittstelle mit einer Servereinheit 50 besitzt. Für den Zweck
der Erfindung kann die Clienteinheit 30 praktisch jede
beliebige Art eines Computers, eines Computersystems oder einer
anderen programmierbaren elektronischen Einheit sein, die imstande
ist, als Client zu arbeiten, darunter ein Desktop-Computer, ein
tragbarer Computer, eine eingebettete Steuereinheit usw. In ähnlicher Weise
kann die Servereinheit 50 praktisch jede beliebige Art
eines Mehrbenutzer- oder Host-Computersystems darstellen. Jede Einheit 28, 30 und 50 kann nachstehend
auch als "Computer" oder "Computersystem" bezeichnet werden,
obwohl erkannt werden sollte, dass der Begriff "Einheit" auch andere geeignete programmierbare
elektronische Einheiten beinhalten könnte, die mit dieser Erfindung übereinstimmen.
-
Der
Computer 30 enthält
typischerweise wenigstens einen Prozessor 31, der mit einem
Speicher 32 verbunden ist, und der Computer 50 enthält in ähnlicher
Weise wenigstens einen Prozessor 51, der mit einem Speicher 52 verbunden
ist. Jeder Prozessor 31, 51 kann einen oder mehrere
Prozessoren darstellen (z.B. Mikroprozessoren), und jeder Speicher 32, 52 kann
die Direktzugriffspeichereinheiten (RAM) darstellen, die den Hauptspeicher
der entsprechenden Computer 30, 50 umfassen, sowie
beliebige ergänzende
Speicherebenen, z.B. Cachespeicher, nichtflüchtige (non-volatile) oder
Sicherungsspeicher (backup memory) (z.B. programmierbare oder Flash-Speicher,
Nur-Lese-Speicher
usw.) Zusätzlich
kann von jedem Speicher 32, 52 angenommen werden,
dass er Speicherbereiche enthält, die
sich irgendwo anders in dem jeweiligen Computer 30, 50 befinden,
z.B. irgendein Cachespeicher oder irgendeine Speichermöglichkeit,
die als ein virtueller Speicher benutzt wird, zum Beispiel in einer
Massenspeichereinheit oder einem anderen Computer, der mit dem jeweiligen
Computer 30, 50 über ein externes Netzwerk verbunden
ist.
-
Jeder
Computer 30, 50 weist typischerweise auch eine
Anzahl von Eingaben und Ausgaben auf, um Informationen nach außen zu geben.
Als Schnittstelle mit einem Nutzer oder Bediener enthält der Computer 30 typischerweise
ein oder mehrere Benutzer-Eingabeeinheiten 33 (z.B.
eine Tastatur, eine Maus, einen Trackball, einen Steuerknüppel (joystick),
ein Touchpad und/oder ein Mikrofon u.a.) sowie eine Anzeigeeinheit 34 (z.B.
einen Monitor mit Katodenstrahlröhre,
ein LCD-Anzeigefeld und/oder einen Lautsprecher u.a.). In gleicher
Weise wird die Nutzerschnittstelle zum Computer 50 typischerweise über ein
Terminal (Benutzerstation) behandelt, das mit einer Terminal-Schnittstelle 54 verbunden
ist.
-
Als
zusätzlichen
Speicher kann jeder Computer 30, 50 auch ein oder
mehrere Massenspeichereinheiten 36, 56 enthalten,
zum Beispiel ein Laufwerk für
Disketten oder andere entfernbare Platten, ein Festplatten-Laufwerk,
eine Speichereinheit mit direktem Zugriff (DA5D), ein optisches
Laufwerk (z.B. ein CD-Laufwerk,
ein DVD-Laufwerk usw.) und/oder ein Bandlaufwerk u.a. Weiterhin
kann jeder Computer 30, 50 eine Schnittstelle
zu einem oder mehreren Netzwerken über eine Netzwerk-Schnittstelle 38, 58 enthalten
(z.B. zu einem LAN, einem WAN, einem drahtlosen Netzwerk und/oder
dem Internet u.a.), um die Kommunikation von Informationen mit anderen Computern
zu erlauben, die mit dem Netzwerk verbunden sind.
-
Der
Computer 30 arbeitet unter der Steuerung eines Betriebssystems 40 und
führt unterschiedliche
Computersoftware-Anwendungen,
Komponenten, Programme, Objekte, Module, Datenstrukturen usw. aus
oder beruht anderweitig auf ihnen (z.B. ein Browser 41,
ein Anfrage-Modul (thread) 42, eine aktive Tabelle 44 und
eine gespeicherte Benutzerliste 46). In gleicher Weise
arbeitet der Computer 50 unter der Steuerung eines Betriebssystems 60 und
führt unterschiedliche
Computersoftware-Anwendungen,
Komponenten, Programme, Objekte, Module, Datenstrukturen usw. aus
oder beruht anderweitig auf ihnen (z.B. Sitzungsserver 62,
Webserver 64, aktive Tabelle 66, Sitzungstabelle 68 und
Beobachtertabelle 69). Darüber hinaus können verschiedene
Anwendungen, Komponenten, Programme, Objekte, Module usw. auch auf
einem oder mehreren Prozessoren in einem anderen Computer laufen,
der mit einem der Computer 30, 50 verbunden ist,
z.B. in einer verteilten oder in einer Client-Server-Computerumgebung.
-
Im
Allgemeinen werden die Routinen, die ausgeführt werden, um die Ausführungsformen
der Erfindung umzusetzen, gleichgültig ob sie nun als Teil eines
Operationssystems oder als eine spezifische Anwendung, eine Komponente,
ein Programm, ein Objekt, ein Modul oder eine Folge von Instruktionen realisiert
sind, hier als "Computerprogramme" oder einfach als "Programme" bezeichnet. Die
Computerprogramme umfassen typischerweise einen oder mehrere Befehle,
die sich zu verschiedenen Zeiten in verschiedenen Speichereinheiten
in einem Computer befinden und die, wenn sie gelesen und von einem oder
mehreren Prozessoren in einem Computer ausgeführt werden, diesen Computer
veranlassen, die Schritte auszuführen,
die notwendig sind, um Schritte oder Elemente auszuführen, die
die verschiedenen Aspekte der Erfindung verkörpern. Obwohl die Erfindung
bisher im Kontext voll funktionierender Computer und Computersysteme
beschrieben wurde und auch weiterhin beschrieben wird, werden darüber hinaus
Fachleute erkennen, dass die verschiedenen Ausführungsformen der Erfindung
als ein Programmprodukt in einer Vielzahl von Formen vertrieben
werden können
und dass die Erfindung ungeachtet der bestimmten Art der signaltragenden
Medien, die für den
Vertrieb in der Praxis benutzt werden, gleichermaßen anwendbar
ist. Beispiele für
signaltragende Medien sind u.a. (aber nicht beschränkt auf)
Speichermedien, zum Beispiel flüchtige
und nichtflüchtige Speichereinheiten,
Disketten und andere entfernbare Festplatten, Plattenlaufwerke,
optische Platten (z.B. CD-ROMS, DVDs usw.) u.a., und Übertragungsmedien,
zum Beispiel digitale und analoge Kommunikationsverbindungen.
-
Zusätzlich können verschiedene
nachstehend beschriebene Programme auf der Grundlage der Anwendung
gekennzeichnet werden, für
die sie in einer speziellen Ausführungsform
der Erfindung realisiert werden. Es sollte jedoch erkannt werden, dass
irgendeine bestimmte Programmnomenklatur, die folgt, nur der Bequemlichkeit
halber benutzt wird, und somit die Erfindung nicht beschränkt werden
sollte, nur in einer speziellen Anwendung verwendet zu werden, die
durch eine solche Nomenklatur gekennzeichnet bzw. einbezogen wird.
-
Fachleute
werden anerkennen, dass die in 1 und 2 veranschaulichten
beispielhaften Umgebungen nicht dazu bestimmt sind, die vorliegende
Erfindung einzuschränken.
Tatsächlich
werden Fachleute anerkennen, dass andere alternative Hardware- bzw. Softwareumgebungen
benutzt werden können,
ohne vom Bereich der Erfindung abzuweichen.
-
Interaktives
Suchen
-
Die
veranschaulichten Ausführungsformen der
Erfindung arbeiten im Allgemeinen so, dass sie verfolgen, wo verschiedene
Nutzer in einer Mehrbenutzer-Umgebung gegenwärtig suchen – typischerweise
auf der Grundlage des letzten Hypertext-Dokumentes, auf das solche
Nutzer zugegriffen haben. In den veranschaulichten Ausführungsformen
wird eine solche Verfolgung von einem oder mehreren Sitzungsservern
behandelt, die Schnittstellen zu einem oder mehreren Webservern
besitzen und typischerweise auf einen oder mehrere Servercomputer
verteilt sind, mit denen mehrere zu verfolgende Nutzer verbunden
sind. Jeder Nutzer, der Verfolgungsinformationen über andere
Nutzer auffinden möchte,
kann dies durch Dialog zwischen dem Browser des Nutzers und den
Sitzungs- und Webservern, die die Hauptstütze (backbone) der Suche in
der Mehrbenutzerumgebung umfassen, bewerkstelligen.
-
Während bei
einigen Ausführungen
alle Hypertext-Dokumente selbst auf den Webservern gespeichert sein
können,
die die Hauptstütze
für die
Suche in der Mehrbenutzer-Umgebung umfassen, ist es oft wünschenswert,
dass sich wenigstens ein Teil der Hypertext-Dokumente, die in der Umgebung verfolgt werden,
auf anderen Computern befindet, die beispielsweise über das
Internet mit einem Webserver verbunden sind. Dies erlaubt es beispielsweise,
dass ein Webserver in einem Proxy-Server, einer Firewall oder einem
anderen lokalen Server für
ein privates Netzwerk realisiert wird, der als eine Verbindung (gateway)
zu einem externen Netzwerk wie dem Internet funktioniert, mit dem
Status, dass verschiedene Nutzer verfolgt werden, selbst wenn die
Nutzer Dokumente anschauen, die außerhalb des privaten Netzwerks
gespeichert sind.
-
Um
einzelne Nutzer zu verfolgen, ist jedem Nutzer, der verfolgt werden
soll, ein Benutzer-Kennsatz (user header) zugeordnet. 3 veranschaulicht
zum Beispiel die Organisation einer geeigneten Datenstruktur für die aktive
Tabelle 44, die vom Browser eines Nutzers verwendet wird,
um Informationen über
andere Nutzer zu speichern, die gegenwärtig das gleiche Hypertext-Dokument
suchen. Tabelle 44 enthält
eine Vielzahl von Einträgen 72,
die alle mit einem bestimmten Uniform Resource Locator (URL) gekennzeichnet
sind, der ein gegebenes Hypertext-Dokument kennzeichnet. Innerhalb
jedes Eintrags 72 ist ein Zeiger zu einer verbundenen Liste von
Nutzerkennsätzen 74 gespeichert,
die bestimmte Nutzer kennzeichnen, die gegenwärtig das Hypertext-Dokument
suchen, das sich bei dem URL befindet, der in dem Eintrag gespeichert
ist.
-
Jeder
Nutzerkennsatz ist als ein Datensatz ausgeführt, der eine Anzahl von Feldern
enthält,
die notwendige Informationen über
einen bestimmten Benutzer bereitstellen, darunter ein Feld 76 für einen Spitznamen,
ein Feld 78 für
die Emailadresse, ein Sitzungs-Homeserver 80 (für die Benutzung
in einer Mehrbenutzer-Umgebung), ein Feld 82 für lokale TCP/IP-Adresse/Anschluss.
Ein Feld 84 für
das nächste
Element ist auch vorgesehen, um (falls vorhanden) zum nächsten datensatz
in der verbundenen Liste zu zeigen. Das Feld 84 für das nächste Element
im letzten Datensatz der verbundenen Liste hat typischerweise den
Eintrag eines Wertes NULL.
-
Es
sollte erkannt werden, dass die anderen Tabellen in der Vorrichtung 28 auch
die gleichen Benutzer-Kennsatz-Datensätze 74 benutzen wie
Tabelle 44. Beispielsweise ist die aktive Tabelle 66 in ähnlicher
Weise konfiguriert wie Tabelle 44, und sie wird benutzt,
um für
jedes Dokument, auch als ein URL bezeichnet, der vom Webserver verwaltet
wird, eine Liste von Nutzern zu verwalten.
-
Darüber hinaus
stützen
sich die Sitzungstabelle 68 und die Beobachtertabelle 69,
die vom Sitzungsserver benutzt werden, auch auf Benutzer-Kennsatz-Datensätze 74,
wenn auch mit Einträgen,
die für
jeden Benutzer, dem ein bestimmter Benutzerkennsatz zugeordnet ist,
mit der Email-Adresse oder einem anderen Kennzeichner indiziert
sind. Die Sitzungstabelle wird von einem Sitzungsserver benutzt,
um eine Liste aller Nutzer zu verwalten, die gegenwärtig für diesen
Server online sind, wobei typischerweise jeder Eintrag in der Tabelle
mit der Emailadresse eines Online-Benutzers indiziert und dessen
Nutzerkennsatz in dem Eintrag gespeichert ist. Die Beobachter-Tabelle
wird von einem Sitzungsserver benutzt, um eine Liste von Benutzern
zu verwalten, die gegenwärtig
andere Benutzer beobachten, wobei jeder Eintrag in der Tabelle mit
der Emailadresse der Person indiziert ist, die beobachtet wird, und
wobei der Benutzerkennsatz von jedem Benutzer, der für die Beobachtung
dieses bestimmten Nutzers registriert ist, in dem Eintrag gespeichert
wird.
-
Es
sollte erkannt werden, dass auch andere Informationen in jeden Benutzer-Kennsatz-Datensatz 74 einbezogen
werden kann, und dass einige der oben angegebenen Informationen
in manchen Ausführungsformen
weggelassen werden können. Weiterhin
können
für jede
der Tabellen 44, 66, 68 und 69 oder
für verschiedene
Benutzer-Kennsätze 74 andere
Datenstrukturen verwendet werden.
-
In
der nachstehend erläuterten
Ausführungsform
wird vorausgesetzt, dass viele Sitzungs- und Webserver über eine
Mehrbenutzer-Computerumgebung verteilt sind und dass eine Vielzahl
von Browsern, die von verschiedenen Nutzern verwendet werden, mit
solchen Servern kommunizieren. Jedem Nutzer und somit jedem Browser
ist ein "heimatlicher" (home) Sitzungsserver zugeordnet,
wobei die verschiedenen Sitzungsserver miteinander kommunizieren,
um die Kohärenz über die
Mehrfachbenutzer-Computerumgebung
hinweg aufrechtzuerhalten. Als Alternative hierzu kann auch ein
einzelner Sitzungsserver benutzt werden, was typischerweise eine
Anzahl von Verwaltungsoperationen gegenüber einem Multiserver-Entwurf
vereinfachen würde.
Darüber
hinaus ist es in einigen Ausführungen
möglich, die
Funktionalität
der Web- und der
Sitzungsserver in die gleiche Anwendung zu integrieren.
-
Auch
in der nachstehend erläuterten
Ausführungsform
wird vorausgesetzt, dass die verschiedenen Browser, Sitzungsserver
und Webserver miteinander über
Nachrichten kommunizieren, z.B. indem Ereignisse oder Objekte untereinander übermittelt werden.
Es sollte jedoch erkannt werden, dass andere bekannte Arten, verschiedene
Computeranwendungen in einer verteilten Umgebung miteinander kommunizieren
zu lassen, auch als Alternative benutzt werden können.
-
Außerdem kann
die nachfolgende Erläuterung
auf einen Browser und seinen zugeordneten Nutzer austauschbar Bezug
nehmen, da ein Nutzer typischerweise den gleichen Browser auf dem
gleichen Client-Computer verwenden wird und somit Nutzer und Browser
oft eins zu eins aufeinander abgebildet werden. Als Alternative
hierzu sollte jedoch erkannt werden, dass ein Browser mehr als einen Nutzer
unterstützen
kann und dass sich ein Nutzer auf mehr als einen Browser und/oder
Client-Computer stützen
kann. Demzufolge kann es in einigen Ausführungen wünschenswert sein, einem Nutzer
zu erlauben, sich bei einem Browser "anzumelden", so dass Konfiguration und Kennzeichnung
für einen
bestimmten Nutzer vom Browser abgerufen werden können und der Browser dadurch
so konfiguriert wird, dass er für
einen bestimmten Nutzer und unter seiner Steuerung arbeitet.
-
4A und 4B veranschaulichen
eine Hauptroutine 100, die von einem Browser ausgeführt wird,
während 6 ein
Anfragemodul zeigt, das von jedem Browser ausgeführt wird, und 7 und 8 zeigen
jeweils Hauptroutinen 240, 280, die von einem Sitzungsserver
und einem Webserver ausgeführt werden.
In jeder Routine werden beim Start zahlreiche Initialisierungsoperationen
ausgeführt,
und dann tritt die Routine in eine ereignisgesteuerte Schleife ein,
die wiederholt auf Ereignisse wartet und diese Ereignisse so behandelt,
wie sie empfangen werden.
-
Wie
in 4A für
den Browser gezeigt wird, werden die Initialisierungsoperationen
in den Blöcken 102 bis 108 dargestellt,
und die ereignisgesteuerte Schleife wird in Block 110 eingeleitet,
indem auf den Empfang eines Ereignisses gewartet wird. Wie in 4B gezeigt
wird, werden zahlreiche Ereignisse in den Blöcken 112 bis 128 festgestellt
und geeignet behandelt, bevor die Steuerung zu Block 110 zurückkehrt.
Block 128 stellt Ereignisse dar, die üblicherweise durch einen Browser
behandelt werden, die aber für
ein Verständnis
der Erfindung nicht relevant sind.
-
Wie
in 7 für
den Sitzungsserver gezeigt wird, ist die Initialisierungsoperation
in Block 242 dargestellt, und die ereignisgesteuerte Schleife
wird in Block 244 eingeleitet. Verschiedene Ereignisse
werden in den Blöcken 246 bis 256 erkannt,
wobei Block 254 ein Abschlussereignis (quit event) darstellt,
das die Routine beendet, und Block 256 stellt konventionelle
Serverereignisse dar, die nicht relevant sind für ein Verständnis der Erfindung. Ebenso
wird, wie durch Block 258 dargestellt ist, der Sitzungsserver von
Zeit zu Zeit aufgefordert, periodisch zu überprüfen, ob Nutzer in den Sitzungs-
und den Beobachtertabellen noch online sind. Immer wenn irgendein
Nutzer in einer Tabelle nicht länger
online ist, werden alle zugehörigen
Nutzerkennsätze
aus den Tabellen entfernt, und alle Beobachter werden von diesem
Ausstieg benachrichtigt, auf die Art und Weise, wie sie unten ausführlicher
erläutert
wird.
-
Wie
in 8 für
den Webserver dargestellt ist, wird die Initialisierungsoperation
in Block 282 dargestellt, und die ereignisgesteuerte Schleife
wird in Block 284 eingeleitet. Verschiedene Ereignisse
werden in den Blöcken 286 bis 292 erkannt,
wobei Block 291 ein Abschlussereignis darstellt, das die
Routine beendet, und Block 292 stellt konventionelle Webserverereignisse
dar, die nicht relevant sind für
ein Verständnis
der Erfindung. Ebenso wird, wie durch Block 293 dargestellt
ist, der Webserver von Zeit zu Zeit aufgefordert, periodisch zu überprüfen, ob
Nutzer in der aktiven Tabelle noch online sind. Immer wenn irgendein
Nutzer nicht länger
online ist, werden alle Nutzerkennsätze für den Nutzer aus der Tabelle
entfernt, andere Nutzer werden von diesem Ausstieg bei Bedarf benachrichtigt,
und alle zeitweiligen Lieblingsverbindungen, die durch den Nutzer
registriert sind, werden entfernt, wie unten ausführlicher
erläutert wird.
-
Wir
kehren jetzt zu 4A zurück; für den Browser beginnt die Hauptroutine 100 in
Block 102 mit dem Laden allgemeiner Informationen, von
Lieblingsverbindungen, Steueroptionen, und anderen lokalen Konfigurationsinformationen
für den
Browser, insbesondere für
den aktuellen Nutzer des Browsers. Unter diesen Informationen ist
ein Nutzerkennsatz, der Identifikationsinformationen bezüglich des
aktuellen Nutzers für
den Browser zur Verfügung
stellt.
-
Als
Nächstes
wird in Block 104 für
den aktuellen Nutzer ein Anfragemodul gestartet. Wie unten ausführlicher
unter Bezugnahme auf 6 erläutert werden wird, wird das
Anfragemodul benutzt, um als Reaktion auf Anfrageanforderungen von
anderen Nutzern aus der Mehrbenutzer-Computerumgebung Informationen über den
aktuellen Nutzer zurückzugeben.
Alternativ hierzu können
solche Anforderungen vom Browser selbst behandelt werden, obwohl
bei der Behandlung solcher Anfragen in einem gesonderten Modul diese
Funktionalität
vom Browser ferngehalten wird.
-
Als
Nächstes
sendet der Browser in Block 106 ein Sitzungsstart-Ereignis zum Home-Sitzungsserver,
um für
den Nutzer eine aktive Sitzung mit dem Sitzungsserver zu registrieren.
Der Benutzerkennsatz für
den aktuellen Nutzer wird mit dem Ereignis weitergeleitet. Als Nächstes werden
in Block 108 zusätzliche
im Fachgebiet bekannte Startoperationen des Browsers ausgeführt, und
die ereignisgesteuerte Schleife wird eingeleitet, indem die Steuerung
an Block 110 übergeben
wird.
-
Der
Sitzungsserver verwaltet für
jeden Nutzer, für
den der Server der Homeserver ist, einen Status 'aktiv/inaktiv'. Um einen solchen Status zu verwalten,
erhält
der Server typischerweise von den Browsern, für die er der Homeserver ist,
Statusereignisse, zum Beispiel das oben erläuterte Sitzungsstart-Ereignis.
Wie in 7 dargestellt, wird ein Sitzungsstart-Ereignis
in Block 246 erkannt, und die Steuerung geht über zu Block 260,
um einen Nutzerkennsatz zu speichern, der mit dem Ereignis in der Sitzungstabelle
für den
Sitzungsserver weitergeleitet wurde, wobei die Emailadresse im Nutzerkennsatz als
Index für
einen neuen Eintrag in die Tabelle benutzt wird. Als Nächstes werden
in Block 262 alle Beobachter dieses Nutzers davon informiert,
dass der Nutzer inaktiv ist, über
ein Ereignis an das Anfragemodul dieser Beobachter (unten erläutert unter
Bezugnahme auf 6). Die Beobachter werden durch Zugriff
auf die Beobachtertabelle identifiziert, um einen Eintrag festzustellen,
der mit der Emailadresse des neuen aktiven Nutzers übereinstimmt.
Dann ist die Verarbeitung des Ereignisses abgeschlossen.
-
Mit
der Sitzungsstart-Anforderung verwandt ist eine Sitzungsende-Anforderung, die
in Block 248 festgestellt und in den Blöcken 264 und 266 behandelt
wird, indem der Nutzerkennsatz aus der Sitzungstabelle entfernt
wird und alle Beobachter davon informiert werden, dass der Nutzer
jetzt inaktiv ist. Eine Sitzungsende-Anforderung wird zum Beispiel
typischerweise erzeugt, wenn der Browser vom Nutzer geschlossen
wird. Ebenso kann das Ereignis in Block 258 immer dann
erzeugt werden, wenn festgestellt wird, dass ein Nutzer offline
gegangen ist.
-
Die
Verfolgung dessen, wo Nutzer in einer Mehrbenutzer-Umgebung sind – das heißt, welche Nutzer
gerade welche Dokumente sehen – wird
prinzipiell dadurch behandelt, dass geeignete Nachrichten zwischen
den Browsern und den Webservern ausgetauscht werden, die die verschiedenen
angeschauten Dokumente behandeln. In der veranschaulichten Ausführungsform
werden drei Ereignisse, die als 'getPage', 'releasePage' und 'swapPage' bezeichnet werden,
benutzt, um diese Funktionalität
zu realisieren.
-
Wie
in 4B dargestellt ist, liefert der Browser die Ereignisse 'getPage', 'releasePage' und 'swapPage' als Reaktion auf
verschiedene Ereignisse, die in den Blöcken 112–116 erkannt
und als 'Neue URL', 'Schließe URL' und "Wechsle URL' gekennzeichnet werden.
Das Ereignis 'Neue
URL' wird in Block 112 festgestellt
und in Block 130 behandelt, indem ein Ereignis 'getPage' zu dem Webserver
weitergegeben wird, der dem angeforderten URL zugeordnet ist, wobei
dieser URL und der Benutzerkennsatz für den aktuellen Nutzer mit
dem Ereignis weitergegeben wird. Das Ereignis 'Neue URL' wird im Allgemeinen aufgerufen, wenn
ein Nutzer ein Dokument bei einem neuen URL abrufen und ansehen möchte, ohne
ein anderes Dokument abzugeben, das gerade angesehen wird, z.B.
während
der Anzeige einer anfänglichen
Homepage beim Start des Browsers oder wenn ein neues Browserfenster
geöffnet
wird.
-
Wir
wenden uns nun 8 zu; das Ereignis 'getPage' wird vom Webserver
im Block 286 erkannt und über eine Seitenlade-Routine 298 behandelt,
die in 9 ausführlicher
dargestellt ist. Die Routine 298 beginnt in Block 300 mit
dem Erhalt des URL und des Nutzerkennsatzes von der Anforderung.
Als Nächstes
werden in Block 302 die Seiteninhalte des Dokumentes an
dem geforderten URL abgerufen, ebenso die verbundene Liste der Nutzerkennsätze in der
Liste der aktiven Nutzer für
den angeforderten URL. Als Nächstes
wird in Block 304 eine Antwort an den Browser mit der geforderten
Seiteninformation und der Liste der aktiven Nutzer zurückgegeben.
Als Nächstes
wird in Block 306 der Nutzerkennsatz zu der Liste der aktiven
Nutzer für
den URL hinzugefügt, und
in Block 308 wird eine Nachricht über ein Ereignis 'Füge aktiven Nutzer hinzu' (unten ausführlicher erläutert) zu
den anderen aktiven Nutzern in der Liste der aktiven Nutzer für den URL
geschickt. Die Routine 298 ist dann abgeschlossen.
-
Wir
kehren jetzt zu 4B zurück; nachdem das Ereignis 'getPage' an Block 30 übergeben
wurde, geht die Steuerung zu Block 30 über, um vom Webserver den sich
ergebenden Seiteninhalt und die Liste der aktiven Nutzer zu erhalten.
Als Nächstes
wird in Block 134 die Anzeige der Browserseite aktualisiert,
indem die zurückgegebenen
Seiteninhalte angezeigt werden. Danach wird in Block 136 die
Liste der aktiven Nutzer, die im Browser angezeigt wird, aktualisiert,
um Kennzeichner (identifier) für
die aktiven Nutzer des neuen URL anzuzeigen. Die Behandlung des
Ereignisses 'Neuer
URL' ist dann vollständig.
-
Wenn
die Nutzer in der Liste der aktiven Nutzer angezeigt werden, können die
Nutzer in alphabetischer Reihenfolge angezeigt werden. Alternativ hierzu
können
die Nutzer in Kategorien eingeteilt und auf der Grundlage beliebiger
Informationen im Kennsatz oder anderen Profilinformationen für die Nutzer
sortiert werden.
-
Das
Ereignis 'Schließe URL' wird in Block 114 erkannt
und in Block 138 behandelt, indem ein Ereignis 'releasePage' an den Webserver übergeben wird,
der dem angeforderten URL zugeordnet ist, wobei mit dem Ereignis
der URL und der Nutzerkennsatz für
den aktuellen Nutzer übergeben
werden. Das Ereignis 'Schließe URL' wird im Allgemeinen
immer dann aufgerufen, wenn ein Nutzer ein Dokument weglegen möchte, ohne
das Dokument durch ein anderes Dokument zu ersetzen, z.B. nach dem
Schließen
des Browsers oder eines Fensters im Browser.
-
Wir
wenden uns nun 8 zu; das Ereignis 'releasePage' wird vom Webserver
in Block 287 erkannt und über eine Routine 299 zur
Freigabe einer Seite behandelt, die in 10 ausführlicher
veranschaulicht ist. Die Routine 299 beginnt in Block 310, indem
sie von der Anforderung den URL und den Nutzerkennsatz erhält. Als
nächstes
wird in Block 312 für
den spezifizierten URL der Nutzerkennsatz aus der Liste der aktiven
Nutzer entfernt. Danach wird in Block 314 eine Nachricht
zu den anderen aktiven Nutzern in der Liste der aktiven Nutzer für diesen
URL gesendet, über
ein Ereignis 'Entferne
aktiven Nutzer' (unten
ausführlicher
erläutert).
Routine 299 ist dann abgeschlossen.
-
Wir
kehren zu 4B zurück; wenn das Ereignis 'releasePage' in Block 138 zum
Webserver weitergereicht wurde, geht die Steuerung zum Block 139 über, um
den Browser oder das Browserfenster gegebenenfalls zu schließen. Die
Verarbeitung des Ereignisses ist abgeschlossen.
-
Das
Ereignis 'Wechsle
URL' wird in Block 116 erkannt
und behandelt, indem die Steuerung zu Block 40 weitergegeben
wird. Das Ereignis 'Wechsle URL' wird im Allgemeinen
immer dann aufgerufen, wenn ein Nutzer ein Dokument eines URL weglegen und
es durch das Dokument eines anderen URL im gleichen Browserfenster
ersetzen möchte,
z.B. beim Aufrufen einer Hypertextverbindung, beim Anklicken einer
Vorwärts-
oder Rückwärts-Schaltfläche, beim Auswählen einer
Lieblingsverbindung usw.
-
Block 140 stellt
fest, ob sich der alte und der neue URL, die in dem Ereignis spezifiziert
sind, auf dem gleichen Webserver befinden. Ist dies der Fall, geht
die Steuerung zu Block 142 über, um ein Ereignis 'swapPage' an den verantwortlichen
Server weiterzugeben, das den alten und den neuen URL sowie den
Nutzerkennsatz für
den aktuellen Nutzer spezifiziert. Ist dies jedoch nicht der Fall,
werden die Blöcke 144 und 146 ausgeführt, um
jeweils Ereignisse 'releasePage' und 'getPage' an die für den alten
und den neuen URL verantwortlichen Webserver weiterzugeben, wobei
in jedem Fall der geeignete URL und der Nutzerkennsatz weitergegeben
werden.
-
Die
Ereignisse 'releasePage' und 'getPage' werden von jedem
Webserver in der gleichen Weise behandelt, wie sie oben erläutert wurde.
Wie in 8 gezeigt ist, wird das Ereignis 'swapPage' durch den Webserver
in Block 288 festgestellt und behandelt, indem die Routinen
für das
Erhalten einer Seite 298 und das Freigeben einer Seite 299 gerufen
werden, die auf die gleiche Weise arbeiten, wie oben erläutert wurde.
-
Wir
kehren zu 4B zurück; gleichgültig, ob die URLs auf dem gleichen
Server sind oder nicht, geht die Steuerung schließlich zu
den Blöcken 132–136 über, um
die Seiteninhalte und die Liste der aktiven Nutzer für den neuen
URL abzurufen und den Inhalt und die Liste dem Nutzer anzeigen.
Die Verarbeitung des Ereignisses ist dann abgeschlossen.
-
Wie
oben unter Bezugnahme auf 9 und 10 erläutert wurde,
führt der
Erhalt oder die Freigabe eines URL durch einen Nutzer dazu, dass
Benachrichtigungen vom Webserver zu den anderen Nutzern auf der
Liste der aktiven Nutzer dieser URL weitergegeben werden. Diese
Benachrichtigungen haben die Form von Ereignissen 'Füge aktiven Nutzer hinzu' und 'Entferne aktiven
Nutzer', die jeweils von
jedem Browser in den Blöcken 118 und 120 von 4B erkannt
werden.
-
Für das Ereignis 'Füge aktiven Nutzer hinzu' gibt Block 118 die
Steuerung an Block 148 weiter, um aus dem Ereignis den
URL und den Nutzer zu bestimmen und dann für diesen Nutzer den Nutzerkennsatz
zur Liste der aktiven Nutzer für
den spezifizierten URL hinzuzufügen.
Die Steuerung geht dann zu Block 136 über, um die Anzeige der Liste
der aktiven Nutzer für
den Browser zu aktualisieren. In ähnlicher Weise überträgt für das Ereignis 'Entferne aktiven
Nutzer' Block 120 die
Steuerung zu Block 148, um den URL und den Nutzer aus dem
Ereignis zu bestimmen und dann den Nutzerkennsatz für diesen Nutzer
aus der Liste der aktiven Nutzer für den spezifizierten URL zu
entfernen. Die Steuerung geht auch zu Block 136 über, um
die Anzeige der Liste der aktiven Nutzer für den Browser zu aktualisieren.
-
Alternativ
hierzu kann es wünschenswert sein,
eine getrennte Anzeige neben den Kennzeichnern irgendwelcher Nutzer
vorzusehen, die das aktuelle Hypertext-Dokument verlassen haben,
so dass der Nutzer weiß,
dass die Nutzer das Dokument besucht haben, aber gegenwärtig irgendwo
anders suchen. Zusätzlich
kann es wünschenswert
sein, eine manuelle Auffrisch-Operation (refresh Operation) zu unterstützen, wodurch
ein Nutzer manuell fordern kann, dass der Status jedes Nutzers in
der Liste der aktiven Nutzer aktualisiert wird.
-
Zusätzlich zur
Möglichkeit,
die anderen Nutzer zu sehen, die derzeit ein bestimmtes Dokument sehen,
kann einem Nutzer auch erlaubt werden, andere Nutzer zu verfolgen,
z.B. über
eine gespeicherte Nutzerliste, die lokal in dem Browser für diesen
Nutzer gespeichert ist. Die gespeicherte Nutzerliste ist typischerweise
eine verbundene Liste von Nutzerkennsätzen von Nutzern, die ein bestimmter
Nutzer verfolgen möchte.
Wie unten ersichtlich werden wird, können für jeden Nutzer in der gespeicherten
Nutzerliste verschiedenartige Informationen, z.B. Online- oder Aktiv-Status,
Emailadresse oder andere Nutzerkennsatz-Informationen, abgerufen
und angezeigt werden, so dass der Besitzer der Liste solche Benutzer
verfolgen kann.
-
Eine
gespeicherte Nutzerliste wird als Reaktion auf ein Ereignis 'Zeige gespeicherte
Nutzerliste' geöffnet, das
in Block 122 erkannt wird. Das Ereignis kann als Reaktion
auf eine Nutzeranforderung aufgerufen werden, z.B. über eine
Schaltfläche
auf der Aktionsleiste (toolbar button) oder eine Menüauswahl (menu
selection). Das Ereignis kann auch während des Startes aufgerufen
werden, z.B. wenn der Nutzer das Anzeigen der Liste als Standardfunktion
gesetzt hat. Als Reaktion auf das Ereignis geht die Steuerung zu
Block 152 über,
um die Liste der gespeicherten Nutzerkennsätze abzurufen und dann für jeden
Nutzer in der Liste Ereignisse 'userWatch' und 'getInfo' weiterzugeben, die
sowohl den Nutzerkennsatz des aktuellen Nutzers als auch den Nutzerkennsatz
für den
gespeicherten Nutzer spezifizieren. Informationen über jeden
Nutzer werden als Reaktion auf das Ereignis 'getInfo' zurückgegeben,
und ein Fenster, das solche Informationen anzeigt, wird in einem Fenster
des Browsers angezeigt. Die Verarbeitung des Ereignisses ist dann
abgeschlossen.
-
Wenn
eine gespeicherte Nutzerliste angezeigt wird, können die Nutzer in alphabetischer
Reihenfolge oder in der Reihenfolge angezeigt werden, in der die
Nutzer zur Liste hinzugefügt
wurden.
-
Alternativ
hierzu können
die gespeicherten Nutzer in Kategorien eingeteilt und auf der Grundlage beliebiger
Informationen im Kennsatz oder anderen Profilinformationen für die Nutzer
sortiert werden.
-
Ein
verwandtes Ereignis, das des Verbergens der gespeicherten Nutzerliste,
wird in Block 124 erkannt und in Block 154 behandelt,
indem für
jeden Nutzer in der gespeicherten Nutzerliste ein Ereignis 'releaseWatcher' zum Sitzungsserver übermittelt wird.
Das Anzeigefenster für
die Liste wird dann entfernt.
-
Die
Ereignisse 'userWatch', 'getInfo' und 'releaseWatcher' werden jeweils von
den Blöcken 250, 252 und 253 in 7 erkannt.
Als Reaktion auf ein Ereignis 'userWatch' übergibt Block 250 die
Steuerung an Block 268, um den Benutzerkennsatz des neuen
Beobachters, unter der Emailadresse der zu beobachtenden Person
zur Beobachtertabelle hinzuzufügen.
Wenn kein Eintrag für
eine solche Emailadresse besteht, wird ein neuer Eintrag erstellt.
Die Verarbeitung des Ereignisses ist dann abgeschlossen.
-
Als
Reaktion auf ein Ereignis 'getInfo' übergibt Block 252 die
Steuerung an Block 270, um die aktuellen Kennsatzinformationen
nach dem Nutzer oder den Nutzern zu durchsuchen, die in dem Ereignis
spezifiziert wurden, typischerweise durch Zugriff auf die Sitzungstabelle
unter Benutzung der Emailadresse, die mit dem Ereignis geliefert
wurde. Die Kennsatzinformation (einschließlich deren aktuelle Informationen über den
lokalen Anschluss) wird dann zu Block 272 zurückgegeben.
Die Verarbeitung des Ereignisses ist dann abgeschlossen.
-
Als
Reaktion auf ein Ereignis 'releaseWatcher' übergibt Block 253 die
Steuerung an Block 273, um den Benutzerkennsatz, der mit
dem Ereignis übermittelt
wurde, aus der Beobachtertabelle zu entfernen. Die Verarbeitung
des Ereignisses ist dann abgeschlossen.
-
Wir
kehren wiederum zu 4B zurück; bezüglich der Nutzer, die sich
entweder in der aktuellen Liste der aktiven Nutzer oder in der gespeicherten Nutzerliste
für den
Browser befinden, können
zusätzliche
Ereignisse erkannt werden, die sich auf andere Nutzer in der Umgebung
beziehen, z.B. als Reaktion auf Nutzereingaben, die sich auf die
Anzeigedarstellungen der Nutzer in einer der Listen beziehen. Die Nutzereingabe
kann eine beliebige Anzahl von Formen, z.B. Klick, Doppelklick,
rechter Klick usw., beliebige Anzeige-Kennzeichner solcher Nutzer
oder andere, im Fachgebiet bekannte Arten annehmen, beispielsweise
die Auswahl durch ein Menü oder
durch eine Schaltfläche
auf der Aktionsleiste, Tastenkombinationen usw. Alle diese Operationen
werden mit Bezug auf andere Nutzer der Umgebung als Nutzeroperationen
zusammengefasst und von Block 126 erkannt und von einer
Routine 156 'Verarbeite
Nutzeroperation' behandelt.
-
5A veranschaulicht
die Routine 156 ausführlicher.
Die Routine 156 erkennt und behandelt eine Anzahl von Ereignissen,
die sich auf Nutzeroperationen beziehen. Eine vorherrschende Art
der Nutzeroperation ist das Abrufen von Informationen, die mit einem
anderen Nutzer zusammenhängen,
wobei die Nutzeroperation im Allgemeinen dadurch geschieht, dass
ein Ereignis, das an einen anderen Nutzer gerichtet ist, weitergegeben
wird, entweder direkt an den verlangten Nutzer weitergeleitet oder über einen
oder mehrere Sitzungsserver. Der verlangte Nutzer behandelt das
Ereignis über
das Anfragemodul, wodurch der Browser des Nutzers von der Funktionalität befreit
wird. Alternativ hierzu kann der Browser auf solche Anfragen reagieren.
-
Beispielsweise
entdeckt Block 160 eine Anforderung eines Nutzers, Lieblingsverbindungen
abzurufen, die einem anderen Nutzer zugeordnet sind, und übergibt
die Steuerung an Block 162, um ein Anforderungsereignis 'favoriteLinks' an das Anfragemodul
des spezifizierten Nutzers zu schicken. Die Lieblingsverbindungen
können
bestimmten URLs zugeordnet sein, so dass nur Lieblingsverbindungen
angezeigt werden, die mit der aktuellen Seite zusammenhängen, die
von dem anfordernden Nutzer gesehen wird, und somit beziehen sich
die zurückgegebenen
Verbindungen wahrscheinlich auf die gerade angeschaute Seite. Alternativ
hierzu können
die Lieblingsverbindungen nicht einem bestimmten URL zugeordnet
sein, so dass alle Verbindungen für einen bestimmten Nutzer zurückgegeben
werden, ohne Berücksichtigung
der Seite, die der anfordernde Nutzer sieht. Die Lieblingsverbindungen
können
die gleichen sein wie die Lesezeichenliste (bookmark list), die
lokal im Browser des Nutzers gespeichert ist, oder können als
eine gesonderte Liste durch den Browser bzw. den Sitzungsserver
verwaltet werden, dem der Browser zugeordnet ist.
-
Weiterhin
können
Lieblingsverbindungen entweder dauerhaft oder vorübergehend
sein. Eine dauerhafte Lieblingsverbindung für einen Nutzer würde typischerweise
ständig
für den
Nutzer im Client-Computer
gespeichert werden, während
eine zeitweilige Lieblingsverbindung entfernt werden würde, wenn
die aktuelle Suchsitzung für
den Nutzer beendet ist. Es ist auch wünschenswert, Benutzern zu erlauben,
Hypertext-Dokumente, die sie gerade ansehen, schnell für die Aufnahme
unter ihre Lieblingsverbindungen zu kennzeichnen, typischerweise
mehr oder weniger auf die gleiche Art und Weise, wie konventionelle
Lesezeichen in konventionellen Browsern erzeugt werden.
-
Wenn
wir eine ausführliche
Erläuterung
des Anfragemoduls, das auf ein Ereignis 'favoriteLinks' reagiert, kurz verschieben, dann gibt
ein reagierendes Anfragemodul die Lieblingsverbindungen an den Browser
des anfragenden Nutzers zurück.
Die Steuerung geht dann von Block 162 zu Block 164 über, um
aus den zurückgegebenen
Ergebnissen ein zeitweiliges HTML-Dokument zu erstellen, wobei alle URLs
in den zurückgegebenen
Ergebnissen als Hypertext-Verbindungen
angezeigt und formatiert werden. Als Nächstes öffnet Block 166 ein
neues Browserfenster, um dem Nutzer das zeitweilige HTML-Dokument
anzuzeigen. Die Verarbeitung des Ereignisses ist dann abgeschlossen.
Es sollte erkannt werden, dass andere Arten der Anzeige der Ergebnisse, z.B. über ein
Aktions-(pop-up) Fenster oder eine Dialogbox oder innerhalb des
gleichen Browserfensters, auch als Alternative benutzt werden können.
-
Eine
andere Art von Informationen, die über einen anderen Nutzer verlangt
werden können,
ist eine Navigationsaufzeichnung, die eine oder mehrere frühere Dokumente
darstellt, die ein bestimmter Nutzer gesehen hat. Diese Informationen
werden über
ein Ereignis 'get
previous page' angefordert,
das in Block 168 erkannt wird und behandelt wird, indem die
Steuerung zu Block 170 weitergegeben wird, um eine Anforderung 'previousPage' an einen spezifizierten
Nutzer zu senden. Die Steuerung geht dann an Block 164 und 166 über, um
die Ergebnisse zu formatieren und dem Nutzer anzuzeigen.
-
Noch
eine andere Art von Informationen, die über einen anderen Nutzer verlangt
werden kann, ist, auf welche Seite oder Seiten der Nutzer gerade
zugreift oder blickt. Wenn diese Art von Informationen verlangt
wird, wird ein Ereignis 'get
current page' in Block 172 erkannt
und behandelt, indem die Steuerung zu Block 174 übergeht,
um eine Anforderung 'currentPage' an den spezifizierten
Nutzer zu schicken. Die Steuerung geht dann zu den Blöcken 164 und 166 über, um
die Ergebnisse zu formatieren und anzuzeigen.
-
Eine
zusätzliche
Informationsart, die verlangt werden kann, ist die Homepage eines
anderen Nutzers, die über
ein Ereignis 'get
home page' abgerufen wird,
das in Block 176 erkannt wird und behandelt wird, indem
die Steuerung an Block 178 übergeben wird, um eine Anforderung 'homePage' an den spezifizierten
Nutzer zu schicken. Der verlangte Nutzer gibt den URL der Homepage
für diesen
Nutzer zurück,
und die Steuerung geht zu Block 166 über, um ein neues Browserfenster
für den
zurückgegebenen URL
zu öffnen.
-
Weitere
Informationen über
einen bestimmten Nutzer können
auch in verschiedenen Anwendungen gefunden werden. Beispielsweise
können Namen,
Spitznamen, Adressen, Telefonnummern, interessierende oder persönliche Informationen
usw. auch über
den gleichen Mechanismus zurückgegeben
werden, der in der dargestellten Ausführung unterstützt wird.
Darüber
hinaus sollte erkannt werden, dass immer dann, wenn die Ergebnisse
von Nutzeroperationen, beispielsweise Anforderungen von Lieblingsverbindungen,
aktuellen Seiten, Homepages oder Navigationsaufzeichnungen, angezeigt
werden, dem anfordernden Nutzer erlaubt sein kann, zu beliebigen
Dokumenten, die in diesen Ergebnissen identifiziert werden, überzugehen,
z.B. einfach durch Anklicken von irgendwelchen Ergebnissen.
-
Routine 156 erkennt
auch eine andere Ereignisart, die der Bearbeitung der für den Nutzer
gespeicherten Nutzerliste. Ein solches Ereignis ist das Ereignis 'Hinzufügen zur
gespeicherten Nutzerliste' (add
to saved user list), das in Block 180 erkannt wird und
in Block 182 behandelt wird, indem der spezifizierte Nutzerkennsatz
in der gespeicherten Nutzerliste gespeichert wird. Es sollte erkannt
werden, dass andere Arten von Bearbeitungsoperationen, z.B. das Entfernen
von Einträgen
aus oder das Modifizieren von Einträgen in der gespeicherten Nutzerliste
auch unterstützt
werden können.
-
Die
Funktion eines Anfragemoduls 200 für einen Nutzer wird ausführlicher
in 6 dargestellt. Routine 200 läuft so ab,
dass sie in Block 202 auf Anfrageanforderungen wartet und
alle derartige Anforderungen behandelt, wenn sie empfangen werden. Als
Reaktion auf eine neue Anforderung geht die Steuerung zu Block 204 über, der
zuerst feststellt, ob ein anfragender Nutzer berechtigt ist, Informationen über den
lokalen Nutzer zu erhalten. Falls nicht, geht die Steuerung zu Block 206 über, um
dem anfragenden Nutzer einen Hinweis auf einen verweigerten Zugriff
zu geben.
-
Falls
er berechtigt ist, geht die Steuerung zu Block 208 über, um
festzustellen, ob die Anforderung eine Anforderung 'favoriteLinks' ist. Falls das so
ist, werden in Block 210 die relevanten Informationen über Lieblingsverbindungen
zurückgegeben.
Wenn die Anforderung eine Anforderung 'previousPage' ist, wird die Anforderung in Block 212 erkannt
und behandelt, indem die angeforderten Informationen über die
Navigationsaufzeichnungen in Block 214 zurückgegeben
werden. Wenn die Anforderung eine Anforderung 'currentPage' ist, wird die Anforderung in Block 216 erkannt
und behandelt, indem das angeforderte aktuelle Dokument in Block 218 zurückgegeben
wird. Wenn die Anforderung eine Anforderung 'homePage' ist, wird die Anforderung in Block 220 erkannt
und behandelt, indem der URL der Homepage des Nutzers in Block 222 zurückgegeben
wird.
-
Ein
zusätzliches
Ereignis, das durch das Modul (thread) 200 behandelt wird,
entdeckt die Zustandsänderung
eines beobachteten Nutzers; sie wird in Block 224 erkannt
und in Block 226 behandelt, indem der Nutzerzustand im
Fenster der gespeicherten Nutzerliste aktualisiert wird. Typischerweise
tritt dieses Ereignis als ein Ergebnis einer Benachrichtigung von
einem Sitzungsserver auf, dass ein bestimmter Nutzer eine aktive
Sitzung mit dem Server gestartet oder beendet hat.
-
Noch
ein weiteres Ereignis, das durch das Modul 200 behandelt
wird, ist ein Abschlussereignis, das in Block 228 erkannt
und behandelt wird, indem als Reaktion hierauf das Modul beendet
wird. Andernfalls läuft
das Modul kontinuierlich im Hintergrund des Client-Computers.
-
Wir
kehren wieder zu 4B zurück; eine weitere Ereignisart,
die vom Browser behandelt werden kann, ist eine Anforderung, auf
eine Lieblingsverbindung zuzugreifen oder sie einem bestimmten Hypertext-Dokument
zuzuordnen. Ein solches Ereignis wird hier als Ereignis 'Seitenverbindungsoperation' bezeichnet, es wird
in Block 127 erkannt und über eine Verarbeitungsroutine 184 'Seite/Lieblingsverbindung' behandelt. Das Ereignis
kann zum Beispiel als Reaktion auf eine Auswahl durch beispielsweise
ein Menü oder
eine Aktionsleiste.
-
Eine
Seitenlieblingsverbindung ist eine bestimmte Verbindung, von der
ein Nutzer angezeigt hat, dass sie mit einem bestimmten Hypertext-Dokument
verbunden ist, das der Nutzer ansieht, was es anderen Nutzern erlaubt,
auf die Verbindung zuzugreifen, um möglicherweise wichtige Informationen zu
sehen. Wie unten in der dargestellten Ausführungsform ersichtlich werden
wird, werden in jedem Webserver Lieblingsverbindungen für jedes
Dokument verwaltet, und die Informationen wird abgerufen, indem
für das
bestimmte Dokument, für
das Informationen über
eine Lieblingsverbindung gefordert werden, ein geeignetes Ereignis
an den Server übergeben
wird. Alternativ hierzu können
Verbindungsinformationen in jedem Sitzungsserver oder innerhalb jedes
Browsers verwaltet werden, wodurch der Browser oder Sitzungsserver
jeden Nutzer für
alle Lieblingsverbindungen, die registriert oder einem bestimmten
URL zugeordnet sind, ständig
abfragen müsste.
-
Eine
geeignete Ausführung
von Routine 184 wird ausführlicher in 5B gezeigt,
beginnend in Block 186 mit dem Feststellen, ob das Ereignis
ein Ereignis 'Registriere
neue Verbindung' ist.
Dieses Ereignis, das ein Nutzer aufruft, wenn gewünscht wird, eine
neue Verbindung mit einem bestimmten angeschauten Dokument zu registrieren,
wird beispielsweise durch Nutzerauswahl in einem Menü oder mit einer
Schaltfläche
in einer Aktionsleiste ausgeführt. Der
Empfang eines solchen Ereignisses übergibt die Steuerung an Block 188,
um einen URL und eine dauerhafte/zeitweilige Anzeige von einem Nutzer z.B. über eine
Dialogbox anzufordern. Der angeforderte URL ist der URL der Lieblingsverbindung,
die mit dem aktuellen Hypertext-Dokument zu verbinden ist. Die dauerhafte/zeitweilige
Anzeige bestimmt, ob die Verbindung gespeichert wird, nachdem der
Nutzer seine aktuelle Suchsitzung beendet. Nachdem diese Informationen
erhalten wurden, geht die Steuerung zu Block 190 über, um
eine Anforderung 'registerLink' für das aktuelle
Dokument an den Webserver weiterzugeben, wobei der Benutzerkennsatz
und die Verbindungsinformation mit der Anforderung weitergegeben
wird.
-
Wie
in 8 gezeigt wird, erkennt der Webserver die Anforderung 'registerLink' in Block 290 und gibt
die Steuerung an Block 296 weiter, um den Verbindungs-URL,
den Nutzerkennsatz und die dauerhafte/zeitweilige Anzeige in einer
Liste von Lieblingsverbindungen für den URL zu speichern, die
in der Anforderung spezifiziert ist. Die Liste der Lieblingsverbindungen
kann irgendeine geeignete Datenstruktur verwenden. Die Behandlung
der Anforderung ist dann abgeschlossen.
-
Es
sollte erkannt werden, dass andere Arten der Registrierung einer
Lieblingsverbindung als Alternative benutzt werden können. Beispielsweise
kann eine Anforderung einer Lieblingsverbindung gemacht werden,
während
ein Nutzer ein Dokument sieht, das der Nutzer als Lieblingsverbindung
für ein
anderes Dokument registrieren möchte.
In solch einem Fall muss der Nutzer nach dem Dokument gefragt werden,
mit dem das aktuelle Dokument verknüpft werden soll, anstatt des
entgegengesetzten Mechanismus, der oben erläutert wurde. Ansonsten ist
die Verarbeitung, der Registrierung durch den Webserver im Wesentlichen
die gleiche. Zusätzlich
kann es auch wünschenswert
sein, verwandte Verbindungen als Lieblingsverbindungen für ein Dokument
hinzuzufügen,
z.B. auf der Grundlage einer Kategorisierung der Verbindungen, innerhalb
einer Lesezeichen-Verzeichnis-Struktur für den Browser eines Nutzers.
Die Kategorisierung kann automatisiert werden, z.B, so wie in der
USA-Patentanmeldung S/N 08/978 126, eingereicht von Bates et al.
am 25. November 1997 und hier als Referenz einbezogen, dargestellt
ist. Beispielsweise könnte
ein Nutzer ein Verzeichnis mit verschiedenen verwandten Verbindungen
besitzen, und das Erreichen eines bestimmten Dokumentes, das als
verwandt mit diesen Verbindungen angesehen wird, würde dazu
führen,
dass diese Verbindungen automatisch mit dem Dokument registriert
werden. Als ein anderes Beispiel können verwandte Verbindungen
automatisch mit einem Dokument als Reaktion auf eine manuelle Anforderung
registriert werden, jede beliebige mit dem Dokument verwandte Verbindung
zu registrieren. Andere Modifikationen werden für einen normalen Fachmann offensichtlich sein.
-
Wir
kehren jetzt zu 5B zurück; ein anderes Ereignis besteht
darin, die Lieblingsverbindungen für ein Dokument zu sehen, was
in Block 192 erkannt wird und behandelt wird, indem die
Steuerung an Block 194 übergeben
wird, um eine Anforderung 'getLinks' an den Webserver
für das
aktuelle Dokument zu übergeben.
Wir wenden uns nun 8 zu; die Anforderung 'getLinks' wird in Block 289 erkannt
und in Block 294 behandelt, indem die Liste von Lieblingsverbindungen
für den
URL zurückgegeben
wird, der in der Liste spezifiziert ist. Wir kehren wieder zu 5B zurück; die
zurückgegebenen
Ergebnisse werden dem Nutzer in Block 196 angezeigt, womit die
Behandlung der Anforderung dann abgeschlossen ist. Es sollte erkannt
werden, dass einem Nutzer typischerweise erlaubt ist, irgendeine
Lieblingsverbindung auszuwählen,
um zu einer der Verbindungen in der angezeigten Liste zu navigieren.
-
Um
weiterhin die Arbeitsweise der veranschaulichten Mehrbenutzer-Computerumgebung
zu zeigen, stellt 11 eine repräsentative Client-Computeranzeige 320 dar,
innerhalb derer ein Browserfenster 322 angezeigt ist. Das
Browserfenster ist in zwei Rahmen (frames) 324, 326 unterteilt.
Innerhalb von Rahmen 324 ist ein repräsentatives Hypertext-Dokument 328 angezeigt.
Innerhalb von Rahmen 326 ist eine repräsentative Liste 330 aktiver
Nutzer angezeigt, einschließlich
der Anzeigedarstellungen oder Kennzeichner 332, 334, 336 und 338 für eine Vielzahl
von Nutzern, die aktuell das gleiche Hypertext-Dokument ansehen.
-
11 veranschaulicht
weiterhin die Nutzerauswahl der Anzeigedarstellung 338 eines
Nutzers mit dem Spitznamen "Rhonda" durch einen vom
Nutzer betätigten
Zeiger 340. Als Reaktion auf diese Auswahl wird ein Aktionsfenster-Menü 342 angezeigt,
das dem aktuellen Nutzer eine Liste möglicher Menüauswahlen anbietet, einschließlich der
Auswahl 344 von Lieblingsverbindungen, der Auswahl 346 der aktuellen
Seite, der Auswahl 348 der vorhergehenden Seite, der Homepage-Auswahl 350,
der Auswahl 352 zum Zeigen einer Information (view info),
der Auswahl 354 zum Speichern eines Nutzers, der Auswahl 356 eines
Emailnutzers und der Auswahl 358 'Plaudere mit einem Nutzer' (chat with user),
so dass der Nutzer wählen
kann, verschiedene Nutzeroperationen auszuführen. Auswahl 344 erlaubt
einem Nutzer, die Lieblingsverbindungen abzurufen, die Rhonda zugeordnet,
sind, während
es die Auswahl 346 erlaubt, dass die aktuelle Seite, die
von Rhonda gesehen wird, für
den aktuellen Nutzer abgerufen wird. Die Auswahlen 348 bzw. 350 erlauben
es, dass die Navigationsaufzeichnungen und die Homepage für Rhonda
abgerufen werden. Die Auswahl 352 erlaubt, dass andere
Informationen, die Rhonda zugeordnet sind, z.B. die, die aus dem
Nutzerkennsatz verfügbar sind,
abgerufen werden. Die Auswahl 354 erlaubt es, Rhonda, zur
gespeicherten Nutzerliste des aktuellen Nutzers hinzugefügt zu werden.
-
Die
Auswahl 356 erlaubt es dem aktuellen Nutzer, eine elektronische
Nachricht an Rhonda zu senden, während
es die Auswahl 358 dem aktuellen Nutzer erlaubt, eine Online-Unterhaltungssitzung
mit Rhonda zu starten. Bezüglich
dieser beiden letzten Operationen sollte erkannt werden, dass die
Operationen beispielsweise behandelt werden können, indem ein geeigneter
Email- oder Chat-Client geöffnet und
einem geeigneten konventionellen Protokoll für das Senden einer Email oder
der Herstellung einer Online-Unterhaltungssitzung gefolgt wird.
Andere elektronische Kommunikationsmedien können auch benutzt werden, um
Nutzern zu erlauben, miteinander zu kommunizieren, während sie
online sind.
-
12 veranschaulicht
eine geeignete Anzeigedarstellung für eine gespeicherte Nutzerliste, hier
realisiert über
eine Dialogbox 360, innerhalb derer eine gespeicherte Nutzerliste 362 angezeigt
wird, einschließlich
von Anzeigedarstellungen oder Kennzeichnern 364, 366, 368 und 370 von
Nutzern, die in den Listen gespeichert sind. Die Kennzeichner können beliebige
wichtige Informationen enthalten, hier der Spitzname und die Emailadresse
jedes Nutzers. Weiterhin dargestellt sind Indikatoren 372,
die angezeigt werden können,
um darzustellen, dass die Nutzer, die durch die Kennzeichner 366 und 368 dargestellt
sind, gegenwärtig
in der Mehrbenutzerumgebung aktiv und online sind. Über gesonderte
Aktionsfenster-Menüs
oder andere Nutzereingabe-Mechanismen können auch zusätzliche
Informationen über jeden
Nutzer in der hier beschriebenen Art und Weise gefunden werden.
-
Verschiedene
Modifikationen der veranschaulichten Ausführungsformen können vorgenommen
werden, ohne vom Geist und dem Bereich der Erfindung abzuweichen.
Beispielsweise kann es wünschenswert
sein, Nutzern zu erlauben, zu sehen, was andere Nutzer vorher besucht
haben, indem eindeutige Angaben der Anzeigedarstellungen von Hypertext-Verbindungen
bereitgestellt werden. Ähnlich zu
der Art und Weise, in der für
einen Nutzer seine eigenen, vorher angeschauten Hypertext-Verbindungen
in einer anderen Farbe als die anderen Hypertext-Verbindungen dargestellt
werden können,
kann es beispielsweise auch wünschenswert
sein, verschiedenen Nutzern verschiedene Farben zuzuordnen und Hypertext-Verbindungen
farbig darzustellen, die bereits von anderen Benutzern angesehen
wurden, entsprechend den Farben, die diesen Nutzern zugeordnet wurden.
Alternativ hierzu können
auch andere Anzeigemöglichkeiten,
z.B. Symbole, Aktionsfenster-Menüs
usw., benutzt werden, um anzuzeigen, wenn ein anderer Nutzer eine
bestimmte Verbindung gesehen hat.
-
Um
eine solche zusätzliche
Möglichkeit
zu realisieren, ist es wünschenswert,
andere Nutzer in der Mehrbenutzer-Umgebung periodisch nach ihren Navigationsaufzeichnungen
abzufragen, z.B. über Anforderungen 'previousPage', die zu diesem Zweck an
die Anfragemodule weitergeleitet werden. Um die Zahl der verfolgten
Nutzer zu begrenzen, kann es wünschenswert
sein, nur Nutzer in der gespeicherten Nutzerliste, in der Liste
der aktiven Nutzer für
das angezeigte Dokument oder in einer Kundenliste, die vom aktuellen
Nutzer erstellt wird, zu verfolgen. Darüber hinaus kann es wünschenswert
sein, die Navigationsaufzeichnungen jedes verfolgten Nutzers in einer
geeigneten Datenstruktur zu speichern. Zusätzlich kann einem Nutzer erlaubt
werden, verschiedenen Nutzern manuell Farben zuzuordnen, und es
ist oft wünschenswert,
die Kennzeichnungen der verfolgten Nutzer in der ihnen zugeordneten
Farbe anzuzeigen, so dass der aktuelle Nutzer die anderen Nutzer
visuell mit den Verbindungen verbinden kann, die sie zuvor besucht
haben.
-
Eine
geeignete Seitenanzeige-Routine 370 für die Anzeige eines Hypertext-Dokumentes
in der Art, dass die Verbindungen in ihm entsprechend der Navigationsaufzeichnungen
farblich dargestellt sind, ist in 13 dargestellt.
Die Routine 370 führt
eine Solange-Schleife (while loop) aus, die in Block 372 startet,
um jedes Objekt in dem Hypertext-Dokument zu verarbeiten, das angezeigt
wird, bis keine unverarbeiteten Objekte im Dokument übrigbleiben.
Solange zusätzliche
unverarbeitete Objekte übrig
sind, wird das nächste
Objekt im Dokument in Block 374 analysiert und interpretiert.
Als Nächstes
wird in Block 376 festgestellt, ob das Objekt eine Hypertext-Verbindung
ist. Falls nicht, geht die Steuerung zu Block 378 über, um
das Objekt auf konventionelle Art und Weise zu übergeben. Die Steuerung kehrt
dann zu Block 372 zurück,
um zusätzliche
Objekte im Dokument zu verarbeiten.
-
Wir
kehren zu Block 376 zurück;
wenn das Objekt eine Hypertext-Verbindung
ist, geht die Steuerung zu Block 380 zurück, um festzustellen,
ob sich der in der Hypertext-Verbindung spezifizierte URL in den
Navigationsaufzeichnungen irgendeines verfolgten Nutzers befindet.
Falls nicht, geht die Steuerung zu Block 378 über, um
die Hypertextverbindung auf konventionelle Art und Weise zu übergeben.
Falls dies jedoch der Fall ist, geht die Steuerung zu Block 382 über, um
die Hypertext-Verbindung in der Farbe zurückzugeben, die dem anderen
Nutzer zugeordnet ist, der diesen URL für die Verbindung früher gesehen
hat. Die Steuerung kehrt dann zu Block 372 zurück. Wenn
alle Objekte im Dokument verarbeitet wurden, ist die Routine 370 abgeschlossen.
-
Als
ein weiteres Beispiel kann es wünschenswert
sein, die Funktionalität
der Operation zum Abrufen von Lieblingsverbindungen zu erweitern,
um einen stärkeren
Dialog unter den Nutzern zu erlauben. Anstatt beispielsweise die
Liste von Lieblingsverbindungen für einen bestimmten Nutzer abzurufen,
kann ein aktueller Nutzer imstande sein, alle Lieblingsverbindungen
aller Nutzer in der aktiven und/oder der gespeicherten Nutzerliste
in die gleiche Liste aufzunehmen. Die Verbindungen in der kumulativen
Liste können
alphabetisch, nach zugeordnetem Nutzer bzw. nach der Häufigkeit
des Auftretens in den einzelnen Listen der Nutzer geordnet werden.
-
Ebenso
kann es, wie oben erläutert,
in vielen Anwendungen wünschenswert
sein, Nutzer zur Verfolgung freizugeben, selbst wenn die Nutzer
Dokumente sehen, die außerhalb
der Mehrbenutzer-Compu-terumgebung
gespeichert sind. 14 veranschaulicht beispielsweise
eine Computerumgebung 400, die eine Mehrbenutzer-Computerumgebung oder
ein Datenverarbeitungssystem 402 (z.B. ein privates vernetztes
Computersystem) enthält,
das mit einem externen Netzwerk 404 (z.B. dem Internet) verbunden
ist. Das Datenverarbeitungssystem 402 enthält eine
Vielzahl von Browsern 406, die in Übereinstimmung mit der Erfindung
mit einem oder mehreren Sitzungsservern 408 verbunden sind.
Die Webbedienungsfunktionalität
der Umgebung wird über eine
oder mehrere interne Server (z.B. Intranetserver 410) sowie über einen
oder mehrere Verbindungsserver (gateway server) (z.B. Internet-Gateway-/Proxy-Server)
behandelt. Das externe Netzwerk enthält eine Vielzahl von auf dem
Internet beruhenden Webservern 414, so wie es im Fachgebiet
bekannt ist.
-
In
der Ausführung
von 14 werden die Orte von verschiedenen Nutzern in
der Umgebung von jedem der Server 410, 412 auf
die oben unter Bezugnahme auf 8 bis 10 beschriebene
Art und Weise verfolgt. Für
den Server 412 besteht der einzige Unterschied im Ablauf
zu den oben beschriebenen Webserver-Ausführungen
darin, dass das Abrufen von Dokument-/Seiten-Inhalten (z.B. in Block 302 von 9)
ausgeführt
wird, indem ein Dokument von einer externen Quelle anstatt von einer
lokalen Datenspeichereinheit, die mit dem Server verbunden ist,
abgerufen. Die Liste der aktiven Nutzer für das Dokument wird jedoch
noch lokal auf dem Server verwaltet. Demzufolge erfordert die Verfolgung
der Positionen verschiedener Nutzer im Internet nicht, dass die
Nutzerverfolgungs-Funktionalität
auf jedem Server eingerichtet wird, auf den ein Nutzer über das
Internet zugreift – eine
Funktionalität,
die wegen der amorphen Natur des Internets sehr schwer oder gar nicht
zu realisieren wäre.
Auf diese Art und Weise ist auch zu sehen, dass die hier beschriebene
Nutzerverfolgungsfunktionalität
entsprechend der Erfindung nicht auf jedem internen Webserver eingerichtet
werden muss. Statt dessen kann die Verfolgungsfunktionalität auf einer
kleineren Anzahl von Servern zentralisiert werden, als tatsächlich in
einem internen Netzwerk vorhanden sind, solange wenigstens ein Webserver
die Zugriffe auf die anderen internen Webserver verfolgt.
-
Andere
Modifikationen werden für
einen normalen Fachmann offensichtlich sein. Deshalb wird die Erfindung
durch die nachstehend angefügten
Ansprüche
begründet.