DE69938077T2 - Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver - Google Patents

Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver Download PDF

Info

Publication number
DE69938077T2
DE69938077T2 DE69938077T DE69938077T DE69938077T2 DE 69938077 T2 DE69938077 T2 DE 69938077T2 DE 69938077 T DE69938077 T DE 69938077T DE 69938077 T DE69938077 T DE 69938077T DE 69938077 T2 DE69938077 T2 DE 69938077T2
Authority
DE
Germany
Prior art keywords
synchronization
data
logic
client
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69938077T
Other languages
English (en)
Other versions
DE69938077D1 (de
Inventor
Yun Wu Winchester Huang
Philip Shi-Lung Winchester Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69938077D1 publication Critical patent/DE69938077D1/de
Application granted granted Critical
Publication of DE69938077T2 publication Critical patent/DE69938077T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Description

  • 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.

Claims (5)

  1. Synchronisationsserver (107) zum Synchronisieren von Daten zwischen einem Client (102) und einem fernen Kopie-Hostrechner (110), der eine Datenkopie des Client speichert, wobei der Synchronisationsserver folgendes umfasst: eine Synchronisationsempfangslogik (305) zum Empfangen einer Synchronisationsanforderung vom Client, wobei die Anforderung eine erste Kennung zum Kennzeichnen eines Kopie-Hostrechners, eine zweite Kennung zum Kennzeichnen einer Synchronisationslogik (120), die je nach Anwendung für einen dem Client und dem fernen Hostrechner zugehörigen Datentyp spezifisch ist, und eine dritte Kennung zum Kennzeichnen eines einheitenspezifischen Transformationscodes (130) beinhaltet, der zum Transformieren der Daten auf dem fernen Hostrechner in Daten des dem Client zugehörigen Gerätetyps dient; und eine mit der Synchronisationsempfangslogik verbundene Verarbeitungslogik (306) zum Abrufen der Synchronisationslogik vom Netzwerk, zum Abrufen des Transformationscodes vom Netzwerk, zum Herstellen einer Verbindung zum fernen Kopie-Hostrechner, zum Synchronisieren der Daten zwischen dem Client und dem fernen Kopie-Hostrechner unter Verwendung der abgerufenen Synchronisationslogik und zum Transformieren der Daten zwischen dem Client und dem fernen Kopie-Hostrechner auf der Grundlage des einheitenspezifischen Transformationscodes; wobei sich die Synchronisationslogik (120) und der Transformationscode (130) an voneinander getrennten Standorten befinden, sodass die Verarbeitungslogik diese unter Verwendung der entsprechenden Kennungen von verschiedenen Standorten abruft.
  2. Client-Einheit zum Herstellen einer Verbindung zum Synchronisationsserver nach Anspruch 1, wobei die Client-Einheit Folgendes umfasst: eine Zentraleinheit (Central Processing Unit, CPU); einen mit der CPU verbundenen Speicher, in welchem ein ausführbarer Code zur Ausführung in der CPU gespeichert ist, wobei der Code Folgendes umfasst: einen Synchronisationsinitiator (205) zum Senden der in Anspruch 1 beschriebenen Synchronisationsanforderung an den Synchronisationsserver nach Anspruch 1.
  3. Client nach Anspruch 2, wobei es sich bei dem Client um eine abschaltbare tragbare Einheit aus einer Gruppe handelt, zu der ein tragbarer Computer, ein intelligentes Telefon (Smartphone) oder ein intelligenter Personenrufempfänger (pager) gehört, der ein Mittel zum Herstellen einer Verbindung zum Netzwerk umfasst.
  4. Verfahren in einem Synchronisationsserver zum adaptiven Synchronisieren von Daten zwischen einem Client und einem fernen Kopie-Hostrechner, der eine Datenkopie des Client speichert, wobei das Verfahren die folgenden Schritte umfasst: Empfangen einer Synchronisationsanforderung vom Client, wobei die Anforderung eine erste Kennung zum Kennzeichnen eines Kopie-Hostrechners, eine zweite Kennung zum Kennzeichnen einer Synchronisationslogik (120), die je nach Anwendung für einen dem Client und dem fernen Hostrechner zugehörigen Datentyp spezifisch ist, und eine dritte Kennung zum Kennzeichnen eines einheitenspezifischen Transformationscodes (130) beinhaltet, der zum Transformieren der Daten auf dem fernen Hostrechner in Daten des dem Client zugehörigen Gerätetyps dient; Abrufen der Synchronisationslogik vom Netzwerk; Abrufen des Transformationscodes vom Netzwerk; Herstellen einer Verbindung zum fernen Kopie-Hostrechner; Synchronisieren der Daten zwischen dem Client und dem fernen Kopie-Hostrechner unter Verwendung der abgerufenen Synchronisationslogik; und Transformieren der Daten zwischen dem Client und dem fernen Kopie-Hostrechners auf der Grundlage des einheitenspezifischen Transformationscodes; wobei sich die Synchronisationslogik (120) und der Transformationscode (130) an voneinander getrennten Standorten befinden, sodass die Verarbeitungslogik diese unter Verwendung der entsprechenden Kennungen von verschiedenen Standorten abruft.
  5. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahren nach Anspruch 4 umfasst, wenn das Computerprogramm in einem Computersystem ausgeführt wird.
DE69938077T 1998-10-23 1999-09-23 Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver Expired - Lifetime DE69938077T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US178100 1998-10-23
US09/178,100 US6477543B1 (en) 1998-10-23 1998-10-23 Method, apparatus and program storage device for a client and adaptive synchronization and transformation server

Publications (2)

Publication Number Publication Date
DE69938077D1 DE69938077D1 (de) 2008-03-20
DE69938077T2 true DE69938077T2 (de) 2009-01-22

Family

ID=22651194

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69938077T Expired - Lifetime DE69938077T2 (de) 1998-10-23 1999-09-23 Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver

Country Status (9)

Country Link
US (1) US6477543B1 (de)
EP (1) EP1014266B1 (de)
JP (1) JP3574017B2 (de)
KR (1) KR100343823B1 (de)
CN (1) CN1210656C (de)
AT (1) ATE385330T1 (de)
DE (1) DE69938077T2 (de)
ES (1) ES2297914T3 (de)
TW (1) TW474077B (de)

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778260B2 (en) 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
WO2000069111A2 (en) * 1999-05-10 2000-11-16 Rienzo Andrew L Di Authentication
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
JP3963417B2 (ja) * 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US6671715B1 (en) * 2000-01-21 2003-12-30 Microstrategy, Inc. System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device
US6435164B1 (en) 2000-12-07 2002-08-20 Ford Global Technologies, Inc. Fuel weathering method for vehicle evaporative emission system
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US8370435B1 (en) 2000-01-31 2013-02-05 Telecommunication Systems, Inc. System and method for servers to send alerts to connectionless devices
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
US6671700B1 (en) * 2000-05-23 2003-12-30 Palm Source, Inc. Method and apparatus for parallel execution of conduits during simultaneous synchronization of databases
US6785868B1 (en) * 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
US7644125B2 (en) * 2000-09-11 2010-01-05 Ianywhere Solutions, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
EP1187023B1 (de) * 2000-09-12 2010-02-10 Motorola, Inc. Ad hoc Telekommunikationsnetzwerkverwaltung und Vermittlung
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US6856999B2 (en) * 2000-10-02 2005-02-15 Microsoft Corporation Synchronizing a store with write generations
KR20020033275A (ko) * 2000-10-30 2002-05-06 정정호 로컬 단말기와 서버간에 데이터 파일을 동기화시키는동기화 푸시 서비스 방법 및 시스템
US7363388B2 (en) * 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
TWI220199B (en) * 2001-03-30 2004-08-11 Compal Electronics Inc Personal data assistant (PDA) using a remote server to process
US7613834B1 (en) * 2001-04-04 2009-11-03 Palmsource Inc. One-to-many device synchronization using downloaded/shared client software
US20030069848A1 (en) * 2001-04-06 2003-04-10 Larson Daniel S. A User interface for computer network management
US7587669B2 (en) * 2001-04-09 2009-09-08 Aol Llc Server-based browser system
US7499948B2 (en) 2001-04-16 2009-03-03 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
DE10118827A1 (de) * 2001-04-17 2002-10-31 Bucko Software Gmbh Verfahren zum automatischen Abgleich einer Datenmenge sowie Versandlogistiksystem
US6981062B2 (en) * 2001-04-20 2005-12-27 Sbc Technology Resources, Inc. World wide web content synchronization between wireless devices
US20020169863A1 (en) * 2001-05-08 2002-11-14 Robert Beckwith Multi-client to multi-server simulation environment control system (JULEP)
US7392546B2 (en) 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US6883036B1 (en) * 2001-06-25 2005-04-19 Bellsouth Intellectual Property Corporation System and method for managing network directories
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US20030014672A1 (en) * 2001-07-13 2003-01-16 Meera Desikamani Authentication protocol with dynamic secret
US7725584B1 (en) 2001-07-30 2010-05-25 Western Digital Ventures, Inc. Using multiple communication channels to synchronize a mobile terminal based on data type
US7275116B1 (en) 2001-07-30 2007-09-25 Western Digital Ventures, Inc. Mobile terminal synchronizing components of a document separately
US7596565B2 (en) * 2001-08-07 2009-09-29 Good Technology System and method for maintaining wireless file folders at a wireless device
US7743119B2 (en) * 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US20030033351A1 (en) * 2001-08-10 2003-02-13 Aleta Ricciardi Group proxy and method for grouping services in a distributed computing application
US20030061106A1 (en) * 2001-09-21 2003-03-27 Sunday Orhomuru Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US7526575B2 (en) * 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
US7257649B2 (en) * 2001-09-28 2007-08-14 Siebel Systems, Inc. Method and system for transferring information during server synchronization with a computing device
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
US8046343B2 (en) * 2001-09-29 2011-10-25 Siebel Systems, Inc. Computing system and method for automatic completion of pick field
WO2003036521A1 (en) * 2001-10-24 2003-05-01 Bea Systems, Inc. Data synchronization
US7149805B2 (en) * 2001-10-31 2006-12-12 Hewlett-Packard Development, L.P. Wireless trusted point of access to a computer network
FI112015B (fi) 2001-11-12 2003-10-15 Nokia Corp Datan synkronoinnin järjestäminen tietoliikennejärjestelmässä
US7350226B2 (en) 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US8799464B2 (en) * 2001-12-28 2014-08-05 Motorola Mobility Llc Multi-modal communication using a session specific proxy server
KR20030068624A (ko) * 2002-02-15 2003-08-25 홍정기 인터넷망을 기반으로 하는 클라이언트 정보 동기화 방법
JP3585468B2 (ja) * 2002-02-28 2004-11-04 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置、プログラム及びゲーム装置の制御方法
US20080228904A1 (en) * 2002-03-20 2008-09-18 Daniel Crespo-Dubie Home Gateway Architecture and State Based Distributed System and Method
US7783593B2 (en) * 2002-04-04 2010-08-24 Verizon Business Global Llc Method, device and computer program product including a lightweight directory access protocol client
US20030191750A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, system and computer program product for lightweight directory access protocol applications
US20030191748A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, device and computer program product including a lightweight directory access protocol client architecture
US7620811B2 (en) * 2002-04-23 2009-11-17 Panasonic Corporation Server device and program management system
US7447799B2 (en) 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US7725560B2 (en) * 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
GB2392800A (en) * 2002-09-04 2004-03-10 Matchtip Ltd Backup system for data stored in remote data storage systems
US7831734B2 (en) * 2002-11-25 2010-11-09 Sap Ag Method and system for remote configuration of network devices
DE60221673T2 (de) * 2002-11-25 2008-04-30 T-Mobile Deutschland Gmbh Verfahren und System zur Vereinfachung des Zugriffs auf ein Email-Konto über ein Mobilfunknetz
US7035879B2 (en) * 2002-12-26 2006-04-25 Hon Hai Precision Ind. Co., Ltd. System and method for synchronizing data of wireless devices
US7243158B1 (en) * 2003-01-28 2007-07-10 Thomas Gutchigian Method, system and computer program for identification of data and translation of data between storage locations
US20050021371A1 (en) * 2003-01-31 2005-01-27 Basone Michael A. System for facilitating weight control incorporating hand-held computing device
FR2850814A1 (fr) * 2003-02-03 2004-08-06 France Telecom Systeme et procede de synchronisation de donnees entre des portails de services et plate-forme d'acces a des services utilisant un tel systeme de synchronisation
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7483904B2 (en) 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7415478B2 (en) 2003-02-20 2008-08-19 Bea Systems, Inc. Virtual repository complex content model
US20040167880A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for searching a virtual repository content
US7562298B2 (en) 2003-02-20 2009-07-14 Bea Systems, Inc. Virtual content repository browser
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US20040172622A1 (en) * 2003-02-28 2004-09-02 Nokia Inc. Systems, methods and computer program products for performing a task in a software application
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US7562353B2 (en) * 2003-05-16 2009-07-14 Hewlett-Packard Development Company, L.P. Methods and systems for transforming Java applications of behalf of another device
US8161116B2 (en) * 2003-05-23 2012-04-17 Kirusa, Inc. Method and system for communicating a data file over a network
US7370051B2 (en) * 2003-06-24 2008-05-06 Microsoft Corporation Database driven type extensibility
US20050010646A1 (en) * 2003-07-08 2005-01-13 Toshio Shiina E-mail management server, attachment file output system, attachment file output method, recording medium, and program data signal
US7636776B2 (en) * 2003-07-31 2009-12-22 Microsoft Corporation Systems and methods for synchronizing with multiple data stores
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US20050097186A1 (en) * 2003-10-08 2005-05-05 International Business Machines Corporation Method, system, and computer program product for managing interaction between remote devices and server resources
US20070180127A1 (en) * 2003-11-11 2007-08-02 Nokia Corporation Preconfigured syncml profile categories
JP2005157712A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd リモートコピーネットワーク
US20050193326A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Tool for configuring available functions of an application
US20050192922A1 (en) * 2004-02-27 2005-09-01 Edlund Stefan B. Client-server computing system capable of validating cached data based on data transformation
US20060161778A1 (en) * 2004-03-29 2006-07-20 Nokia Corporation Distinguishing between devices of different types in a wireless local area network (WLAN)
US7774601B2 (en) * 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7236989B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US20050251503A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for content and schema versioning
US20050235279A1 (en) * 2004-04-14 2005-10-20 Heng-Chien Chen Method of updating software in a host-client network
US20050256906A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for portal and webserver administration-efficient updates
US20050256899A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. System and method for representing hierarchical data structures
US7761439B1 (en) * 2004-06-30 2010-07-20 Google Inc. Systems and methods for performing a directory search
US7558783B2 (en) * 2004-09-03 2009-07-07 Microsoft Corporation Conversion between application objects and smart client objects
US7506006B2 (en) * 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US20060075100A1 (en) * 2004-09-28 2006-04-06 Nokia Corporation System, device, software and method for providing enhanced UPnP support on devices
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
EP1667021A1 (de) * 2004-12-03 2006-06-07 Jerry Muse Woldeab Datensicherungsverfahren für ein Kommunikationsgerät
US7587596B2 (en) * 2005-02-24 2009-09-08 International Business Machines Corporation Method and apparatus for updating information stored in multiple information handling systems
CN100352231C (zh) * 2005-04-11 2007-11-28 深圳市天路软件开发有限公司 异地数据同步的传输方法及系统
US8128802B2 (en) * 2005-05-02 2012-03-06 Oji Paper Co., Ltd Analysis apparatus and analysis method for glycosylated hemoglobin
US7493351B2 (en) * 2005-05-05 2009-02-17 International Business Machines Corporation Rapid integration mechanism for directory based applications
US20060277282A1 (en) * 2005-06-02 2006-12-07 International Business Machines Corporation Federated scheduling method and system
US20070014243A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US20070033086A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation System and method for interacting with participants of a future event
US8473971B2 (en) 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
EP1770954A1 (de) * 2005-10-03 2007-04-04 Amadeus S.A.S. System und Verfahren zur Erhaltung der Cachekonsistenz in einem N-Schicht Softwaresystem für eine Schnittstelle zwischen grossen Datenbanken
US7844251B2 (en) * 2005-10-12 2010-11-30 Qualcomm Incorporated Peer-to-peer distributed backup system for mobile devices
US20070100843A1 (en) * 2005-10-20 2007-05-03 Chen Daniel Q System and method for mapping between different information management systems
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
US7464117B2 (en) * 2006-01-20 2008-12-09 Microsoft Corporation Using directory historical data to facilitate automated file updates
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8745106B2 (en) * 2006-08-30 2014-06-03 Red Hat, Inc. Numeric identifier assignment in a networked computer environment
US7886352B2 (en) * 2006-09-22 2011-02-08 Oracle International Corporation Interstitial pages
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US7627595B2 (en) * 2006-12-06 2009-12-01 Verizon Data Services Inc. Apparatus, method, and computer program product for synchronizing data sources
US8005903B2 (en) * 2006-12-13 2011-08-23 International Business Machines Corporation Method and apparatus for managing locally stored E-mail messages
JP4789819B2 (ja) * 2007-01-31 2011-10-12 株式会社日立製作所 アプリケーションとデータの管理方法、管理システム、それに用いられるシンクライアント端末、管理サーバ、および、リモート計算機
ES2330816B1 (es) * 2007-04-18 2010-09-27 Comercial De Canalizaciones Y Maquinaria, S.L. Sistema de proteccion antifuego.
US8060653B2 (en) * 2007-04-23 2011-11-15 Ianywhere Solutions, Inc. Background synchronization
US20080320453A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Type inference and late binding
US10671600B1 (en) 2007-07-24 2020-06-02 Avaya Inc. Communications-enabled dynamic social network routing utilizing presence
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US20090157615A1 (en) * 2007-12-18 2009-06-18 General Motors Corporation Synching online address book sources for a vehicle user
US8274935B2 (en) * 2008-02-11 2012-09-25 Amdocs Software Systems Limited Mobile communication device notifier
US7991740B2 (en) 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US7747784B2 (en) 2008-03-04 2010-06-29 Apple Inc. Data synchronization protocol
US20090228542A1 (en) * 2008-03-06 2009-09-10 Microsoft Corporation Occasionally-connected support through off-line service-supplied proxies
US8112537B2 (en) * 2008-09-29 2012-02-07 Apple Inc. Trickle sync protocol
US8572591B2 (en) * 2010-06-15 2013-10-29 Microsoft Corporation Dynamic adaptive programming
KR101824647B1 (ko) * 2010-10-12 2018-02-02 삼성전자주식회사 디바이스간 동기화 방법, 유저 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
US9146936B2 (en) 2011-01-24 2015-09-29 Cox Communications, Inc. Systems and methods for automatically synchronizing data using a mobile communications device
KR101249719B1 (ko) * 2011-05-04 2013-04-03 주식회사 인프라웨어테크놀러지 어플리케이션 클론 실행 방법, 컴퓨터로 판독가능한 기록매체, 및 이를 지원하는 클론단말
US9256401B2 (en) 2011-05-31 2016-02-09 Microsoft Technology Licensing, Llc Editor visualization of symbolic relationships
JP5817348B2 (ja) 2011-08-31 2015-11-18 富士通株式会社 ファイル同期方法、ファイル同期サーバ装置及びファイル同期プログラム
CN102999491B (zh) * 2011-09-08 2018-02-23 百度在线网络技术(北京)有限公司 一种用于实现用户设备间浏览器操作同步的方法与设备
US9160697B2 (en) 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
CN107818516B (zh) 2012-06-06 2021-10-19 华为终端有限公司 应用程序的管理方法及终端
CN103905498B (zh) * 2012-12-27 2018-05-18 鼎捷软件股份有限公司 服务信息管理方法及服务信息管理系统
CN103747008A (zh) * 2014-01-22 2014-04-23 李南南 一种具有加密功能的互联网存储设备及其技术
WO2016070374A1 (zh) * 2014-11-06 2016-05-12 北京安奇智联科技有限公司 移动终端和web终端之间互连及同步通讯信息的方法
US20170178246A1 (en) * 2015-12-17 2017-06-22 SpringAhead, Inc. Dynamic data normalization and duplicate analysis
CA3159276A1 (en) * 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Point-to-point database synchronization over a transport protocol
CN110413418B (zh) * 2019-06-25 2022-04-05 北京三快在线科技有限公司 缓存同步装置及方法,缓存同步系统、电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
EP0839353B1 (de) * 1995-07-20 2001-09-26 Novell, Inc. Transaktionssynchronisierung in einem netz abtrennbarer rechner
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5884324A (en) * 1996-07-23 1999-03-16 International Business Machines Corporation Agent for replicating data based on a client defined replication period
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
CN1141846C (zh) * 1997-05-09 2004-03-10 美国阿尔卡塔尔资源有限合伙公司 服务控制点的数据库迁移

Also Published As

Publication number Publication date
DE69938077D1 (de) 2008-03-20
JP3574017B2 (ja) 2004-10-06
KR100343823B1 (ko) 2002-07-19
US6477543B1 (en) 2002-11-05
TW474077B (en) 2002-01-21
JP2000132444A (ja) 2000-05-12
EP1014266B1 (de) 2008-01-30
KR20000028677A (ko) 2000-05-25
ATE385330T1 (de) 2008-02-15
ES2297914T3 (es) 2008-05-01
CN1252565A (zh) 2000-05-10
CN1210656C (zh) 2005-07-13
EP1014266A3 (de) 2007-04-11
EP1014266A2 (de) 2000-06-28

Similar Documents

Publication Publication Date Title
DE69938077T2 (de) Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver
DE3689664T2 (de) Verfahren und Gerät zur Verwaltung von veralteten Datenobjekten.
DE60213419T2 (de) Client-server-modell zur synchronisation von dateien
DE69907631T2 (de) Netzzugang zu inhaltsadressierbaren daten
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE10003907B4 (de) Verfahren, Vorrichtung und Datenverarbeitungsprogramm für die Anwendung beim Zugriff auf Hypertext-Dokumente
DE69834640T2 (de) System und Verfahren zur Synchronisierung elektronischer Nachrichten über ein Netzwerk
DE102008015662B4 (de) Beseitigung von Daten
DE60204729T2 (de) Objektenlöschen von einem Vorrichtungspeicher
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE60315558T2 (de) Verteiltes Rechnersystem für Vorrichtungsresourcen basierend auf Identität
DE60125599T2 (de) Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE60004537T2 (de) In einer relationalen datenbank integriertes contextbasiertes system zur veröffentlichung und abonnierung
DE60222924T2 (de) Verfahren zum replizieren von daten zwischen rechnergeräten
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE69834579T2 (de) Http- sitzung- überwachung
DE69126223T2 (de) System zur Erstellung eines Übertragungsweges in einem eng gekoppelten Rechnersystem
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
US7610304B2 (en) Techniques for performing file operations involving a link at a database management system
DE112011104787B4 (de) Nutzung von Inhalten über persönliche Clouds
DE102014214641A1 (de) Informationsverarbeitungsvorrichtung, Verfahren zur Steuerung der Vorrichtung und Speichermedium
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
CN111062684B (zh) 云流程平台下实现业务数据与流程数据一致性处理的系统及其方法

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: HUANG, YUN WU, WINCHESTER, HAMPSHIRE, GB

Inventor name: YU, PHILIP SHI-LUNG, WINCHESTER, HAMPSHIRE, GB

8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)