DE102008036453A1 - Verfahren zum Versenden von Daten und Kommunikationseinrichtung - Google Patents

Verfahren zum Versenden von Daten und Kommunikationseinrichtung Download PDF

Info

Publication number
DE102008036453A1
DE102008036453A1 DE102008036453A DE102008036453A DE102008036453A1 DE 102008036453 A1 DE102008036453 A1 DE 102008036453A1 DE 102008036453 A DE102008036453 A DE 102008036453A DE 102008036453 A DE102008036453 A DE 102008036453A DE 102008036453 A1 DE102008036453 A1 DE 102008036453A1
Authority
DE
Germany
Prior art keywords
change
record
data
indicator
communication device
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.)
Withdrawn
Application number
DE102008036453A
Other languages
English (en)
Inventor
Frank Dr. Kowalewski
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.)
Intel Deutschland GmbH
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102008036453A priority Critical patent/DE102008036453A1/de
Priority to US12/535,708 priority patent/US8145772B2/en
Publication of DE102008036453A1 publication Critical patent/DE102008036453A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

Es wird ein Verfahren zum Versenden von Daten beschrieben, das das Empfangen einer ersten Information, die eine erste Änderung eines Datensatzes repräsentiert, und eines der ersten Änderung zugeordneten ersten Daten-Änderungs-Indikators, das Durchführen einer zweiten Änderung, das Ermitteln eines zweiten Daten-Änderungs-Indikators, basierend auf dem ersten Daten-Änderungs-Indikators, und das Versenden einer zweiten Information, die die zweite Änderung des ersten geänderten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und des zweiten Daten-Änderungs-Indikators aufweist.

Description

  • Die Erfindung betrifft ein Verfahren zum Versenden von Daten und eine Kommunikationseinrichtung.
  • Bei Anwendungen, an denen mehrere Kommunikationsgeräte beteiligt sind, kann der Fall auftreten, dass alle beteiligten Kommunikationsgeräte über dieselbe Version eines Datensatzes verfügen sollen, der Datensatz also zwischen den beteiligten Kommunikationsgeräten synchronisiert werden soll. Dabei besteht Interesse an Verfahren zur Synchronisation, die effizient in Hinblick auf das zur Synchronisation erforderliche Datenaufkommen aber auch zuverlässig, beispielsweise bei verloren gegangenen Synchronisationsnachrichten, arbeiten.
  • Gemäß verschiedenen Ausführungsbeispielen wird eine Datensynchronisation zwischen Kommunikationsgeräten geschaffen, die hinsichtlich des erforderlichen Datenübertragungsaufwands effizient ist und robust ist gegenüber Übertragungsfehlern.
  • Gemäß einem Ausführungsbeispiel der Erfindung wird ein Verfahren zum Versenden von Daten bereitgestellt, das ein Empfangen eines Datensatzes und eines dem Datensatz zugeordneten ersten Daten-Änderungs-Indikators, ein Ändern des Datensatzes in einen geänderten Datensatz, ein Ermitteln eines zweiten Daten-Änderungs-Indikators basierend auf dem ersten Daten-Änderungs-Indikator, und ein Versenden einer Information, die die zweite Änderung des ersten geänderten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und des zweiten Daten-Änderungs-Indikators aufweist.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
  • Es zeigen
  • 1 eine Kommunikations-Anordnung gemäß einem Ausführungsbeispiel;
  • 2 ein Flussdiagramm gemäß einem Ausführungsbeispiel;
  • 3 eine Kommunikationseinrichtung gemäß einem Ausführungsbeispiel;
  • 4 ein Nachrichten-Flussdiagramm gemäß einem Ausführungsbeispiel;
  • 5 ein Nachrichten-Flussdiagramm gemäß einem Ausführungsbeispiel;
  • 6 eine Kommunikations-Anordnung gemäß einem Ausführungsbeispiel;
  • 7 eine Kommunikations-Anordnung gemäß einem Ausführungsbeispiel; und
  • 8 ein Nachrichten-Flussdiagramm gemäß einem Ausführungsbeispiel.
  • Im Rahmen dieser Beschreibung werden die Begriffe ”verbunden”, ”angeschlossen” sowie ”gekoppelt” verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung. In den Figuren werden identische oder ähnliche Elemente mit identischen Bezugszeichen versehen, soweit dies zweckmäßig ist.
  • Bei einer Vielzahl von Kommunikations-Anwendungen ist es erforderlich, dass die an einer jeweiligen Kommunikations-Anwendung beteiligten Kommunikationsgeräte gemeinsame Datensätze verändern können und über den aktuellen Stand der gemeinsamen Datensätze informiert sind. Beispiele für solche Kommunikations-Anwendungen sind:
    • – Spiele, bei denen der aktuelle Zustand (Game State), beispielsweise der Zustand der Spielwelt, allen beteiligten Kommunikationsgeräten bekannt sein soll.
    • – Adressbücher, bei denen auf verschiedenen Kommunikationsendgeräten und/oder Server-Computern Adress-Einträge mit gleichem Stand vorhanden sein sollen.
    • – Datenverteilungs-Anwendungen, bei denen Applikationen und/oder Updates oder Dokumente und Dokumenten-Änderungen unter einer Mehrzahl von Kommunikationsgeräten verteilt werden sollen, sodass die Kommunikationsgeräte über die gleichen Versionen der Applikationen bzw. der Dokumente verfügen.
    • – Gruppen-Nachrichtendienste, bei denen alle Nachrichten allen Gruppenmitgliedern vorliegen sollen.
    • – Kommunikationsrecht-Anforderungs-Warteschlangen (die englisch als Floor Queues bezeichnet werden), bei denen sowohl ein Kommunikationsrecht-Server als auch an einer Kommunikation beteiligte Endgeräte den aktuellen Stand der Warteschlange kennen sollen.
  • Unter einem gemeinsamen (bzw. einem zu synchronisierenden) Datensatz zweier (oder analog mehrerer) Kommunikationseinrichtungen (z. B. Kommunikationsgeräten) ist in diesem Zusammenhang ein Datensatz zu verstehen, von dem in beiden Kommunikationseinrichtungen eine Instanz vorliegt, wobei beide Instanzen den gleichen Stand haben sollen. Entsprechend wird, wenn die Instanz des Datensatzes in einer der Kommunikationseinrichtung geändert wird, die Instanz des Datensatzes in der anderen Kommunikationseinrichtung (innerhalb eines im Rahmen der jeweiligen Anwendung ausreichend kurzen Zeitintervalls) entsprechend geändert, die Instanzen des Datensatzes also synchronisiert oder in anderen Worten die Kommunikationseinrichtungen in Hinblick auf den Datensatz synchronisiert. In diesem Sinne bilden die beiden Instanzen des Datensatzes einen einzigen (gemeinsamen oder logischen) Datensatz, der einen eindeutigen Stand aufweist (bis auf Unterschiede, die innerhalb des Zeitintervalls, in dem die Synchronisation erfolgt, vorhanden sein können; das heißt ein Unterschied ist maximal für die Dauer des Zeitintervalls vorhanden).
  • Zwei Kommunikationsgeräte können beispielsweise einen Datensatz synchronisieren, indem eines der Kommunikationsgeräte dem anderen Kommunikationsgerät Daten, die es geändert hat, übermittelt. Zur Synchronisation zwischen den beiden Kommunikationsgeräten kann das Kommunikationsgerät, das die Daten geändert hat, die gesamten geänderten Daten übermitteln oder lediglich Informationen, die die Änderungen der Daten spezifizieren.
  • Um Probleme für den Fall, dass einem Kommunikationsgerät eine Daten-Änderung nicht mitgeteilt wurde, beispielsweise aufgrund eines Übertragungsfehlers in einer unzuverlässigen Kommunikationsverbindung, zu vermeiden, kann so vorgegangen werden, dass zu synchronisierende Daten periodisch wiederholt synchronisiert werden.
  • Um beispielsweise in diesem Fall eine unnötige Übertragung von geänderten Daten oder Informationen, die eine Änderung von Daten spezifizieren, zu vermeiden, kann der Stand eines Datensatzes (Version des Datensatzes) mittels eines Identifikators gekennzeichnet werden. Vor der Übertragung der aktuellen Version des Datensatzes (oder Informationen, die die Änderung des Datensatzes gegenüber einer vorhergehenden Version spezifizieren), kann der Identifikator des aktuellen Datensatzes mit dem Identifikator der Version des Datensatzes, die dem Kommunikationsgerät, das über den aktuellen Stand des Datensatzes informiert werden soll, vorliegt (also der Instanz des Datensatzes auf dem Kommunikationsgerät) verglichen werden. Der aktuelle Datensatz (bzw. die Information, die die Änderung des Datensatzes gegenüber einer vorherigen Version des Datensatzes spezifiziert), wird dann beispielsweise nur übertragen, wenn sich die Identifikatoren unterscheiden.
  • Ein solcher Identifikator eines Datensatzes in einer bestimmten Version kann beispielsweise basierend auf den zu identifizierenden Daten unter Verwendung eines kryptographischen Algorithmus (beispielsweise einer Hash-Funktion) ermittelt werden.
  • Von einem Kommunikationsgerät vorgenommene Änderungen eines Datensatzes können auch von dem Kommunikationsgerät durchnummeriert werden. Das Kommunikationsgerät sendet dann beispielsweise die Daten-Änderungs-Nummer der letzten Änderung und seine eigene Adresse an andere Kommunikationsgeräte, die über die aktuelle Version des Datensatzes informiert werden sollen. Dies erfolgt beispielsweise periodisch. Wenn eines der anderen Kommunikationsgeräte feststellt, dass es einen geänderten Datensatz bzw. Informationen, die die Änderung des Datensatzes spezifizieren, zu einer empfangenen Änderungsnummer nicht erhalten hat, so fordert es beispielsweise den aktuellen Datensatz oder Informationen über die Änderung des Datensatzes gegenüber einer vorherigen Version von dem Kommunikationsgerät an.
  • Zur Verwendung von Kommunikationsgeräte-spezifischen Daten-Änderungs-Nummern ist typischerweise erforderlich, dass alle beteiligten Kommunikationsgeräte mit allen anderen beteiligten Kommunikationsgeräten verbunden sind, d. h., dass alle (hinsichtlich des Datensatzes) zu synchronisierenden Kommunikationsgeräte mittels Kommunikations-Verbindungen gekoppelt sind. Beispielsweise ist es für diesen Fall erforderlich, dass die Kommunikationsgeräte direkt verbunden sind und kein Kommunikationsnetzwerk mit indirekten Kommunikations-Verbindungen verwendet wird.
  • Durch Senden von Informationen, die die Änderung eines Datensatzes gegenüber einer früheren Version spezifizieren, kann das zur Synchronisation erforderliche Datenaufkommen gegenüber der Übermittlung des kompletten geänderten Datensatzes reduziert werden. So kann beispielsweise vorgegangen werden, wenn der gesamte Datensatz sehr umfangreich ist, die Änderung aber nur einen geringen Teil des Datensatzes betrifft.
  • Die Verwendung eines aus einem Datensatz abgeleiteten Datensatz-Identifikators zur Identifikation der verschiedenen Versionen des Datensatzes ist typischerweise nur geeignet, wenn entsprechend einem Datensatz, der von einem Master-Kommunikationsgerät gehalten wird, die Instanzen des Datensatzes auf anderen Kommunikationsgeräten angepasst werden sollen, die Kommunikationsgeräte also in Hinblick auf den Datensatz mit dem Master-Kommunikationsgerät synchronisiert werden sollen. Die Änderung des Datensatzes durch die anderen Kommunikationsgeräte ist in diesem Fall typischerweise nicht ermöglicht.
  • Bei den oben beschriebenen Möglichkeiten ist es typischerweise erforderlich, dass regelmäßig (beispielsweise periodisch) Identifikatoren von Datensätzen bzw. Daten-Änderungs-Nummern zwischen den beteiligten Kommunikationsgeräten ausgetauscht werden.
  • 1 zeigt eine Kommunikations-Anordnung 100 gemäß einem Ausführungsbeispiel.
  • Eine erste Kommunikationseinrichtung 101 ist mittels einer ersten Kommunikations-Verbindung 106 mit einer zweiten Kommunikationseinrichtung 102 gekoppelt. Ferner ist die erste Kommunikationseinrichtung 101 mittels einer zweiten Kommunikations-Verbindung 107 mit einer dritten Kommunikationseinrichtung 103, mittels einer dritten Kommunikations-Verbindung 108 mit einer vierten Kommunikationseinrichtung 104 und mittels einer vierten Kommunikations-Verbindung 109 mit einer fünften Kommunikationseinrichtung 105 gekoppelt.
  • Eine Kommunikationseinrichtung 101 bis 105 ist beispielsweise ein Kommunikationsgerät, zum Beispiel ein Kommunikations-Endgerät wie beispielsweise ein Mobilfunk-Teilnehmergerät oder ein Personal Computer, oder auch eine Komponente eines Kommunikations-Netzwerks, z. B. eines Mobilfunk-Kommunikationsnetzwerks, wie beispielsweise ein Server-Computer.
  • Es wird angenommen, dass mindestens zwei der Kommunikationseinrichtungen 101 bis 105 an einer Anwendung beteiligt sind, die es erfordert, dass Daten, beispielsweise ein Datensatz, zwischen den Kommunikationseinrichtungen 101 bis 105 synchronisiert werden, d. h., dass, wenn beispielsweise eine der Kommunikationseinrichtungen 101 bis 105 die Daten ändert, die andere Kommunikationseinrichtung 101 bis 105 (oder die anderen Kommunikationseinrichtungen 101 bis 105) über die Änderung informiert wird, indem beispielsweise die geänderten Daten an die andere Kommunikationseinrichtung 101 bis 105 gesendet wird oder Informationen über die Änderung der Daten gegenüber einer vorherigen Version, beispielsweise gegenüber der letzten der Kommunikationseinrichtung 101 bis 105 mitgeteilten Version, an die Kommunikationseinrichtung 101 bis 105 übermittelt werden.
  • In einer Ausführungsform werden Daten zwischen den Kommunikationseinrichtungen 101 bis 105 synchronisiert, indem eine Kommunikationseinrichtung 101 bis 105, wenn sie eine Daten-Änderung vornimmt, die Daten-Änderung mittels einer Daten-Änderungs-Nummer (oder eines Daten-Änderungs-Indikators, etwa eines Daten-Änderungs-Werts) identifiziert, welche in Abhängigkeit von mindestens einer Daten-Änderungs-Nummer, die es von einer der anderen Kommunikationseinrichtungen 101 bis 105 im Zusammenhang mit einer (vorherigen) Änderung der Daten, die von der anderen Kommunikationseinrichtung 101 bis 105 vorgenommen wurde, wählt.
  • Beispielsweise identifiziert eine Kommunikationseinrichtung 101 bis 105, die Änderungen an den (zu synchronisierenden) Daten vornimmt, die Änderung mittels einer (neuen) Daten-Änderungs-Nummer, die sie basierend auf der höchsten von einer anderen Kommunikationseinrichtung 101 bis 105 im Zusammenhang der Synchronisation der Daten empfangenen oder von ihr selbst gewählten Daten-Änderungs-Nummer wählt. Beispielsweise wird als die neue zu verwendende Daten-Änderungs-Nummer zur Identifikation der Änderung der Daten die auf diese höchste Daten-Änderungs-Nummer folgende Nummer (nächste Nummer) gewählt. Beispielsweise ist die verwendete nächste Daten-Änderungs-Nummer die um Eins erhöhte bisher höchste Daten-Änderungs-Nummer.
  • Nimmt eine der Kommunikationseinrichtungen 101 bis 105 eine Daten-Änderung vor, so versendet sie beispielsweise eine Angabe der Daten-Änderung (in Form von Informationen, die die Änderung spezifizieren) zusammen mit der der Daten-Änderung zugewiesenen Daten-Änderungs-Nummer, die die Kommunikationseinrichtung 101 bis 105 für die Daten-Änderung gewählt hat, und in einer Ausführungsform zusammen mit einer Adresse der Kommunikationseinrichtung 101 bis 105 an die andere Kommunikationseinrichtung 101 bis 105 (oder die anderen Kommunikationseinrichtungen 101 bis 105). Eine Kommunikationseinrichtung 101 bis 105, an die eine Daten-Änderungs-Angabe auf diese Weise versendet wird, speichert die der Daten-Änderung zugewiesene Daten-Änderungs-Nummer als letzte empfangene Daten-Änderungs-Nummer und, in einer Ausführungsform, dazu die Adresse der Kommunikationseinrichtung 101 bis 105, die die Daten-Änderung vorgenommen hat.
  • Stellt in einer Ausführungsform eine Kommunikationseinrichtung 101 bis 105 fest, dass eine empfangene Daten-Änderungs-Angabe zu einer Daten-Änderung gehört, der eine Daten-Änderungs-Nummer zugewiesen ist, vor der die höchste Daten-Änderungs-Nummer, die die empfangende Kommunikationseinrichtung 101 bis 105 gespeichert hat, weiter als direkt liegt, d. h., die der Daten-Änderung zugewiesene Daten-Änderungs-Nummer ist nicht die nächste Nummer zu der gespeicherten, der letzten der empfangenen Kommunikationseinrichtung bekannten Änderung zugewiesenen Daten-Änderungs-Nummer, so teilt die empfangende Kommunikationseinrichtung 101 bis 105 die gespeicherte Daten-Änderungs-Nummer der Kommunikationseinrichtung 101 bis 105, die die (aktuelle) Änderung vorgenommen hat, mit. Die Kommunikationseinrichtung 101 bis 105, die die Änderung vorgenommen hat, übermittelt daraufhin beispielsweise an die empfangende Kommunikationseinrichtung 101 bis 105 Angaben über Daten-Änderungen, die zwischen der Daten-Änderung, der die in der empfangenden Kommunikationseinrichtung 101 bis 105 gespeicherte Daten-Änderungs-Nummer zugewiesen ist, und der aktuellen Daten-Änderung vorgenommen worden sind, beispielsweise Angaben über alle solche zwischenliegenden Daten-Änderungen.
  • Werden nur Daten-Änderungs-Angaben zur Synchronisation übermittelt, d. h., nur Informationen über die Änderung der Daten gegenüber einer vorherigen Version der Daten, wie es in einem Ausführungsbeispiel vorgesehen ist, so ist das Datenaufkommen zur Synchronisation geringer als in dem Fall, dass zur Synchronisation vollständige geänderte Datensätze übermittelt werden.
  • Gemäß einem Ausführungsbeispiel wird es ermöglicht, dass die Daten, die zwischen allen beteiligten Kommunikationseinrichtungen 101 bis 105 synchronisiert werden sollen, von allen beteiligten Kommunikationseinrichtungen 101 bis 105 verändert werden können.
  • Gemäß einem Ausführungsbeispiel wird es ermöglicht, dass die Kommunikationseinrichtungen 101 bis 105 gemäß einer beliebigen Netzwerktopologie miteinander verbunden sein können. Beispielsweise wird es in einem Ausführungsbeispiel ermöglicht, dass die Kommunikationseinrichtungen 101 bis 105 zum Teil nur indirekt mittels anderer der Kommunikationseinrichtungen 101 bis 105 miteinander kommunizieren.
  • Die Ausführungsbeispiele erfordern nur wenig Signalisierung zur Synchronisation der Daten. Beispielsweise ist es gemäß einem Ausführungsbeispiel nicht erforderlich, dass regelmäßig (z. B. periodisch) Daten-Übertragungen oder Signalisierungs-Übertragungen vorgenommen werden. Ausführungsbeispiele können auch bei (z. B. in Hinblick auf die Rate, mit der Nachrichten verloren gehen) unsicheren oder unzuverlässigen Kommunikations-Verbindungen zwischen den Kommunikationseinrichtungen 101 bis 105 eingesetzt werden. Ausführungsbeispiele sind also beispielsweise robust gegenüber Übertragungsfehlern, z. B. in Form nicht übertragener Nachrichten.
  • Gemäß einem Ausführungsbeispiel führt eine Kommunikationseinrichtung 101 bis 105 zum Versenden von Daten (z. B. eines zwischen der Kommunikationseinrichtung und einer anderen Kommunikationseinrichtung zu synchronisierenden Datensatzes) das in 2 dargestellte Verfahren durch.
  • 2 zeigt ein Flussdiagramm 200 gemäß einem Ausführungsbeispiel.
  • In 201 wird eine erste Information, die eine erste Änderung eines Datensatzes in einen ersten geänderten Datensatz repräsentiert, und ein der ersten Änderung zugeordneter erster Daten-Änderungs-Indikator empfangen.
  • In 202 wird eine zweite Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz durchgeführt.
  • In 203 wird ein zweiter Daten-Änderungs-Indikator basierend auf dem ersten Daten-Änderungs-Indikator ermittelt.
  • In 204 werden eine zweite Information, die die zweite Änderung des ersten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und der zweite Daten-Änderungs-Indikator versendet.
  • Der zweite Daten-Änderungs-Indikator wird der zweiten Information beispielsweise zugewiesen oder zugeordnet.
  • Anschaulich werden in einer Ausführungsform alle vorgenommenen Änderungen an einem Datensatz durchnummeriert, wobei jeder Änderung eine eigene Nummer (z. B. ein Zählerwert) zugewiesen wird, wobei der einer Änderung zugewiesene Zählerwert auf dem Zählerwert der vorhergehenden Änderung basiert. Beispielsweise werden Zählerwerte zur Identifikation der Änderungen verwendet, die (zyklisch) hochgezählt werden. Änderungen können von mehreren Kommunikationseinrichtungen an dem Datensatz vorgenommen werden. Nehmen mehrere Kommunikationseinrichtungen Änderungen vor, so wird insofern ein gemeinsamer Zähler für die Änderungen verwendet, als eine Kommunikationseinrichtung, die die Angabe einer Änderung von einer anderen Kommunikationseinrichtung empfängt, den Daten-Änderungs-Indikator, den sie einer von ihr selbst vorgenommen Änderung zuweist, unter Berücksichtigung des Daten-Änderungs-Indikators der Änderung, zu der sie die Angabe empfangen hat, festlegt. Anschaulich ist somit ein logischer Zähler vorgesehen, der beispielsweise Elemente einer vordefinierten Nummernfolge oder einer Folge von Identifikationen annehmen kann und der von allen beteiligten Kommunikationseinrichtungen zur Durchnummerierung der Änderungen oder zur eindeutigen (bis auf beispielsweise zyklische Wiederkehr von Nummern/Identifikationen) Identifikation der Änderungen verwendet wird.
  • Die erste Information ist beispielsweise der erste geänderte Datensatz. Die zweite Information ist beispielsweise der zweite geänderte Datensatz.
  • Beispielsweise sind der erste Daten-Änderungs-Indikator und der zweite Daten-Änderungs-Indikator Zählerwerte aus einer Folge von Zählerwerten und der zweite Daten-Änderungs-Indikator ist der auf den ersten Daten-Änderungs-Indikator folgende Zählerwert.
  • Der zweite Daten-Änderungs-Indikator wird beispielsweise aus dem ersten Daten-Änderungs-Indikator mittels einer arithmetischen Operation ermittelt. Zum Beispiel sind der erste Daten-Änderungs-Indikator und der zweite Daten-Änderungs-Indikator ganze Zahlen und der zweite Daten-Änderungs-Indikator ist der um einen vorgegebenen Wert (z. B. um Eins) erhöhte erste Daten-Änderungs-Indikator.
  • In einem Ausführungsbeispiel werden die von einer Kommunikationseinrichtung gesendete erste Information und der erste Daten-Änderungs-Indikator empfangen und die zweite Information und der zweite Daten-Änderungs-Indikator werden an die Kommunikationseinrichtung gesendet.
  • In einer Ausführungsform weist der Datensatz eine Mehrzahl von Datenelementen auf und es wird ermittelt, welche Datenelemente in dem zweiten geänderten Datensatz gegenüber dem ersten geänderten Datensatz geändert sind und für jedes geänderte Datenelement wird eine Datenelement-Änderungsangabe, die die Änderung des geänderten Datenelements spezifiziert, als Teil der zweiten Information erzeugt.
  • In einer Ausführungsform wird der zweite Daten-Änderungs-Indikator als der der letzten Änderung des Datensatzes zugewiesene Daten-Änderungs-Indikator gespeichert.
  • In einer Ausführungsform wird der erste Daten-Änderungs-Indikator mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator verglichen und ermittelt, basierend auf dem Vergleichsergebnis, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  • In einer Ausführungsform wird eine der ersten Änderung zugewiesene Identifikation einer Kommunikationseinrichtung (beispielsweise der Kommunikationseinrichtung, die die erste Änderung vorgenommen hat) empfangen und ermittelt, basierend auf der empfangenen Identifikation, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet. Die Identifikation ist beispielsweise eine Adresse der Kommunikationseinrichtung, beispielsweise eine Adresse im Rahmen der Anwendung, für die der Datensatz verwendet wird.
  • In einer Ausführungsform wird eine die Kommunikationseinrichtung, die die zweite Änderung durchführt, zugeordnete Identifikation der zweiten Information zugewiesen und die Identifikation versendet.
  • Beispielsweise wird eine gespeicherte Instanz des Datensatzes gemäß der ersten Änderung und gemäß der zweiten Änderung geändert.
  • In einem Ausführungsbeispiel wird der erste Daten-Änderungs-Indikator mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator verglichen und ermittelt, basierend auf dem Vergleichsergebnis, ob eine gespeicherte Instanz des Datensatzes eine (beispielsweise jede) Änderung des Datensatzes, die der ersten Änderung vorangegangen ist, beinhaltet. Beispielsweise wird überprüft, ob die gespeicherte Instanz irgendeine der ersten Änderung vorangegangene Änderung (sofern sie nicht wieder rückgängig gemacht wurde) nicht beinhaltet.
  • Beispielsweise wird, wenn die gespeicherte Instanz des Datensatzes die Änderung des Datensatzes, die der ersten Änderung vorangegangen ist, nicht beinhaltet, eine Information, die einer der ersten Änderung vorangegangenen Änderung des Datensatzes, repräsentiert, angefordert. Beispielsweise werden Informationen über jede der ersten Änderung vorangegangene Änderung (sofern sie nicht wieder rückgängig gemacht wurde), die der erste Datensatz nicht beinhaltet, angefordert.
  • In einer Ausführungsform wird eine dritte Information, die eine von einer Kommunikationseinrichtung vorgenommene dritte Änderung eines Datensatzes in einen dritten geänderten Datensatz repräsentiert, und ein der dritten Änderung zugeordneter dritter Daten-Änderungs-Indikator empfangen, überprüft, ob der dritte Daten-Änderungs-Indikator mit dem zweiten Daten-Änderungs-Indikator übereinstimmt, und, falls der dritte Daten-Änderungs-Indikator mit dem zweiten Daten-Änderungs-Indikator übereinstimmt, die zweite Information und der zweite Daten-Änderungs-Indikator (z. B. erneut) an die Kommunikationseinrichtung, die die dritte Änderung vorgenommen hat, versendet.
  • Das mit Bezug auf 2 beschriebene Verfahren wird beispielsweise von einer Kommunikationseinrichtung ausgeführt, wie sie in 3 dargestellt ist.
  • 3 zeigt eine Kommunikationseinrichtung 300 gemäß einem Ausführungsbeispiel.
  • Die Kommunikationseinrichtung 300 weist einen Empfangsschaltkreis 301 auf, der eingerichtet ist, eine erste Information, die eine erste Änderung eines Datensatzes in einen ersten geänderten Datensatz repräsentiert, und einen der ersten Änderung zugeordneten ersten Daten-Änderungs-Indikator zu empfangen.
  • Ferner weist die Kommunikationseinrichtung 300 einen Änderungsschaltkreis 302 auf, der eingerichtet ist, eine zweite Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz durchzuführen;.
  • Ein Ermittlungsschaltkreis 303 der Kommunikationseinrichtung 300 ist eingerichtet, einen zweiten Daten-Änderungs-Indikator basierend auf dem ersten Daten-Änderungs-Indikator zu ermitteln.
  • Ein Sendeschaltkreis 304 der Kommunikationseinrichtung 300 ist eingerichtet, eine zweite Information, die die zweite Änderung des ersten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und den zweiten Daten-Änderungs-Indikator zu senden, beispielsweise an eine weitere Kommunikationseinrichtung, die über den geänderten Datensatz zur Synchronisation des Datensatzes zwischen der Kommunikationseinrichtung und der weiteren Kommunikationseinrichtung informiert werden soll.
  • Ein Speicher, der in den Ausführungsbeispielen verwendet wird, kann ein flüchtiger Speicher, beispielsweise ein DRAM (Dynamic Random Access Memory) oder ein nicht-flüchtiger Speicher, beispielsweise ein PROM (Programmable Read Only Memory), ein EPROM (Erasable PROM), ein EEPROM (Electrically Erasable PROM), oder ein Flash-Speicher sein, z. B. ein Floating-Gate-Speicher, ein Charge-Trapping-Speicher, ein MRAM (Magnetoresistive Random Access Memory) oder ein PCRAM (Phase Change Random Access Memory).
  • In einer Ausführungsform ist ein ”Schaltkreis” als jegliche Einheit zu verstehen, die eine Logik implementiert, wobei die Logik sowohl Hardware, Software, Firmware oder eine Kombination daraus sein kann. Somit kann ein ”Schaltkreis” in einer Ausführungsform ein hart-verdrahteter Logik-Schaltkreis oder ein programmierbarer Logik-Schaltkreis sein, wie beispielsweise ein programmierbarer Prozessor, z. B. ein Mikroprozessor (z. B. ein CISC(Complex Instruction Set Computer)-Prozessor oder ein RISC(Reduced Instruction Set Computer)-Prozessor). Unter einem ”Schaltkreis” kann auch eine auf einem Prozessor implementierte Software oder eine von einem Prozessor ausgeführte Software zu verstehen sein, z. B. ein Computer-Programm, etwa ein Computer-Programm in Programmiercode für eine virtuelle Maschine (Virtual Machine), wie z. B. ein Java-Computer-Programm. Unter einem ”Schaltkreis” kann in einer Ausführungsform jegliche Art der Implementierung der im Weiteren beschriebenen Funktionen zu verstehen sein.
  • Die Kommunikationseinrichtung 300 weist ferner beispielsweise einen Speicher zum Speichern einer Instanz des Datensatzes auf.
  • In einer Ausführungsform weist die Kommunikationseinrichtung ferner einen Vergleichsschaltkreis auf, der eingerichtet ist, den ersten Daten-Änderungs-Indikator mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator zu vergleichen und der Ermittlungsschaltkreis ist eingerichtet, basierend auf dem Vergleichsergebnis zu ermitteln, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  • In einer Ausführungsform ist der Empfangsschaltkreis 301 eingerichtet, eine der ersten Änderung zugewiesene Identifikation einer anderen Kommunikationseinrichtung zu empfangen und der Ermittlungsschaltkreis 303 ist eingerichtet, basierend auf der empfangenen Identifikation zu ermitteln, ob die gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  • Die Kommunikationseinrichtung 300 kann ferner einen Vergleichsschaltkreis aufweisen, der eingerichtet ist, den ersten Daten-Änderungs-Indikator mit einem gespeicherten der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator zu vergleichen und wobei der Ermittlungsschaltkreis eingerichtet ist, basierend auf dem Vergleichsergebnis zu ermitteln, ob eine gespeicherte Instanz des Datensatzes eine der ersten Änderung vorangegangene Änderung des Datensatzes beinhaltet.
  • In einer Ausführungsform weist die Kommunikationseinrichtung ferner einen Anforderungsschaltkreis auf, der eingerichtet ist, eine Information, die eine Änderung des Datensatzes, die der ersten Änderung vorangegangen ist, repräsentiert, anzufordern.
  • Die Kommunikationseinrichtung 300 kann außerdem einen Speicher zum Speichern des zweiten Daten-Änderungs-Indikators als den der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator aufweisen.
  • Im Folgenden wird ein Ausführungsbeispiel erläutert, bei dem angenommen wird, dass die in 1 dargestellten Kommunikationseinrichtungen 101 bis 105 Kommunikationseinrichtungen eines Konferenz-Kommunikationssystems, beispielsweise eines Push-To-Talk (PTT)-Kommunikationssystems gemäß dem OMA(Open Mobile Alliance)-Standard sind. Beispielsweise ist die erste Kommunikationseinrichtung 101 ein Kommunikations-Server und die anderen Kommunikationseinrichtungen 102 bis 105 sind Teilnehmergeräte, die an einer von der ersten Kommunikationseinrichtung 101 bereitgestellten Konferenz teilnehmen. In diesem Fall kommunizieren die teilnehmenden Kommunikationseinrichtungen 102 bis 105 nicht direkt miteinander, sondern mittels des zentralen Konferenz-Servers, d. h., der ersten Kommunikationseinrichtung 101.
  • In diesem Beispiel nehmen vier Teilnehmergeräte 102 bis 105 an der Konferenz teil. Es können auch mehr oder weniger Kommunikationseinrichtungen an der Konferenz teilnehmen, beispielsweise mindestens zwei Kommunikationseinrichtungen.
  • In dem folgenden Ausführungsbeispiel wird angenommen, dass ein Teilnehmer, der im Rahmen der Konferenz Kommunikations-Daten übermitteln möchte, zunächst das Sprechrecht von der ersten Kommunikationseinrichtung 101 anfordert. Beispielsweise ist es im Falle eines Push-To-Talk-Konferenzsystems erforderlich, dass ein Benutzer eines Teilnehmergeräts, der Sprachdaten übermitteln möchte ähnlich einem Walkie-Talkie eine spezielle Taste seines Teilnehmergeräts betätigt, sodass das Kommunikationsrecht (in diesem Fall das Sprechrecht) von dem zentralen Server (d. h. der ersten Kommunikationseinrichtung 101) angefordert wird. Der Benutzer kann beispielsweise nur dann Sprach- Nachrichten an die anderen Teilnehmergeräte (und somit deren Benutzer) übermitteln, wenn der Server 101 ihm das Kommunikationsrecht erteilt. Beispielsweise erteilt der Server dem Benutzer nur dann das Sprechrecht, wenn kein anderer Teilnehmer (d. h. kein Benutzer eines der anderen Teilnehmergeräte) das Sprechrecht aktuell hat. Die Vergabe und Verwaltung des Kommunikationsrechts wird auch als Floor Control bezeichnet.
  • Fordert in diesem Ausführungsbeispiel eines der Teilnehmergeräte 102 bis 105 das Sprechrecht an und ist das Sprechrecht aktuell vergeben, so wird die Sprechrecht-Anforderung in einer Warteschlange (die auch als Floor Queue bezeichnet wird) im Server 101 gespeichert.
  • Das Kommunikationsrecht kann automatisch durch den Server 101 vergeben werden oder es wird durch einen besonderen Benutzer, den Moderator, vergeben. In diesem Ausführungsbeispiel wird angenommen, dass das Kommunikationsrecht von einem Moderator vergeben wird, der eine der Kommunikationseinrichtungen 102 bis 105 verwendet. Der Moderator vergibt das Kommunikationsrecht mit Hilfe der von ihm verwendeten Kommunikationseinrichtung 102 bis 105 (in anderen Worten des Moderator-Endgeräts), welche mit dem Server 101 Moderator-Nachrichten austauscht. Damit der Moderator über die Vergabe des Kommunikationsrechts entscheiden kann, wird dem Moderator (bzw. der von ihm verwendeten Kommunikationseinrichtung 102 bis 105) in einer Ausführungsform der Zustand der aktuellen Kommunikationsrecht-Anforderungs-Warteschlange mitgeteilt. Umgekehrt sollte auch dem Server der aktuelle Zustand der Warteschlange bekannt sein, damit der Server 101 das Kommunikationsrecht entsprechend der Warteschlange vergeben kann.
  • Ferner können in einem Ausführungsbeispiel sowohl der Moderator als auch der Server die Warteschlange modifizieren. Beispielsweise modifiziert der Moderator die Warteschlange, um das Kommunikationsrecht in einer bestimmten Reihenfolge zu vergeben (indem er die Warteschlange entsprechend umsortiert). Der Server 101 modifiziert die Warteschlange beispielsweise, wenn eine neue Kommunikationsrecht-Anforderung eingegangen ist und in die Warteschlange aufgenommen werden soll oder wenn eine Kommunikationsrecht-Anforderung aus der Warteschlange entfällt, beispielsweise da das Kommunikationsrecht entsprechend vergeben worden ist.
  • Die Warteschlange, also beispielsweise die Angaben der Kommunikationseinrichtungen 102 bis 105, die eine Kommunikationsrecht-Anforderung versendet haben und deren Reihenfolge, bildet somit einen Datensatz, der zwischen dem Server 101 und der Kommunikationseinrichtung 102 bis 105 des Moderators synchronisiert werden soll. Ändert eine dieser beiden Kommunikationseinrichtungen (Server, Moderator-Endgerät) den Zustand der Warteschlange, so soll also die andere Kommunikationseinrichtung darüber informiert werden. In diesem Ausführungsbeispiel können dabei wie erwähnt sowohl die Kommunikationseinrichtung des Moderators als auch der Server 101 die Warteschlange (und damit den Zustand der Warteschlange) verändern.
  • Ein Beispiel für die Synchronisation der Warteschlange zwischen dem Server 101 und der Kommunikationseinrichtung 102 bis 105, die von dem Moderator verwendet wird, ist in 4 dargestellt.
  • 4 zeigt ein Nachrichten-Flussdiagramm 400 gemäß einem Ausführungsbeispiel.
  • Der dargestellte Nachrichtenfluss findet statt zwischen einem Server-Computer 401, beispielsweise entsprechend der ersten Kommunikationseinrichtung 101 in 1, zum Beispiel einem Push-To-Talk-Server und einem Moderator-Endgerät 402, beispielsweise einer der (zweiten bis fünften) Kommunikationseinrichtungen 102 bis 105 in 1.
  • Es wird angenommen, dass eine Konferenzsitzung gerade aufgebaut wurde und nun beginnt und dementsprechend die Warteschlangen (in anderen Worten die Instanzen der gemeinsamen Warteschlange) für Kommunikationsrecht-Anforderungen sowohl im Server-Computer 401 als auch im Moderator-Endgerät 402 leer sind. Der Server-Computer setzt in 403 seine interne Änderungs-Nummer auf 0 und seine interne Änderungs-Adresse auf „keine Adresse” oder „leere Adresse”. Analog setzt in 404 das Moderator-Endgerät seine interne Änderungs-Nummer auf 0 und seine interne Änderungs-Adresse auf „keine Adresse”.
  • Es wird angenommen, dass der Server-Computer 401 in 405 eine erste Kommunikationsrecht-Anforderung 423 erhält (in 4 mit TR für ”Talk Request” bezeichnet).
  • Daraufhin inkrementiert der Server-Computer in 406 seine interne Änderungs-Nummer auf 1 und seine interne Änderungs-Adresse auf seine eigene Adresse, da er entsprechend der ersten Kommunikationsrecht-Anforderung 423 selbst die Warteschlange anpasst, indem er die erste Kommunikationsrecht-Anforderung 423 in die Warteschlange einträgt.
  • In 407 sendet der Server-Computer 401 eine erste Änderungs-Angabe 408 zusammen mit seiner internen Änderungs-Nummer (aktuell 1) und seiner internen Änderungs-Adresse (aktuell seine eigene Adresse) an das Moderator-Endgerät 402. Die Änderungs-Angabe enthält die Information, wie sich die Warteschlange gegenüber ihrer vorhergehenden Version (in diesem Fall die leere Warteschlange mit Änderungs-Nummer 0) verändert hat. Die erste Änderungs-Angabe 408 wird beispielsweise erzeugt, indem der Server-Computer ermittelt, welche Elemente der Warteschlange sich geändert haben und für jedes geänderte Element eine Angabe (als Teil der ersten Änderungs-Angabe 408) erzeugt. Beispielsweise sind die Elemente in diesem Beispiel die Plätze in der Warteschlange und der Server-Computer 401 erzeugt für den aktuell letzten Platz der Warteschlange die Angabe, dass er nun die erste Kommunikationsrecht-Anforderung 423 enthält (während er zuvor beispielsweise leer war).
  • Nachdem das Moderator-Endgerät 402 die erste Änderungs-Angabe 408 vom Server-Computer 401 empfangen hat, vergleicht das Moderator-Endgerät in 409 die mit der ersten Änderungs-Angabe übermittelte Änderungs-Nummer mit seiner eigenen internen Änderungs-Nummer. Da in diesem Fall die empfangene Änderungs-Nummer die Nachfolge-Nummer seiner internen Änderungs-Nummer ist (in diesem Beispiel werden ganze Zahlen zur Nummerierung verwendet, so dass 1 der unmittelbare Nachfolger von 0 ist), akzeptiert das Moderator-Endgerät 402 die angegebene Änderung. Das Moderator-Endgerät 402 ändert gemäß der ersten Änderungs-Angabe 408 den von ihm gespeicherten Zustand der Warteschlange (d. h. seine Instanz der Warteschlange) und setzt seine interne Änderungs-Nummer auf die empfangene Änderungs-Nummer 1. Außerdem speichert das Moderator-Endgerät 402 die Information, dass die aktuelle Änderungs-Nummer 1 durch den Server-Computer 401 vergeben wurde, indem es seine interne Änderungs-Adresse auf die empfangene Änderungs-Adresse, also auf die Adresse des Server-Computers 401, setzt.
  • Nun wird angenommen, dass der Server-Computer 401 in 410 eine zweite Kommunikationsrecht-Anforderung 411 erhält. In 412 speichert der Server-Computer 401 die zweite Kommunikationsrecht-Anforderung 411 in seiner Instanz der Warteschlange und inkrementiert seine interne Änderungs-Nummer auf den Wert 2. Außerdem setzt der Server-Computer 401 seine interne Änderungs-Adresse auf seine eigene Adresse, da er auch in diesem Fall selbst die Änderung der Warteschlange vorgenommen hat. In 413 sendet der Server-Computer 401 eine zweite Änderungs-Angabe 414 zusammen mit seiner aktuellen Änderungs-Nummer und seiner aktuellen Änderungs-Adresse an das Moderator-Endgerät 402. Die zweite Änderungs-Angabe 414 enthält die Information, wie sich die Warteschlange gegenüber der Version, die die Änderung mit Änderungs-Nummer 1 beinhaltet, geändert hat, also die Information über die Hinzunahme der zweiten Kommunikationsrecht-Anforderung 411.
  • Es wird nun angenommen, dass die zweite Änderungs-Angabe 414 aufgrund einer unzuverlässigen Kommunikations-Verbindung zwischen dem Server-Computer 401 und dem Moderator-Endgerät 402 von dem Moderator-Endgerät 402 nicht empfangen wird.
  • Außerdem wird angenommen, dass der Moderator in 415 entscheidet, dass die erste Kommunikationsrecht-Anforderung 423 genehmigt werden soll. Deshalb entfernt das Moderator-Endgerät in 416 die erste Kommunikationsrecht-Anforderung 423 aus seiner Instanz der Warteschlange. Da die interne Änderungs-Nummer des Moderator-Endgeräts 402 noch auf 1 ist (da die zweite Änderungs-Angabe 414 nicht empfangen wurde), setzt das Moderator-Endgerät 402 seine interne Änderungs-Nummer auf den nachfolgenden Wert 2. Außerdem setzt das Moderator-Endgerät 402 seine interne Änderungs-Adresse auf seine eigene Adresse, da die letzte Änderung der Warteschlange von ihm selbst vorgenommen wurde.
  • In 417 sendet das Moderator-Endgerät 402 eine dritte Änderungsangabe 418 über die von ihm vorgenommene Änderung der Warteschlange an den Server-Computer 401 zusammen mit seiner internen Änderungs-Nummer (2) und seiner internen Änderungs-Adresse (seine eigene Adresse).
  • In 419 vergleicht der Server-Computer 401 seine interne Änderungs-Nummer mit der von dem Moderator-Endgerät 402 empfangenen Änderungs-Nummer. Da beide Änderungs-Nummern übereinstimmen (beide sind auf den Wert 2 gesetzt), könnte der Server-Computer 401 davon ausgehen, dass die von ihm gespeicherte Version der Warteschlange bereits die von der dritten Änderungs-Angabe 418 angegebene Änderung beinhaltet. Der Server-Computer 401 vergleicht jedoch zusätzlich die empfangene Änderungs-Adresse mit seiner internen Änderungs-Adresse. Da die interne Änderungs-Adresse des Server-Computers 401 seine eigene Adresse ist und die empfangene Änderungs-Adresse die des Moderator-Endgeräts 402 ist, erkennt der Server-Computer 401, dass die durch die dritte Änderungs-Angabe 418 spezifizierte Änderung der Warteschlange durch den Server-Computer 401 noch nicht berücksichtigt worden ist und dass das Moderator-Endgerät 402 die zweite Änderungs-Angabe 414 nicht empfangen hat.
  • Der Server-Computer 401 sendet daraufhin in 420 die zweite Änderungs-Angabe 414 mit der Änderungs-Nummer 2 und der Änderungs-Adresse von ihm selbst erneut an das Moderator-Endgerät 402. In 421 und 422 setzen der Server-Computer 401 bzw. das Moderator-Endgerät 402 entsprechend ihre internen Änderungs-Nummern auf 3 und die internen Änderungs-Adressen auf die Adresse des Moderator-Endgeräts 402.
  • Ein Beispiel für einen weiteren Ablauf der Synchronisation zwischen dem Server-Computer 401 und dem Moderator-Endgerät 402 ist in 5 dargestellt.
  • 5 zeigt ein Nachrichten-Flussdiagramm 500 gemäß einem Ausführungsbeispiel.
  • Der dargestellte Nachrichtenfluss findet analog zu dem in 4 dargestellten Nachrichtenfluss zwischen einem Server-Computer 501 und einem Moderator-Endgerät 502 statt.
  • Entsprechend zu 421 und 422 in 4 wird zu Beginn des in 5 dargestellten Ablaufs davon ausgegangen, dass der Server-Computer 501 in 503 seine interne Änderungs-Nummer auf den Wert 3 und seine interne Änderungs-Adresse auf die Adresse des Moderator-Endgeräts 502 gesetzt hat und dass in 504 das Moderator-Endgerät seine interne Änderungs- Nummer auf den Wert 3 und seine interne Änderungs-Adresse auf die Adresse des Moderator-Endgeräts 502 gesetzt haben.
  • Es wird nun angenommen, dass der Server-Computer 501 in 505 eine dritte Kommunikationsrecht-Anforderung 506 erhält.
  • Dementsprechend setzt der Server-Computer in 507 seine interne Änderungs-Nummer auf den Wert 4 und seine interne Änderungs-Adresse auf seine eigene Adresse. In 508 sendet der Server-Computer 501 eine vierte Änderungs-Angabe 509 an das Moderator-Endgerät 502 mit Informationen über die von ihm vorgenommene Änderung der Warteschlange (Aufnahme der dritten Kommunikationsrecht-Anforderung 506) der Änderungs-Nummer 4 und seine eigene Adresse als Änderungs-Adresse.
  • Es wird angenommen, dass das Moderator-Endgerät 502 die vierte Änderungs-Angabe 509 nicht empfängt. Weiterhin wird angenommen, dass anschließend in 510 der Server-Computer 501 eine vierte Kommunikationsrecht-Anforderung 511 erhält.
  • Der Server-Computer 501 fügt die vierte Kommunikationsrecht-Anforderung 511 in seine Warteschlange ein und setzt in 512 entsprechend seine interne Änderungs-Nummer auf den Wert 5 und seine interne Änderungs-Adresse auf seine eigene Adresse.
  • Ferner übermittelt der Server-Computer 501 in 513 eine fünfte Änderungs-Angabe 514 an das Moderator-Endgerät 502 mit der Information über die Aufnahme der vierten Kommunikationsrecht-Anforderung 511 in die Warteschlange, der Änderungs-Nummer 5 und der Adresse des Server-Computers 501 als Änderungs-Adresse.
  • In 515 vergleicht das Moderator-Endgerät 502 die mit der fünften Änderungs-Angabe 514 empfangene Änderungs-Nummer mit seiner intern gespeicherten Änderungs-Nummer. Da die empfangene Änderungs-Nummer (diese ist auf 5 gesetzt) um 2 von der internen Änderungs-Nummer (diese ist gemäß 504 auf 3 gesetzt) abweicht und somit die intern gespeicherte Änderungs-Nummer nicht der unmittelbare Vorgänger der empfangenen Änderungs-Nummer ist bzw. in anderen Worten die intern gespeicherte Änderungs-Nummer weiter als direkt vor der empfangenen Änderungs-Nummer liegt, erkennt das Moderator-Endgerät 502, dass es die vierte Änderungs-Angabe 509 nicht empfangen hat.
  • Dementsprechend fordert das Moderator-Endgerät 502 in 516 mittels einer Änderungs-Anforderung 517 die vierte Änderungs-Angabe 509 von dem Server-Computer 501 an, indem es mittels der Änderungs-Anforderung 517 seine zuletzt intern gespeicherte Änderungs-Nummer (die auf 3 gesetzt ist) dem Server-Computer 501 mitteilt.
  • Daraufhin übermittelt der Server-Computer in 518 die vierte Änderungs-Angabe 519 erneut an das Moderator-Endgerät 502.
  • Das Moderator-Endgerät 502 setzt in 520 seine interne Änderungs-Nummer auf den Wert 5 und die Änderungs-Adresse auf die Adresse des Server-Computers 501 entsprechend der fünften Änderungs-Angabe 514.
  • Neben dem Einsatz für Push-to-Talk-Kommunikations-Systeme können Ausführungsbeispiele auch bei anderen Kommunikations-Systemen, beispielsweise Konferenz-Kommunikationssystemen mit moderierter Kommunikationsrecht-Anforderungs-Warteschlangen, eingesetzt werden. Ferner können Ausführungsbeispiele nicht nur zur Synchronisation von Warteschlangen eingesetzt werden, sondern auch zur Synchronisation anderer Daten, beispielsweise Adressen-Informationen bei einer Adressbuch-Anwendung zwischen Kommunikationsgeräten oder Mediendaten zwischen Kommunikationsgeräten, beispielsweise einem portablen elektronischen Gerät zum Abspielen von Mediendaten (z. B. einem MP3-Player) und einem Computer mit einer Musikdatenbank.
  • Beispielsweise können auch Daten von einem Kommunikationsgerät aus einem Kommunikationsnetzwerk angefordert werden (beispielsweise aus dem Internet heruntergeladen werden) und dann mit anderen Kommunikationsgeräten synchronisiert, das heißt beispielsweise zu anderen Kommunikationsgeräten weitergeleitet werden.
  • An einer Datensynchronisation beteiligte Kommunikationsgeräte sind beispielsweise mobile elektronische Geräte wie beispielsweise Mobilfunk-Teilnehmergeräte, PDAs (Personal Digital Assistants), MP3-Player, Laptop-Computer oder ortsfest betriebene Kommunikationseinrichtungen wie Server-Computer oder (Desktop-)Personal-Computer. Ein beteiligter Server-Computer stellt beispielsweise die Anwendung bereit, in deren Rahmen die Datensynchronisation erfolgt, beispielsweise eine Konferenz, wie im oben beschriebenen Ausführungsbeispiel.
  • Ein Ausführungsbeispiel wird beispielsweise verwendet zur Synchronisation elektronischer Kalender, die auf unterschiedlichen Kommunikationsgeräten unterschiedlicher Benutzer gespeichert sind, beispielsweise für den Abgleich von Schulkalendern (mit kurzfristig ausfallenden oder verlegten Stunden) zwischen Lehrern und Schülern.
  • Ausführungsbeispiele können auch verwendet werden zum Abgleich empfangener Emails zwischen einem Computer und einem mobilem Gerät. Analog kann ein Ausführungsbeispiel dazu verwendet werden, eine Datenbank, die auf einem Computer und einem mobilem Gerät gespeichert ist, zu synchronisieren, beispielsweise eine Arzneimittel-Datenbank für Außendienst-Mitarbeiter, etc.
  • Gemäß einem Ausführungsbeispiel wird kollaboratives Arbeiten an einem gemeinsamen Dokument, das heißt das Bearbeiten eines Dokuments durch mehrere Bearbeiter, gleichzeitig ermöglicht, indem das Dokument nach einer Änderung zwischen den von den Bearbeitern verwendeten elektronischen Geräten (beispielsweise Computern) synchronisiert wird.
  • Eine Ausführungsform wird beispielsweise zum Weiterleiten von Kastastrophen-Meldungen von Mobil-Gerät zu Mobil-Gerät verwendet, beispielsweise in Gebieten ohne zuverlässige Kommunikationsnetzwerk-Infrastruktur, z. B. in schlecht durch Mobilfunknetze versorgten Gebieten.
  • Ferner können Ausführungsbeispiele nicht nur zur Daten-Synchronisation zwischen zwei Kommunikationseinrichtungen verwendet werden, sondern auch zur Synchronisation zwischen mehr als zwei Kommunikationseinrichtungen. Eine entsprechende Architektur ist in 6 dargestellt.
  • 6 zeigt eine Kommunikations-Anordnung 600 gemäß einem Ausführungsbeispiel.
  • Die Kommunikations-Anordnung 600 weist eine erste Kommunikationseinrichtung 601, eine zweite Kommunikationseinrichtung 602, eine dritte Kommunikationseinrichtung 603 und eine vierte Kommunikationseinrichtung 604 auf. In diesem Beispiel sind alle Kommunikationseinrichtungen 601 bis 604 paarweise mittels Kommunikations-Verbindungen gekoppelt. Bei einer Änderung von zu synchronisierenden Daten durch eine der Kommunikationseinrichtungen 601 bis 604 übermittelt die die Daten ändernde Kommunikationseinrichtung 601 bis 604 eine entsprechende Änderungs-Angabe an mehrere, beispielsweise an alle anderen Kommunikationseinrichtungen 601 bis 604.
  • Ausführungsbeispiele können auch zur Daten-Synchronisation zwischen Kommunikationseinrichtungen verwendet werden, die nicht direkt, wie dies in der in 6 dargestellten Kommunikations-Anordnung der Fall ist, verbunden sind, sondern zumindest teilweise nur indirekt verbunden sind. Eine solche Architektur ist in 7 dargestellt.
  • 7 zeigt eine Kommunikations-Anordnung 700 gemäß einem Ausführungsbeispiel.
  • Die Kommunikations-Anordnung 700 weist eine erste Kommunikationseinrichtung 701, eine zweite Kommunikationseinrichtung 702, eine dritte Kommunikationseinrichtung 703 und eine vierte Kommunikationseinrichtung 704 auf.
  • In diesem Beispiel sind beispielsweise die erste Kommunikationseinrichtung 701 und die dritte Kommunikationseinrichtung 703 nicht direkt mittels einer Kommunikations-Verbindung gekoppelt, sondern nur mittels der zweiten Kommunikationseinrichtung 702 gekoppelt. Zur Daten-Synchronisation zwischen den Kommunikationseinrichtungen 701 bis 704 wird beispielsweise eine Änderungs-Angabe zu einer Kommunikationseinrichtung, die nicht mit einer Kommunikations-Verbindung mit der Kommunikationseinrichtung, die die Änderung vorgenommen hat, direkt verbunden ist, von einer dazwischen liegenden Kommunikationseinrichtung, beispielsweise einer, die mittels einer Kommunikations-Verbindung direkt mit der Kommunikationseinrichtung verbunden ist, die die Änderung vorgenommen hat, weitergeleitet. Die Weiterleitung wird beispielsweise automatisch immer nach Empfang einer Änderungs-Angabe durchgeführt. Um eine unendliche Weiterleitung einer Änderungs-Angabe zu vermeiden, ist es beispielsweise vorgesehen, dass eine Änderungs-Angabe mit einem Weiterleitungs-Zähler (auch als Hop Counter bezeichnet) versehen wird, der bei der Erzeugung der Änderungs-Angabe auf einen bestimmten Anfangswert gesetzt wird und bei Weiterleitung der Änderungs-Angabe dekrementiert wird. Hat der Weiterleitungs-Zähler einen vorgegebenen Minimalwert erreicht, beispielsweise den Wert 0, so wird die Änderungs-Angabe nicht mehr weitergeleitet.
  • In einer anderen Ausführungsform leitet eine Kommunikationseinrichtung eine Änderungs-Angabe nicht weiter, wenn die Änderungs-Nummer, die mit der Änderungs-Angabe übermittelt wird, der internen Änderungs-Nummer der Kommunikationseinrichtung entspricht. In einer anderen Ausführungsform wird eine Änderungs-Angabe nicht automatisch weitergeleitet, sondern nur dann, wenn eine fehlende Daten-Änderungs-Angabe von einer Kommunikationseinrichtung angefordert wird.
  • In dem Fall, dass Änderungs-Angaben nur weitergeleitet werden, wenn eine Anforderung nach den Änderungs-Angaben vorhanden sind, ist beispielsweise vorgesehen, dass nach der ersten angeforderten Änderungs-Angabe weitere Änderungs-Angaben automatisch an die Kommunikationseinrichtungen weitergeleitet werden, welche die Weiterleitung zuvor angefordert haben.
  • Ausführungsbeispiele können auch für Netzwerk-Architekturen mit einer zentralen Kommunikationseinrichtung, wie sie in 1 dargestellt ist, eingesetzt werden. In diesem Fall leitet beispielsweise die zentrale Kommunikationseinrichtung 101 Änderungs-Angaben an die anderen Kommunikationseinrichtungen 102 bis 105 weiter. Eine solche Netzwerk-Architektur kann als Spezialform einer Architektur mit indirekt verbundener Kommunikationseinrichtungen angesehen werden.
  • In einer Ausführungsform ist es vorgesehen, dass die Kommunikationseinrichtungen ihre jeweilige interne Änderungs-Nummer periodisch an die anderen Kommunikationseinrichtungen übermitteln. Die anderen Kommunikationseinrichtungen vergleichen die empfangenen Änderungs-Nummern mit ihren intern gespeicherten Änderungs-Nummern. Wenn in einer Kommunikationseinrichtung eine empfangene Änderungs-Nummer nicht mit der intern gespeicherten Änderungs-Nummer übereinstimmt oder, wenn eine empfangene Änderungs-Adresse nicht mit der intern gespeicherten Änderungs-Adresse übereinstimmt, fordert die Kommunikationseinrichtung die fehlende Änderungs-Angabe von einer anderen Kommunikationseinrichtung an bzw. versendet eine Änderungs-Angabe an eine andere Kommunikationseinrichtung, die die Änderungs-Angabe noch nicht erhalten hat.
  • Bei einer Daten-Synchronisation zwischen zwei Kommunikationseinrichtungen kann statt der Änderungs-Adresse auch die Richtung der Übertragung der letzten Änderungs-Angabe gespeichert bzw. übertragen werden (dazu kann ein einzelnes Bit verwendet werden). Im Falle von zwei Kommunikationseinrichtungen wird in einer Ausführungsform auf die Übertragung dieser Information verzichtet, da den Kommunikationseinrichtungen bekannt ist, ob sie die letzte Änderungs-Angabe selbst versendet oder von der anderen Kommunikationseinrichtung empfangen haben.
  • Gemäß einem Ausführungsbeispiel wird zur Kommunikation zwischen den Kommunikationseinrichtungen ein 2-Wege-Handshake-Protokoll verwendet, beispielsweise das SIP (Session Initiation Protocol). In diesem Fall kann beispielsweise eine Kommunikationseinrichtung eine fehlende Änderungs-Angabe mittels der Antwort-Nachricht eines Dialogs übermitteln. Ein entsprechendes Beispiel ist in 8 dargestellt.
  • 8 zeigt ein Nachrichten-Flussdiagramm 800 gemäß einem Ausführungsbeispiel.
  • Analog zu 4 findet der dargestellte Nachrichtenfluss zwischen einem Server-Computer 801 und einem Moderator-Endgerät 802 statt.
  • Es wird angenommen, dass das Moderator-Endgerät 802 die interne Änderungs-Nummer 3 und seine eigene Adresse als Änderungs-Adresse gespeichert hat.
  • Nun wird angenommen, dass der Server-Computer 801 in 803 eine erste SIP-Nachricht 804 an das Moderator-Endgerät 802 übermittelt mit einer Änderungs-Angabe, beispielsweise im sogenannten Body der SIP-Nachricht, und der Änderungs-Nummer 5 und seiner eigenen Adresse als Änderungs-Adresse.
  • In 805 vergleicht das Moderator-Endgerät 802 die empfangene Änderungs-Nummer mit der internen Änderungs-Nummer und stellt fest, dass es die Änderungs-Angabe bezüglich der Änderung mit der Änderungs-Nummer 4 nicht erhalten hat.
  • In 806 nutzt das Moderator-Endgerät 802 die Antwort-Nachricht des SIP-MESSAGE-Dialogs, eine SIP-OK-Nachricht 807 zur Anforderung der Änderungs-Angabe bezüglich der Daten-Änderung mit der Änderungs-Nummer 4 durch Angabe der Änderungs-Nummer 3 und seiner eigenen Adresse als Änderungs-Adresse in der SIP-OK-Nachricht 807.
  • Zur Übertragung der Nachrichten mit den Änderungs-Angaben können beispielsweise IETF-Protokolle eingesetzt werden, d. h. Protokolle der IETF (Internet Engineering Task Force). Beispielsweise können das SIP-Protokoll, das RTP(Real Time Protocol)-Protokoll, das RTCP(Real Time Control Protocol)-Protokoll, das BFCP(Binary Floor Control Protocol)-Protokoll, das http(Hypertext Transport Protocol)-Protokoll, das XCAP(XML(Extensible Markup Language)Configuration Access Protocol)-Protokoll, das Xpath(XML Path Language)-Protokoll oder das ftp(File Transfer Protocol)-Protokoll verwendet werden.
  • Zur Übermittlung von Änderungs-Angaben über die Änderung einer Kommunikationsrecht-Warteschlange kann beispielsweise das RTCP-Protokoll, das BFCP-Protokoll oder das SIP-Protokoll verwendet werden.
  • Gemäß einem Ausführungsbeispiel wird ein Verfahren zum Versenden von Daten bereitgestellt, das aufweist:
    Speichern einer Instanz eines Datensatzes;
    Empfangen einer Spezifikation einer ersten Änderung des Datensatzes und einer Identifikation der ersten Änderung des Datensatzes;
    Ändern der Instanz des Datensatzes gemäß der ersten Änderung, falls die Instanz des Datensatzes die erste Änderung noch nicht beinhaltet;
    Erzeugen einer Spezifikation einer zweiten Änderung des Datensatzes;
    Erzeugen einer Identifikation der zweiten Änderung basierend auf der Identifikation der ersten Änderung;
    Ändern der Instanz des Datensatzes gemäß der zweiten Änderung; und
    Versenden der Spezifikation der zweiten Änderung und der Identifikation der zweiten Änderung.
  • Gemäß einem Ausführungsbeispiel wird eine Kommunikationseinrichtung bereitgestellt, die aufweist:
    einen Speicher zum Speichern einer Instanz eines Datensatzes;
    einen Empfangsschaltkreis, die eingerichtet ist, eine Spezifikation einer ersten Änderung des Datensatzes und eine Identifikation der Änderung des Datensatzes zu empfangen;
    einen Änderungsschaltkreis, der eingerichtet ist, die Instanz des Datensatzes gemäß der ersten Änderung zu ändern, falls die Instanz des Datensatzes die erste Änderung noch nicht beinhaltet;
    einen Erzeugungsschaltkreis, der eingerichtet ist, eine Spezifikation einer zweiten Änderung des Datensatzes und eine Identifikation der zweiten Änderung basierend auf der Identfikation der ersten Änderung zu erzeugen, wobei der Änderungsschaltkreis eingerichtet ist, die Instanz des Datensatzes gemäß der zweiten Änderung zu ändern; und
    einen Sendeschaltkreis, der eingerichtet ist, die Spezifikation der zweiten Änderung und die Identifikation der zweiten Änderung zu versenden.

Claims (25)

  1. Verfahren zum Versenden von Daten, aufweisend: Empfangen einer ersten Information, die eine erste Änderung eines Datensatzes in einen ersten geänderten Datensatz repräsentiert, und eines der ersten Änderung zugeordneten ersten Daten-Änderungs-Indikators; Durchführen einer zweiten Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz; Ermitteln eines zweiten Daten-Änderungs-Indikators basierend auf dem ersten Daten-Änderungs-Indikator; und Versenden einer zweiten Information, die die zweite Änderung des ersten geänderten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und des zweiten Daten-Änderungs-Indikators.
  2. Verfahren gemäß Anspruch 1, wobei die erste Information der erste geänderte Datensatz ist.
  3. Verfahren gemäß Anspruch 1 oder 2, wobei die zweite Information der zweite geänderte Datensatz ist.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei der erste Daten-Änderungs-Indikator und der zweite Daten-Änderungs-Indikator Zählerwerte aus einer Folge von Zählerwerten sind und wobei der zweite Daten-Änderungs-Indikator der auf den ersten Daten-Änderungs-Indikator folgende Zählerwert ist.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei der zweite Daten-Änderungs-Indikator aus dem ersten Daten-Änderungs-Indikator mittels einer arithmetischen Operation ermittelt wird.
  6. Verfahren gemäß Anspruch 5, wobei der erste Daten-Änderungs-Indikator und der zweite Daten-Änderungs-Indikator ganze Zahlen sind und der zweite Daten-Änderungs-Indikator der um einen vorgegebenen Wert erhöhte erste Daten-Änderungs-Indikator ist.
  7. Verfahren gemäß einem der Ansprüche 1 bis 6, wobei die von einer Kommunikationseinrichtung gesendete erste Information und der erste Daten-Änderungs-Indikator empfangen werden und die zweite Information und der zweite Daten-Änderungs-Indikator an die Kommunikationseinrichtung gesendet werden.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, wobei der Datensatz eine Mehrzahl von Datenelementen aufweist und das Verfahren ferner aufweist: Ermitteln, welche Datenelemente in dem zweiten geänderten Datensatz gegenüber dem ersten geänderten Datensatz geändert sind, und Erzeugen, für jedes geänderte Datenelement, einer Datenelement-Änderungsangabe, die die Änderung des geänderten Datenelements spezifiziert, als Teil der zweiten Information.
  9. Verfahren gemäß einem der Ansprüche 1 bis 8, ferner aufweisend: Speichern des zweiten Daten-Änderungs-Indikators als den der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator.
  10. Verfahren gemäß einem der Ansprüche 1 bis 9, ferner aufweisend: Vergleichen des ersten Daten-Änderungs-Indikators mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator, und Ermitteln, basierend auf dem Vergleichsergebnis, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  11. Verfahren gemäß einem der Ansprüche 1 bis 10, ferner aufweisend: Empfangen einer der ersten Änderung zugewiesenen Identifikation einer Kommunikationseinrichtung, und Ermitteln, basierend auf der empfangenen Identifikation, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  12. Verfahren gemäß einem der Ansprüche 1 bis 11, ferner aufweisend: Zuweisen einer einer Kommunikationseinrichtung, die die zweite Änderung durchführt, zugeordneten Identifikation zu der zweiten Information und Versenden der Identifikation.
  13. Verfahren gemäß einem der Ansprüche 1 bis 12, ferner aufweisend: Ändern einer gespeicherten Instanz des Datensatzes gemäß der ersten Änderung und gemäß der zweiten Änderung.
  14. Verfahren gemäß einem der Ansprüche 1 bis 13, ferner aufweisend: Vergleichen des ersten Daten-Änderungs-Indikators mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator, und Ermitteln, basierend auf dem Vergleichsergebnis, ob eine gespeicherte Instanz des Datensatzes eine Änderung des Datensatzes, die der ersten Änderung vorangegangen ist, beinhaltet.
  15. Verfahren gemäß Anspruch 14, ferner aufweisend: Anfordern einer Information, die einer der ersten Änderung vorangegangenen Änderung des Datensatzes, repräsentiert, falls die gespeicherte Instanz des Datensatzes eine der ersten Änderung vorangegangenen Änderung des Datensatzes, nicht beinhaltet.
  16. Verfahren gemäß einem der Ansprüche 1 bis 15, ferner aufweisend Empfangen einer dritten Information, die eine von einer Kommunikationseinrichtung vorgenommene dritte Änderung eines Datensatzes in einen dritten geänderten Datensatz repräsentiert, und eines der dritten Änderung zugeordneten dritten Daten-Änderungs-Indikators, Überprüfen, ob der dritte Daten-Änderungs-Indikator mit dem zweiten Daten-Änderungs-Indikator übereinstimmt, Versenden der zweiten Information und des zweiten Daten-Änderungs-Indikators an die Kommunikationseinrichtung, die die dritte Änderung vorgenommen hat, falls der dritte Daten-Änderungs-Indikator mit dem zweiten Daten-Änderungs-Indikator übereinstimmt.
  17. Kommunikationseinrichtung, aufweisend: einen Empfangsschaltkreis, der eingerichtet ist, eine erste Information, die eine erste Änderung eines Datensatzes in einen ersten geänderten Datensatz repräsentiert, und einen der ersten Änderung zugeordneten ersten Daten-Änderungs-Indikator zu empfangen; einen Änderungsschaltkreis, der eingerichtet ist, eine zweite Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz durchzuführen; einen Ermittlungsschaltkreis, der eingerichtet ist, einen zweiten Daten-Änderungs-Indikator basierend auf dem ersten Daten-Änderungs-Indikator zu ermitteln;; und einen Sendeschaltkreis, der eingerichtet ist, eine zweite Information, die die zweite Änderung des ersten geänderten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und den zweiten Daten-Änderungs-Indikator zu versenden.
  18. Kommunikationseinrichtung gemäß Anspruch 17, ferner aufweisend: einen Speicher zum Speichern einer Instanz des Datensatzes.
  19. Kommunikationseinrichtung gemäß Anspruch 18, ferner aufweisend: einen Vergleichsschaltkreis, der eingerichtet ist, den ersten Daten-Änderungs-Indikator mit einem gespeicherten, der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator zu vergleichen, wobei der Ermittlungsschaltkreis eingerichtet ist, basierend auf dem Vergleichsergebnis zu ermitteln, ob eine gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  20. Kommunikationseinrichtung gemäß Anspruch 18 oder 19, wobei der Empfangsschaltkreis eingerichtet ist, eine der ersten Änderung zugewiesene Identifikation einer anderen Kommunikationseinrichtung zu empfangen, und wobei der Ermittlungsschaltkreis eingerichtet ist, basierend auf der empfangenen Identifikation zu ermitteln, ob die gespeicherte Instanz des Datensatzes die erste Änderung beinhaltet.
  21. Kommunikationseinrichtung gemäß Anspruch 18 ferner aufweisend: einen Vergleichsschaltkreis, der eingerichtet ist, den ersten Daten-Änderungs-Indikators mit einem gespeicherten der letzten Änderung des Datensatzes zugewiesenen Daten-Änderungs-Indikator zu vergleichen, wobei der Ermittlungsschaltkreis eingerichtet ist, basierend auf dem Vergleichsergebnis zu ermitteln, ob eine gespeicherte Instanz des Datensatzes eine der ersten Änderung vorangegangene Änderung des Datensatzes beinhaltet.
  22. Kommunikationseinrichtung gemäß Anspruch 21, ferner aufweisend: einen Anforderungsschaltkreis, der eingerichtet ist, eine Information, die eine der ersten Änderung vorangegangene Änderung des Datensatzes repräsentiert, anzufordern.
  23. Computerprogramm-Produkt, das, wenn es von einem Computer ausgeführt wird, bewirkt, dass der Computer ein Verfahren zum Versenden von Daten ausführt, wobei das Verfahren aufweist: Empfangen einer ersten Information, die eine erste Änderung eines Datensatzes in einen ersten geänderten Datensatz repräsentiert, und eines der ersten Änderung zugeordneten ersten Daten-Änderungs-Indikators; Durchführen einer zweiten Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz; Ermitteln eines zweiten Daten-Änderungs-Indikators basierend auf dem ersten Daten-Änderungs-Indikator; und Versenden einer zweiten Information, die die zweite Änderung des ersten geänderten Datensatzes in den zweiten geänderten Datensatz repräsentiert, und des zweiten Daten-Änderungs-Indikators.
  24. Verfahren zum Versenden von Daten, aufweisend Speichern einer Instanz eines Datensatzes; Empfangen einer Spezifikation einer ersten Änderung des Datensatzes und einer Identifikation der ersten Änderung des Datensatzes; Ändern der Instanz des Datensatzes gemäß der ersten Änderung, falls die Instanz des Datensatzes die erste Änderung noch nicht beinhaltet; Erzeugen einer Spezifikation einer zweiten Änderung des Datensatzes; Erzeugen einer Identifikation der zweiten Änderung basierend auf der Identifikation der ersten Änderung; Ändern der Instanz des Datensatzes gemäß der zweiten Änderung; und Versenden der Spezifikation der zweiten Änderung und der Identifikation der zweiten Änderung.
  25. Kommunikationseinrichtung, aufweisend: einen Speicher zum Speichern einer Instanz eines Datensatzes; einen Empfangsschaltkreis, der eingerichtet ist, eine Spezifikation einer ersten Änderung des Datensatzes und eine Identifikation der Änderung des Datensatzes zu empfangen; einen Änderungsschaltkreis, der eingerichtet ist, die Instanz des Datensatzes gemäß der ersten Änderung zu ändern, falls die Instanz des Datensatzes die erste Änderung noch nicht beinhaltet; eine Erzeugungsschaltkreis, der eingerichtet ist, eine Spezifikation einer zweiten Änderung des Datensatzes und eine Identifikation der zweiten Änderung basierend auf der Identfikation der ersten Änderung zu erzeugen, wobei der Änderungsschaltkreis eingerichtet ist, die Instanz des Datensatzes gemäß der zweiten Änderung zu ändern; und einen Sendeschaltkreis, der eingerichtet ist, die Spezifikation der zweiten Änderung und die Identifikation der zweiten Änderung zu versenden.
DE102008036453A 2008-08-05 2008-08-05 Verfahren zum Versenden von Daten und Kommunikationseinrichtung Withdrawn DE102008036453A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008036453A DE102008036453A1 (de) 2008-08-05 2008-08-05 Verfahren zum Versenden von Daten und Kommunikationseinrichtung
US12/535,708 US8145772B2 (en) 2008-08-05 2009-08-05 Method for sending data, and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008036453A DE102008036453A1 (de) 2008-08-05 2008-08-05 Verfahren zum Versenden von Daten und Kommunikationseinrichtung

Publications (1)

Publication Number Publication Date
DE102008036453A1 true DE102008036453A1 (de) 2010-02-11

Family

ID=41501156

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008036453A Withdrawn DE102008036453A1 (de) 2008-08-05 2008-08-05 Verfahren zum Versenden von Daten und Kommunikationseinrichtung

Country Status (2)

Country Link
US (1) US8145772B2 (de)
DE (1) DE102008036453A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317575B1 (en) * 2015-05-20 2016-04-19 Atlassian Pty Ltd. Systems and methods for synchronizing data
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
TWI713195B (zh) 2018-09-24 2020-12-11 美商森恩萊斯記憶體公司 三維nor記憶電路製程中之晶圓接合及其形成之積體電路
CN113383415A (zh) * 2019-01-30 2021-09-10 日升存储公司 使用晶片键合的具有嵌入式高带宽、高容量存储器的设备
WO2021127218A1 (en) 2019-12-19 2021-06-24 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor
WO2021159028A1 (en) 2020-02-07 2021-08-12 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
WO2022173700A1 (en) 2021-02-10 2022-08-18 Sunrise Memory Corporation Memory interface with configurable high-speed serial data lanes for high bandwidth memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005002803B3 (de) * 2005-01-20 2006-08-31 Infineon Technologies Ag Kommunikationssystem mit einer Konferenz-Servereinrichtung, einer Konferenz-Steuereinheit, mehreren Moderator-Einheiten, mehreren Telekommunikations-Einrichtungen und einem Verfahren zum Steuern einer Konferenz

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US20040237045A1 (en) * 2003-05-21 2004-11-25 Eintelligence, Inc. Method for asynchronous sharing of integrated spreadsheets using a network
US7873956B2 (en) * 2003-09-25 2011-01-18 Pantech & Curitel Communications, Inc. Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US20070067373A1 (en) * 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
KR101532789B1 (ko) * 2008-01-04 2015-07-09 엘지전자 주식회사 재전송 데이터를 처리하는 harq 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005002803B3 (de) * 2005-01-20 2006-08-31 Infineon Technologies Ag Kommunikationssystem mit einer Konferenz-Servereinrichtung, einer Konferenz-Steuereinheit, mehreren Moderator-Einheiten, mehreren Telekommunikations-Einrichtungen und einem Verfahren zum Steuern einer Konferenz

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Norm ITU-T X.25, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, (10/96), S. 26-29 *

Also Published As

Publication number Publication date
US20100036960A1 (en) 2010-02-11
US8145772B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
DE102008036453A1 (de) Verfahren zum Versenden von Daten und Kommunikationseinrichtung
DE602005004214T2 (de) Kommunikationssystem and Verfahren zur Aktualisierung von Software in einem Endbenutzergerät
DE60108166T2 (de) Untergruppen-multicasting in einem kommunikationsnetz
DE602005003301T2 (de) Verfahren zum Aufbau einer Verbindung zwischen Peer-Gruppen
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE602004004601T2 (de) Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene
DE69838314T2 (de) Verfahren und Vorrichtung zum dynamischen Laden eines Transportmechanismus in einem Mehrpunktdatenübermittlungssystem
DE112010005499T5 (de) Steuern der Nachrichtenübermittlung beim Publish/Subscribe-Nachrichtenaustausch
DE102007056725A1 (de) Verfahren zum bedingten Aufbauen einer Telekommunikationskonferenzsitzung, Telekommunikationskonferenz-Anordnung, und Telekommunikationskonferenzsitzungs-Server
DE102005010038B4 (de) Verfahren zum Bereitstellen mehrerer Gruppen-Kommunikationsdienste, Gruppen-Kommunikationsdienst-System und Gruppen-Kommunikationsdienst-Server-Einheit
DE102012001394A1 (de) Gemeinsamer Medienzugang für Echtzeit-Erst- und Drittparteisteuerung
DE10226304A1 (de) Tokengesteuerte Bildung von drahtlosen Arbeitsgruppen
DE102004052440B3 (de) Verfahren zum rechnergestützten Verwalten einer Telekommunikations-Konferenz und Telekommunikation-Konferenz-Servereinrichtungen
DE10238546A1 (de) Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
EP2119109A1 (de) Verfahren und vorrichtung zum verteilen eines datensegments eines datenstroms an eine gruppe von mehreren nutzern
EP1794673B1 (de) Verfahren zum verteilen von software und konfigurationsdaten mit zeitüberwachung sowie entsprechendes datennetz
DE102007058948A1 (de) Verfahren zum Ermitteln von mindestens einem Teilnehmergerät für eine Telekommunikationskonferenzsitzung, Telekommunikationskonferenz-Anordnung, und Telekommunikationskonferenzsitzungs-Server
DE102005049074B4 (de) Verfahren zum rechnergestützten Vergeben eines Kommunikationsrechts, Verfahren zum rechnergestützten Erzeugen einer Kommunikationsrecht-Anforderungsnachricht, Kommunikationsrecht-Vergabe-Einheit, Kommunikations-Konferenz-Servereinheit, Kommunikations-Konferenz-Nachricht-Erzeugungseinheit, Kommunikations-Endgerät und Verfahren zum rechnergestützten Initialisieren eines Konferenz-Nachrichtenflusses in einer Kommunikations-Konferenz
DE19900636B4 (de) Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung
EP1977583B1 (de) Verfahren zur Übermittlung einer Nachricht und Netzwerk
WO2009153176A1 (de) Verfahren zur ermittlung aktiver kommunikationssitzungen und kommunikationssitzungs-informationsserver
WO2009083410A1 (de) Verfahren und vorrichtung zum betreiben einer audio- und/oder videokonferenz mit zumindest zwei teilnehmern
WO2008003404A1 (de) Verfahren und kommunikationssystem zur steuerung des datenflusses über netzwerkknoten
WO2007065757A1 (de) Verfahren und peer-netzwerk zur ermittlung der peer-netzwerk-herkunftsstation einer datei
DE102004050348B3 (de) Verfahren zur Initialisierung eines Datennetzes

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R081 Change of applicant/patentee

Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20130207

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20130207

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

Effective date: 20130207

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Effective date: 20130207

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee