-
HINTERGRUND
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf Kommunikationssysteme
und im Genaueren auf Techniken zum Bereitstellen von Synchronisation
von Datenbanken, so wie eine Datenbank, die ein Telefonbuch enthält, das
in dem Teilnehmeridentitätsmodul
(SIM, Englisch: subscriber identity module) eines mobilen Endgeräts gespeichert
ist, das in einem netzförmigen
Funkkommunikationssystem mit einer entsprechenden Datenbank in einem
Personalcomputer (PC) verwendet wird.
-
Die
Funktelefonindustrie hat phänomenale Schritte
in kommerziellen Betrieb in den Vereinigten Staaten als auch in
dem Rest der Welt gemacht. Das Wachstum in großen Metropolgebieten hat bei
weitem die Erwartungen übertroffen
und übersteigt
rapide die Systemkapazität.
Wenn dieser Trend fortgeführt
wird, werden die Effekte des Wachstums dieser Industrie schnell
selbst die kleinsten Märkte
erreichen. Innovative Lösungen
werden benötigt
zum Begegnen dieses wachsenden Kapazitätsbedarfs, als auch um Hochqualitätsdienste
beizubehalten, und um steigende Preise zu vermeiden.
-
Ein
erkannter Trend ist die Konvergenz der sogenannten Informationsindustrie,
wie diese symbolisiert wird durch die Evolution des Personalcomputers
(PC), und der sogenannten Kommunikationsindustrie, wie diese symbolisiert
wird durch die Evolution des Mobiltelefons. Beide Arten von Vorrichtungen
sind gekennzeichnet durch rapide Steigerung der Leistungsfähigkeit
(Hardware) und durch erhöhte Anwendungs-(Software)Fähigkeiten.
In naher Zukunft ist es wahrscheinlich, dass Mobiltelefone direkter
kommunizieren werden mit anderen Informationsvorrichtungen, so wie
dem PC, um Informationen auszutauschen. Viele Teilnehmer von drahtlosen Diensten
besitzen auch Personalcomputer, und da jeder Typ der Vorrichtung
in dessen Datenhandhabungskapazität fortgeschrittener wird, kann
der Teilnehmer den Wunsch haben, dazwischen Daten auszutauschen,
z. B. zwischen Datenbanken (so wie Telefonbücher), die in jeder Vorrichtung
gespeichert sind.
-
Betrachte
das in 1 dargestellte Beispiel. Darin sind ein PC 10 und
ein Mobiltelefon 20 miteinander über eine Kommunikationsverbindung 30 verbunden.
Die Kommunikationsverbindung 30 kann entweder eine Draht-
oder eine drahtlose (z. B. Infrarot) Verbindung sein. Vom Fachmann
wird erkannt, dass während
ein PC und ein Mobiltelefon als Beispiele von zwei Vorrichtungen
verwendet werden, zwischen denen Datenbanksynchronisation durchgeführt werden
kann, die vorliegende Erfindung nicht auf diese zwei Arten von Vorrichtungen
begrenzt ist, sondern tatsächlich
angewendet werden kann auf Datenbanksynchronisation zwischen irgendwelchen zwei
Arten von Vorrichtungen, so wie elektronischen Organisierern, Funkrufempfängern, und
dergleichen. Der PC 10 beinhaltet eine Datenbank 40,
die beispielsweise Telefoneintragungen oder einen Kalender enthält, während das
Mobiltelefon 20 eine entsprechende Datenbank beinhaltet,
die auf dessen Teilnehmeridentitätsmodul-(SIM,
Englisch: subscriber identity module) Karte 50 gespeichert
ist. Wie von dem Fachmann für
die Funkkommunikation erkannt wird, ist die SIM-Karte 50 eine
austauschbare Smart-Karte, die kreiert wurde für den GSM-Funkkommunikationsstandard
als ein Mechanismus zum zweckdienlichen Kopieren und Speichern von
Informationselementen, die sich auf den mobilen Teilnehmer beziehen,
auf eine entfernbare Art und Weise, dessen Karte aus Mobiltelefonen
entfernbar ist. Der Ausdruck „Synchronisierung", wie dieser hier
verwendet wird zum Bezeichnen von Datenbankoperationen, die verbunden
sind mit zwei oder mehreren Vorrichtungen, bedeutet das Austauschen
der Inhalte einer Datenbank, so dass diese übereinstimmen oder die Inhalte
der anderen Datenbank „spiegelt".
-
Zum
Synchronisieren der Datenbank 40 und der Datenbank, die
auf der SIM-Karte 50 gespeichert ist, war es konventionell
notwendig, jede Eintragung in jeder Datenbank individuell zu vergleichen.
Beispielsweise könnte
die Datenbank von Telefonbucheintragungen, die in der SIM-Karte 50 gespeichert sind, übertragen
werden zum PC 10 über
die Verbindung 30. Dann könnten die Eintragungen in jeder
Datenbank verglichen und aktualisiert werden, so dass die zwei Datenbanken
gespiegelt sind. Beispielsweise könnten Veränderungen, die verbunden sind
mit Eintragungen, die in der Datenbank 40 gefunden werden,
aber nicht in der Version der Datenbank gefunden werden, die von
dem Mobiltelefon 20 zum PC 10 übertragen wurde, zurückgeleitet
werden zum mobilen Telefon 20, um die in der SIM-Karte 50 gespeicherte
Datenbank zu aktualisieren. Dieser Synchronisierungsprozess (der
manchmal alternativ als „volle
Synchronisierung" oder „langsame
Synchronisierung")
bezeichnet wird, ist kompliziert und zeitaufwendig. Beispielsweise
setzt zum Identifizieren, welche Veränderungen auf der Datenbank
der SIM-Karte durchgeführt
wurden, oft voraus, dass der PC 10 eine letztlich empfangene
Version mit einer zuvor gespeicherten Version vergleicht.
-
Um
diesem Problem zu begegnen, wurde wie in 2 gezeigt
ein Veränderungsprotokoll
zu den Vorrichtungen hinzugefügt.
Das Veränderungsprotokoll
beinhaltet Informationen hinsichtlich der Einträge, die bearbeitet wurden in
jeder Datenbank nach Synchronisierung zwischen diesen. Das Veränderungsprotokoll
zeichnet auch die Zeit auf, bei der eine Synchronisierungsoperation
zuletzt zwischen zwei Datenbanken durchgeführt wurde, so dass Veränderungen ignoriert werden können, die vor einer vorherigen
Aktualisierung durchgeführt
wurden. Das Veränderungsprotokoll
kann beispielsweise implementiert werden in einem Teil des Speichers,
der für jede
Veränderung
ein Ereignis (z. B. Hinzufügen,
Löschen
oder Modifizieren), die Identität
der Datenbankaufzeichnung, für
die das Ereignis aufgetreten ist, und einen Zeitstempel, der anzeigt,
wann das Ereignis stattgefunden hat, aufzeichnet. Wenn beispielsweise
eine Telefoneintragung zu der Datenbank 40 in dem PC 10 hinzugefügt wird,
nachdem diese mit dem SIM 50 in dem Mobiltelefon 20 synchronisiert
wurde, dann wird eine Anzeige von dem zu dem Veränderungsprotokoll 200 hinzugefügt. Wenn
der Teilnehmer, der mit dem Mobiltelefon 20 (und der SIM-Karte 50)
verbunden ist, einen Eintrag in seinem oder ihrem Telefonbuch löscht, dann
wird diese Veränderung
in dem Veränderungsprotokoll 210 reflektiert.
Wenn darüber
hinaus das Veränderungsprotokoll
leer ist, dann müssen
keine Veränderungen
an der Datenbank 40 in dem PC 10 durchgeführt werden.
Die Verwendung von Veränderungsprotokollen 200 und 210 kann
vorteilhaft sein während
der Synchronisierung, da lediglich diese Eintragungen, die modifiziert,
hinzugefügt
oder gelöscht wurde
(wie in dem Veränderungsprotokoll
aufgezeichnet) seit der letzten Synchronisierungsaktualisierung,
zwischen den Vorrichtungen übertragen werden
müssen.
Daher kann der Synchronisierungsprozess schneller durchgeführt werden,
und deshalb wurde dieser Prozess als „schnelle Synchronisierung" bezeichnet.
-
Unter
bestimmten Umständen
kann es jedoch noch immer wünschenswert
sein, eine volle (d.h. langsame) Synchronisierung von entsprechenden
Datenbanken in zwei Vorrichtungen durchzuführen, selbst wenn Veränderungsprotokolle
implementiert wurden, um eine schnelle Synchronisierung zu ermöglichen.
Wenn beispielsweise ein Anwender seine oder ihre Kalenderdatenbank
in einem Mobiltelefon zurücksetzt
oder löscht,
kann eine solche Aktion vorschreiben, dass eine volle Synchronisierung
zwischen den zwei Datenbanken durchgeführt wird, d. h., dass die große Anzahl
von Veränderungen
dazu führt,
dass es keinen speziellen Vorteil in solchen Fällen für die Verwendung von Veränderungsprotokollen 200 und 210 zum
Durchführen
der Synchronisierung gibt. Das Anfordern von voller Synchronisierung
von zwei Datenbanken, wenn eine schnelle Synchronisierung verfügbar ist,
wurde beispielsweise durchgeführt
bei zufälliger
oder inkrementeller Veränderung des
Wertes eines Datenbankidentifizierers (DID, Englisch: database identifier),
der zwischen den zwei Vorrichtungen als ein Teil des Synchronisierungsprozesses
ausgetauscht wird. Die Veränderung
in den DID-Werten fungiert als ein Signal, das der Vorrichtung,
die Datenbanksynchronisierung durchführt, mitteilt, eine volle Synchronisierung
anstelle einer schnellen Synchronisierung durchzuführen. Die
empfangene Vorrichtung (z. B. ein PC) vergleicht den DID, der von
einer anderen Vorrichtung (z. B. einem Mobiltelefon) empfangen wurde,
mit einem DID, der zuvor gespeichert wurde. Wenn diese identisch
sind, wird eine schnelle Synchronisierung verwendet. Wenn diese
unterschiedlich sind, wird eine volle Synchronisierung durchgeführt.
-
Obwohl
es den Synchronisierungsprozess beschleunigen kann, führt unglücklicher
Weise das Hinzufügen
von Veränderungsprotokollen
ein anderes Problem ein. Im Genaueren beruht die schnelle Synchronisierung
auf der Verwendung einer Zeitmarke, die mit jedem Eintrag in dem
Veränderungsprotokoll 200, 210 verbunden
ist. Die Zeitmarke zeigt an, zu welcher Zeit eine bestimmte Veränderung
durchgeführt
wurde. Wenn ein Veränderungsprotokoll,
das mit einer Datenbank verbunden ist (z. B. das Veränderungsprotokoll 210,
das mit dem SIM 50 verbunden ist) der anderen Vorrichtung
zugeführt
wird (z. B. dem PC 10), dann verwendet die Synchronisierungsmaschine
(nicht gezeigt) innerhalb der anderen Vorrichtung die Zeitmarke,
um potentielle Konflikte aufzulösen,
die Auftreten können,
wenn eine Modifizierung an einem Eintrag in einer der Datenbanken durchgeführt wurde,
und eine unterschiedliche Modifizierung an demselben Eintrag aber
in der anderen Datenbank durchgeführt wurde. In solchen Fällen ist die
Regel anzunehmen, dass die zuletzt durchgeführte Änderung die Korrekte ist. Betrachte
beispielsweise die Situation, in der eine Eintragung „A" in jeder der zwei
Vorrichtungen existiert (als „Vorrichtung
1" und „Vorrichtung
2" bezeichnet),
wenn Datenbanken in jeder der Vorrichtungen miteinander synchronisiert wurden.
Nach der Synchronisierung wird angenommen, dass in der Vorrichtung
1 der Eintrag A bei 12:34 gelöscht
wurde, während
in der Vorrichtung 2 derselbe Eintrag bei 12:40 modifiziert wurde.
Beim nächsten
Mal, wenn die Vorrichtungen 1 und 2 miteinander synchronisiert werden,
wird die Synchronisierungsprozedur detektieren, dass derselbe Eintrag auf
der einen Seite gelöscht
und auf der anderen Seite modifiziert wurde. Unter Berücksichtigung
der Regel, dass die zuletzt durchgeführte Modifikation die korrekte
ist, wird die Modifizierung am Eintrag A, die auf der Vorrichtung
2 durchgeführt
wurde, beibehalten durch Kopieren dieser zur Vorrichtung 1. Die
zwei Vorrichtungen sind nun wieder synchronisiert.
-
Da
die Zeitmarken eine solch wichtige Rolle im Synchronisierungsprozess
spielen, ist zu erkennen, dass die Zeitgeber in den Vorrichtungen
sehr genau, miteinander abgeglichen, und unverändert sein müssen. Dies
ist jedoch in mobilen Vorrichtungen nicht immer der Fall. Für einen
Anwender einer mobilen Vorrichtung ist es sehr üblich, in eine andere Zeitzone
zu reisen, und daher die Zeit in der Uhr der Vorrichtung zu verändern. Dies
kann Probleme mit der Synchronisierung verursachen, da wenn der
Zeitgeber des Anwenders dazu gebracht wird, sich vorwärts oder
rückwärts zu bewegen,
es jedoch für
eine zuletzt durchgeführte
Veränderung
an einer Datenbank möglich
ist, inkorrekt aufzutreten, zu einer Zeit geschehen zu sein vor
der vorherigen Synchronisierungsoperation. Als ein Ergebnis würde die
Veränderung
in dem Synchronisierungsversuch ignoriert werden, was tatsächlich in
dem Verlust der Veränderung resultiert.
-
Die 3 und 4 illustrieren
einige Szenarien, in denen die Veränderung der Uhr in einer Vorrichtung
das Auftreten fehlerhafter Ergebnisse verursachen kann, wenn eine
nachfolgende Datenbanksynchronisierungsoperation durchgeführt wird. Das
in 3 gezeigte Zeitdiagramm zeigt Uhren und Ereignisse
in jeder der zwei Vorrichtungen, die mit „Vorrichtung 1" und „Vorrichtung
2" bezeichnet sind. Zu
der Zeit T1 sind die Uhren in beiden Vorrichtungen „1:00pm", wobei zu dieser
Zeit eine schnelle Datenbanksynchronisierungsoperation durchgeführt wird. Wie
zuvor erwähnt,
bewirkt dies zusammen mit anderen Sachen, das die Zeit der Synchronisierung
in dem Veränderungsprotokoll 200 aufgezeichnet
wird. Einige Zeit später,
zu einer mit T2 bezeichneten Zeit, wurde die Uhr in der Vorrichtung
1 zurückgesetzt,
so dass diese nun 12:00pm anzeigt (d. h. eine Zeit vor 1:00pm).
Dies hätte
durchgeführt
werden können,
z. B. zum Berücksichtigen
einer Reise über
eine oder mehrere Zeitzonen. Zu dieser Zeit T2 wird ein Eintrag „A" in der Datenbank
der Vorrichtung 1 verändert. Diese
Veränderung
wird in dem Veränderungsprotokoll 200 aufgezeichnet
zusammen mit einer Zeitmarke = 12:00pm, was die Zeit der Veränderung
anzeigt. Zu einer nachfolgenden späteren als T3 bezeichneten Zeit
zeigt die Uhr in der Vorrichtung 1 8:00pm an, und die Uhr in der
Vorrichtung 2 zeigt 9:00pm an. Zu dieser Zeit T3 wird eine andere
schnelle Datenbanksynchronisierungsoperation durchgeführt zwischen den
entsprechenden Datenbanken in der Vorrichtung 1 und der Vorrichtung
2. Als Teil dieser Synchronisierungsoperation schaut sich die Synchronisierungsmaschine
die Zeitmarken in dem Veränderungsprotokoll 200 an
und ignoriert alle Veränderungen,
die vor der vorherigen Synchronisierungsoperation durchgeführt wurden
(die zu der Zeit T3 stattfanden). Als ein Ergebnis erscheint die
Veränderung
am Eintrag „A", die tatsächlich zur
Zeit T2 stattgefunden hat, vor der Zeit T1 stattgefunden zu haben
(d. h. die Zeit der vorherigen Synchronisierungsoperation). Folglich
wird die Veränderung
am Eintrag „A", die zur Zeit T2 durchgeführt wurde,
in der Synchronisierungsoperation ignoriert, wodurch diese tatsächlich verloren geht.
Es wird festgestellt, dass selbst wenn die Uhr in der Vorrichtung
1 um eine Stunde vorgestellt wurde zu einem Zeitpunkt zwischen der
Zeit T2 und T3, so dass die Zeit T3 der Uhren in den Vorrichtungen
1 und 2 beide 9:00pm anzeigen, die an dem Eintrag „A" in der Vorrichtung
1 zu der Zeit T2 durchgeführte
Veränderung
in der Synchronisierungsoperation verloren gehen wird.
-
4 zeigt
ein anderes Szenario, in dem die Veränderung der Uhr in einer Vorrichtung
fehlerhafte Ergebnisse verursachen kann, wenn eine nachfolgende
Datenbanksynchronisierungsoperation durchgeführt wird. Hier zeigt dieses
Zeitdiagramm Uhren und Ereignisse in jeder der zwei Vorrichtungen,
die als „Vorrichtung
1" und „Vorrichtung
2" bezeichnet sind.
Zur Zeit T1 zeigen die Uhren in beiden Vorrichtungen „1:00pm" an, zu welcher Zeit
eine schnelle Datenbanksynchronisierungsoperation durchgeführt wird.
Wie zuvor erwähnt
führt dies
unter anderem dazu, dass die Zeit der Synchronisierung in dem Veränderungsprotokoll 200 aufgezeichnet
wird. Der Wert der Uhr in der Vorrichtung 1 wird anschließend vorgestellt,
so dass zur Zeit T2 3:00pm angezeigt wird, während die Uhr in der Vorrichtung
2 lediglich „2:00pm" anzeigt. Zu dieser Zeit
T2 wird ein Eintrag „A" in der Datenbank
der Vorrichtung 1 verändert. Diese
Veränderung
wird in dem Veränderungsprotokoll 200 zusammen
mit einer Zeitmarke = 3:00pm aufgezeichnet, die Zeit der Veränderung
anzeigend. Anschließend
wird die Uhr in der Vorrichtung 1 wieder verändert, dieses Mal rückwärts, so
dass eine als T3 bezeichnete Zeit und die Uhr in der Vorrichtung
2 beide 2:30pm anzeigen. Zu dieser Zeit T3 wird wieder eine schnelle
Synchronisierungsoperation zwischen den Datenbanken in der Vorrichtung
1 und der Vorrichtung 2 durchgeführt.
Da die Zeitmarke, die mit der Veränderung am Eintrag „A" zu der Zeit T2 anzeigt,
dass die Veränderung
bei 3.00pm stattgefunden hat (d. h. eine spätere Zeit als die aktuelle
Zeit von 2.30pm), wird die Veränderung
am Eintrag „A" in der Synchronisierungsoperation
ignoriert, wodurch die Daten tatsächlich verloren gehen.
-
Es
ist möglich,
weitere Beispiele zu konstruieren, in denen eine Veränderung
an der Uhr dazu führt,
dass eine schnelle Synchronisierungsoperation tatsächlich eine
oder mehrere Veränderungen
an den Einträgen
in der Datenbank verliert.
-
Folglich
wäre es
wünschenswert,
Techniken und Vorrichtungen bereitzustellen, die die Verwendung
von Veränderungsprotokollen
für Synchronisierungsdatenbanken
ermöglichen,
aber auch die Bewegung der portablen Vorrichtungen über Zeitzonen anpassen.
-
US 5 666 530 offenbart einen
tragbaren Computer, in dem Datenbanken auf einem Host enthalten
sind, und der tragbare Computer automatisch synchronisiert wird,
wenn eine gegebene verstrichene Zeit seit dem letzten Synchronisierungsversuch aufgetreten
ist.
-
US 5 832 489 offenbart ein
Verfahren zum Synchronisieren von Datenbanken, die sich auf einem
Host-Computer und einem tragbaren Computer befinden.
-
ZUSAMMENFASSUNG
-
Es
ist zu betonen, dass die Ausdrücke „umfasst" und „umfassend", wenn diese in dieser
Spezifikation verwendet werden, verwendet werden zum Spezifizieren
der Anwesenheit von spezifizierten Eigenschaften, ganzen Zahlen,
Schritten oder Komponenten; die Verwendung dieser Ausdrücke schließt jedoch
die Präsenz
oder die Addition von einer oder mehreren Eigenschaften, ganzen
Zahlen, Schritten, Komponenten oder Gruppen davon nicht aus.
-
Gemäß der vorliegenden
Erfindung werden das vorangegangene und andere Ziele erreicht im Verfahren,
der Vorrichtung und dem computerlesbaren Speichermedium, die eine
erste Datenbank mit einer zweiten Datenbank synchronisieren, wobei
sich die erste Datenbank in einem mobilen Endgerät befindet, und wobei das Verfahren,
die Vorrichtung und das computerlesbare Speichermedium die Einstellung
eines Indikators gemäß dieser
Eigenschaften die entsprechenden Ansprüche 1, 6 und 11 umfassen.
-
Der
Indikator kann für
diesen Zweck Daten zugeordnet sein. Jedoch kann in alternativen
Ausführungsformen
das Einstellen des Indikators eine Veränderung des Werts eines Datenbankidentifizierers umfassen.
Da der Datenbankidentifizierer zwischen den zwei Datenbanken sowieso
ausgetauscht wird, muss keine zusätzliche Information lediglich
für den Zweck
der Anzeige, dass eine volle Synchronisation durchgeführt werden
sollte, ausgetauscht werden.
-
Wenn
der Indikator nicht eingestellt ist, kann eine schnelle Synchronisierung
der ersten Datenbank mit der zweiten Datenbank anstelle dessen durchgeführt werden.
-
Wenn
der Aufbau einer Fehlersynchronisierungstechnik gewünscht ist,
kann darüber
hinaus der Indikator zurückgesetzt
werden nach Durchführen der
vollen Synchronisierung der ersten Datenbank mit der zweiten Datenbank.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Ziele und Vorteile der Erfindung werden ersichtlich durch Lesen
der folgenden detaillierten Beschreibung in Zusammenhang mit den
Zeichnungen, in denen:
-
1 ein
Blockdiagramm ist, das eine konventionelle Technik zum Synchronisieren
von Datenbanken zwischen Vorrichtungen zeigen;
-
2 ein
Blockdiagramm ist, das eine Modifizierung der Technik und das Systems
aus 1 illustriert, wobei Veränderungsprotokolle in jeder
Vorrichtung für
die Synchronisierung der Datenbanken eingeführt sind;
-
3 ein
Szenario darstellt, in dem die Veränderung der Uhr bei einer Vorrichtung
ein fehlerhaftes Ergebnis verursachen kann, wenn eine nachfolgende
konventionelle Datenbanksynchronisierungsoperation durchgeführt wird;
-
4 ein
Szenario darstellt, in dem die Veränderung der Uhr bei einer Vorrichtung
ein fehlerhaftes Ergebnis verursachen kann, wenn eine nachfolgende
konventionelle Datenbanksynchronisierungsoperation durchgeführt wird;
-
5 ein
Flussdiagramm ist, das exemplarische Schritte darstellt, die durch
eine Synchronisierungseinheit durchgeführt werden können, um
auszuwählen,
welche Art der Synchronisierung durchzuführen ist, in Übereinstimmung
mit der Erfindung; und
-
6 ein
Flussdiagramm ist, das durch die Vorrichtung durchzuführende Schritte
darstellt, um zu gewährleisten,
dass eine volle, anstelle einer schnellen, Synchronisierungsoperation
bei Bedarf durchgeführt
wird.
-
DETAILLIERTE
BESCHREIBUNG
-
Die
unterschiedlichen Merkmale der Erfindung werden nun mit Bezug auf
die Figuren beschrieben, in denen gleiche Teile mit gleichen Bezugszeichen
gekennzeichnet werden.
-
Die
folgende Beschreibung ist geschrieben im Hinblick auf ein netzförmiges Funktelefonsystem, jedoch
ist zu verstehen, dass diese Erfindung nicht auf diese Umgebung
begrenzt ist. Im Genaueren ist die folgende Beschreibung geschrieben
unter Verwendung von Ausdrücken,
die verbunden werden können
mit GSM konformen Systemen (z. B. Endgeräte, SIM-Karten verwendenden),
jedoch wird vom Fachmann verstanden, dass die vorliegende Erfindung
in anderen kommunikations/informationshandhabenden Anwendungen implementiert
sein kann, umfassend diese, die in Übereinstimmung mit anderen
Standards ausgelegt sind, so wie IS-95 oder PDC, als auch diesen,
die andere Zugangsverfahren verwenden, so wie CDMA. Darüber hinaus
sind die folgenden Techniken auch anwendbar zum Synchronisieren
von Datenbanken zwischen zwei beliebigen Informations-/Kommunikationsvorrichtungen.
-
Die
Erfindung wird nun detaillierter beschrieben in Verbindung mit einer
Anzahl von exemplarischen Ausführungsformen.
Zum Erleichtern des Verständnisses
der Erfindung sind viele Aspekte der Erfindung beschrieben im Hinblick
auf Sequenzen von Aktionen, die durch Elemente eines Computersystems
durchzuführen
sind. Es ist ersichtlich, dass in jeder der Ausführungsformen die unterschiedlichen Aktionen
durchgeführt
werden können
durch spezialisierte Schaltkreise (z. B. diskrete Logikgatter, die untereinander
verbunden sind, zum Durchführen
einer spezialisierten Funktion), durch Programminstruktionen, die
durch einen oder mehrere programmierbare Prozessoren ausgeführt werden,
oder durch eine Kombination dieser beider durchgeführt werden
können.
Darüber
hinaus kann angenommen werden, dass die Erfindung zusätzlich komplett
eingebettet sein kann innerhalb irgendeiner Form eines computerlesbaren
Speichermediums, auf dem ein geeigneter Satz von Computerinstruktionen
gespeichert ist, der dazu führen
würden,
dass ein Prozessor die hier beschriebenen Techniken ausführen würde. Daher
können
die unterschiedlichen Aspekte der Erfindung in vielen unterschiedlichen
Formen eingebettet sein, und alle solche Formen werden als innerhalb des
Bereichs der vorliegenden Erfindung liegend betrachtet. Für jeden
unterschiedlichen Aspekt der Erfindung kann jede solche Form der
Ausführung
bezeichnet werden als „Logik
konfiguriert zum" Ausführen einer
beschriebenen Aktion.
-
Wie
zuvor erwähnt
ist es für
ein System möglich,
sowohl volle als auch schnelle Synchronisierung zu unterstützen. In
solchen Systemen ist es möglich, eine
für die
Verwendung als die Vorgabeoperation auszuwählen. Beispielsweise kann schnelle
Synchronisierung der Typ der Synchronisierung sein, die in den meisten
Fällen
durchgeführt
wird. Die Aufforderung einer vollen Synchronisierung von zwei Datenbanken,
wenn eine schnelle Synchronisierung verfügbar ist, kann dann erreicht
werden durch Bereitstellen eines Indikators für die Synchronisierungseinheit,
der instruiert, dass eine volle Synchronisation durchgeführt werden
sollte. Ein solcher Indikator kann beispielsweise die Form einer
zufälligen
oder inkrementellen Veränderung
im Wert des Datenbankidentifizierers (DID) annehmen, der zwischen
den Vorrichtungen als ein Teil des Synchronisierungsprozesses ausgetauscht
wird.
-
5 ist
ein Flussdiagramm, das exemplarische Schritte darstellt, die durch
eine Synchronisierungseinheit durchgeführt werden können, zum
Auswählen,
welche Art von Synchronisierung durchzuführen ist. Die Synchronisierungseinheit
bezieht sich auf zwei Indikatoren: einen lokal erzeugten Indikator (LOCAL
SYNC-TYPE bzw. LOKALER SYNC-TYP), und einem, der durch eine andere
Vorrichtung bereitgestellt wird (REMOTE SYNC-TYPE bzw. FERNBETRIEB
SYNC-TYP). Der Grund, weshalb es zwei Indikatoren gibt, ist, dass
die Vorrichtung, die den Synchronisierungsprozess initiiert, nicht
die gleiche Vorrichtung sein kann, die bestimmt hat, dass eine volle anstelle
einer schnellen Synchronisierungsoperation aufgefordert wurde.
-
Diese
Indikatoren können
speziell zugeordnete Variablen sein, die exklusiv für diesen
Zweck reserviert sind. Jedoch ist dies kein essentieller Aspekt der
Erfindung. Beispielsweise kann einer oder beide dieser Indikatoren
die Form einer Änderung
in dem Datenbankidentifizierer-(DID)Wert annehmen. Solche Ausführungsformen
haben einen Vorteil darin, dass der DID-Wert gewöhnlich einer der Parameter ist,
der zwischen Datenbanken als ein Teil des Veränderungsprotokolls ausgetauscht
wird. Daher kann der Bedarf für
einen weiteren Austausch zusätzlicher Parameter
(d.h. Sync-Typ Indikatoren) eliminiert werden. Die genaue Strategie,
die in irgendeinem genauen System angepasst ist, ist nicht kritisch
und kann dem individuellen Designer überlassen werden. Aus Gründen der
Einfachheit verwendet die exemplarische Ausführungsform Indikatoren, die
für diesen Zweck
bestimmt sind.
-
Zum
Starten eines Synchronisierungsprozesses wird ein LOCAL SYNC-TYPE
Indikator beispielsweise von einer lokalen Speichervorrichtung erhalten
(Schritt 501). (In Ausführungsformen,
in denen eine Veränderung
im DID den Bedarf der Durchführung
einer vollen Synchronisation anzeigt, kann das Erhalten des LOCAL
SYNC-TYPE Indikators bedeuten, dass ein aktueller DID mit einem
DID verglichen wird, der zu einer Zeit der letzten Synchronisierungsoperation
gespeichert wurde.) Der durch die andere Vorrichtung bereitgestellte
Indikator (REMOTE SYNC-TYPE Indikator) wird auch empfangen (Schritt 503).
-
Die
Werte der zwei Indikatoren werden dann getestet. Beispielsweise
kann der LOCAL SYNC-TYPE Indikator zuerst getestet werden (Entscheidungsblock 505).
Wenn dieser anzeigt, dass eine volle Synchronisierung benötigt wird
(„JA"-Pfad aus dem Entscheidungsblock 505),
dann wird der LOCAL SYNC-TYPE Indikator zurückgesetzt zu dessen Vorgabewert
(d. h. eingestellt zum Anzeigen, dass eine schnelle Synchronisierung
durchgeführt
werden sollte)(Schritt 507), und eine volle Synchronisierung
wird durchgeführt
(Schritt 509). Einstellen des LOCAL SYNC-TYPE Indikators
auf dessen Vorgabewert gewährleistet,
dass solange keine Expressaktionen durchzuführen sind, die Vorgabeoperation
durchgeführt
wird, wenn das nächste
Mal eine Synchronisierungsoperation angefragt wird.
-
Wenn
der LOCAL SYNC-TYPE Indikator keine volle Synchronisierung aufruft
(„NEIN"-Pfad aus dem Entscheidungsblock 505),
wird der REMOTE SYNC-TYPE Indikator getestet (Entscheidungsblock 511).
Wenn der REMOTE SYNC-TYPE anzeigt, dass eine volle Synchronisierung
durchgeführt
werden sollte („JA"-Pfad aus dem Entscheidungsblock 511), wird
eine volle Synchronisierungsoperation durchgeführt (Schritt 509).
-
Wenn
der REMOTE SYNC-TYPE Indikator nicht anzeigt, dass eine volle Synchronisierung durchgeführt werden
sollte („NEIN"-Pfad aus dem Entscheidungsblock 511),
wird alternativ eine schnelle Synchronisierung durchgeführt (Schritt 513).
-
Nun
bezugnehmend auf das „Zeitreise"-Problem, das in
dem Hintergrund-Abschnitt dieser Offenbarung geschrieben wurde,
wird in Übereinstimmung mit
dieser Erfindung dieses Problem angegangen durch Bewirken einer
vollen anstelle einer schnellen Synchronisierungsoperation, die
auszuführen
ist, immer wenn die Synchronisierungsoperation einer Zeitveränderungsoperation
folgt. Im Genaueren sollte eine volle Synchronisierungsoperation
durchgeführt werden,
wenn diese einer Änderung
folgt, in der der Zeitgeber der Vorrichtung auf eine frühere Zeit
eingestellt wird. Es ist auch erlaubt aber nicht erforderlich, dass
eine volle Synchronisierungsoperation durchgeführt wird, wenn diese einer Änderung
in dem Zeitgeber der Vorrichtung folgt, wenn diese auf eine spätere Zeit
eingestellt wird. Dies gewährleistet,
dass Synchronisierung nicht abhängig
ist von Zeitmarkenwerten, sondern anstelle dessen eine nach der
anderen durchgeführt
wird durch Vergleichen von Einträgen zwischen
zwei Datenbanken.
-
6 ist
ein Flussdiagramm, das durch eine Vorrichtung auszuführende Schritte
darstellt, um zu gewährleisten,
dass eine volle anstelle einer schnellen Synchronisierungsoperation
wenn notwendig ausgeführt
wird. Als erstes wird ein Test durchgeführt zum Bestimmen, ob der lokale
Zeitgeberwert der Vorrichtung auf einen früheren Wert eingestellt wurde (Entscheidungsblock 601).
Wenn dem der Fall ist („JA"-Pfad aus dem Entscheidungsblock 601),
wird der lokale Sync-Indikator so eingestellt, dass dieser anzeigt,
dass eine volle Synchronisierungsoperation durchgeführt werden
sollte (Schritt 603). Andernfalls wird dieser Schritt übersprungen
(„NEIN"-Pfad aus dem Entscheidungsblock 601).
In einigen Ausführungsformen
kann der Sync-Typ Indikator die Form eines veränderten DID-Wertes annehmen.
-
Die
Erfindung löst
das „Zeitreise" Problem, wodurch
es möglich
wird, Zeitmarken für
Datenbanksynchronisierungen zu verwenden. Die Erfindung muss nicht
optimal sein, bietet aber den Vorteil des Verhinderns des Verlustes
von Daten. Jedes Mal wenn der Anwender die Zeit auf der Vorrichtung
verändert
(oder zumindest jedes Mal wenn der Anwender die Zeit auf der Vorrichtung
auf eine frühere
Zeit verändert),
wird eine volle Synchronisierung durchgeführt, in der alle Daten, die
auf der Vorrichtung gespeichert sind, gelesen werden und mit der
Datenbank der anderen Vorrichtung verglichen werden. Unterschiede
werden identifiziert und auf beiden Vorrichtungen aktualisiert.
Für diese
Konfliktsituation, in dem ein gleicher Eintrag in den Datenbanken
beider Vorrichtungen modifiziert wurde, ohne irgendeine Möglichkeit
des genauen Bestimmens, welche Modifikation zuletzt durchgeführt wurde,
kann eine Taktik des immer Auswählens
des Eintrags von einer bestimmten der Vorrichtungen (z. B. immer
Verwenden der Modifikation, die auf dem PC durchgeführt wurde) angepasst
werden.
-
Die
Erfindung wurde mit Bezug auf eine bestimmte Ausführungsform
beschrieben. Jedoch ist es für
den Fachmann ersichtlich, dass die Erfindung in spezifischen, sich
von der bevorzugten oben beschriebenen Ausführungsform unterscheidenden Formen
realisiert werden kann, ohne sich von dem Bereich der Erfindung
zu entfernen, der durch die beigefügten Ansprüche gebildet wird. Die bevorzugte Ausführungsform
ist lediglich illustrativ und sollte in keinster Weise als begrenzend
betrachtet werden.