DE602004006798T2 - Nachrichtenübertragung über transiente Verbindungen in einer peer-to-peer Netzwerkumgebung - Google Patents

Nachrichtenübertragung über transiente Verbindungen in einer peer-to-peer Netzwerkumgebung Download PDF

Info

Publication number
DE602004006798T2
DE602004006798T2 DE602004006798T DE602004006798T DE602004006798T2 DE 602004006798 T2 DE602004006798 T2 DE 602004006798T2 DE 602004006798 T DE602004006798 T DE 602004006798T DE 602004006798 T DE602004006798 T DE 602004006798T DE 602004006798 T2 DE602004006798 T2 DE 602004006798T2
Authority
DE
Germany
Prior art keywords
session
message
user
data
participant
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
DE602004006798T
Other languages
English (en)
Other versions
DE602004006798D1 (de
Inventor
Philip Ti-Fei Su
Robert J. Jarrett
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 DE602004006798D1 publication Critical patent/DE602004006798D1/de
Application granted granted Critical
Publication of DE602004006798T2 publication Critical patent/DE602004006798T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C1/00Domestic plumbing installations for fresh water or waste water; Sinks
    • E03C1/12Plumbing installations for waste water; Basins or fountains connected thereto; Sinks
    • E03C1/122Pipe-line systems for waste water in building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • 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
    • 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/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/40Connection management for selective distribution or broadcast
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C2201/00Details, devices or methods not otherwise provided for
    • E03C2201/60Reducing noise in plumbing systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Structural Engineering (AREA)
  • Hydrology & Water Resources (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Bereich der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf Systeme, Verfahren und Datenstrukturen zur Übertragung von Nachrichten über ein Rechner-Rechner-Netzwerk (engl. peer to peer network). Derartige Systeme, Verfahren und Datenstrukturen können z.B. verwendet werden, um Nachrichten über transiente Verbindungen an Teilnehmer einer gemeinschaftlichen Sitzung, wie z.B. einer „elektronischen Weißwandtafel"-Sitzung oder dergleichen, zu übertragen.
  • Hintergrund
  • Verschiedene kollaborative Anwendungen sind bekannt, die es den Benutzern an verschiedenen Arbeitsplatzrechnern erlauben, gleichzeitig elektronische Daten und Informationen miteinander zu teilen und gleichzeitig die gleichen Informationen zu sehen, Änderungen an der Information in Echtzeit vorzunehmen und die geänderten Informationen zu sehen (ähnlich wie in einer „elektronischen Weißwandtafel"-Sitzung, einer „NetMeeting"-Sitzung („NetMeeting" ist ein eingetragenes Warenzeichen der Microsoft Corporation, Redmond, Washington) oder einer „WebEx-Sitzung" („WebEx" ist ein eingetragenes Warenzeichen der WebEx Communication Corporated, San Jose, Californien). Derartige Anwendungen verwenden gewöhnlicher Weise einen gemeinsamen Server und alle Teilnehmer verbinden sich mit der Anwendung und der elektronischen Weißwandtafelsitzung über den gemeinsamen Server. So wie die verschiedenen Sitzungsteilnehmer Datennachrichten senden, die Daten hinzufügen, löschen und/oder auf andere Weise ändern, verarbeitet der Server die Nachrichten und stellt das Ergebnis den Teilnehmern zur Verfügung.
  • In vielen Fällen werden zwei oder mehr Sitzungsteilnehmer eingehende und möglicherweise zu im System bestehenden Daten widersprüchliche Nachrichten an die elektronische Weißwandtafel senden. In einem derartigen Fall entscheidet der Server, welche der eingehenden Datennachrichten verarbeitet werden sowie über die Verarbeitungsreihenfolge der eingehenden Signale und löst sich widersprechende und/oder inkonsistente eingehende Nachrichtendateninstruktionen gemäß eines vorbestimmen Protokolls (typischerweise nach der Eingangszeit) auf.
  • Alternativ wird in manchen Fällen anstelle der Verbindung zu einem gemeinsamen Server der Computer eines Sitzungsteilnehmers zum de facto „Server" erklärt. In diesem Fall löst der Computer dieses Teilnehmers widersprüchliche oder eingehende Nachrichtendaten (wiederum typischerweise basierend auf der Eingangszeit der Datennachrichten an diesem Computer) auf.
  • Während derartige verfügbare elektronische Weißwandtafelsitzungen, die einen tatsächlichen de facto-Server verwenden, nützlich sind, besitzen sie doch bestimmte Nachteile, die ihre Nützlichkeit begrenzen. So kann z.B. das Einrichten einer elektronischen Weißwandtafelsitzung und die Benachrichtigung potentieller Teilnehmer über die zur Teilnahme an der Sitzung erforderliche Information eine zeitaufwendige und komplizierte Aktion sein, insbesondere wenn zahlreiche Teilnehmer eingebunden werden müssen. Die Benutzer müssen sich typischerweise in der Sitzung unter Verwendung eines zuvor erhaltenen Passworts und anderer Verbindungsinformationen anmelden. Es kann zumindest in manchen Fällen für die Seite, die die elektronische Weißwandtafelsitzung einrichtet, schwierig sein, zu entscheiden, wer die Anmeldeinformation empfangen und darauf Zugriff haben soll. Während diese Sicherheit in manchen Situationen für sicherheitsrelevante Kommunikationen nötig sein kann, macht es diese Anforderung der Vorausplanung unbequem und manchmal unmöglich, elektronische Weißwandtafelkommunikationen zu verwenden, insbesondere wenn eine Sitzung aus dem Stegreif erforderlich ist. Wenn außerdem eine potentielle Teilnehmerin die erforderliche Anmeldeinformation nicht erhält oder nicht finden kann, mag sie nicht in der Lage sein, an der Sitzung teilzunehmen oder nur wesentlich verspätet teilnehmen. Zusätzlich kennen möglicherweise viele Benutzer nicht den Server, der für die verschiedenen Arten von Sitzungen zu verwenden ist, was ihre Möglichkeiten, an der Sitzung teilzunehmen, behindert.
  • Viele Kommunikationen erfordern nicht diesen Grad an Sicherheit. Zum Beispiel Benutzer einer einzigen Firma, die in den Räumen der Firma über ein lokales Netz oder ein Intranet kommunizieren, würden diese zusätzlichen Anmelde- und Sicherheitsfunktionen einer typischen elektronischen Weißwandtafelkommunikation möglicherweise nicht benötigen.
  • Außerdem kann die Verwendung eines einzigen Servers (eines tatsächlichen oder de facto-Servers) Probleme mit der Datenübertragung verursachen, wenn die Übertragung aus irgendeinem Grund unterbrochen wird. Übertragungsunterbrechungen treten häufig auf, insbesondere für Benutzer, die mit dem System über vorübergehende Verbindungen, wie z.B. drahtlose Verbindungen, verbunden sind. Die Unterbrechung einer drahtlosen Verbindung (oder einer anderen Verbindung) kann dazu führen, dass sich der Benutzer in der Sitzung erneut anmelden muss, wodurch Verzögerungen und Kommunikationsschwierigkeiten verursacht werden. Wenn außerdem der Benutzer des Computers, der als der de facto-Server dient, die Sitzung aus irgendeinem Grund verlässt, kann dies zu einer Unterbrechung und/oder einem Sitzungsfehler für die anderen Teilnehmer führen.
  • Demzufolge besteht im Stand der Technik ein Bedarf für eine Anwendung, die es einer Mehrzahl von Benutzern erlaubt, zuverlässig miteinander unter Verwendung von Datennachrichten in gemeinschaftlicher Weise (z.B. in einer elektronischen Weißwandtafelsitzung) zu kommunizieren, die eine oder mehrere der verschiedenen oben beschriebenen Nachteile vermeidet. Ein derartiges System sollte es allen Teilnehmern ermöglichen, die Sitzung nach belieben zu betreten und zu verlassen, wobei gleichzeitig eine zuverlässige Übertragung aller Nachrichtendaten an alle Teilnehmer in der Sitzung inklusive der Teilnehmer, die zu spät kommen und/oder nachdem andere Teilnehmer die Sitzung verlassen haben, ermöglicht wird.
  • Außerdem beschreibt US-B1-6212548 eine Technik zur Aufrechterhaltung mehrerer gleichzeitiger Echtzeit-Chat-Sessions mit einer Mehrzahl von anderen Teilnehmern. Die Teilnehmer senden Nachrichten in dem Kontext einer bestimmten Unterhaltung. Die Unterhaltungsdaten enthalten Ereignisse, Nachrichten und Historie. In jeder Nachricht enthalten sind (i) der Ursprungsbenutzer, (ii) alle Empfänger der Nachricht und (iii) ein Unterhaltungsindex. Eine von dem Benutzer empfangene Nachricht wird durch alle Teilnehmer im Chatroom angezeigt.
  • Zusätzlich offenbart (U2002/152299 A1) eine Technik zur Einrichtung zuverlässiger Verbindungen zwischen gleichartigen Rechnern und einer Rechner-Rechner-Netzwerkumgebung. Es wird skizziert, dass ein zuverlässiger Kommunikationskanal eine erneute Übertragung von Nachrichten, die nicht empfangen wurden, verwenden kann, um eine zuverlässige Zustellung von Nachrichten zwischen gleichartigen Rechnern zur Verfügung zu stellen. Jede Nachricht kann eine Sequenznummer enthalten.
  • Außerdem lehrt US-A-5940082 eine Technik, in der Mitarbeiter zu einem Echtzeitentwurf einer verteilten Zeichnung beitragen können, die auf jeder virtuellen Weißwandtafel ei nes jeden Mitarbeiters angezeigt wird. Beiträge zu der verteilten Zeichnung sowie Kommunikationen zwischen den Mitarbeitern werden an den Servercomputer übertragen. Der Servercomputer überträgt die Kommunikation an jeden der Mitarbeiter, der an den Entwurfsaktivitäten beteiligt ist. Zusätzlich stellt der Artikel „Distributed virtual reality or everyone – a framework for networked VR on the Internet", veröffentlicht von Broll, Wolfgang, VIRTUAL REALITY ANNUAL INERNATIONAL SYMPOSIUM, 1997, IEEE 1997, 1. bis 5. März 1997, Seiten 121 bis 128 eine Netzwerkarchitektur zur Unterstützung virtueller Multibenutzerumgebungen im Internet vor.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist deshalb ein Ziel der Erfindung, ein verbessertes Verfahren und Unterstützung für Kommunikationsnachrichten eines Rechner-Rechner-Netzwerks zur Verfügung zu stellen.
  • Dieses Ziel wird durch die Erfindung, wie sie in den unabhängigen Ansprüchen beansprucht wird, gelöst.
  • Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen definiert.
  • Aspekte der vorliegenden Erfindung beziehen sich auf Systeme, Verfahren und Datenstrukturen, die nützlich sind zur Übertragung von Nachrichten über ein Rechner-Rechner-Netzwerk, wahlweise über transiente Verbindungen an Teilnehmer in einer gemeinschaftlichen Sitzung (z.B. einer „elektronischen Weißwandtafel"-Sitzung). In einem Aspekt bezieht sich die Erfindung auf Systeme und Verfahren zur Einrichtung einer Sitzung zum Datentransfer, die es den Teilnehmern ermöglicht, einfach einer Sitzung beizutreten und sie zu verlassen; ohne Daten zu verlieren oder Verbindungen zwischen den Teilnehmern zu verlieren, selbst wenn Teilnehmer die Sitzung verlassen oder die Verbindung zur Sitzung verlieren, z.B. aufgrund der transienten Natur ihrer Verbindung. In einem anderen Aspekt bezieht sich die Erfindung auf Systeme und Verfahren, die es den Teilnehmern ermöglichen, einen einfachen Zugriff auf zuvor übertragene Daten in einer laufenden Sitzung zu gewinnen. Verschiedene Datenstrukturen sind auch nützlich, in verschiedenen Systemen und Verfahren zur Übertragung von Nachrichten. Derartige Datenstrukturen können verwendet werden, um eine Nachrichtennutzlast an Teilnehmer in einer Sitzung zu übertragen. Andere nützliche Datenstrukturen können Daten zur Übertragung der Identifizierungsdaten eines Benutzers über das gesamte Netzwerk enthalten, wahlweise, wenn der Benutzer an einer Datenübertragungssitzung mit mehreren Teilnehmern beteiligt ist. Durch die Übertragung der Nachrichtennutzlast und der Benutzeridentifikationsdaten können andere Benutzer des Netzwerks leicht feststellen, ob sie an einer laufenden Sitzung teilnehmen sollten und der Sitzung beitreten.
  • Kurze Beschreibung der Zeichnungen
  • Die obigen und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung zusammen mit den angefügten Zeichnungen leicht ersichtlich und vollständig verständlich.
  • 1 zeigt ein schematisches Diagramm einer digitalen Allzweck-Computerumgebung, in der bestimmte Aspekte der vorliegenden Erfindung implementiert werden können;
  • 2 zeigt eine stiftbasierte Personal Computer-Umgebung (PC), in der bestimmte Aspekte der vorliegenden Erfindung implementiert werden können;
  • 3a und 3b zeigen allgemein ein Rechner-Rechner-Verbindungsnetzwerk, das in den Systemen und Verfahren einiger Beispiele dieser Erfindung verwendet werden kann;
  • 4 zeigt allgemein Daten und Informationen, die von den verschiedenen individuellen Teilnehmern unter Verwendung von Systemen und Verfahren gemäß einiger Beispiele dieser Erfindung gepflegt werden können;
  • 5A bis 6E zeigen Beispiele von Datennachrichten, die mittels Systemen und Verfahren dieser Erfindung übertragen werden können und die nützlich sind zur Erläuterung verschiedener Merkmale einiger Beispiele dieser Erfindung;
  • 7 ist eine beispielhafte Datenstruktur für eine ausgehende Übertragungsdatennachricht, die in einigen Beispielen der Systeme und Verfahren gemäß der vorliegenden Erfindung nützlich ist;
  • 8 ist ein Flussdiagramm, das Beispiele bestimmter Verfahren gemäß der Erfindung zeigt;
  • 9 ist eine beispielhafte Datenstruktur für eine ausgehende Benutzeridentifizierungsnachricht, die in einigen Beispielen der Systeme und Verfahren gemäß der vorliegenden Erfindung nützlich ist;
  • 10 ist ein Flussdiagramm, das Beispiele von Verfahren der Hinzufügung neuer Benutzer als Teilnehmer zu einer Sitzung zeigt; und
  • 11 zeigt ein Flussdiagramm, das Beispiele anderer Verfahren zur Hinzufügung neuer Benutzer als Teilnehmer einer Sitzung zeigt.
  • Detaillierte Beschreibung
  • Wie oben beschrieben, beziehen sich Aspekte der vorliegenden Erfindung auf Systeme, Verfahren und Datenstrukturen zur Übertragung von Nachrichten über ein Rechner-Rechner-Netzwerk, einschließlich der Übertragung zwischen Arbeitsplatzrechnern, die miteinander über transiente Verbindungen, wie z.B. einem Drahtlosnetzwerk, verbunden sind. Die folgende Beschreibung ist in Teilabschnitte aufgeteilt, um dem Leser entgegenzukommen. Die Teilabschnitte umfassen: Begriffe; allgemeine Beschreibung verschiedener Aspekte der Erfindung; beispielhafte Hardware; beispielhafte Systeme, Verfahren und Datenstrukturen gemäß der Erfindung; und Schlussbemerkung.
  • 1. Begriffe
  • Die folgenden Begriffe werden in dieser Beschreibung verwendet:
    Die Begriffe „Nachricht" oder „Nachrichtendaten" oder „Datennachricht" werden in dieser Beschreibung generell austauschbar verwendet. Mit diesen Begriffen sind alle Daten gemeint, die von einem Rechner zum Empfang durch einen anderen Rechner übertragen werden. Der Begriff „Nachrichtennutzlast" bezieht sich allgemein auf den Teil einer Datennachricht, die die an andere Benutzer in der Sitzung zu übertragende Information enthält.
  • „Benutzer" bezeichnet einen Teilnehmer, der mit einem Kommunikationsnetzwerk in irgendeiner Weise verbunden ist, wie z.B. durch ein herkömmliches Subnetz, Intranet, oder eine Internetverbindung. Die Verbindung kann jede herkömmliche Verbindung sein, wie z.B. eine Drahtverbindung, eine drahtlose Verbindung oder jede im Stand der Technik bekannte herkömmliche Verbindung.
  • „Sitzung" bezeichnet ein Treffen von mehreren Netzwerkbenutzern, die miteinander über ein Kommunikationsnetzwerk kommunizieren. Benutzer, die an der Sitzung beteiligt sind, können sich in einem gemeinsamen Subnetz, in verschiedenen Subnetzen, oder beidem befinden. Die Kommunikation kann visuell, auditiv, oder eine Kombination aus beiden sein.
  • „Teilnehmer" bezeichnet einen Benutzer, der an einer Sitzung beteiligt ist.
  • „Rechner" bezeichnet jedes Gerät, das zur Kommunikation über ein Kommunikationsnetzwerk verwendet wird. Ein „Rechner" umfasst, aber ist nicht notwendiger Weise beschränkt auf: Computerterminals oder Workstations, Arbeitsplatz PCs, stiftbasierte PCs, Notebook und/oder Laptopcomputer, Palmtops, PDAs, Telefone und dergleichen.
  • „Computerlesbares Medium" bezeichnet jedes verfügbare Medium, auf das ein Benutzer auf einem Computersystem zugreifen kann. Als Beispiel, aber nicht zur Abgrenzung, kann „computerlesbares Medium" Computerspeichermedien und Kommunikationsmedien umfassen. „Computerspeichermedium" umfasst flüchtige und nicht flüchtige, herausnehmbare und nicht herausnehmbare Medien, die gemäß irgendeiner Technologie oder Methode zur Speicherung von Information, wie z.B. computerlesbarer Anweisungen, Datenstrukturen, Programmmodulen oder anderer Daten, implementiert sind. „Computerspeichermedien" umfassen, sind aber nicht beschränkt auf RAM, ROM, EEPROM, Flashspeicher und andere Speichertechnologien; CD-ROM, DVD (digital versatile disks) oder andere optische Speichergeräte; Magnetkassetten, Magnetbänder, magnetische Plattenspeicher oder andere magnetische Speichergeräte; oder jedes andere Medium, das zum Speichern der gewünschten Information verwendet werden kann und auf das von einem Computer zugegriffen werden kann. „Kommunikationsmedien" umfassen typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie z.B. einer Trägerwelle oder einem anderen Transportmechanismus, und enthalten irgendein Informationsliefermedium. Der Begriff „moduliertes Datensignal" bezeichnet ein Signal, bei dem eine oder mehrere seiner Eigenschaften derart eingestellt oder geändert werden, das Information in dem Signal codiert wird. Als Beispiel, aber nicht zur Abgrenzung, enthalten Kommunikationsmedien drahtgebundene Medien, wie z.B. ein Kabelnetzwerk oder eine direkt verdrahtete Verbindung, und drahtlose Medien, wie z.B. akustische, funkbasierte, infrarote und andere drahtlose Medien. Beliebige Kombinationen der obigen Medien sollten ebenfalls unter dem Begriff „computerlesbare Medien" fallen.
  • II. Allgemeine Beschreibung verschiedener Aspekte der Erfindung
  • Aspekte der vorliegenden Erfindung beziehen sich auf Systeme, Verfahren und Datenstrukturen, die nützlich sind zur Übertragung von Nachrichten über ein Rechner-Rechner-Netzwerk. Derartige Systeme, Verfahren und Datenstrukturen können verwendet werden, um z.B. Nachrichten über transiente Verbindungen an Teilnehmer in einer gemeinschaftlichen Sitzung in direkter Weise zu übertragen.
  • Ein spezifischerer Aspekt der Erfindung bezieht sich auf Verfahren zur Datenübertragung in einem Netzwerk. Ein Beispiel dieses Aspekts der Erfindung enthält: (a) Einrichten einer Sitzung zur Datenübertragung, wobei die Sitzung mehrere Teilnehmer enthält; (b) Übertragen einer Nachricht von einem Teilnehmer der Sitzung, wobei die Nachricht zumindest umfasst: eine Übertragungsteilnehmerkennung, eine Nachrichtenkennung, Sitzungsinformation und eine Nachrichtennutzlast; (c) Feststellen, ob ein Benutzer, der die übertragene Nachricht empfängt, ein Teilnehmer der Sitzung ist; und (d) Verarbeiten der Nachricht für den Benutzer, wenn der Benutzer ein Teilnehmer der Sitzung ist. Das Feststellen, ob der Benutzer ein Teilnehmer der Sitzung ist, kann zumindest in einigen Beispielen der Erfindung umfassen: (a) Feststellen, ob der Benutzer in der Sitzung aktiv ist, oder (b) feststellen, ob der Benutzer in einer Sitzungsteilnehmerliste enthalten ist. Teilnehmer können beliebig zu der Sitzung hinzugefügt werden und/oder sie verlassen, ohne die Datenübertragung an die anderen Teilnehmer nachteilig zu beeinflussen.
  • In einigen beispielhaften Verfahren gemäß der Erfindung umfasst das Verfahren vor der Verarbeitung einer neuerlich erhaltenen Nachricht für einen Benutzer oder einen Teilnehmer außerdem das Feststellen, ob der Benutzer oder Teilnehmer alle vorherigen Nachrichten in der Sitzung erhalten hat. Wenn nicht empfangene Nachrichten entdeckt werden, können diese Nachrichten für den Benutzer oder Teilnehmer beschafft werden. Die nicht empfangenen Nachrichten können auf irgendeine geeignete Weise beschafft werden. Sie können z.B. über eine Übertragung von einem anderen Teilnehmer der Sitzung beschafft werden, wahlweise nachdem der Benutzer oder Teilnehmer, der die Nachricht oder die Nachrichten benötigt, eine Anforderung für die fehlenden Nachrichten überträgt. In einigen Beispielen dieses Aspekts der Erfindung werden die Sitzungsteilnehmer zufällig entscheiden, ob eine oder mehrere der nicht empfangenen vorherigen Nachrichten übertragen werden sollen, wenn eine Anfrage nach fehlenden Nachrichten empfangen wird. Nachrichtenanforderungen und Übertragungen fehlender Nachrichten können so lange wiederholt werden, bis ein Benutzer alle Nachrichten in der Nachrichtenhistorie empfangen hat.
  • Die Feststellung, ob ein Benutzer ein Teilnehmer in einer Sitzung ist, kann auch in irgendeiner geeigneten Weise erreicht werden, ohne von der Erfindung abzuweichen.
  • So kann z.B. die Kennung des Benutzers (z.B. eine ID-Nummer) mit einer Hauptliste aller Benutzer, die autorisiert sind, an einer Sitzung teilzunehmen, abgeglichen werden. Als anderes Beispiel kann/können einer oder mehrere der bestehenden Teilnehmer der Sitzung einen Hinweis empfangen, dass ein neuer Benutzer da ist oder auf dem Netzwerk verfügbar ist, und der Benutzer kann der Sitzung hinzugefügt werden, wahlweise nachdem einer oder mehrere der Teilnehmer in der Sitzung gefragt werden, ob der neue Benutzer der Sitzung hinzugefügt werden soll. Als weiteres Beispiel kann nach dem Empfang des Hinweises, dass ein neuer Benutzer da ist oder auf dem Netzwerk verfügbar ist, das Verfahren außerdem ein Einladen des neuen Benutzers, der Sitzung beizutreten, enthalten (wahlweise nachdem zumindest ein Teilnehmer in der Sitzung gefragt wurde, ob die Einladung herausgegeben werden soll). Der Benutzer wird nur dann hinzugefügt, wenn die Einladung angenommen wurde.
  • Ein anderer Aspekt der vorliegenden Erfindung bezieht sich auf Verfahren um Zugriff auf eine laufende Sitzung zu erhalten. Einige Beispielverfahren dieses Aspekts der Erfindung enthalten: (a) Zugreifen auf ein Netzwerk, auf dem eine Sitzung stattfindet, wobei auf das Netzwerk durch einen Benutzer zugegriffen wird, der in der Sitzung nicht aktiv ist, und wobei die Sitzung mehrere Teilnehmer enthält, die in der Lage sind, Nachrichtendaten zu senden und zu empfangen; (b) Feststellen, ob der Benutzer als Teilnehmer der Sitzung hinzugefügt werden soll; und (c) Übertragen aller zuvor während der Sitzung übertragenen Nachrichten an den Benutzer, wenn der Benutzer als Teilnehmer zur Sit zung hinzugefügt wurde. Das Feststellen, ob der Benutzer zur Sitzung hinzugefügt werden soll, kann in jeder geeigneten Weise erfolgen, inklusive der verschiedenen oben beschriebenen Arten.
  • Zusätzliche Aspekte dieser Erfindung beziehen sich auf Verfahren zur Übertragung von Nachrichten zwischen mehreren Teilnehmern einer Sitzung. Einige Beispiele dieser Aspekte der Erfindung enthalten: (a) Verbinden von zumindest einer ersten Teilnehmerworkstation und einer zweiten Teilnehmerworkstation in direkter Weise, wobei jede Teilnehmerworkstation in der Lage ist, Nachrichtendaten an andere Teilnehmerworkstations in der Sitzung in direkter Weise zu übertragen und Übertragungsnachrichten von anderen Teilnehmerworkstations in der Sitzung in direkter Weise zu empfangen; (b) Übertragen einer ersten Nachricht durch die erste Teilnehmerworkstation; (c) Empfangen der ersten Nachricht von zumindest der zweiten Teilnehmerworkstation; und (d) Übertragen der ersten Nachricht von der zweiten Teilnehmerworkstation an zumindest eine andere Teilnehmerworkstation in der Sitzung, die die erste Nachricht nicht empfangen hat, als sie von der ersten Teilnehmerworkstation übertragen wurde. Zusätzlich kann zumindest in einigen Beispielen dieses Aspekts der Erfindung eine neue Teilnehmerworkstation der Sitzung hinzugefügt werden und diese neuerdings hinzugefügten Workstations sind in der Lage, die früheren Nachrichten in der Sitzung zu erhalten, inklusive der Nachrichten von Workstations, die die Sitzung verlassen haben, und zwar von Teilnehmerworkstations, die in der Sitzung verblieben sind.
  • Ein weiterer Aspekt dieser Erfindung bezieht sich auf Systeme zur Verarbeitung von Daten, die über ein Netzwerk empfangen wurden, und zwar während einer Sitzung, die eine Datenübertragung zwischen mehreren Teilnehmern in dem Netzwerk beinhaltet. Ein derartiges System kann zumindest in einigen Beispielen der Erfindung umfassen: (a) einen Empfänger, der eingerichtet ist, um eine Übertragungsnachricht von einem Teilnehmer der Sitzung zu empfangen, wobei die Nachricht zumindest enthält: eine Übertragungsteilnehmerkennung, eine Nachrichtenkennung, Sitzungsinformation und eine Nachrichtennutzlast; und (b) einen Prozessor, der programmiert ist und angepasst ist, um zu bestimmen, ob ein Netzwerkbenutzer, der die Nachricht empfängt, ein Teilnehmer der Sitzung ist, und die Nachricht verarbeitet, wenn der Benutzer ein Teilnehmer der Sitzung ist. Der Prozessor kann feststellen, ob der Benutzer ein Teilnehmer der Sitzung ist, indem er zumindest in einigen Beispielen (a) feststellt, ob der Benutzer ein aktiver Teilnehmer in der Sitzung ist, oder (b) feststellt, ob der Benutzer in einer Teilnehmerliste der Sitzung enthalten ist. Vor der Verarbeitung der Nachricht kann der Prozessor außer dem feststellen, ob der Benutzer alle vorherigen Nachrichten in der Sitzung empfangen hat, und wenn eine Nachricht nicht empfangen wurde, kann ein Übertragungssystem aktiviert werden, um eine Anforderung für die zuvor nicht empfangene Nachricht in der Sitzung zu übertragen.
  • Ein weiterer Aspekt dieser Erfindung bezieht sich auf Arbeitsplatzgeräte, die nützlich sind zur Durchführung verschiedener Verfahren, inklusive der oben beschriebenen Verfahren gemäß der Erfindung. Einige beispielhafte Arbeitsplatzgeräte gemäß dieses Aspekts der Erfindung können enthalten: (a) ein Verbindungssystem, das eingerichtet ist, um auf ein Netzwerk zuzugreifen, auf dem eine Sitzung stattfindet, wobei die Sitzung mehrere Teilnehmer beinhaltet, die in der Lage sind, Nachrichtendaten zu senden und zu empfangen; (b) einen Prozessor, der programmiert ist und angepasst ist, um zu bestimmen, ob ein Benutzer des Arbeitsplatzgeräts ein Teilnehmer der Sitzung ist; und (c) ein Nachrichtenempfangssystem, das eingerichtet ist Nachrichtendaten zu empfangen, die während der Sitzung übertragen wurden, wenn festgestellt wurde, dass der Benutzer ein Teilnehmer der Sitzung ist.
  • Andere Beispiele dieser Erfindung beziehen sich auf Systeme zur Übertragung von Nachrichten zwischen mehreren Teilnehmern in einer Sitzung. Derartige Systeme können zumindest in einigen Beispielen dieser Erfindung mehrere Teilnehmerworkstations enthalten, die in einem Rechner-Rechner-Netzwerk verbunden sind, wobei zumindest einige der Teilnehmerworkstations in der Lage sind, Nachrichtendaten an andere Teilnehmerworkstations in der Sitzung über das Netzwerk zu übertragen und Nachrichtendaten von anderen Teilnehmerworkstations in der Sitzung über das Netzwerk zu empfangen. In den Systemen gemäß einiger Beispiele können die einzelnen Teilnehmerworkstations beliebig die Sitzung verlassen und die Nachrichtendaten, die durch die Teilnehmerworkstations, die die Sitzung verlassen, übertragen wurden, bevor sie die Sitzung verfassen haben, können durch andere Teilnehmerworkstations falls nötig von einer verbleibenden Teilnehmerworkstation beschafft werden, die diese Nachrichtendaten zuvor empfangen hat. Zusätzlich zum Verlassen einer bestehenden Sitzung können neue Teilnehmerworkstations der Sitzung beliebig beitreten und alle vorherigen Nachrichtendaten (inklusive Nachrichtendaten von Workstations, die seitdem die Sitzung verlassen haben) von einer oder mehreren der in der Sitzung verbleibenden Teilnehmerworkstations erhalten.
  • In einem anderen beispielhaften Aspekt der Erfindung kann jeder Rechner auf dem Subnetz und/oder jeder Rechner, der eingehende Nachrichten von einer Sitzung empfängt, selbst die, die nicht aktiv an der Sitzung teilnehmen, die eingehenden Nachrichtendaten empfangen, aufzeichnen und verwalten. Deshalb können selbst Maschinen, die nicht an einer speziellen Sitzung beteiligt sind, Daten an neu hinzukommende Teilnehmer in der Sitzung erneut übertragen und/oder auf Anforderungen für fehlende Nachrichten in der Sitzung antworten, zumindest in einigen Beispielen dieser Erfindung.
  • Aspekte dieser Erfindung beziehen sich auch auf computerlesbare Medien, die Datenstrukturen zur Übertragung von Nachrichtendaten an Teilnehmer in einer Sitzung gespeichert haben. In einigen Beispielen können diese Datenstrukturen enthalten: (a) ein erstes Datenfeld, das Daten enthält, die eine Nachrichten ID repräsentieren; (b) ein zweites Datenfeld, das Daten enthält, die eine Sitzungsinformation repräsentieren; und (c) ein drittes Datenfeld, das Daten enthält, die eine Nachrichtennutzlast repräsentieren. Die Daten, die die Sitzungsinformation repräsentieren, können zumindest in einigen Beispielen der Erfindung Daten enthalten, die zumindest ein Element aus der folgenden Gruppe repräsentieren: eine Sitzungs-ID; eine Sitzungsteilnehmerliste; und eine Sitzungsnachrichtenhistorie. In weiteren Beispielen kann die Datenstruktur außerdem ein viertes Datenfeld enthalten, das Daten enthält, die eine Kennung eines Teilnehmers repräsentieren, der die Nachrichtendaten überträgt.
  • Eine weitere beispielhafte Datenstruktur, die zumindest in einigen Systemen und Verfahren gemäß der Erfindung nützlich ist, kann eine Datenstruktur enthalten zur Übertragung von Kennungsdaten eines Benutzers an ein Netzwerk, wahlweise wenn der Benutzer an einer Datenübertragungssitzung beteiligt ist, die mehrere Teilnehmer enthält. In zumindest einigen Beispielen kann diese Datenstruktur enthalten: (a) ein erstes Datenfeld, das Daten enthält, die eine Benutzeridentität repräsentieren; (b) ein zweites Datenfeld, das Daten enthält, die Informationen zur Identifizierung der Datenübertragungssitzung repräsentieren; und (c) ein drittes Datenfeld, das Daten enthält, die die Historie eines Benutzers in der Sitzung repräsentieren. Die Daten, die die Identifikationsinformationen bezüglich der Datenübertragungssitzung repräsentieren, können z.B. Daten enthalten, die zumindest ein Element repräsentieren, das aus der folgenden Gruppe ausgewählt wurde: einer Sitzungs-ID und einer Sitzungsteilnehmerliste. Die Daten, die die Historie des Benutzers repräsentieren können z.B. Daten enthalten, die zumindest einem Element aus der folgenden Gruppe entsprechen: einer Sitzungs-ID; einer Nachrichten-ID-Liste, die zumindest eine Nachricht identifizieren, die durch die Workstation des Benutzers in der Sitzung verarbeitet wurde; und einer Nachrichten-ID-Liste, die zumindest eine zuletzt von dem Benutzer in der Sitzung übertragene Nachricht identifizieren.
  • Die verschiedenen Systeme, Verfahren und Datenstrukturen gemäß der Erfindung können verwendet werden, um irgendwelche Nachrichtendaten zu übertragen, ohne von der Erfindung abzuweichen. In einigen Beispielen können die Nachrichtendaten elektronische Tintendaten enthalten, Textdaten, Grafiken, etc.. Als weiteres Beispiel kann die Sitzung von der Form einer „virtuellen Weißwandtafel"-Sitzung sein, in der mehrere Sitzungsteilnehmer Nachrichtendaten hinzufügen, löschen, oder abändern (z.B. kann der Computerbildschirm eines jeden einzelnen Teilnehmers eine Darstellung der Nachrichtendaten anzeigen und die Benutzer können Daten hinzufügen, Daten löschen oder abändern und die Hinzufügungen, Löschungen und/oder Abänderungen, die durch einen Teilnehmer vorgenommen wurden, erscheinen auch auf den Bildschirmen der anderen Teilnehmer. Obgleich jedes geeignete Protokoll zum Senden der Nachrichtendaten an die verschiedenen Sitzungsteilnehmer verwendet werden kann, wird in einigen Beispielen der Erfindung die Nachricht unter Verwendung des user datagram protocols („UDP") und/oder des transfer control protocols („TCP") übertragen. Im folgenden werden die Systeme, Verfahren und computerlesbaren Medien gemäß der vorliegenden Erfindung im Detail beschrieben.
  • III. Beispielhafte Hardware
  • 1 zeigt ein schematisches Diagramm einer digitalen Allzweckcomputerumgebung, die verwendet werden kann, um verschiedene Aspekte der vorliegenden Erfindung zu implementieren. In 1 enthält ein Computer 100 eine Verarbeitungseinheit 110, einen Systemspeicher 120 und einen Systembus 130, der verschiedene Systemkomponenten inklusive des Systemspeichers 120 mit der Verarbeitungseinheit 110 verbindet. Der Systembus 130 kann einer von verschiedenen Typen von Busstrukturen sein, inklusive einem Speicherbus oder Speichercontroller, einem Peripheriegerätebus, und einem lokalen Bus, der eine der zahlreichen Busarchitekturen verwendet. Der Systemspeicher 120 kann einen Nur-Lesespeicher (ROM) 140 und ein Speicher mit wahlfreiem Zugriff (RAM) 150 enthalten.
  • Ein grundlegendes Eingabe/Ausgabesystem 160 (BIOS), das die grundlegenden Routinen enthält, die die Übertragung von Informationen zwischen den Elementen des Com puters 100 unterstützen, wie z.B. während des Hochfahrens, ist im ROM 140 gespeichert. Der Computer 100 kann auch ein Festplattenlaufwerk 170 enthalten, um auf eine Festplatte (nicht gezeigt) lesend und schreibend zuzugreifen, ein magnetisches Plattenlaufwerk 180, um auf herausnehmbare magnetische Scheiben 190 lesend und schreibend zuzugreifen, und ein optisches Plattenlaufwerk 191, um auf eine herausnehmbare optische Platte 192, wie z.B. eine CD ROM oder andere optische Medien lesend und schreibend zuzugreifen. Das Festplattenlaufwerk 170, das magnetische Plattenlaufwerk 180 und das optische Laufwerk 191 sind mit dem Systembus 130 jeweils über eine Festplattenlaufwerkschnittstelle 192, eine Schnittstelle für magnetische Plattenlaufwerke 193 und eine Schnittstelle für optische Plattenlaufwerke 194 verbunden. Diese Laufwerke und ihre zugeordneten computerlesbaren Medien stellen einen nicht flüchtigen Speicher für computerlesbare Anweisungen, Datenstrukturen, Programmmodule und andere Daten für den Personal Computer 100 zur Verfügung. Der Fachmann wird erkennen, dass andere Arten von computerlesbaren Medien, die Daten speichern können, auf die durch einen Computer zugegriffen werden kann, wie z.B. magnetische Kassetten, Flashspeicherkarten, digitale Videodiscs, Bernoulli Cassetten, wahlfreie Zugriffsspeicher (RAMs), Nur-Lesespeicher (ROMs) und dergleichen ebenso in der beispielhaften Betriebsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf dem Festplattenlaufwerk 170, der magnetischen Platte 190, der optischen Platte 192, dem ROM 140, oder RAM 150 gespeichert werden, inklusive eines Betriebssystems 195, einem oder mehreren Anwendungsprogrammen 196, anderen Programmmodulen 197 und Programmdaten 198. Ein Benutzer kann Befehle und Informationen über Eingabegeräte wie z.B. eine Tastatur 101 und ein Zeigegerät 102 (wie z.B. eine Maus) in den Computer 100 eingeben. Andere Eingabegeräte (nicht gezeigt), können ein Mikrofon, Joystick, Gamepad, Satellitenschüssel, Scanner, und dergleichen umfassen. Diese und andere Eingabegeräte sind häufig mit der Verarbeitungseinheit 110 über eine serielle Schnittstelle 106 verbunden, die mit dem Systembus 130 gekoppelt ist, aber sie können auch über andere Schnittstellen verbunden sein, wie z.B. eine Parallelschnittstelle, einen Gameport, einen universellen seriellen Bus (USB) und dergleichen. Außerdem können diese Geräte über eine geeignete Schnittstelle (nicht gezeigt) direkt mit dem Systembus 130 gekoppelt sein. Ein Monitor 107 oder eine andere Art von Anzeigegerät kann auch an einen Systembus 130 über eine Schnittstelle, wie z.B. einen Videoadapter 108, angeschlossen sein. Zusätzlich zu dem Monitor 107 enthalten Personalcomputer typischerweise andere Ausgabeperiphe riegeräte (nicht gezeigt), wie z.B. Lautsprecher und Drucker. In einem Beispiel sind ein Grafiktablett 165 und ein zugehöriger Stift oder Griffel 166 vorgesehen, um eine Freihandeingabe digital zu erfassen. Obwohl in 1 eine Verbindung zwischen dem Grafiktablett 165 und der seriellen Schnittstelle 106 gezeigt ist, kann in der Praxis das Grafiktablett 165 direkt mit der Verarbeitungseinheit 110 gekoppelt sein, es kann aber auch in jeder anderen geeigneten Weise, wie z.B. über eine Parallelschnittstelle oder eine andere Schnittstelle mit der Verarbeitungseinheit 110 und dem Systembus 130 gekoppelt sein, wie es im Stand der Technik bekannt ist. Obwohl in 1 das Grafiktablett 165 getrennt von dem Monitor 107 dargestellt ist, kann außerdem die nutzbare Eingabefläche des Grafiktabletts 165 mit der Anzeigefläche des Monitors 107 zusammenfallen. Darüber hinaus kann das Grafiktablett 165 in dem Monitor 107 integriert sein oder als separates Gerät über dem Monitor 107 oder auf andere Weise dort befestigt sein.
  • Der Computer 100 kann in einer Netzwerkumgebung unter Verwendung logischer Verbindungen mit einem oder mehreren entfernten Computern, wie z.B. dem entfernten Computer 109 arbeiten. Der entfernte Computer 109 kann ein Server, ein Router, ein Netzwerk-PC, ein gleichartiges Gerät oder ein anderer üblicher Netzwerkknoten sein und enthält typischerweise viele oder alle der oben im Zusammenhang mit dem Computer 100 beschriebenen Elemente, obwohl zur Vereinfachung in 1 nur ein Speichergerät 111 dargestellt wurde. Die in 1 dargestellten logischen Verbindungen umfassen ein lokales Netzwerk (LAN 112) und ein Großraumnetzwerk (WAN 113). Derartige Netzwerkumgebungen sind üblich in Büros, unternehmensweiten Computernetzen, Intranets und dem Internet, wobei sowohl drahtgebundene als auch drahtlose Verbindungen verwendet werden.
  • Wenn der Computer 100 in einer LAN-Netzwerkumgebung verwendet wird, so ist er mit dem lokalen Netzwerk 112 über eine Netzwerkschnittstelle oder einen Adapter 114 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, so enthält der Personalcomputer 100 typischerweise ein Modem 115 oder andere Einrichtungen zur Einrichtung einer Kommunikationsverbindung über das Großraumnetzwerk 113, wie z.B. dem Internet. Das Modem 115, das intern oder extern zu dem Computer 100 sein kann, kann mit dem Systembus 130 über das serielle Schnittstelleninterface 106 verbunden sein. In einer Netzwerkumgebung können Programmmodule, die im Bezug auf den Personalcomputer 100 dargestellt wurden, oder Teile davon, in dem entfernten Speichergerät gespeichert ein.
  • Es versteht sich, dass die gezeigten Netzwerkverbindungen Beispiele sind und andere Techniken zur Einrichtung einer Kommunikationsverbindung zwischen den Computern verwendet werden können. Das Vorhandensein einer der zahlreichen wohlbekannten Protokolle wie z.B. TCP/IP, Ethernet, FTP, HTTP, UDP, und dergleichen wird vorausgesetzt und das System kann in einer Benutzer-Server-Konfiguration betrieben werden, um es einem Benutzer zu erlauben, Webseiten von einem Web basierten Server aufzurufen. Jeder der zahlreichen herkömmlichen Webbrowser kann verwendet werden, um Daten auf Webseiten darzustellen und zu verändern. Obwohl die 1 eine beispielhafte Umgebung zeigt, versteht es sich, dass andere Computerumgebungen ebenfalls verwendet werden können. Z.B. können ein oder mehrere Beispiele der vorliegenden Erfindung eine Umgebung verwenden, die nicht alle der in 1 dargestellten und oben beschriebenen Aspekte besitzt und diese Aspekte können in verschiedenen Kombinationen und Unterkombinationen auftreten, die jedem Leser mit gewöhnlicher Qualifikation einleuchten werden.
  • 2 zeigt einen stiftbasierten Personalcomputer (PC) 201, der in Übereinstimmung mit verschiedenen Aspekten der vorliegenden Erfindung verwendet werden kann. Einige oder alle der Merkmale, Untersysteme und Funktionen des Systems aus 1 können in dem Computer aus 2 enthalten sein. Das stiftbasierte Personalcomputersystem 201 enthält eine große Anzeigefläche 202, z.B. einen digitalisierenden Flachbildschirm, wie z.B. einen Flüssigkristallbildschirm (LCD), auf dem eine Mehrzahl von Fenstern 203 angezeigt wird. Unter Verwendung des Griffels (204) kann der Benutzer auf der digitalisierenden Anzeigefläche auswählen, hervorheben und schreiben. Beispiele geeigneter digitalisierender Anzeigepaneele umfassen elektromagnetische Stiftdigitalisiertabletts, wie z.B. Stiftdigitalisiertabletts von Mutoh Co. oder Wacom Technology Co.. Andere Arten von Stiftdigitalisiertabletts, z.B. optische Digitalisiertabletts können ebenfalls verwendet werden. Das stiftbasierte Computersystem 201 interpretiert Gesten, die mit dem Griffel 204 gemacht werden, um Daten zu verändern, Text einzugeben, und gewöhnliche Computeranwendungsaufgaben auszuführen, wie z.B. Erstellen, Editieren und Modifizieren von Tabellen, Textverarbeitungsprogrammen u.dgl.. Der Griffel 204 kann mit Tasten oder anderen Merkmalen zur Verbesserung seiner Möglichkeiten ausgerüstet sein. In einem Beispiel kann der Griffel 204 als „Bleistift" oder „Stift" implementiert sein, indem ein Ende eine Schreibeinheit bildet und das andere Ende einen „Radierer" bildet und das, wenn es über die Anzeige bewegt wird, Teile der elektronischen Tinte auf der Anzeige kennzeichnet, die gelöscht werden sollen. Andere Arten von Eingabegeräten, wie z.B. eine Maus, Trackball, Tastatur u.dgl., können ebenfalls verwendet werden. Außerdem kann ein Benutzer seine eigenen Finger verwenden, um Teile des auf einer berührungsempfindlichen oder annäherungsempfindlichen Anzeige angezeigten Bildes auszuwählen oder anzugeben. Demzufolge ist beabsichtigt, dass der Begriff „Benutzereingabegerät", so wie er hier verwendet wird, eine breite Definition haben soll und viele Variationen wohlbekannter Eingabegeräte umfassen soll.
  • In einigen Beispielen der Erfindung kommunizieren mehrere Benutzer miteinander über ein Rechner-Rechner-Netzwerk. Diese Benutzer können in einigen Beispielen Teilnehmer einer Sitzung sein, in der Nachrichtendaten von einem Teilnehmer an die anderen Teilnehmer übertragen werden, so dass alle Teilnehmer die Daten sehen und ändern können (z.B. eine „elektronische Weißwandtafel" Sitzung oder andere Art von gemeinschaftlicher Sitzung).
  • 3A und 3B zeigen Beispiele von Teilnehmern A-J, die miteinander kommunizieren, wie es in einigen Beispielen dieser Erfindung der Fall sein kann. Anstelle dass alle Teilnehmer A-J mit einem gemeinsamen Server verbunden sind oder dass die Workstation eines der Teilnehmer zum de facto-Server erklärt wird, kommunizieren in einigen Beispielsystemen und Verfahren gemäß der Erfindung die Teilnehmer A-J über ein Rechner-Rechner-Netzwerk (peer-to-peer-network), z.B. unter Verwendung von Arbeitsplatzgeräten mit Allzweckcomputern wie in den 1 und 2 dargestellt. Die Kommunikation in dieser Weise kann in jeder geeigneten Weise durchgeführt werden, inklusive in den verschiedenen im Stand der Technik bekannten herkömmlichen Weisen. In dem dargestellten Beispiel überträgt jeder Teilnehmer (z.B. durch einen Broadcast oder eine direkte Übertragung) seine oder ihre Nachrichtendaten über das Rechner-Rechner-Netzwerk, so dass die anderen Teilnehmer die Daten empfangen. 3A zeigt ein Beispiel, in dem der Teilnehmer A eine Datennachricht an die Teilnehmer B-J übertragen hat. Daraufhin hat in 3B der Teilnehmer C eine Datennachricht an die Teilnehmer A, B und D-J übertragen. In der gleichen Weise ist jeder Teilnehmer A-J auf dem Netzwerk (und in der Tat jeder Benutzer auf dem Netzwerk) in der Lage, Mitteilungen an die bzw. von den anderen Teilnehmern (und Benutzern) auf dem Netzwerk zu senden und zu empfangen.
  • Jedes geeignete System oder Protokoll kann verwendet werden, um Nachrichten zwischen den Teilnehmern und Benutzern auf dem Netzwerk zu übertragen, ohne von der Erfindung abzuweichen. Nachrichtendaten können z.B. direkt an die verschiedenen Teil nehmer in einer Sitzung über das Netzwerk unter Verwendung von TCP oder UDP gesendet werden. TCP Nachrichtenübertragungen sind vorteilhaft, da TCP garantiert, dass Datenpakete der Reihenfolge nach sowohl an Benutzer auf einem gemeinsamen Subnetz als auch an Benutzer in verschiedenen Subnetzen (z.B. Lieferung über das Internet oder andere Kommunikationsnetzwerke) zugestellt werden. UDP garantiert die Lieferung der Nachrichten oder die Lieferung der Nachrichten der Reihenfolge nach nicht.
  • Als weiteres Beispiel können Systeme und Verfahren gemäß einiger Beispiele der Erfindung die Übertragungsmerkmale von UDP verwenden und die Nachrichtendaten an alle Benutzer auf einem gegebenen Subnetz per Broadcast übertragen (TCP unterstützt keine Broadcast-Übertragungen). Wenn die Nachrichtendaten mit einer Liste der Teilnehmer in der Sitzung codiert ist, können Benutzer auf dem Netzwerk die eingehenden Nachrichtendaten einsehen, feststellen, ob sie ein Teilnehmer in der Sitzung mit diesen Nachrichtendaten sind und der Sitzung beitreten und/oder die Nachrichtennutzlast verarbeiten, wenn sie ein Teilnehmer sind. Die Verwendung von UDP Broadcast-Nachrichten zur Datenübertragung in dieser Weise wird weiter unten detaillierter beschrieben.
  • UDP-Broadcasts dieser Art sind üblicherweise auf die Übertragung an Benutzer auf einem gemeinsamen Subnetz begrenzt. Brückensysteme (Bridges) und Verfahren können jedoch verwendet werden, um die hier beschriebenen UDP Broadcast-Nachrichten an Benutzer in anderen Subnetzen weiter zu leiten. Obgleich jedes geeignete Brückensystem oder Verfahren verwendet werden kann, ohne von dieser Erfindung abzuweichen, sind geeignete Brückensysteme und Verfahren in der US-Patentanmeldung Nr. US 20030421705 unter dem Titel „Bridging Subnet Broadcasts Across Subnet Boundaries", eingereicht am 24. April 2003 im Namen der Erfinder Philip Su und Robert Jarrett (Attorney Docket No. 003797.00507) beschrieben.
  • Wie oben erwähnt, haben UDP-Broadcasts einige Einschränkungen dahingehend, dass dieses Protokoll nicht die Zustellung und/oder die Zustellung von Nachrichtendatenpaketen der Reihenfolge nach an alle Benutzer sicherstellt. Einige Beispielsysteme und Verfahren gemäß dieser Erfindung haben jedoch diese Einschränkung überwunden, indem Wege für die Systeme und Verfahren zur Verfügung gestellt werden, um festzustellen, ob ein Teilnehmer eine Nachricht verpasst hat, und Wege zur Verfügung zu stellen, um verpasste Nachrichten erneut an den Benutzer zu übertragen, der sie nicht empfangen hat, als sie ursprünglich übertragen wurden. Diese Aspekte der Erfindung erlauben es auch, spät zu einer Sitzung hinzustoßenden Benutzern oder denjenigen, die aus Versehen aus einer Sitzung herausgefallen sind, wieder leicht aufzuholen und jede verpasste Nachricht zu empfangen, die zuvor während der Sitzung übertragen wurde. Diese Aspekte der Erfindung werden ebenfalls weiter unten detaillierter beschrieben.
  • IV. Beispielsysteme, Verfahren und Datenstrukturen gemäß der Erfindung
  • A. Daten, die in einigen der Beispiele gepflegt werden
  • 4 zeigt allgemein einige der Informationen und Daten 400, die durch eine Benutzerworkstation oder andere geeignete Speichersysteme in einigen Beispielen der Systeme und Verfahren gemäß dieser Erfindung gepflegt werden. Jeder Benutzer und/oder Computer wird durch eine eindeutige Identifikationsnummer 402 identifiziert, die den Benutzer und/oder die Computerhardware anderen Benutzern auf dem Netzwerk gegenüber identifiziert. Diese Benutzeridentifikationsnummer kann insbesondere den Teilnehmer identifizieren, der auf dem Computersystem angemeldet ist, und/oder die Hardware selbst.
  • Jeder Benutzer kann potentiell an jeder beliebigen Zahl von verschiedenen gemeinschaftlichen Sitzungen beteiligt sein, wie in 4 durch die Referenzzeichen 404a (Sitzung 1) bis 404n (Sitzung n) dargestellt wird. Jede Sitzung 404a bis 404n kann durch eine eindeutige Identifikationsnummer (406a bis 406n in 4) gekennzeichnet werden und die Workstation oder ein anderes Speichersystem kann eine Liste der einzelnen Teilnehmer (408a bis 408n in 4) für jede Sitzung pflegen. Die Teilnehmerliste 408a bis 408n für eine Sitzung kann einfach die eindeutige Benutzer-ID-Nummer 402 für jeden an der Sitzung beteiligten Teilnehmer und/oder jeden für den Beitritt zu der Sitzung autorisierten Benutzer enthalten.
  • Jede Sitzung kann auch eine Auflistung der an der Sitzung beteiligten Nachrichten enthalten. In 4 sind den Nachrichten für Sitzung 1 (404a) die Referenzzeichen 404a bis 410m zugeordnet und den Nachrichten für Sitzung n (404n) sind die Bezugszeichen 420a bis 420k zugeordnet. Es besteht keine Beschränkung der Anzahl der Nachrichten, die an einer gegebenen Sitzung beteiligt sein können. Jede Nachricht (410a bis 410m und 420a bis 420k) enthält ihr eigene Kennung (Kennungen 412a bis 412m für die jeweiligen Nachrichten 410a bis 410m und Kennungen 422a bis 422k für die jeweiligen Nach richten 420a bis 420k). Darüber hinaus enthält jede Nachricht (410a bis 410m und 420a bis 420k) ihre zugeordnete Nachrichtennutzlast (Nachrichtennutzlast 414a bis 414m für die jeweiligen Nachrichten 410a bis 410m und Nachrichtennutzlasten 424a bis 424k für die jeweiligen Nachrichten 420a bis 420k). Die Nachrichtennutzlast kann jede Form von geeigneten Daten enthalten, wie z.B. elektronische Tintenstriche, Textinformation, grafische Information, Anweisungen zum Löschen, Bewegen und/oder Abändern von Tinte, Text oder Grafik und dergleichen.
  • Die eindeutigen Kennungen für die Benutzer ID 402, die Sitzungs-ID 406a bis 406n, und die Nachrichten ID 412a bis 412m und 422a bis 422k können in jeder herkömmlichen im Stand der Technik bekannten Weise vergeben werden. Zum Beispiel können global eindeutige Kennungsnummern („GUIDs") jedem dieser Werte zugewiesen werden.
  • B. Die elektronische Weißwandtafel
  • 1. Unabhängige Nachrichten
  • Die 5A bis 5J zeigen Beispiele von Datennachrichten, die zwischen mehreren Teilnehmern in einer Sitzung über eine virtuelle oder elektronische Weißwandtafel oder eine andere gemeinschaftliche Sitzung gemäß zumindest einiger Beispiele dieser Erfindung ausgetauscht werden können. Jede der 5A bis 5J zeigt eine beispielhafte elektronische Weißwandtafel 500, wie sie auf dem Bildschirm der Workstation eines Teilnehmers erscheinen kann, wenn Nachrichtendaten ausgetauscht werden. Die Teilnehmer können miteinander über ein Rechner-Rechner-Netzwerk verbunden sein, dass UDP Broadcast-Übertragungen verwendet, um die Nachrichtendaten in der in Verbindung mit den 3A und 3B beschriebenen Weise zu übertragen. Die Teilnehmer können sich an den gleichen oder an verschiedenen Orten befinden, ohne dass von der Erfindung abgewichen würde.
  • Die 5a bis 5J zeigen die elektronischen Tintenstriche, die mit der gemeinschaftlichen Anstrengung der Teilnehmer A-C beim Schreiben des Worts „Break" auf einer elektronischen Weißwandtafel verbunden sind. Zumindest die Teilnehmer A-C sind zu einer gewissen Zeit an der Sitzung beteiligt, in der dieses Wort auf die elektronische Weißwandtafel geschrieben wurde, obgleich andere an der Sitzung beteiligt sein können und/oder die Teilnehmer A-C die Sitzung zu einer Zeit verlassen können, ohne von der Erfindung abzuweichen. Elektronische Tintendaten können in einer geeigneten Weise gesammelt werden, inklusive der im Stand der Technik bekannten herkömmlichen Weisen und diese elektronischen Tintendaten können z.B. als Nachrichtennutzlast 414a bis 414m aus 4 zur Verfügung gestellt werden. Die Nachrichtennutzlast kann Daten enthalten, die verschiedene Merkmale der elektronischen Tinte angibt, inklusive, aber nicht notwendigerweise beschränkt auf: die Punkte der elektronischen Weißwandtafel, auf die der Stift während des Tintenstrichs trifft (oder der Ort eines Richtungswechsels des Stifts und die neue Stiftrichtung); der Ort des Strichs auf der elektronischen Weißwandtafel; die Strichfarbe; andere Stricheigenschaften (fett, kursiv, hervorgehoben, unterstrichen, etc.) u.dgl..
  • Wie in den 5A und 5B gezeigt ist, hat der Teilnehmer A die elektronische Weißwandtafel 500, wie sie auf seinem/ihrem Computer erscheint, verwendet, um den Buchstaben „B" zu schreiben. Jeder Strich des elektronischen Stifts bildet in diesem Beispiel zumindest eine einzelne Datennachricht (Nachricht A1 und Nachricht A2), die an die anderen Teilnehmer in der Sitzung vom Computer des Teilnehmers A gesendet werden, z.B. über einen UDP-Broadcast, eine TCP-Übertragung oder ein anderes geeignetes Übertragungsprotokoll. Nachdem der Teilnehmer A den Buchstaben „B" fertiggestellt hat, schreibt der Teilnehmer B in ähnlicher Weise den Buchstaben „r" auf seinen/ihren Computerarbeitsplatz unter Verwendung von zwei elektronischen Tintenstrichen und sendet (zumindest) zwei Datennachrichten, die diesen Strichen entsprechen, an die anderen Teilnehmer (Nachrichten B1 und B2, 5C und 5D). Danach schreibt der Teilnehmer C den Buchstaben „e" unter Verwendung von einem Strich und sendet (zumindest) eine elektronische Datennachricht, die diesen Strich repräsentiert, an die anderen Teilnehmer (Nachricht C1, 5E). Danach schreibt der Teilnehmer A den Buchstaben „a" unter Verwendung von zwei Strichen und sendet (zumindest) zwei Datennachrichten, die diese Striche repräsentieren, an die anderen Teilnehmer (Nachrichten A3 und A4, 5F und 5G) und Teilnehmer B schreibt den Buchstaben „k" unter Verwendung von drei Strichen und sendet (zumindest) drei Datennachrichten, die diese Striche repräsentieren an die anderen Teilnehmer (Nachrichten B3, B4 und B5, 5H, 5I und 5J).
  • In dem in den 5A bis 5J dargestellten Beispielen ist jeder Tintenstrich unabhängig von den anderen Strichen, so dass die „zeitgeordnete" Zustellung der verschiedenen Datennachrichten an die Workstations der Teilnehmer in diesem Beispiel kein wichtiger Gesichtspunkt ist (man beachte, dass in diesem Beispiel die Nachrichtendaten für jeden Strich die absolute Position des Strichs auf der elektronischen Weißwandtafel (wahlweise mit Informationen, um eine Anpassung an den Ort, die Auflösung, etc. der Weißwandtafel auf der Hardware des anderen Teilnehmers zu ermöglichen) derart, dass die Position eines Strichs nicht von der Position eines anderen Strichs abhängt). Mit anderen Worten, wenn der Teilnehmer B den Buchstaben „e" aus der Nachricht C1 empfängt, nachdem er einen oder mehrere der Striche des Buchstabens „a" (Nachrichten A3 und A4) empfangen hat und/oder selbst nachdem er/sie begonnen hat, den Buchstaben „k" zu schreiben, spielt dies keine Rolle. Die Striche können auf der elektronischen Weißwandtafel eines jeden Teilnehmers in jeder Reihenfolge erscheinen und das endgültige Wort wird trotzdem korrekt erscheinen.
  • Auch wenn in dem in den 5A bis 5J dargestellten Beispiel jeder Strich als separate Datennachricht dargestellt wurde, ist dies keine Anforderung. Jede Zahl von Strichen oder selbst ein Teil eines einzelnen Strichs kann in einer einzelnen Datennachricht enthalten sein, ohne von der Erfindung abzuweichen. So können z.B. falls gewünscht, die Striche beim Schreiben des Buchstabens „B" (5A und 5B) an die anderen Sitzungsteilnehmer in einer einzigen Datennachricht gesendet werden, ohne von der Erfindung abzuweichen. Als weiteres Beispiel können sehr lange und/oder komplizierte Striche in zwei oder mehr Datennachrichten zur Übertragung an die anderen Teilnehmer aufgeteilt werden, ohne von der Erfindung abzuweichen.
  • 2. Abhängige Nachrichten
  • In manchen Fällen werden jedoch einige Teilnehmer Nachrichten senden, die von anderen Nachrichten abhängen oder ihnen gegenüber aktiv werden. So kann z.B. ein Teilnehmer eines oder mehrerer bestehender Tintenstriche, Text, Grafik oder dergleichen ändern, Informationen hervorheben, Informationen kursiv setzen, Informationen unterstreichen, Informationen fett drucken, Informationen löschen, Informationen vergrößern, Informationen verkleinern, Informationen bewegen, Informationen kopieren oder andere Änderungen an ihrem Inhalt oder ihrer Eigenschaften vornehmen. Die 6A bis 6E illustrieren ein derartiges Beispiel. 6A beginnt mit dem Wort „Break", wie es in den 5A bis 5J geschrieben wurde. Die Teilnehmer A, B und C haben sich entschieden, dieses Wort zu dem Wort „Brake" abzuändern unter Verwendung einer gemeinschaftlichen Anstrengung auf der elektronischen Weißwandtafel 600. Wie durch einen Vergleich der 6A und 6B dargestellt wird, verwendet der Teilnehmer C als ersten Schritt zur Durchführung dieser Änderung eine „Ausschneide"-Funktion, um den Buchstaben „e" auszuschneiden (d.h. Nachricht C2 aus 6B löschte oder schnitt Nachricht C1 aus 5E aus). Dieser Schritt kann durch den Teilnehmer C unter Verwendung einer geeigneten Weise zur Auswahl des Buchstaben „e" (z.B. einer Lasso oder Rechteckauswahl) und dem Ausführen der Ausschneideaktion z.B. in einer herkömmlichen Weise ausgeführt werde. Als weitere Alternative könnte der Buchstabe „e" von der elektronischen Weißwandtafel unter Verwendung einer herkömmlichen Löschfunktion gelöscht werden. Die Nachricht C2 wurde an die anderen Teilnehmer in der Sitzung gesendet, um diese Änderung vorzunehmen. Demzufolge hängt die Nachricht C2 in diesem Fall von der Nachricht C1 ab (d.h. die Nachricht, die den Buchstaben „e" schreibt, muss empfangen worden sein, bevor die Nachricht, die die Ausschneideaktion durchführt, durchgeführt werden kann).
  • Im nächsten Schritt der gemeinschaftlichen Anstrengung schiebt der Teilnehmer A die Buchstaben „ak" näher an die Buchstaben „Br". Siehe 6C. Auch dies kann wieder in jeder geeigneten Weise durchgeführt werden, z.B. unter Verwendung einer Auswahlaktion (z.B. Lasso oder Rechteckauswahl oder dergleichen) und einer Ziehaktion mit einer Maus, einem Stift oder anderen geeigneten Benutzereingabegeräten. Diese Aktion wird an die anderen Teilnehmer der Sitzung als Nachricht A5 übertragen. Die Nachricht A5 erfordert, dass zumindest die Nachrichten A3, A4, B3, B4 und B5 stattgefunden haben. Wahlweise kann die Nachricht A5 davon abhängen, dass die Nachricht C2 stattgefunden hat (welche wiederum davon abhängt, dass, wie oben erwähnt, die Nachricht C1 stattgefunden hat), in Abhängigkeit davon, ob das System oder Verfahren gemäß des speziellen Beispiels in der Lage sind, überlappende Informationen handzuhaben (z.B. unter Verwendung einer Schichtenstruktur oder in einer anderen geeigneten Weise).
  • Im nächsten Schritt wird, wie in 6 dargestellt, der Buchstabe „B" mit elektronischer Tinte durch den Teilnehmer B unterstrichen. Diese Information wird an die anderen Teilnehmer als Nachricht B6 übertragen. Nachricht B6 ist wiederum unabhängig von den anderen Nachrichten, da sie die Eigenschaften der bestehenden Nachrichtendaten (z.B. Tintenstriche) weder ändert oder löscht, noch in anderer Weise verändert. Die manuelle Unterstreichung in der Art, wie sie in 6D dargestellt ist, unterscheidet sich von einer elektronisch erzeugten Unterstreichung als Attribut von Tinte, Text oder Grafik darin, dass die manuelle Unterstreichung in dieser Art einfach ein weiterer Tintenstrich ist und die Datenstruktur der Tinte oder anderen Text, der unterstrichen wird, nicht ändert.
  • 6E illustriert eine „Einfüge"-Aktion, in der der Teilnehmer C den Buchstaben „e", der in der Nachricht C2 „6B" gelöscht wurde, nachdem nunmehr verschobenen Buchstaben „k" einfügt. Diese Datennachricht wird an die anderen Teilnehmer der Sitzung als Nachricht C3 gesendet. Die Nachricht C3 hängt zumindest von den vorangegangenen Ausführung C2 ab, die wiederum davon abhängt, dass die Nachricht C1 stattgefunden hat. Wahlweise kann die Nachricht C3 auch von den Nachrichten A3, A4, A5, B3, B4 und B5 abhängen, abhängig davon, ob die Systeme oder Verfahren gemäß des speziellen Beispiels in der Lage sind, die überlappende Information handzuhaben (z.B. unter Verwendung einer Schichtenstruktur oder in einer anderen geeigneten Weise). Wieder können die Systeme und Verfahren gemäß der Beispiele der Erfindung diese Art von überlappender Information und ihrer Anzeige in jeder geeignete Weise handhaben, ohne von der Erfindung abzuweichen.
  • Alternativ kann, anstatt eine Einfügeaktion zu verwenden, wie sie als Nachricht C3 in 6E dargestellt ist, ein Teilnehmer der Sitzung einfach einen weiteren Buchstaben „e" an die geeignete Stelle schreiben. In diesem Fall wäre der neue Strich nicht von irgendeinem anderen Strich abhängig, es sei denn, eine Abhängigkeit wäre erforderlich, um Überlappung oder geschichtete Information auf der elektronischen Weißwandtafel zu handhaben, wie oben allgemein diskutiert.
  • Jede geeignete Weise zur Handhabung der Abhängigkeitsinformation kann verwendet werden, ohne von der Erfindung abzuweichen. So kann z.B. der Rechner eines Telnehmers, der eine Nachricht sendet, die abhängige Information in der oben beschriebenen allgemeinen Weise verfolgen, indem er bestimmt, welche Datennachrichten zumindest ausgeführt sein müssen, um die durch die ausgehende Nachricht des Teilnehmers erforderliche Aktion auszuführen. Wenn die Nachricht dann (z.B. über einen Broadcast) an die anderen Teilnehmer gesendet wird, kann sie so codiert werden, dass sie die eindeutige Nachrichten-ID jeder der anderen Nachrichten enthält, die erforderlich sind, um die Funktion der neuerdings gesendeten Nachricht auszuführen. Die empfangenden Rechner können dann die Abhängigkeitsinformation berücksichtigen und sicherstellen, dass alle erforderlichen „Eltern"-Nachrichten ausgeführt sind, bevor die neuerdings empfangene Nachricht ausgeführt wird. Eine andere Weise zur Handhabung der Abhängigkeit wird unten in Verbindung mit den 7 bis 8 beschrieben.
  • C. Datenstrukturen von ausgehenden Nachrichten
  • 7 zeigt allgemein eine Datenstruktur 700 für von einer Teilnehmerworkstation ausgehenden Nachrichten, die in verschiedenen Beispielen der Systeme und Verfahren gemäß dieser Erfindung nützlich ist. Die Datenstruktur 700 in diesem Beispiel enthält ein Feld, das Daten enthält, das die Benutzer-ID-Nummer 702 des Teilnehmers repräsentiert, der die Nachricht überträgt. Diese Benutzer-ID kann die eindeutige Benutzer-Kennung 402 sein, die oben in Verbindung mit 4 diskutiert wurde und die den Benutzer oder Teilnehmer identifiziert, der die Nachricht sendet. Zusätzlich oder als Alternative kann die Benutzer-ID 702 auch Hardware-Informationen, wie z.B. Informationen, die die spezielle Hardware, die die Nachricht sendet, identifiziert, Eigenschaften der Hardware und/oder der gesendeten Daten u.dgl. (z.B. Informationen über die Bildschirmauflösung od. dgl., so dass die Daten korrekt übersetzt und an die verschiedenen an der Sitzung beteiligten Rechner abgebildet werden können) enthalten.
  • Ein anderes Feld in der beispielhaften Datenstruktur 700 enthält eine eindeutige Nachrichtenkennung 704 der gesendeten Nachricht. Diese Nachrichtenkennung 704 kann den Nachrichtenkennungen 412a-412m und 422a-422k, die oben in Verbindung mit 4 beschrieben wurden, entsprechen.
  • Die Beispieldatenstruktur 700 aus 7 enthält ein weiteres Feld, das verschiedene Informationen 706 über die Sitzung, auf die diese Nachricht gerichtet ist, enthält. Verschiedene Arten von Informationen können in diesem Datenfeld enthalten sein, ohne von der Erfindung abzuweichen. Wie in 7 dargestellt, kann dieses Datenfeld z.B. die eindeutige Sitzungs-ID-Nummer 708 enthalten, auf die die Nachrichtennutzlast gerichtet ist. Dieses Datenfeld kann auch eine Liste der Teilnehmer 710 der Sitzung enthalten (z.B. in Form der Benutzer-ID-Nummern 702 für alle Teilnehmer der Sitzung und/oder alle Benutzer, die autorisiert sind, an der Sitzung teilzunehmen). Ein weiterer möglicher Teil der Sitzungsinformation 706 in der Datenstruktur 700 kann „Nachrichtenhistorien"-Information 712 enthalten. Diese Nachrichtenhistorieninformation kann die ganzen Abhängigkeitsinformationen (z.B. alle erforderlichen Elternnachrichten-ID-Nummern 704) für die vorliegende Nachricht, wie oben beschrieben, enthalten.
  • Schließlich enthält ein weiteres Datenfeld dieser Beispieldatenstruktur 700 die eigentliche Nachrichtennutzlast 714, die dem empfangenden Rechner die Aktion mitteilt, die als Ergebnis dieser Nachricht auszuführen ist. Wie oben beschrieben wurde, kann diese Nachrichtennutzlast 714 elektronische Tinteninformation (z.B. Tintenstriche); Text; Grafi ken; Informationen zur Änderungen von elektronischer Tinte, Text, Grafik od.dgl.; und/oder jede andere geeignete oder gewünschte Information enthalten.
  • Während in der Tat die Verfolgung der Abhängigkeiten und Elterndatennachrichteninformation ein effektiver Weg ist um sicherzustellen, dass keine Nachrichtenaktion ausgeführt wird, bevor sie ausgeführt werden sollte, kann dies zumindest in einigen Fällen schwierig (wenn nicht unmöglich) und/oder rechentechnisch aufwendig sein. Demzufolge kann gemäß einiger Beispiele der Erfindung eine ausgehende Nachricht, wie die in 7 dargestellte, eine andere Art von Nachrichtenhistorie 712 enthalten. Zum Beispiel kann ein Rechner, der eine Nachricht 700 sendet, die Nachrichtenidentifikationsnummern (704, 412a-412m, 422a-422k) von zumindest der zuletzt auf diesem Rechner verarbeiteten Nachricht einfügen. In einigen Beispielen wird die Datenstruktur 700 die Nachrichtenidentifikationsnummern (704, 412a-412m, 422a-422k) der letzten 5-10 auf diesem Rechner verarbeiteten Nachrichten in die Nachrichtenhistorie 712 einfügen, oder sogar noch mehr. Wenn dann die empfangenden Rechner die übertragene neue Nachricht 700 empfangen, werden sie annehmen, dass die neue Nachricht 700 von jeder der zuletzt auf dem sendenden Rechner verarbeiteten Nachrichten (aus der Nachrichtenhistorie 712) abhängt. Wenn der empfangende Rechner noch nicht alle der zuletzt in der Nachrichtenhistorie 712 der Nachricht 700 verarbeiteten Nachrichten empfangen hat, wird die neue Nachricht 700 nicht verarbeiten, bevor alle der Nachrichten in der Nachrichtenhistorie 712 empfangen wurden.
  • Angenommen ein empfangender Rechner hat eine oder mehrere der Nachrichten in der Nachrichtenhistorie 712 der neuen Nachricht 700 nicht, wird er auf die fehlenden Nachrichten warten (wahlweise eine Anforderung für die Nachrichten senden, wie weiter unten detaillierter beschrieben wird). Wenn die fehlenden Nachrichten empfangen wurden, werden die fehlenden Nachrichten ebenfalls ein Nachrichtenhistorienfeld 712 haben von der Zeit, zu der sie ursprünglich gesendet wurden, und der empfangende Rechner wird die neuerdings empfangenen und zuvor fehlenden Nachrichten nicht verarbeiten, bis alle Nachrichten in ihrer Nachrichtenhistorie 712 ebenfalls empfangen wurden. Auf diese Weise wird ein Rechner, der eine Nachricht 700 empfängt, die Nachrichten und die Nachrichtenhistorien rückwärts in der Zeit weiterhin überprüfen und eine neuerdings empfangene Nachricht 700 nur verarbeiten, nachdem alle Nachrichten in der Nachrichtenhistorie 712 empfangen und verarbeitet wurden.
  • Als weiteres Beispiel können, alternativ oder zusätzlich zum Senden der zuletzt auf einem gegebenen Rechner verarbeiteten Nachrichten, die ausgehenden Nachrichtendaten 700 in ihrer Nachrichtenhistorie 712 eine Liste von einer oder mehrerer der zuletzt von diesem Rechner gesendeten Nachrichten enthalten. Jede Zahl von zuvor gesendeten Nachrichten kann in der Nachrichtenhistorie 712 enthalten sein, ohne von der Erfindung abzuweichen, inklusive z.B. 5-10 der unmittelbar zuvor gesendeten Nachrichten. Der empfangende Rechner kann diese Information zusätzlich oder anstelle der oben beschriebenen Historie der zuletzt verarbeiteten Nachrichten in der gleichen Weise verwenden, um sicherzustellen, dass die neue Nachricht 700 nicht verarbeitet wird, bevor alle zuvor von diesem Rechner gesendeten Nachrichten verarbeitetet wurden.
  • Wenn eine spätere Nachricht eine frühere Nachricht löscht oder ausschneidet, brauchen Systeme oder Verfahren gemäß einiger Beispiele dieser Erfindung wahlweise nicht auf die gelöschte Nachricht oder die Nachricht, die sie löscht, warten, bevor sie mit der anderen Verarbeitung fortfahren. Dieses Nachrichtenpaar kann ignoriert werden und muss nicht empfangen und verarbeitet werden.
  • Zahlreiche andere Wege zur Sicherstellung, dass Nachrichten in der richtigen Reihenfolge verarbeitet werden, und die die richtigen Abhängigkeiten sicherstellen, können verwendet werden, ohne von der Erfindung abzuweichen. So können z.B. wirklich unabhängige Nachrichten als solche markiert werden, so dass Systeme und Verfahren gemäß einiger Beispiele dieser Erfindung wissen, dass sie sofort verarbeitet werden können, ohne auf andere Nachrichten zu warten. Zusätzlich kann jede Anzahl von vorherigen Nachrichten (zuvor verarbeitet und/oder zuvor gesendet) in die Nachrichtenhistorie 712 eingefügt werden, ohne von der Erfindung abzuweichen, z.B. unter Berücksichtigung verschiedener Faktoren, wie z.B. der Wahrscheinlichkeit, dass eine Nachricht durch einen gegebenen Benutzer nicht empfangen wurde, Netzwerklast, Netzwerkgeschwindigkeit, Rate der eingehenden Nachrichten, Anzahl der Teilnehmer der Sitzung, Art der Verbindung, Wahrscheinlichkeit, dass sich ein Benutzer von dem Netzwerk ankoppelt, etc..
  • D. Verarbeitung von eingehenden Nachrichten
  • 8 zeigt ein Flussdiagramm, das verschiedene Aspekte der Verarbeitung von Nachrichten in einigen Beispielen der Erfindung zeigt. Zum besseren Verständnis wird die Information in 8 in Verbindung mit den in 7 zur Verfügung gestellten Bezugszeichen diskutiert. In diesem Beispiel werden Nachrichten 700 über ein Rechner-Rechner-Netzwerk gesendet, z.B. unter Verwendung der Broadcasting-Möglichkeiten von UDP. Wie dargestellt ist, beginnt der Ablauf (S800), wenn ein Teilnehmer der Sitzung eine Broadcast-Nachricht 700 sendet, die durch einen anderen Benutzer empfangen wird, der auf dem Netzwerk lauscht (S802). Sich daran erinnernd, dass UDP Broadcastnachrichten an alle Benutzer auf einem Subnetz gesendet werden, und nicht an einen speziellen Benutzer des Subnetzes gerichtet sind, bestimmt ein Subnetzbenutzer, der die Broadcastnachricht 700 empfängt, des Systems und des Verfahrens gemäß dieses Beispiels der Erfindung als nächstes, ob er/sie auf diese Sitzungs-ID-Nummer lauscht (S804). Das kann z.B. erreicht werden, in dem die in der Nachricht 700 enthaltene Sitzungs-ID-Nummer 708 berücksichtigt wird. Wenn der empfangende Benutzer auf diese Sitzungs-ID-Nummer lauscht (Antwort ja bei S804), überprüft der Computer des empfangenen Benutzers als nächstes, ob alle vorhergehenden Nachrichten in der Nachrichtenhistorie 712 der Nachricht 700 empfangen wurden (S806). Falls ja, wird die neue Nachricht 700 verarbeitet (S808) und der Ablauf endet (S810) (beginnt z.B. mit der Verarbeitung der nächsten Nachricht oder wartet auf die nächste Nachricht).
  • Wenn im Schritt S806 festgestellt wurde, dass der empfangende Benutzer nicht alle vorherigen Nachrichten, die in der Nachrichtenhistorie 712 der neu empfangene Nachricht 700 vermerkt sind, empfangen hat (Antwort „nein"), wird der Rechner des empfangenen Benutzers eine Anforderung für jede fehlende Nachricht senden oder übertragen (S812). Nach einer geeigneten Wartezeit werden die Systeme und Verfahren gemäß dieses Beispiels der Erfindung feststellen, ob die angeforderte(n) Nachricht(en) empfangen wurde(n) (S814). Falls nein, werden S812 und S814 wiederholt, bis alle Nachrichten in der Nachrichtenhistorie empfangen wurden (geeignete Zeitlimits und/oder Fehlermeldungen können vorgesehen sein, wenn eine oder mehrere der fehlenden Nachrichten nie empfangen werden). Wenn die eingehenden fehlenden Nachrichten empfangen wurden (Antwort „ja" bei S814), kehrt das System nach S804 (siehe Punkt A) zurück und die Nachrichtenhistorien der neuerdings empfangenen Nachrichten werden überprüft, um sicherzustellen, dass alle Nachrichten in ihrer Nachrichtenhistorie empfangen wurden. Alternativ kann Punkt A zu dem Ablauf unmittelbar vor S806 zurückkehren. Auf diese Weise arbeitet sich der Ablauf in der Zeit zurück und beginnt die Verarbeitung neuerdings empfangener Nachrichten nur, wenn alle Nachrichten in ihrer Nachrichtenhistorie empfangen und verarbeitet wurden.
  • Wenn bei S804 der Empfänger der eingehenden Nachricht nicht auf diese Sitzungs-ID-Nummer lauscht (Antwort „nein"), überprüfen die Systeme und Verfahren gemäß dieses Beispiels der Erfindung als nächstes, ob die Teilnehmerliste 710 in der Nachricht 700 die ID-Nummer des empfangenen Benutzers enthält (S816). Falls nein, war diese Nachricht nicht für den empfangenen Benutzer gedacht (S818) und die Nachricht wird durch die Workstation des empfangenen Benutzers ignoriert. Der Ablauf endet (S810) (z.B. kann der empfangende Benutzer mit dem Lauschen auf neue Broadcastnachrichten fortfahren). Alternativ können die Benutzer, die nicht an einer speziellen Sitzung beteiligt sind, die eingehenden Nachrichten aufbewahren und in der Lage sein, Nachrichten an neue Teilnehmer und/oder als Reaktion auf Anforderungen fehlender Nachrichten erneut zu übertragen, wie weiter untern detaillierter beschrieben wird.
  • Wenn bei S816 die Teilnehmerliste 710 der eingehenden Nachricht 700 die ID-Nummer des empfangenen Benutzers enthält (Antwort „ja"), kann der empfangene Benutzer der Sitzung hinzugefügt werden (S820) und die Überprüfung, um sicherzustellen, dass alle vorherigen Nachrichten in der Nachrichtenhistorie 712 empfangen wurden, kann beginnen (S806).
  • Bei S812 sendet ein Empfänger einer eingehenden neuen Nachricht 702 eine Anforderung für eine Nachricht in der Nachrichtenhistorie 712 der neuen Nachricht 700, die zuvor nicht empfangen wurde. Dies kann insbesondere auftreten, wenn UDP als Übertragungsprotokoll verwendet wird, da wie oben erwähnt UDP die Zustellung von Nachrichten an alle beabsichtigten Empfänger nicht garantiert. Demzufolge müssen Systeme und Verfahren gemäß einiger Beispiele der Erfindung zumindest in einigen Fällen eine Nachricht an Teilnehmer übertragen, die diese Nachricht nicht empfangen haben, als sie ursprünglich gesendet wurde. Zusätzlich müssen Zuspätkommer in einer Sitzung auf den aktuellen Stand gebracht werden, indem sie alle vorherigen Nachrichten in der Sitzung erhalten. Unter Verwendung des in 8 beschriebenen Ablaufs können alle Teilnehmer der Sitzung leicht jede zuvor verpasste Nachricht erhalten, sobald sie eine eingehende Nachricht darüber informiert, dass sie eine Nachricht in der Nachrichtenhistorie verpasst haben, ohne dass das System oder der Ablauf ungebührlich verlangsamt würde.
  • Wenn die Anforderung für eine fehlende Nachricht übertragen wird (S812), können in diesem Beispiel der Erfindung alle Teilnehmer der Sitzung die Anforderung empfangen, (z.B. als einen UDP Broadcast). Wenn alle Teilnehmer die fehlende Nachricht erneut übertragen würden, würde dies das System mit wiederholt übertragenen Nachrichten übermäßig verstopfen, ein Problem, das noch verschlimmert wird, wenn eine große Zahl von Teilnehmern an einer Sitzung beteiligt sind. Demzufolge wird in einigen Beispielen der Erfindung jeder Teilnehmer einer Sitzung zufällig entscheiden, ob die fehlende Nachricht zum Empfang für den Anforderer übertragen werden soll, wenn eine derartige Anforderung empfangen wurde. Wenn eine Sitzung z.B. sechs Teilnehmer enthält, und eine Anforderung für eine fehlende Nachricht übertragen wird, wird jeder der verbleibenden fünf Teilnehmer zufällig entscheiden, ob er die fehlende Nachricht übertragen soll (z.B. zufällig eine Zahl zwischen 1 und 5 auswählen und die Nachricht nur übertragen, wenn die ausgewählte Zahl 1 ist). Wenn niemand die Nachricht überträgt, wird eine weitere Anforderung für eine fehlende Nachricht herausgehen (wie oben diskutiert) und ein weiterer Zufallsauswahlablauf wird auftreten. Dieser Ablauf kann wiederholt werden, bis der anfordernde Teilnehmer die fehlende Nachricht erhalten hat. Unter Verwendung dieser Art von Ablauf um fehlende Nachrichten zur Verfügung zu stellen, kann jeder Teilnehmer der Sitzung den anderen Teilnehmern oder neuen Teilnehmern fehlende Nachrichten zur Verfügung stellen, wodurch es den Teilnehmern freigestellt wird, der Sitzung beizutreten oder sie zu verlassen, wobei zugleich alle ihre zuvor übertragenen Daten in der Sitzung leicht verfügbar bleiben.
  • In einigen Beispielen dieses Aspekts der Erfindung kann die Entscheidung, ob ein bestimmter Benutzer eine fehlende Nachricht erneut übertragen soll, verschiedene Faktoren enthalten, z.B. die Wahrscheinlichkeit, dass eine Nachricht in einem bestimmten Netzwerk verloren geht, Netzwerklast, Netzwerkgeschwindigkeit, Anzahl der Teilnehmer in der Sitzung, Art der Verbindung etc.. Wenn z.B. in einem bestimmten Netzwerk und/oder Sitzungsaufbau typischerweise 50 % der UDP Broadcastnachrichten verloren gehen und ein gegebener Benutzer einer von fünf Benutzern ist, der eine Anforderung für erneute Übertragung einer fehlenden Nachricht empfangen, kann jeder spezielle Benutzer so programmiert werden, dass er eine 2/5 Wahrscheinlichkeit für das erneute Übertragen einer Nachricht als Antwort auf eine Anforderung der erneuten Übertragung einer fehlenden Nachricht hat, um die Tatsache auszugleichen, dass eine von zwei Broadcastnachrichten wahrscheinlich verloren geht.
  • Alternativ kann, wenn ein neuer Teilnehmer in eine Sitzung kommt, zu jeder Zeit ein Mechanismus installiert sein, um alle zuvor übertragenen Nachrichten dem neuen Teilnehmer automatisch zur Verfügung zu stellen (z.B. jede Nachricht wird durch den ursprünglich sendenden Teilnehmer erneut übertragen, durch einen oder mehrere ausgewählte Teilnehmer und/oder in jeder anderen gewünschten oder geeigneten Weise. Als weitere Alternative kann der ursprünglich sendende Teilnehmer jede angeforderte fehlende Nachricht erneut übertragen, wenn er oder sie in der Sitzung verblieben ist und zufällig ein anderer Teilnehmer (oder in einer vorbestimmten Reihenfolge) könnte die angeforderte fehlende Nachricht erneut übertragen, wenn der ursprünglich sendende Teilnehmer nicht mehr in der Sitzung ist. Jede Art zur Feststellung des Teilnehmers zur erneuten Übertragung einer fehlenden Nachricht als Antwort auf eine Anforderung einer fehlenden Nachricht kann verwendet werden, ohne von der Erfindung abzuweichen.
  • E. „Ping" Daten
  • 9 zeigt eine Datenstruktur 900, die nützlich sein kann, um Systeme und Verfahren gemäß einiger Beispiele dieser Erfindung darin zu unterstützen, potentielle neue Teilnehmer für eine Sitzung zu entdecken und/oder festzustellen, dass ein Benutzer einer bestehenden Sitzung beitreten könnte. Wenn eine Sitzung stattfindet, werden die Teilnehmer der Sitzung periodisch bestimmte identifizierende Daten übertragen, z.B. durch die Übertragung der Daten auf dem Subnetz unter Verwendung der UDP Broadcast-Fähigkeiten. Diese Daten, die in dieser Beschreibung auch „Ping Daten" genannt werden, informieren die anderen Benutzer des Netzwerks periodisch über bestimmte Informationen. Ping Daten dieser Art werden herkömmlich z.B. in drahtlosen Verbindungen und Kommunikationen verwendet.
  • In Beispielen dieses Aspekts der vorliegenden Erfindung kann die Datenstruktur 900 verschiedene bedeutsame Informationen bezüglich einer Sitzung enthalten. Zunächst kann ein Feld in der Datenstruktur 900 vorgesehen sein, das Informationen enthält, die einen Benutzer identifizieren, der den Ping aussendet (z.B. eine Benutzer-ID-Nummer 902, die wie oben beschrieben den Teilnehmer, der einen bestimmten Rechner verwendet, die Hardware, oder beides u.dgl. beschreibt. Ein anderes Feld in der Datenstruktur 900 kann Informationen bezüglich der Sitzungen) 904 enthalten, an der die Workstation des Benutzers beteiligt ist. Wie oben erwähnt, kann jeder Computer oder jede Workstation eines Benutzers an mehr als einer Sitzung beteiligt sein. Für jede Sitzung können die Ping Daten verschiedene Informationen, wie z.B. eine Sitzungs-ID-Nummer 906a und 906b, eine Sitzungsteilnehmerliste 908a und 908b (z.B. mit den Benutzer-ID-Nummern eines jeden Teilnehmers der Sitzung) u.dgl. enthalten.
  • Die Ping Daten 900 können auch Informationen enthalten bezüglich der Nachrichtenhistorie für jede Sitzung, an der der Benutzer beteiligt ist. Dieses Datenfeld wird durch die Bezugsnummer 910 in 9 gezeigt. Als Beispiel können die Ping Daten für jede Sitzung Daten enthalten, die die letzte Nachricht oder die zuletzt durch diesen Computer verarbeitete Nachricht (Felder 912a und 912b) und/oder Daten, die die letzte Nachricht oder die letzten Nachrichten, die durch diesen Computer gesendet wurden, angeben (Felder 914a und 914b) (z.B. in Form einer Nachrichten-ID-Nummer). Jede gewünschte Zahl von Nachrichten kann in den Datenfeldern 912a, 912b, 914a und 914b enthalten sein, ohne von der Erfindung abzuweichen (z.B. 5 bis 10 Nachrichten). Die Verwendung von „Ping Daten" hilft auf diese Weise allen Benutzern auf dem laufenden zu bleiben und verhindert, dass einzelne Nachrichten für eine lange Zeit „verloren gehen" (z.B. wenn eine Nachricht verloren geht und eine lange Zeit vergeht, bevor die nächste Nachricht gesendet wird, ohne dass periodische „Ping Daten" verwendet werden, um Nachrichten-IDs zu senden, könnte die verloren gegangene Nachricht für eine ausgedehnte Zeit verloren bleiben, z.B. bis der ursprüngliche Sender der Nachricht (oder ein anderer Teilnehmer) eine weitere Nachricht sendet.
  • Zumindest in einigen Beispielen der Erfindung können diese Ping-Daten in Verbindung mit einem Ablauf verwendet werden, wie er in 10 dargestellt ist, um auf einfache Weise Benutzer als neue Teilnehmer einer Sitzung hinzuzufügen. Z.B. beginnt der Ablauf aus 10 (S1000), wenn ein Benutzer ein Netzwerk betritt, in dem eine Sitzung stattfindet. Der neu eingetretene Benutzer wird irgendwann diese Art von Ping Daten von Teilnehmern der Sitzung empfangen (S1002). Wenn die ID-Nummer des Benutzers in den Ping Daten enthalten ist, die es von zumindest einem Teilnehmer in einer Sitzung empfängt (S1004) (z.B. als Teil einer Teilnehmerliste 908a oder 908b) (Antwort „ja"), weiß das System des Benutzers, dass der Benutzer dieser Sitzung beitreten darf. Der Rechner des Benutzers kann dann die Nachrichten anfordern, die ihm aus der Nachrichtenhistorie 910, die in den Ping Daten 900 enthalten ist, fehlen (S1006) und kann so in der Sitzung auf den aktuellen Stand gebracht werden (z.B. durch den in Verbindung mit 8 beschriebenen Ablauf). Wenn gewünscht, kann dem Benutzer die Wahl gegeben werden, zu entscheiden, ob er/sie einer Sitzung beitreten möchte, z.B. durch eine Frage oder eine Dialogbox oder in irgendeiner anderen geeigneten Weise. Der Ablauf aus 10 kann dann zu Ende gehen (S1008) und das System des Benutzers kann auf zusätzliche Ping- und/oder Nachrichtendaten lauschen.
  • Wenn der Ablauf bei S1004 feststellt, dass die ID-Nummer des Benutzers in den Teilnehmerlisten 908a oder 908b in den empfangenen Pingdaten 900 nicht enthalten ist (Antwort „nein"), kann dieser Ablauf zu Ende gehen (S1008), den Schritt 1006 überspringen, und das System kann fortfahren, auf zusätzliche Ping und/oder Nachrichtendaten zu lauschen.
  • 11 enthält ein Flussdiagramm, das einen weiteren Ablauf beschreibt, durch den ein Benutzer als potentieller Teilnehmer in einer Sitzung entdeckt und in die Sitzung eingeladen werden kann. Zu Beginn des Ablaufs (S1100) betritt ein Benutzer, der nicht an einer bestimmten Sitzung beteiligt ist, ein Netzwerk, auf dem eine Sitzung stattfindet (S1102). Diese Tatsache kann durch Teilnehmer der Sitzung erkannt werden, z.B. wenn der neu hinzugetretene Computer des Benutzers Ping Daten 900 überträgt (z.B. über einen UDP Broadcast). Wenn der neu hinzugetretene Benutzer nicht an irgendeiner Sitzung beteiligt ist, können die Ping Daten 900 auf die Benutzer-ID-Nummer 902 beschränkt sein, wie in 9 gezeigt. Wenn einer oder mehrere Teilnehmer der Sitzung diese Ping-Daten-Information des neu hinzugetretenen Benutzers empfangen, kann das System oder Verfahren gemäß dieses Beispiels einen oder mehrere der bestehenden Teilnehmer fragen, ob der neu hinzugetretene Benutzer eingeladen werden soll, der Sitzung beizutreten (S1104). Wenn die Teilnehmer entscheiden, den Neuling in die Sitzung einzuladen (Antwort „ja") kann die Benutzer-ID-Nummer des Neulings einer Teilnehmerliste der Sitzung hinzugefügt werden (S1106). Dann können Ping-Daten 900 mit der Benutzer-ID-Nummer des Neulings in den Feldern 908a oder 908b gesendet werden (S1108). Als Alternative wird auch die nächste Datennachricht 700 in der Sitzung die Benutzer-ID des Neulings auf der Teilnehmerliste 710 enthalten. Wenn der Neuling diese Ping-Daten 900 und/oder Nachrichtendaten 700 empfängt, wird er seine Benutzer-ID-Nummer in den Ping-Daten 900 und/oder Nachrichtendaten 700 bemerken und der Ablauf aus 8 und/oder 10 kann stattfinden. Der Einladungsablauf aus 11 beendet dann S1110. Wahlweise kann der neue Benutzer eingeladen werden, der Sitzung beizutreten, wie oben in Verbindung mit 10 beschrieben wurde.
  • Wenn die Teilnehmer in der Sitzung bei S1104 entscheiden, den Neuling nicht in die Sitzung einzuladen (Antwort „nein"), werden S1106 und S1108 übersprungen und der Ablauf endet (S11109). Die Ping-Daten 900 können auch verwendet werden, um es anderen zu erlauben festzustellen, wenn ein bestimmter Benutzer eine Sitzung verlassen hat. Wenn z.B die Ping-Daten 900 eines Sitzungsteilnehmers innerhalb eines vorbestimmten Zeitintervalls nicht empfangen wurden (z.B. vier mal die Pingdatenübertra gungsfrequenz), können die anderen Teilnehmer daraus schließen, dass dieser Teilnehmer die Sitzung verlassen hat. Wenn gewünscht, können in einigen Beispielsystemen und Verfahren die IDs der ehemaligen Teilnehmer von der Sitzungsteilnehmerliste gestrichen werden. Wahlweise kann das System die verbleibenden Teilnehmer der Sitzung fragen, ob der ehemalige Teilnehmer von der Teilnehmer-ID-Liste der Sitzung gestrichen werden soll.
  • F. Widersprüchliche Nachrichten
  • Die Systeme und Verfahren gemäß zumindest einiger Beispiele der Erfindung werden Protokolle und Abläufe enthalten, um gleichzeitige, nahezu gleichzeitige und widersprüchliche Anweisungen zu behandeln. Unweigerlich werden sich in gemeinschaftlichen Systemen und Verfahren dieser Art mit mehreren Benutzern, die unabhängig voneinander in der Lage sind, Eingaben hinzuzufügen, einige Nachrichtendaten, die von den verschiedenen Teilnehmern gesendet wurden, widersprechen. So kann z.B. ein Teilnehmer versuchen, einen Tintenstrich, Striche, Text oder Grafik zu genau der gleichen Zeit von der elektronischen Weißwandtafel auszuschneiden, zu der ein anderer Teilnehmer versucht, die Farbe, Größe oder andere Eigenschaft von genau dem Strich, den Strichen, Text oder Grafik zu ändern.
  • Diese Situation kann in jeder geeigneten Weise gehandhabt werden, ohne von der Erfindung abzuweichen. Wenn z.B. alle Workstations der Sitzung auf einem gemeinsamen Netzwerk arbeiten, das eine gemeinsame zentrale Uhr verwendet, kann jede Nachricht mit einem Übertragungszeitstempel auf Basis dieser zentralen Uhr versehen werden, und die Reihenfolge der Nachrichtenverarbeitung könnte auf diesem Zeitstempel basieren. Für zwei oder mehr Nachrichten, die genau zu der gleichen Zeit übertragen wurden, kann eine hierarchische Reihenfolge von irgendeiner Art verwendet werden, um festzustellen, welche Nachricht den Vorrang hat. Z.B. kann eine alphabetische und/oder numerische hierarchische Reihenfolge auf Basis der Benutzer-ID-Nummer für jeden an der Sitzung teilnehmenden Benutzer verwendet werden. Als weiteres Beispiel könnte die Reihenfolge auf Basis der Zeit, zu der die sich widersprechenden Teilnehmer der Sitzung beigetreten sind, hergestellt werden. Viele andere Möglichkeiten inklusive einer zufälligen Auswahl einer der Nachrichten kann ebenfalls verwendet werden, ohne von der Erfindung abzuweichen.
  • Da Nachrichten über ein Rechner-Rechner-Netzwerk in zumindest einigen Beispielen der Erfindung übertragen werden können, können zwei sich widersprechende gleichzeitige Nachrichten auf den Workstations einiger Teilnehmer in der falschen Reihenfolge empfangen werden, was zu einer Verarbeitung der Nachricht mit der niedrigeren Rangstufe führt, bevor die Workstation des Benutzers überhaupt weiß, dass eine Nachricht mit einer höheren Rangstufe existiert. Nehmen wir z.B. an, dass ein Teilnehmer A eine Nachricht A10 mit der Anweisung, einen Tintenstrich zu löschen, zu genau dem gleichen Zeitpunkt sendet, zu dem der Teilnehmer B die Nachricht B10 sendet, mit der der gleiche Tintenstrich vergrößert werden soll. Diese beiden Nachrichten sind widersprüchlich. Nehmen wir weiter an, dass aufgrund des Rangfolgeprotokolls die Nachricht A10 Vorrang hat gegenüber der Nachricht B10 (z.B. basierend auf einer alphabetischen/numerischen Reihenfolge der widersprüchlichen Nachrchten-IDs oder der widersprüchlichen Sender IDs). Da jeder der Teilnehmer A und B mit allen Teilnehmern in diesem Beispiel in direkter Weise kommuniziert, kann der Teilnehmer C (sowie auch andere) die Nachricht B10 vor der Nachricht A10 empfangen. Zu dem Zeitpunkt, zu dem die Nachricht B10 empfangen wird, kann die Workstation des Teilnehmers C nichts über die Nachricht A10 wissen und wenn alle vorhergehenden Nachrichten in der Nachrichtenhistorie von B10 bei der Workstation des Teilnehmers 10 vorhanden sind, wird diese Workstation die Nachricht B10 verarbeiten und erst später die Nachricht A10 empfangen. In diesem Fall, wenn sie die Nachricht A10 empfängt, kann die Workstation des Teilnehmers C eine „Rückgängigmachen"-Funktion ausführen, um alle Nachrichten rückgängig zu machen, bis die Nachricht B10 rückgängig gemacht ist. Dann wird die Nachricht A10 auf dem Rechner des Teilnehmers C verarbeitet und die Nachricht B10 wird verworfen (sowie auch jede andere Nachricht verworfen wird, die von der Nachricht B10 abhängt). Die anderen „rückgängig" gemachten Nachrichten, die nicht von der Nachricht B10 abhängen, werden auf der Workstation des Teilnehmers C erneut in der ursprünglichen oder in der Reihenfolge des Zeitstempels verarbeitet.
  • Natürlich kann jeder geeignete Ablauf oder Protokoll zur Verarbeitung von widersprüchlichen Nachrichten verwendet werden, ohne von der Erfindung abzuweichen.
  • B. Einrichten einer neuen Sitzung
  • Eine neue Sitzung kann in jeder gewünschten oder geeigneten Weise gestartet werden, ohne von der vorliegenden Erfindung abzuweichen. Beim Starten eines elektronischen Weißwandtafelanwendungsprogramms oder eines anderen Anwendungsprogramms könnte zum Beispiel das Programm den startenden Teilnehmer auffordern, Namen oder Benutzer-ID-Nummern der gewünschten oder autorisierten Teilnehmer einzugeben. Als anderes Beispiel können, wenn ein Anwendungsprogramm dieser Art gestartet wird, potentielle Teilnehmer in der Sitzung identifiziert werden und über ihr Ping-Daten, wie oben beschrieben, hinzugefügt werden. Als weiteres Beispiel könnte, wenn ein Programm dieser Art gestartet wird, der startende Teilnehmer auf ein Menü der verfügbaren oder potentiellen Teilnehmer zugreifen und mögliche Teilnehmer aus dieser Auflistung auswählen. Diese Möglichkeiten sind lediglich Beispiele. Kombinationen dieser Möglichkeiten und/oder andere Möglichkeiten können verwendet werden, ohne von der Erfindung abzuweichen.
  • H. Sicherheit
  • Verschiedene Beispiele der vorliegenden Erfindung verwenden, wie oben beschrieben wurde, UDP Broadcasts, um Nachrichten und/oder Ping-Daten an Teilnehmer der Sitzung zu übertragen. Wie oben erwähnt, übertragen UDP-Broadcasts Daten ohne Unterscheidung an alle Benutzer auf dem Subnetz (und kann auf andere Subnetze überbrückt werden), selbst wenn zumindest einige dieser Teilnehmer nicht an der Sitzung beteiligt werden sollen. Während diese Funktion dahingehend vorteilhaft ist, dass sie es den Benutzern erlaubt, einer Sitzung ungehindert beizutreten und sie zu verlassen, birgt sie auch ein mögliches Sicherheitsrisiko, da die Datennachrichten in der Sitzung auch anderen gezeigt werden.
  • Dieser Tatsache kann in jeder geeigneten Weise begegnet werden, ohne von der Erfindung abzuweichen. So kann z.B. Verschlüsselung, Verwürfelung und/oder ein anderes geeignetes Sicherheitsverfahren verwendet werden, um unautorisierten Zugriff auf eine Sitzung und/oder Nachrichtendaten zu verhindern. Als anderes Beispiel kann zumindest in einigen Beispielen der Erfindung eine sicherere und direktere Kommunikation verwendet werden, um zu verhindern, dass zumindest einige der Nachrchten und/oder Ping-Daten allgemein übertragen werden. Jede andere geeignete Sicherheitstechnik, inklusive der herkömmlich im Stand der Technik bekannten Techniken können verwendet werden, ohne von der Erfindung abzuweichen.
  • V. Schlussbemerkung
  • Verschiedene Beispiele der vorliegenden Erfindung wurden obenstehend beschrieben und es versteht sich, dass die vorliegende Erfindung in ihrem Umfang alle Kombinationen und Unterkombinationen dieser Beispiele umfasst. Zusätzlich wird der Fachmann erkennen, dass die obigen Beispiele einfach verschiedene Aspekte der Erfindung veranschaulichen. Während z.B. viele Aspekte der Erfindung in Bezug auf eine „elektronische Weißwandtafelsitzung" oder eine andere gemeinschaftliche Sitzung beschrieben wurden, wird der Fachmann erkennen, dass die Erfindung nicht auf diese Art gemeinschaftlicher Sitzungen beschränkt ist. Im Gegenteil können Aspekte der Erfindung allgemein auf verschiedene Arten der Kommunikation zwischen verschiedenen Benutzern angewendet werden. Ebenso können verschiedene Änderungen und Abwandlungen vorgenommen werden, ohne vom Umfang der Erfindung, wie er in den beigefügten Ansprüchen definiert wird, abzuweichen.

Claims (40)

  1. Verfahren zur Datenübertragung über ein Netzwerk mit den Schritten: Einrichten einer Sitzung (404a-404) für den Datentransfer, wobei die Sitzung mehrere Teilnehmer (A-J) enthält; Übertragen einer Nachricht (410a-410m) von einem Teilnehmer der Sitzung, wobei die Nachricht zumindest enthält: eine Übertragungsteilnehmerkennung (702), eine Nachrichtenkennung (704), Sitzungsinformation (706) und eine Nachrichtennutzlast (714); Feststellen (S804), ob ein Benutzer, der die übertragene Nachricht empfängt, ein Teilnehmer der Sitzung ist und; Verarbeiten der Nachricht für den Benutzer, wenn der Benutzer ein Teilnehmer der Sitzung ist (S808).
  2. Verfahren nach Anspruch 1, wobei das Feststellen, ob der Benutzer ein Teilnehmer der Sitzung ist, zumindest einen der folgenden Schritte enthält: (a) Feststellen, ob der Benutzer in der Sitzung (404a-404n) aktiv ist (S804), oder (b) Feststellen, ob der Benutzer in der Sitzungsteilnehmerliste enthalten ist (S816).
  3. Verfahren nach Anspruch 2, wobei der Benutzer zu der Sitzung hinzugefügt wird (S820), wenn festgestellt wurde, dass der Benutzer in der Sitzungsteilnehmerliste enthalten ist, aber in der Sitzung noch nicht aktiv ist (404a, 404n).
  4. Verfahren nach Anspruch 1, wobei das Verfahren vor der Verarbeitung der Nachricht für den Benutzer außerdem den Schritt enthält: Feststellen (S806), ob der Benutzer alle vorangegangenen Nachrichten (410a-410m) in der Sitzung (404a-404m) empfangen hat.
  5. Verfahren nach Anspruch 4, des Weiteren enthaltend: Beschaffen vorheriger Nachrichten (410a, 410m) in der Sitzung (404a-404m), die zuvor nicht durch den Benutzer empfangen wurden.
  6. Verfahren nach Anspruch 5, wobei die nicht empfangenen, vorherigen Nachrichten (410a-410m) durch eine Übertragung von zumindest einem Teilnehmer der Sitzung (404a, 404m) beschafft werden.
  7. Verfahren nach Anspruch 6, wobei die Sitzungsteilnehmer zufällig entscheiden, ob sie eine oder mehrere der nicht empfangenen vorherigen Nachrichten (410a, 410m) übertragen.
  8. Verfahren nach Anspruch 4, wobei wenn festgestellt wurde, dass der Benutzer nicht alle vorherigen Nachrichten in der Sitzung empfangen hat, das Verfahren des Weiteren enthält: a) Senden einer Anforderung (S812) durch den Benutzer für zumindest eine nicht empfangene Nachricht (410a-410m); b) Übertragen der zumindest einen nicht empfangenen Nachricht an den Benutzer durch zumindest einen Teilnehmer in der Sitzung; und c) Wiederholen von (a) und (b) bis alle Nachrichten in der Sitzung durch den Benutzer empfangen wurden.
  9. Verfahren nach Anspruch 8, wobei jeder Teilnehmer in der Sitzung zufällig entscheidet, ob er eine oder mehrere der nicht empfangenen Nachrichten (410a-410m), die durch den Benutzer angefordert wurden, überträgt.
  10. Verfahren nach Anspruch 1, wobei die Sitzung eine Rechner-Rechner-Kommunikation beinhaltet.
  11. Verfahren nach Anspruch 1, wobei die Teilnehmer der Sitzung nicht wirksam mit einem gemeinsamen Server verbunden sind.
  12. Verfahren nach Anspruch 1, wobei zumindest einer der Sitzungsteilnehmer oder der Benutzer mit dem Netzwerk über eine drahtlose Verbindung verbunden ist.
  13. Verfahren nach Anspruch 1, wobei das Feststellen, ob der Benutzer ein Teilnehmer in der Sitzung ist, enthält: Empfangen einer Angabe, dass der Benutzer auf dem Netzwerk präsent ist; und Hinzufügen des Benutzers zu der Sitzung.
  14. Verfahren nach Anspruch 13, des Weiteren enthaltend: Hinzufügen des Benutzers zu einer Teilnehmerliste für die Sitzung (S820).
  15. Verfahren nach Anspruch 13, wobei das Verfahren als Reaktion auf den Empfang der Angabe des Weiteren enthält: Befragen zumindest eines Sitzungsteilnehmers, ob der Benutzer der Sitzung hinzugefügt werden soll.
  16. Verfahren nach Anspruch 13, wobei das Verfahren als Reaktion auf den Empfang der Angabe des Weiteren enthält: Einladen des Benutzers, der Sitzung beizutreten.
  17. Verfahren nach Anspruch 1, wobei das Feststellen, ob der Benutzer ein Teilnehmer der Sitzung ist, enthält: Befragen zumindest eines Sitzungsteilnehmers, ob der Benutzer der Sitzung hinzugefügt werden soll.
  18. Verfahren nach Anspruch 1, wobei die Nachrichtennutzlast (718) elektronische Tintendaten enthält (A1-C3).
  19. Verfahren nach Anspruch 1, wobei die Sitzung eine virtuelle Weißwandtafel (600) enthält, auf der mehrere Sitzungsteilnehmer neue Nachrichten hinzufügen, bestehende Nachrichten löschen, oder bestehende Nachrichten ändern können.
  20. Verfahren nach Anspruch 1, wobei das Feststellen, ob der Benutzer ein Teilnehmer der Sitzung ist, enthält: Einladen des Benutzers, der Sitzung beizutreten; und Hinzufügen des Benutzers zu einer Teilnehmerliste (S820) für die Sitzung, wenn die Einladung akzeptiert wurde.
  21. Verfahren nach Anspruch 1, wobei die Nachricht unter Verwendung des User Datagram Protocols übertragen wird.
  22. System zur Verarbeitung von über ein Netzwerk empfangener Daten, wobei eine Sitzung (404a-404n), die die Übertragung von Daten zwischen mehreren Teilnehmern beinhaltet, auf dem Netzwerk stattfindet, wobei das System umfasst: einen Empfänger, der angepasst ist, um eine Übertragungsnachricht (410a, 410m) von einem Teilnehmer der Sitzung zu empfangen, wobei die Nachricht zumindest enthält: eine Übertragungsteilnehmerkennung (702), eine Nachrichtenkennung (704), Sitzungsinformation (706) und eine Nachrichtennutzlast (714); und einen Prozessor, der programmiert und angepasst ist, um zu bestimmen (S804), ob ein Benutzer, der die Nachricht empfängt, ein Teilnehmer in der Sitzung ist, und die Nachricht zu verarbeiten (S808), wenn der Benutzer ein Teilnehmer der Sitzung ist.
  23. System nach Anspruch 22, wobei der Prozessor bestimmt, ob der Benutzer ein Teilnehmer der Sitzung ist, indem er zumindest: (a) feststellt, ob der Benutzer ein aktiver Teilnehmer (S804) in der Sitzung ist oder (b) feststellt, ob der Benutzer in der Teilnehmerliste der Sitzung enthalten ist (S816).
  24. System nach Anspruch 22, wobei vor der Verarbeitung der Nachricht der Prozessor außerdem feststellt (S806), ob der Benutzer alle vorherigen Nachrichten (410a, 410m) in der Sitzung (404a-404n) empfangen hat.
  25. System nach Anspruch 24, des weiteren enthaltend: ein Übertragungssystem, das angepasst ist, um eine Anforderung (S812) für zumindest eine vorherige Nachricht in der Sitzung (404a-404n) zu übertragen, die zuvor nicht durch den Benutzer empfangen wurde.
  26. System nach Anspruch 22, wobei die Sitzung eine Rechner-Rechner-Kommunikation beinhaltet.
  27. System nach Anspruch 22, wobei die Datenübertragung in der Sitzung keinen gemeinsamen Server verwendet.
  28. System nach Anspruch 22, wobei der Empfänger die Nachrichtennutzlast (714) über das Netzwerk mittels einer drahtlosen Verbindung empfängt.
  29. System nach Anspruch 22, wobei die Nachrichtennutzlast (714) elektronische Tintendaten (A1-C3) enthält.
  30. System nach Anspruch 22, wobei die Sitzung eine virtuelle Weisswandtafel (600) bildet, auf der mehrere Sitzungsteilnehmer neue Nachrichten (410a, 410m) hinzufügen, bestehende Nachrichten löschen, oder bestehende Nachrichten ändern können.
  31. System nach Anspruch 22, wobei die Nachricht unter Verwendung des User Datagram Protocols übertragen wird.
  32. Arbeitsplatzgerät mit: einem Verbindungssystem, das angepasst ist, um auf ein Netzwerk zuzugreifen, auf dem eine Sitzung (404a-404n) stattfindet, wobei die Sitzung mehrere Teilnehmer enthält, die in der Lage sind, Nachrichtendaten (700) zu senden und zu empfangen; ein Nachrichtenempfangssystem, das angepasst ist, um eine übertragende Nachricht (410a, 410m) von einem Teilnehmer der Sitzung zu empfangen, wobei die Nachricht zumindest enthält: eine Übertragungsteilnehmerkennung (702), eine Nachrichtenkennung (704), Sitzungsinformation (706) und eine Nachrichtennutzlast (714); und einen Prozessor, der programmiert und angepasst ist, um zu bestimmen, ob ein Benutzer des Arbeitsplatzgeräts, der die übertragende Nachricht empfängt, ein Teilnehmer der Sitzung ist, und die Nachricht für den Benutzer verarbeitet, wenn der Benutzer ein Teilnehmer der Sitzung ist (S808).
  33. Arbeitsplatzgerät nach Anspruch 32, wobei der Prozessor bestimmt, ob der Benutzer ein Teilnehmer der Sitzung ist (404a-404n), in dem bestimmt wird, ob der Benutzer in einer Teilnehmerliste der Sitzung enthalten ist.
  34. Arbeitsplatzgerät nach Anspruch 32, des Weiteren enthaltend: ein Übertragungssystem, das angepasst ist, um eine Anforderung (S812) für zumindest eine zuvor nicht empfangene Nachricht zu übertragen.
  35. Arbeitsplatzgerät nach Anspruch 32, wobei die Sitzung eine Rechner-Rechner-Kommunikation beinhaltet.
  36. Arbeitsplatzgerät nach Anspruch 32, wobei die Nachrichtendaten nicht über einen gemeinsamen Server an alle Teilnehmer der Sitzung übertragen werden.
  37. Arbeitsplatzgerät nach Anspruch 32, wobei das Verbindungssystem sich mit dem Netzwerk über eine drahtlose Verbindung verbindet.
  38. Arbeitsplatzgerät nach Anspruch 32, wobei das Nachrichtenempfangssystem angepasst ist, um Nachrichten zu empfangen, die unter Verwendung des User Datagram Protocols übertragen werden.
  39. Arbeitsplatzgerät nach Anspruch 32, wobei zumindest einige der Nachrichtendaten elektronische Tintendaten enthalten.
  40. Computerlesbares Medium mit darauf gespeicherten computerlesbaren Anweisungen, die konfiguriert sind, um die Schritte von einem der Verfahren der Ansprüche 1 bis 21 zu führen, wenn sie auf einem Computer laufen gelassen werden.
DE602004006798T 2003-05-02 2004-03-19 Nachrichtenübertragung über transiente Verbindungen in einer peer-to-peer Netzwerkumgebung Expired - Lifetime DE602004006798T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US427941 2003-05-02
US10/427,941 US7966368B2 (en) 2003-05-02 2003-05-02 Communicating messages over transient connections in a peer-to-peer network

Publications (2)

Publication Number Publication Date
DE602004006798D1 DE602004006798D1 (de) 2007-07-19
DE602004006798T2 true DE602004006798T2 (de) 2007-10-11

Family

ID=32990461

Family Applications (2)

Application Number Title Priority Date Filing Date
DE602004021068T Expired - Lifetime DE602004021068D1 (de) 2003-05-02 2004-03-19 Nachrichtenübertragung über transiente Verbindungen in einem peer-to-peer Netzwerk
DE602004006798T Expired - Lifetime DE602004006798T2 (de) 2003-05-02 2004-03-19 Nachrichtenübertragung über transiente Verbindungen in einer peer-to-peer Netzwerkumgebung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE602004021068T Expired - Lifetime DE602004021068D1 (de) 2003-05-02 2004-03-19 Nachrichtenübertragung über transiente Verbindungen in einem peer-to-peer Netzwerk

Country Status (7)

Country Link
US (1) US7966368B2 (de)
EP (2) EP1473871B1 (de)
JP (1) JP4658509B2 (de)
KR (1) KR20040094309A (de)
CN (1) CN100461681C (de)
AT (2) ATE431656T1 (de)
DE (2) DE602004021068D1 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021737A1 (en) * 2003-05-01 2005-01-27 Ellison Carl M. Liveness protocol
US7467415B2 (en) * 2003-09-30 2008-12-16 Novell, Inc. Distributed dynamic security for document collaboration
US7316027B2 (en) * 2004-02-03 2008-01-01 Novell, Inc. Techniques for dynamically establishing and managing trust relationships
US7299493B1 (en) * 2003-09-30 2007-11-20 Novell, Inc. Techniques for dynamically establishing and managing authentication and trust relationships
US7581097B2 (en) * 2003-12-23 2009-08-25 Lenovo Pte Ltd Apparatus, system, and method for secure communications from a human interface device
US8688803B2 (en) 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7454465B2 (en) * 2004-03-26 2008-11-18 Microsoft Corporation Real-time collaboration and communication in a peer-to-peer networking infrastructure
US7865734B2 (en) 2005-05-12 2011-01-04 The Invention Science Fund I, Llc Write accessibility for electronic paper
US8063878B2 (en) 2005-01-20 2011-11-22 The Invention Science Fund I, Llc Permanent electronic paper
US7856555B2 (en) 2005-01-20 2010-12-21 The Invention Science Fund I, Llc Write accessibility for electronic paper
US7774606B2 (en) 2005-01-20 2010-08-10 The Invention Science Fund I, Inc Write accessibility for electronic paper
US8640259B2 (en) 2005-01-20 2014-01-28 The Invention Science Fund I, Llc Notarizable electronic paper
US8281142B2 (en) 2005-01-20 2012-10-02 The Invention Science Fund I, Llc Notarizable electronic paper
US7739510B2 (en) 2005-05-12 2010-06-15 The Invention Science Fund I, Inc Alert options for electronic-paper verification
US7669245B2 (en) * 2005-06-08 2010-02-23 Searete, Llc User accessibility to electronic paper
EP1684481B1 (de) * 2005-01-21 2007-03-14 Research In Motion Limited Système et procédé de sélection d'une connexion active
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7469149B2 (en) * 2005-06-03 2008-12-23 Motorola, Inc. Method and apparatus for serially establishing a group call session
US7774827B2 (en) * 2005-06-06 2010-08-10 Novell, Inc. Techniques for providing role-based security with instance-level granularity
KR100792809B1 (ko) * 2005-08-22 2008-01-14 인피니언 테크놀로지스 아게 회의 세션 초대 메시지의 컴퓨터 지원 구성 방법, 회의세션의 컴퓨터 지원 생성 방법, 회의 세션에서 메시지의컴퓨터 지원 처리 방법, 회의 세션 초대 메시지 생성 유닛,회의 세션 생성 유닛 및 통신 단말 장치
US7634551B2 (en) * 2005-12-07 2009-12-15 Xerox Corporation System and method for forming a cluster of networked devices
US8195747B2 (en) * 2005-12-20 2012-06-05 International Business Machines Corporation User identity based instant messaging session monitoring
US7680044B2 (en) * 2005-12-29 2010-03-16 Panasonic Electric Works Co., Ltd. Systems and methods for managing traffic within a peer-to-peer network
US20070175785A1 (en) * 2006-01-28 2007-08-02 Darren Sharp Accessory bit caddie base marketing cover
US8639605B2 (en) * 2006-04-21 2014-01-28 Thomson Reuters Global Resources Systems and methods for the identification and messaging of trading parties
FI20065479A0 (fi) * 2006-07-05 2006-07-05 Nokia Corp Ryhmäkommunikaatio
WO2008039860A1 (en) 2006-09-26 2008-04-03 Experian Information Solutions, Inc. System and method for linking mutliple entities in a business database
WO2008048167A1 (en) * 2006-10-17 2008-04-24 Anoto Ab Data transfer from multiple electronic pens
US8243022B2 (en) * 2006-11-27 2012-08-14 Microsoft Corporation Federated virtual graffiti
US8285656B1 (en) 2007-03-30 2012-10-09 Consumerinfo.Com, Inc. Systems and methods for data verification
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
KR101499963B1 (ko) * 2008-08-25 2015-03-06 엘지전자 주식회사 휴대 단말기 및 휴대 단말기를 이용한 정보 제공 방법
US20100100866A1 (en) * 2008-10-21 2010-04-22 International Business Machines Corporation Intelligent Shared Virtual Whiteboard For Use With Representational Modeling Languages
JP5206532B2 (ja) * 2009-03-25 2013-06-12 日本電気株式会社 システム及びメッセージ中継サーバ及び端末装置
US8086734B2 (en) 2009-08-26 2011-12-27 International Business Machines Corporation Method of autonomic representative selection in local area networks
CN103457935A (zh) * 2009-11-12 2013-12-18 华为终端有限公司 建立联合会话的方法和应用服务器
CN102065062B (zh) * 2009-11-12 2013-08-28 华为终端有限公司 建立联合会话的方法和应用服务器
US9372728B2 (en) * 2009-12-03 2016-06-21 Ol Security Limited Liability Company System and method for agent networks
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9130763B2 (en) * 2011-06-20 2015-09-08 Microsoft Technology Licensing, Llc Automatic sharing of event content by linking devices
KR101909031B1 (ko) * 2012-07-26 2018-10-17 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
WO2014061715A1 (ja) * 2012-10-19 2014-04-24 グリー株式会社 画像配信方法、画像配信サーバ装置及びチャットシステム
FR2998995A1 (fr) * 2012-12-03 2014-06-06 France Telecom Procede de communication entre plusieurs utilisateurs munis de terminaux de communication, par l'intermediaire d'une espace virtuel de communication
JP6155635B2 (ja) * 2012-12-26 2017-07-05 株式会社リコー 情報処理システム、サーバー機器及び情報処理装置
US9697263B1 (en) 2013-03-04 2017-07-04 Experian Information Solutions, Inc. Consumer data request fulfillment system
US10126927B1 (en) 2013-03-15 2018-11-13 Study Social, Inc. Collaborative, social online education and whiteboard techniques
US9706267B2 (en) * 2013-04-22 2017-07-11 Aginova Inc. iCelsius wireless: wireless monitoring with smart phones and tablets
EP2811796A1 (de) * 2013-06-07 2014-12-10 Stichting Vu-Vumuc Positionsbasiertes Rundfunkprotokoll und Zeitschlitzplan für ein drahtloses Mesh-Netzwerk
US9489114B2 (en) 2013-06-24 2016-11-08 Microsoft Technology Licensing, Llc Showing interactions as they occur on a whiteboard
JP2015080075A (ja) * 2013-10-16 2015-04-23 ソニー株式会社 映像表示システム、外部装置および映像表示方法
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9529851B1 (en) 2013-12-02 2016-12-27 Experian Information Solutions, Inc. Server architecture for electronic data quality processing
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
WO2016049905A1 (zh) * 2014-09-30 2016-04-07 深圳市大疆创新科技有限公司 一种飞行任务处理方法、装置及系统
WO2017018016A1 (ja) * 2015-07-24 2017-02-02 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2017076207A (ja) * 2015-10-14 2017-04-20 株式会社リコー 画像処理装置及び画像処理システム
US10375194B2 (en) * 2015-10-30 2019-08-06 The Nielsen Company (Us), Llc Methods and apparatus to prevent illicit proxy communications from affecting a monitoring result
CN106685600B (zh) * 2015-11-05 2019-09-20 北京中广上洋科技股份有限公司 局域网内工作站之间的消息传递方法
AU2018215082B2 (en) 2017-01-31 2022-06-30 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
WO2020212611A1 (en) * 2019-04-18 2020-10-22 Medicus Ai Gmbh Method and system for transmitting combined parts of distributed data
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11880377B1 (en) 2021-03-26 2024-01-23 Experian Information Solutions, Inc. Systems and methods for entity resolution
US20220345855A1 (en) * 2021-04-22 2022-10-27 Amdocs Development Limited System, method, and computer program for unified messaging platform deployed on ephemeral mesh network

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5216675A (en) * 1990-05-23 1993-06-01 The United States Of America As Represented By The Secretary Of The Air Force Reliable broadcast protocol
US5805825A (en) * 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6295550B1 (en) * 1996-10-23 2001-09-25 Ncr Corporation Session creation mechanism for collaborative network navigation
US5940082A (en) * 1997-02-14 1999-08-17 Brinegar; David System and method for distributed collaborative drawing
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
JPH11272534A (ja) 1998-01-20 1999-10-08 Fujitsu Ltd ドキュメント分散処理方法,ドキュメント分散処理システムのサーバ管理方法およびサーバプログラムの記録媒体
US6484196B1 (en) * 1998-03-20 2002-11-19 Advanced Web Solutions Internet messaging system and method for use in computer networks
US6363421B2 (en) * 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
US6505253B1 (en) * 1998-06-30 2003-01-07 Sun Microsystems Multiple ACK windows providing congestion control in reliable multicast protocol
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
US6604129B2 (en) * 1999-03-25 2003-08-05 At&T Corp. Method and apparatus for a conference call mediation service
US6763373B2 (en) * 1999-10-13 2004-07-13 Datahouse Labs, Inc. Method and system for creating and sending handwritten or handdrawn messages
US6304898B1 (en) * 1999-10-13 2001-10-16 Datahouse, Inc. Method and system for creating and sending graphical email
US6564249B2 (en) 1999-10-13 2003-05-13 Dh Labs, Inc. Method and system for creating and sending handwritten or handdrawn messages
US6606644B1 (en) * 2000-02-24 2003-08-12 International Business Machines Corporation System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
JP3571616B2 (ja) 2000-05-23 2004-09-29 エヌ・ティ・ティ・コムウェア株式会社 データの共有方法、端末装置および記録媒体
US6980518B1 (en) * 2000-06-23 2005-12-27 International Business Machines Corporation Gossip-based reliable multicast message recovery system and method
US6910069B1 (en) * 2000-07-31 2005-06-21 The Boeing Company Joining a broadcast channel
US6920497B1 (en) * 2000-07-31 2005-07-19 The Boeing Company Contacting a broadcast channel
AU784512B2 (en) 2000-10-19 2006-04-13 International Business Machines Corporation Method and system for persistent chat sessions
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020129106A1 (en) * 2001-03-12 2002-09-12 Surgency, Inc. User-extensible system for manipulating information in a collaborative environment
US6981223B2 (en) * 2001-03-19 2005-12-27 Ecrio, Inc. Method, apparatus and computer readable medium for multiple messaging session management with a graphical user interface
US6636745B2 (en) * 2001-08-10 2003-10-21 Motorola, Inc. Method and apparatus to shorten call-setup time
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US20030135552A1 (en) * 2002-01-14 2003-07-17 Blackstock Michael A. Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users
US20030135565A1 (en) * 2002-01-14 2003-07-17 Julio Estrada Electronic mail application with integrated collaborative space management
US20030163525A1 (en) * 2002-02-22 2003-08-28 International Business Machines Corporation Ink instant messaging with active message annotation
US7421736B2 (en) * 2002-07-02 2008-09-02 Lucent Technologies Inc. Method and apparatus for enabling peer-to-peer virtual private network (P2P-VPN) services in VPN-enabled network
US7362349B2 (en) * 2002-07-10 2008-04-22 Seiko Epson Corporation Multi-participant conference system with controllable content delivery using a client monitor back-channel
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
JP2004110573A (ja) * 2002-09-19 2004-04-08 Ricoh Co Ltd データ通信方法、データ通信装置、データ通信システム及びデータ通信プログラム
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US20040215784A1 (en) * 2003-04-28 2004-10-28 Yan Qi Distributed management of collaboration sessions including local and remote servers

Also Published As

Publication number Publication date
ATE431656T1 (de) 2009-05-15
JP2004334847A (ja) 2004-11-25
JP4658509B2 (ja) 2011-03-23
EP1473871B1 (de) 2007-06-06
EP1473871A3 (de) 2004-12-22
DE602004006798D1 (de) 2007-07-19
US7966368B2 (en) 2011-06-21
DE602004021068D1 (de) 2009-06-25
CN1543124A (zh) 2004-11-03
EP1496646A2 (de) 2005-01-12
ATE364273T1 (de) 2007-06-15
US20040221043A1 (en) 2004-11-04
EP1473871A2 (de) 2004-11-03
EP1496646B1 (de) 2009-05-13
KR20040094309A (ko) 2004-11-09
EP1496646A3 (de) 2005-05-25
CN100461681C (zh) 2009-02-11

Similar Documents

Publication Publication Date Title
DE602004006798T2 (de) Nachrichtenübertragung über transiente Verbindungen in einer peer-to-peer Netzwerkumgebung
DE60127078T2 (de) Vorrichtung für anhaltende Chatsitzungen
DE60038705T2 (de) Verfahren und vorrichtung für die aktivitäts-basierte zusammenarbeit eines rechnersystems, ausgestattet mit einem kommunikations-manager
DE602004007864T2 (de) Architektur für ein ausdehnbares Echtzeitzusammenarbeitssystem
DE4436677B4 (de) Verfahren und Einrichtung zum Übertragen von Datenblöcken großer Objekte in einem Telekonferenzsystem
DE602004006902T2 (de) Verfahren und System zur Verarbeitung von Mitteilungen von geteilten Ressourcen
DE60210343T2 (de) Persönlicher benutzer-agent
DE60132433T2 (de) Sofortige nachrichtenübermittlung mit zusätzlicher sprachkommunikation
DE60124885T2 (de) Verfahren und geräte für schneiden, kopieren und kleben zwischen computersystemen über einem drahtlosen netz
DE69734189T2 (de) Verteiltes Netzwerkrechnersystem und Datenaustauschgerät
DE202012013447U1 (de) Inline-Benutzeradressierung in Chat- und Dokumentbearbeitungssitzungen
DE202010018482U1 (de) Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE602004004601T2 (de) Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene
DE102012013336B4 (de) Aushandeln einer kontinuierlichen multi-stream-präsenz
DE112010005264T5 (de) GUI für mehrere Anwender
DE202012013297U1 (de) Elektronisches Werkzeug für Meetings
DE102011114277B4 (de) Globaler Konferenzplan für verteilte Brücken
DE202019106796U1 (de) Elektronisches Ereignismanagementsystem
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE102008029805B4 (de) Intelligentes verkürztes Mehrkanal-Erinnerungsverfahren und Mittel für eine tragbare Vorrichtung
DE602004002603T2 (de) Empfangsbestätigung für einen Inhalt zu einer HTTP/TCP Vorrichtung
DE10297256T5 (de) Informationsübermittlungssystem
DE60226301T2 (de) Verwaltung von über mehrfache Kommunikationsprotokolle empfangenen asynchronen Objekten
EP1560140A1 (de) Verfahren und System zur elektronischen Interaktion in einem Netzwerk
DE60320099T2 (de) Vorrichtung und verfahren zum verteilen von gestreamten echtzeit-informationen zwischen clients

Legal Events

Date Code Title Description
8364 No opposition during term of opposition