DE102008036453A1 - Verfahren zum Versenden von Daten und Kommunikationseinrichtung - Google Patents
Verfahren zum Versenden von Daten und Kommunikationseinrichtung Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
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-Anordnung100 gemäß einem Ausführungsbeispiel. - Eine erste Kommunikationseinrichtung
101 ist mittels einer ersten Kommunikations-Verbindung106 mit einer zweiten Kommunikationseinrichtung102 gekoppelt. Ferner ist die erste Kommunikationseinrichtung101 mittels einer zweiten Kommunikations-Verbindung107 mit einer dritten Kommunikationseinrichtung103 , mittels einer dritten Kommunikations-Verbindung108 mit einer vierten Kommunikationseinrichtung104 und mittels einer vierten Kommunikations-Verbindung109 mit einer fünften Kommunikationseinrichtung105 gekoppelt. - Eine Kommunikationseinrichtung
101 bis105 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 bis105 an einer Anwendung beteiligt sind, die es erfordert, dass Daten, beispielsweise ein Datensatz, zwischen den Kommunikationseinrichtungen101 bis105 synchronisiert werden, d. h., dass, wenn beispielsweise eine der Kommunikationseinrichtungen101 bis105 die Daten ändert, die andere Kommunikationseinrichtung101 bis105 (oder die anderen Kommunikationseinrichtungen101 bis105 ) über die Änderung informiert wird, indem beispielsweise die geänderten Daten an die andere Kommunikationseinrichtung101 bis105 gesendet wird oder Informationen über die Änderung der Daten gegenüber einer vorherigen Version, beispielsweise gegenüber der letzten der Kommunikationseinrichtung101 bis105 mitgeteilten Version, an die Kommunikationseinrichtung101 bis105 übermittelt werden. - In einer Ausführungsform werden Daten zwischen den Kommunikationseinrichtungen
101 bis105 synchronisiert, indem eine Kommunikationseinrichtung101 bis105 , 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 Kommunikationseinrichtungen101 bis105 im Zusammenhang mit einer (vorherigen) Änderung der Daten, die von der anderen Kommunikationseinrichtung101 bis105 vorgenommen wurde, wählt. - Beispielsweise identifiziert eine Kommunikationseinrichtung
101 bis105 , 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 Kommunikationseinrichtung101 bis105 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 bis105 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 Kommunikationseinrichtung101 bis105 für die Daten-Änderung gewählt hat, und in einer Ausführungsform zusammen mit einer Adresse der Kommunikationseinrichtung101 bis105 an die andere Kommunikationseinrichtung101 bis105 (oder die anderen Kommunikationseinrichtungen101 bis105 ). Eine Kommunikationseinrichtung101 bis105 , 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 Kommunikationseinrichtung101 bis105 , die die Daten-Änderung vorgenommen hat. - Stellt in einer Ausführungsform eine Kommunikationseinrichtung
101 bis105 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 Kommunikationseinrichtung101 bis105 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 Kommunikationseinrichtung101 bis105 die gespeicherte Daten-Änderungs-Nummer der Kommunikationseinrichtung101 bis105 , die die (aktuelle) Änderung vorgenommen hat, mit. Die Kommunikationseinrichtung101 bis105 , die die Änderung vorgenommen hat, übermittelt daraufhin beispielsweise an die empfangende Kommunikationseinrichtung101 bis105 Angaben über Daten-Änderungen, die zwischen der Daten-Änderung, der die in der empfangenden Kommunikationseinrichtung101 bis105 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 bis105 synchronisiert werden sollen, von allen beteiligten Kommunikationseinrichtungen101 bis105 verändert werden können. - Gemäß einem Ausführungsbeispiel wird es ermöglicht, dass die Kommunikationseinrichtungen
101 bis105 gemäß einer beliebigen Netzwerktopologie miteinander verbunden sein können. Beispielsweise wird es in einem Ausführungsbeispiel ermöglicht, dass die Kommunikationseinrichtungen101 bis105 zum Teil nur indirekt mittels anderer der Kommunikationseinrichtungen101 bis105 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 bis105 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 bis105 zum Versenden von Daten (z. B. eines zwischen der Kommunikationseinrichtung und einer anderen Kommunikationseinrichtung zu synchronisierenden Datensatzes) das in2 dargestellte Verfahren durch. -
2 zeigt ein Flussdiagramm200 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 in3 dargestellt ist. -
3 zeigt eine Kommunikationseinrichtung300 gemäß einem Ausführungsbeispiel. - Die Kommunikationseinrichtung
300 weist einen Empfangsschaltkreis301 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 Änderungsschaltkreis302 auf, der eingerichtet ist, eine zweite Änderung des ersten geänderten Datensatzes in einen zweiten geänderten Datensatz durchzuführen;. - Ein Ermittlungsschaltkreis
303 der Kommunikationseinrichtung300 ist eingerichtet, einen zweiten Daten-Änderungs-Indikator basierend auf dem ersten Daten-Änderungs-Indikator zu ermitteln. - Ein Sendeschaltkreis
304 der Kommunikationseinrichtung300 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 Ermittlungsschaltkreis303 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 Kommunikationseinrichtungen101 bis105 Kommunikationseinrichtungen eines Konferenz-Kommunikationssystems, beispielsweise eines Push-To-Talk (PTT)-Kommunikationssystems gemäß dem OMA(Open Mobile Alliance)-Standard sind. Beispielsweise ist die erste Kommunikationseinrichtung101 ein Kommunikations-Server und die anderen Kommunikationseinrichtungen102 bis105 sind Teilnehmergeräte, die an einer von der ersten Kommunikationseinrichtung101 bereitgestellten Konferenz teilnehmen. In diesem Fall kommunizieren die teilnehmenden Kommunikationseinrichtungen102 bis105 nicht direkt miteinander, sondern mittels des zentralen Konferenz-Servers, d. h., der ersten Kommunikationseinrichtung101 . - In diesem Beispiel nehmen vier Teilnehmergeräte
102 bis105 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 Kommunikationseinrichtung101 ) angefordert wird. Der Benutzer kann beispielsweise nur dann Sprach- Nachrichten an die anderen Teilnehmergeräte (und somit deren Benutzer) übermitteln, wenn der Server101 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 bis105 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 Server101 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 Kommunikationseinrichtungen102 bis105 verwendet. Der Moderator vergibt das Kommunikationsrecht mit Hilfe der von ihm verwendeten Kommunikationseinrichtung102 bis105 (in anderen Worten des Moderator-Endgeräts), welche mit dem Server101 Moderator-Nachrichten austauscht. Damit der Moderator über die Vergabe des Kommunikationsrechts entscheiden kann, wird dem Moderator (bzw. der von ihm verwendeten Kommunikationseinrichtung102 bis105 ) 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 Server101 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 bis105 , die eine Kommunikationsrecht-Anforderung versendet haben und deren Reihenfolge, bildet somit einen Datensatz, der zwischen dem Server101 und der Kommunikationseinrichtung102 bis105 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 Server101 die Warteschlange (und damit den Zustand der Warteschlange) verändern. - Ein Beispiel für die Synchronisation der Warteschlange zwischen dem Server
101 und der Kommunikationseinrichtung102 bis105 , die von dem Moderator verwendet wird, ist in4 dargestellt. -
4 zeigt ein Nachrichten-Flussdiagramm400 gemäß einem Ausführungsbeispiel. - Der dargestellte Nachrichtenfluss findet statt zwischen einem Server-Computer
401 , beispielsweise entsprechend der ersten Kommunikationseinrichtung101 in1 , zum Beispiel einem Push-To-Talk-Server und einem Moderator-Endgerät402 , beispielsweise einer der (zweiten bis fünften) Kommunikationseinrichtungen102 bis105 in1 . - 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ät402 leer sind. Der Server-Computer setzt in403 seine interne Änderungs-Nummer auf 0 und seine interne Änderungs-Adresse auf „keine Adresse” oder „leere Adresse”. Analog setzt in404 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 in405 eine erste Kommunikationsrecht-Anforderung423 erhält (in4 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-Anforderung423 selbst die Warteschlange anpasst, indem er die erste Kommunikationsrecht-Anforderung423 in die Warteschlange einträgt. - In
407 sendet der Server-Computer401 eine erste Änderungs-Angabe408 zusammen mit seiner internen Änderungs-Nummer (aktuell 1) und seiner internen Änderungs-Adresse (aktuell seine eigene Adresse) an das Moderator-Endgerät402 . 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-Angabe408 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-Angabe408 ) erzeugt. Beispielsweise sind die Elemente in diesem Beispiel die Plätze in der Warteschlange und der Server-Computer401 erzeugt für den aktuell letzten Platz der Warteschlange die Angabe, dass er nun die erste Kommunikationsrecht-Anforderung423 enthält (während er zuvor beispielsweise leer war). - Nachdem das Moderator-Endgerät
402 die erste Änderungs-Angabe408 vom Server-Computer401 empfangen hat, vergleicht das Moderator-Endgerät in409 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ät402 die angegebene Änderung. Das Moderator-Endgerät402 ändert gemäß der ersten Änderungs-Angabe408 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ät402 die Information, dass die aktuelle Änderungs-Nummer 1 durch den Server-Computer401 vergeben wurde, indem es seine interne Änderungs-Adresse auf die empfangene Änderungs-Adresse, also auf die Adresse des Server-Computers401 , setzt. - Nun wird angenommen, dass der Server-Computer
401 in410 eine zweite Kommunikationsrecht-Anforderung411 erhält. In412 speichert der Server-Computer401 die zweite Kommunikationsrecht-Anforderung411 in seiner Instanz der Warteschlange und inkrementiert seine interne Änderungs-Nummer auf den Wert 2. Außerdem setzt der Server-Computer401 seine interne Änderungs-Adresse auf seine eigene Adresse, da er auch in diesem Fall selbst die Änderung der Warteschlange vorgenommen hat. In413 sendet der Server-Computer401 eine zweite Änderungs-Angabe414 zusammen mit seiner aktuellen Änderungs-Nummer und seiner aktuellen Änderungs-Adresse an das Moderator-Endgerät402 . Die zweite Änderungs-Angabe414 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-Anforderung411 . - Es wird nun angenommen, dass die zweite Änderungs-Angabe
414 aufgrund einer unzuverlässigen Kommunikations-Verbindung zwischen dem Server-Computer401 und dem Moderator-Endgerät402 von dem Moderator-Endgerät402 nicht empfangen wird. - Außerdem wird angenommen, dass der Moderator in
415 entscheidet, dass die erste Kommunikationsrecht-Anforderung423 genehmigt werden soll. Deshalb entfernt das Moderator-Endgerät in416 die erste Kommunikationsrecht-Anforderung423 aus seiner Instanz der Warteschlange. Da die interne Änderungs-Nummer des Moderator-Endgeräts402 noch auf 1 ist (da die zweite Änderungs-Angabe414 nicht empfangen wurde), setzt das Moderator-Endgerät402 seine interne Änderungs-Nummer auf den nachfolgenden Wert 2. Außerdem setzt das Moderator-Endgerät402 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ät402 eine dritte Änderungsangabe418 über die von ihm vorgenommene Änderung der Warteschlange an den Server-Computer401 zusammen mit seiner internen Änderungs-Nummer (2) und seiner internen Änderungs-Adresse (seine eigene Adresse). - In
419 vergleicht der Server-Computer401 seine interne Änderungs-Nummer mit der von dem Moderator-Endgerät402 empfangenen Änderungs-Nummer. Da beide Änderungs-Nummern übereinstimmen (beide sind auf den Wert 2 gesetzt), könnte der Server-Computer401 davon ausgehen, dass die von ihm gespeicherte Version der Warteschlange bereits die von der dritten Änderungs-Angabe418 angegebene Änderung beinhaltet. Der Server-Computer401 vergleicht jedoch zusätzlich die empfangene Änderungs-Adresse mit seiner internen Änderungs-Adresse. Da die interne Änderungs-Adresse des Server-Computers401 seine eigene Adresse ist und die empfangene Änderungs-Adresse die des Moderator-Endgeräts402 ist, erkennt der Server-Computer401 , dass die durch die dritte Änderungs-Angabe418 spezifizierte Änderung der Warteschlange durch den Server-Computer401 noch nicht berücksichtigt worden ist und dass das Moderator-Endgerät402 die zweite Änderungs-Angabe414 nicht empfangen hat. - Der Server-Computer
401 sendet daraufhin in420 die zweite Änderungs-Angabe414 mit der Änderungs-Nummer 2 und der Änderungs-Adresse von ihm selbst erneut an das Moderator-Endgerät402 . In421 und422 setzen der Server-Computer401 bzw. das Moderator-Endgerät402 entsprechend ihre internen Änderungs-Nummern auf 3 und die internen Änderungs-Adressen auf die Adresse des Moderator-Endgeräts402 . - Ein Beispiel für einen weiteren Ablauf der Synchronisation zwischen dem Server-Computer
401 und dem Moderator-Endgerät402 ist in5 dargestellt. -
5 zeigt ein Nachrichten-Flussdiagramm500 gemäß einem Ausführungsbeispiel. - Der dargestellte Nachrichtenfluss findet analog zu dem in
4 dargestellten Nachrichtenfluss zwischen einem Server-Computer501 und einem Moderator-Endgerät502 statt. - Entsprechend zu
421 und422 in4 wird zu Beginn des in5 dargestellten Ablaufs davon ausgegangen, dass der Server-Computer501 in503 seine interne Änderungs-Nummer auf den Wert 3 und seine interne Änderungs-Adresse auf die Adresse des Moderator-Endgeräts502 gesetzt hat und dass in504 das Moderator-Endgerät seine interne Änderungs- Nummer auf den Wert 3 und seine interne Änderungs-Adresse auf die Adresse des Moderator-Endgeräts502 gesetzt haben. - Es wird nun angenommen, dass der Server-Computer
501 in505 eine dritte Kommunikationsrecht-Anforderung506 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. In508 sendet der Server-Computer501 eine vierte Änderungs-Angabe509 an das Moderator-Endgerät502 mit Informationen über die von ihm vorgenommene Änderung der Warteschlange (Aufnahme der dritten Kommunikationsrecht-Anforderung506 ) der Änderungs-Nummer 4 und seine eigene Adresse als Änderungs-Adresse. - Es wird angenommen, dass das Moderator-Endgerät
502 die vierte Änderungs-Angabe509 nicht empfängt. Weiterhin wird angenommen, dass anschließend in510 der Server-Computer501 eine vierte Kommunikationsrecht-Anforderung511 erhält. - Der Server-Computer
501 fügt die vierte Kommunikationsrecht-Anforderung511 in seine Warteschlange ein und setzt in512 entsprechend seine interne Änderungs-Nummer auf den Wert 5 und seine interne Änderungs-Adresse auf seine eigene Adresse. - Ferner übermittelt der Server-Computer
501 in513 eine fünfte Änderungs-Angabe514 an das Moderator-Endgerät502 mit der Information über die Aufnahme der vierten Kommunikationsrecht-Anforderung511 in die Warteschlange, der Änderungs-Nummer5 und der Adresse des Server-Computers501 als Änderungs-Adresse. - In
515 vergleicht das Moderator-Endgerät502 die mit der fünften Änderungs-Angabe514 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ät502 , dass es die vierte Änderungs-Angabe509 nicht empfangen hat. - Dementsprechend fordert das Moderator-Endgerät
502 in516 mittels einer Änderungs-Anforderung517 die vierte Änderungs-Angabe509 von dem Server-Computer501 an, indem es mittels der Änderungs-Anforderung517 seine zuletzt intern gespeicherte Änderungs-Nummer (die auf 3 gesetzt ist) dem Server-Computer501 mitteilt. - Daraufhin übermittelt der Server-Computer in
518 die vierte Änderungs-Angabe519 erneut an das Moderator-Endgerät502 . - Das Moderator-Endgerät
502 setzt in520 seine interne Änderungs-Nummer auf den Wert 5 und die Änderungs-Adresse auf die Adresse des Server-Computers501 entsprechend der fünften Änderungs-Angabe514 . - 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-Anordnung600 gemäß einem Ausführungsbeispiel. - Die Kommunikations-Anordnung
600 weist eine erste Kommunikationseinrichtung601 , eine zweite Kommunikationseinrichtung602 , eine dritte Kommunikationseinrichtung603 und eine vierte Kommunikationseinrichtung604 auf. In diesem Beispiel sind alle Kommunikationseinrichtungen601 bis604 paarweise mittels Kommunikations-Verbindungen gekoppelt. Bei einer Änderung von zu synchronisierenden Daten durch eine der Kommunikationseinrichtungen601 bis604 übermittelt die die Daten ändernde Kommunikationseinrichtung601 bis604 eine entsprechende Änderungs-Angabe an mehrere, beispielsweise an alle anderen Kommunikationseinrichtungen601 bis604 . - 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 in7 dargestellt. -
7 zeigt eine Kommunikations-Anordnung700 gemäß einem Ausführungsbeispiel. - Die Kommunikations-Anordnung
700 weist eine erste Kommunikationseinrichtung701 , eine zweite Kommunikationseinrichtung702 , eine dritte Kommunikationseinrichtung703 und eine vierte Kommunikationseinrichtung704 auf. - In diesem Beispiel sind beispielsweise die erste Kommunikationseinrichtung
701 und die dritte Kommunikationseinrichtung703 nicht direkt mittels einer Kommunikations-Verbindung gekoppelt, sondern nur mittels der zweiten Kommunikationseinrichtung702 gekoppelt. Zur Daten-Synchronisation zwischen den Kommunikationseinrichtungen701 bis704 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 Kommunikationseinrichtung101 Änderungs-Angaben an die anderen Kommunikationseinrichtungen102 bis105 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-Flussdiagramm800 gemäß einem Ausführungsbeispiel. - Analog zu
4 findet der dargestellte Nachrichtenfluss zwischen einem Server-Computer801 und einem Moderator-Endgerät802 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 in803 eine erste SIP-Nachricht804 an das Moderator-Endgerät802 ü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ät802 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ät802 die Antwort-Nachricht des SIP-MESSAGE-Dialogs, eine SIP-OK-Nachricht807 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-Nachricht807 . - 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)
- 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.
- Verfahren gemäß Anspruch 1, wobei die erste Information der erste geänderte Datensatz ist.
- Verfahren gemäß Anspruch 1 oder 2, wobei die zweite Information der zweite geänderte Datensatz ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Kommunikationseinrichtung gemäß Anspruch 17, ferner aufweisend: einen Speicher zum Speichern einer Instanz des Datensatzes.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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)
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 동작 방법 |
-
2008
- 2008-08-05 DE DE102008036453A patent/DE102008036453A1/de not_active Withdrawn
-
2009
- 2009-08-05 US US12/535,708 patent/US8145772B2/en not_active Expired - Fee Related
Patent Citations (1)
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)
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 |