-
Das Gebiet
der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Computernetzwerke, und im
Speziellen auf das Verteilen von Zugehörigkeitsinformationen für Mehrfachteilnehmer-Anwendungsschicht-Sessions.
-
Hintergrund
und relevante Technik
-
Computernetzwerke
haben unsere Fähigkeit
zu kommunizieren und auf Informationen zuzugreifen verbessert durch
das Ermöglichen,
dass ein Computer oder eine Vorrichtung (hiernach werden beide als "Computersystem" bezeichnet) über ein
Netzwerk mit einem anderen Computersystem unter Benutzung von elektronischen
Nachrichten kommuniziert. Beim Übertragen
einer elektronischen Nachricht zwischen Computersystemen wird die
elektronische Nachricht öfter
durch einen Protokoll-Stack (Protokoll-Stapel-Speicher) passieren, welche Operationen
mit den Daten in der elektronischen Nachricht (z.B. Paketieren,
Weiterleiten, Flusskontrolle) durchführt. Das OSI (Open System Interconnect)-Modell
ist ein Beispiel eines Netzwerk-Frameworks für das Implementieren eines
Protokoll-Stack.
-
Das
OSI-Modell zerlegt die Operationen für das Übertragen einer elektronischen
Nachricht in sieben getrennte Layer, von denen jede bestimmt ist,
um bestimmte Operationen in den Datenweiterleitungsprozess vorzunehmen.
Während
ein Protokoll-Stack potenziell jede der Layer implementieren kann,
implementieren viele Protokoll-Stacks nur einzelne Layer zur Benutzung
bei dem Übertragen
von Daten über
ein Netzwerk. Wenn die Daten von einem Computersystem übertragen
werden, entspringen diese der Anwendungsschicht und werden zu dazwischen
liegenden niedrigeren Schichten und danach in das Netzwerk weitergereicht. Wenn
die Daten von einem Netzwerk empfangen werden, treten diese über die
physikalische Schicht ein und werden zu höheren dazwischen liegenden
Schichten weitergeleitet und dann letzten Endes von der Anwendungsschicht
empfangen. Die Anwendungsschicht, die oberste Schicht, ist verantwortlich
für das
Unterstützen von
Applikationen und Benutzerprozessen, wie beispielsweise elektronische
Konferenzsoftware.
-
Die
Funktionalität
von unteren Schichten eines Protokoll-Stack wird typischerweise
von der Anwendungsschicht abstrahiert. Das heißt, Anwendungsdaten werden
zu und von einer Anwendungsschicht durch die unteren Schichten übertragen,
ohne der Anwendungsschicht die Funktionalität der unteren Schichten darzulegen.
Die Abstraktion kann es für
eine Zahl von Anwendungsschichtprozessen in verschiedenen Computersystemen
erscheinen lassen, dass die Anwendungsschichtprozesse direkt miteinander
verbunden sind (wobei eigentlich untere Schichten in entsprechenden
Protokoll-Stacks Daten als die Daten, welche zwischen den Anwendungsschichtprozessen übertragen
werden bearbeiten). Demnach kann die Kommunikation zwischen zwei
Anwendungsschichtprozessen gesehen werden als eine logische Verbindung
(auch als logischer Link bezeichnet), ungeachtet des zugrunde liegenden
physikalischen Netzwerkes, welches die Kommunikation ermöglicht.
-
Des Öfteren,
wenn Computersysteme miteinander kommunizieren, werden die Computersysteme
zuerst eine Kommunikations-Session aufbauen. Dies kann Anwendungsschichtprozesse
in einer Zahl von unterschiedlichen Computersystemen beinhalten,
welche eine Mehrfachteilnehmer-Anwendungsschicht-Session aufbauen,
wie z.B. eine Mehrfachteilnehmer-Konferenz-Session. Um eine Mehrfachteilnehmer-Konferenz-Session aufzubauen,
werden Konferenzanwendungen in jedem der Computersysteme logisch
miteinander verbunden. Die logischen Verbindungen führen typischerweise
zu Computersystemen, welche in einer logischen Hierarchie konfiguriert
sind, wie beispielsweise einer T.120-Konferenz-Session.
-
Die
logisch verbundenen Konferenzanwendungen wählen dann ein steuerndes Computersystem
als die „Wurzel" der logischen Hierarchie
aus. Andere Computersysteme in der logischen Hierarchie können „Blätter"-Computersysteme
(Computersysteme ohne weitere Computersysteme unterhalb diesen in
der logischen Hierarchie) oder zwischen liegende Computersysteme
(Computersysteme zwischen dem Wurzel-Computersystem und einem Blatt-Computersystem
in der logischen Hierarchie). Das steuernde Computersystem ermöglicht die Übertragung
von Konferenzdaten zwischen den anderen Computersystemen in der
logischen Hierarchie. Jedes dazwischen liegende und Blatt-Computersystem pflegt
Verbindungsinformationen (in Verbindung mit einer logischen Verbindung)
für das
Senden von Konferenzdaten zu und empfangen von Konferenzdaten von
dem Wurzel-Computersystem. Gleichermaßen pflegt das steuernde Computersystem
Verbindungsinformationen für
das Senden von Konferenzdaten und das Empfangen von Konferenzdaten
von jedem dazwischen liegenden und Blatt-Computersystem.
-
Typischerweise
entstammen die Konferenzdaten aus einem dazwischen liegenden oder
einem Blatt-Computersystem in einem Ast der logischen Hierarchie.
Das dazwischen liegende oder Blatt-Computersystem überträgt die Konferenzdaten
die logische Hierarchie aufwärts
zu dem steuernden Computersystem. Das steuernde Computersystem überträgt dann
die Konferenzdaten abwärts
der logischen Hierarchie zu allen dazwischen liegenden und Blatt-Computersystemen
in der logischen Hierarchie. Demnach fließen während einer typischen Konferenz-Session
alle Konferenzdaten durch das steuernde Computersystem.
-
Jedoch
kommuniziert ein dazwischen liegendes oder Blatt-Computersystem
in einem Ast der logischen Hierarchie nicht typischerweise direkt
mit dazwischen liegenden oder Blatt-Computersystemen in einem anderen
Ast der logischen Hierarchie. Demnach gibt es, wenn überhaupt,
ein geringes Bedürfnis
für ein
dazwischen liegendes oder Blatt-Computersystem
in einem Ast der logischen Hierarchie, Verbindungsinformationen
für dazwischen
liegende oder Blatt-Computersysteme in anderen Ästen der logischen Hierarchie
zu pflegen. Da alle Konferenzdaten durch das steuernde Computersystem
fließen,
beeinträchtigt
der Ausfall eines dazwischen liegenden oder Blatt-Computersystems
nicht die Übertragung
von Konferenzdaten zu Computersystemen außerhalb des entsprechenden
Astes, welcher das ausfallende Computersystem beinhaltet. Demnach
können
Konferenzdaten immer noch zu Computersystemen in anderen Ästen übertragen
werden, wenn ein dazwischen liegendes oder Blatt-Computersystem
ausfällt.
-
Unglücklicherweise
kann der Ausfall eines steuernden Wurzel-Computersystems in einer
logischen Hierarchie einen deutlichen nachteiligen Einfluss auf
die Übertragung
von Konferenzdaten für
eine Mehrfachteilnehmer-Konferenz-Session haben. Wenn ein steuerndes
Wurzel-Computersystem ausfällt,
gehen andere Computersysteme in der logischen Hierarchie in den
Auswahlmodus über.
Während
des Auswahlmodus ist die Übertragung
von Konferenzdaten ausgesetzt, während
die anderen Computersysteme versuchen, ein neues steuerndes Wurzel-Computersystem
zu wählen.
-
Der
Wahlalgorithmus, welcher typischerweise implementiert ist um ein
neues steuerndes Wurzel-Computersystem zu wählen, kann sehr komplex sein
und kann in der Größenordnung
einige Sekunden benötigen,
um abzuschließen.
Da keine Daten während
des Wahlmodus übertragen
werden, wird das Benutzererlebnis während der Ausführung des
Wahlalgorithmus deutlich verschlechtert. Es kann ebenso sein, dass
andere Computersysteme anfänglich
nicht dem Computersystem, welches als das steuernde Wurzel- Computersystem gewählt werden
soll, zustimmen. Demnach kann der Wahlalgorithmus mehrmals ausgeführt werden, solange
bis ein angemessenes Wahlergebnis erreicht ist. Dies kann den Wahlprozess
verlängern
und das Benutzererlebnis weiter verschlechtern. Des Weiteren kann
es vorkommen, dass angemessene Wahlergebnisse nicht erreicht werden
(d.h. der Wahlalgorithmus schlägt
fehl, um automatisch ein neues steuerndes Computersystem zu wählen). Demnach
kann die Expertise eines Systemadministrators benötigt sein,
um die Mehrfachteilnehmer-Konferenz-Session zurückzusetzen und/oder ein neues
steuerndes Wurzel-Computersystem auszuwählen.
-
Zusätzliche
Computersysteme können
von der Teilnahme an einer Mehrfachteilnehmer-Konferenz-Session abgehalten werden,
wenn die Computersysteme der Mehrfachteilnehmer-Konferenz-Session
in dem Wahlmodus sind. Ein Benutzer eines Computersystems, welcher
versucht, der Mehrfachteilnehmer-Konferenz-Session während des
Wahlmodus beizutreten, kann eine falsche Indikation erhalten, dass
die Mehrfachteilnehmer-Konferenz-Session nicht existiert. Dies kann
darin resultieren, dass der Benutzer weitere Bemühungen unterlässt, um
sich mit der Mehrfachteilnehmer-Konferenz-Session zu verbinden, obwohl die Mehrfachteilnehmer-Konferenz-Session
aufgebaut ist und Konferenzdaten anschließend übertragen werden (nachdem ein
neues steuerndes Wurzel-Computersystem gewählt ist).
-
US
2002/0105917 A1 beschreibt eine Konferenzschaltungsvorrichtung zum
Verwalten einer Konferenz zwischen Mediensignalquellen, welche Mediendatenpakete
erzeugen, die Mediendatenpakete übertragen
kodierte Medieninformationen und Kodiertypinformationen. Die Mediensignalquellen
erzeugen, um einer Konferenz beizutreten, Linknachrichten, welche
die jeweils unterstützten
Kodiertypen beinhalten, und übertragen
die Linknachrichten zu der Konferenzschaltungsvorrichtung. Die Konferenzschaltungsvorrichtung
empfängt
die Linknachrichten und bearbeitet diese, um einen ersten gemeinsamen
Kodiertyp zu erlangen, welcher von allen Mediensignalquellen in
der Konferenz unterstützt
wird und einen zweiten Kodiertyp zu erlangen, welcher von einer
Teilmenge der Mediensignalquellen in der Konferenz unterstützt wird.
Die Konferenzschaltungsvorrichtung erzeugt Linknachrichtanwortsignale,
welche den ersten Kodiertyp und den zweiten Kodiertyp an die Teilmenge
der Mediensignalquellen übertragen
und welche mindestens den ersten Kodiertyp an die Mediensignalquellen
außerhalb
der Teilmenge aller Mediensignalquellen übertragen. In Erwiderung auf
das Linknachrichtantwortsignal aktiviert jede Mediensignalquelle
zumindest den ersten Kodiertyp und wahlweise den zweiten Kodiertyp.
-
Kurzer Überblick über die
Erfindung
-
Es
ist die Aufgabe der vorliegenden Erfindung, Systeme, Verfahren und
Computerprogrammprodukte für
das Verteilen von Zugehörigkeitsinformationen
für Mehrparteienanwendungsschichtsessions
zur Verfügung
zu stellen.
-
Diese
Aufgabe ist gelöst
durch die Erfindung, wie diese in den unabhängigen Ansprüchen definiert
ist.
-
Ausführungsformen
sind in den abhängigen
Ansprüchen
beschrieben.
-
Die
zuvor beschriebenen Probleme mit dem früheren Stand der Technik werden überwunden
durch die Prinzipien der vorliegenden Erfindung, welche auf Verfahren,
Systeme, Computerprogrammprodukte und Datenstrukturen für das Verteilen
von Zugehörigkeitsinformationen
für Mehrfachteilnehmer-Anwendungsschicht-Sessions
gerichtet sind. Eine Mehrfachteilnehmer-Anwendungsschicht-Session,
wie beispielsweise eine Mehrfachteilnehmer-Konferenz-Session, beinhaltet
eine Anzahl von teilnehmenden Computersystemen. Eine Anzahl von
unterschiedlichen Netzwerktechnologien (z.B. Ethernet, Token Ring,
802.11, usf.) können
unterschiedliche teilnehmende Computersysteme an der Mehrfachteilnehmer-Konferenz-Session
physikalisch verbinden. Konferenzanwendungen in jedem der teilnehmenden
Computersysteme sind logisch miteinander verbunden (d.h. Konferenzanwendungsverbindungen
werden abstrahiert von den physikalischen Verbindungen), was in
einem logischen Graph resultiert, z.B. einem hierarchischen Baum.
Es kann sein, dass eine Konferenzanwendung in einem teilnehmenden
Computersystem mit Konferenzanwendungen in einer Anzahl von anderen
teilnehmenden Computersystemen logisch verbunden ist.
-
Ein
beitretendes Computersystem kann versuchen, der Mehrfachteilnehmer-Konferenz-Session beizutreten
(oder der Mehrfachteilnehmer-Konferenz-Session anzeigen, dass dieses
noch "am Leben" ist) durch das Senden
einer "Hallo"-Nachricht an ein
einladendes Computersystem, welches schon an der Mehrfachteilnehmer-Konferenz-Session
teilnehmend sein kann. Das einladende Computersystem empfängt die "Hallo"-Nachricht und aktualisiert
eine einladungsseitige Verbindungsdatenbank (auch als Linkdatenbank
oder Linkdatenbasis bezeichnet), im folgenden auch als Verbindungsdatenbank
der einladenden Seite bezeichnet, um anzuzeigen, dass das einladende
Computersystem logisch mit dem beitretenden Computersystem verbunden
ist. Die Computersysteme der einladenden Seite senden die aktualisierte
Verbindungsdatenbank der einladenden Sei te an das beitretende Computersystem.
Die aktualisierte Verbindungsdatenbank der einladenden Seite beinhaltet
zumindest ein Verbindungsstatus-Eintrag (auch als Linkzustandsdatensatz
bezeichnet) der einladenden Seite, welche anzeigt, dass das einladende
Computersystem logisch mit dem beitretenden Computersystem verbunden
ist. Wenn das einladende Computersystem bereits an der Mehrfachteilnehmer-Konferenz-Session
teilnimmt, kann die Vebindungsdatenbank der einladenden Seite Verbindungsstatus-Einträge für andere
teilnehmende Computersysteme beinhalten.
-
Ein
Verbindungsstatus-Eintrag beinhaltet zumindest einen Computersystem-Identifizierer, einen
Zeitstempel und eine Liste von logischen Verbindungen zu Nachbar-Computersystemen.
Somit, wenn ein beitretendes Computersystem einer Mehrfachteilnehmer-Konferenz-Session
beitritt, kann das beitretende Computersystem eine Verbindungsdatenbank
empfangen, welches andere teilnehmende Computersysteme und die logischen
Verbindungen, welche andere teilnehmende Computersysteme verbindet,
beinhaltet. Demnach, wenn ein teilnehmendes Computersystem ausfällt, können andere
teilnehmende Computersysteme sich leichter von diesem Ausfall erholen
und die Mehrfachteilnehmer-Konferenz-Session kann weitergeführt werden, ohne
das Benutzererlebnis signifikant zu verschlechtern.
-
Das
beitretende Computersystem empfängt
die aktualisierte Verbindungsdatenbank der einladenden Seite und
aktualisiert möglicherweise
eine beitrittsseitige Verbindungsdatenbank, im folgenden auch als
Verbindungsdatenbank der beitretenden Seite genannt, mit Verbindungsstatus-Einträgen der
Verbindungsdatenbank der einladenden Seite. Das Aktualisieren einer
Verbindungsdatenbank der beitretenden Seite kann beinhalten das
Vergleichen von Zeitstempeln in der Verbindungsdatenbank der beitretenden
Seite mit den Zeitstempeln in der empfangenen Verbindungsdatenbank
der einladenden Seite. Wenn ein Verbindungsstatus-Eintrag in der
empfangenen Verbindungsdatenbank der einladenden Seite neuer ist,
kann die Verbindungsdatenbank der beitretenden Seite aktualisiert
werden mit dem Verbindungsstatus-Eintrag der empfangenen Verbindungsdatenbank
der einladenden Seite. Wenn die Verbindungsdatenbank der beitretenden
Seite keinen Verbindungsstatus-Eintrag für ein teilnehmendes Computersystem
hat, wird ein entsprechender Verbindungsstatus-Eintrag der empfangenen
Verbindungsdatenbank der einladenden Seite benutzt, um die Verbindungsdatenbank
der beitretenden Seite zu aktualisieren.
-
Wenn
es angebracht ist, fügt
das beitretende Computersystem (oder aktualisiert) einen Verbindungsstatus-Eintrag
der beitretenden Seite in die Verbindungsdatenbank der beitretenden
Seite ein, um anzuzeigen, dass das beitretende Computersystem logisch
mit dem einladenden Computersystem verbunden ist. Das beitretende
Computersystem sendet einen Verbindungsstatus-Eintrag der beitretenden
Seite an das einladende Computersystem. Das einladende Computersystem
kann den Verbindungsstatus-Eintrag der empfangenden Seite weiterleiten
(ebenso wie die aktualisierte Verbindungsdatenbank der einladenden
Seite) an andere teilnehmende Computersysteme. Demnach gehen teilnehmende
Computersysteme kontinuierlich in einen stationären Zustand über, in
dem jedes teilnehmende Computersystem von anderen teilnehmenden
Computersystemen und logischen Verbindungen, die mit anderen teilnehmenden
Computersystemen verbunden sind, Kenntnis hat.
-
In
manchen Beispielen stellt ein reparierendes Computersystem fest,
dass Verbindungsdaten (Linkdaten) nicht mehr von einem Nachbar-Computersystem
empfangen werden (z.B. ein teilnehmendes Computersystem, welches
als logisch verbunden angezeigt wird mit dem reparierenden Computersystem
in einem Verbindungsstatus-Eintrag der reparierenden Seite(auch
als Reparaturseite bezeichnet)). Demnach entfernt das reparierende
Computersystem das Nachbar-Computersystem von der Liste von Nachbar-Computersystemen des
reparierenden Computersystems (z.B. beinhaltet in dem Verbindungsstatus-Eintrag
der reparierenden Seite) und entfernt den Verbindungsstatus-Eintrag
des Nachbarcomputersystems von der Verbindungsdatenbank der reparierenden
Seite. Das reparierende Computersystem identifiziert eine Liste
von logisch unerreichbaren teilnehmenden Computersystemen, basierend
auf Verbindungsdaten in der Verbindungsdatenbank der reparierenden
Seite. Das reparierende Computersystem versucht, mindestens ein
logisch unerreichbares teilnehmendes Computersystem anzuschließen, um
die Mehrfachteilnehmer-Konferenz-Session zu reparieren.
-
Zusätzliche
Merkmale und Vorteile der Erfindung werden in der noch folgenden
Beschreibung fortgesetzt, und werden teilweise durch die Beschreibung
klar oder können
durch die Anwendung der Erfindung erfahren werden. Die Merkmale
und Vorteile der Erfindung können
erhalten und erreicht werden durch die Instrumente und Kombinationen,
welche in den angehängten
Ansprüchen
beschrieben sind. Diese und andere Merkmale der vorliegenden Erfindung
werden aus der nachfolgenden Beschreibung und angehängten Ansprüche ersichtlich
oder können
durch die Anwendung der Erfindung erfahren werden, wie nachfolgenden
beschrieben.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Um
die Art und Weise, in welcher die oben erwähnten und andere Vorteile und
Merkmale der Erfindung erhalten werden können, wird eine Beschreibung
der zuvor beschriebenen Erfindung gegeben durch Bezug auf spezielle
Ausführungsformen
derselben, welche in den angehängten
Zeichnungen illustriert sind. Unter der Voraussetzung, dass diese
Zeichnungen nur typische Ausführungsformen
der Erfindungen zeigen und deshalb den Schutzumfang nicht einschränken können, wird
die Erfindung mit zusätzlicher
Genauigkeit und Detailliertheit anhand der begleitenden Bildern
beschrieben, in welchen:
-
1 eine
angemessene Betriebsumgebung für
die Grundsätze
der vorliegenden Erfindung illustriert.
-
2A ein
Beispiel für
eine Netzwerkarchitektur zeigt, welche das Beitreten einer Mehrfachteilnehmer-Konferenz-Session
gemäß den Prinzipien
der vorliegenden Erfindungen ermöglicht.
-
2B ein
Beispiel für
eine Netzwerkarchitektur zeigt, welche es ermöglicht, eine Mehrfachteilnehmer-Konferenz-Session
gemäß den Grundsätzen der
vorliegenden Erfindungen zu reparieren.
-
3 ein
beispielhaftes Flussdiagramm eines Verfahrens für das Beitreten einer Mehrfachteilnehmer-Konferenz-Session
illustriert.
-
4 ein
beispielhaftes Flussdiagramm eines Verfahrens für das Reparieren einer Mehrfachteilnehmer-Konferenz-Session
illustriert.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
Grundsätze
der vorliegenden Erfindung sehen die Verteilung von Zugehörigkeitsinformationen
für Mehrfachteilnehmer-Anwendungsschicht-Sessions
vor. Teilnehmende Computersysteme in einer Mehrfachteilnehmer-Konferenz-Session
senden intermittierend Heartbeat-Meldungen an andere teilnehmende
Computersysteme, um zuvor hergestellte logische Verbindungen zu
verifizieren zwischen den teilnehmenden Computersystemen. Ähnlicherweise,
kann ein beitretendes Computersystem eine Hallo-Nachricht (welche
im Wesentlichen eine Heartbeat-Meldung ist, welche das beitretende
Computersystem in das einladende Computersystem einführt) an
ein teilnehmendes Computer system senden, um zu versuchen, der Mehrfachteilnehmer-Konferenz-Session
beizutreten. In Erwiderung auf das Empfangen einer Hallo-Nachricht
sendet ein teilnehmendes Computersystem ein oder mehrere Verbindungsstatus-Einträge an das
Computersystem zurück (entweder
teilnehmend oder beitretend), welches die Hallo-Nachricht gesendet
hat. Das Computersystem, das die Hallo-Nachricht gesendet hat, kann
die zurückgesandte
ein oder mehrere Verbindungsstatus-Einträge benutzen, um die Verbindungsdatenbank
des teilnehmenden Computersystems zu aktualisieren. Jeder Verbindungsstatus-Eintrag
kann beinhalten einen Computersystem-Identifizierer, welcher ein
teilnehmendes Computersystem identifiziert, einen Zeitstempel, und
eine Liste der Nachbar-Computersysteme
der teilnehmenden Computersysteme.
-
In
manchen Beispielen stellt ein reparierendes Computersystem fest,
dass Verbindungsdaten nicht mehr von einem Nachbar-Computersystem
empfangen werden (z.B. keine Verbindungsstatus-Einträge werden
empfangen in Erwiderung auf eine Heartbeat-Meldung). In Erwiderung auf das Feststellen,
dass Verbindungsdaten nicht mehr empfangen werden, entfernt das
reparierende Computersystem Verbindungsdaten, welche mit dem Nachbar-Computersystem
verbunden sind, aus der Verbindungsdatenbank der reparierenden Seite.
Das beitretende Computersystem versucht, die Mehrfachteilnehmer-Konferenz-Session
zu reparieren durch das Verbinden mit mindestens einem logisch unerreichbaren
teilnehmenden Computersystem. Wenn eine logische Verbindung hergestellt
ist, kann die Datenbank der reparierenden Seite an andere teilnehmende Computersysteme
verbreitet werden. Demnach gehen teilnehmende Computersysteme kontinuierlich
in stationäre
Zustände über, in
denen jedes teilnehmende Computersystem sich logischer Verbindungen
zwischen anderen teilnehmenden Computersystemen bewusst ist.
-
Ausführungsformen
innerhalb des Schutzumfangs der vorliegenden Erfindung beinhalten
computerlesbare Medien zum Tragen oder welche computerlesbare Instruktionen
oder Datenstrukturen darauf gespeichert haben. Solche computerlesbare
Medien können
jegliche erhältliche
Medien sein, welche durch ein Mehrzweck- oder Sonderzweck-Computersystem zugreifbar
sind. Als ein Beispiel, aber nicht als Einschränkung, können solche computerlesbare
Medien physikalische Speichermedien beinhalten, wie RAM, ROM, EPROM, CD-ROM
oder andere optische Speichermedien, magnetische Plattenspeicher
oder andere magnetische Speichervorrichtungen oder jedes andere
Medium, welches benutzt werden kann, um Programmcodemittel in der Form
von computerausführbaren
Instruktionen, computerlesbaren Instruktionen oder Datenstrukturen,
auf wel che durch ein Mehrzweck- oder Spezialzweck-Computersystem
zugegriffen werden kann, zu speichern oder zu tragen.
-
Wenn
Information über
ein Netzwerk oder eine andere Kommunikationsverbindung (entweder
verdrahtet, kabellos oder eine Kombination hieraus) an ein Computersystem übertragen
oder angeboten wird, kann die Verbindung als ein computerlesbares
Medium gesehen werden. Demnach kann eine solche Verbindung als ein
computerlesbares Medium bezeichnet werden. Kombinationen des Obigen
sind ebenso in dem Umfang der computerlesbaren Medien beinhaltet.
Computerausführbare
oder computerlesbare Instruktionen beinhalten, z.B., Instruktionen
und Daten, welche ein Vielzweck-Computersystem oder ein Spezialzweck-Computersystem
veranlassen, eine bestimmte Funktion oder eine Gruppe von Funktionen
auszuführen.
Die computerausführbaren
oder computerlesbaren Instruktionen können beispielsweise binäre Instruktion oder
Instruktionen in einem intermediären
Format wie eine Assembliersprache oder sogar Quellcode sein.
-
In
der Beschreibung und in den folgenden Ansprüchen ist ein Computersystem
als ein oder mehrere Softwaremodule oder ein oder mehrere Hardwaremodule
oder Kombinationen hiervon definiert, welche zusammenarbeiten, um
Operationen an elektronischen Daten vorzunehmen. Zum Beispiel beinhaltet
die Definition des Computersystems die Hardwarekomponenten eines
Personal-Computer sowie Softwaremodule wie beispielsweise das Betriebssystem
des Personal-Computers. Das physikalische Layout dieser Module ist
nicht wichtig. Ein Computersystem kann ein oder mehrere Computer,
welche über
ein Netzwerk verbunden sind beinhalten. Genauso kann ein Computersystem
ein einzelnes physikalisches Gerät
(wie beispielsweise ein Mobiltelefon oder Personal-Digital Assistant "PDA"), bei welchem interne
Module (wie beispielsweise Speicher und Prozessor) zusammenarbeiten,
um Operationen mit elektronischen Daten vorzunehmen beinhalten.
-
In
dieser Beschreibung und in den nachfolgenden Ansprüchen ist
eine logischer Kommunikationsverbindung als irgendein Kommunikationspfad
definiert, welcher es ermöglicht,
elektronische Daten zwischen zwei Entitäten, wie beispielsweise Computersystemen
oder Modulen, zu transportieren. Die tatsächliche physikalische Repräsentation
eines Kommunikationspfades zwischen zwei Entitäten ist nicht wichtig und kann sich
mit der Zeit ändern,
wie z.B. wenn ein Routingpfad geändert
wird. Eine logische Kommunikationsverbindung kann beinhalten Teile
eines Systembus, ein Local Area Network, ein Wide Area Network,
das Internet, Kombinationen hiervon, oder Teile von irgendeinem anderen
Pfad, welcher es ermöglicht,
elektronische Daten zu transportieren. Logische Kommunikationsverbindungen
sind definiert, so dass diese sowohl verkabelte Verbindungen als
auch kabellose Verbindungen oder Kombinationen von verkabelten Verbindungen
oder kabellosen Verbindungen beinhalten. Logische Kommunikationsverbindungen
können
ebenso Software- oder Hardwaremodule beinhalten, welche Teile von
Daten derart konditionieren oder formatieren, so dass diese Teile
von Daten zugreifbar machen für
Komponenten, welche die Grundsätze
der vorliegenden Erfindung implementieren (z.B. Proxie, Router,
Gateway usf.).
-
In
dieser Beschreibung und in den nachfolgenden Ansprüchen ist
ein "Schema" definiert als ein
Ausdruck eines gemeinsamen Vokabulars zwischen einer Vielzahl vom
Computersystemen, welche der Vielzahl von Computersystemen ermöglicht,
Dokumente zu bearbeiten gemäß dem gemeinsamen
Vokabular. Zum Beispiel kann ein eXtensible Markup Language ("XML")-Schema eine Klasse
von XML-Dokumenten definieren und beschreiben unter Benutzung von
Schemakonstrukten einer XML-Schemasprache. Diese Schemakonstrukte
können
benutzt werden, um die Bedeutung, Benutzung und Verbindung von Datentypenelementen
und ihrem Inhalt, Attributen und deren Werte, Entitäten und
deren Inhalt und Notationen einzuschränken und dokumentieren, so
wie diese in XML-Dokumenten benutzt werden. Demnach kann ein jedes
Computersystem, welche auf ein XML-Schema zugreifen kann, XML-Dokumente
gemäß dem XML-Schema
bearbeiten. Des Weiteren kann jedes Computersystem, welches auf
ein XML-Schema zugreifen kann, XML-Dokumente für die Benutzung durch andere
Computersysteme, welche ebenso auf das XML-Schema zugreifen können, erzeugen
oder modifizieren.
-
Ein
Schema ist definiert, so dass dieses Dokumententypdefinitionen (DTD)
beinhalten, wie z.B. DTD-Dateien, welche mit einer .dtd-Dateienweiterung
enden. Ein Schema ist ebenso definiert, so dass dieses World Wide
Web Consortium (W3C) XML-Schemas beinhalten, sowie beispielsweise
XML-Schemadateien, welche mit einer .xsd-Dateierweiterung enden.
Jedoch ist die eigentliche Dateierweiterung für ein bestimmtes DTD- oder XML-Schema
nicht wichtig. Ein Schema kann benutzt werden, um praktisch jeden
Datentyp zu definieren, beinhaltend logische, binäre, oktale,
dezimale, hexadezimale, ganzzahlige, Gleitkomma, Buchstaben, Buchstabenfolgen,
benutzerdefinierte Datentypen und Kombinationen hieraus, welche
benutzt werden, um Datenstrukturen zu definieren. XML-Elemente,
Attribute und Attributwerte können
repräsentiert
werden durch Datentypen, welche in einem Schema definiert sind.
In dieser Definition und der folgenden Ansprüche bezieht sich schemabasiert
auf durch ein Schema definiert oder gemäß einem Schema definiert.
-
In
dieser Beschreibung und den folgenden Ansprüchen sind Verbindungsdaten
im Allgemeinen definiert, so dass diese jede Information, welche
mit den Verbindungen eines Computersystems mit anderen Computersystemen
in einer Mehrfachteilnehmer-Konferenz-Session
beinhalten, aber nicht darauf beschränkt sind auf. Verbindungsdaten
sind definiert, so dass diese Verbindungsdatenbanken, Verbindungsstatus-Einträge, Computersystemidentifizierer,
Zeitstempel und Nachbarlisten beinhalten. Verbindungsdaten sind
ebenso definiert, so dass diese Metadaten beinhalten, welche ein
Computersystem beschreiben, welche durch einen Computersystemidentifizierer
identifiziert werden.
-
Der
Fachmann versteht, dass die Erfindung in Netzwerk-Computerumgebungen
mit vielen Typen von Computersystemenkonfigurationen, beinhaltend
Router, Gateways, Firewalls, Proxies, Personal-Computer, Laptop-Computer,
hand-held-Geräte,
Mehrprozessorsysteme, Mikroprozessor-basierte oder programmierbare
Verbraucherelektronik, Netzwerk-PCs, Minicomputer, Mainframe-Computer,
Mobiltelefone, PDAs, Pager oder Ähnliches,
ausgeführt
werden kann. Die Erfindung kann ebenso in verteilten Systemumgebungen
ausgeführt
werden, in welchen lokale und entfernte Computersysteme, welche
durch ein Netzwerk verbunden sind (entweder durch verkabelte Verbindungen,
kabellose Verbindungen oder durch Kombinationen hieraus) die Aufgaben
ausführen.
In einer verteilten Systemumgebung können Programmmodule entweder
in lokalen oder entfernten Speichervorrichtungen lokalisiert sein.
-
1 und
die nachfolgende Diskussion, gedacht, um eine kurze allgemeine Beschreibung
einer geeigneten Computerumgebung zu geben, in welcher die Erfindung
implementiert sein kann. Obwohl dies nicht erforderlich ist, wird
die Erfindung in dem allgemeinen Zusammenhang von computerausführbaren
Instruktionen, wie Programmmodulen, ausgeführt durch Computersysteme,
beschrieben. Im Allgemeinen beinhalten Programmmodule Routinen,
Programme, Objekte, Komponenten, Datenstrukturen und Ähnliches,
welche bestimmte Aufgaben ausführen
oder bestimmte abstrakte Datentypen implementieren. Computerausführbare Instruktionen,
verbundene Datenstrukturen, und Programmmodule repräsentieren
Beispiele für
Programmcodemittel zum Ausführen
von Vorgängen
der offenbarten Verfahren.
-
In
Bezug auf 1 beinhaltet eine geeignete
Betriebsumgebung für
die Grundsätze
der Erfindung ein Mehrzweck-Computersystem in der Form eines Computersystems 100.
Das Computersystem 100 kann beispielsweise ein Personal-Computer
sein, welcher eingerichtet ist, um die offenbarten Operationen auszuführen. Das
Computersystem 100 beinhaltet eine Benutzereingabeschnittstelle 170,
welche Informationen von einem Eingabegerätempfängt, wie beispielsweise eine
Tastatur, Mikrofon oder Maus. Ein Eingabegerät kann an die Benutzereingabeschnittstelle 170 angekoppelt
sein, um die Eingabe von Informationen zu ermöglichen. Ein Eingabegerät kann Informationen über solch
eine Verbindung übertragen
in Erwiderung auf vorprogrammierte Daten oder Benutzermanipulation
des Eingabegerätes.
-
Das
Computersystem 100 beinhaltet eine Videoschnittstelle 150,
welche es ermöglicht,
ein Bildausgabesignal an externe Bildanzeigevorrichtungen zu leiten.
Das Computersystem 100 kann getrennt oder vereint sein
mit einer Bildanzeigevorrichtung, wie beispielsweise ein Bunt- oder
Monochrom-Computermonitor. Eine Bildanzeigevorrichtung kann an die
Videoschnittstelle 150 gekoppelt sein, um ein angebotenes
Bildausgabesignal zu empfangen.
-
Ähnlicherweise
beinhaltet das Computersystem 100 eine Audioschnittstelle 130,
welche ein Audio-Ausgangssignal an externe Audio-Ausgabevorrichtungen
liefert. Das Computersystem 100 kann getrennt oder verbunden
sein mit einem Audiosystem, welches einen Lautsprecher oder andere
Geräte
beinhaltet, welche fähig
sind, Klangdaten auszusenden. Ein Audiosystem kann an eine Audioschnittstelle 130 gekoppelt
sein, um ein bereitgestelltes Audio-Ausgabesignal zu empfangen.
-
Das
Computersystem 100 beinhaltet die Bearbeitungseinheit 120,
welche komplexe und flexible Mehrzweckberechnungsfähigkeiten
gewährleisten.
Die Bearbeitungseinheit 120 führt computerausführbare Instruktionen
aus, welche ausgeführt
sind, um Merkmale des Computersystems 100 zu implementieren,
beinhaltend die Merkmale der vorliegenden Erfindung. Die Bearbeitungseinheit 120 ist
mit dem Systembus 110 verbunden, welches zahlreiche andere
Systemkomponenten, beinhaltend den Systemspeicher 140,
verbindet.
-
Der
Systemspeicher 140 repräsentiert
im Allgemeinen eine Vielzahl von flüchtigen und/oder nicht-flüchtigen
Speichern und kann Typen der zuvor beschriebenen Speicher beinhalten.
Jedoch ist der jeweilige Typ des Speichers, welcher in dem Computersystem 100 benutzt
wird, nicht wichtig für
die vorliegende Erfindung. Programmcodemittel bein halten ein oder
mehrere Programmmodule, welche in dem Systemspeicher 140 gespeichert
sein können.
Die ein oder mehreren Programmmodule können ein Betriebssystem 141, ein
oder mehrere Anwendungsprogramme 142, andere Programmmodule 143 und
Programmdaten 144 beinhalten.
-
Das
Computersystem 100 beinhaltet ebenso ein magnetisches Festplattenlaufwerk 127 zum
Lesen und Schreiben von oder auf die magnetische Festplatte 139.
Das magnetische Festplattenlaufwerk 127 ist mit dem Systembus 110 durch
eine Massenspeicherschnittstelle 160 verbunden. Das magnetische
Festplattenlaufwerk 127 und die magnetische Festplatte 139 bietet
die nicht-flüchtige
Speicherung von computerausführbaren
Instruktionen, Datenstrukturen, Programmmodulen und anderen Daten
für das
Computersystem 100. Zum Beispiel kann die magnetische Festplatte 139 ein
oder mehrere Programmmodule speichern, beinhaltend das Betriebssystem 141,
Anwendungsprogramme 142, andere Programmmodule 143 und
Programmdaten 144.
-
Das
Computersystem 100 ist mit Netzwerken verbindbar, wie z.B.
ein büroweites
oder unternehmensweites Computernetzwerk, ein Intranet und/oder
das Internet. Das Computersystem 100 kann Daten mit externen
Quellen austauschen, wie beispielsweise entfernte Computersysteme
und/oder entfernte Datenbanken über
solch ein Netzwerk.
-
Das
Computersystem 100 beinhaltet eine Netzwerkschnittstelle 180,
durch welche das Computersystem 100 Daten von externen
Quellen empfängt
und/oder Daten zu externen Quellen überträgt. Wie in 1 gezeigt,
ermöglicht
die Netzwerkschnittstelle 180 den Austausch von Daten mit
dem entfernten Computersystem 183 über die logische Kommunikationsverbindung 182.
Die logische Kommunikationsverbindung 182 repräsentiert
einen Teil eines Netzwerkes, und das entfernte Computersystem 183 repräsentiert
einen Knoten des Netzwerkes. Zum Beispiel kann das entfernte Computersystem 183 ein
beitretendes Computersystem sein, welches versucht, dem Computersystem 100 beizutreten.
Auf der anderen Seite kann das entfernte Computersystem 183 ein
einladendes Computersystem sein, welchem das Computersystem 100 beizutreten
versucht.
-
Gleichermaßen beinhaltet
das Computersystem 100 eine serielle Schnittstelle 190,
durch welche das Computersystem 100 Daten von externen
Quellen empfängt
und/oder Daten zu externen Quellen überträgt. Die serielle Schnittstelle 190 ist
an ein Modem 191 über
eine logische Kommunikationsverbindung 159 verbunden, durch
welche das Computersystem 100 Daten von externen Quellen
empfängt
oder Daten zu externen Quellen überträgt. Wie
in 1 gezeigt, ermöglichen
die serielle Schnittstelle 190 und das Modem 191 den Austausch
von Daten mit entfernten Computersystemen 193 über die
logische Kommunikationsverbindung 192. Die logische Kommunikationsverbindung 192 repräsentiert
einen Teil eines Netzwerkes und das entfernte Computersystem 193 repräsentiert
einen Knoten des Netzwerkes. Zum Beispiel kann das entfernte Computersystem 193 ein
beitretendes Computersystem sein, welches versucht, dem Computersystem 100 beizutreten.
Auf der anderen Seite kann das entfernte Computersystem 193 ein
einladendes Computersystem sein, welchem das Computersystem 100 beizutreten
versucht.
-
Während 1 eine
geeignete Betriebsumgebung für
die vorliegende Erfindung repräsentiert,
können die
Grundsätze
der vorliegenden Erfindung angewendet werden auf jedes System, das
fähig ist,
mit einer entsprechenden Modifikation, falls nötig, die Grundsätze der
vorliegenden Erfindung zu implementieren. Die Umgebung, welche in 1 gezeigt
ist, ist lediglich illustrativ und repräsentiert keinesfalls auch einen
kleinen Teil der vielen Möglichkeiten
von Umgebungen, in welchen die Grundsätze der vorliegenden Erfindung
implementiert werden können.
-
Gemäß der vorliegenden
Erfindung können
Verbindungsdatenbearbeitungsmodule, und auch zugehörige Daten,
beinhaltend Verbindungsdatenbanken, Verbindungsstatus-Einträge, Computersystem-Identifizierer,
Zeitstempel, Nachbarlisten, Metadaten und Schemata gespeichert und
zugegriffen werden von jedem der computerlesbaren Medien in Verbindung
mit dem Computersystem 100. Zum Beispiel können Teile
solcher Module und Teile von zugehörigen Programmdaten beinhaltet
sein in dem Betriebssystem 141, Anwendungsprogramm 142,
Programmmodulen 143 und/oder Programmdaten 144 für die Speicherung
in dem Systemspeicher 140.
-
Wenn
ein Massenspeicher, wie beispielsweise eine Magnetfestplatte 139,
an das Computersystem 100 gekoppelt ist, können solche
Module und zugeordnete Programmdaten ebenso in dem Massenspeicher gespeichert
sein. In Netzwerkumgebungen können
Programmmodule, welche relativ zu dem Computersystem 100 gezeigt
sind, oder Teile hiervon, in entfernten Speichervorrichtungen gespeichert
sein, wie beispielsweise Systemspeicher und/oder Massenspeicher,
welche mit dem entfernten Computersystem 183 und/oder dem entfernten
Computersystem 193 zugeordnet sind. Die Ausführung solcher
Module kann durchgeführt
werden in einer verteilten Umgebung, wie zuvor beschrieben.
-
2 zeigt eine beispielhafte Netzwerkarchitektur
einer Mehrparteien-Konferenz-Session 200. Zur Klarheit
ist die Mehrfachteilnehmer-Konferenz-Session 200 als ein
logische Graph dargestellt. Die Darstellung mittels eines logischen
Graphen abstrahiert die zugrunde liegenden physikalischen Verbindungen
zwischen den teilnehmenden Computersystemen, welche an der Mehrfachteilnehmer-Konferenz-Session 200 teilnehmen.
Des Weiteren, obwohl nicht gezeigt, können die zugrunde liegenden
physikalischen Verbindungen zwischen den teilnehmenden Computersystemen
Verbindungen von praktisch jeder Netzwerktechnologie (z.B. Token
Ring, Ethernet, IEEE 802.11, Digital Subscriber Line (DSL), Asynchronous
Transfer Mode (ATM), Integrated Services Digital Network (ISDN)
und Data Over Cable Service Interface Specification (DICSIS) sein. Jedes
teilnehmende Computersystem kann physikalisch mit der Mehrfachteilnehmer-Konferenz-Session 200 unterschiedlich
verbunden sein.
-
An
der Mehrfachteilnehmer-Konferenz-Session 200 teilnehmend
sind Computersysteme 202, 203, 204, 207 und 208 (hiernach
bezeichnet als teilnehmende Computersysteme). Die teilnehmenden
Computersysteme sind durch entsprechende logische Kommunikationsverbindungen 211 bis 214 und
die entsprechenden logischen Kommunikationsverbindungen 216 bis 219 (hiernach
einfach als Verbindungen bezeichnet) verbunden. Jede gezeigte Verbindung
in der Mehrfachteilnehmer-Konferenz-Session 200 ist mit
einem ausgehenden Computersystem und einem Ziel-Computersystem verbunden.
Das Ende einer Verbindung ohne einen Pfeil zeigt, woher die Verbindung
entstammt, wobei das Ende der Verbindung mit einem Pfeil das Ziel
der Verbindung zeigt. Zum Beispiel entstammt die Verbindung 216 dem
Computersystem 203 und zielt auf das Computersystem 207.
-
Es
kann sein, dass die zugrunde liegende physikalische Verbindung zwischen
teilnehmenden Computersystemen, abhängig von der Richtung des Datenflusses,
differiert (z.B. wegen Firewalls, Routern, Proxies usf.). Demnach
können
Computersysteme mehrfach verbunden sein, um die unterschiedlichen
Richtungen des Datenflusses zu repräsentieren. Zum Beispiel können die
zugrunde liegende Verbindung für
den Datenpfad von dem Computersystem 203 zum Computersystem 202 (Verbindung 212)
und die zugrunde liegende physikalische Verbindung für einen
Datenpfad vom Computersystem 202 zum Computersystem 203 (Verbindung 211)
unterschiedlich sein. Jedes teilnehmende Computersystem in einer
Mehrfachteilnehmer-Konferenz-Session 200 kann eine Verbindungsdatenbank
beinhalten, welche ein oder mehrere Verbindungsstatus-Einträge beinhaltet
und ein Verbindungsdatenbearbeitungsmodul, welches Verbin dungsdaten
bearbeitet, welche in und/oder von einer Verbindungsdatenbank beinhaltet
sind. Verbindungsdaten können
Zugehörigkeitssteuerinformationen
beinhalten, welche anzeigen, welche Computersysteme Mitglieder einer
Mehrfachteilnehmer-Anwendungsschicht-Session sind und wie die Computersysteme
welche Teilnehmer der Mehrfachteilnehmer-Anwendungsschicht-Session
sind, verbunden sind.
-
Die
Mehrfachteilnehmer-Konferenz-Session 200 kann eine Echtzeit-Konferenz-Session
sein. Demnach können
Konferenzdaten, wie z.B. Audio- und Videodaten, zwischen den teilnehmenden
Computersystemen übertragen
werden. Die Übertragung
von Konferenzdaten kann derart sein, dass die Konferenzteilnehmer an
jedem teilnehmenden Computersystem hören und/oder sehen kann, was
die anderen Konferenzteilnehmer tun. Zum Beispiel können Konferenzdaten
durch eine Konferenzanwendung in einem teilnehmenden Computersystem
detektiert werden und zu entsprechenden Konferenzanwendungen in
anderen teilnehmenden Computersystemen zur Reproduktion in den anderen
teilnehmenden Computersystemen übertragen
werden.
-
Ein
teilnehmendes Computersystem kann, von Zeit zu Zeit, Heartbeat-Meldungen
an andere teilnehmende Computersysteme senden, um zu verifizieren,
dass zuvor eingerichtete Verbindungen noch existieren. In Erwiderung
auf das Empfangen einer Heartbeat-Meldung kann ein sendendes teilnehmendes
Computersystem eine Verbindungsdatenbank der sendenden Seite an
ein empfangendes teilnehmendes Computersystem senden. Das empfangende
teilnehmende Computersystem kann Zeitstempel (oder Versionsnummer)
in der Verbindungsdatenbank der sendenden Seite mit Zeitstempeln
(oder Versionsnummern) in der Verbindungsdatenbank der empfangenden
Seite vergleichen. Wenn das Ergebnis des Vergleichs entsprechend
ist, aktualisiert das empfangende Computersystem die Verbindungsdatenbank
der empfangenden Seite mit einem Verbindungsstatus-Eintrag der Verbindungsdatenbank
der sendenden Seite. Demnach gehen die teilnehmenden Computersysteme
kontinuierlich in einen stationären
Zustand über,
in dem jedes teilnehmende Computersystem von anderen teilnehmenden
Computersystemen und all den Verbindungen, welche mit den anderen Computersystemen
verbunden sind, Kenntnis hat.
-
Eine
Verbindungsdatenbank kann einen Verbindungsstatus-Eintrag für jedes
teilnehmende Computersystem beinhalten. Zum Beispiel repräsentiert
Tabelle 1 in einer logischen Weise ein Beispiel für eine Verbindungsdatenbank
für die
teilnehmenden Computersysteme in einer Mehrfachteilnehmer-Konferenz-Session 200:
-
-
Die
Verbindungsdatenbank, welche durch Tabelle 1 repräsentiert
ist, kann die Verbindungsdatenbank (z.B. Verbindungsdatenbank 238)
in jedem teilnehmenden Computersystem der Mehrfachteilnehmer-Konferenz-Session 200 sein,
bevor das beitretende Computersystem 206 versucht, der
Mehrfachteilnehmer-Konferenz-Session 200 beizutreten. Jede
Zeile der Tabelle 1 repräsentiert
einen Verbindungsstatus-Eintrag für ein teilnehmendes Computersystem.
Zum Beispiel zeigt die Zeile für
das Computersystem 207 eine Versionsnummer "5" und dass das Computersystem 207 Verbindungen
mit dem Computersystem 203 (Verbindung 217) und
Computersystem 208 (Verbindung 218) hat.
-
Ein
Verbindungsstatus-Eintrag kann eine Datenstruktur sein, welche benutzt
wird, um Verbindungsdaten für
ein teilnehmendes Computersystem zu pflegen. Zum Beispiel kann jedes
teilnehmende Computersystem, welches in einer Mehrfachteilnehmer-Konferenz-Session
200 teilnimmt,
mit einem entsprechenden Verbindungsstatus-Eintrag verbunden sein.
Ein Verbindungsstatus-Eintrag kann in praktisch jedem Format vorliegen.
Wie auch immer, ist im Folgenden eine beispielhafte Verbindungsdatenstruktur
gezeigt, welche einen Verbindungsstatus-Eintrag repräsentiert:
-
Zeile
3 der beispielhaften Verbindungsdatenstruktur ist ein "Computer System Identifier
Field", welches
einen Computersystemidentifizierer für das Identifizieren eines
teilnehmenden Computersystems repräsentiert. Ein Computersystemidentifizierer
kann, z.B., eine Netzwerkadresse (z.B. eine Internet Protokoll-(IP)-Adresse)
oder eine Uniform Ressource Identifier-(URI) (z.B. einen Uniform
Ressource Locator-URL) beinhalten. Zeile 4 der beispielhaften Verbindungsdatenstruktur
ist ein "Computer
System Metadata Field", welches
Metadaten repräsentiert,
welche benutzt werden, um die teilnehmenden Computersysteme, welche in
Zeile 3 identifiziert wurden, zu beschreiben. Ein Metadatenwert
kann, z.B., einen beschreibenden Namen beinhalten, welcher benutzt
wird, um das teilnehmende Computersystem, welches in Zeile 3 identifiziert
wurde, zu referenzieren.
-
Zeile
5 der beispielhaften Verbindungsdatenstruktur ist ein "Neighbor List Field", welches eine Liste von
Nachbar-Computersystemen repräsentiert
für die
teilnehmenden Computersysteme, welche in Zeile 3 identifiziert wurden.
Ein Nachbarlistenwert kann, z.B., eine Vielzahl von Computersystemidentifizierern
beinhalten, welche andere teilnehmende Computersysteme identifizieren,
welche mit dem teilnehmenden Computersystem verbunden sind, welches
in Zeile 3 identifiziert wurde. Zeile 6 der beispielhaften Verbindungsdatenstruktur
ist ein "Timestamp
Field", welches
eine Zeit repräsentiert,
zu der das teilnehmende Computersystem, welches in Zeile 3 identifiziert
wurde, die beispielhafte Verbindungsdatenstruktur erzeugt hat. Ein
Zeitstempelwert kann, z.B., einen absoluten Zeitwert (z.B. 12:05
Uhr Nachmittags), einen differenziellen Zeitwert (z.B. 5 Minuten),
eine Versionsnummer (z.B. 1, 2, 3, usf.) oder einen Indexwert beinhalten.
Ein Indexwert kann fast jeder Datentyp sein, z.B. Zeichenfolge,
Zeichen, Ganzzahlwert, Gleitzahlwert oder sogar benutzerdefinierte Datentypen.
-
Es
kann sein, dass die Computersysteme, welche in der Mehrfachteilnehmer-Konferenz-Session 200 teilnehmen,
ein oder mehrere Eintrittspunkte bekannt geben (d.h. Computersystemadressen
und Routinginformationen), welche von einem beitretenden Computersystem
benutzt werden können,
welches versucht, der Mehrfachteilnehmer-Konferenz-Session 200 beizutreten.
Zum Beispiel kann das Computersystem 208 eine zugehörige IP-Adresse
bekannt geben, welche benutzt werden kann, um mit dem Computersystem 208 zu
verbinden. Des Weiteren kann das Computersystem 208 Routinginformationen
bekannt geben, basierend auf den Netzwerkkomponenten, welche dem
Computersystem 208 zugehörig sind, um Daten angemessen
zu dem Computersystem 208 zu leiten. Eingangspunkte und
Routinginformationen können
in unteren Schichten (z.B. Netzwerkschicht und/oder Transportschicht)
eines Protokoll-Stacks unter einer Anwen dungsschicht (z.B. eine Konferenzapplikation),
welche Verbindungsdaten verarbeitet, bekannt gegeben werden. Demnach
können Verbindungsdaten
der unteren Schichten (z.B. Netzwerkschichtdaten und/oder Transportschichtdaten)
durch Computersysteme ausgetauscht werden, bevor teilnehmende Computersysteme
Verbindungsdaten austauschen, um logische Verbindungen zu errichten.
Computersysteme können
Verbindungsdaten der unteren Schichten durch das Senden und Empfangen
von elektronischen Nachrichten (z.B. Pakete, Rahmen, usf.) von Protokollen
der unteren Schichten (z.B. IP, RCP, UDP, usf.) austauschen.
-
Der
Austausch von Verbindungsdaten der unteren Schichten kann beinhalten,
dass teilnehmende Computersysteme Sicherheitsinformationen mit beitretenden
Computersystemen, welche anfragen um der Mehrfachteilnehmer-Konferenz-Session 200 beizutreten,
austauschen. Sicherheitsinformationen können öffentliche Schlüssel beinhalten,
welche benutzt werden, um teilnehmende Computersysteme und auch
ein beitretendes Computersystem zu authentifizieren. Zum Beispiel
kann ein öffentlicher
Gruppenschlüssel
einem beitretenden Computersystem angeboten werden, um die teilnehmenden
Computersysteme zu authentifizieren. Der öffentliche Schlüssel, Name
und Session-Identifizierer
des beitretenden Computersystems kann mit dem öffentlichen Gruppenschlüssel signiert
werden. Die Signatur des öffentlichen
Gruppenschlüssels
ermöglicht
teilnehmenden Computersystemen, das beitretende Computersystem zu
authentifizieren und zu autorisieren, wenn dieses versucht, einer
Mehrfachteilnehmer-Konferenz-Session 200 beizutreten.
In manchen Ausführungsformen
wird der öffentliche
Schlüssel
eines einladenden Computersystems benutzt, um den öffentlichen
Schlüssel,
Namen und Sitzungs-Identifizierer des beitretenden Computersystems
zu signieren.
-
3 illustriert
ein Flussdiagramm eines Verfahrens 300 zum Beitreten zu
einer Mehrfachteilnehmer-Konferenz-Session. Das Verfahren 300 wird
in Bezug auf das in 2A gezeigte Computersystem beschrieben.
-
Das
Verfahren 300 beinhaltet einen Vorgang des Sendens einer
Hallo-Nachricht (Vorgang 301). Vorgang 301 kann
einen Vorgang eines beitretenden Computersystems beinhalten, welches
eine Hallo-Nachricht an ein einladendes Computersystem sendet. Zum
Beispiel, wie in 2A gezeigt, sendet das beitretende Computersystem 206 eine
Hallo-Nachricht 222 an das Computersystem 208.
Eine Hallo-Nachricht ist im Wesentlichen eine Heartbeat-Meldung,
welche ein nicht-verbundenes beitretendes Computersystem in ein
Computersystem einführt,
welches bei einer Mehrfachteilnehmer-Anwen dungsschicht-Session teilnimmt.
Zum Beispiel kann die Hallo-Nachricht 222 ein beitretendes
Computersystem 206 in einen Computer 208 einführen und kann
die Anfrage, um an der Mehrfachteilnehmer-Konferenz-Session 200 teilzunehmen,
beinhalten. Das Verfahren 300 beinhaltet einen Vorgang
des Empfangens einer Hallo-Nachricht (Vorgang 305). Der
Vorgang 305 kann beinhalten, dass ein einladendes Computersystem
eine Hallo-Nachricht von einem beitretenden Computersystem empfängt. Zum
Beispiel, wie in 2A gezeigt, empfängt das
Computersystem 208 eine Hallo-Nachricht 222 von
dem beitretenden Computersystem 206.
-
Das
Verfahren 300 beinhaltet einen Vorgang des Aktualisierens
einer Datenbank der einladenden Seite (Vorgang 306). Der
Vorgang 306 kann beinhalten, dass eine Verbindungsdatenbank
der einladenden Seite aktualisiert wird um anzuzeigen, dass das
einladende Computersystem mit dem beitretenden Computersystem verbunden
ist. Eine Verbindungsdatenbank der einladenden Seite kann in Erwiderung
auf das Empfangen einer Hallo-Nachricht aktualisiert werden. Zum
Beispiel, in Erwiderung auf das Empfangen der Hallo-Nachricht 222,
kann das Verbindungsdatenverarbeitungsmodul 248 die Verbindungsdatenbank 238 aktualisieren,
um anzuzeigen, dass das Computersystem 208 mit dem beitretenden
Computersystem 206 verbunden ist.
-
Das
Aktualisieren der Verbindungsdatenbank 238 kann das Hinzufügen eines
Computersystem-Identifiziererwertes in eine entsprechende Nachbarliste
(z.B. eine Nachbarliste, welche in einem Verbindungsstatus-Eintrag
enthalten ist, welche zu dem Computersystem 208 korrespondiert)
beinhalten. um anzuzeigen, dass das beitretende Computersystem 206 ein
Nachbar des Computersystems 208 ist. Das Aktualisieren
eines Verbindungsstatus-Eintrag kann ebenso das Ändern eines Zeitstempelwertes
für ein
Zeitstempelfeld, wie z.B. durch das Inkrementieren einer Versionsnummer,
beinhalten, um anzuzeigen, dass der Verbindungsstatus-Eintrag geändert wurde.
In manchen Ausführungsformen
ist nur dem teilnehmenden Computersystem ermöglicht, die Verbindungsstatus-Einträge zu aktualisieren,
welche einen "Computer
System Identifier"-Feldwert
besitzen, welche das teilnehmende Computersystem identifizieren.
Demnach ist, wenn ein Verbindungsstatus-Eintrag in einem anderen
teilnehmenden Computersystem empfangen wird, die Wahrscheinlichkeit
höher,
dass die Verbindungsdaten, welche in dem Verbindungsstatus-Eintrag
enthalten sind, richtig sind.
-
Das
Verfahren 300 beinhaltet einen Vorgang des Sendens der
aktualisierten einladenden Verbindungsdatenbank (Vorgang 307).
Vorgang 307 kann beinhalten, dass das ein ladende Computersystem
eine aktualisierte Verbindungsdatenbank der einladenden Seite an
das beitretende Computersystem sendet. Die Verbindungsdatenbank
der einladenden Seite beinhaltet mindestens einen Verbindungsstatus-Eintrag,
welche anzeigt, dass das einladende Computersystem mit dem beitretenden
Computersystem verbunden ist. Zum Beispiel kann das Computersystem 208 eine
Verbindungsdatenbank 238 an das Computersystem 208 senden,
nachdem die Verbindungsdatenbank 238 aktualisiert wurde,
um anzuzeigen, dass das Computersystem 208 mit dem beitretenden
Computersystem 206 verbunden ist. In manchen Ausführungsformen
wird eine "sync"-Nachricht benutzt, um Daten von einer
aktualisierten Verbindungsdatenbank zu übertragen.
-
Es
sollte klar sein, dass die vorliegende Erfindung nicht beschränkt ist
auf den Datentransfer, welcher ein spezifisches Transportprotokoll
und Format benutzt. Jedoch ist ein Beispiel, das benutzt werden
kann, um die Grundsätze
der vorliegenden Erfindung zu implementieren, bezeichnet als Simple
Object Access Protocol (SOAP). Verbindungsdaten der Verbindungsdatenbank
238 können beinhaltet
sein in einer SOAP-Nachricht, welche
eine Zahl von unteren Schichtenprotokollen verwendet, wie z.B. HyperText
Transfer Protocol (HTTP) oder Direct Internet Message Encapsulation
(DIME) als Transport. Das Folgende repräsentiert ein erstes Beispiel
für XML-In-
struktionen, die in dem Kopf und/oder Körper einer SOAP-Hülle beinhaltet
sein können,
um eine sync-Nachricht zu repräsentieren,
welche Verbindungsdaten der Verbindungsdatenbank
238 beinhalten:
-
Die
Elemente innerhalb der ersten beispielhaften XML-Instruktionen (zwischen <Sync> und </Sync>) können ein oder mehrere frei
gestaltete XML-Dokumente beinhalten. Ebenso können die Elemente innerhalb der
ersten beispielhaften XML-Instruktionen
beinhalten ein oder mehrere XML-Dokumente, welche gemäß eines
XML-Schemas definiert sind, welches zugreifbar ist durch Computersysteme,
welche in der Mehrfachteilnehmer-Konferenz-Session 200 teilnehmen.
Wenn eine Schema (z.B. ein XML-Schema) benutzt wird, um die Bedeutung
von Datentypen in einer Datenstruktur (z.B. einer XML-Datenstruktur)
zu beschränken,
gibt es eine gesteigerte Flexibilität, um zu definieren (oder umzudefinieren)
wie Verbindungsdaten ausgedrückt
werden.
-
Die
ersten beispielhaften XML-Instruktionen repräsentieren einen Verbindungsstatus-Eintrag
für Computersysteme,
welche in einer Mehrfachteilnehmer-Konferenz-Session 200 teilnehmen. Zeile
1 der ersten beispielhaften XML-Instruktionen zeigen, dass die beinhalteten
Verbindungsstatus-Einträge
von dem Computersystem 208 (wie durch die beinhaltete URI
gezeigt ist) gesendet wurden und dass das Computersystem, welches
die Verbindungsstatus-Einträge
empfängt
(z.B. das beitretende Computersystem 206), antworten sollte innerhalb
eines Ping-Intervalles von 3. Das Ping-Intervall kann in jeder Einheit
gegeben sein, wie z.B. Millisekunden, Sekunden oder Minuten. Der
Ausfall des Computersystems 208 um eine Antwort von einem
empfangenden Computersystem zu empfangen, innerhalb einer vorgegebenen Grenze,
basierend auf dem Ping-Intervall, ist ein Anzeichen, dass Verbindungsdaten
nicht mehr von dem empfangenden Computersystem empfangen werden.
-
Jeder
Verbindungsstatus-Eintrag (z.B. in Zeilen 2-4, Zeilen 5-9, Zeilen
10-12, Zeilen 13-16 und Zeilen 17-19) werden durch ein entsprechendes "Knoten"-tag repräsentiert
(d.h. zwischen <Node> und </Node>). Eine Anzahl von
Namen-Wert-Paaren
kann benutzt werden, um Verbindungsdaten zu repräsentieren, welche in einem
Verbindungsstatus-Eintrag enthalten sind. Zum Beispiel ein Name-Wert-Paar
in der Zeile 14 repräsentiert
ein "URI"-Attribut, um ein
entsprechendes URI-Attribut mit einem entsprechenden URI-Attributwert
von "soapa/address_207". Der Wert soap://address_207 ist
ein Uniform Ressource Identifier (URI) (z.B. repräsentiert
in einem Computer System Identifier Field), welches das Computersystem 207 identifiziert.
Demnach können
Verbindungsdaten, die an das Computersystem 207 gesendet
werden sollen, an die URI soap://address_207 gesendet werden.
Ein anderes Namen-Wert-Paar in Zeile 14 repräsentiert ein "name"-Attribut und einen
entsprechenden Namen-Attributwert "Node 207". Der Wert Node 207 ist
ein beschreibender Name (z. B. repräsentiert in einem Computer
System Metadate Field) für
das Computersystem 207. Demnach kann, wenn man sich auf
das Computersystem 207 bezieht, der beschreibende Name
Node 207 benutzt werden.
-
Ein
anderes Name-Wert-Paar in Zeile 14 repräsentiert ein Versionsattribut
und einen entsprechenden Versionsattributwert von 5. Der Wert 5
ist eine Version des Verbindungsstatus-Eintrags (z. B. repräsentiert
in einem Zeitstempelfeld) für
das Computersystem 207. Wenn ein Computersystem einen entsprechenden
Verbindungsstatus-Eintrag
aktualisiert, kann das Computersystem den Versionsattributwert ändern (z.B.
durch das Inkrementieren des Versionsattributwertes), um den aktualisierten
Verbindungsstatus-Eintrag von dem vorherigen Verbindungsstatus-Eintrag
zu unterscheiden. Demnach kann, wenn ein Computersystem aktualisierte
Verbindungsdaten empfängt,
wie z. B. die Verbindungsdatenbank 238, das empfangende
Computersystem die Versionsnummern des derzeitigen Verbindungsstatus-Eintrag
mit dem empfangenen Verbindungsstatus-Eintrag vergleichen um festzustellen,
welches der neuere Verbindungsstatus-Eintrag ist. Wenn ein Verbindungsstatus-Eintrag
in der Verbindungsdatenbank 238 aktueller ist als ein Verbindungsstatus
(auch als Linkzustand bezeichnet) in einem empfangenden Computersystem,
wird die Verbindungs datenbank in dem empfangenden Computersystem
aktualisiert, um die aktuelleren Verbindungsstatus-Einträge aufzunehmen.
-
Zeile
14 repräsentiert
eine Verbindung von dem Computersystem 207 zu dem Computersystems 203 (Verbindung 217).
Ein Name-Wert-Paar in Zeile 15 repräsentiert ein uri-Attribut und
einen entsprechenden uri-Attributwert von "soap://address_203". Demnach kann, um
Verbindungsdaten an das Computersystem 203 zu senden, das
Computersystem 207 die Verbindungsdaten an die URI soap://address_203 senden.
Zeile 15 repräsentiert
eine Verbindung vom Computersystem 207 zu dem Computersystem 208 (Verbindung 218).
Ein Name-Wert-Paar in Zeile 16 repräsentiert ein uri-Attribut und
einen entsprechenden uri-Attributwert von "soap://address_208". Demnach kann, um
Verbindungsdaten an das Computersystem 208 zu senden, das Computersystem 208 die
Verbindungsdaten an die URI soapa/address_208 senden. Zeilen
14 und 15 können kollektiv
repräsentiert
in einem Nachbarlistenfeld sein.
-
Die
Attribute und Attributwerte von anderen Knoten-tags (in Zeilen 2-4,
Zeilen 5-9, Zeilen 10-12 und Zeilen 17-19) repräsentieren ähnliche Verbindungsdaten für entsprechende
teilnehmende Computersystems 202, 203, 204 und 208.
In manchen Ausführungsformen
sind die ersten beispielhaften XML-Instruktionen beinhaltet in dem
Kopfteil der SOAP-Hülle,
während
Anwendungsdaten (z.B. Konferenzdaten) beinhaltet sind in dem Körper der
SOAP-Hülle.
Demnach können
Aktualisierungen für
Verbindungsdaten zusammen mit Konferenzdaten übertragen werden und benötigen nicht
die Erzeugung einer separaten elektronischen Nachricht.
-
In
manchen Ausführungsformen
nimmt eine Hallo-Nachricht (z. B. ähnlich zu der, welche in den
Vorgängen 301 und 305 benutzt
wurden) oder andere Heartbeat-Meldungen,
die Form einer sync-Nachricht an. Demnach kann ein beitretendes
Computersystem oder teilnehmendes Computersystem ein einladendes
Computersystem oder ein anderes teilnehmendes Computersystem mit
Verbindungsstatusdaten (auch als Linkzustandsdaten bezeichnet) zu
der Zeit, wenn dieses versucht beizutreten oder die Verbindung mit
einer Mehrfachteilnehmer-Anwendungsschicht-Session zu erneuern, versorgen. Ein
Computersystem, welches eine Hallo- oder Heartbeat-Meldung in der
Form einer sync-Nachricht empfängt,
kann eine entsprechende Verbindungsdatenbank aktualisieren, so dass
diese Verbindungsstatusdaten, welche in der sync-Nachricht enthalten sind,
einschließen.
Dies kann besonders vorteilhaft sein, wenn ein beitretendes Computersystem
schon mit anderen Computersystemen verbunden ist (z.B. wenn zwei
Mehrfachteilnehmer-Anwendungsschicht.-Sessions verbunden werden
sollen). In manchen anderen Ausführungsformen
ist eine Hallo-Nachricht oder eine andere Heartbeat-Meldung eine
SOAP-Nachricht,
welche keine anderen Knoten-tags beinhaltet. Das Folgende repräsentiert
zweite beispielhafte XML-Instruktionen, welche in dem Kopf und/oder
Körper
einer SOAP-Hülle beinhaltet
sind, um eine Hallo- oder Heartbeat-Meldung zu repräsentieren:
- 1. <Sync
from="soap://address_204"interval="2">
- 2. </Sync>
-
Daten,
welche in den Sync-tags repräsentiert
sind in den zweiten beispielhaften XML-Instruktionen, können von
dem gleichen Format sein wie die Daten, welche in einer sync-Nachricht
repräsentiert
sind (z.B. in den ersten beispielhaften XML-Instruktionen), welche
Verbindungsstatusdaten beinhalten (z.B. ein oder mehrere Knoten-tags).
Demnach kann das gleiche Schema benutzt werden, um die Bedeutung
von Datentypen in Hallo-Nachrichten, Heartbeat-Meldungen und sync-Nachrichten
einzuschränken.
Dies fördert
ein effizienteres Bearbeiten von Hallo-Nachrichten, Heartbeat-Meldungen
und sync-Nachrichten. In Zeile 1 zeigen die zweiten beispielhaften
XML-Instruktionen (durch die beinhaltete URI), dass diese von dem
Computersystem 204 gesendet wurden und dass das Computersystem,
welches die zweiten beispielhaften XML-Instruktionen empfängt, innerhalb
eines Ping-Intervalles von 2 antworten sollte.
-
In
Bezug auf 3 beinhaltet das Verfahren 300 einen
Vorgang des Empfangens einer Verbindungsdatenbank der einladenden
Seite (Vorgang 302). Der Vorgang 302 kann beinhalten,
das ein beitretendes Computersystem eine Verbindungsdatenbank der
einladenden Seite von dem einladenden Computersystem empfängt. Zum
Beispiel kann das beitretende Computersystem 206 die Verbindungsdatenbank 238 von
dem Computersystem 208 empfangen.
-
Verfahren 300 beinhaltet
einen Vorgang des Aktualisierens einer Verbindungsdatenbank der
beitretenden Seite (Vorgang 303). Der Vorgang 303 kann
das Aktualisieren einer Verbindungsdatenbank der beitretenden Seite
beinhalten, um zumindest anzu zeigen, dass das beitretende Computersystem
mit dem einladenden Computersystem verbunden ist. Zum Beispiel kann
das Verbindungsdatenbearbeitungsmodul 246 die Verbindungsdatenbank 236 aktualisieren,
so dass diese einen Verbindungsstatus-Eintrag einschließt, dass
das beitretende Computersystem 206 mit dem Computersystem 208 verbunden
ist. Das Verbindungsdatenbearbeitungsmodul 236 kann ebenso,
abhängig
von den entsprechenden Zeitstempelwerten, die Verbindungsdatenbank 236 aktualisieren,
so dass diese andere Verbindungsstatus-Einträge einschließt von der
Verbindungsdatenbank 238. Demnach hat das beitretende Computersystem 206 Kenntnis
von anderen teilnehmenden Computersystemen in der Mehrfachteilnehmer-Konferenz-Session 200 und
deren entsprechenden Verbindungen.
-
Das
Verfahren 300 beinhaltet einen Vorgang des Sendens eines
aktualisierten Verbindungsstatus-Eintrags der beitretenden Seite
(Vorgang 304). Der Vorgang 304 kann beinhalten,
dass das beitretende Computersystem eine aktualisierte Verbindungsstatusübersicht
der beitretenden Seite sendet an das einladende Computersystem.
Die Verbindungsstatusübersicht
der beitretenden Seite kann dem einladenden Computersystem anzeigen,
dass das beitretende Computersystem mit dem einladenden Computersystem
verbunden ist. Zum Beispiel kann das beitretende Computersystem 206 Verbindungsstatus-Einträge 224 an
das Computersystem 208 senden. Die Verbindungsstatusübersicht 224 kann
dem Computersystem 208 anzeigen, dass das beitretende Computersystem 206 mit
dem Computersystem 208 verbunden ist.
-
Das
Verfahren 300 beinhaltet einen Vorgang des Empfangens des
Verbindungsstatus-Eintrags der beitretenden Seite (Vorgang 308).
Der Vorgang 308 kann beinhalten, dass ein einladendes Computersystem einen
Verbindungsstatus-Eintrag der beitretenden Seite von dem beitretenden
Computersystem empfängt. Zum
Beispiel kann das Computersystem 208 den Verbindungsstatus-Eintrag 224 von
dem beitretenden Computersystem 206 empfangen. Das Verbindungsbearbeitungsmodul 248 kann
die Verbindungsdatenbank 238 aktualisieren, so dass diese
Verbindungsstatus-Einträge 224 beinhaltet.
Das beitretende Computersystem 206 wird nun als ein teilnehmendes
Computersystem gezeigt.
-
Das
Computersystem 208 kann dann die aktualisierte Verbindungsdatenbank 238 an
andere verbundene teilnehmende Computersysteme (z.B. Computersystem 207)
senden. Diese anderen Computersysteme können dann für eine weitere Ausbreitung
(z. B, durch Übertragen
von dienlichen sync-Nachrichten) die aktualisierte Verbindungsdatenbank 238 zu
anderen als die teilnehmenden Computersysteme (z.B. Computersysteme 203, 202 und 204)
in der Mehrfachteilnehmer-Konferenz-Session 200 versenden.
Daher werden Änderungen
in Verbindungsdaten in einem teilnehmenden Computersystem schließlich an
andere teilnehmende Computersysteme gesendet. Demnach geht eine
Mehrfachteilnehmer-Konferenz-Session 200 kontinuierlich
in einen stationären
Zustand über,
so dass jedes teilnehmende Computersystem Kenntnis hat von anderen
teilnehmenden Computersystemen und deren entsprechenden Verbindungen,
welche mit anderen teilnehmenden Computersystemen in Verbindung
stehen.
-
Die
teilnehmenden Computersysteme können,
von Zeit zu Zeit, versuchen, anderen Computersystemen in der Mehrfachteilnehmer-Konferenz-Session 200 erneut
beizutreten oder diesen zeigen, dass sie noch "am Leben sind". Demnach kann das Verfahren 300 wiederholt
werden zwischen zwei teilnehmenden Computersystemen. In manchen
Ausführungsformen
sendet ein sendendes Computersystem eine sync-Nachricht der sendenden Seite oder,
wenn es keine Verbindungsdatenaktualisierungen der sendenden Seite
gibt, eine Heartbeat-Meldung der sendenden Seite an das empfangende
Computersystem. Das sendende Computersystem zeigt ebenso einen Antwortschwellwert
der sendenden Seite dem empfangenden Computersystem an. Eine Heartbeat-Meldung
kann ein URI, welches ein teilnehmendes Computersystem identifiziert
und ein Ping-Intervall beinhalten.
-
Das
Computersystem der empfangenden Seite empfängt die sync-Nachricht der
sendenden Seite oder die Heartbeat-Meldung der sendenden Seite und
antwortet durch das Senden einer sync-Nachricht der empfangenen
Seite oder, wenn es keine Verbindungsdatenaktualisierungen der empfangenen
Seite gibt, eine Heartbeat-Meldung
der empfangenen Seite an das sendende Computersystem. Das Computersystem
der empfangenen Seite zeigt ebenso einen Antwortschwellwert der
empfangenen Seite an das sendende Computersystem an. Wenn das sendende
Computersystem die sync-Nachricht der empfangenden Seite empfängt oder
eine Heart beat-Meldung innerhalb des Antwortschwellwertes der sendenden
Seite erhält,
zeigt das sendende Computersystem das empfangende Computersystem
als "lebend" an. Ebenso antwortet
das sendende Computersystem auf die sync-Nachricht oder Heartbeat-Meldung
der empfangenden Seite durch ein Wiedersenden einer sync-Nachricht der sendenden
Seite oder einer Heartbeat-Meldung der sendenden Seite (und zeigt
einen weiteren Antwortschwellwert der sendenden Seite). Wenn das
empfangende Computersystem eine sync-Nachricht oder Heartbeat-Meldung
der sendenden Seite empfängt
innerhalb des Antwortschwellwertes der empfangenden Seite, zeigt
das empfangende Computersystem das sendende Computersystem als "lebendig" an.
-
Jedes
teilnehmende Computersystem in einer Mehrfachteilnehmer-Konferenz-Session
kann sync-Nachrichten und Heartbeat-Meldungen mit anderen teilnehmenden
Computersystemen in ähnlicher
Weise austauschen. Zum Beispiel kann das Computersystem 203 sync-Nachrichten
austauschen, welche Verbindungsdaten enthalten mit jedem anderen
der Computersysteme 202, 204 und 207.
Demnach werden Verbindungsdaten, welche in einem teilnehmenden Computersystem
aktualisiert werden, an andere teilnehmende Computersysteme weiter
verbreitet (z.B. durch das Übertragen
von geeigneten sync-Nachrichten). Zum Beispiel werden Verbindungsdaten,
welche anzeigen, dass das beitretende Computersystem 206 der
Mehrfachteilnehmer-Konferenz-Session 200 beigetreten ist,
weiter verbreitet von dem Computersystem 208 an das Computersystem 207,
an das Computersystem 203, usf. Daher werden zu jeder Zeit
während
einer Mehrfachteilnehmer-Konferenz-Session eine oder mehrere sync-Nachrichten
und/oder eine oder mehrere Heartbeat-Meldungen zwischen den teilnehmenden
Computersystemen übertragen.
-
Es
kann sein, dass während
einer Mehrfachteilnehmer-Konferenz-Session ein teilnehmendes Computersystem
die Mehrfachteilnehmer-Konferenz-Session verlässt oder ausfällt oder
dass eine Verbindung zwischen teilnehmenden Computersystemen ausfällt. Jedes
dieser Ereignisse kann darin resultieren, dass ein teilnehmendes
Computersystem nicht in der Lage ist, Verbindungsdaten von anderen
teilnehmenden Computersystemen (z. B. innerhalb einer gegebenen
Schwelle) zu empfangen. 2B zeigt
eine Mehrfachteilnehmer-Konferenz-Session 200 nach dem
Ausfall des Computersystems 207. Das Computersystem 207 ist
mit einer gestrichelten Linie gezeigt um zu zeigen, dass Verbindungsdaten
von dem Computersystem 207 nicht mehr von den Computersystemen 203 und 208 empfangen
werden (zuvor Nachbarcomputersysteme). Ebenso werden die Verbindungen 235 und 236 in 2B gezeigt,
die das beitretende Computersystem 206 und das Computersystem 208 verbinden.
Dies zeigt, dass das beitretende Computersystem 206 ein
teilnehmendes Computersystem ist.
-
4 ist
ein Flussdiagramm eines Verfahrens
400 für das Reparieren
einer Mehrfachteilnehmer-Konferenz-Session. Das Verfahren
400 wird
nun in Bezug auf das Computersystem der
2B beschrieben.
Das Verfahren
400 beinhaltet einen Vorgang des Feststellens,
dass Verbindungsdaten nicht mehr von einem Nachbarcomputersystem
empfangen werden (Vorgang
401). Der Vorgang
401 kann
ein reparierendes Computersystem beinhalten, welches feststellt,
das Verbindungsdaten nicht mehr von einem Nachbarcomputersystem empfangen
werden. Zum Beispiel können
beide Computersysteme
203 und
208 in
2B feststellen,
dass Verbindungsdaten nicht mehr von dem Computersystem
207 empfangen
werden (ein Computersystem in der Nachbarliste beider Computersysteme
203 und
208).
Das Feststellen, dass Verbindungsdaten nicht mehr empfangen werden,
kann aus dem Ablauf eines Antwort-Timers resultieren. Zum Beispiel
kann das Computersystems
203 folgende zweite beispielhaften
XML-Instruktionen an das Computersystem
207 gesendet haben:
-
Zeile
1 der zweiten beispielhaften XML-Instruktionen zeigt, dass die zweiten
beispielhaften XML-Instruktionen von einer URI gesendet worden sind,
welche mit dem Computersystem 203 verbunden sind. Zeile 1
zeigt ebenso, dass ein oder mehrere Verbindungsstatus-Einträge, welche
durch die vertikalen Auslassungspunkte in den Zeilen 2-4 ein Antwortintervall
von "4" haben. Wenn das
Computersystem 203 keine Antwort von dem Computersystem 207 innerhalb
einer gegebenen Schwelle emp fängt,
welche aus dem Antwortintervall berechnet wurde, stellt das Computersystem 203 fest,
dass Verbindungsdaten von dem Computersystem 207 nicht
empfangen wurden. Eine gegebene Schwelle kann, z.B., das Produkt
von zwei mal das Antwortintervall sein. Dies ermöglicht dass ein Intervall bei
den zweiten beispielhaften XML-Instruktionen
vom Computersystem 203 zum Computersystem 207 wandert
und dass ein Intervall für
Antwortverbindungsdaten (z.B. Verbindungsdatenbank) von dem Computersystem 207 zum
Computersystem 203 wandert.
-
Das
Verfahren
400 beinhaltet einen Vorgang des Entfernens eines
Nachbarcomputersystems von der Nachbarcomputersystemliste des reparierenden
Computersystems (Vorgang
402). Das Verfahren
400 kann ebenso
einen Vorgang des Entfernens des Verbindungsstatus-Eintrags des
Nachbarcomputersystems von einer Verbindungsdatenbank der reparierenden
Seite (Vorgang
403) beinhalten. Zum Beispiel kann, wenn
das Verbindungsbearbeitungsmodul
243 feststellt, dass Verbindungsdaten
nicht mehr von dem Computersystem
207 empfangen werden,
das Verbindungsbearbeitungsmodul
243 die Verbindungsdatenbank
233 aktualisieren,
um Referenzen zu dem Computersystem
207 zu entfernen. Ähnlicherweise,
wenn das Verbindungsbearbeitungsmodul
248 feststellt, dass
Verbindungsdaten nicht mehr von dem Computersystem
207 empfangen werden,
kann das Verbindungsbearbeitungsmodul
248 die Verbindungsdatenbank
238 aktualisieren,
um Referenzen zu dem Computersystem
207 zu entfernen. Demnach
werden nach dem Ausfall des Computersystems
207, entsprechend
aktualisierte Verbindungsdatenbanken
233 und
238 durch
Tabelle 2 repräsentiert:
-
Das
Verfahren beinhaltet den Vorgang des Identifizierens einer Liste
von logisch unerreichbaren Computersystemen, basierend auf Verbindungsstatus-Einträgen in der
Verbindungsdatenbank der reparierenden Seite (Vorgang 404).
Wie in 2B gezeigt, sind die beitretenden
Computersysteme 206 und 208 nicht länger mit
dem Computersystem 203 nach dem Ausfall des Computersystems 207 verbunden.
Demnach kann das Computersystem 203 die Computersysteme 206 und 208 als
logisch unerreichbar identifizieren. Ähnlicherweise kann das Computersystem 208 die
Computersystems 202, 203 und 204 als
logisch unerreichbar identifizieren.
-
Das
Verfahren 400 beinhaltet einen Vorgang des Versuchens mindestens
einem logisch unerreichbaren Computersystem beizutreten (Vorgang 405).
Zum Beispiel kann das Computersystems 203 eine Hallo-Nachricht
an das Computersystem 208 senden, das Computersystem 208 kann
mit der Verbindungsdatenbank 238 antworten, und das Computersystem 203 kann
erneut mit der Verbindungsdatenbank 233 antworten (alles
zusammenfassend repräsentiert
durch Verbindungsdaten 244). Demnach können Verbindungsdatenbanken 233 und 238 nacheinander
aktualisiert werden, um anzuzeigen, dass die Computersysteme 203 und 208 Nachbarn
sind. Die aktualisierten Verbindungsdaten der Verbindungsdatenbanken 236 und 238 können dann
(z. B. durch Übertragung
entsprechender sync-Nachrichten) an andere teilnehmende Computersysteme in
der Mehrfachteilnehmer-Konferenz-Session 200 weiter verbreitet
werden.
-
In
manchen Beispielen versucht ein reparierendes Computersystem, eine
Verbindung mit einer Vielzahl von logisch unerreichbaren Computersystemen
oder sogar mit jedem logisch unerreichbaren Computersystem herzustellen.
In 2B kann das Computersystem 203 versuchen,
eine Verbindung mit dem Computersystem 208 zu errichten
und dem Computersystem 206 beizutreten. Ähnlicherweise
kann das Computersystem 203 versuchen, eine Verbindung
mit dem Computersystem 202, 203 und 204 zu
errichten. Nach dem Beitreten zu zuvor logisch unerreichbaren Computersystemen
können
die Verbindungsdaten in den zuvor logisch unerreichbaren Computersystemen
eine Konnektivität
zu anderen logisch unerreichbaren Computersystemen anzeigen. Daher
können,
obwohl ein teilnehmendes Computersystem versuchen kann eine Verbindung zu
jedem logisch unerreichbaren Computersystem herzustellen, manche
logisch unerreichbaren Computersysteme durch ein teilnehmendes Computersystem,
welches anderen zuvor logisch unerreichbaren Computersystemen beitritt,
erreichbar werden. Wenn ein logisch unerreichbares Computersystem
erreichbar wird, kann ein teilnehmendes Computersystem davon absehen
zu versuchen, logisch unerreichbaren Computersystemen beizutreten
(da Verbindungs daten an das teilnehmende Computersystem von anderen
beigetretenen Computersystemen propagiert wird). Das kann in einem "Netz" von Verbindungen
resultieren zwischen den teilnehmenden Computersystemen einer Mehrfachteilnehmer-Konferenz-Session 200.
-
Die
Verbindungsdaten, welche von den Computersystemen ausgetauscht werden
in einer Mehrfachteilnehmer-Konferenz-Session, können definiert werden gemäß dem folgenden
beispielhaften XML-Schema:
-
Die
Zeilen 6-14 definieren ein "Sync"-Element eines "SyncType"-Datatyps. Spezifischer
definieren Zeilen 7-11 den SyncType-Datentyp, so dass dieser null
oder mehr Knotenelemente eines "NodeType"-Datentyps enthält, Zeile
12 definiert den "Sync-Type"-Datentyp, so dass
dieser ein "from"-Attribut eines URI-Datentyps enthält, und
Zeile 13 definiert, dass der "SyncType"-Datentyp ein "Intervall"-Attribut des Datentyps "short integer" enthält.
-
Zeilen
16-24 definieren den "NodeType"-Datentyp. Im Speziellen
definieren Zeilen 17-21 den "NodeType"-Datentyp, so dass
dieser null oder mehr "Link"-Elemente enthält eines "LinkType"-Datentyps, Zeile
22 definiert, dass der "NodeType"-Datentyp ein "uri"-Attribut eines URI-Datentyps
enthält,
und Zeile 23 definiert, dass der "NodeType"-Datentyp ein "name"-Attribut
eines Zeichenfolgendatentyps enthält.
-
Zeilen
26-28 definieren des Weiteren den "LinkType"-Datentyp. Im Speziellen definiert Zeile
27 den "LinkType"-Datentyp, so dass
dieser ein uri-Attribut des URI-Datentyps enthält.
-
Jedes
der teilnehmenden Computersysteme in einer Mehrfachteilnehmer-Konferenz-Session kann Zugriff
auf die beispielhaften XML-Schemata haben. Demnach kann jedes der
Computersysteme, welche in der Mehrfachteilnehmer-Konferenz-Session 200 enthalten
sind, Verbindungsdaten gemäß dem beispielhaften XML-Schema
bearbeiten.
-
Die
vorliegende Erfindung kann in anderen speziellen Formen verkörpert sein,
ohne von deren wesentlicher Charakteristik abzuweichen. Die beschriebenen
Ausführungsformen
sollen in jeder Hinsicht nur als illustrativ und nicht als restriktiv
angesehen werden. Der Schutzbereich der Erfindung ist deshalb durch
die angefügten
Ansprüche
gegeben und nicht durch die vorangegangene Beschreibung. Alle Änderungen
innerhalb der Bedeutung und Äquivalenzbereiche
der Ansprüche
sind durch deren Umfang miteingeschlossen.