DE602004004060T2 - Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene - Google Patents

Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene Download PDF

Info

Publication number
DE602004004060T2
DE602004004060T2 DE602004004060T DE602004004060T DE602004004060T2 DE 602004004060 T2 DE602004004060 T2 DE 602004004060T2 DE 602004004060 T DE602004004060 T DE 602004004060T DE 602004004060 T DE602004004060 T DE 602004004060T DE 602004004060 T2 DE602004004060 T2 DE 602004004060T2
Authority
DE
Germany
Prior art keywords
computer system
computer
connection
participating
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE602004004060T
Other languages
English (en)
Other versions
DE602004004060D1 (de
Inventor
John Anthony Bellevue Washington Taylor
Wei Issaquah Washington Zhong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE602004004060D1 publication Critical patent/DE602004004060D1/de
Application granted granted Critical
Publication of DE602004004060T2 publication Critical patent/DE602004004060T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1818Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L19/00Joints in which sealing surfaces are pressed together by means of a member, e.g. a swivel nut, screwed on or into one of the joint parts
    • F16L19/06Joints in which sealing surfaces are pressed together by means of a member, e.g. a swivel nut, screwed on or into one of the joint parts in which radial clamping is obtained by wedging action on non-deformed pipe ends
    • F16L19/061Joints in which sealing surfaces are pressed together by means of a member, e.g. a swivel nut, screwed on or into one of the joint parts in which radial clamping is obtained by wedging action on non-deformed pipe ends a pressure ring being arranged between the clamping ring and the threaded member or the connecting member
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L33/00Arrangements for connecting hoses to rigid members; Rigid hose connectors, i.e. single members engaging both hoses
    • F16L33/22Arrangements for connecting hoses to rigid members; Rigid hose connectors, i.e. single members engaging both hoses with means not mentioned in the preceding groups for gripping the hose between inner and outer parts
    • F16L33/223Arrangements for connecting hoses to rigid members; Rigid hose connectors, i.e. single members engaging both hoses with means not mentioned in the preceding groups for gripping the hose between inner and outer parts the sealing surfaces being pressed together by means of a member, e.g. a swivel nut, screwed on or into one of the joint parts
    • F16L33/224Arrangements for connecting hoses to rigid members; Rigid hose connectors, i.e. single members engaging both hoses with means not mentioned in the preceding groups for gripping the hose between inner and outer parts the sealing surfaces being pressed together by means of a member, e.g. a swivel nut, screwed on or into one of the joint parts a clamping ring being arranged between the threaded member and the connecting member
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mechanical Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Computernetzwerke, und im Speziellen auf das Verteilen von Zugehörigkeitsinformationen für Mehrfachteilnehmer-Anwendungsschicht-Sessions.
  • 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 (Schichten), 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 Anwen dungsschicht 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, 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). Deshalb wären Systeme, Verfahren, Computerprogrammprodukte und Datenstrukturen für das Verteilen von Zugehörigkeitsinformationen für Mehrfachteilnehmer-Anwendungsschicht-Sessions vorteilhaft.
  • US 5,805,578 bezieht sich auf die automatische Rekonfiguration eines Mehrpunkt-Kommunikationskanales. Eine Technik für das Rekonfigurieren eines Mehrpunkt-Kommunikationskanales, um verbundene Knoten wieder zu verbinden, nachdem Ausfälle in dem Netzwerk aufgetreten sind, wird beschrieben. Das Verfahren bedingt, dass ein ausgewählter Knoten als der Koordinator für das Wiedereinrichtungsprotokoll agiert. Dieser Koordinator überwacht den Zustand der Netzwerktopologie und stellt Ausfälle fest, berechnet einen alternativen praktikablen Kommunikationskanalpfad und erzeugt Nachrichten, um neue Netzwerkelemente in dem Kommunikationskanal anzugliedern. Unter Benutzung eines Baumberechnungsverfahrens ist der Koordinator in der Lage, den Datentransfer zu minimieren und den originalen Kanal weitestmöglich zu erhalten.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und System, um eine Mehrfachteilnehmer-Anwendungsschicht-Session zu reparieren, zur Verfügung zu stellen.
  • Diese Aufgabe wird gelöst durch den Gegenstand der unabhängigen Ansprüche.
  • Bevorzugte Ausführungsformen werden 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 "Hello"-Nachricht an ein einladendes Computersystem, welches schon an der Mehrfachteilnehmer-Konferenz-Session teilnehmend sein kann. Das einladende Computersystem empfängt die "Hello"-Nachricht und aktualisiert eine Verbindungsdatenbank der einladenden Seite, um anzuzeigen, dass das einladende Computersystem logisch mit dem beitretenden Computersystem verbunden ist. Die Computersysteme der einladenden Seite senden die aktualisierte Verbindungsdatenbank der einladenden Seite an das beitretende Computersystem. Die aktualisierte Verbindungsdatenbank der einladenden Seite beinhaltet zumindest ein Verbindungsstatus-Eintrag 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 Verbindungsdatenbank der beitretenden Seite 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 Ausführungsformen stellt ein reparierendes Computersystem fest, dass Verbindungsdaten 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.
  • 2 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 Hello-Nachricht (welche im Wesentlichen eine Heartbeat-Meldung ist, welche das beitretende Computersystem in das einladende Computersystem einführt) an ein teilnehmendes Computersystem senden, um zu versuchen, der Mehrfachteilnehmer-Konferenz-Session beizutreten. In Erwiderung auf das Empfangen einer Hello-Nachricht sendet ein teilnehmendes Computersystem ein oder mehrere Verbindungsstatus-Einträge an das Computersystem zurück (entweder teilnehmend oder beitretend), welches die Hello-Nachricht gesendet hat. Das Computersystem, das die Hello-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 Ausführungsformen 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 welche 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 compu terlesbaren 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-Dateierweiterung 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ät empfä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 Computersys tem 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 beinhalten 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 die 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 Verbindungsdaten 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 Konferenz anwendungen 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: Tabelle 1
    Figure 00170001
  • 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:
    Figure 00180001
  • 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 Anwendungsschicht (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 Computersys temen, 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 Hello-Nachricht (Vorgang 301). Vorgang 301 kann einen Vorgang eines beitretenden Computersystems beinhalten, welches eine Hello-Nachricht an ein einladendes Computersystem sendet. Zum Beispiel, wie in 2A gezeigt, sendet das beitretende Computersystem 206 eine Hello-Nachricht 222 an das Computersystem 208. Eine Hello-Nachricht ist im Wesentlichen eine Heartbeat-Meldung, welche ein nicht-verbundenes beitretendes Computersystem in ein Computersystem einführt, welches bei einer Mehrfachteilnehmer-Anwendungsschicht-Session teilnimmt. Zum Beispiel kann die Hello-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 Hello-Nachricht (Vorgang 305). Der Vorgang 305 kann beinhalten, dass ein einladendes Computersystem eine Hello-Nachricht von einem beitretenden Computersystem empfängt. Zum Beispiel, wie in 2A gezeigt, empfängt das Computersystem 208 eine Hello-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 Verbin dungsdatenbank 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 Hello-Nachricht aktualisiert werden. Zum Beispiel, in Erwiderung auf das Empfangen der Hello-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 einladende 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-Instruktionen, 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:
    Figure 00220001
    Figure 00230001
  • 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 "soap://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 in einem empfangenden Computersystem, wird die Verbindungsdatenbank 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 soap://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 Hello-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 zu der Zeit, wenn dieses versucht beizutreten oder die Verbindung mit einer Mehrfachteilnehmer-Anwendungsschicht-Session zu erneuern, versorgen. Ein Computersystem, welches eine Hello- 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 Hello-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 Hello- oder Heartbeat-Meldung zu repräsentieren:
    Figure 00260001
  • 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 Hello-Nachrichten, Heartbeat-Meldungen und sync-Nachrichten einzuschränken. Dies fördert ein effizienteres Bearbeiten von Hello-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 anzuzeigen, dass das beitretende Computersystem mit dem einladenden Computersystem verbunden ist. Zum Beispiel kann das Verbindungsdatenbearbeitungsmodul 246 die Verbindungsdatenbank 236 aktualisieren, so dass diese einen Verbindungssta tus-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 Verbin dungsdatenbank 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 Heartbeat-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 ver binden. 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:
    Figure 00300001
  • 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 empfä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 Antwort intervall 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:
    Figure 00310001
  • 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 Hello-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 Ausführungsformen 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 Verbindungsdaten an das teilnehmende Computersystem von anderen beigetretenen Computersystemen propagiert wird). Das kann in einem "Netz" von Verbindun gen 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:
    Figure 00330001
    Figure 00340001
  • 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.

Claims (9)

  1. Verfahren zum Einsatz in einer Mehrfachteilnehmer-Anwendungsschicht-Session mit einer Vielzahl teilnehmender netzwerkverbindungsfähiger Computersysteme, einschließlich eines reparierenden Computersystems und eines Nachbar-Computersystems, wobei das Nachbar-Computersystem in einer Nachbarliste für das reparierende Computersystem ist und das Verfahren dazu dient, für einen Anwendungsschichtprozess in dem reparierenden Computersystem eine Reparatur der Mehrfachteilnehmer-Anwendungsschicht-Session auszulösen, und das Verfahren umfasst: einen Vorgang des Erfassens (401), dass Verbindungsdaten von dem Nachbar-Computersystem nicht mehr empfangen werden; einen Vorgang des Entfernens (402) des Nachbar-Computersystems aus der Nachbar-Liste des reparierenden Computersystems; einen Vorgang des Entfernens (403) des Eintrags des Verbindungsstatus des Nachbar-Computersystems aus einer Verbindungs-Datenbank der Reparatur-Seite; einen Vorgang des Identifizierens (404) einer Liste logisch nicht erreichbarer teilnehmender Computersysteme auf Basis der verbleibenden Verbindungsstatus-Einträge in der Verbindungs-Datenbank der Reparatur-Seite; und einen Vorgang des Versuchens (405), wenigstens einen logisch nicht erreichbaren teilnehmenden Computer zu verbinden, um die Mehrfachteilnehmer-Anwendungsschicht-Session zu reparieren.
  2. Verfahren nach Anspruch 1, wobei der Vorgang des Erfassens (401), dass Verbindungsdaten von dem Nachbar-Computersystem nicht mehr empfangen werden, einen Vorgang des Ablaufens eines Antwort-Timers umfasst.
  3. Verfahren nach Anspruch 1, wobei der Vorgang des Erfassens (401), dass Verbindungsdaten von dem Nachbar-Computersystem nicht mehr empfangen werden, einen Vorgang des Nicht-Empfangens einer Heartbeat-Meldung innerhalb eines vorgegebenen Antwortintervalls umfasst.
  4. Verfahren nach Anspruch 1, wobei der Vorgang des Identifizierens (404) einer Liste logisch nicht erreichbarer teilnehmender Computersysteme auf Basis von Verbindungszustands-Einträgen in der Verbindungsdatenbank der Reparatur-Seite einen Vorgang des Identifizierens eines teilnehmenden Computersystems umfasst, das über beliebige Kombinationen von Verbindungen, die in der Verbindungsdatenbank der reparierenden Seite enthalten sind, nicht erreichbar ist.
  5. Verfahren nach Anspruch 1, wobei der Vorgang des Versuchens (405), wenigstens einen logisch nicht erreichbaren teilnehmenden Computer zu verbinden, um die Mehrfachteilnehmer-Session zu reparieren, einen Vorgang des Sendens einer Hello-Meldung zu dem logisch nicht erreichbaren teilnehmenden Computersystem umfasst.
  6. Verfahren nach Anspruch 1, wobei der Vorgang des Versuchens (405), wenigstens einen logisch nicht erreichbaren teilnehmenden Computer zu verbinden, um die Mehrfachteilnehmer-Session zu reparieren, einen Vorgang des Versuchens umfasst, jedes logisch nicht erreichbare teilnehmende Computersystem zu verbinden, das in der Liste logisch nicht erreichbarer teilnehmender Computersysteme identifiziert wird.
  7. Computerprogrammerzeugnis zum Einsatz in einer Mehrfachteilnehmer-Anwendungsschicht-Session, wobei das Computerprogrammerzeugnis ein oder mehrere computerlesbare Medien umfasst, auf denen durch Computer ausführbare Befehle gespeichert sind, die, wenn sie durch einen Prozessor ausgeführt werden, den Prozessor veranlassen, das Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen.
  8. Computerprogrammerzeugnis nach Anspruch 7, wobei das eine oder die mehreren computerlesbaren Medien physikalische Medien sind.
  9. System zum Bereitstellen einer Mehrfachteilnehmer-Anwendungsschicht-Session (200) mit einer Vielzahl teilnehmender netzwerkverbindungsfähiger Computersysteme (202; 203; 204; 207; 208) einschließlich eines reparierenden Computersystems und eines Nachbar-Computersystems, wobei das Nachbar-Computersystem in der Nachbarliste für das reparierende Computersystem ist, und das System zum Durchführen eines Verfahrens für einen Anwendungsschicht-Prozess an dem reparierenden Computersystem zum Auslösen einer Reparatur der Mehrfachteilnehmer-Anwendungsschicht-Session nach den Ansprüchen 1 bis 6 eingerichtet ist.
DE602004004060T 2003-04-22 2004-04-15 Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene Expired - Lifetime DE602004004060T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/420,986 US8103753B2 (en) 2003-04-22 2003-04-22 Distributing membership information for multi-party application layer sessions
US420986 2003-04-22

Publications (2)

Publication Number Publication Date
DE602004004060D1 DE602004004060D1 (de) 2007-02-15
DE602004004060T2 true DE602004004060T2 (de) 2007-06-06

Family

ID=32962418

Family Applications (2)

Application Number Title Priority Date Filing Date
DE602004004060T Expired - Lifetime DE602004004060T2 (de) 2003-04-22 2004-04-15 Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene
DE602004004601T Expired - Lifetime DE602004004601T2 (de) 2003-04-22 2004-04-15 Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE602004004601T Expired - Lifetime DE602004004601T2 (de) 2003-04-22 2004-04-15 Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene

Country Status (7)

Country Link
US (1) US8103753B2 (de)
EP (2) EP1562351B1 (de)
JP (1) JP4494852B2 (de)
KR (1) KR20040091589A (de)
CN (2) CN100454818C (de)
AT (2) ATE350856T1 (de)
DE (2) DE602004004060T2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512125B2 (en) * 2003-12-19 2009-03-31 Solace Systems, Inc. Coding of routing protocol messages in markup language
US7844733B2 (en) * 2003-12-19 2010-11-30 Solace Systems, Inc. Content router with multiple forwarding elements instantiated on hardware entities
US7617300B2 (en) * 2004-03-12 2009-11-10 Microsoft Corporation Node matching in a dynamic, decentralized environment
US7382260B2 (en) * 2004-09-01 2008-06-03 Microsoft Corporation Hot swap and plug-and-play for RFID devices
US8098158B2 (en) * 2004-09-01 2012-01-17 Microsoft Corporation RFID server internals design
US7557707B2 (en) * 2004-09-01 2009-07-07 Microsoft Corporation RFID enabled information systems utilizing a business application
US7701341B2 (en) * 2004-09-01 2010-04-20 Microsoft Corporation Device service provider interface
US8217756B2 (en) * 2004-09-01 2012-07-10 Microsoft Corporation Rule-based filtering and alerting
US7204409B2 (en) * 2004-09-01 2007-04-17 Microsoft Corporation Reader application markup language schema
US7295116B2 (en) * 2004-09-01 2007-11-13 Microsoft Corporation Architecture, programming model and API'S
CN100596075C (zh) * 2005-03-31 2010-03-24 株式会社日立制作所 利用广播组播服务实现多方会议服务的方法和设备
US7899170B2 (en) * 2005-04-28 2011-03-01 Apple Inc. Multi-participant conference setup
US7378966B2 (en) * 2006-01-04 2008-05-27 Microsoft Corporation RFID device groups
US7756747B2 (en) * 2006-03-10 2010-07-13 Microsoft Corporation RFID business process-decoupling of design and deployment time activities
US20080001711A1 (en) * 2006-06-15 2008-01-03 Microsoft Corporation Reliability of execution for device provider implementations
US7868738B2 (en) * 2006-06-15 2011-01-11 Microsoft Corporation Device simulator framework for an RFID infrastructure
US7675418B2 (en) * 2006-06-15 2010-03-09 Microsoft Corporation Synchronous command model for RFID-enabling applications
US8207822B2 (en) * 2006-06-15 2012-06-26 Microsoft Corporation Support for batching of events, and shredding of batched events in the RFID infrastructure platform
US7956724B2 (en) * 2006-06-15 2011-06-07 Microsoft Corporation Support for reliable end to end messaging of tags in an RFID infrastructure
US7593970B2 (en) * 2006-09-08 2009-09-22 Honda Motor Co., Ltd. Data receiving system, data broadcasting system, data receiving method and data broadcasting method
US20080174404A1 (en) * 2007-01-23 2008-07-24 Microsoft Corporation Dynamic updates in rfid manager
US8245219B2 (en) * 2007-01-25 2012-08-14 Microsoft Corporation Standardized mechanism for firmware upgrades of RFID devices
US8266168B2 (en) * 2008-04-24 2012-09-11 Lexisnexis Risk & Information Analytics Group Inc. Database systems and methods for linking records and entity representations with sufficiently high confidence
GB2460897A (en) 2008-06-18 2009-12-23 Skype Ltd Authorising and adding a user to a conference event by determining if a set up request received from the user is associated with the conference event
GB2460896A (en) * 2008-06-18 2009-12-23 Skype Ltd Indicating the participation status of members in a conference or group communication event
US11308282B2 (en) 2018-12-21 2022-04-19 Capital One Services, Llc Systems and methods for determining document compatibility
US20200202274A1 (en) 2018-12-21 2020-06-25 Capital One Services, Llc Systems and methods for maintaining contract adherence

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729532A (en) * 1995-05-26 1998-03-17 Lucent Technologies Inc. Selective participation in a multimedia communication conference call
US5805578A (en) * 1995-10-27 1998-09-08 International Business Machines Corporation Automatic reconfiguration of multipoint communication channels
US5684800A (en) * 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US6856627B2 (en) * 1999-01-15 2005-02-15 Cisco Technology, Inc. Method for routing information over a network
US6530032B1 (en) * 1999-09-23 2003-03-04 Nortel Networks Limited Network fault recovery method and apparatus
US6578086B1 (en) * 1999-09-27 2003-06-10 Nortel Networks Limited Dynamically managing the topology of a data network
US7327683B2 (en) * 2000-03-16 2008-02-05 Sri International Method and apparatus for disseminating topology information and for discovering new neighboring nodes
US7706687B1 (en) * 2000-08-15 2010-04-27 Nortel Networks Limited Automatic provisioning of network services based on user application requirements
US7310335B1 (en) * 2000-09-06 2007-12-18 Nokia Networks Multicast routing in ad-hoc networks
US7058016B1 (en) * 2000-10-12 2006-06-06 Cisco Technology, Inc. Method and system for accelerating route calculation in link state routing protocols
US7120681B2 (en) * 2001-01-30 2006-10-10 International Business Machines Corporation Cluster control in network systems
US7006456B2 (en) 2001-02-02 2006-02-28 Nortel Networks Limited Method and apparatus for packet-based media communication
WO2002087175A1 (fr) * 2001-04-19 2002-10-31 Fujitsu Limited Procede et appareil de restauration/protection
WO2002087172A1 (en) * 2001-04-20 2002-10-31 Motorola, Inc. Protocol and structure for self-organizing network
JP2002335283A (ja) * 2001-05-11 2002-11-22 Hitachi Software Eng Co Ltd 同報通信方法およびシステム
CN1392717A (zh) * 2001-06-14 2003-01-22 英保达股份有限公司 多通道语音会议装置及方法
CN1394068A (zh) * 2001-06-29 2003-01-29 康鹏 实现电话-电脑-电话的网络电话
US7254111B2 (en) * 2001-10-05 2007-08-07 Samsung Electronics Co., Ltd. Routing coordination protocol for a massively parallel router architecture
WO2003105502A1 (en) * 2002-06-06 2003-12-18 Motorola, Inc., A Corporation Of The State Of Delaware Protocol and structure for mobile nodes in a self-organizing communication network
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
KR100433556B1 (ko) * 2002-08-08 2004-05-31 삼성전자주식회사 애드혹 네트워크상의 링크 상태 동기화 방법, 장치 및데이터구조
US7248579B1 (en) * 2002-10-15 2007-07-24 Cisco Technology, Inc. System and method for providing a link state database (LSDB) snapshot for neighbor synchronization
US7546380B2 (en) * 2002-10-28 2009-06-09 Cisco Technology, Inc. RPF multi-party reliable transport
US8036139B2 (en) * 2002-10-28 2011-10-11 Cisco Technology, Inc. Internal BGP downloader
US7596625B2 (en) * 2003-01-27 2009-09-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods

Also Published As

Publication number Publication date
DE602004004601T2 (de) 2007-11-08
EP1471711A2 (de) 2004-10-27
KR20040091589A (ko) 2004-10-28
US20040215667A1 (en) 2004-10-28
CN101431426A (zh) 2009-05-13
DE602004004601D1 (de) 2007-03-22
EP1471711A3 (de) 2005-07-13
CN101431426B (zh) 2011-01-26
CN1540921A (zh) 2004-10-27
EP1562351A3 (de) 2005-10-05
ATE350856T1 (de) 2007-01-15
EP1562351A2 (de) 2005-08-10
US8103753B2 (en) 2012-01-24
DE602004004060D1 (de) 2007-02-15
EP1471711B1 (de) 2007-02-07
ATE353517T1 (de) 2007-02-15
JP2004328731A (ja) 2004-11-18
EP1562351B1 (de) 2007-01-03
CN100454818C (zh) 2009-01-21
JP4494852B2 (ja) 2010-06-30

Similar Documents

Publication Publication Date Title
DE602004004060T2 (de) Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene
DE60125954T2 (de) Adressierung und routen von datenpaketen in einem computer-netzwerk mit hilfe von inhaltsbeschreibenden labeln
DE60207368T2 (de) Verfahren und Vorrichtung zur automatischen Erkennung von Netzelementen mit Datenübertragungsfähigkeiten
DE60216221T2 (de) Verfahren und Vorrichtung zur automatischen Erkennung von logischen Verbindungen zwischen Netzvorrichtungen
DE69735426T2 (de) Nachrichtenübertragung in netzwerken bestehend aus unternetzwerken mit verschiedenen namensraümen
DE60131596T2 (de) Stapelbare Sucheinrichtung
DE602005003668T2 (de) Verbesserungen in nachrichtenorientierten kommunikationen
DE60132232T2 (de) Servicefähige technologie
DE69833206T2 (de) Netzwerkkontrolle zum verarbeiten von statusproblemen
DE10345051B4 (de) Verfahren zum Aufbau einer Kommunikationsverbindung in einem direkt kommunizierenden Kommunikationsnetzwerk
EP2469885B1 (de) Verfahren zur Integration von Funktionen eines Telekommunikationsnetzes in ein Datennetz
EP1207670A2 (de) Dienst zur automatischen Übermittlung von Paketdaten
EP1482701A1 (de) Verfahren zum paketorientierten Übertragen von Daten in Telekommunikationsnetzen mittels Umsetzung in einem Zwischenknoten von einem verbindungslosen zu einem verbindungsorientierten Übertragungsprotokoll und umgekehrt
WO2016008558A1 (de) Verfahren zum aufbau einer für die übermittlung von medienströmen geeigneten kommunikationsverbindung von einem ersten rtc-client zu einem zweiten rtc-client
EP1266493B1 (de) Verfahren und anordnung zum übertragen eines datenpakets von einer ersten vermittlungseinheit an eine zweite vermittlungseinheit in einem datennetz
DE60127450T2 (de) Verfahren zum einrichten von kommunikationswegen zwischen zugriffspunkten eines vermittlungssystems und das verfahren implementierendes vermittlungssystem
DE102018105495B4 (de) Verfahren und System zum Ermitteln einer Konfiguration einer Schnittstelle
DE60127342T2 (de) Systeme und Verfahren für gleichrangige Verbindungen über eine Netz-Schnittstellen-Karte
DE60104672T2 (de) System zur überwachung von terminals
EP3959850B1 (de) Verfahren zum bereitstellen von verbindungsherstellungsdaten sowie anordnung mit einer mehrzahl von kommunikationsservern und einem vermittler
EP2649751B1 (de) Verfahren und system zur überwachung eines kommunikationssystems
DE60036503T2 (de) Verfahren zur Kommunikation zwischen Fernobjekten
DE112021002787T5 (de) Peer-to-Peer-Kommunikation zwischen Endbenutzer-Geräten
EP1052802B1 (de) Verfahren zur Kopplung von NetBIOS Netzwerken und Rechnern
EP1257145A1 (de) Verfahren und Vorrichtungen zur Datenübertragung mit zeitlich veränderlicher Datenrate

Legal Events

Date Code Title Description
8364 No opposition during term of opposition