-
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 304–310) 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.