DE602005004370T2 - Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata - Google Patents

Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata Download PDF

Info

Publication number
DE602005004370T2
DE602005004370T2 DE602005004370T DE602005004370T DE602005004370T2 DE 602005004370 T2 DE602005004370 T2 DE 602005004370T2 DE 602005004370 T DE602005004370 T DE 602005004370T DE 602005004370 T DE602005004370 T DE 602005004370T DE 602005004370 T2 DE602005004370 T2 DE 602005004370T2
Authority
DE
Germany
Prior art keywords
data
server
group
mobile device
processor
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.)
Active
Application number
DE602005004370T
Other languages
English (en)
Other versions
DE602005004370D1 (de
Inventor
Barry RR2 Petersburg Linkert
Jie Kitchener Zhu
Salim Waterloo Omar
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.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
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 Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of DE602005004370D1 publication Critical patent/DE602005004370D1/de
Application granted granted Critical
Publication of DE602005004370T2 publication Critical patent/DE602005004370T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

  • Die vorliegende Erfindung betrifft Datenbanken und insbesondere die Synchronisierung von auf einem Gerät (z. B. einem drahtlosen Handheld-Gerät) gespeicherten Daten und auf einem Server gespeicherten Daten unter Benutzung eines Geräte-Daten-Schemas.
  • Drahtlose Kommunikationsgeräte einschließlich Zellulartelefone, Personal Digital Assistants (PDAs) und dergleichen speichern Daten in den drahtlosen Geräten oft für von dem Gerät vorgesehene Anwendungen. Die Daten können Benutzer bei der Bedienung der drahtlosen Geräte unterstützen oder tragbare Informationen bereitstellen. Solche Daten können neben anderen Daten zur Unterstützung beim Texteintrag unter Benutzung des Geräts ein Adressbuch, einen Terminkalender, eine Aufgabenliste, Notizen und ein Wörterbuch umfassen. Oft werden diese Daten auch entfernt von dem drahtlosen Gerät wie auf einem Unternehmensserver, einem Personalcomputer oder anderen entfernten Speichergerät gespeichert. Zum Beispiel können Adressbuch- und Kalenderdaten von Anwendungen auf dem mobilen drahtlosen Gerät gemeinsam genutzt werden und ähnliche Anwendungen in einem Unternehmenskontext vorgesehen sein. Daten werden in der Regel in einer Tabellen umfassenden Datenbank gespeichert. Eine Tabelle (z. B. für ein Adressbuch) kann eine Vielzahl von Datensätzen speichern (z. B. wo ein Datensatz einen Kontakt mit Adress- und Kommunikationseinzelheiten definiert), die über ein oder mehrere Felder zum Speichern von Daten verfügen (z. B. Vorname, zweiter Vorname, Nachname, Anrede, Unternehmen, Adresse, geschäftliche Telefon-nummer, Fax, private Nummer, E-Mail-Adresse usw.).
  • Daten können sich auf verschiedene Arten ändern. Ein neuer Datensatz kann hinzugefügt oder ein vorhandener Datensatz gelöscht werden. Daten in einem oder mehreren Feldern können geändert werden. Mitunter kann ein neues Feld hinzugefügt oder ein vorhandenes Feld gelöscht werden. Felder in einem Datensatz können verwendet werden, um einen zum Identifizieren des Datensatzes in der Datenbanktabelle nützlichen Kennbegriff zu definieren. Änderungen des Kennbegriffs können ebenfalls gewünscht werden.
  • Oft müssen Änderungen der Daten in einem oder mehreren des drahtlosen Geräts und des entfernten Speichergeräts synchronisiert werden, um den gewünschten Zustand der Daten auf all den Geräten widerzuspiegeln. Die Synchronisierung der Daten kann durch das Kommunizieren von an den Daten vorgenommenen Änderungen zwischen dem drahtlosen Gerät und entfernten Speichergerät und das Lösen etwaiger Konflikte erfolgen. Die Synchronisierung kann drahtlos (d. h. over the air) oder in drahtgebundener Weise durchgeführt werden, falls das drahtlose Gerät mit dem entfernten Speichergerät unter Benutzung einer Serien- oder anderen drahtbasierten Schaltung verbunden werden kann. Die Synchronisierung wird in der Regel gemäß einem Protokoll zur Herstellung von Kommunikationen zwischen dem drahtlosen und entfernten Speichergeräten und zum Kommunizieren der Änderungen durchgeführt. Das Definieren eines Protokolls, das flexibel ist und einem drahtlosen Gerät das Vornehmen von Änderungen an Datensatzfeldern und Kennbegriffen gestattet, ist wünschenswert.
  • Aus US2004/224672 ist ein Synchronisierungsserver für die Synchronisierung einer Datenbank in einem mobilen drahtlosen Gerät mit einer Datenbank in einem Kommunikationsnetzwerk bekannt, mit dem das mobile Gerät drahtlos verbunden ist. Hash-Funktionen werden an dem mobilen Gerät und an einem Netzwerkteil auf Datenbankinformationskopien des mobilen Geräts und des Netzwerks ausgeführt. Der Vergleich der davon ausgebildeten Hash-Informationen liefert einen vorläufigen Hinweis darauf, ob die Datenbanken miteinander abgeglichen sind. Falls ermittelt wird, dass die Datenbanken nicht miteinander abgeglichen sind, werden die Daten verglichen und werden die Daten als Antwort auf diese weiteren Vergleiche abgeglichen angeordnet. US2004/224672 beschreibt einen Hash-Generator zum Abfragen von Inhalten aus diesen Datenbanken und zum Hashing der Daten in Form eines kurzen Digests. Die Hash-Informationen werden dann für den Schritt des Vergleichens der Hash-Informationen an den Synchronisierungsserver geleitet.
  • Aus US6272545 ist ein Synchronisierungsmanager bekannt, welcher einen Bezugsspeicher verwaltet, der eine Abbildung zwischen Instanzen von in einem Objektspeicher auf einem mobilen Gerät gespeicherten Objekten und in einem Objektspeicher auf einem Desktop-Computer gespeicherten Objekten vorsieht. Der Synchronisierungsmanager ermittelt, ob irgendwelche der in dem Objektspeicher des Desktop-Computers gespeicherten Objekte seit der letzten Synchronisierung am Desktop modifiziert worden sind. Wenn die demselben Objekt entsprechenden Handles in sowohl dem Desktop-Computer-Objektspeicher als auch dem Bezugsspeicher angezeigt werden, jedoch nicht identisch sind, weist dies darauf hin, dass das Objekt im Objektspeicher des Desktop-Computers seit der letzten Synchronisierung modifiziert worden ist. Der Synchronisierungsmanager ermittelt auch, ob irgendwelche der in dem Objektspeicher des mobilen Geräts gespeicherten Objekte seit der letzten Synchronisierung hinzugefügt oder modifiziert worden sind. Um zu ermitteln, ob ein Objekt hinzugefügt oder gelöscht worden ist, vergleicht der Synchronisierungsmanager die Liste der Objekte im Bezugsspeicher mit einer Liste von Objekten in dem von dem Synchronisierungsmanager verwalteten Objektspeicher des mobilen Geräts.
  • Aus WO01/69435 ist ein Prozess bekannt, bei dem bei der Auslösung eines Synchronisierungsprozesses ein eine erste Version einer Datenbank enthaltendes Client-Gerät eine erste Synchronisierungsnachricht an einen eine zweite Version der Datenbank enthaltenden Server übermittelt. Die erste Synchronisierungsnachricht enthält MAPITEM-Datensätze aus einem vorherigen Synchronisierungsprozess der Datenbanken, an der zweiten Datenbank durchzuführende UPDATES, eine aktuelle Zeit und eine Zeit des letzten Synchronisierungsprozesses. Die zweite Version der Datenbank an dem Server wird als Ant wort auf die Synchronisierungsnachricht von dem Client-Gerät her aktualisiert. Die MAPITEM-(ABBILDUNGSELEMENT-)Datensätze sind Datensätze eines vorherigen Synchronisierungsprozesses. Die UPDATES (AKTUALISIERUNGEN) sind eine Liste von an den Daten an dem Client-Gerät vorgenommenen Änderungen.
  • ALLGEMEINES
  • Es werden hierin Verfahren und eine Vorrichtung für die Synchronisierung von in einem drahtlosen Gerät gespeicherten ersten Daten und in einem entfernten Gerät gespeicherten zweiten Daten beschrieben. Ein Schema, das die zu synchronisierenden Daten beschreibt, wird von dem Gerät verwaltet. Das Schema wird von dem Gerät zur Unterstützung bei der Synchronisierung bereitgestellt. Änderungen an dem Geräte-Daten-Schema können von einem Synchronisierungsserver transparent erledigt werden. In einer Ausführungsform umfasst ein Verfahren, das von einem Server zur Synchronisierung von in einem mobilen Gerät gespeicherten ersten Daten und in einem entfernten Speichergerät gespeicherten zweiten Daten ausgeführt wird, das Empfangen eines Schemas von dem mobilen Gerät her, das die ersten Daten beschreibt; das Abgleichen jeweiliger Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Gruppenebene; das Aktualisieren mindestens der einen der ersten und zweiten Daten als Antwort auf die Unterschiede, wobei die gruppenabgeglichenen Daten für die ersten Daten und gruppenabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten entsprechender Gruppen der ersten Daten und der zweiten Daten sowie Satzanzahlen umfassen, welche eine Reihe von Datensätzen für jede Gruppe von Instanzen jeweils der ersten und zweiten Daten umfassen.
  • Diese und andere Aspekte einschließlich eines oder mehrerer Computer-programmprodukt-Aspekte werden dem Durchschnittsfachmann verständlich sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Erfindung leicht verständlich ist, sind Ausführungsformen der Erfindung in den beiliegenden Zeichnungen beispielhaft veranschaulicht.
  • Es zeigen:
  • 1 ein Blockdiagramm, welches entsprechende Komponenten eines zur Ermöglichung der Synchronisierung von Daten zwischen einem mobilen drahtlosen Gerät und einem entfernten Speichergerät ausgebildeten drahtlosen Kommunikationsnetzwerks veranschaulicht, das einen Unternehmensserver gemäß einer Ausführungsform der Erfindung umfasst.
  • 2 ein Blockdiagramm eines bevorzugten drahtlosen Kommunikationsgeräts, das zum Durchführen einer Ausführungsform der Erfindung angepasst ist;
  • 3 ein Ablaufdiagramm von Vorgängen für eine Over-the-air-Synchronisierung gemäß der Erfindung;
  • 4 eine pseudocodeartige Beschreibung einer Initialisierungssitzung einschließlich Schema-Daten von einem mobilen Gerät her in einer Overthe-air-Kommunikation, die auf einen Sync-Server von 1 gerichtet ist; und
  • 5 eine Darstellung eines Beispiels von Nachrichtenverkehr zwischen einem drahtlosen Gerät und einem Server zur Synchronisierung von Daten gemäß den Vorgängen des Ablaufdiagramms von 3.
  • In allen beiliegenden Zeichnungen sind gleiche Merkmale durch gleiche Bezugszeichen kenntlich gemacht.
  • BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • 1 ist ein Blockdiagramm eines Kommunikationssystems 100, welches ein mobiles Gerät 102 enthält, das über ein drahtloses Kommunikationsnetzwerk 104 kommuniziert. 2 ist ein schematisches Diagramm eines bevorzugten mobilen Geräts 102, das gemäß einer Ausführungsform der Erfindung an gepasst ist. Das mobile Gerät 102 enthält bevorzugt eine Sichtanzeige 122, eine Tastatur 132 und optional eine oder mehrere Ein-/Ausgabe-(E/A)Hilfsschnittstellen 128, von denen jede an einen Controller angeschlossen ist. Der Controller ist auch an eine Hochfrequenz-(HF-)Sendeempfangs-schaltung wie z. B. ein Kommunikationssubsystem 111 einschließlich einer Antenne (nicht gezeigt) angeschlossen.
  • In der Regel ist der Controller als Zentraleinheit (Central Processing Unit, CPU) oder Mikroprozessor 138 ausgeführt, der ein Betriebssystem und die Anwendungssoftware ausführt, welche in der Station 102 in einer Speicherkomponente wie einem Flash-Speicher 124, einem anderen ROM (nicht gezeigt) und einem RAM 126 gespeichert sind. Der Controller steuert normalerweise den Gesamtbetrieb des mobilen Geräts 102, während mit Kommunikationsfunktionen verknüpfte Signalverarbeitungsvorgänge in der Regel in der HF-Sendeempfangsschaltung 111 durchgeführt werden. Der Controller verfügt über eine Schnittstelle zu der Anzeige 122, um empfangene Informationen, gespeicherte Informationen, Benutzereingaben und dergleichen anzuzeigen. Die Tastatur 132, die ein telefonartiges Tastenfeld oder eine vollkommen alphanumerische Tastatur sein kann, ist normalerweise zum Eingeben von Daten zur Speicherung in einem mobilen Gerät, Informationen zur Übertragung in das Netzwerk 104, einer Telefonnummer zum Tätigen eines Telefonanrufs, auf dem mobilen Gerät 102 auszuführenden Befehlen und möglicherweise anderen oder verschiedenen Benutzereingaben vorgesehen. E/A-Hilfsvorrichtungen 128 können ein Rad oder eine andere Vorrichtung zum Navigieren und Auswählen von Optionen auf einer von der Software vorgesehenen graphischen Benutzeroberfläche (Graphical User Interface, GUI) umfassen.
  • Der Mikroprozessor 138 interagiert auch mit weiteren Gerätesubsystemen wie einer Anzeige 122, einem Flash-Speicher 124 oder anderen permanenten Speicher, einem Random Access Memory (RAM) 126, Ein- /Ausgabe(E/A)-Hilfssubsystemen 128, einem seriellen Anschluss 130, einer Tastatur 132, einem Lautsprecher 134, einem Mikrophon 136, einem Nahbereichskommunikationssubsystem 140 und beliebigen anderen Gerätesubsystemen, die allgemein das Bezugszeichen 142 haben. Einige der in 2 gezeigten Subsysteme führen kommunikationsbezogene Funktionen durch, während andere Subsysteme „residente" oder am Gerät durchgeführte Funktionen vorsehen können. Insbesondere können einige Subsysteme wie die Tastatur 132 und die Anzeige 122 zum Beispiel für sowohl kommunikationsbezogene Funktionen wie das Eingeben einer Textnachricht zur Übertragung in ein Kommunikationsnetzwerk als auch geräteresidente Funktionen wie ein Rechenprogramm oder eine Aufgabenliste verwendet werden. Die von dem Mikroprozessor 138 verwendete Betriebssystemsoftware wird bevorzugt in einem permanenten Speicher wie einem Flash-Speicher 124 gespeichert, welcher alternativ ein Read Only Memory (ROM) oder ähnliches Speicherelement (nicht gezeigt) sein kann. Der Fachmann erkennt, dass das Betriebssystem, bestimmte Geräteanwendungen oder Teile davon vorübergehend in einen flüchtigen Speicher wie ein RAM 126 geladen werden können.
  • Der Mikroprozessor 138 ermöglicht neben seinen Betriebssystemfunktionen bevorzugt die Ausführung von Software-Anwendungen auf dem Gerät 102. Eine vorher bestimmte Menge von Anwendungen, die grundlegende Geräteabläufe steuern, einschließlich mindestens Daten- und Sprachkommunikationsanwendungen, werden normalerweise auf dem Gerät 102 während dessen Herstellung installiert. Eine bevorzugte Anwendung, die in das Gerät 102 geladen werden kann, kann eine Personal-Information-Manager-(PIM)-Anwendung sein, die über die Fähigkeit zum Organisieren und Verwalten von Datenelementen bezüglich des Benutzers wie insbesondere Instant Messaging (IM), E-Mails, Kalenderereignissen, Voice-Mails, Terminen und Aufgabenelementen verfügt. Natürlich stehen auf dem Gerät 102 und dem SIM 162 ein oder mehrere Ablagespeicher zur Verfügung, um die Speicherung von NM-Datenelementen und anderen Informationen zu ermöglichen.
  • Die PIM-Anwendung weist bevorzugt die Fähigkeit zum Versenden und Empfangen von Datenelementen über das drahtlose Netzwerk auf. In einer bevorzugten Ausführungsform werden PIM-Datenelemente über das drahtlose Netzwerk nahtlos integriert, synchronisiert und aktualisiert, wobei die entsprechenden Datenelemente des Benutzers des mobilen Geräts gespeichert und/oder mit einem Host-Computersystem verknüpft sind und dadurch einen gespiegelten Host-Computer auf dem Gerät 102 in Bezug auf diese Elemente schaffen. Dies ist besonders vorteilhaft, wenn das Host-Computersystem das Bürocomputersystem des Benutzers des mobilen Geräts ist. Weitere Anwendungen können über das Netzwerk 100, ein E/A-Hilfssubsystem 128, einen seriellen Anschluss 130, ein Nahbereichskommunikationssubsystem 140 oder ein anderes geeignetes Subsystem 142 ebenfalls in das Gerät 102 geladen werden und von einem Benutzer in dem RAM 126 oder bevorzugt einem nicht flüchtigen Speicher (nicht gezeigt) zur Ausführung durch den Mikroprozessor 138 installiert werden. Eine solche Flexibilität bei der Anwendungsinstallation erhöht die Funktionalität des Geräts 102 und kann verbesserte am Gerät durchgeführte Funktionen, kommunikationsbezogene Funktionen oder beides vorsehen. Zum Beispiel können sichere Kommunikationsanwendungen Funktionen des elektronischen Handels und andere unter Benutzung des Geräts 102 durchzuführende finanzielle Transaktionen ermöglichen.
  • In einem Datenkommunikationsmodus wird ein empfangenes Signal wie ein Textnachrichten-, ein E-Mail-Nachrichten- oder ein Webseiten-Download vom Kommunikationssubsystem 111 verarbeitet und in den Mikroprozessor 138 eingegeben. Der Mikroprozessor 138 verarbeitet bevorzugt das Signal für die Ausgabe an die Anzeige 122 und/oder an die E/A-Hilfsvorrichtung 128 weiter. Ein Benutzer des Geräts 102 kann auch Datenelemente wie zum Beispiel E-Mail-Nachrichten unter Benutzung der Tastatur 132 zusammen mit der Anzeige 122 und möglicherweise der E/A-Hilfsvorrichtung 128 verfassen. Diese verfass ten Elemente können über ein Kommunikationsnetzwerk durch das Kommunikationssubsystem 111 oder Nahbereichskommunikationssubsystem 140 übertragen werden.
  • Für Sprachkommunikationen ist der Gesamtbetrieb des Geräts 102 im Wesentlichen ähnlich, außer dass die empfangenen Signale an den Lautsprecher 134 ausgegeben und Signale für die Übertragung von dem Mikrophon 136 erzeugt werden würden. Alternative Sprach- oder Audio-E/A-Subsysteme wie ein Subsystem zur Sprachnachrichtenaufzeichnung können im Gerät 102 ebenfalls implementiert werden. Obwohl die Sprach- oder Audiosignalausgabe bevorzugt hauptsächlich über den Lautsprecher 134 erreicht wird, kann die Anzeige 122 ebenfalls verwendet werden, um zum Beispiel einen Hinweis auf die Identität eines rufenden Teilnehmers, die Dauer eines Sprachanrufs oder andere sprachanrufsbezogene Informationen zu liefern.
  • Der serielle Anschluss 130 ist normalerweise in einem Personal-Digital-Assistant-(PDA-)artigen Kommunikationsgerät implementiert, für den die Synchronisierung mit dem Desktop-Computer eines Benutzers eine wünschenswerte, wenngleich optionale Komponente ist. Der serielle Anschluss 130 ermöglicht einem Benutzer das Festsetzen von Einstellungen über eine externe Vorrichtung oder Software-Anwendung und erweitert die Fähigkeiten des Geräts 102 durch Vorsehen von Informations- oder Software-Downloads in das Gerät 102 auf andere Weise als über ein drahtloses Kommunikationsnetzwerk. Der alternative Download-Pfad kann zum Beispiel verwendet werden, um einen Verschlüsselungscode über eine direkte und daher verlässliche und vertrauenswürdige Verbindung in das Gerät 102 zu laden, um dadurch eine sichere Gerätekommunikation vorzusehen.
  • Das Nahbereichskommunikationssubsystem 140 von 1 ist eine weitere optionale Komponente, die die Kommunikation zwischen dem Gerät 102 und verschiedenen Systemen oder Geräten vorsieht, welche nicht notwendigerweise ähnliche Geräte sein müssen. Zum Beispiel kann das Subsystem 140 ein Infrarotgerät und angeschlossene Schaltungen und Komponenten oder ein BluetoothTM-Kommunikation-modul enthalten, um die Kommunikation mit Systemen und Geräten vorzusehen, für die Ähnliches ermöglicht ist. BluetoothTM ist eine eingetragene Marke von Bluetooth SIG, Inc.
  • Das mobile Gerät 102 kann aus einer einzelnen Einheit wie einem Daten-kommunikationsgerät, einem Zellulartelefon, einem mehrere Funktionen umfassenden Kommunikationsgerät mit Daten- und Sprachkommunikationsfähigkeiten, einem für die drahtlose Kommunikation aktivierten Personal Digital Assistent (PDA) oder einem ein internes Modem enthaltenden Computer bestehen. Alternativ kann das mobile Gerät 102 eine mehrere Module enthaltende Einheit sein, die eine Vielzahl einzelner Komponenten wie insbesondere einen Computer oder ein anderes mit einem drahtlosen Modem verbundenes Gerät umfasst. Insbesondere können zum Beispiel in dem Blockdiagramm des mobilen Geräts von 1 eine HF-Sendeempfangsschaltung und eine Antenne als Funkmodemeinheit implementiert sein, die in einen Anschluss an einem Laptop-Computer eingeführt werden kann. In diesem Fall würde der Laptop-Computer eine Anzeige, eine Tastatur und eine oder mehrere Hilfsbenutzerschnittstellen enthalten, und der Controller kann in der Funkmodemeinheit bleiben, die mit der Zentraleinheit des Computers kommuniziert, oder als die Zentraleinheit des Computers. ausgeführt werden. Es wird auch in Betracht gezogen, dass ein Computer oder ein anderer Gerätegegenstand, der normalerweise nicht zur drahtlosen Kommunikation fähig ist, angepasst werden kann, um mit der HF-Sendeempfangsschaltung und der Antenne eines Geräts einer einzelnen Einheit wie eines derer, die oben beschrieben sind, verbunden wird und effektiv deren Steuerung übernimmt.
  • Das mobile Gerät 102 kommuniziert in dem drahtlosen Kommunikations-netzwerk 104 und Relais 106 und über das drahtlose Kommunikations netzwerk 104 und Relais 106 mit einem Sync-Server 108. Dem Durchschnittsfachmann ist verständlich, dass viele Protokolle drahtloser Träger zur Unterstützung von Kommunikationen verwendet werden können, einschließlich GSM, GPRS usw. Der Netzwerkzugriff ist mit einem Teilnehmer oder Benutzer des Geräts 102 verknüpft und deshalb erfordert das Gerät 102, dass eine Subscriber-Identity-Module- oder „SIM"-Karte 162 in eine SIM-Schnittstelle 164 eingeführt wird, um in dem Netzwerk zu arbeiten. Das Gerät 102 ist ein batteriebetriebenes Gerät, deswegen enthält es auch eine Batterieschnittstelle 154 zum Aufnehmen einer oder mehrerer aufladbarer Batterien 156. Solch eine Batterie 156 liefert elektrischen Strom an einen Großteil, wenn nicht sogar die Gesamtheit der elektrischen Schaltung im Gerät 102, und die Batterieschnittstelle 154 sieht eine mechanische und elektrische Verbindung dafür vor. Die Batterieschnittstelle 154 ist an einen Regler (nicht gezeigt) angeschlossen, der Strom V+ an die Gesamtheit der Schaltung liefert.
  • Die im Kommunikationssystem 100 von 1 gezeigte drahtlose Verbindung stellt einen oder mehrere verschiedene Kanäle, typischerweise verschiedene Hochfrequenz-(HF-)Kanäle, und zwischen dem drahtlosen Netzwerk 104 und dem mobilen Gerät 102 verwendete verknüpfte Protokolle dar. Ein HF-Kanal ist eine begrenzte Ressource, die erhalten werden muss, in der Regel auf Grund von Einschränkungen bei der Gesamtbandbreite und einer eingeschränkten Batterieleistung des mobilen Geräts 102. Der Fachmann erkennt, dass ein drahtloses Netzwerk bei der tatsächlichen Anwendung abhängig von der gewünschten Gesamtausdehnung der Netzwerkflächendeckung Hunderte von Zellen enthalten kann. Alle entsprechenden Komponenten können über mehrere Vermittlungsstellen und Router (nicht gezeigt), gesteuert von mehreren Netzwerk-Controllern, verbunden werden.
  • Das mobile Gerät 102 enthält Anwendungssoftware und Daten dafür 105 wie ein Adressbuch, eine Aufgabenliste und Notizen usw. Die Daten 105 können mit den in einem Unternehmenskontext verwalteten Anwendungsdaten synchronisiert werden und zum Beispiel E-Mail-, Kalender- und andere Dienste in einem Unternehmensnetzwerk für das mobile Gerät 102 bereitstellen. Der Sync-Agent 103 sieht eine Schnittstelle zwischen Anwendungen 105 auf dem Gerät und auf einem Sync-Server 108 vor, welcher die Synchronisierung von Daten 105 mit dem Sync-Server 108 koordiniert. Der Sync-Agent 103 empfangt Benachrichtigungen über Datensatzänderungen von diesen Anwendungen 105, wandelt die Daten in ein Format zum Kommunizieren an den Sync-Server 108 um und formuliert Sync-Anforderungen für den Sync-Server. In der entgegengesetzten Richtung verarbeitet der Sync-Agent Befehle von dem Sync-Server und wendet etwaige Änderungen auf die auf dem Gerät gespeicherten Anwendungsdaten an.
  • Das Relais 106 sieht eine Brücke zwischen dem drahtlosen Netzwerk 104 und einem Datennetzwerk wie dem Internet vor und verbindet den Sync-Server 108 mit dem drahtlosen Netzwerk. Das Relais 106 sieht eine Vielzahl von Diensten einschließlich Protokollumwandlung und -Routing vor.
  • Der Sync-Server 108 sieht eine Schnittstelle zwischen Anwendungsübergangsstellen 110 und dem Sync-Agent 103 vor. Zum Beispiel nimmt der Sync-Server 108 Sync-Anforderungen von den Anwendungsübergangsstellen 110 entgegen, filtert etwaige Änderungsdaten und wandelt die gefilterten Daten in ein Format zum Versenden an das Gerät 102 um. Diese formatierten Daten werden zusammen mit den verknüpften Header-Informationen gemäß von der Geräteübergangsstelle 112 bereitgestellten Definitionen an den Sync-Agent 103 kommuniziert. Ähnliche Vorgänge werden für Kommunikationen in der entgegengesetzten Richtung für von dem Gerät 102 her empfangene Sync-Anforderungen durchgeführt.
  • Die Geräteübergangsstelle 112 enthält spezifische Informationen zu einem mobilen Gerät 102. Eine Hauptaufgabe der Geräteübergangsstelle 112 besteht im Umwandeln von Datensätzen, in der Regel in XML, in ein Format, das das Gerät 102 versteht, und umgekehrt. Die Geräteübergangsstelle 112 ist für die Unterstützung verschiedener Versionen von Geräte-Software sowie anderer Gerätearten basierend auf einem XML-Dokument ausgebildet.
  • Der Unternehmensadministrationsserver 118 sieht eine Schnittstelle zum Erstellen und Verwalten von Benutzerkonfigurationsinformationen 120 vor, die in einer für den Sync-Server 108 zugänglichen Datenbank gespeichert sind. Der Unternehmens-administrationsserver 118 sieht die Benutzerschnittstellenkonfiguration zum Einstellen der Feldabbildung, Aktivieren/Deaktivieren von Sync-Datenbanken und andere verbundene Sync-Konfigurationen vor. Diese Informationen 120 werden regelmäßig vom Sync-Server 108 auf etwaige Änderungen und zum Versenden an den Sync-Agent und/oder verknüpfte Übergangsstellen abgefragt.
  • Die Anwendungsübergangsstellen 110 verfügen jeweils über eine Schnittstelle zwischen einem Back-end-Quellenserver 114, wie Microsoft Exchange® oder Lotus Notes®, und dem Sync-Server. Wenn in der Datenbank 114 des Servers Datensatzänderungen erfolgen, stellt die verknüpfte Anwendungsübergangsstelle 110 die Datensatzänderungen fest, formuliert eine Sync-Anforderung und sendet diese Anforderung an den Sync-Server. Die Anwendungsübergangsstellen 110 können ein XML-Dokument bereitstellen, das Datenbank-Schema-/-abbildungsinformationen für eine bestimmte Datenbank auf dem Gerät 102 enthält. Der Sync-Server 108 verarbeitet dieses XML-Dokument, um jegliche Daten von der Anwendungsübergangsstelle 110 an das Gerät zu transformieren. Wie weiter unten gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben, kann das Gerät 102 solch ein Schema etwa bei der Initiali sierung eines langsamen Synchronisierungsprozesses für den Sync-Server 108 bereitstellen.
  • 3 ist ein Ablaufdiagramm von Vorgängen 300 zur Synchronisierung von Daten auf einem drahtlosen Gerät wie der Station 102 und einem zweiten entfernten Speichergerät wie der Quellenserver-Datenbank 114 gemäß einer Ausführungsform der Erfindung. Bei Schritt 302 wird die Sync-Konfiguration des Geräts 102 durchgeführt. Bei der Feststellung von Diensten mit Synchronisierungsanforderungen überprüft der Sync-Agent 103, ob die Sync-Konfigurationsinformationen auf dem Gerät 102 vorhanden sind. Falls diese Konfigurationsinformationen nicht vorhanden sind, sendet der Sync-Agent 103 einen ,Holen'-Konfigurationsbefehl an den Sync-Server 108. Der Sync-Server 108 antwortet mittels des Versendens von Konfigurationsinformationen an das Gerät 102. Diese Konfigurationsinformationen identifizieren je nach Verfügbarkeit die verfügbaren Datenquellen (d. h. „Exchange"-Übergangsstelle 110), Datenbanken (z. B. „Adressbuch"), mit denen synchronisiert werden soll (d. h. 114), Benutzer-Sync-Einstellungen (von 120) und eine Reihe anfänglicher Feldabbildungskennungen, je nach Verfügbarkeit. Die Reihe von Feldkennungen ermöglicht, dass die Synchronisierungsvorgänge Differenzen auf Feldebene ermitteln (d. h. Vergleiche auf der Feldebene zum Ermitteln von Unterschieden hinsichtlich der Daten), um den Over-the-air-Verkehr während der späteren Synchronisierung zu minimieren.
  • Gemäß der vorliegenden Ausführungsform der Erfindung ist die Synchronisierung in zwei Phasen unterteilt: Die langsame Sync-Phase und die Synchronisierungsphase. Die langsame Sync-Phase wird ausgelöst, bevor die Synchronisierung erfolgt. Infolge der Konfiguration initialisiert der Sync-Agent 103 bei Schritt 304 die langsamen Sync-Vorgänge für jede der aktivierten Datenbanken in einer sequenziellen Weise. Der auslösende Sync-Agent 103 sendet einen ,Initialisieren'-Befehl an den Sync-Server 108, um den langsamen Sync- Prozess mit einem Hinweis auf die zu verwendende Datenbank auszulösen. Dieser langsame Sync-Prozess versucht, ähnliche Datensätze zwischen dem Quellenserver 114 und dem Gerät 102 zusammenzuführen und Datensatzkonflikte zu lösen, falls sie bestehen. Auf nur einer Seite vorhandene Datensätze werden auf der entsprechenden Seite widergespiegelt. Während dieses langsamen Sync-Prozesses werden keine Datensätze gelöscht. Stattdessen erzeugt das Ergebnis dieses langsamen Sync-Prozesses einen Abbildungsverlauf, sodass der Sync-Server 108 Datensätze zwischen dem Server und dem Gerät eindeutig identifizieren kann. Durch die Nutzung eines Abbildungsverlaufs verursachen Aktualisierungen, Hinzufügungen oder Löschungen von Datensätzen von der einen Seite, dass der entsprechende Datensatz auf der anderen Seite während der späteren Synchronisierungsphase aktualisiert wird.
  • Darüber hinaus können jegliche Benutzerkonfigurationsänderungen über den Unternehmensverwaltungsserver 118 und seinen Speicher 120 vom Sync-Server 108 ermittelt und dem Gerät 102 und den Übergangsstellen 110 gegenüber widergespiegelt werden.
  • Wie oben erwähnt, versucht der langsame Sync-Prozess, ähnliche Datensätze zwischen dem Server 114 und dem Gerät 102 zusammenzuführen. Um in verschiedenen Datenspeichern (z. B. einem auf dem Gerät 102 und einem anderen in der Quellenserver-Datenbank 114) abgelegte Datensätze miteinander zu vergleichen, ist das Schema für die Datenbank erforderlich. Das Datenbank-Schema kann in verschieden-artiger Weise wie Extensible-Markup-Language(XML-)Dokumenten und anderer Codierung beschrieben sein. Der Server 108 kann das Schema auf verschiedene Arten beziehen. Zum Beispiel kann das Gerät 102 gemäß der vorliegenden Ausführungsform der Erfindung das Schema während der Initialisierungsphase gemäß dem Synchronisierungsprotokoll bereitstellen. Alternativ können die anwendbaren Anwendungsübergangsstellen 110 das Schema für die entsprechende Datenbank bereitstellen, um dem Server 108 das notwendige Wissen zur Durchführung der daten-satzbasierten Abgleichung zu vermitteln. In Fällen, in denen das Schema von mehr als einem Ort her verfügbar ist, ist unter Umständen ein Mechanismus zur Ermittlung dessen erforderlich, welches Schema zu verwenden ist. Eine Konfigurationseinstellung und/oder verwaltete Sicherheitsrichtlinie kann zum Steuern einer solchen Entschlussfassung nützlich sein.
  • Um die Zahl der während der langsamen Sync-Phase von dem Gerät 102 her abgerufenen oder an das Gerät 102 gesendeten Datensätze zu reduzieren, wird eine Datensatz gruppierende Vorgangsweise angewendet, bei der eine Gruppe von Datensätzen von einem Hash-Wert eines Inhalts der Datensätze dargestellt wird. Der Hash-Wert einer Gruppe stellt einen Gesamt-Hash der Datensätze in der Gruppe dar. Während des langsamen Sync-Prozesses gleicht der Server 108 die vom Gerät 102 her gesendeten Gruppendaten mit den entsprechenden Gruppendaten ab (oder nicht), die unter Benutzung des Schemas am Server 108 erzeugt werden, um zu ermitteln, welche der Gerätedatensätze (d. h. von den Daten 105 her) nicht an den Server 108 zu übermitteln, welche der Datensätze des Servers 114 an das Gerät 102 zu senden und welche der Datensätze zwischen den beiden in Konflikt sind, der gelöst werden muss.
  • Gemäß einer Ausführungsform der Erfindung wird jeder Gruppe eine ID zugewiesen. Die Gruppen-ID reicht von 0 bis zur Zahl von Gruppen –1. Jeder Datensatz in einer Tabelle weist eine eindeutige DatensatzID in seiner Datenbank auf. Individuelle Datensätze werden einer Gruppe als Antwort auf die DatensatzID des Datensatzes zugeordnet, zum Beispiel folgendermaßen:
    Gruppen-ID = DatensatzID MOD (Zahl von Gruppen)
  • Wenn also eine DatensatzID bekannt ist, so ist die Gruppe, der der Datensatz angehört, ebenfalls bekannt. Der Durchschnittsfachmann erkennt, dass die Anwendung der Modulo-Operation (MOD) kein ausgewogenes Gleichgewicht in Bezug auf die Zahl von Datensätzen pro Gruppe garantiert, jedoch einfach zu berechnen ist.
  • Das Erzeugen eines Gruppendatenwerts aus den Datensätzen einer Gruppe kann auf verschiedene Arten ermittelt werden. Jedoch werden, um die Ermittlung des Gruppendatenwerts zu einem relativ einfachen Prozess zu machen, folgende Annahmen berücksichtigt:
    • Die Datensatzreihenfolge hat innerhalb der Gruppe keine Bedeutung. Daher ist kein Sortieren von Datensätzen erforderlich, um den Gruppendatenwert zu berechnen, und sollte, gleichgültig auf welche Weise Datensätze in der Gruppe angeordnet sind, der Gruppendatenwert in jeder Anordnung gleich sein; und
    • Der Datenwert des Datensatzes (oder der Instanz) für jeden individuellen Datensatz basiert auf dem Hash der Datensatzfelder. Und gleichgültig auf welche Weise Datensatzfelder angeordnet werden, der Datenwert des Datensatzes sollte gleich sein, was möglich wird, da sämtliche Datensatzfelderkennungen definitionsgemäß eindeutig sind.
  • Unabhängig davon, auf welche Weise die Felder eines Datensatzes in einem Datensatz angezeigt werden und die Datensätze in der Gruppe angezeigt werden, ist der Gruppendatenwert deshalb gleich. In der vorliegenden Ausführungsform ist eine gemäß den Datensatzfeldern definierte Hash-Funktion hinsichtlich der Erzeugung der Daten eines Datensatzes „exklusiv oder" (XOR). Und die gemäß den Datensätzen zur Ermittlung des Gruppendatenwerts aus den Datensatz-Hash-Werten definierte Hash-Funktion ist auch XOR.
  • Die Technik nutzt Hashes, um ähnliche Datensatzinformationen zu identifizieren. Zwei Hashes werden zur Beschreibung des Datensatzes verwendet: Ein ,Schlüsselfeld'-Hash und ein ,Datensatz'-Hash. Der vom Schema des Geräts gesetzte ,Schlüsselfeld'-Hash ist ein numerischer Wert zur Beschreibung bestimmter Felder in einem Datensatz, während der ,Datensatz'-Hash ein Wert ist, der alle abgebildeten Felder in einem Datensatz beschreibt. Man stelle sich als Beispiel vor, eine Kontaktabbildung ist auf dem Gerät 102 ausgebildet, wo die Felder ,Vorname', ,Nachname' und ,Unternehmen' den ,Schlüssel'-Hash darstellen, während der ,Datensatz'-Hash alle abgebildeten Felder in dem Datensatz für den Kontakt enthält (z. B. Adressfelder, E-Mail, Webseite, verschiedene Telefonnummern usw.).
  • Wie bemerkt, wird das Datenbank-Schema in der vorliegenden Ausführungsform von dem Sync-Agent 103 in dem Initialisierungsbefehl (Schritt 304) bereitgestellt, falls möglich, um die langsame Sync-Phase zu starten. Das Schema weist den Sync-Server 108 auf die gegenwärtige Datenbankstruktur des Geräts hin. Eine Datenbank kann mehrere Tabellen aufweisen, und jede Tabelle ist mit ihrer Tabellen-ID und ihrem Schema verknüpft, welches das Datensatzformat mit Feld-ID, Feldart (Schlüssel oder nicht Schlüssel) beschreibt. 4 ist eine pseudocodeartige Beschreibung 400 einer Initialisierungssitzung 402 von dem Gerät 102 in einer Over-the-air-Kommunikation, die auf den Sync-Server 108 gerichtet ist, einschließlich Schemadaten. Für jede zu synchronisierende Datenbank (d. h. Datenbank 1, Datenbank 2 ... Datenbank N) werden Datenbankkonfigurationsschema-Informationen (z. B. 402 für Datenbank 1) bereitgestellt. Die Datenbankkonfigurationsinformationen 402 umfassen eine eindeutige ID 404 für die Datenbank und für jede Tabelle (Objekt) davon, eine eindeutige Tabellen-ID 406 für die Tabelle, einen Tabellenstandardindikator 408 und ein Tabellenschema 410, das ein oder mehrere FeldID- und Schlüssel-Attributindikator-Paare umfasst.
  • Die Kommunikationen zwischen dem Gerät 102 und dem Server 108 sind in der Regel in einer Bandbreite sparenden Weise wie einem Tag-Length-Encoding-(TLE-)Format verschlüsselt. Die Geräteübergangsstelle 112 kann bei der zweckmäßigen Datenumwandlung oder zweckmäßigen – transformationen wie zuvor beschrieben Unterstützung bieten.
  • Wenn das Gerät 102 an den Server 108 einen Initialisieren-Befehl sendet, einschließlich Gruppen-Hash-Werten und eines optionalen Datenbank-Schemas (Schritt 304), startet die Serverseite als Antwort den Vergleichsprozess der langsamen Sync-Phase, um Datensätze abzugleichen und eine Abbildung für künftige Synchronisierungen zu erstellen (Schritt 306). Der Server 108 beginnt zunächst mit einem Vergleich von Gruppen-Hashes zur Abgleichung von Datensätzen.
  • Falls das Gerät 102 das Datenbank-Schema nicht sendet, nutzt der Server eine XML-Abbildung für die entsprechende Datenbank, die von einer anwendbaren Anwendungsübergangsstelle 110 her verfügbar ist, um Gruppen-Hash-Werte zu berechnen. Falls das Gerät 102 jedoch das Datenbank-Schema z. B. 402 sendet, berechnet der Server 108 Datensatz-Schlüssel-Hashes und Datensatz-Hashes auf der Grundlage des von dem Gerät 102 her empfangenen Schemas und dann die Gruppen-Hash-Werte für alle Datensätze der anwendbaren entsprechenden Quellenserver-Datenbank 114.
  • Der Server 108 vergleicht dann jeweilige erzeugte Gruppen-Hashes und empfangene Gruppen-Hashes von dem Gerät 102 her. Der Server 108 gleicht jeweilige Gruppen und Gruppen-Hash-Werte basierend auf der Gruppen-ID ab. Wenn zwei entsprechende Hashes abgeglichen sind, so betrachtet der Server 108 die entsprechenden Datensätze aus dieser Gruppe als abgeglichen. Der Fachmann erkennt, dass eine XOR-Operation zum Erzeugen eines Hash keine eindeutigen Hash-Werte für jede Menge von Datensätzen garantiert. Es besteht die, wenngleich allgemein entfernte Möglichkeit, dass zwei Gruppen als abgeglichen betrachtet werden, wenn beide in Wirklichkeit keine identischen Datensätze aufweisen. Eine weitere Überprüfung zur Reduzierung falsch positiver Abgleichungen kann einen Vergleich der Anzahl von Datensätzen in den verglichenen Gruppen umfassen. Demzufolge kann das Gerät 102 eine Satzanzahl mit dem Gruppen-Hash-Wert (nicht gezeigt) senden. Es können alternative Hash-Werte erzeugt werden oder es kann ein zweiter Hash-Wert unter Benutzung einer anderen Funktion erzeugt und verglichen werden.
  • Wenn zwei jeweilige Gruppen-Hash-Werte nicht abgeglichen sind, so bestehen ein oder mehrere Unterschiede zwischen den Datensätzen jeder jeweiligen Gruppe. Als Antwort fragt der Server 108 das Gerät 102 ab, um für jeden Datensatz in einer Gruppe, der nicht abgeglichen ist, Schlüssel und Feld-Hashes bereitzustellen. Datensätze können basierend auf den Schlüssel-Hashes der Datensätze abgeglichen werden. Der Datensatzfeld-Hash kann verwendet werden, um zu ermitteln, ob ein bestimmter Datensatz mit einem anderen Datensatz in Konflikt steht, vorausgesetzt die zwei Datensätze sind abgeglichen und nutzen zusammen dieselbe eindeutige ID und nutzen zusammen denselben Schlüssel-Hash-Wert.
  • Als Antwort auf den Abgleichungsprozess ermittelt der Server 108, welche Datensätze
    • • dem Gerät 102 hinzugefügt werden können, falls die Datensätze nur auf dem Server 108 vorhanden sind;
    • • auf dem Gerät 102 aktualisiert werden können, falls sie auf sowohl dem Server 108 als auch dem Gerät 102 vorhanden sind, der Konflikt jedoch zugunsten des Servers 108 (d. h. Server-Datensätze gewinnen) gegenüber den Gerätedatensätzen gelöst wird; und
    • • abgerufen werden können, falls die Datensätze entweder nur auf dem Gerät 102 vorhanden sind oder auf sowohl dem Gerät 102 als auch dem Server 108 vorhanden sind, der Konflikt jedoch zugunsten des Geräts 102 so gelöst wird, dass die Geräte-Datensätze gegenüber den Server-Datensätzen gewinnen.
  • Dieser langsame Sync-Prozess erstellt eine Verlaufsdatei, die Datensätze zwischen dem Server und dem abbildet, was auf dem Gerät enthalten ist. An diesem Punkt werden die Datensätze als synchronisiert betrachtet.
  • 5 veranschaulicht einen Nachrichtenaustausch 500 zwischen dem Gerät 102 und dem Sync-Server 108 und veranschaulicht die langsame Sync-Initialisierungsphase sowie die Serversitzung und Gerätesitzung zum Zusammenführen abgebildeter Datensätze zum Abschluss der langsamen Sync-Phase. Bei 502 versendet das Gerät 102 eine Initialisierungsnachricht mit optionalem Datenbank-Schema und optionalen Gruppen-Hashes. Als Antwort auf eine Ermittlung dessen, welche empfangenen Gruppen-Hashes mit den unter Benutzung des Datenbank-Schemas vom Server 108 ermittelten Gruppen-Hashes abgeglichen sind, versendet der Server 108 bei 504 eine Anforderung zum Holen von Datensatz-Hashes für eine bestimmte Liste von Gruppen, die keine Abgleichung aufweisen.
  • Bei 506 versendet das Gerät 102 die Datensatz-Hashes. Die Initialisierung wird mit einer Antwort vom Server 108 abgeschlossen (508). Bei 510, wenn der Server die Abbildung abgeschlossen und ermittelt hat, welche neuen Datensätze an das Gerät zu senden, welche Datensätze von dem Gerät anzufordern und welche Änderungen an Geräte-Datensätzen vorzunehmen sind, werden zweckmäßige Befehle an das Gerät gesendet und eine Antwort empfangen (512). Bei 514 versendet das Gerät 102 die zweck-mäßigen Datensätze und empfangt eine Antwort (516) zum Abschluss der Initialisierung und Datensatz-Aktualisierung.
  • Unter nochmaliger Bezugnahme auf 3 können, sobald die Datenbanken initialisiert sind, künftige Änderungen mittels des Abbilds synchronisiert werden und die Änderungen in Form von Befehlen zum Beispiel over the air in einem sitzungsorientierten Protokoll versendet werden (Schritt 312). Bevorzugt werden Over-the-air-Übertragungen minimiert und Feldebenenänderungen mit zweckmäßigen Befehlen versendet, um einen jeweiligen Datensatz zur Widerspiegelung einer neuen Feldänderung abzuändern. Jeder der Teilnehmer (Server 108 oder Gerät 102) kann solche Änderungen auslösen und kann Sync-Anforderungen umgehend (in einem progressiven Modus) als Antwort auf Änderungen versenden oder die Änderungen zusammentragen und sie in einem Stapelmodus an den anderen Sync-Teilnehmer versenden. Individuelle Datenbanken können für den progressiven oder den Stapelmodus ausgebildet werden.
  • Mit der Initialisierung der langsamen Synchronisierung für eine Datenbank kann begonnen werden, sobald:
    • • die Datenbank OTA-aktiviert, jedoch nicht initialisiert ist;
    • • die Datenbank OTA-deaktiviert ist und OTA-aktiviert wird;
    • • die Datenbank-Sync-Art sich geändert hat;
    • • das Datenbank-Schema verändert wird;
    • • der Datenbank ein neues Schema hinzugefügt wird; und
    • • der Sync-Server 108 die Initialisierung durch Versenden eines Initialisieren-Befehls erzwingt.
  • Die Re-initialisierung aus dem einen oder anderen der oben genannten Gründe ist als Schritt 314 veranschaulicht. Der Durchschnittsfachmann erkennt, dass dieser Schritt an anderen Stellen in den veranschaulichten Vorgängen erfolgen kann, da diese Ereignisse asynchron erfolgen können. Obwohl nicht eindeutig gezeigt, kann das Gerät 102 hinsichtlich eines Hinzufügens einer Datenbank oder einer Änderung des Schemas einer vorhandenen Datenbank betrieben werden. Diese Ereignisse können Vorgänge der langsamen Sync-Phase (Schritt 304310) und jegliche notwendigen Konfigurationsanforderungen (Schritt 302) auslösen.
  • Vorteilhaft kann die Over-the-air-(OTA-)Synchronisierung in der beschriebenen Weise unter Benutzung unterschiedlicher Quellen wie Lotus Notes oder Microsoft Exchange effektiv verschiedene Datenbanken synchronisieren, einschließlich Kontakten, Aufgaben und Notizen. Weitere Anwendungsdaten wie ,E-Mail-Einstellungen' und ,E-Mail-Filter' können ebenfalls synchronisiert werden. Das OTA-Protokoll kann eine Vielzahl von Datenbankkonfigurationen synchronisieren. Der Sync-Server 108 ermittelt bevorzugt Differenzen auf Feldebene für jeden Datensatz, um den Over-the-air-Verkehr zu minimieren. Des Weiteren verbindet die optimierte Datensatzbearbeitung mehrere Änderungen eines individuellen Datensatzes in solch einer Weise, dass mehrere Änderungen in einem Stapel zusammengeführt oder gefiltert werden, um redundante Änderungen gegebenenfalls zu entfernen. Das OTA-Protokoll unterstützt die gleichzeitige Synchronisierung mehrerer Datenbanken in einer bestimmten Anforderung oder Sitzung. Das Protokoll unterstützt Stapel- oder progressive Synchronisierung, die in individuellen Datenbanken ausgebildet sein kann, um Daten-sätze nach einer langsamen Sync-Initialisierung zu synchronisieren. Jede Datenbank kann zur Unterstützung von Folgendem ausgebildet werden: 2-Wege-Sync, 1-Weg-Sync an den Ser ver und 1-Weg-Sync an das Gerät. Der Sync-Agent 103 auf dem Gerät kann mehrere Dienste unterstützen. Die Geräteübergangsstelle 112 kann mittels eines XML-Feldabbildungsdokuments mehrere Geräte und Software-Versionen unterstützen. Das Protokoll und die Vorgänge können Drittentwickler unterstützen.
  • Die oben beschriebenen Ausführungsformen der vorliegenden Anwendung sollen lediglich Beispiele darstellen. Der Fachmann kann Änderungen, Abwandlungen und Variationen der besonderen Ausführungen im Umfang der beiliegenden Ansprüche durchführen.

Claims (36)

  1. Verfahren, das von einem Server (108) zum Synchronisieren von in einem mobilen Gerät (102) gespeicherten ersten Daten und in einem entfernten Speichergerät (114) gespeicherten zweiten Daten ausgeführt wird, das folgendes umfasst: Empfangen eines Schemas, das gruppenabgeglichene Daten umfasst, die repräsentativ für Gruppen von Instanzen der ersten Daten sind; Erzeugen entsprechender gruppenabgeglichener Daten für Gruppen von Instanzen der zweiten Daten unter Benutzung des Schemas; Ermitteln von Unterschieden auf Gruppenebene zwischen jeweiligen gruppenabgeglichenen Daten für die ersten und zweiten Daten; und Abgleichen jeweiliger Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Gruppenebene; Aktualisieren mindestens der einen der ersten und zweiten Daten als Antwort auf die Unterschiede, wobei die gruppenabgeglichenen Daten für die ersten Daten und gruppenabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten entsprechender Gruppen der ersten Daten und der zweiten Daten sowie Satzanzahlen umfassen, welche eine Reihe von Datensätzen für jede Gruppe von Instanzen jeweils der ersten und zweiten Daten umfassen.
  2. Verfahren nach Anspruch 1, das das Anfordern instanzabgeglichener Daten für die ersten Daten als Antwort auf die Unterschiede auf Gruppenebene umfasst; das Erzeugen entsprechender instanzabgeglichener Daten für die zweiten Daten unter Benutzung des Schemas; das Ermitteln von Unterschieden auf Instanzebene zwischen jeweiligen instanzabgeglichenen Daten für die ersten Daten und die zweiten Daten und wobei das Abgleichen der jeweiligen Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Instanzebene erfolgt.
  3. Verfahren nach Anspruch 1 oder 2, wobei die instanzabgeglichenen Daten für die ersten Daten und instanzabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten von Instanzen der ersten Daten und zweiten Daten aus entsprechenden Gruppen der ersten Daten und zweiten Daten umfassen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die ersten und zweiten Daten in entsprechenden Tabellen jeweiliger Datenbanken gespeichert sind, wobei das Schema ein Datenbank-Schema für die jeweiligen Datenbanken definiert und die jeweiligen Instanzen der ersten und zweiten Daten Datensätze der jeweiligen Datenbanken umfassen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Aktualisieren das Kommunizieren mindestens einiger der Unterschiede umfasst, um die ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Aktualisieren das Empfangen mindestens einiger der Unterschiede umfasst, um die zweiten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  7. Verfahren nach Anspruch 1, das das Aufrechterhalten der Synchronisierung der ersten und zweiten Daten als Antwort auf das Abgleichen durch Folgendes umfasst: Ermitteln von Änderungen an den zweiten Daten und Übermitteln mindestens einiger der Änderungen, um die ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren; und Empfangen von Änderungen an den ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll und Aktualisieren der zweiten Daten als Antwort.
  8. Verfahren nach Anspruch 7, wobei das Übermitteln als Antwort auf einen progressiven Modus und einen Stapelmodus erfolgt.
  9. Verfahren nach Anspruch 7 oder 8, wobei das Empfangen, das Abgleichen, das Ermitteln und das Aktualisieren eine langsame Synchronisierungsphase definieren und das Aufrechterhalten eine Synchronisierungsphase umfasst.
  10. Verfahren nach Anspruch 9, das das Ausführen der langsamen Synchronisierungsphase als Antwort auf eine Änderung im Schema umfasst.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die Schritte des Empfangens und Aktualisierens unter Benutzung eines drahtlosen Netzwerks ausgeführt werden, das den Server (108) und ein mobiles Gerät (102) für Kommunikationen verbindet.
  12. Server (108) zum Synchronisieren von in einem mobilen Gerät (102) gespeicherten ersten Daten und in einem entfernten Speichergerät (114) gespeicherten zweiten Daten, das folgendes umfasst: ein Kommunikationssystem zum Übermitteln von Nachrichten an das mobile Gerät (102) und Empfangen von Nachrichten von dem mobilen Gerät (102) her; einen Prozessor, der mit dem Kommunikationssystem zum Verarbeiten von empfangenen Nachrichten und Nachrichten für die Übermittlung verbunden ist; und einen Speicher, der mit dem Prozessor verbunden ist, welcher Befehle speichert, um den Prozessor für Folgendes zu konfigurieren: Empfangen eines Schemas von dem mobilen Gerät (102) her, das die ersten Daten beschreibt, wobei das Schema gruppenabgeglichene Daten umfasst, die repräsentativ für Gruppen von Instanzen der ersten Daten sind; Erzeugen entsprechender gruppenabgeglichener Daten für Gruppen von Instanzen der zweiten Daten unter Benutzung des Schemas; Ermitteln von Unterschieden auf Gruppenebene zwischen jeweiligen gruppenabgeglichenen Daten für die ersten und zweiten Daten; und Abgleichen jeweiliger Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Gruppenebene; Aktualisieren mindestens der einen der ersten und zweiten Daten als Antwort auf die Unterschiede, wobei die gruppenabgeglichenen Daten für die ersten Daten und gruppenabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten entsprechender Gruppen der ersten Daten und der zweiten Daten sowie Satzanzahlen umfassen, welche eine Reihe von Datensätzen für jede Gruppe von Instanzen jeweils der ersten und zweiten Daten umfassen.
  13. Server (108) nach Anspruch 12, wobei die Befehle den Prozessor konfigurieren, um die Synchronisierung der ersten und zweiten Daten aufrechtzuerhalten.
  14. Server (108) nach Anspruch 13, wobei die Befehle den Prozessor konfigurieren, um instanzabgeglichene Daten für die ersten Daten als Antwort auf die Unterschiede auf Gruppenebene anzufordern; entsprechende instanzabgeglichene Daten für die zweiten Daten unter Benutzung des Schemas zu erzeugen; Unterschiede auf Instanzebene zwischen jeweiligen instanzabgeglichenen Daten für die ersten Daten und die zweiten Daten zu ermitteln und wobei die Befehle zum Abgleichen der jeweiligen Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Instanzebene erfolgen.
  15. Server (108) nach Anspruch 13 oder 14, wobei die instanzabgeglichenen Daten für die ersten Daten und instanzabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten von Instanzen der ersten Daten und zweiten Daten aus entsprechenden Gruppen der ersten Daten und zweiten Daten umfassen.
  16. Server (108) nach einem der Ansprüche 11 bis 15, wobei die ersten und zweiten Daten in entsprechenden Tabellen jeweiliger Datenbanken gespeichert sind, wobei das Schema ein Datenbank-Schema für die jeweiligen Datenbanken definiert und die jeweiligen Instanzen der ersten und zweiten Daten Datensätze der jeweiligen Datenbanken umfassen.
  17. Server (108) nach einem der Ansprüche 11 bis 16, wobei die Befehle den Prozessor konfigurieren, um mindestens einige der Unterschiede an das mobile Gerät (102) zu übermitteln, um die ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  18. Server (108) nach einem der Ansprüche 11 bis 17, wobei die Befehle den Prozessor konfigurieren, um mindestens einige der Unterschiede von dem mobilen Gerät (102) her zu empfangen, um die zweiten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  19. Server (108) nach Anspruch 12, wobei die Befehle zum Konfigurieren des Prozessors zum Aufrechterhalten der Synchronisierung Befehle umfassen, um den Prozessor zu konfigurieren, um Änderungen an den zweiten Daten zu ermitteln und mindestens einige der Änderungen zu übermitteln, um die ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren; und Änderungen an den ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu empfangen und die zweiten Daten als Antwort zu aktualisieren.
  20. Server (108) nach Anspruch 19, wobei die Befehle zum Konfigurieren des Prozessors zum Übermitteln als Antwort auf einen progressiven Modus und einen Stapelmodus erfolgen.
  21. Server (108) nach Anspruch 12, 19 oder 20, wobei die Befehle zum Konfigurieren des Prozessors zum Empfangen, Erzeugen, Ermitteln und Abgleichen eine Fähigkeit zu einer langsamen Synchronisierungsphase definieren und die Befehle zum Konfigurieren des Prozessors zum Aufrechterhalten eine Fähigkeit zu einer Synchronisierungsphase definieren.
  22. Mobiles Gerät (102) zum Synchronisieren von in dem mobilen Gerät (102) gespeicherten ersten Daten und in einem entfernten Speichergerät (114) gespeicherten zweiten Daten, das Folgendes umfasst: ein Kommunikationssystem zum Übermitteln von Nachrichten an das mobile Gerät (102) und Empfangen von Nachrichten von dem mobilen Gerät (102) her; einen Prozessor, der mit dem Kommunikationssystem zum Verarbeiten von empfangenen Nachrichten und Nachrichten für die Übermittlung verbunden ist; und einen Speicher, der mit dem Prozessor verbunden ist, welcher Befehle speichert, um den Prozessor für Folgendes zu konfigurieren: Definieren eines Schemas an dem mobilen Gerät (102), das die ersten Daten beschreibt, wobei das Schema gruppenabgeglichene Daten umfasst, die repräsentativ für Gruppen von Instanzen der ersten Daten sind; Übermitteln des Schemas an einen Server (108), der zum Abgleichen jeweiliger Instanzen der ersten und zweiten Daten unter Benutzung des Schemas und zum Ermitteln von Unterschieden auf Gruppenebene zwischen den ersten und zweiten Daten als Antwort auf das Abgleichen angepasst ist; und Aktualisieren mindestens der einen der ersten und zweiten Daten als Antwort auf die von dem Server (108) ermittelten Unterschiede auf Gruppenebene, wobei die gruppenabgeglichenen Daten für die ersten Daten und gruppenabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten entsprechender Gruppen der ersten Daten und der zweiten Daten sowie Satzanzahlen umfassen, welche eine Reihe von Datensätzen für jede Gruppe von Instanzen jeweils der ersten und zweiten Daten umfassen.
  23. Mobiles Gerät (102) nach Anspruch 22, das Befehle zum Konfigurieren des Prozessors zum Aufrechterhalten der Synchronisierung der ersten und zweiten Daten als Antwort auf das Abgleichen der jeweiligen Instanzen umfasst.
  24. Mobiles Gerät (102) nach Anspruch 22 oder 23, das Befehle umfasst, um den Prozessor zu konfigurieren, um für Gruppen von Instanzen der ersten Daten repräsentative gruppenabgeglichene Daten an den Server (108) zu liefern, wobei der Server (108) angepasst ist, um entsprechende gruppenabgeglichene Daten für Gruppen von Instanzen der zweiten Daten unter Benutzung des Schemas zu erzeugen; Unterschiede auf Gruppenebene zwischen jeweiligen gruppenabgeglichenen Daten für die ersten Daten und die zweiten Daten zu ermitteln; und jeweilige Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Gruppenebene abzugleichen.
  25. Mobiles Gerät (102) nach Anspruch 24, das Befehle umfasst, um den Prozessor zu konfigurieren, um instanzabgeglichene Daten für die ersten Daten als Antwort auf eine Anforderung von dem Server (108) her zu liefern, um entsprechende instanzabgeglichene Daten für die zweiten Daten unter Benutzung des Schemas zu erzeugen; Unterschiede auf Instanzebene zwischen jeweiligen instanzabgeglichenen Daten für die ersten Daten und die zweiten Daten zu ermitteln und die jeweiligen Instanzen der ersten und zweiten Daten als Antwort auf die Unterschiede auf Instanzebene abzugleichen.
  26. Mobiles Gerät (102) nach Anspruch 24 oder 25, wobei die instanzabgeglichenen Daten für die ersten Daten und instanzabgeglichene Daten für die zweiten Daten jeweilige Hash-Daten von Instanzen der ersten Daten und zweiten Daten aus entsprechenden Gruppen der ersten Daten und zweiten Daten umfassen.
  27. Mobiles Gerät (102) nach einem der Ansprüche 21 bis 26, wobei die ersten und zweiten Daten in entsprechenden Tabellen jeweiliger Datenbanken gespeichert sind, wobei das Schema ein Datenbank-Schema für die jeweiligen Datenbanken definiert und die jeweiligen Instanzen der ersten und zweiten Daten Datensätze der jeweiligen Datenbanken umfassen.
  28. Mobiles Gerät (102) nach einem der Ansprüche 21 bis 27, wobei die Befehle zum Konfigurieren des Prozessors zum Aktualisieren einen Befehl umfassen, um von dem Server (108) her mindestens einige der Unterschiede zu empfangen, um die ersten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  29. Mobiles Gerät (102) nach einem der Ansprüche 21 bis 28, wobei die Befehle zum Konfigurieren des Prozessors zum Aktualisieren einen Befehl umfassen, um an den Server (108) mindestens einige der Unterschiede an den ersten Daten zu übermitteln, um die zweiten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  30. Mobiles Gerät (102) nach Anspruch 22, wobei die Befehle zum Konfigurieren des Prozessors zum Aufrechterhalten der Synchronisierung Befehle umfassen, um Änderungen an den ersten Daten zu ermitteln und mindestens einige der Änderungen zu übermitteln, um die zweiten Daten gemäß einem sitzungsorientierten Over-the-air-Protokoll zu aktualisieren.
  31. Mobiles Gerät (102) nach Anspruch 30, wobei die Befehle zum Übermitteln als Antwort auf einen progressiven Modus und einen Stapelmodus erfolgen.
  32. Mobiles Gerät (102) nach Anspruch 22, 29 oder 30, wobei die Befehle zum Konfigurieren des Prozessors zum Definieren, Übermitteln und Aktualisieren eine Fähigkeit zu einer langsamen Synchronisierungsphase definieren und wobei die Befehle zum Konfigurieren des Prozessors zum Aufrechterhalten eine Fähigkeit zu einer Synchronisierungsphase definieren.
  33. Mobiles Gerät (102) nach Anspruch 32, das Befehle umfasst, um den Prozessor für die Auslösung der langsamen Synchronisierungsphase als Antwort auf eine Änderung im Schema zu konfigurieren.
  34. Maschinenlesbares Medium, das ein Programmcodemittel umfasst, das auf dem Server (108) eines der Ansprüche 12 bis 21 ausführbar ist, um das Verfahren nach einem der Ansprüche 1 bis 11 durchzuführen.
  35. Maschinenlesbares Medium, das ein Programmcodemittel umfasst, das auf dem mobilen Gerät (102) eines der Ansprüche 22 bis 33 ausführbar ist, um das Verfahren nach einem der Ansprüche 1 bis 11 durchzuführen.
  36. Telekommunikationssystem, das den Server (108) eines der Ansprüche 12 bis 21 und/oder das mobile Gerät (102) eines der Ansprüche 22 bis 33 umfasst.
DE602005004370T 2005-01-31 2005-01-31 Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata Active DE602005004370T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP05100635A EP1686754B1 (de) 2005-01-31 2005-01-31 Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata

Publications (2)

Publication Number Publication Date
DE602005004370D1 DE602005004370D1 (de) 2008-03-06
DE602005004370T2 true DE602005004370T2 (de) 2009-01-15

Family

ID=34938605

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005004370T Active DE602005004370T2 (de) 2005-01-31 2005-01-31 Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata

Country Status (7)

Country Link
EP (1) EP1686754B1 (de)
CN (1) CN100472523C (de)
AT (1) ATE384389T1 (de)
CA (1) CA2534606C (de)
DE (1) DE602005004370T2 (de)
HK (1) HK1094115A1 (de)
SG (1) SG124381A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2028813A1 (de) * 2007-07-02 2009-02-25 British Telecmmunications public limited campany Verfahren zum Abgleich von zeitweise verbundenen Mobilendgeräten
EP2230816A1 (de) * 2009-03-20 2010-09-22 Research In Motion Limited System und Verfahren zur Verwaltung von Dateikatalogen in einer drahtlosen tragbaren Vorrichtung
US8718631B2 (en) 2009-03-20 2014-05-06 Blackberry Limited System and method for managing file catalogs on a wireless handheld device
US9092499B2 (en) * 2012-01-20 2015-07-28 Blackberry Limited Synchronizing endpoint data stores having disparate schemas
WO2015089483A1 (en) * 2013-12-12 2015-06-18 Mobile Iron, Inc. Application synchornization
WO2015152956A1 (en) * 2014-03-31 2015-10-08 Oracle International Corporation Infrastructure for synchronization of mobile device with mobile cloud service
CN112579692B (zh) * 2019-09-29 2023-05-05 杭州海康威视数字技术股份有限公司 一种数据同步方法、装置、系统、设备及存储介质
EP4017056A1 (de) * 2020-12-18 2022-06-22 Thales DIS France SA Verfahren zur überprüfung, ob eine aktualisierung einer datei mit daten auf einem sicheren element, das mit einem endgerät zusammenarbeitet, durchgeführt wurde
CN113220779A (zh) * 2021-04-27 2021-08-06 阿波罗智联(北京)科技有限公司 数据处理方法、设备、存储介质及程序产品
CN113472884A (zh) * 2021-06-30 2021-10-01 潍柴动力股份有限公司 Ota升级方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272545B1 (en) * 1997-10-24 2001-08-07 Microsoft Corporation System and method for interaction between one or more desktop computers and one or more mobile devices
US6643669B1 (en) * 2000-03-14 2003-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for optimization of synchronization between a client's database and a server database
EP1352343A2 (de) * 2001-01-03 2003-10-15 Synchrologic Inc. System und methode für die datensynchronisation zwischen entfernen geräten
US7222139B2 (en) * 2002-07-30 2007-05-22 International Business Machines Corporation Method, system and program for synchronizing data
AU2003303878A1 (en) * 2003-02-06 2004-08-30 Research In Motion Limited Apparatus and method for synchronizing databases by comparing hash values

Also Published As

Publication number Publication date
SG124381A1 (en) 2006-08-30
EP1686754A1 (de) 2006-08-02
CN100472523C (zh) 2009-03-25
CA2534606C (en) 2010-06-22
ATE384389T1 (de) 2008-02-15
HK1094115A1 (en) 2007-03-16
EP1686754B1 (de) 2008-01-16
DE602005004370D1 (de) 2008-03-06
CA2534606A1 (en) 2006-07-31
CN1818902A (zh) 2006-08-16

Similar Documents

Publication Publication Date Title
DE602005004370T2 (de) Synchronisation von Server- und Geräte-Daten unter Benutzung von Geräte-Daten-Schemata
DE60223453T2 (de) Verfahren und Vorrichtung zur Benutzung eines Synchronisationsschlüssels
DE602004009902T2 (de) System und verfahren für kompakte nachrichtenübermittlung in der netzwerkkommunikation
EP2555489B1 (de) Verfahren und Einrichtung zum Konfigurieren von Endgeräten
DE69834640T2 (de) System und Verfahren zur Synchronisierung elektronischer Nachrichten über ein Netzwerk
DE602004010807T2 (de) Techniken zur bereitstellung eines virtuellen arbeitsraums, bestehend aus einer vielzahl elektronischer einrichtungen
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE60311237T2 (de) Gemeinsame Benutzung und Verwaltung persönlicher Profile für drahtlose Endgeräte mit kurzer Reichweite
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE60213419T2 (de) Client-server-modell zur synchronisation von dateien
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE60320002T2 (de) Vorrichtung und verfahren zum zugriff von kontaktinformationen in einem kommunikationsgerät
DE69825624T2 (de) Verfahren zum weiterleiten und datenerfassung einer digitaler nachricht aus einer telekommunikationseinrichtung
DE10226304A1 (de) Tokengesteuerte Bildung von drahtlosen Arbeitsgruppen
EP2324619B1 (de) Verfahren zur übertragung und aushandlung von netzwerk kontrollierten funktionsdaten zwischen einem client und einem server
DE10240875B4 (de) Sicheres Referenzdrucken unter Verwendung persönlicher elektronischer Geräte
DE69932147T2 (de) Kommunikationseinheit und Kommunikationsverfahren mit Profilverwaltung
DE102008036453A1 (de) Verfahren zum Versenden von Daten und Kommunikationseinrichtung
DE60223182T2 (de) Verfahren und einrichtung zum abrufen von datenspeicherzugriffsinformationen
DE602004011942T2 (de) Einrichtung und Verfahren zum Integrieren kontinuierlicher Synchronisation an tragbaren Endgeräten
DE602004009149T2 (de) Vorrichtung und Verfahren zur Bestimmung des Synchronisationszustandes von Datenbankkopien, die über eine Funkschnittstelle eines Funkkommunikationssystems verbunden werden
DE102011108388B4 (de) Verfahren zum Betreiben eines mobilen Telekommunikationsendgerätes
WO2002087161A1 (de) Verfahren und system zur datenübertragung mit einer serverstation
EP2419867A1 (de) Verfahren zur datenbereitstellung auf mobilen endgeräten und mobiles endgerät zur durchführung des verfahrens
DE102008026373B4 (de) Verfahren, Vorrichtung und System zum Bereitstellen von Daten in einem Peer-to-Peer-Netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MERH-IP, 80336 MUENCHEN