-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft Mehrpunkt-Datenzustellungs- bzw.
-übermittlungssysteme
und insbesondere Transportmechanismen in einem Mehrpunkt-Datenzustellungssystem.
-
HINTERGRUND DER ERFINDUNG
-
Sowie
Computer für
Wirtschaft und Unterhaltung wichtiger werden, muss die Kommunikation
zwischen Computerbenutzern verbessert werden. Eine wichtige Funktion
von Computern besteht darin, Information an Benutzer zu verteilen
und Benutzern zu ermöglichen,
miteinander zu kommunizieren und zusammenzuarbeiten. Bekannte Systeme
zur Verteilung von Information und zum Zusammenwirken weisen elektronische
Post (E-Mail), Verteilerlisten, Verfügbarmachung von Information
durch ein Mailboxsystem oder eine Seite im World Wide Web und Videokonferenzen
auf.
-
Elektronische
Post ermöglicht
einem Benutzer, Information an eine Vielzahl von Empfängern zu versenden.
Jedoch sind Antworten auf E-Mail nicht ohne weiteres zu sammeln.
Außerdem
können
mehrere Teilnehmer nicht ohne weiteres unter Verwendung von E-Mail
zusammenarbeiten.
-
Verteilerlisten
sind nützlich
zur Verteilung von Information, aber es ist ziemlich schwierig,
im Einzelfall festzulegen, welche Information durch einen Teilnehmer
empfangen wird. Außerdem
kann die Verteilerliste allzu schwerfällig werden, wenn Rückmeldungen
erlaubt sind.
-
Ein
Mailboxsystem oder eine Webseite ist nützlich, um Information zu veröffentlichen.
Jedoch können
Benutzer im allgemeinen die angezeigte Information nicht ohne weiteres
verändern.
Somit lässt diese
Umgebung zwar Bekanntgabe zu, erlaubt aber keine volle Zusammenarbeit
zwischen Benutzern.
-
Videokonferenzen
und ähnliche
Verfahren können
verwendet werden, um an spezifischen Projekten zusammenzuarbeiten.
Jedoch erfordern Videokonferenzen im allgemeinen ein zweckgebundenes Computersystem,
das während
der Videokonferenz nicht für
etwas anderes verwendet werden kann. Obendrein ist die Teilnahme
an Videokonferenzen normalerweise durch das Ausmaß an Verarbeitungsleistung
und Netzwerk-Bandbreite beschränkt,
das erforderlich ist, um jeden Teilnehmer aufzunehmen. Daher ist
die Anzahl der Teilnehmer an solchen Konferenzen erheblich eingeschränkt. Somit
ist es ziemlich schwierig, eine langfristige Zusammenarbeit zwischen
mehreren Benutzern über
ein Videokonferenz-System durchzuführen.
-
Wenn
Zusammenarbeit zwischen mehreren Benutzern stattfindet, die Computer
in unterschiedlichen Netzwerken verwenden, können unterschiedliche Vernetzungsprotokolle
vorliegen. Dies erfordert im allgemeinen, dass mehrere Softwareversionen geschrieben
werden, eine Version für
jedes spezifische Protokoll. Daher wäre es vorteilhaft, einen verbesserten
Mechanismus für
die Zusammenarbeit zu haben, der außerdem unabhängig von
den zugrundeliegenden Netzwerkprotokollen ist.
-
WO 95/17066 beschreibt eine
objektorientierte Client-Server-Einrichtung und eine Vernetzungsserver-Einrichtung.
Schnittstellen implementieren die Kommunikation zwischen Anwendungsprogrammen,
die sich in Client- und Server-Knoten eines verteilten Netzwerks
befinden.
-
KURZE ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird ein Verfahren zum Eintreten in eine Zusammenarbeitssitzung
bereitgestellt, das die folgenden Schritte umfasst: Erzeugen einer
Anforderung in Form eines Quellenlokalisierers, der einer Zusammenarbeitssitzung
in einer Registratur entspricht; Empfangen einer Quellenkennung,
die einem gespeicherten Quellenlokalisierer in der Registratur entspricht;
und als Antwort auf den Empfang der Quellenkennung, die dem gespeicherten
Quellenlokalisierer in der Registratur entspricht, dynamisches Laden
eines im Quellenlokalisierer angegebenen Transportmechanismus, wobei
der Transportmechanismus ein Protokollstapel ist; und Eintreten
in die Zusammenarbeitssitzung.
-
Außerdem werden
bereitgestellt: eine Vorrichtung zur Unterstützung der Zusammenarbeit zwischen
Computerbenutzern, ein Computerdatensignal auf einer Trägerwelle,
welches das erwähnte
Verfahren darstellt, und ein maschinenlesbares Medium mit Anweisungen
zur Ausführung
des erwähnten
Verfahrens, was die unabhängigen
Ansprüche
betrifft.
-
Ausführungsformen
der vorliegenden Erfindung stellen ein Verfahren und eine Vorrichtung
zum dynamischen Laden eines Transportmechanismus in einem Mehrpunkt-Datenzustellungssystem
bereit. Ein Mehrpunkt-Datenzustellungssystem stellt einen Kommunikationsmechanismus
zwischen Benutzern oder einem Computersystem bereit, der das Punkt-zu-Punkt-
und Punkt-zu-Mehrpunkt-Senden von Nachrichten ermöglicht.
Der Transportmechanismus kann ein Protokollstapel sein, der das
verwendete Transportprotokoll kennzeichnet. Die Transportprotokolle
können
folgendes aufweisen: Übertragungssteuerungsprotokoll
(TCP), Benutzer-Datagramm-Protokoll (UDP), Aufruf entfernter Methoden (RMI),
T.120, Objektanforderungsbroker-Architektur (CORBA), Skalierbarer
Zuverlässiger
Gruppenruf (SRM) und andere Implementierungen der Transportebene.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird zu Beispielzwecken und nicht zum Zweck
der Einschränkung
in den Figuren der beigefügten
Zeichnungen dargestellt, wobei in diesen gleiche Bezugszeichen ähnliche
Elemente bezeichnen und wobei diese folgendes zeigen:
-
1 ist
ein Blockschaltbild, das eine Ausführungsform eines Computernetzwerks
darstellt, in dem die vorliegende Erfindung implementiert werden kann;
-
2 ist
eine grafische Übersichtsdarstellung
einer Ausführungsform
der vorliegenden Erfindung;
-
3 ist
ein Blockschaltbild, das ein Beispiel einer Sitzung darstellt;
-
4 ist
ein Blockschaltbild, das eine Ausführungsform der gesamten Anwendungsschnittstelle
darstellt; und
-
5 ist
ein Ablaufplan, der ein Verfahren zum dynamischen Laden des Transportmechanismus
darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG EINER AUSFÜHRUNGSFORM
-
Ein
Verfahren und eine Vorrichtung zum dynamischen Laden des Transportmechanismus
in einem Mehrpunkt-Datenzustellungssystem werden beschrieben. In
der folgenden Beschreibung werden zum Zweck der Erklärung zahlreiche
Einzelheiten dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung
zu ermöglichen.
Für den
Fachmann wird jedoch offensichtlich, dass die vorliegende Erfindung
ohne diese spezifischen Einzelheiten in die Praxis umgesetzt werden
kann. In anderen Fällen werden
bekannte Strukturen und Vorrichtungen in Form von Blockschaltbildern
gezeigt, um zu vermeiden, dass die vorliegende Erfindung unnötig unverständlich gemacht
wird.
-
1 ist
ein Blockschaltbild, das eine Ausführungsform eines Computernetzwerks
darstellt, in dem die vorliegende Erfindung implementiert werden kann.
Computersysteme 110 sind mit anderen Computersystemen 110 entweder
direkt unter Verwendung der Direktverbindung 120 oder durch
ein Netzwerk 130 gekoppelt. In einer Ausführungsform
können
eines oder mehrere der Computersysteme 110 „Clients" einer „Sitzung" sein, die auf einem
anderen Computersystem 110 ausgeführt wird. Diese Begriffe werden
nachstehend definiert. Alternativ kann ein Computersystem 110 als
Server fungieren, während die
anderen Computersysteme 110 Clients sind. Alternativ kann
die vorliegende Erfindung als ein verteiltes System implementiert
werden, das Teile auf mehr als einem Computersystem hat. In einer
alternativen Ausführungsform
kann die Erfindung auf einem einzigen Computersystem 110 implementiert werden.
-
Die
vorliegende Erfindung betrifft das dynamische Laden eines Transportprotokolls
in einem Zusammenarbeitssystem in einem Computernetzwerk. Gemäß einer
Ausführungsform
wird ein Zusammenarbeitssystem als Antwort darauf verwaltet, dass
ein Prozessor Folgen von Anweisungen ausführt, die im Speicher enthalten
sind. Die Ausführung
der Folgen von Anweisungen bewirkt, dass das Computernetzwerk eine
Zusammenarbeitssitzung einrichtet, neue Sitzungen hinzufügt und ein
Transportprotokoll dynamisch lädt,
damit ein Benutzer in eine Zusammenarbeitssitzung eintreten kann,
wie hierin nachstehend beschrieben wird. In alternativen Ausführungsformen kann
eine Schaltungslogik innerhalb eines Computernetzwerks anstelle
von oder in Kombination mit Software verwendet werden, um die vorliegende
Erfindung zu implementieren. Somit ist die vorliegende Erfindung
nicht auf irgendeine spezifische Kombination von Hardware und Software
beschränkt.
-
Es
versteht sich, dass, obwohl in der Beschreibung der Begriff „Quellenlokalisierer" (RL) verwendet wird,
alternative Verfahren zum Spezifizieren eines Objekts im Internet
genutzt werden können. Außerdem können innerhalb
eines RL-Typs alternative Zugriffsprinzipien oder Protokolle genutzt
werden. Somit kann ein RL genutzt werden, der dem Dateitransferprotokoll
(FTP), Telnet und so weiter entspricht. Jedoch wird der Einfachheit
halber nachfolgend der Begriff RL genutzt.
-
2 ist
ein Blockschaltbild, das eine Ausführungsform des Zusammenarbeitssystems
der vorliegenden Erfindung darstellt. Das Zusammenarbeitssystem 210 der
vorliegenden Erfindung kann auf einem oder mehreren Computersystemen 110 implementiert
werden. Das Zusammenarbeitssystem 210 weist Elemente auf,
die auf einem Server-Computer und auf einem Client-Computer implementiert
sind. Der Server- und der Client-Computer können freilich derselbe Computer
sein.
-
Eine
Anwendungs-Benutzerschnittstelle 220 ist eine Schnittstelle,
die den Clients/Benutzern Information anzeigt und Information von
ihnen empfangt. In einer Ausführungsform
kann die Schnittstelle 220 ein Teil einer WWW-Browseranwendung
sein. Die Anwendungs-Benutzerschnittstelle 220 ist auf
dem Computer, der als Client fungiert.
-
Das
Zusammenarbeitssystem 210 weist ferner eine Registratur 230 auf.
Die Registratur 230 enthält Information bezüglich der
entfernten Sitzungen und Clients, was es anderen Computern ermöglicht, in
verschiedene Sitzungen einzutreten und Clients zu werden, wie nachstehend
beschrieben wird. In einer Ausführungsform
ist die Registratur 230 ein Urlader-Namenserver. In einer
Ausführungsform
ist die Registratur 230 in dem Computer implementiert,
der als Server fungiert.
-
Das
Zusammenarbeitssystem 210 weist ferner einen Syntaxanalysator 240 auf.
Der Syntaxanalysator 240 dient zur Syntaxanalyse eines
empfangenen Quellenlokalisierers (RL). In einer Ausführungsform
ist der Quellenlokalisierer ein einheitlicher Quellenlokalisierer
(URL). Der Syntaxanalysator 240 zerlegt den RL zur weiteren
Verarbeitung in seine Bestandteile, wie nachstehend beschrieben
wird. Der Syntaxanalysator 240 ist auf dem Client-Computer implementiert.
-
Ein
dynamischer Lader 250 ist Teil des Zusammenarbeitssystems 210.
Der dynamische Lader dient zum dynamischen (das heißt automatischen) Laden
eines Protokollstapels, der im Speicher 270 gespeichert
ist. Der dynamische Lader 250 lädt einen Protokollstapel als
Antwort auf einen RL, der einen Typ von Protokoll bezeichnet, der
für eine
neue Sitzung bzw. einen neuen Client verwendet werden soll, die
bzw. der eingerichtet wird. Der dynamische Lader 250 empfängt die
Typenbezeichnung von der Registratur 230, bestimmt den
geeigneten Protokollstapel, der für den Typ zu laden ist, und
ruft den Protokollstapel aus dem Speicher 270 ab. Somit
lädt der
dynamische Lader 250 dynamisch den geeigneten Protokollstapel
als Antwort auf den Empfang einer Typenbezeichnung. In einer Ausführungsform
ist der dynamische Lader 250 auf dem Client-Computer implementiert.
-
Eine
Vergleichseinrichtung 260 vergleicht einen empfangenen
RL mit RLs in der Registratur 230. Die Vergleichseinrichtung 260 bestimmt,
ob der empfangene RL schon in der Registratur 230 steht.
Die Vergleichseinrichtung 260 bestimmt, ob der RL eine neue
Sitzung einrichten oder in eine bereits eingerichtete Sitzung eintreten
muss, die in der Registratur 230 steht. Die Vergleichseinrichtung 260 gibt
eine Bestimmung aus, ob im Speicher 270, welcher der Registratur 230 zugeordnet
ist, ein übereinstimmender
RL gefunden wurde. Die Vergleichseinrichtung 260 ist auf
dem Server-Computer implementiert.
-
Der
Sitzungsmanager 280 verwaltet jede der eingerichteten Sitzungen.
Jede eingerichtete Sitzung hat einen RL in der Registratur 230 und
mindestens einen Client. Ein Beispiel für eine Sitzung ist in 3 dargestellt.
Ein Sitzungsmanager 280 ist auf dem Computer implementiert,
der für
die jeweils in Betracht kommende Sitzung als Server fungiert. Bei
einer Ausführungsform
muss der Server für
eine Sitzung nicht auf dem gleichen Computer wie die Registratur 230 implementiert
sein.
-
3 stellt
eine Übersicht
einer Sitzung 300 für
Computer-Zusammenarbeit dar. Sie ermöglicht, dass mehrere Personen
eine Anwendung gemeinsam nutzen. Diese Sitzung 300 kann
zum Beispiel ein Online-Chatprogramm, eine gemeinsam genutzte Dispotafel,
ein Spielsystem und so weiter sein.
-
Die
Sitzung 300 ist eine Zusammenstellung von zusammengehörigen Clients 320, 330, 360,
die Nachrichten über
definierte Kommunikationswege 380, 395 austauschen
können.
Die Clients 320, 330, 360 sind tatsächliche
oder potentielle Teilnehmer an einer Instanz von Mehrteilnehmer-Kommunikation. Sobald
sie einander in einer Sitzung 300 richtig zugeordnet sind,
können
die zusammengehörigen
Clients 320, 330, 360 Daten nach einem
Punkt-zu-Punkt- oder Punkt-zu-Mehrpunkt-Prinzip übermitteln. Die Sitzung 300 protokolliert
den Zustand, welcher der Zusammenstellung von Clients 320, 330, 360 und
ihren zugeordneten Kommunikationswegen 380, 395 zugeordnet
ist, und kann mit einem Objekt zusammenwirken, das eine definierte
Sitzungsverwaltungsrichtlinie einschließt, nämlich den Manager 310.
-
Ein
Kanal 380, 395 ist eine spezifische Instanz eines
potentiellen Mehrteilnehmer-Kommunikationsweges
zwischen zwei oder mehr Clients 320, 330, 360 innerhalb
einer gegebenen Sitzung 300. Ein Kanal 380 kann
von mehreren Clients 320, 330, 360 gemeinsam
genutzt werden, und zwei Clients 320, 330 können einen
getrennten Kanal 395 einrichten. Alle Client-Objekte 320, 330, 360,
die ein Interesse am Empfang von Nachrichten von einem gegebenen Kanal 380 anmelden,
erhalten Nachrichten, die auf diesem Kanal 380 gesendet
werden. Jedweder Client 320, der einen Objektverweis auf
einem Kanal 380, 395 besitzt, ist imstande, eine
Nachricht auf dem gegebenen Kanal 380, 395 zu
senden, und ein Client 320 kann Verweise auf mehrere Kanäle 380, 395 haben.
Somit kann zum Beispiel der Kanal 380 für Mehrteilnehmer-Kommunikation
vom Kanal 395 für die
Kommunikation zwischen zwei Clients 320, 330 getrennt
sein.
-
Ein
Kunde 325, 335, 355, 365 ist
ein Client-Objekt, das sein Interesse am Empfang von Nachrichten
angemeldet hat, die über
einen gegebenen Kanal 380, 395 gesendet werden.
Jeder Client 320, 330, 360 kann ein Kunde 325, 335, 355, 365 sein
und es ist für
einen gegebenen Clienten 330 möglich ein Kunde 335, 355 von
mehreren Kanälen 380, 395 zur
gleichen Zeit zu sein. Ein Client 320, 330, 360 setzt
einen Kunden 325, 335, 355, 365 auf einen
Kanal 380, 395, um Daten zu empfangen, die über diesen
Kanal 380, 395 gesendet werden. Die Daten enthalten
die Rohdaten plus den Namen des Senders, die Priorität der Daten,
die gesendet wurden, und den Namen des Kanals 380, 395, über den die
Daten gesendet wurden.
-
Ein
Beobachter 315, 350, 390 ist ein Objekt, das
sein Interesse daran angemeldet hat, über Veränderungen an einem Zustand
eines anderen Objekts benachrichtigt zu werden. Ein Beobachter 315, 350, 390 kann
Veränderungen
in einer Sitzung 300, auf einem Kanal 380 oder
an einem Token 340 beobachten. Ein Sitzungsbeobachter 315 wird über Clients 320, 330, 360 benachrichtigt,
die in eine Sitzung 300 eintreten oder sie verlassen. Ein
Kanalbeobachter 390 wird über Clients 320, 330, 360 benachrichtigt,
die in einen Kanal 380, 395 eintreten, ihn verlassen,
zum Eintreten eingeladen werden oder aus ihm ausgeschlossen werden.
Ein Tokenbeobachter 350 wird über Clients 320, 330, 360 benachrichtigt,
die in ein Token 340 eintreten, es verlassen, zum Eintreten eingeladen
werden oder aus ihm ausgeschlossen werden. Der Tokenbeobachter 350 wird
auch benachrichtigt, wenn ein Client 320, 330, 360 ein
Token 340 an einen anderen Client 320, 330, 360 weiterzugeben
oder von ihm zu übernehmen
wünscht.
-
Ein
Manager 310, 345, 385 schließt eine
bestimmte Verwaltungsrichtlinie für ein anderes gegebenes Objekt
ein. Der Zugriff auf eine Sitzung 300, einen Kanal 380 oder
ein Token 340 kann gesteuert werden, indem ihr bzw. ihm
zum Zeitpunkt der Erzeugung ein Manager 310, 345, 385 zugeordnet
wird. Der Manager 310, 345, 385 authentifiziert
Clients 320, 330, 360, die in diese Ressource
einzutreten wünschen,
und auf der Grundlage ihrer Antworten akzeptiert sie sie oder weist
sie ab. Sowohl der Sende- als
auch der Empfangszugriff auf individuelle Kanäle 395 können durch
einen Privatkanal-Mechanismus gesteuert werden. Jedweder Client 320, 330, 360 kann
einen privaten Kanal 395 einberufen, was dazu führt, dass
der Client 320, 330, 360 der Privatkanal-Manager 385 eines
leeren Kanals wird. Der Kanal-Manager 385 kann einen Client 320, 330, 360 einladen,
in den Kanal 380 einzutreten, oder kann einen Client 320, 330, 360 zum
Austreten zwingen.
-
Ein
Token 340, 370 ist ein Synchronisationsobjekt,
das eine eindeutige verteilte unteilbare Operation bildet. Die Token 340, 370 können verwendet werden,
um eine Vielfalt von unterschiedlichen Synchronisationsmechanismen
auf Anwendungsebene zu implementieren, zum Beispiel, um einen Alleinberechtigungszugriff
auf eine gemeinsam genutzte Ressource sicherzustellen. Die Token 340, 370 stellen
ein Mittel zur Implementierung eines Alleinberechtigungszugriffs
dar. Um zum Beispiel in einer Ressourcen nutzenden Mehrpunktanwendung
sicherzustellen, dass zu einem gegebenen Zeitpunkt ein und nur ein
Standort eine gegebene Ressource hält, kann jeder Ressource ein
Token 340, 370 zugeordnet werden. Wenn ein Standort
eine spezifische Ressource zu verwenden wünscht, muss er um deren entsprechendes
Token 340, 370 bitten, welches nur dann gewährt wird,
wenn niemand sonst es hält. Ein
einzelnes Token 340, 370 kann verwendet werden,
um ein Ereignis mit mehreren Clients zu koordinieren, indem jeder
Client 320, 330, 360 in einem Nicht-Alleinberechtigungsmodus
veranlasst wird, das Token 340, 370 zu nehmen.
Die Clients 320, 330, 360 können unabhängig voneinander
das gleiche Token 340, 370 sperren oder freigeben.
Wenn zum Beispiel erwünscht
wäre, zu
wissen, wann alle Clients 320, 330, 360 den
Empfang und die Verarbeitung einer Massendaten-Dateiübertragung
abgeschlossen haben, würden
alle empfangenden Clients 320, 330, 360 bei
Nicht-Alleinberechtigung das gleiche Token 340, 370 ergreifen
(sperren), und jeder einzelne Client 320, 330, 360 würde das
Token 340, 370 freigeben, wenn er den verbotenen
Prozess abgeschlossen hätte.
Jeder Client 320, 330, 360 könnte das
Token 340, 370 nach Belieben prüfen, um
zu bestimmen, ob das Token 340, 370 frei ist,
was bedeutet, dass alle Clients 320, 330, 360 die
Verarbeitung abgeschlossen haben.
-
BETRIEBSBEISPIEL
-
Innerhalb
einer Mehrpunktsitzung 300 kann ein Client 320, 330, 360 Daten
an unterschiedliche Mitglieder der Sitzung 300 senden und
zur Ressourcenkonfliktlösung
Zugriff auf Token 340, 370 haben. Dieses Beispiel
wird mit Bezug auf den Client D 330 beschrieben. Es versteht
sich jedoch, dass die gegebene Beschreibung auch für jeden
anderen Client gilt, der in eine Sitzung eintritt. Als erstes muss
ein Client 330 in eine Sitzung 300 eintreten.
Der Client 330 bestimmt zuerst, was für Sitzungen für ihn verfügbar sind.
-
Der
Client 330 tritt dann in eine Sitzung 300 oder
in mehrere Sitzungen ein. Die Sitzung hat normalerweise mehrere
Clients 320, 330, 360, entweder am selben
Standort oder an unterschiedlichen Standorten. Eine Anwendung oder
ein Applet kann mehrere Clients 320, 330, 360 in
der gleichen Sitzung 300 haben. Ein Applet ist ein in der
JavaTM-Sprache von Sun MicrosystemsTM (Sun, Sun Microsystems, das Sun-Logo und
Java sind eingetragene Warenzeichen der Sun Microsystems Inc. in
den USA und anderen Ländern)
geschriebenes plattformunabhängiges
Programm, das als Anhang in einem WWW-Dokument verteilt und durch
einen Web-Browser ausgeführt werden
kann. Jeder Client 320, 330, 360 könnte eine andere
Art von Daten, nämlich
Audio- oder Video-Daten, behandeln. Bin Client 330 kann
auch Mitglied mehrerer Sitzungen sein.
-
Wenn
die Sitzung 300 eingerichtet worden ist und der Client 330 in
die Sitzung 300 eingetreten ist, tritt der Client 330 in
die geeigneten Kanäle 380, 395 ein,
die er zum Empfang von Daten benötigt.
Die Verwendung dieser Kanäle 380, 395 ist
anwendungsabhängig.
Außerdem
werden Token 340, 370 zur Verwaltung einer für den Client
verfügbaren
Ressource bereitgestellt. Die Kanäle 380, 395 sind
sitzungsweite Adressen. Jeder Client 320, 330, 360 einer
Sitzung 300 kann in einen Kanal 380, 395 eintreten,
um an ihn gesendete Daten zu empfangen, und indem er in eine geeignete
Kombination von Kanälen 380, 395 eintritt
und sie nutzt, kann sich ein Client 330 dafür entscheiden,
an diese Kanäle 380, 395 gesendete Nachrichten
zu empfangen und an andere Kanäle gesendete
Nachrichten zu ignorieren. Der Client 330 abonniert und
verlässt
die erwünschten
Kanäle 380, 395 gemäß den Kanaleintritts- und -austrittsmethoden.
-
Sobald
sich die teilnehmenden Clients 320, 330, 360 der
gemeinsamen Sitzung 300 angeschlossen haben und in die
richtige Kombination von Kanälen 380, 395 eingetreten
sind, sind sie bereit, Daten nach einem echten Mehrpunkt-Prinzip
auszutauschen.
-
4 ist
ein Blockschaltbild, das die verschiedenen Ebenen des Zusammenwirkens
innerhalb einer Zusammenarbeitsumgebung darstellt. Die unterste
Ebene ist die Transportebene 410. Die Transportebene 410 wird
genutzt, um die Kopplung zum Netzwerk herzustellen, und kann folgendes
aufweisen: Übertragungssteuerungsprotokoll
(TCP), Benutzer-Datagramm-Protokoll (UDP), Aufruf entfernter Methoden
(RMI), T.120, Objektanforderungsbroker-Architektur (CORBA), Skalierbarer
Zuverlässiger
Gruppenruf (SRM) und andere Implementierungen der Transportebene 410.
-
Eine
Registratur 420 liegt eine Ebene über der Transportebene 410.
Die Registratur 420 befindet sich auf dem Computersystem,
das als Server fungiert, und wird verwendet, um den Überblick über alle
aktuellen Sitzungen und Clients zu behalten. In einer Ausführungsform
ist die Registratur 420 ein Urlader-Namenserver, der es einem Benutzer ermöglicht,
entfernte Sitzungen auf einem gegebenen Zentralcomputer zu erlangen.
Die Registratur 420 ist eigentlich ein Datensatz, der eine
Liste aller verfügbaren
Sitzungen und Clients enthält.
Oberhalb der Registratur 420 liegt die Sitzungsverwaltung 430.
Die Sitzungsverwaltung 430 fungiert als Manager jeder einzelnen
Sitzung, die im Gange ist. Jede Sitzung hat einen getrennten Verwaltungsblock,
und all diese Verwaltungsblöcke
bilden zusammen die Sitzungsverwaltung 430.
-
Auf
der gleichen Ebene wie die Registratur 420 liegt die gemeinsame
Nutzung verteilter Daten 440. Die gemeinsame Nutzung verteilter
Daten 440 ermöglicht,
dass die verschiedenen Typen von Datenobjekten von einer Anzahl
von Clients gemeinsam genutzt werden können. Die gemeinsame Datennutzung 440 ermöglicht die
gemeinsame Nutzung der gemeinschaftlichen Objekte 450,
der gemeinschaftlichen Grundelemente 460, der Token 470 und
der Veröffentlichungs/Abonnements-Tupel 480.
Die gemeinsame Nutzung verteilter Daten 440 enthält außerdem die
Kanäle
und die Software zum Senden und Empfangen von Daten.
-
Die
gemeinschaftlichen Objekte 450 befinden sich oberhalb der
Sitzungsverwaltung 430. Die gemeinschaftlichen Objekte 450 weisen
Sitzungen, Kanäle,
Daten, Token, Beobachter, Kunden, Manager und Grundelemente auf.
Alle Daten, die diesen Objekten zugeordnet sind, können durch
Verwendung der gemeinsamen Datennutzung 440 gemeinsam genutzt
werden. Bei einer Ausführungsform
ermöglichen
die gemeinschaftlichen Objekte 450 außerdem, dass Objekte außerhalb
der Mehrpunkt-Zusammenarbeitsumgebung
gemeinsam genutzt werden.
-
Die
gemeinschaftlichen Grundelemente 460 befinden sich oberhalb
der gemeinsamen Nutzung verteilter Daten 440 und der Sitzungsverwaltung 430. Die
gemeinschaftlichen Grundelemente 460 werden verwendet,
um einfache bezeichnete Datenelemente zu erzeugen und zu aktualisieren,
die von den Mitgliedern einer Sitzung gemeinsam genutzt werden. Sie
können
folgendes aufweisen: Boolesch, Doppeltgenau, Fließkomma,
Ganzzahl, Lang und Zeichenkette. Die gemeinschaftlichen Grundelemente 460 haben
immer einen aktuellen internen Wert.
-
Die
Token 470 befinden sich oberhalb der gemeinschaftlichen
Grundelemente 460. Die Token 470 bilden ein Mittel,
um Alleinberechtigungszugriff auf gemeinsam genutzte Ressourcen
zu implementieren. Wenn ein Standort eine spezifische Ressource
zu verwenden wünscht,
muss er deren Token anfordern, welches nur dann gewährt wird,
wenn kein anderer des Token hält.
Die Token 470 werden auch dafür verwendet, ein Ereignis mit
mehreren Clients zu koordinieren, und zwar durch Nicht-Alleinberechtigungstoken,
die durch mehrere Clients zur gleichen Zeit gemeinsam genutzt werden
können.
-
Die
Veröffentlichungs/Abonnements-Tupel 480 befinden
sich oberhalb der gemeinschaftlichen Grundelemente 460.
Jedem Client sind Veröffentlichungs/Abonnements-Tupel 480 zugeordnet.
Die Veröffentlichungs/Abonnements-Tupel 480 ermöglichen
einem Client, etwas im Zusammenarbeitssystem zu veröffentlichen
und Veröffentlichungen
anderer zu abonnieren.
-
5 ist
ein Ablaufplan, der den Ablauf zum Eintreten in eine Sitzung oder
zum Anmelden bei der Registratur 420 darstellt. In Block 510 wird
ein universeller Quellenlokalisierer (RL) von einem Client empfangen.
In einer Ausführungsform
hat der Quellenlokalisierer die folgende Form:
coll://<host>:<port>/<type>/Session/<session_name>
oder
coll://<host>:<port>/<type>/Client/<client_name>
wobei die Information
in „<>"-Klammern
durch den tatsächlichen
Namen ersetzt wird. Host:port bezeichnet den Standort des für diese
bestimmte Sitzung vorgesehenen Servers. „Host" gibt den Namen des Zentralcomputers
an. „Port" gibt die Portnummer
des Computers an, auf dem die bzw. der gegenwärtige Sitzung oder Client eingerichtet
werden soll. „Type" bezeichnet den für die Zusammenarbeit
verwendeten Verbindungstyp, einschließlich zum Beispiel TCP, UDP,
RMI, T.120, CORBA, SRM und anderer Transporttypen. Die Sitzung oder
der Client bestimmt, ob der RL auf eine Sitzung oder einen Client
verweist. Der Sitzungsname (session_name) und der Clientname (client_name)
sind selbsterklärend.
-
In
Block 520 wird der RL syntaktisch analysiert. Die syntaktische
Analyse des RL trennt die oben beschriebenen Elemente voneinander,
um den RL zu analysieren.
-
In
Block 530 wird der empfangene RL mit den RLs in der Registratur
verglichen. Jede eingerichtete Sitzung hat einen RL, der in der
Registratur gespeichert ist, damit andere Benutzer sich an die gleiche
Sitzung anschließen
können.
Somit wird jedes Element des RL mit den RLs in der Registratur verglichen.
-
In
Block 540 bestimmt der Ablauf, ob der empfangene RL mit
einem RL in der Registratur identisch ist. Wenn der RL bereits in
der Registratur steht, geht der Ablauf direkt mit Block 570 weiter.
Andernfalls geht der Ablauf mit Block 550 weiter.
-
In
Block 550 wird der im RL festgelegte Transportmechanismus
bestimmt. Das heißt,
der festgelegte Typ, wie etwa TCP, UDP, RMI, T.120, CORBA, SRM,
wird identifiziert. Somit ist zum Beispiel in einem RL wie etwa „coll://stard.Eng:4461/TCP/Session/ChatSession/" der Typ „TCP".
-
In
Block 560 wird der neue RL zur Registratur hinzugefügt. Das
Hinzufügen
des RL zur Registratur ermöglicht
es späteren
Benutzern/Clients, sich für
einen Eintritt in die Zusammenarbeitssitzung anzumelden. Die Registratur 230 kann
Sitzungen mit einem anderen Transportmechanismus haben.
-
In
Block 570 wird eine Standortkennung, die den Standort der
eingerichteten Sitzung angibt, an den Benutzer zurückgesendet.
In einer Ausführungsform
ist die Standortkennung ein Zeiger auf den RL in der Registratur.
In einer anderen Ausführungsform
ist die Standortkennung eine Internet-Adresse. In einer Ausführungsform
wird die Sitzung auf dem gleichen Server eingerichtet, auf dem sich
die Registratur befindet. Alternativ kann die Sitzung auf einem
anderen Computer eingerichtet werden, der durch den RL angegeben
ist.
-
In
Block 580 lädt
der Client als Antwort auf den Empfang der Standortkennung dynamisch
die Objektklasse und den geeigneten Protokollstapel. In einer Ausführungsform
ist die Objektklasse eine SharedData-Klasse (Klasse der gemeinsam
genutzten Daten). Jeder Typ von Transportmechanismus hat einen Protokollstapel,
das heißt
eine geschichtete Menge von Protokollen, die zusammenarbeiten, um
eine Menge von Netzwerkfunktionen bereitzustellen. Der Protokollstapel
kann dem siebenschichtigen Modell der Internationalen Standardisierungsorganisation
folgen. Jedem Client im Mehrpunkt-Zusammenarbeitssystem steht mindestens
ein Protokollstapel zur Verfügung.
Als Antwort auf den Empfang der Standortkennung des RL lädt der dynamische
Lader 250 des Clients den geeigneten Protokollstapel, was den
Client befähigt,
mit der Sitzung zu kommunizieren. In einer Ausführungsform wird der Protokollstapel
automatisch geladen, was bedeutet, dass ein Client oder Benutzer
nicht mit dem vorliegenden System zusammenwirken muss, um ein neues
Protokoll auszuwählen.
-
In
der vorangegangenen Beschreibung ist die Erfindung mit Bezug auf
spezifische Ausführungsformen
derselben beschrieben worden. Es ist jedoch offensichtlich, dass
daran verschiedene Modifikationen und Veränderungen vorgenommen werden
können,
ohne vom Schutzbereich der Erfindung abzuweichen. Die Beschreibung
und die Zeichnungen sind dementsprechend in einem veranschaulichenden
statt in einem einschränkenden
Sinne zu verstehen. Die vorliegende Erfindung sollte nicht so ausgelegt
werden, dass sie durch solche Ausführungsformen und Beispiele
begrenzt wird, sondern vielmehr gemäß den folgenden Ansprüchen ausgelegt
werden.
-
Der
oben beschriebene Ablauf kann durch ein Computerprogramm ausgeführt werden,
das auf einem Computer in der beschriebenen Umgebung läuft. Ein
solches Computerprogramm kann auf eine dem Fachmann bekannte Art
und Weise auf einem Aufzeichnungsmedium (zum Beispiel einer Magnetplatte
oder einem Magnetband, einer optischen Speicherplatte oder einer
elektronischen Speichervorrichtung, wie etwa einem ROM) aufgezeichnet
sein. Wenn das Aufzeichnungsmedium durch eine geeignete Lesevorrichtung,
wie etwa ein magnetisches oder optisches Speicherplattenlaufwerk,
gelesen wird, wird ein Signal erzeugt, das einen Computer veranlasst,
die beschriebenen Abläufe
auszuführen.
-
Die
Ablaufe können
auch durch elektronische Mittel ausgeführt werden.