-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft im Allgemeinen einen Synchronisations-
und/oder Transformationsprozess zum Aktualisieren von Daten zwischen
einem Client und Kopien der Daten in Datenverwaltungssystemen.
-
In
Zusammenhang mit der schnellen Entwicklung der Halbleiter-, Speicher-
und Anzeigetechnologien haben tragbare oder mobile Einheiten, die nur
zeitweise mit dem Netz verbunden werden können, immer breitere Verwendung
gefunden. Die Nutzungsarten solcher mobiler Einheiten wie des PALM PILOTTM von 3 Com sind auch sehr vielseitig geworden.
Zum Beispiel kann ein Benutzer des PALM PILOTTM eine
eMail-Anwendung nutzen, die mit einem eMail-System Lotus NOTESTM in einem Tischcomputer synchronisiert
werden muss. Im PALM PILOTTM kann sich auch
eine Börsenkursanwendung
befinden, die durch Synchronisieren mit einer bekannten Website
für Börsenkurse
im Internet aktualisiert wird. Ferner kann sich im PALM PILOTTM auch eine Anwendung zur Ausgabenkontrolle
befinden, die mit einer Finanzsoftware auf dem Heimcomputer synchronisiert
werden muss. Somit ist es durchaus möglich, dass mehrere mobile
Anwendungen innerhalb einer Einheit mit verschiedenen Anwendungen
in verschiedenen Datenverwaltungssystemen (zum Beispiel Lotus NOTESTM, Microsoft EXCHANGETM,
Dateisysteme, relationale Datenbanken, objektorientierte Datenbanken)
synchronisiert werden müssen,
die auf Netzrechnern laufen. Es ist auch möglich, dass es bei einer mobilen
Anwendung (zum Beispiel eMail) für verschiedene
mobile Einheiten (z. B. PALM PILOTTM, ZAURUSTM von Sharp, PSIONTM von
Psion plc und verschiedene andere tragbare Einheiten, die unter Microsoft
WINDOWS CETM laufen) verschiedene Versionen
gibt.
-
Da
tragbare Einheiten wie der PALM PILOTTM normalerweise
nur gelegentlich und auch nur kurzzeitig mit dem Netz verbunden
werden, ist es von entscheidender Bedeutung, dass die Synchronisationsprozesse
zwischen den Anwendungen in den tragbaren Einheiten und ihren Pendants
in verschiedenen Netzcomputern sehr schnell ablaufen (sodass der
Synchronisationsprozess erfolgreich abgeschlossen werden kann, solange
die tragbaren Einheiten mit dem Netz verbunden sind). Da die tragbaren
Einheiten üblicherweise
nur eine geringe CPU-Leistung und
wenig Speicher für
Berechnungen aufweisen, werden die Synchronisationsprozesse normalerweise
nicht innerhalb der tragbaren Einheiten abgewickelt.
-
In
der vorliegenden Erfindung wird ein Computer, auf dem Datenkopien
von tragbaren Einheiten untergebracht sind, als Kopie-Hostrechner
oder als Kopiequelle bezeichnet. Da tragbare Einheiten in der Regel über weniger
Rechenleistung und Speicherkapazität als ein Kopie-Hostrechner
verfügen,
wickeln die tragbaren Einheiten die Synchronisation normalerweise
innerhalb ihrer Kopie-Hostrechner ab, bei denen es um Tischcomputer
handelt. Üblicherweise wird
die Synchronisation in einem ersten Schritt durch das Drücken einer
Taste der tragbaren Einheit (z. B. der HotSync-Taste in einem PALM
PILOTTM) ausgelöst. Sofort nach dem Drücken der
Taste übernimmt eine
Synchronisations-Verwaltungssoftware im Kopie-Hostrechner (z. B.
der HotSync-Manager des PALM PILOTTM im
Tischcomputer (PC)) den Synchronisationsprozess. Im Fall eines PALM
PILOTTM wickelt der HotSync-Manager die
Synchronisation für eine
PALM PILOTTM-Anwendung ab, indem er ein
anwendungsspezifisches Programm (mit der Bezeichnung Conduit beim
PALM PILOTTM) ausführt, das diese Anwendung mittels
einer anwendungsspezifischen Logik zwischen dem PALM PILOTTM und einem Tischcomputer synchronisiert.
Wenn mehrere Anwendungen synchronisiert werden müssen, führt der HotSync-Manager nacheinander
jedes einzelne Conduit aus. Auf der Grundlage dieses Ansatzes wird die
Synchronisation immer zwischen einem PC und einer tragbaren Einheit
durchgeführt.
Die gleichzeitige Synchronisation zwischen mehreren tragbaren Einheiten
und einem PC ist derzeit nicht möglich.
-
Im
Allgemeinen unterliegt die direkte Abwicklung von Synchronisationsprozessen
im Kopie-Hostrechner starken Einschränkungen. Das liegt daran, dass
möglicherweise
viele Anwendungen (z. B. eMail, Kalender, Adressbuch) gleichzeitig
von vielen verschiedenen tragbaren Einheiten (z. B. PALM PILOTTM, ZAURUSTM, PSIONTM) genutzt werden können. Jede Anwendung kann für jede Einheit
eine andere Synchronisationslogik erfordern. Um die Synchronisation
für alle
Anwendungen und alle Einheiten ordnungsgemäß abwickeln zu können, muss
ein Kopie-Hostrechner möglicherweise
viele verschiedene Versionen der Synchronisationsprozesse installieren und
verwalten, um verschiedene tragbare Einheiten bedienen zu können. Somit
ist die Abwicklung der Synchronisationsprozesse in Kopie-Hostrechnern mit
hohen Anforderungen an die Verwaltung der verschiedenen tragbaren
Einheiten und deren Synchronisationsprozesse verbunden. Bei vielen
Kopie-Hostrechnern besteht hierbei die kritischste Aufgabe nicht in
der Synchronisation der verschiedenen tragbaren Einheiten, sondern
in der Arbeit als Datenserver wie beispielsweise als Datenbank-Server,
als Groupware-Server oder als Arbeitsplatzrechner. Deshalb geht die
auf ihnen laufende Synchronisation zu Lasten ihrer eigentlichen
Aufgaben.
-
Ein
leistungsfähigerer
Ansatz zur Verwaltung der Synchronisation zwischen mehreren tragbaren Einheiten
und Kopie-Hostrechnern besteht darin, Synchronisations-Proxys (oder
Synchronisations-(Sync-)Server oder Synchronisations-Proxy-Server oder
einfach Sync-Proxys) einzusetzen, die dauerhafte Netzverbindungen
unterhalten, um die Synchronisation sowohl für die tragbaren Einheiten als auch
für die
Kopie-Hostrechner abzuwickeln (Einheiten, welche die Kopien verwalten,
unterhalten auch eine dauerhafte Netzverbindung).
-
Zum
Synchronisieren richtet die tragbare Einheit zuerst eine Netzverbindung
ein. Sobald die Verbindung steht, stellt sie keine direkte Verbindung zu
dem angewählten
Kopie-Hostrechner her, um die Synchronisation durchzuführen, sondern
richtet eine Synchronisationsanforderung an einen Synchronisationsserver.
Nach dem Empfangen einer solchen Anforderung richtet der Synchronisationsserver
eine Verbindung zum angewählten
Kopie-Hostrechner ein und beginnt den Synchronisationsprozess, indem
er Eingabe-/Ausgabeanforderungen
an die tragbare Einheit und deren Kopie-Hostrechner ausgibt. Ein einfaches Modell
des Synchronisationsservers besteht darin, dass der Proxyserver
alle einheitenspezifischen und anwendungsspezifischen Synchronisationsprogramme
ausführt,
die alle Arten der vom Kopie-Hostrechner verwalteten tragbaren Einheiten
und Datenverwaltungssysteme bedienen können. Das bedeutet, dass es
für jede
Anwendung ein spezielles Synchronisationsprogramm geben muss, das
für jede
beliebige Kombination aller Arten von tragbaren Einheiten und aller
Datenverwaltungssysteme geschrieben sein muss, welche die Datenkopien
der tragbaren Einheiten verwalten. Zum Beispiel kann ein Synchronisationsserver
vier verschiedene Synchronisationsprogramme für eine E-Mail-Anwendung ausführen, um
die eMail-Programme PALM PILOTTM und WINDOWS
CETM für
tragbare Einheiten und die E-Mail-Programme Microsoft EXCHANGETEM und Lotus NOTESTM für PCs zu
unterstützen.
Das erste Synchronisationsprogramm dient zum Synchronisieren zwischen
PALM PILOTTM und EXCHANGETM,
das zweite zum Synchronisieren zwischen PALM PILOTTM und
Lotus NOTESTM, das dritte zum Synchronisieren
zwischen WINDOWS CETM und EXCHANGETM und das vierte zum Synchronisieren zwischen
WINDOWS CETM und Lotus NOTESTM.
-
Ein
weiterer Aspekt dieses einfachen Modells des Synchronisationsservers
besteht darin, dass für
verschiedene tragbare Einheiten zum Synchronisieren dieselbe Eingabe-/Ausgabeschnittstelle zwischen
dem Synchronisationsserver und einem bestimmten Datenverwaltungssystem
verwendet werden kann, das die Datenkopien für die tragbaren Einheiten verwaltet.
Nicht jeder einzelne Kopie-Hostrechner, sondern der Synchronisationsserver
muss die Unterschiede zwischen den tragbaren Einheiten berücksichtigen.
Die eigentlichen Synchronisationsprozesse werden durch die Synchronisationsserver abgewickelt.
Die Aufgabe sowohl der tragbaren Einheiten als auch der Kopie-Hostrechner während der Synchronisation
besteht einfach darin, auf die vom Synchronisationsserver Eingabe-/Ausgabeaufrufe zum
Synchronisieren zu antworten. Diese Aufrufe erfolgen normalerweise
durch Hinzufügen,
Abrufen, Löschen
und Aktualisieren von Daten. Dadurch werden der Rechenaufwand und
die Komplexität
der Synchronisationslogik sowohl für die tragbaren Einheiten als
auch für
die Kopie-Hostrechner stark verringert.
-
Ein
wichtiges Merkmal dieses einfachen Modells des Synchronisationsservers
besteht darin, dass ein Synchronisationsserver, der zwischen beliebigen
Anwendungen für
alle Arten von tragbaren Einheiten und Datenverwaltungssystemen
für alle
Kopie-Hostrechner ordnungsgemäß synchronisieren soll,
in der Lage sein muss, während
der Ausführung einer
Synchronisationsaufgabe entsprechend der Zielanwendung, der Zieleinheit
und dem Ziel-Datenverwaltungssystem
eine bestimmte Synchronisationslogik aufzurufen. Dieses einfache
Modell des Synchronisationsservers erfüllt diese Aufgabe dadurch,
dass es einerseits seine Unterstützung
auf eine kleine Anzahl von Anwendungen, Einheiten und Datenverwaltungssystem
beschränkt,
um die Gesamtzahl der zur ordnungsgemäßen Synchronisation erforderlichen
Varianten der Synchronisationslogik zu verringern; und andererseits
durch das Vorkonfigurieren der Synchronisationslogik durch (während der
Synchronisation) dynamisch aufrufbare Codes, die in seinem Plattenspeicher
gespeichert sind. Ein großes
Problem eines solchen Ansatzes besteht darin, dass die Verwaltung
aller verschiedenen Synchronisationslogiken schwierig ist. Wenn
eine Organisation mehr Anwendungen, Einheiten und Datenverwaltungssysteme
unterstützt,
nimmt die Anzahl der Varianten an Synchronisationslogiken drastisch zu.
Jeder Synchronisationsserver muss daher in der Lage sein, die richtige
Synchronisationslogik aufzurufen. Wenn in einer Organisation mehrere
Synchronisationsserver eingesetzt werden, führt jede Änderung und Aktualisierung
einer Synchronisationslogik zu einer schwierigen Aufgabe in der
Softwareverwaltung, da diese Änderungen
und Aktualisierungen in die richtigen Dateien aller Synchronisationsserver eingestellt
werden müssen.
Die Verbesserung der Verwaltung der Synchronisationslogik stellt
einen Schwerpunkt der vorliegenden Erfindung dar.
-
Ein
weiteres Merkmal des vorliegenden einfachen Ansatzes des Synchronisationsservers
besteht darin, dass die verschiedenen Synchronisationslogiken von
den Herstellern der Synchronisationsserver vorcodiert werden, wobei
einige Hersteller eine Entwicklungsplattform bereitstellen, damit
die Benutzer die Synchronisationslogik erweitern oder modifizieren
können.
Die Hersteller von Synchronisationsservern stellen im Allgemeinen
nicht die Anwendungen, die tragbaren Einheiten oder die Datenverwaltungssysteme
her. Somit verfügen
sie nicht über das
Spezialwissen über
diese Software und Hardware und müssen ihre Unterstützung auf
einen bestimmten Umfang beschränken.
Die Skalierbarkeit heutiger Synchronisationsserver bezüglich der
Unterstützung
einer größeren Anzahl
von tragbaren Einheiten und Anwendungen für diese sowie von Datenverwaltungssystemen
ist sehr eingeschränkt.
Die vorliegende Erfindung stellt sich die Aufhebung dieser Einschränkungen
zur Aufgabe.
-
Außerdem handelt
es sich bei dem einfachen Synchronisationsserver um ein eigenständiges System,
dessen Skalierbarkeit bezüglich
der Verarbeitung gleichzeitig eintreffender Synchronisationsanforderungen
durch die Datenverarbeitungsleistung der Maschine beschränkt ist,
auf welcher der Synchronisationsserver läuft. Bei dem einfachen Ansatz des
Synchronisationsservers gibt es zwischen den Synchronisationsservern
keine Zusammenarbeit in Form eines Lastausgleichs. Durch diese fehlende Zusammenarbeit
zwischen den Synchronisationsservern kann es zur ungleichmäßigen Lastverteilung kommen,
die dazu führt,
dass einige Synchronisationsanforderungen entweder verspätet oder
gar nicht bearbeitet werden. Die vorliegende Erfindung trägt zur Lösung dieses
Problems bei. In dem Dokument
WO
97/04389 werden ein Verfahren und eine Vorrichtung zum
Synchronisieren von Transaktionen in einem Netz mit zeitweiligen
Verbindungen beschrieben. Jede Transaktion beinhaltet Operationen,
die in Verbindung mit einer Datenbankkopie in einem Computer ausgeführt wurden,
während
dieser Computer zeitweise von einem anderen Computer und somit von
der Kopie dieses Computers getrennt war.
-
Gemäß den oben
erwähnten
Anforderungen betrifft die vorliegende Erfindung ein verbessertes Verfahren,
eine verbesserte Vorrichtung und eine verbesserte Programmspeichereinheit
für einen
Synchronisations-Proxy (oder Sync-Proxy oder Sync-Server), der während der
Aktualisierung zum Synchronisieren zwischen Clients als Vermittler
und als Datenverarbeitungsplattform dient, wobei unter anderem folgende
Beispiele genannt werden: eine Internet-Zugangseinheit; eine tragbare oder Palmtopeinheit;
ein Smartphone oder einen intelligenten Personenrufempfänger; Datenverwaltungssysteme, die
Datenkopien dieser Einheiten verwalten. Die Clients können zeitweilig
oder größtenteils
vom Netz getrennt sein, während
die Datenverwaltungssysteme fast die ganze Zeit mit dem Netz verbunden
sind. Die Daten in den Client-Einheiten und/oder deren Kopien in
den Datenverwaltungssystemen können
unabhängig
voneinander aktualisiert werden.
-
Vorzugsweise
umfasst die Synchronisationannahmelogik ferner ein Mittel zum Empfangen
einer Synchronisationsanforderung vom Client, die Daten zum Kennzeichnen
der Kopie-Hostrechners und der fernen Synchronisationslogik beinhaltet;
die Synchronisationslogik umfasst Mittel zum Ausführen eines
oder mehrerer der folgenden Schritte: Auflösen eines Konflikts, Festlegen
einer Überschreibrichtung und
Ergreifen von Maßnahmen
zum Erfüllen
einer bestimmten Anforderung der Anwendung; die Synchronisationsanforderung
beinhaltet eine Adresse eines Verzeichnisdienstes, in welchem Daten
zur Kennzeichnung des Kopie-Hostrechners und der Synchronisationslogik
gespeichert sind; und die Synchronisationsverarbeitungslogik umfasst
ferner ein Mittel zum Abrufen der Daten als Reaktion auf die Synchronisationsanforderung.
-
Vorzugsweise
beinhaltet die Synchronisationsanforderung Daten zum Kennzeichen
eines einheitenspezifischen Transformationscodes zum Umwandeln von
Daten zwischen dem Client und dem fernen Hostrechner während der
Synchronisation; und die Synchronisationsverarbeitungslogik umfasst ein
Mittel zum Abrufen des Transformationscodes auf der Grundlage der
Daten und zum Umwandeln der Daten zwischen dem Client und dem fernen
Hostrechner auf der Grundlage des einheitenspezifischen Transformationscodes;
wobei sich der einheitenspezifische Transformationscode irgendwo
an einem entfernten Standort im Netz befinden kann und die Synchronisationsanforderung
eine Adresse eines Verzeichnisdienstes beinhaltet, in welchem Daten zur
Kennzeichnung des einheitenspezifischen Transformationscodes zum
Umwandeln der Daten zwischen dem Client und dem fernen Hostrechner
gespeichert sind; und die Synchronisationsverarbeitungslogik umfasst
ein Mittel zum Abrufen eines fernen Transformationscodes auf der
Grundlage der Daten und zum Umwandeln der Daten zwischen dem Client
und dem fernen Hostrechner auf der Grundlage des einheitenspezifischen
Transformationscodes, wobei der Transformationscode ein Mittel zum
Ausführen
eines oder mehrerer der folgenden Schritte umfasst: Filtern, Umwandeln
und Ändern
der Daten in der Weise, dass sie in unterschiedlichen Rechnereinheiten
verwendet und verarbeitet werden können, die über unterschiedliche CPU-Leistungen
und/oder Speicherkapazitäten
und/oder physische Gestaltungen verfügen.
-
Vorzugsweise
umfasst der Server ferner eine mit der Annahmelogik verbundene Lastausgleichseinheit
zum Überwachen
der Datenverarbeiungsauslastung und der Datenverarbeitungskapazität des Servers
und zum gleichmäßigen Aufteilen
der anfallenden Datenverarbeitungsaufgaben und der Datenverarbeitungskapazität auf die
zusammenwirkenden Synchronisationsserver; und die Lastausgleichseinheit
umfasst eine Logik zum Weiterleiten der Synchronisationsanforderung
an einen geringer ausgelasteten Server, wenn die Datenverarbeitungsauslastung
des ursprünglichen
Servers einen Schwellenwert überschreitet.
Ferner beinhaltet das Netz ein Intranet und/oder das Internet, wobei
der Transformationscode ferner ein Mittel zum Filtern eines Bildes oder
zum Umwandeln einer Auflösung
eines in einer Webseite enthaltenen Bildes umfasst, das vom fernen
Hostrechner an die tragbare Einheit gesendet wurde, damit die Seite
trotz der eingeschränkten Speicherkapazität der tragbaren
Einheit auf deren Bildschirm dargestellt werden kann.
-
Vorzugsweise
umfasst der Server ferner ein mit der Synchronisationsverarbeitungslogik
verbundenes Mittel der Cachespeicher-Verwaltungseinheit zum Abrufen
der Synchronisationslogik und zum Speicher der Synchronisationslogik
in einem Cachespeicher, wobei das Mittel der Cachespeicher-Verwaltungseinheit
ferner ein Mittel zum Voreinstellen und zum Speichern der Synchronisationslogik
im Cachespeicher umfasst.
-
Vorzugsweise
umfassen die Kennzeichnungsdaten eine URL (Uniform Resource Locator, Verweisadresse).
Ferner handelt es sich bei den Netz um das World Wide Web und bei
dem Synchronisationsserver um einen Proxy-Server, wobei der Client aus
einer Gruppe ausgewählt
wird, die aus einer tragbaren Einheit, einem Smartphone oder einem
intelligenten Personenrufempfänger
besteht.
-
Gemäß einem
zweiten Aspekt stellt die Erfindung nach Anspruch 2 einen adaptiven
Server zum Transformieren von Daten zwischen einem Client und einem
fernen Kopie-Hostrechner bereit, der eine Datenkopie im Client speichert.
-
Vorzugsweise
umfasst die Annahmelogik ferner ein Mittel zum Empfangen der Anforderung
mit den Daten zur Kennzeichnung des Kopie-Hostrechners und des fernen
Transformationscodes vom Client; wobei die Anforderung eine Adresse
eines Verzeichnisdienstes (directory service) beinhaltet, der Daten
zur Kennzeichnung des Kopie-Hostrechners und den Transformationscode
speichert; wobei die Verarbeitungslogik ferner ein Mittel zum Abrufen
der Daten als Antwort auf die Anforderung umfasst; wobei der Transformationscode
ein Mittel zum Ausführen
einer oder mehrerer der folgenden Funktionen umfasst: Filtern, Transformieren
und Ändern
der Daten, damit sie in verschiedenen Datenverarbeitungseinheiten
mit einer oder mehreren verschiedenen CPU-Datenverarbeitungskapazitäten, Speicherkapazitäten und
physischen Gestaltungen verwendet und verarbeitet werden können; wobei
der Transformationscode ferner ein Mittel zum Filtern eines Bildes oder
zum Transformieren einer Auflösung
des Bildes umfasst, das in einer vom fernen Hostrechner an die tragbare
Einheit gesendeten Webseite enthalten ist, damit die Seite trotz
der eingeschränkten
Speicherkapazität
der tragbaren Einheit auf deren Bildschirm dargestellt werden kann;
wobei die Anforderung Daten zur Kennzeichnung einer Logik beinhaltet,
die für den
zum Client und zum fernen Hostrechner gehörenden Datentyp anwendungsspezifisch
ist und als Antwort auf die Anforderung aufgerufen wird; und wobei
die Verarbeitungslogik ein Mittel zum Abrufen der Logik, zum Einrichten
der Verbindung zum fernen Hostrechner auf der Grundlage der Daten
und zum Synchronisieren der Daten zwischen dem Client und dem fernen
Hostrechner umfasst.
-
Vorzugsweise
bei Letzterem umfasst ferner die Logik Mittel zum Ausführen einer
oder mehrerer der folgenden Funktionen: Auflösen eines Konflikts; Angeben
einer Überschreibrichtung;
und Ergreifen bestimmter Maßnahmen
zum Ausführen
einer bestimmten Aufgabe der Anwendung, wobei die Logik an einem
beliebigen entfernten Standort im Netz untergebracht werden kann,
wobei die Anforderung eine Adresse eines Verzeichnisdienstes beinhaltet, der
Daten zur Kennzeichnung der Logik speichert; und wobei die Verarbeitungslogik
ein Mittel zum Abrufen der fernen Logik auf der Grundlage der Daten und
zum Synchronisieren der Daten zwischen dem Client und dem fernen
Hostrechner auf der Grundlage der Logik umfasst.
-
Vorzugsweise
umfasst der Server ferner eine mit der Annahmelogik verbundene Lastausgleichseinheit
zum Überwachen
der Datenverarbeitungskapazität
des Servers und deren Auslastung sowie der Verteilung der Datenverarbeitungskapazität und deren
Auslastung auf die zusammen arbeitenden Server; wobei die Lastausgleichseinheit
eine Logik zum Weiterleiten der Anforderung an einen geringer ausgelasteten
Server umfasst, falls die Auslastung der Rechenkapazität des Servers
einen Schwellenwert überschreitet.
-
Vorzugsweise
umfasst der Server ferner ein mit der Verarbeitungslogik Cachespeicher-Verwaltungsmittel
zum Abrufen und zum Speichern der Logik in einen Cachespeicher,
wobei das Cachespeicher-Verwaltungsmittel ferner ein Mittel zum
Voreinstellung und zum Speichern der Logik im Cachespeicher umfasst.
-
Vorzugsweise
umfassen die Kennzeichnungsdaten eine URL. Ferner handelt es sich
bei dem Netz um das World Wide Web und bei dem Server um einen Proxy-Server,
wobei der Client aus einer Gruppe ausgewählt wird, die aus einer tragbaren Einheit,
einem Smartphone oder einem intelligenten Personenrufempfänger besteht.
-
Gemäß einem
dritten Aspekt stellt die Erfindung nach Anspruch 3 eine Client-Einheit
bereit, die mit einem Synchronisationsserver verbunden werden kann,
wobei die Synchronisation der Daten zwischen dem Client und einem
fernen Kopie-Hostrechner erfolgt, der eine Kopie der Daten im Client
speichert.
-
Vorzugsweise
handelt es sich bei dem Client um eine abschaltbare tragbare Einheit
aus der Gruppe von tragbaren Computern, Smartphones oder intelligenten
Personenrufempfängern,
die ein Mittel zum Einrichten einer Verbindung zum Netz umfasst, wobei
die Datenverwaltung eine oder mehrere der folgenden Funktionen umfasst:
Lesen eines Datenobjekts; Schreiben eines Datenobjekts; Aktualisieren eines
Datenobjekts; und Löschen
eines Datenobjekts, und die ferner ein Mittel zum Übermitteln
von Versionsdaten und Daten früherer
Aktualisierungen zwischen dem Client und dem fernen Kopie-Hostrechner
umfasst, wobei die Synchronisationsanforderung ferner Daten zum
Kennzeichnen des Kopie-Hostrechners und der fernen Synchronisationslogik
umfasst, wobei die Synchronisationsanforderung eine Adresse eines
Verzeichnisdienstes beinhaltet, der Daten zum Kennzeichnen des Kopie-Hostrechners
und der Synchronisationslogik speichert, wobei die Synchronisationsanforderung
Daten zum Kennzeichnen eines einheitenspezifischen Transformationscodes
zum Transformieren der Daten zwischen dem Client und dem fernen
Hostrechner beinhaltet; wobei der einheitenspezifische Transformationscode an
einem beliebigen entfernten Standort im Netz untergebracht sein
kann, wobei die Synchronisationsanforderung eine Adresse eines Verzeichnisdienstes beinhaltet,
der Daten zum Kennzeichnen einer oder mehrerer Synchronisationslogiken
und eines oder mehrerer einheitenspezifischer Transformationscodes
zum Transformieren der Daten zwischen dem Client und dem fernen
Hostrechner speichert, wobei es sich bei dem Client um eine tragbare
Einheit handelt, die abschaltbar mit einem oder mehreren Intranets
bzw. dem Internet verbunden ist, wobei die Daten ein Bild beinhalten,
das innerhalb eines Webseite vom fernen Hostrechner an die tragbare
Einheit gesendet und so transformiert wird, dass die Seite trotz der
eingeschränkten
Speicherkapazität
der tragbaren Einheit auf deren Bildschirm dargestellt werden kann.
-
Vorzugsweise
umfassen die Kennzeichnungsdaten eine URL.
-
Vorzugsweise
umfasst die Anforderung eine oder mehrere im Speicher gespeicherte
Netzadressen des Synchronisationsservers, wobei eine Adresse des
Synchronisationsservers als Standardadresse des Synchronisationsservers
vorkonfiguriert ist.
-
Vorzugsweise
beinhaltet die Anforderung Kennzeichnungsdaten über den Client oder über einen
Benutzer, darunter eine Benutzer-ID; ein verschlüsseltes Passwort; gemeinsam
genutzte Daten zur Echtheitsprüfung
und zur Berechtigungsprüfung; einen
Gerätetyp;
oder einen zum Client gehörenden Systemtyp.
-
Vorzugsweise
ist der Synchronisationsinitiator so eingerichtet, dass er eine
Liste zu aktualisierender Anwendungen ermittelt, darunter eine Adressbuchanwendung;
eine Notizbuchanwendung; eine Kalenderanwendung; und eine eMail-Anwendung.
-
Gemäß einem
vierten Aspekt stellt die Erfindung nach Anspruch 6 eine Client-Einheit
zum Einrichten einer Verbindung mit einem adaptiven Server bereit,
wobei die Transformation der Daten zwischen dem Client und einem
fernen Kopie-Hostrechner erfolgt, der eine Kopie der Daten des Client
speichert.
-
Vorzugsweise
handelt es sich bei dem Client um eine abschaltbare tragbare Einheit
aus der Gruppe von tragbaren Computern, Smartphones oder intelligenten
Personenrufempfängern,
die ein Mittel zum Einrichten einer Verbindung zum Netz umfasst, wobei
die Anforderung ferner Daten zum Kennzeichnen des Kopie-Hostrechners
und den Transformationscode umfasst, wobei die Anforderung eine
Adresse eines Verzeichnisdienstes beinhaltet, der Daten zum Kennzeichnen
des Kopie-Hostrechners und des Transformationscodes speichert, wobei
die Anforderung Daten zum Kennzeichnen einer Logik beinhaltet, die
für einen
dem Client und zum Kopie-Hostrechner zugehörigen Datentyp anwendungsspezifisch
ist, wobei die Logik entfernt vom Server und vom Kopie-Hostrechner
an einem beliebigen Standort im Netz untergebracht sein kann, wobei
die Anforderung eine Adresse eines Verzeichnisdienstes beinhaltet,
der Daten zum Kennzeichnen einer oder mehrerer der Logiken und eines
oder mehrerer der einheitenspezifischen Transformationscodes speichert. Vorzugsweise
handelt es sich bei der tragbaren Einheit um eine abschaltbar mit
einem oder mehreren Intranets und dem Internet verbundene tragbare
Einheit, wobei die Daten ein Bild beinhalten, das innerhalb einer
Webseite vom fernen Hostrechner an die tragbare Einheit gesendet
und so transformiert wird, dass sie trotz der eingeschränkten Speicherkapazität der tragbaren
Einheit auf deren Bildschirm dargestellt werden kann.
-
Vorzugsweise
umfassen die Kennzeichnungsdaten eine URL.
-
Vorzugsweise
umfasst die Anforderung eine oder mehrere im Speicher gespeicherte
Netzadressen des Synchronisationsservers, wobei eine Adresse des
Synchronisationsservers als Standardadresse des Synchronisationsservers
vorkonfiguriert ist.
-
Die
vorliegende Erfindung stellt nach Anspruch 1 einen Synchronisationsserver
zum Synchronisieren von Daten zwischen einem Client und einem fernen
Kopie-Hostrechner bereit, der eine Kopie von Daten des Client speichert.
-
Die
Erfindung stellt nach Anspruch 2 auch eine Client-Einheit zum Einrichten
einer Verbindung mit dem Synchronisationsserver bereit.
-
Außerdem stellt
die Erfindung nach Anspruch 4 auch ein Verfahren und nach Anspruch
5 ein entsprechendes Computerprogramm in einem Synchronisationsserver
bereit.
-
Gemäß einer
bevorzugten Ausführungsart der
vorliegenden Erfindung wird ein Verfahren für einen Client zum Anfordern
von Synchronisationsdiensten von einem Synchronisations-Proxyserver bereitgestellt.
Zum Beispiel gibt eine tragbare Einheit eine Synchronisationsanforderung
(oder eine Sync-Anforderung)
an diesen Proxyserver aus. Eine Synchronisationsanforderung kann
die Synchronisation einer oder mehrerer Anforderungen beinhalten. Nach
dem Empfangen der Synchronisationsanforderung verarbeitet der Synchronisationsserver
nacheinander die Synchronisation für alle Anwendungen dieser tragbaren
Einheit, für
welche die Synchronisation angefordert wurde. Für jede zu synchronisierende Anwendung
kann die tragbare Einheit eine Synchronisationskennung bereitstellen,
die den Namen der zu synchronisierenden Anwendung, die ID des für diese
Anwendung zuständigen
Kopie-Hostrechners, die ID des Programms mit der für diese
Anwendung zuständigen
anwendungsspezifischen Synchronisationslogik (Sync-Logik) und die
ID des Programms mit einem für
diese tragbare Einheit zuständigen
einheitenspezifischen Datentransformationsverfahrens (Transformationscode)
beinhalten kann. Die IDs beinhalten vorzugsweise eine eindeutige
Kennung (oder einen eindeutigen Namen) und eine Netzadresse, von
welcher diese Daten abgerufen werden können.
-
Anstatt
während
der Synchronisation einer Anwendung die Daten direkt an den Synchronisationsserver
zu schicken, kann die tragbare Einheit eine Synchronisationskennung
senden, die nur bestimmte Kenndaten des Benutzers, der tragbaren
Einheit und der zu synchronisierenden Anwendung sowie die Adresse
eines Verzeichnisdienstes zu enthalten braucht, in welchem der Name
der Anwendung und die drei oben erwähnten Datenobjekte (d. h. die
ID des Kopie-Hostrechners für
diese Anwendung, die ID der Synchronisationslogik für diese
Anwendung und die ID des Transformationscodes für diese tragbare Einheit) gespeichert
sind.
-
Ein
Beispiel für
einen adaptiven Synchronisationsserver zum Synchronisieren von Daten
zwischen einem Client und einem fernen Kopie-Hostrechner, in welchem
eine Kopie der Daten des Client gespeichert ist, mit den Merkmalen
einer bevorzugten Ausführungsart
der vorliegenden Erfindung beinhaltet Folgendes: eine Synchronisationsannahmelogik
zum Kennzeichnen eines Kopie-Hostrechners und eine Synchronisationslogik,
die je nach Anwendung für
einen dem Client und dem fernen Hostrechner zugehörigen Datentyp
spezifisch ist, wobei die Synchronisationslogik als Antwort auf
eine Synchronisationsanforderung entfernt vom Synchronisationsserver
und vom fernen Hostrechner an einem beliebigen Standort untergebracht
werden kann; und eine mit der Synchronisationsannahmelogik verbundene Synchronisationsverarbeitungslogik
zum Abrufen der fernen Synchronisationslogik vom Netz, zum Einrichten
einer Verbindung zum fernen Hostrechner und zum Synchronisieren
der Daten zwischen dem Client und dem fernen Hostrechner unter Verwendung
der abgerufenen Synchronisationslogik. Die Synchronisationsanforderung
kann auch Daten zum Kennzeichnen eines einheitenspezifischen Transformationscodes
zum Umwandeln von Daten zwischen dem Client und dem fernen Hostrechner
während
der Synchronisation beinhalten; wobei die Synchronisationsverarbeitungslogik
ein Mittel zum Abrufen des Transformationscodes auf der Grundlage
der Daten und zum Umwandeln der Daten zwischen dem Client und dem
fernen Hostrechner auf der Grundlage des einheitenspezifischen Transformationscodes
beinhaltet. Im vorliegenden Fall kann der einheitenspezifische Transformationscode
lokal oder entfernt an einem beliebigen Standort im Netz untergebracht
sein.
-
Ein
weiteres Beispiel für
einen adaptiven Synchronisationsserver zum Transformieren von Daten
zwischen einem Client und einem fernen Kopie-Hostrechner, in welchem
eine Kopie der Daten des Client gespeichert ist, mit den Merkmalen
einer bevorzugten Ausführungsart
der vorliegenden Erfindung beinhaltet Folgendes: eine Synchronisationsannahmelogik
zum Kennzeichnen eines fernen Kopie-Hostrechners und einen einheitenspezifischen Transformationscode
zum Transformieren der Daten auf dem fernen Hostrechner in Daten
eines dem Client zugehörigen
Gerätetyps,
wobei der Transformationscode als Antwort auf eine Anforderung entfernt vom
Synchronisationsserver und vom fernen Hostrechner an einem bestimmten
Standort untergebracht werden kann; und eine mit der Synchronisationsannahmelogik
verbundene Synchronisationsverarbeitungslogik zum Abrufen eines
fernen Transformationscodes und zum Transformieren der Daten zwischen
dem Client und dem fernen Hostrechner auf der Grundlage des einheitenspezifischen
Transformationscodes. Die Anforderung kann auch eine Synchronisationsanforderung
zum Kennzeichnen einer Synchronisationslogik als Antwort auf eine
Synchronisationsanforderung, die je nach Anwendung für einen
dem Client und dem fernen Hostrechner zugehörigen Datentyp spezifisch ist;
und ein Mittel zum Abrufen der Synchronisationslogik, zum Einrichten einer
Verbindung mit dem fernen Hostrechner und zum Synchronisieren der
Daten zwischen dem Client und dem fernen Hostrechner während der
Transformation beinhalten.
-
Gemäß einer
bevorzugten Ausführungsart der
vorliegenden Erfindung wird ein Verfahren für den Synchronisationsserver
zum Empfangen, Annehmen und Verarbeiten der von den tragbaren Einheiten
erstellten Synchronisationsanforderungen bereitgestellt. Bei der
bevorzugten Ausführungsart
führt ein Synchronisationsserver
nach dem Empfangen einer Synchronisationsanforderung von einer tragbaren Einheit
die Synchronisation und/oder Transformation für eine oder mehrere Anwendungen
der tragbaren Einheit durch. Für
jede Anwendung der tragbaren Einheit kann der Proxy-Server den oben
erwähnten Namen
der Anwendung, die ID des Kopie-Hostrechners, die ID der Synchronisationslogik
und die ID des Transformationscodes entweder direkt von der anfordernden
tragbaren Einheit oder indirekt von einem durch die anfordernde
tragbare Einheit angegebenen Verzeichnisdienstes empfangen. Zum
Synchronisieren einer Anwendung kann der Synchronisationsserver
die dieser Anwendung zugehörige
Synchronisationslogik von der Netzadresse abrufen, die in der von der
anfordernden tragbaren Einheit gesendeten ID der Synchronisationslogik
für diese
Anwendung angegeben ist. Dann richtet der Synchronisationsserver eine
Netzverbindung zu dem dieser Anwendung zugehörigen Kopie-Hostrechner auf der Grundlage dessen
ID ein, die der Synchronisationsserver von der anfordernden tragbaren
Einheit empfangen hat.
-
Gemäß einer
bevorzugten Ausführungsart der
vorliegenden Erfindung führt
der Synchronisationsserver zum Synchronisieren dieser Anwendung die
für diese
Anwendung abgerufene Synchronisationslogik aus. Wenn während der
Ausführung
der Synchronisationslogik für
diese Anwendung eine Datentransformation durchgeführt werden
muss, richtet der Synchronisationsserver eine Verbindung zur Netzadresse
des dieser Anwendung zugehörigen Transformationscodes
ein. Die Netzadresse des Transformationscodes ist Bestandteil der
von der anfordernden tragbaren Einheit gesendeten ID des Transformationscodes.
Dann führt
der Synchronisationsserver bei Bedarf die Datentransformation durch, indem
er diesen Transformationscode während
der Ausführung
der Synchronisationslogik beim Synchronisieren dieser Anwendung
ausführt.
Obwohl die vorliegende Erfindung keine Angabe zur Programmiersprache
macht, in welcher eine Synchronisationslogik geschrieben ist, ist
es denkbar, dass das Merkmal der vorliegenden Erfindung, bei dem
der Synchronisationsserver eine Synchronisationslogik von einem fernen
Hostrechner abruft und diese Logik ausführt, im Rahmen einer vorhandenen
Java-gestützten
Internetverarbeitung realisiert wird, bei der ein Java-Programm
wie beispielsweise ein Applet durch einen Internetbrowser von einem
fernen Hostrechner heruntergeladen und zur Internetverarbeitung
lokal durch den Internetbrowser ausgeführt wird.
-
Bei
einer Ausführungsart
der vorliegenden Erfindung ist die Synchronisation für eine Anwendung
in eine Synchronisationslogik und in einen Transformationscode aufgeteilt.
Die Synchronisationslogik stellt die anwendungsspezifische Prozedur der
Synchronisationsaufgaben dar, während
der Transformationscode den einheitenspezifischen Umwandlungsprozess
zwischen zwei Gerätetypen
darstellt. Die Trennung dieser beiden Abläufe voneinander bedeutet, dass
die Synchronisationslogik für
eine Anwendung vom Entwickler dieser Anwendung bereitgestellt und
gewartet werden kann, während
der Transformationscode vom Entwickler der tragbaren Einheit bereitgestellt
und gewartet werden kann, zu welcher dieser Transformationscode
gehört.
Die Synchronisationsserver brauchen diese Synchronisations- oder
Transformationsprozeduren nicht mehr zu speichern und zu verwalten.
Sie müssen
nur noch die passende Synchronisationslogik und/oder die passenden
Transformationscodes während
der Synchronisation abrufen. Dieser Ansatz verbessert den Verwaltungsprozess
der von den Synchronisationsservern ausgeführten anwendungsspezifischen
und der einheitenspezifischen Synchronisations- und/oder Transformationsprozeduren
beträchtlich.
-
Ein
solcher Ansatz enthebt die Hersteller der Synchronisationsserver
auch der Notwendigkeit, auf die Anwendungen und die Einheiten zugeschnittene Synchronisationsprozeduren
zu entwickeln. Demzufolge lassen sich die Synchronisationsserver
in der Weise erweitern, dass sie mehr Anwendungen, Einheiten und
Datenverwaltungssysteme unterstützen können, solange
die anwendungsspezifischen und die einheitenspezifischen Synchronisationsprozeduren
ordnungsgemäß entwickelt
und gewartet von den entsprechenden Herstellern zugänglich gemacht werden.
-
Als
bevorzugtes Merkmal einer bevorzugten Ausführungsart der vorliegenden
Erfindung kann ein Synchronisationsserver einen Cachespeicher zur
vorübergehenden
Speicherung der Synchronisationslogik oder des Transformationscodes
für eine
Anwendung in der Erwartung einrichten, dass diese ausführbaren
Daten von diesem Synchronisationsserver in naher Zukunft verwendet
werden können.
Ein Beispiel für
das Merkmal des Cachespeichers der vorliegenden Erfindung wird im
Folgenden beschrieben. Zuerst reserviert der Synchronisationsserver
einen Speicherblock (entweder im Arbeitsspeicher oder im Plattenspeicher)
als Cachespeicher. Der Synchronisationsserver kann sich zum Suchen
und Abrufen einer im Cachespeicher gespeicherten Synchronisationslogik
oder eines im Cachespeicher gespeicherten Transformationscodes eines
Indexierungsverfahrens (z. B. ausgehend von ihren eindeutigen Namen)
bedienen. Um im Cachespeicher gespeicherte Daten (die Synchronisationslogik
oder den Transformationscode für
eine Anwendung) abzurufen, durchsucht die Synchronisationslogik
zuerst ihren Cachespeicher, bevor sie diese außerhalb des Netzes abzurufen
versucht. Wenn die Daten im Cachespeicher nicht gefunden werden,
sucht der Synchronisationsserver die der ID dieser Daten zugehörige Netzadresse
auf, um die Daten abzurufen und mit diesen den Cachespeicher des
Synchronisationsservers zu aktualisieren. Wenn diese Daten im Cachespeicher
gefunden werden, ruft der Synchronisationsserver diese Daten nicht
aus dem Netz, sondern aus seinem Cachespeicher ab. Dann lädt der Synchronisationsserver
diese ausführbaren
Daten (die Synchronisationslogik oder den Transformationscode für eine Anwendung)
aus dem Cachespeicher, um sie auszuführen.
-
Ein
weiteres bevorzugtes Merkmal einer bevorzugten Ausführungsart
der vorliegenden Erfindung besteht darin, dass ein Synchronisationsserver ständig seine
Datenverarbeitungsauslastung (z. B. in Form der Anzahl der von ihm
gleichzeitig verarbeiteten Synchronisationsanforderungen) im Vergleich
mit seiner Datenverarbeitungskapazität überwachen kann, die durch seine
CPU-Leistung, die Größe seines
Arbeitsspeichers und des Plattenspeichers sowie der verfügbaren Netzbandbreite
vorgegeben ist. Alle Synchronisationsserver innerhalb desselben Netzes
können
im Echtzeitbetrieb ihre aktuelle Rechnerauslastung und ihre vorkonfigurierte
Datenverarbeitungskapazität
gemeinsam nutzen. Nach dem Empfangen einer Synchronisationsanforderung
prüft ein
Synchronisationsserver, ob die aktuelle Datenverarbeitungsauslastung
durch diese hinzugekommene Synchronisationsaufgabe die Datenverarbeitungskapazität dieses
Synchronisationsservers überschreitet.
Wenn dies der Fall ist, fragt dieser Synchronisationsserver die
Daten zur Datenverarbeitungsauslastung und zur Datenverarbeitungskapazität von den
anderen Synchronisationsservern ab. Nachdem dieser Synchronisationsserver
die Daten empfangen hat, kann er diese ankommende Synchronisationsserver
an einen anderen Synchronisationsserver (in demselben Netz) abgeben,
dessen Datenverarbeitungsauslastung geringer ist. Wenn alle Synchronisationsserver
in demselben Netz mit voller Auslastung laufen, kann der Synchronisationsserver,
der diese Synchronisationsanforderung empfängt, eine Nachricht an die
anfordernde tragbare Einheit zurücksenden,
um anzuzeigen, dass die Kapazität
aller Synchronisationsserver ausgeschöpft ist. Diese Nachricht beendet
auch die Verbindung mit der anfordernden tragbaren Einheit. In diesem
Fall findet keine Synchronisation statt. Mit diesem Merkmal stellt
die vorliegende Erfindung auch eine Lastausgleichsfunktion bereit,
die bei dem einfachen Ansatz des Synchronisationsservers nicht verfügbar ist.
-
Diese
sowie weitere Aufgaben, Vorteile und Merkmal der Erfindung werden
aus der folgenden detaillierten Beschreibung einer bevorzugten Ausführungsart
und den angehängten
Zeichnungen klarer, wobei:
-
1 ein
Beispiel einer Architektur des Ansatzes des Synchronisationsservers
zeigt;
-
2 ein
Beispiel einer Architektur eines Client zeigt, der als tragbare
Einheit mit den Merkmalen der vorliegenden Erfindung realisiert
ist;
-
3 ein
Beispiel einer Architektur eines Synchronisationsservers der vorliegenden
Erfindung zeigt;
-
4 ein
Beispiel einer Architektur eines Merkmals des Kopie-Hostrechners
der vorliegenden Erfindung zeigt;
-
5 ein
Beispiel eines Merkmals der Synchronisationsannahmelogik der vorliegenden
Erfindung für
tragbare Einheiten zeigt;
-
6 ein
Beispiel eines Merkmals der Synchronisationsannahmelogik der vorliegenden
Erfindung für
Proxyserver zeigt;
-
7 ein
Beispiel eines Merkmals der Synchronisationsverarbeitungslogik der
vorliegenden Erfindung für
tragbare Einheiten zeigt;
-
8 ein
Beispiel eines Merkmals der Synchronisationsverarbeitungslogik der
vorliegenden Erfindung für
Proxyserver zeigt;
-
9 ein
Beispiel eines Merkmals der Cachespeicherverwaltung der vorliegenden
Erfindung für
Proxyserver zeigt;
-
10 ein
Beispiel einer Datentransformation der Synchronisationsverarbeitungslogik
für Proxy-Server
zeigt;
-
12 ein
Beispiel einer Kopieverwaltung im Kopie-Hostrechner oder einer Datenverwaltung
in einer tragbaren Einheit zeigt; und
-
13 ein
Beispiel eines Merkmals der Lastausgleichseinheit der vorliegenden
Erfindung für
Proxyserver zeigt.
-
1 zeigt
ein Beispiel einer Gesamtarchitektur eines Netzes, das den Ansatz
der Synchronisationsserver mit den Merkmalen der vorliegenden Erfindung
realisiert. Als Client (101, 102) können unter
anderem tragbare oder Palmtopeinheiten (auch als tragbares Endgerät, Palmtop-Computer,
Internetgerät)
bezeichnet) dienen. Als tragbare Einheit wird im Allgemeinen eine
beliebige computergestützte Einheit
bezeichnet, die so klein ist, dass sie mit einer Hand gehalten und
mit der anderen Hand bedient werden kann. Die Bildschirme von tragbaren
Einheiten können
kleiner sein, da sie entsprechend den von ihnen ausgeführten Aufgaben
nicht für
die gleichzeitige Anzeige großer
Datenmengen ausgelegt sind. Tragbare Einheiten enthalten üblicherweise
Datenübertragungseinrichtungen,
damit sie mit einem Zentralrechner Daten austauschen und/oder synchronisieren
können.
Als Beispiele für
tragbare Einheiten kommen unter anderem in Frage: der PALM PILOTTM von 3 Com, der ZAURUSTM von
Sharp, der PSIONTM von Psion plc und verschiedene
andere mit WINDOWS CETM laufende tragbare
Einheiten, ein Smartphone oder ein intelligenter Personenrufempfänger usw.
Obwohl die bevorzugte Ausführungsart
tragbare Einheiten betrifft, ist dem Fachmann somit klar, dass die
vorliegende Erfindung für
eine beliebige Client-Einheit von Vorteil sein kann, welche Daten über ein
Netz synchronisiert.
-
Die
Clients können
mit zeitlichen Unterbrechungen mit Servern (105 bis 107)
(die auch als Synchronisations-Proxy, Sync-Proxy, Synchronisationsserver oder als
Synchronisations-Proxyserver
bezeichnet werden) verbunden werden. Zu Beispielen für Server
(105, 106, 107) zählen unter anderem: ein PC;
ein Arbeitsplatzrechner (zum Beispiel einen IBM RS6000TM);
oder ein Großrechner
bzw. Mainframe-Computer. Als Kopie-Hostrechner (109, 110, 111) kann
ein beliebiger Computer mit einem Datenverwaltungssystem dienen,
das Kopien von Daten der tragbaren Einheiten verwaltet. Als Kopie-Hostrechner
kann ein PC, ein Arbeitsplatzrechner oder ein Mainframe-Computer
usw. dienen. Die Synchronisationsserver sind über das Netz (108)
mit den Kopie-Hostrechnern verbunden sein. Die tragbaren Einheiten
können
zeitweise oder während
des größten Teils
der Zeit vom Netz getrennt sein, müssen jedoch mit dem Netz verbunden
sein (103, 104), während sie Synchronisationsaufgaben
ausführen.
Dem Fachmann ist klar, dass eine tragbare Einheit eine Verbindung
zu einem Netz (zum Beispiel zum Internet oder einem lokalen Netz)
herstellen kann, indem es über einen
Modem einen fernen Netzserver anwählt oder eine Direktverbindung über einen
seriellen Anschluss (z. B. unter Verwendung einer Andockvorrichtung
für den
PALM PILOTTM) zu einem Computer (zum Beispiel
einem Arbeitsplatzrechner) aufweist, der mit dem Netz verbunden
ist. Üblicherweise
stellt ein Verzeichnisserver (112) Dienste wie das Vorkonfigurieren
und Speichern von Daten für
Benutzer sowie eine Suchmaschine zum dynamischen Abrufen der Daten auf
Anforderung über
ein Netz wie beispielsweise das Internet bereit. Als Beispiele für diese
Dienste dienen unter anderem die Novell Directory Services von Novell
und das Active Directory von Microsoft, die Verzeichnisdaten bereitstellen,
auf die über
das Protokoll LDAP (Lightweight Directory Access Protocol, abgespecktes
Protokoll für
den Verzeichniszugriff, ein Internetprotokoll für den Zugriff auf Verzeichnisdaten)
zugegriffen werden kann.
-
Gemäß der vorliegenden
Erfindung sind die Synchronisationslogik (120) und/oder
der Transformationscode (130) an entfernten Standorten
gespeichert. Ein Beispiel eines adaptiven Synchronisationsservers
zum Synchronisieren von Daten zwischen einem Client (101 bis 102)
und einem fernen Kopie-Hostrechner (109 bis 111),
in welchem eine Kopie von Daten des Client gespeichert ist, beinhaltet
Folgendes: eine Synchronisationsserver-Logik (3) zum
Kennzeichnen des Kopie-Hostrechners (109 bis 111)
und der Synchronisationslogik (120), die je nach Anwendung
für einen
dem Client und dem fernen Hostrechner zugehörigen Datentyp spezifisch ist.
Als Antwort auf eine Synchronisationsanforderung kann an einem beliebigen
vom Synchronisationsserver (105 bis 107) und vom
Kopie-Hostrechner (109 bis 111) entfernten Standort
im Netz nach der Synchronisationslogik (120) gesucht werden.
Die Synchronisationsserver-Logik kann von einem entfernten Standort
im Netz (108) die Synchronisationslogik abrufen; auf der
Grundlage der Anforderung eine Verbindung zum fernen Hostrechner
einrichten; und die unter Verwendung der abgerufenen Synchronisationslogik die
Daten zwischen dem Client und dem fernen Hostrechner synchronisieren.
Die Synchronisationsanforderung kann auch Daten zum Kennzeichnen
eines einheitenspezifischen Transformationscodes (130), der
zum Umwandeln von Daten zwischen dem Client und dem fernen Hostrechner
während
der Synchronisation dient, sowie ein Mittel zum Abrufen des Transformationscodes
auf der Grundlage der Daten und zum Umwandeln der Daten zwischen
dem Client und dem fernen Hostrechner auf der Grundlage des einheitenspezifischen
Transformationscodes beinhalten. Dabei kann lokal oder an einem
beliebigen entfernten Standort im Netz nach dem einheitenspezifischen
Transformationscode gesucht werden.
-
Alternativ
ist der Server so eingerichtet, dass er Daten zwischen dem Client
(101 bis 102) und einem fernen Kopie-Hostrechner (109 bis 111)
transformieren kann, der eine Kopie von Daten des Client speichert.
Dabei dient die Anforderung zum Kennzeichnen des einzusetzenden
fernen Kopie-Hostrechners und eines Transformationscodes (130)
zum Transformieren der Daten auf dem fernen Hostrechner in Daten
des dem Client zugehörigen
Gerätetyps. Nach
dem Transformationscode kann an einem beliebigen vom Synchronisationsserver
und vom fernen Hostrechner entfernten Standort gesucht werden. Der
Server ruft auf der Grundlage der Anforderung den fernen Transformationscode
(130) ab und transformiert auf der Grundlage des einheitenspezifischen Transformationscodes
die Daten zwischen dem Client und dem fernen Hostrechner. Die Anforderung kann
eine Synchronisationsanforderung mit Daten zum Kennzeichnen der
Synchronisationslogik (120) beinhalten, um als Antwort
auf die Synchronisationsanforderung die Synchronisationslogik (120)
zu kennzeichnen, die je nach Anwendung für den dem Client und dem fernen
Hostrechner zugehörigen
Datentyp spezifisch ist. Der Server ruft die Synchronisationslogik
ab; richtet auf der Grundlage der Daten eine Verbindung mit dem
fernen Hostrechner ein; und synchronisiert während der Transformation die
Daten zwischen dem Client und dem fernen Hostrechner.
-
2 zeigt
ein Beispiel einer Gesamtarchitektur eines Client in Form einer
tragbaren Einheit, die eine Synchronisation gemäß der vorliegenden Erfindung
durchführen
kann. Die Figur zeigt, dass die tragbare Einheit Folgendes beinhaltet:
eine CPU (201), einen Arbeitsspeicher (203) wie
beispielsweise einen flüchtigen
RAM und einen Massenspeicher (202) wie beispielsweise einen
nichtflüchtigen
RAM, ROM oder einen Plattenspeicher zum Speichern von Systemen (zum
Beispiel des Betriebssystems), Anwendungen (zum Beispiel der eMail-
und Kalendersoftware) und der Daten (zum Beispiel der Inhalte eines
Adressbuchs oder Notizbuchs). Die meisten tragbaren Einheiten speichern
alle Daten im RAM oder im ROM und verzichten auf Plattenspeicher.
Im Arbeitsspeicher (203) ist die Logik (204) der
vorliegenden Erfindung für
die tragbare Einheit vorzugsweise in Form eines auf einem Computer
ausführbaren
Codes gespeichert, der vom Massenspeicher (202) in den
Arbeitsspeicher (203) geladen werden kann. Im vorliegenden
Beispiel beinhaltet die Logik (204) der vorliegenden Erfindung
für die
tragbare Einheit einen Synchronisationsinitiator (205)
(der in 5 genauer dargestellt ist) und
eine Datenverwaltungseinheit (207) (die in 11 genauer
dargestellt ist). Die Logik (204) der vorliegenden Erfindung
für die
tragbare Einheit wird in einem ersten Schritt in den Massenspeicher
(202) geladen. Wenn der Synchronisationsprozess gestartet
wird, lädt
die CPU (201) die Synchronisationslogik (entweder vollständig oder
auf Abruf in Teilen) in den Arbeitsspeicher (202) und startet
die Ausführung
dieser Logik zum Synchronisieren.
-
3 zeigt
ein Beispiel einer Architektur einer Datenverarbeitungseinheit,
die als Synchronisationsserver gemäß der vorliegenden Erfindung
konfiguriert ist. Beispiele hierfür sind unter anderem: ein PC;
ein Arbeitsplatzrechner; ein Server; oder ein Großrechner.
Der Synchronisationsserver kann eine CPU (301), Speichereinheiten
(302) wie beispielsweise einen Plattenspeicher und einen
Arbeitsspeicher (303) wie beispielsweise einen RAM beinhalten. Im
vorliegenden Beispiel ist im Arbeitsspeicher (303) die
Synchronisationsserver-Logik (304) vorzugsweise in Form
eines von einem Computer ausführbaren Codes
gespeichert, der vom Plattenspeicher (302) in den Arbeitsspeicher
(303) geladen werden kann. Im vorliegenden Beispiel beinhaltet
die Synchronisationsserver-Logik (304) eine Synchronisationsannahmelogik
(305) (die in 6 genauer dargestellt ist), eine
Synchronisationsverarbeitungslogik (306) (die in 8 genauer
dargestellt ist), eine Cachespeicher-Verwaltungseinheit (307)
die in 9 genauer dargestellt ist) und eine Lastausgleichseinheit
(308) (die in 13 genauer dargestellt ist).
-
4 zeigt
ein Beispiel einer Architektur einer Datenverarbeitungseinheit,
die als Kopie-Hostrechner gemäß der vorliegenden
Erfindung konfiguriert ist. Beispiele für einen Kopie-Hostrechner sind unter
Anderem: ein PC; ein Arbeitsplatzrechner; ein Server; oder ein Großrechner.
Die Figur zeigt, dass der Kopie-Hostrechner eine CPU (401),
Speichereinheiten (402) wie beispielsweise Plattenspeicher
und einen Arbeitsspeicher (403) wie beispielsweise einen RAM
beinhalten kann. Im Arbeitsspeicher (403) ist die Logik
(404) des Kopie-Hostrechners vorzugsweise in Form eines
von einem Computer ausführbaren Codes
gespeichert, der vom Plattenspeicher (402) in den Arbeitsspeicher
(403) geladen werden kann. Die Logik (404) des
Kopie-Hostrechners beinhaltet eine Kopieannahmelogik (405)
(die in 12 genauer dargestellt ist)
und eine Kopieverwaltungseinheit (406) (die in 11 genauer
dargestellt ist).
-
Üblicherweise
muss die tragbare Einheit zuerst eine Netzverbindung einrichten,
bevor die Synchronisationsprozesse ausgeführt werden können. Zum
Einrichten einer Verbindung zwischen einer tragbaren Einheit und
dem Netz wie beispielsweise dem Internet oder einem lokalen Netz
stehen zahlreiche Technologien zur Verfügung. Zum Beispiel wird ein
PALM PILOTTM bereits mit einer TCP/IP-Software ausgeliefert.
Wenn ein PALM PILOTTM an einen Modem angeschlossen
wird, kann er sich mittels dieser TCP/IP-Software über eine Telefonleitung
bei einem Internetanbieter (Internet Service Provider, ISP) einwählen, um
eine Verbindung zum Internet einzurichten. Alternativ kann die Einheit
auch über
einen seriellen Anschluss mit einem Tischcomputer (PC) verbunden
werden, der mit dem Netz verbunden ist. Es gibt Programme (wie beispielsweise
Remote Access Service, RAS, von Microsoft), mit deren Hilfe ein
PC als Netz-Server dienen und jede mit diesem seriellen Anschluss
des PC verbundene Einheit mit dem Netz verbinden kann. Obwohl der
Prozess zum Verbinden der Client-Einheit
mit dem Netz kein Bestandteil der vorliegenden Erfindung ist, stellt
er eine Voraussetzung für
die in der vorliegenden Erfindung realisierten Synchronisationsverfahren
dar.
-
Nachdem
die tragbare Einheit die Verbindung zum Netz eingerichtet hat, kann
sie die Synchronisationsprozesse ausführen, indem sie den in 2 und
genauer in 5 durch den Synchronisationsinitiator
(205) dargestellten Synchronisationsinitiatorprozess startet.
Zum Starten des Synchronisationsprozesses sendet der Synchronisationsinitiator zuerst
eine Synchronisationsanforderung an den Synchronisationsserver (501).
Dem Fachmann ist klar, dass die Netzadressen der Synchronisationsserver
den tragbaren Einheiten zuvor bekannt sein können und dass eine Adresse
der Synchronisationsserver als Standardadresse durch die tragbaren Einheiten
voreingestellt sein kann. Die von der tragbaren Einheit an den Synchronisationsserver
gesendeten Daten können
einen für
beide Seiten verständlichen
Code, der anzeigt, dass es sich um eine Synchronisationsanforderung
handelt, sowie Kenndaten über
den Benutzer (wie beispielsweise eine Benutzer-ID und das verschlüsselte Passwort oder gemeinsam
genutzte Geheimkennungen zur Identitäts- und Berechtigungsprüfung) und den
Gerätetyp
und das System der tragbaren Einheit beinhalten. Obwohl das Verfahren
zur Identitäts-
und Berechtigungsprüfung
keinen Bestandteil der vorliegenden Erfindung darstellen, ist dem
Fachmann klar, dass vorhandene Technologien zur Identitäts- und
Berechtigungsprüfung über das
Netz in den Dialog zwischen dem Synchronisationsinitiator der tragbaren
Einheit (Bezugsnummer 501 in 5) und der
Synchronisationsannahmelogik des Synchronisationsservers (305 in 3)
eingebunden werden können.
-
Wenn
die Synchronisationsanforderung abgewiesen wird, beendet der Synchronisationsinitiatorprozess
die Synchronisationsaufgabe (504). Ansonsten ermittelt
der Synchronisationsinitiator die Liste der zu synchronisierenden
Anwendungen (502). Zu den zu synchronisierenden Anwendungen können zum
Beispiel eine Adressbuchanwendung, eine Notizbuchanwendung, eine
Kalenderanwendung, eine eMail-Anwendung
oder beliebige andere Anwendungen in der tragbaren Einheit gehören. Dem
Fachmann ist klar, dass zum Ermitteln einer Liste von zu synchronisierenden
Anwendungen eine Bildschirmeingabe vom Benutzer (zum Beispiel das Prüfen der
zu synchronisierenden Anwendungen auf einer Benutzeroberfläche), das
Abrufen eines Satzes von Standardanwendungen oder eine Software
zum dynamischen Auswählen
der zu synchronisierenden Anwendungen nötig ist. Nachdem die Liste
der zu synchronisierenden Anwendungen ermittelt wurde, startet der
Synchronisationsinitiatorprozess einen Synchronisationsverarbeitungsprozess
(503) (der in 7 genauer dargestellt ist) für jede in
der Liste aufgeführte
Anwendung. Die erste Aufgabe des Synchronisationsservers besteht
darin, die Synchronisationsannahmelogik (Bezugsnummer 305 in 3 und
genauer beschrieben in 6) zu starten.
-
6 zeigt
als Beispiel ein Merkmal der Synchronisationsannahmelogik des Synchronisationsservers.
Die dargestellte Synchronisationsannahmelogik kann die Form einer
Endlosschleife haben, in welcher der Synchronisationsserver ununterbrochen Synchronisationsanforderungen
von den tragbaren Einheiten (601) empfängt. Nach dem Empfangen einer
Synchronisationsanforderung kann die Synchronisationsannahmelogik
zuerst prüfen,
ob seine eigene Datenverarbeitungsauslastung die Kapazitätsgrenze
erreicht hat (602). Wenn dies der Fall ist, startet die
Synchronisationsannahmelogik die Lastausgleichseinheit (603),
um diese Anforderung an einen anderen Synchronisationsserver in
demselben Netz weiterzuleiten (dies ist in 13 genauer
dargestellt). Wenn der Synchronisationsserver nicht überlastet
ist, kann die Synchronisationsannahmelogik auf der Grundlage der
Kenndaten innerhalb der Anforderungsnachrichten, die von den anfordernden tragbaren
Einheiten empfangen wurden, eine herkömmliche Identitäts- und
Berechtigungsprüfung durchführen. Wenn
die Identitäts-
und Berechtigungsprüfung
erfolglos ist (z. B., wenn der Benutzer der tragbaren Einheit von
diesem Synchronisationsserver nicht erkannt wurde oder nicht zur
Synchronisation berechtigt ist), sendet der Synchronisationsserver
eine ablehnende Nachricht zurück
zur tragbaren Einheit (605), schließt die Verbindung (606)
und wartet weiter auf die nächste
Synchronisationsanforderung (601). Wenn die Identitäts- und
Berechtigungsprüfung
erfolgreich verläuft,
sendet der Synchronisationsserver eine Annahmenachricht an die anfordernde
tragbare Einheit zurück
(607). Im nächsten
Schritt startet der Synchronisationsserver die Synchronisationsverarbeitungslogik,
um diesen Synchronisationsprozess auszuführen (608).
-
Dem
Fachmann ist klar, dass der Prozess der Synchronisationsannahmelogik
vorzugsweise durch einen Parallelverarbeitungsansatz (Multithreading)
unter Verwendung der aktuellen Softwaretechnologie realisiert wird.
Das bedeutet, dass die Synchronisationsannahmelogik nach dem Empfangen einer
Anforderung von einer tragbaren Einheit (601) einen neuen
Verarbeitungsstrang zum Verarbeiten der restlichen Schritte (602 bis 608)
für diese
Anforderung startet. Die drei Pfeile von 603 bis 601,
von 606 bis 601 und von 608 bis 601 zeigen
einfach eine Beendigung dieses Verarbeitungsstrangs an. Dem Fachmann
ist klar, dass bei einem Betriebssystem ohne Unterstützung des
Multithreading unter dem Erzeugen eines neuen Verarbeitungsstrangs
(601) das Erzeugen eines neuen Prozesses zu verstehen ist. Die
Beendigung eines Verarbeitungsstrangs ist gleichbedeutend mit der
Beendigung eines Prozesses.
-
Gemäß 5 wird
durch die tragbaren Einheiten unmittelbar nach dem Empfangen der
Annahmenachricht vom Synchronisationsserver 305 die Synchronisations-Verarbeitungslogik
für jede
zu synchronisierende Anwendung gestartet (503). 7 zeigt
genauer ein Beispiel der Synchronisationsverarbeitungslogik (für eine Anwendung).
-
7 zeigt,
dass die Synchronisationsverarbeitungslogik für eine bestimmte Anwendung
zuerst dieser Anwendung zugehörige
Daten abruft (701). Hierzu gehören vor allem die ID des Kopie-Hostrechners, die
ID der Synchronisationslogik und die ID des Transformationscodes
für diese
Anwendung (701).
-
Als
Kopie-Hostrechner für
eine Anwendung dient eine Computereinheit, in der die Kopie dieser Anwendung
gespeichert ist. Hierfür
kann ein PC, ein Arbeitsplatzrechner, ein Server oder ein Großrechner verwendet
werden, der mit dem Netz verbunden sein muss. Die ID des Kopie-Hostrechners
kann die Netzadresse des Kopie-Hostrechners und den Speicherplatz
der Kopie dieser Anwendung innerhalb des Kopie-Hostrechners beinhalten.
Dem Fachmann ist klar, dass auf der Grundlage der aktuellen Internettechnologie
ein URL (Universal Resource Locator, Verweisadresse) eine geeignete
Möglichkeit
zum Realisieren der ID des Kopie-Hostrechners darstellt.
-
Die
Synchronisationslogik für
eine Anwendung, die vorzugsweise in Form eines ausführbaren Codes
realisiert ist, kann zum Auflösen
von Konflikten, zum Angeben einer Überschreibrichtung oder zum
Ergreifen bestimmter Maßnahmen
zum Erfüllen der
speziellen Anforderungen für
diese Anwendung verwendet werden. Zum Beispiel kann die Synchronisationslogik
für eine
Anwendung zur Kostenkontrolle festlegen, dass die tragbare Einheit
stets bestimmte Datensätze
(zum Beispiel die Hotelkosten) des Kopie-Hostrechners (zum Beispiel eines betriebseigenen
Datenbankservers) überschreibt,
da die Datensätze
des Unternehmensservers Preisvorgaben darstellen, während die
Datensätze
der tragbaren Einheit die tatsächlichen
Rechnungsbeträge
wiedergeben. Die ID der Synchronisationslogik kann einen eindeutigen
Namen der Synchronisationslogik, die Netzadresse und den Speicherplatz
innerhalb dieser Adresse beinhalten, an der diese Synchronisationslogik
gespeichert ist. Dem Fachmann ist auch klar, dass unter Verwendung
der aktuell eingesetzten Internettechnologie eine URL auch hier
eine geeignete Möglichkeit
zum Realisieren der ID der Synchronisationslogik darstellt.
-
Der
Transformationscode für
eine bestimmte Kombination von tragbarer Einheit und Anwendung, der
vorzugsweise in Form eines ausführbaren
Codes realisiert wird, kann zum Filtern, Transformieren und Ändern von
Daten verwendet werden, sodass bestimmte Daten einfach in Datenverarbeitungseinheiten
verwendet und verarbeitet werden können, die sich durch unterschiedliche
CPU-Leistungen, Speicherkapazitäten
und physische Bauarten auszeichnen. Zum Beispiel kann eine Webseite
mit Bildern, die von einem Kopie-Hostrechner an einen Client gesendet
wird, mit einem Transformationscode bearbeitet werden, damit entweder
alle Bilder entfernt (Filterfunktion) oder auf eine sehr grobe Auflösung reduziert
werden (Transformationsfunktion), sodass die Seite auf dem Bildschirm
des Client angezeigt werden kann, ohne zuviel Speicher zu verbrauchen.
Die ID des Transformationscodes für eine Anwendung kann einen
eindeutigen Namen des Transformationscodes, die Netzadresse und
den Speicherplatz innerhalb dieser Adresse beinhalten, an der dieser
Transformationscode gespeichert ist. Auch hier ist dem Fachmann
klar, dass unter Verwendung der aktuellen Internettechnologie eine
URL eine geeignete Möglichkeit
zum Realisieren der ID des Transformationscodes darstellt.
-
Gemäß einem
weiteren Merkmal der vorliegenden Erfindung sind die drei oben erwähnten IDs für jede Anwendung
voreingestellt und in den tragbaren Einheiten oder in einem Verzeichnisdienst
für den Benutzer
dieser tragbaren Einheit gespeichert. Wenn diese IDs für die Anwendung
in der tragbaren Einheit gespeichert sind, sendet die Synchronisationsverarbeitungslogik
die Synchronisationskennung, die vorzugsweise den Namen der zu synchronisierenden Anwendung
zusammen mit den drei IDs beinhaltet, an den Synchronisationsserver
(701) und tritt dann in eine Schleife (702) ein.
Wenn diese IDs mittels eines Verzeichnisdienstes gespeichert sind,
sendet die Synchronisationsverarbeitungslogik die Synchronisationskennung,
welche die Kennung des Benutzers, der Einheit, der Anwendung und
die Adresse des Verzeichnisservers (mit dessen Hilfe der Synchronisationsserver
auf den Verzeichnisdienst zugreift) beinhaltet, an den Synchronisationsserver
(701).
-
Dem
Fachmann ist klar, dass keine der drei IDs gesendet werden muss,
sondern stattdessen Standardeinstellungen verwendet werden können. Wenn
zum Beispiel eine tragbare Einheit bei einem Synchronisationsserver
eine zu synchronisierende Standardanwendung einstellt, braucht dieser
Synchronisationsserver während
der Synchronisation für diese
tragbare Einheit den Namen der zu synchronisierenden Anwendung nicht
abzurufen.
-
Das
Fehlen des Namens einer Anwendung zeigt in diesem Fall an, dass
die Standardanwendung synchronisiert werden soll.
-
Desgleichen
kann der Benutzer einer tragbaren Einheit bei einem Synchronisationsserver
auch einen Standard-Kopie-Hostrechner
oder eine Standardeinheit einstellen. In diesen Fällen braucht
der Synchronisationsserver diese Angaben nicht von der tragbaren
Einheit oder vom Verzeichnis abzurufen. Stattdessen kann er seine
Standardvoreinstellung für diese
tragbare Einheit verwenden, um diese Angaben zu gewinnen.
-
Obwohl
bei der obigen Beschreibung davon ausgegangen wurde, dass die ID
nicht nur Angaben über
den Kopie-Hostrechner, die Synchronisationslogik oder den Transformationscode,
sondern auch eine Netzadresse und den genauen Namen und den Speicherort
mit der entsprechenden Adresse enthält, wird bei einer alternativen
Ausführungsform
für eine ID
die Angabe der entsprechenden Netzadresse nicht benötigt. In
diesem Fall hat der Synchronisationsserver die genaue Netzadresse
einer bestimmten ID auf der Grundlage des in dieser ID enthaltenen Namens
herauszufinden. Ein Beispiel hierfür könnte darin bestehen, dass eine
tragbare Einheit eine Synchronisationsanforderung für eine Anwendung
eine Synchronisationsanforderung erstellt, bei der die ID für den Transformationscode
keine Netzadresse des für
diese Einheit geeigneten Transformationscodes beinhaltet. Nach dem
Empfangen der ID des Transformationscodes ermittelt der Synchronisationsserver
auf der Grundlage des Gerätetyps,
von dem die Synchronisationsanforderung stammt, den richtigen Netzstandort,
an welchem sich der geeignete Transformationscode befindet.
-
Innerhalb
der Schleife (702) von 7 wartet
die Verarbeitungslogik zuerst auf einen Anruf vom Synchronisationsserver
(702) über
die API (Application Program Interface, Schnittstelle für die Programmierung
von Anwendungsprogrammen). Wenn aus dem Anruf vom Synchronisationsserver
hervorgeht, dass der Synchronisationsprozess für diese Anwendung abgeschlossen
ist, beendet die Verarbeitungslogik ihre Arbeit und kehrt zum Synchronisationsinitiator
zurück,
um die nächste
zu synchronisierende Anwendung zu verarbeiten. Wenn es sich bei
dem API-Anruf um eine Datenverarbeitungsfunktion (zum Beispiel das Öffnen einer
Datenbank, das Lesen eines Datensatzes usw.) handelt, startet die
Verarbeitungslogik die Datenverarbeitungseinheit, um diese API zu
verarbeiten (703) (die in 11 genauer
beschrieben wird).
-
Die
Synchronisationsannahmelogik (6) im Synchronisationsserver
kann nach Beendigung der Identitäts- und Berechtigungsprüfung und
Annahme der Synchronisationsanforderung eine Annahmenachricht an
die anfordernde tragbare Einheit (Bezugsnummer 607 in 6)
senden und dann die Verarbeitungslogik (Bezugsnummer 608 in 6)
des Synchronisationsservers starten, um die Synchronisation durchzuführen.
-
8 zeigt
ein Beispiel einer detaillierten Darstellung eines Synchronisationsverarbeitungslogik
des Proxy-Servers. Aus der Figur geht hervor, dass die Synchronisationsverarbeitungslogik
des Proxy-Servers zuerst den Namen der zu synchronisierenden Anwendung
und die drei IDs für
den Kopie-Hostrechner, die Synchronisationslogik bzw. den Transformationscode
von der anfordernden tragbaren Einheit empfangen kann (801).
Die Daten können direkt
von der tragbaren Einheit, welche die Synchronisationsanforderung
stellt, oder in der oben beschriebenen Weise über einen Verzeichnisdienst empfangen
werden. Wenn keine weiteren Anwendungen synchronisiert werden müssen, kann
die tragbare Einheit dies anzeigen, indem sie eine Beendigungsnachricht
sendet. Wenn anstelle der drei oben erwähnten IDs eine solche Beendigungsnachricht
empfangen wird, beendet die Synchronisationsverarbeitungslogik den
Synchronisationsprozess. Ansonsten kann die Synchronisationsverarbeitungslogik
die Cachespeicher- Verwaltungseinheit
auffordern, auf der Grundlage der ID der Synchronisationslogik die
Synchronisationslogik abzurufen (802). Ein Beispiel für die Cachespeicher-Verwaltung
wird in Verbindung mit 9 erörtert. Nachdem die Synchronisationslogik
abgerufen wurde, kann die Synchronisationsverarbeitungslogik auf
der Grundlage der ID des Kopie-Hostrechners eine Verbindung zur Kopie
dieser Anwendung einrichten (803). Sobald die Verbindung
eingerichtet wurde, kann die Synchronisationsverarbeitungslogik
mit der Ausführung
der Synchronisationslogik beginnen, um den Synchronisationsprozess
für diese
Anwendung auszuführen (804).
Ein Beispiel für
die Ausführung
der Synchronisationslogik wird unter Bezug auf 10 ausführlich erörtert.
-
9 zeigt
ein Beispiel einer vom Synchronisationsserver eingerichteten Cachespeicher-Verwaltungseinheit
zum Verwalten der Zwischenspeicherung im Cachespeicher und des Abrufens
von Objekten wie beispielsweise der Synchronisationslogik und der
Transformationscodes für
Anwendungen der tragbaren Einheit. Nach dem Empfangen einer Anforderung
nach einem Objekt (901) prüft die Cachespeicher-Verwaltungseinheit,
ob dieses Objekt im Cachespeicher vorhanden ist. Der Cachespeicher kann
sich entweder im Arbeitsspeicher (303) oder im Plattenspeicher
(302) befinden.
-
Wenn
das angeforderte Objekt nicht im Cachespeicher vorhanden ist, ruft
die Cachespeicher-Verwaltungseinheit dieses Objekt auf der Grundlage
der ID dieses Objekts aus dem Netz ab (902). Nachdem das
Objekt aus dem Netz abgerufen worden ist, wird es im Cachespeicher
zwischengespeichert (903) und an die anfordernde Einheit
zurückgesendet
(904). Wenn das Objekt im Cachespeicher gefunden wird,
prüft die
Cachespeicher- Verwaltungseinheit,
ob das im Cachespeicher befindliche Objekt noch auf dem neuesten
Stand ist. Wenn dies nicht der Fall ist, ruft die Cachespeicher-Verwaltungseinheit
dieses Objekt unter Verwendung seiner ID aus dem Netz ab (902).
Nachdem das aktuelle Objekt aus dem Netz abgerufen worden ist, ersetzt
es dessen ältere
Version im Cachespeicher (903) und wird an die anfordernde
Einheit zurück
gesendet (904). Wenn das Objekt bereits auf dem neuesten Stand
ist, wird es ebenfalls an die anfordernde Einheit zurückgesendet
(904).
-
Obwohl
die Prüfung
der aktuellsten Version des im Cachespeicher gespeicherten Objekts
kein Merkmal der vorliegenden Erfindung darstellt, ist dem Fachmann
klar, dass in das Merkmal der Cachespeicher-Verwaltungseinheit der
vorliegenden Erfindung viele solcher vorhandenen Techniken einbezogen
werden können.
Zum Beispiel kann eine Cachespeicher-Verwaltungseinheit eine Strategie
verfolgen, bei der kein Objekt als aktuell angesehen wird, das sich
länger
als eine bestimmte Zeitspanne im Cachespeicher befindet. Bei einem
weiteren Beispiel kann sich eine Cachespeicher-Verwaltungseinheit beim Anbieter eines
ursprünglichen
Objekts registrieren, sodass der Anbieter bei jeder Aktualisierung
eines ursprünglichen
Objekts (oder wenn ein Objekt erzeugt oder gelöscht wird) eine Nachricht über die Änderung
dieses Objekts an die Cachespeicher-Verwaltungseinheit senden kann.
Nach dem Empfangen einer solchen Nachricht kann die Cachespeicher-Verwaltungseinheit
dieses Objekt dann entweder aus dem Cachespeicher entfernen, es
als ungültig
kennzeichnen oder die aktuelle Version abrufen und die veraltete
Version im Cachespeicher durch diese ersetzen.
-
Ein
Beispiel für
die Ausführung
der Synchronisationslogik (804) durch das Merkmal der Synchronisationsverarbeitungslogik
des Proxy-Servers (8) der vorliegenden Erfindung
wird in 10 genauer dargestellt. Aus
der Figur ist zu ersehen, dass die Synchronisationslogik das Lesen
von Daten von und das Schreiben von Daten sowohl in die tragbare
Einheit (1003), welche die Synchronisationsanforderung
stellt, als auch in den Kopie-Hostrechner (1004) beinhaltet,
welcher die Kopie der Anwendung dieser Synchronisationslogik für die anfordernde tragbare
Einheit verwaltet. Zwischen den Datenverwaltungssystemen in einer
tragbaren Einheit und dem im Kopie-Hostrechner dieser tragbaren
Einheit (z. B. zwischen PALM PILOTTM E-Mail
und Lotus NOTESTM eMail) eingerichteten
Datenverwaltungssystem können
zahlreiche Unterschiede bestehen. Beispielsweise können die
Datenformate unterschiedlich sein. Die Speicherkapazitäten der
tragbaren Einheit und des Kopie-Hostrechners können sich voneinander unterscheiden
(z. B. PALM PILOTTM im Vergleich mit einem
Arbeitsplatzrechner). Auch die Bildschirme der beiden können verschieden
sein (z. B. der niedrig auflösende
Bildschirm von PALM PILOTTM in schwarz-weiß gegenüber einem
hoch auflösenden PC-Monitor).
Die vorliegende Erfindung befasst sich mit der Notwendigkeit, Daten
von einer Seite (z. B. einem Arbeitsplatzrechner als Kopie-Hostrechner)
zur anderen Seite (z. B. dem PALM PILOTTM)
zu transformieren, indem sie den Transformationscode ausführt.
-
Während der
Ausführung
der Synchronisationslogik für
eine Anwendung (10) legt die Synchronisationslogik
für jedes
Datenobjekt dieser Anwendung in der tragbaren Einheit und im Kopie-Hostrechner
die Aktualisierungsrichtung fest. Zum Beispiel kann die Synchronisationslogik
für zwei
Datenobjekte aus der tragbaren Einheit bzw. dem Kopie-Hostrechner
mit derselben eindeutigen ID festlegen, dass das Datenobjekt aus
der tragbaren Einheit das Datenobjekt des Kopie-Hostrechners überschreibt
oder umgekehrt. Die Synchronisationslogik kann auch festlegen, dass
diese beiden Datenobjekte identisch sind und keine Daten transportiert
werden müssen.
Ferner kann die Synchronisationslogik erkennen, dass ein Konflikt
zwischen diesen beiden Objekten besteht (z. B., dass beide unabhängig voneinander
aktualisiert worden sind), und festlegen, dass jedes der Objekte
kopiert wird, aber seine eigene Version beibehält.
-
Bevor
bei dem Merkmal der Synchronisationsverarbeitungslogik des Proxy-Servers
der vorliegenden Erfindung ein Datenobjekt von einer Einheit in
eine andere geschrieben wird (z. B. vom Kopie-Hostrechner zur tragbaren
Einheit oder umgekehrt), prüft
die Synchronisationsverarbeitungslogik des Proxy-Servers, ob eine
Datentransformation anwendbar ist. Wenn dies der Fall ist, kann
die Synchronisationsverarbeitungslogik des Proxy-Servers den Transformationscode (der
durch die ID bezeichnet wird, die von der tragbaren Einheit gesendet
wurde, welche die Synchronisationsanforderung stellt) von der Cachespeicher-Verwaltungseinheit
anfordern (1002). Die Cachespeicher-Verwaltungseinheit kann die in 9 dargestellten
Prozeduren abarbeiten, um das angeforderte Objekt zur Verfügung zu
stellen. Sobald der Transformationscode für die zu synchronisierende
Anwendung zur Verfügung
steht, führt
die Synchronisationsverarbeitungslogik Proxy-Servers den Code für das in
die Einheit zu schreibende Datenobjekt aus (1003).
-
11 zeigt
ein Beispiel für
eine Logik einer Datenverwaltungseinheit (207) oder eine Kopieverwaltungseinheit
(406). Die Synchronisationsverarbeitungslogik (306 und 8)
des Proxy-Servers
kann sich zum Lesen von Daten von (1103) und zum Schreiben
von Daten sowohl in (1104) die tragbaren Einheiten als
auch deren Kopie-Hostrechner über APIs
herkömmlicher
Techniken bedienen. Die Datenverwaltungseinheit (207) und
die Kopieverwaltungseinheit (406) sind dafür zuständig, die
vom Synchronisationsserver empfangenen API-Aufrufe auszuwerten und
die entsprechenden Daten- oder Kopieverwaltungsfunktionen auszuführen. Dem
Fachmann ist klar, dass es sich bei diesen API-Aufrufen um typische
Datenverwaltungsfunktionen wie beispielsweise das Lesen eines Datenobjekts
(1103), das Schreiben eines Datenobjekts (1104),
das Aktualisieren eines Datenobjekts (1105), das Löschen eines
Datenobjekts usw. handeln kann. Um die Synchronisation noch wirksamer
durchzuführen,
kann die Synchronisationslogik für
eine Anwendung so geschrieben werden, dass sie alle von den tragbaren
Einheiten und deren Kopie-Hostrechnern verfügbaren Versionsdaten und Daten
zu vorhergegangenen Aktualisierungen nutzen, um den Synchronisationsprozess zu
beschleunigen. Dem Fachmann ist klar, dass die oben erwähnten APIs
Funktionen beinhalten können, die
Versionsdaten und Daten zur vorhergegangenen Aktualisierungen von
den tragbaren Einheiten und den Kopie-Hostrechnern abrufen (1106)
und/oder einstellen (1106).
-
12 zeigt
ein Beispiel für
ein Merkmal der Kopieannahmelogik der vorliegenden Erfindung (405).
-
Die
Kopieannahmelogik kann in einer Prozessschleife bestehen, die zuerst
auf einen API-Aufruf wartet (1201). Wenn ein API-Aufruf vom Synchronisationsserver
ankommt, kann die Kopieannahmelogik einen Identitäts- und
Berechtigungsprüfprozess starten,
um die Identität
des anfordernden Synchronisationsservers zu prüfen (1202). Wenn die
Identität- und
Berechtigungsprüfung
erfolglos ist, weist die Kopieannahmelogik den API-Aufruf ab (1203).
-
Ansonsten
startet die Kopieannahmelogik die Kopieverwaltungseinheit (1202),
um die entsprechende Kopieverwaltungsfunktion auszuführen.
-
13 zeigt
ein Beispiel für
das Merkmal der Lastausgleichseinheit in einem Synchronisationsserver
der vorliegenden Erfindung (308). Wenn die Synchronisationsannahmelogik
des Proxy-Servers (6) eine Synchronisationsanforderung
empfängt und
erkennt, dass dieser Synchronisationsserver überlastet ist, kann sie die
Lastausgleichseinheit starten, um die betreffende Synchronisationsanforderung
an einen anderen Synchronisationsserver weiterzuleiten (603).
Nach dem Empfangen einer Anforderung zum Weiterleiten einer Synchronisationsanforderung
ermittelt die Lastausgleichseinheit, ob es in demselben Netz noch
einen anderen Synchronisationsserver gibt, der nicht überlastet
ist (1302). Wen ein solcher Synchronisationsserver gefunden wurde,
leitet die Lastausgleichseinheit die Synchronisationsanforderung
an diesen Synchronisationsserver weiter (1304). Wenn jeder
Synchronisationsserver in demselben Netz voll ausgelastet ist, weist
die Lastausgleichseinheit diese Synchronisationsanforderung ab (1303).
Dem Fachmann ist klar, dass die Lastausgleichseinheiten aller Synchronisationsserver
an einem Protokoll beteiligt sein können, um untereinander Auslastungsdaten
auszutauschen. Auf der Grundlage dieser Auslastungsdaten von anderen Synchronisationsservern
in demselben Netz kann eine Lastausgleichseinheit von einer Strategie
zum Auswählen
des zum Weiterleiten geeigneten Synchronisationsservers Gebrauch
machen (z. B. kann die Lastausgleichseinheit denjenigen Synchronisationsserver
auswählen,
der aktuell am geringsten ausgelastet ist), um die Auslastung im
gesamten Netz auszugleichen.
-
Die
Synchronisationsverarbeitungslogik des Proxy-Servers kann auch entscheiden,
dass eine Synchronisationsanforderung nicht nur aufgrund ihres Auslastungszustandes
gemäß (602)
weitergeleitet werden soll. In einem Netz mit mehreren Synchronisationsservern
kann jeder Synchronisationsserver auf die Datensynchronisation für eine bestimmte tragbare
Einheit oder für
ein bestimmtes Datenverwaltungssystem spezialisiert sein. Zum Beispiel
können
in einem Netz, das die Datensynchronisation für tragbare Einheiten wie einen
PALM PILOTTM und eine Einheit auf der Grundlage
von WINDOWS CETM unterstützt, zwei Synchronisationsserver
eingerichtet sein, wobei der Synchronisationsserver 1 auf die Datensynchronisation
für den
PALM PILOTTM und der Synchronisationsserver
2 auf die Datensynchronisation für
WINDOSW CETM spezialisiert ist. Bei einer solchen
Anordnung ist es wahrscheinlich, dass im Laufe der Zeit im Cachespeicher
des Synchronisationsservers 1 mehr Synchronisationslogiken und Transformationscodes
für PALM
PILOTTM-Einheiten und im Cachespeicher des
Synchronisationsservers 2 mehr Synchronisationslogiken und Transformationscodes
für WINDOWS
CETM-Einheiten zwischengespeichert werden.
So kann ein Synchronisationsserver beim Empfangen einer Synchronisationsanforderung
(601) nicht nur die Auslastung (602, sondern auch
den Gerätetyp
prüfen
und, wenn er nicht auf einen bestimmten Gerätetyp spezialisiert ist, die Anforderung
an den auf diesen Gerätetyp
spezialisierten Synchronisationsserver weiterleiten. Wenn zum Beispiel
der Synchronisationsserver 1 eine Synchronisationsanforderung von
einer WINDOWS CETM-Einheit empfängt, kann
er diese Anforderung an den Synchronisationsserver 2 weiterleiten,
der auf die Datensynchronisation für WINDOWS CETM spezialisiert
ist, von dem eher zu erwarten ist, dass in seinem Cachespeicher
die zum Ausführen
dieser Synchronisationsanforderung erforderliche Synchronisationslogik
und die Transformationscodes gespeichert sind.
-
Anstelle
eines oben beschriebenen voreingestellten Schemas mit verteilter
Spezialisierung können
sich die Synchronisationsserver untereinander die Situation in ihren
Cachespeichern dynamisch mitteilen, wie dies auch beim Auslastungszustand der
Fall ist, den auch alle Synchronisationsserver kennen. Auf diese
Weise kann jeder Synchronisationsserver eine Synchronisationsanforderung
dynamisch an einen anderen Synchronisationsserver weiterleiten,
bei dem die Situation des Cachespeichers zur Verarbeitung dieser
Anforderung günstiger
ist.
-
Eine
bevorzugte Ausführungsart
der vorliegenden Erfindung beinhaltet Merkmale, die in Form von
Software realisiert werden können,
die konkret in einem Computerprogrammprodukt oder einer Programmspeichereinrichtung
zum Ausführen
in einer CPU (201, 301) installiert werden kann,
mit der der Client (101, 102) und der Server (105 bis 107)
ausgestattet sind. Zum Beispiel gestattet eine Software, die in
Form eines allgemein bekannten, auf einem Computer ausführbaren
objektorientierten Code wie beispielsweise JAVATM von
Sun realisiert ist, die Übertragbarkeit
auf verschiedene Plattformen. Dem Fachmann ist klar, dass auch andere
prozedurorientierte und objektorientierte (OO) Programmierumgebungen,
darunter C++ und Smalltalk, verwendet werden können.
-
Dem
Fachmann ist auch klar, dass Verfahren der vorliegenden Erfindung
in Form von Software zur Ausführung
auf einem Computer oder einer anderen mit einem Prozessor ausgestatteten
Einrichtung realisiert werden können.
Die Software kann auf einer magnetischen, elektrischen, optischen
oder einer anderen permanenten Programm- und/oder Datenspeichereinrichtung
realisiert werden, darunter: Magnetplatten; DASD; Blasenspeicher;
Magnetband, optische Speicherplatten wie CD-ROMs und DVDs (digital video disks,
digitale Videoplatten); und andere permanente (auch als nichtflüchtig bezeichnete) Speichereinrichtungen
wie zum Beispiel Magnetkernspeicher, ROM, PROM, Flash-Speicher oder batteriegestützter RAM.
Dem Fachmann ist klar, dass direkt über die Speicherplatte (302),
den Massenspeicher (202), das Netz (108) oder
einen anderen Server auf eine oder mehrere der im Speicher (203)
des Client (101, 102) oder des Server (105 bis 107)
realisierten Komponenten zugegriffen werden kann und die Komponenten
verwaltet oder auf eine Vielzahl von Servern verteilt sein können.
-
Ein
Synchronisationsserver oder eine Synchronisationsserverlogik, ein
Prozess und eine Vorrichtung zum Verwenden einer Synchronisationslogik und/oder
von Transformationscodes, die in einem Netz verteilt sind, dienen
zur besseren Skalierbarkeit und zur besseren Verwaltung der Synchronisation zwischen
einem Client wie beispielsweise einer Internetvorrichtung; einer
tragbaren oder Palmtopeinheit; einem Smartphone oder einem intelligenten
Personenrufempfänger
einerseits und ihren fernen Kopiequellen andererseits. Ein Beispiel
für einen
adaptiven Synchronisationsserver zum Synchronisieren von Daten zwischen
einem Client und einem fernen Kopie-Hostrechner, in welchem eine
Kopie von Daten des Client gespeichert ist, beinhaltet eine Synchronisationsannahmelogik
zum Kennzeichnen eines Kopie-Hostrechners
und eine Synchronisationslogik, die je nach Anwendung für einen
dem Client und dem fernen Hostrechner zugehörigen Datentyp spezifisch ist;
wobei die Synchronisationslogik als Antwort auf eine Synchronisationsanforderung
entfernt vom Synchronisationsserver und vom fernen Hostrechner an einem
beliebigen Standort gesucht werden kann; und eine mit der Synchronisationsannahmelogik
verbundene Synchronisationsverarbeitungslogik zum Abrufen der fernen
Synchronisationslogik vom Netz, zum Einrichten einer Verbindung
zum fernen Hostrechner und zum Synchronisieren der Daten zwischen
dem Client und dem fernen Hostrechner unter Verwendung der abgerufenen
Synchronisationslogik. Die Synchronisationsanforderung kann auch
explizit (oder standardmäßig) den
Kopie-Hostrechner und die Synchronisationslogik kennzeichnen oder
eine Adresse eines Verzeichnisdienstes beinhalten, in welchem Daten
zum Kennzeichen des Kopie-Hostrechners und der Synchronisationslogik
gespeichert sind. Die Synchronisationsanforderung kann auch oder
alternativ Daten zum Kennzeichnen eines (lokalen oder fernen) einheitenspezifischen
Transformationscodes zum Umwandeln von Daten zwischen dem Client
und dem fernen Hostrechner während
der Synchronisation; sowie ein Mittel zum Abrufen des Transformationscodes
auf der Grundlage der Daten und zum Umwandeln der Daten zwischen
dem Client und dem fernen Hostrechner auf der Grundlage des einheitenspezifischen
Trans formationscodes beinhalten.