DE60203550T2 - Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen - Google Patents

Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen Download PDF

Info

Publication number
DE60203550T2
DE60203550T2 DE60203550T DE60203550T DE60203550T2 DE 60203550 T2 DE60203550 T2 DE 60203550T2 DE 60203550 T DE60203550 T DE 60203550T DE 60203550 T DE60203550 T DE 60203550T DE 60203550 T2 DE60203550 T2 DE 60203550T2
Authority
DE
Germany
Prior art keywords
message
data
tokens
clients
changes
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
DE60203550T
Other languages
English (en)
Other versions
DE60203550D1 (de
Inventor
Donald J. Bothell Kadyk
Neil S. Bothell Fishman
Marc E. Kenmore Seinfield
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE60203550D1 publication Critical patent/DE60203550D1/de
Application granted granted Critical
Publication of DE60203550T2 publication Critical patent/DE60203550T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/912Applications of a database
    • Y10S707/922Communications
    • 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
    • Y10S707/99953Recoverability
    • 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
    • Y10S707/99954Version management
    • 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
    • Y10S707/99955Archiving or backup

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Sachgebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Synchronisieren von Daten. Insbesondere bezieht sich die vorliegende Erfindung auf Verfahren, Systeme und Computerprogramm-Produkte zum Synchronisieren von Daten, gespeichert an einem oder mehreren. Nachrichten-Client, mit Daten, gespeichert an einem Nachrichten-Server, wo die Clients Aktualisierungs-Hinweise empfangen können und die Daten unter Verwendung von unterschiedlichen Daten-Strukturen darstellen können, als sie der Nachrichten-Server verwendet, um dieselben Daten darzustellen.
  • 2. Hintergrund und Stand der Technik
  • Es ist eine Vielzahl von Umständen vorhanden, bei denen es erwünscht ist, dieselben Daten an unterschiedlichen Stellen beizubehalten. Ein Synchronisieren von Daten ist der Vorgang eines Reflektierens in einer Kopie der Daten von Änderungen, die an anderer Stelle vorgenommen sind. In Abhängigkeit von den Erfordernissen einer bestimmten Anwendung kann eine Synchronisierung nahezu augenblicklich sein oder kann relativ sporadisch sein. Während der Zeit, die zwischen Daten-Synchronisierungen abläuft, wird eine Kopie von Daten, die nicht aktualisiert worden ist, als „abgestanden" („stale") bezeichnet.
  • Eine zunehmend populärere Anwendung zum Beibehalten von zwei Kopien derselben Daten ist die Verwendung von Personal Digital Assistant („PDAs"). PDAs speichern verschiedene Typen von Informationen, einschließlich von Aufgaben, Kalender, Kontakt, E-Mail, Musik, Karten, Finanz- und Sport-Daten. Kurz gesagt können PDAs virtuell irgendeinen Typ von elektronischen Informationen speichern. Die kompakte Größe von PDAs ermöglicht einem Benutzer die Bequemlichkeit, einen Zugriff auf eine große Menge an Informationen zu haben, ohne ein großes Teil wie einen tragbaren Computer oder einen Papier-Organizer, zu haben. In vielen Fällen bildet ein Host-Computer einen zentralisierten Datenspeicher für einen PDA, wobei der PDA und der Host-Computer jeweils separate Kopien der Daten speichern.
  • Es ist anzumerken, dass in dieser Beschreibung und in den Ansprüchen eine zweite Vorrichtung, die eine „Kopie" der Daten von der ersten Vorrichtung enthält, bedeutet, dass die zweite Vorrichtung den momentanen Zustand der Daten-Übertragung darstellt bzw. repräsentiert, so dass die zweite Vorrichtung in der Lage ist, die Daten, gespeichert an der ersten Vorrichtung, darzustellen, oder auswählt, darzustellen, was die Hardware- und Software-Fähigkeiten der zweiten Vorrichtung ergibt. Zum Beispiel können Datenformate, Darstellungen und unterstützte Felder von einer Vorrichtung zu einer anderen aufgrund entsprechender Unterschiede in der Anwendungs-Software, in den Betriebssystemen, in dem verfügbaren Speicher, in dem Prozessor-Typ, usw., variieren. Ein Grund, dass solche Unterschiede existieren, und wahrscheinlich sind, dass sie fortführen, ist ein Fehlen einer Standardisierung. Allerdings besitzt, für die Zwecke dieser Beschreibung, die zweite Vorrichtung eine „Kopie" der Daten an der ersten Vorrichtung, falls die zweite Vorrichtung den momentanen Zustand der Daten insoweit darstellt, als dass die zweite Vorrichtung entweder in der Lage ist oder auswählt, unter Berücksichtigung der Hardware- und Software-Unterschiede, die zwischen den Vorrichtungen existieren können.
  • Der zentralisierte Speicher des Hosts bietet eine Anzahl von Vorteilen. Zum Beispiel ermöglicht er verschiedenen Benutzern, Aufgaben, Kalender- und Kontakt-Daten gemeinsam zu teilen, und der Host kann als eine primäre Stelle zum Empfangen einer E-Mail dienen. Allerdings halten der PDA und der Host keinen offenen Kanal einer Kommunikation in einer typischen Operation bei. Als Folge werden Daten, gespeichert an entweder dem Host oder dem PDA, stabil, da Änderungen, vorgenommen in einer Vorrichtung, nicht in der anderen reflektiert werden können. Deshalb müssen die Host- und PDA-Daten periodisch aktualisiert werden, um sicherzustellen, dass jede Vorrichtung die momentanen Informationen enthält.
  • Dabei sind zwei Grundtypen von Daten-Aktualisierungen vorhanden: Anforderungs-Synchronisation und Aktualisierungs-Hinweis. Eine Anforderungs-Synchronisation ist eine explizierte Anforderung, um Daten zu synchronisieren. Allgemein ist eine Anforderungs-Synchronisation durch eine Zweiwege-Kommunikation zwischen den synchronisierenden Vorrichtungen charakterisiert. Während einer Anforderungs-Synchronisation tauschen die Vorrichtungen irgendwelche modifizierten Daten aus. Die Synchronisation ist abgeschlossen, wenn die Vorrichtungen zueinander bestätigen, dass sie alle Modifikationen empfangen haben, und dieselben Daten insoweit enthalten, dass die Vorrichtungen in der Lage sind, die Daten darzustellen, oder auszuwählen, sie darzustellen.
  • Im Gegensatz dazu sind Aktualisierungs-Hinweise Einwege-Kommunikationen, die einfach eine andere Vorrichtung über Daten-Änderungen informieren, wenn sie auftreten. Da sie Einwege-Kommunikationen einsetzen, können Aktualisierungs-Hinweise über einen unzuverlässigen Kommunikations-Kanal geführt werden, wogegen Anforderungs-Synchronisationen üblicherweise über einen zuverlässigen Kommunikations-Kanal durchgeführt werden. (Allgemein umfasst ein unzuverlässiger Kommunikations-Kanal keine Bestimmung, die einen Empfang von Daten bestätigt, wogegen ein zuverlässiger Kanal eine Bestätigung umfasst.)
  • Eine Anforderungs-Synchronisation umfasst gewöhnlich die folgenden Operationen. Sowohl der Host als auch der PDA verfolgen Änderungen in deren Daten, die seit der vorherigen Synchronisation aufgetreten sind. Dann werden, zu dem Zeitpunkt einer Synchronisation, nur die verfolgten Änderungen zwischen dem Host und dem PDA ausgetauscht. Falls dieselben Daten in beiden Vorrichtungen geändert worden sind, erkennt die Synchronisation einen potenziellen Konflikt und fordert den Benutzer auf, zu bestimmen, welche Änderung beibehalten werden sollte. Ohne einen Konflikt werden Änderungen automatisch vorgenommen, ohne den Benutzer hinzuweisen. Irgendwelche Änderungen, die während des Anforderungs-Synchronisations-Vorgangs vorgenommen sind, werden als Synchronisations-Änderungen verfolgt, so dass diese Änderungen nicht während einer darauf folgenden Anforderungs-Synchronisation ausgetauscht werden. Ansonsten würde ein PDA, der eine geänderte Telefonnummer von einem Host empfängt, die geänderte Telefonnummer zurück zu dem Host während der nächsten Synchronisation geben, sogar obwohl der PDA keine Änderung in Bezug auf die Telefonnummer vornahm, anders, als sie mit der Telefonnummer, gespeichert an dem Host, in Übereinstimmung zu bringen.
  • Ein Auflösen von Konflikten ohne eine Benutzer-Intervention erfordert eine relativ anspruchsvolle Verarbeitung, und, als eine Regel, wird der Benutzer für alle, auch die trivialsten Fälle, aufgefordert. Ein Grund, warum es schwierig sein kann, Konflikte automatisch aufzulösen, ist derjenige, wie vorstehend erwähnt ist, dass ein PDA Formate darstellen kann, oder Informationen speichern kann, unterschiedlich davon, wie die entsprechenden Informationen an dem Host gespeichert sind. Als eine Folge können sogar Daten; die die „selben" sind, unterschiedliche Informationen enthalten.
  • Ein Bereich eines neueren Fortschritts in der PDA-Technologie setzt ein häufigeres Aktualisieren eines PDA durch einen Aktualisierungs-Hinweis ein, um eine Daten- Abgestandenheit zu verringern. Zuvor mussten PDAs nur ein Kabel oder Infrarotverbindungen für eine Kommunikation mit einem Host enthalten, was erfordert, dass die zwei Vorrichtungen in relativ enger Nähe für sogar eine Anforderungs-Synchronisation stehen müssen. Terrestrische Luftwellen-Empfänger sind zu einigen neueren PDA-Modellen hinzugefügt worden, um den Bereich zu vergrößern, unter dem sie neue oder geänderte Daten von einem Host empfangen können. Der vergrößerte Bereich ermöglicht, dass sowohl ein Aktualisierungs-Hinweis als auch eine Anforderungs-Synchronisation auftreten, während ein PDA eine wesentliche Entfernung von einem Host angeordnet ist.
  • Ein Senden über wesentliche Entfernungen bringt eine bestimmte Unsicherheit mit sich, ob ein PDA einen Aktualisierungs-Hinweis empfangen wird oder nicht. Zum Beispiel kann ein PDA über den Sendebereich hinausgehen und demzufolge niemals den Aktualisierungs-Hinweis empfangen. Da die Kommunikations-Verbindungen für einen Aktualisierungs-Hinweis unzuverlässig sein können (im Gegensatz zu den zuverlässigen Verbindungen, die üblicherweise in einer Anforderungs-Synchronisation verwendet werden), verbleibt der Host nicht wissend über den nicht erfolgreichen Empfang des Aktualisierungs-Hinweises. Demzufolge ist sich der Host nicht bewusst, irgendeine korrigierende Maßnahme, wie beispielsweise erneutes Senden des Aktualisierungs-Hinweises, vorzunehmen.
  • Nach Verarbeiten eines Aktualisierungs-Hinweises kann es sein, dass beide Vorrichtungen unabhängig eine Änderung vorgenommen haben, da dieselbe Änderung unterschiedlich in Abhängigkeit davon erscheinen kann, wie die Vorrichtungen die Daten speichern. Demzufolge ist es wahrscheinlich, dass, während einer darauf folgenden Anforderungs-Synchronisation, der auftretende Konflikt wahrscheinlich erst eine Benutzer-Intervention erfordert, um ihn aufzulösen. Ein Benutzer muss die PDA- und Host-Daten vergleichen und bestätigen, dass sie tatsächlich dieselben Daten darstellen. Alternativ kann eine Anforderungs-Synchronisation nicht in der Lage sein, zu bestimmen, ob eine bestimmte Änderung empfangen wurde oder nicht, und, als eine Folge, ein Duplikat einer früheren Änderung schicken. Zum Beispiel kann ein neuer Kontakt einmal durch einen Aktualisierungs-Hinweis und das zweite Mal durch eine Anforderungs-Synchronisation hinzugefügt werden. Ein Auflösen von Duplikat-Änderungen erfordert auch eine Benutzer-Intervention. Allerdings mindert ein Erfordernis einer Benutzer-Intervention wesentlich die Vorteile, die durch einen Aktualisierungs-Hinweis gegeben sind. Es kann frustrierend und sehr zeitaufwändig für einen Benutzer sein, auch nur ein paar Vergleiche vorzunehmen oder ein paar Duplikat-Aufzeichnungen abzugleichen.
  • Wie durch die vorstehenden Beispiele dargestellt ist, besteht ein Erfordernis nach einer Synchronisations-Effektivität, wenn Aktualisierungs-Hinweise empfangen werden können und wenn eine Synchronisation zwischen Vorrichtungen, die dieselben Daten darstellen, unter Verwendung von unterschiedlichen Daten-Strukturen synchronisiert wird. Deshalb sind Verfahren, Systeme und Computerprogramm-Produkte erwünscht, die die Vorteile von Aktualisierungs-Hinweisen bieten und Unterschiede berücksichtigen, wie Informationen gespeichert sind, ohne dem Benutzer eine zusätzliche Belastung aufzuerlegen.
  • Die EP-A-1 049 006 beschreibt eine Technik zum Übertragen von elektronischen Nachrichten zu einem PDA. Die Übertragung umfasst einen Identifizierer, der für das Software-Modul eindeutig ist. Der Identifizierer einer entfernten Nachricht kann mit einer Liste von kürzlich empfangenen Identifizierern verglichen werden, und falls eine Anpassung vorgefunden wird, wird die Nachricht, die sich auf diesen Identifizierer bezieht, gelöscht. Die Nachricht kann in eine Vielzahl von Blöcken unterteilt werden und Informationen können an jeden Block angehängt werden, um eine Identifikation jedes Blocks und seiner korrekten Beziehung zu anderen Blöcken zu ermöglichen. Unter Verwendung zumindest der angehängten Informationen kann die Nachricht von den empfangenen Blöcken rekonstruiert werden. Typische Informationen, die zu der PDA geliefert werden sollen, ist ein Software-Upgrade für die Anwendungs-Software, oder ein Rekonfigurieren seiner Software in einer gewissen Art und Weise, ein Internet-Inhalt, wie beispielsweise Web-Seiten, E-Mail-Nachrichten, die Informationen enthalten, wie beispielsweise Börsen-Bewegungen und dergleichen. Jedes Modul enthält eine Identifikation, die dazu verwendet wird, dessen Funktionalität mit anderen Modulen zu verknüpfen.
  • Die EP-A-1 043 656 bezieht sich auf ein Verfahren und eine Vorrichtung zum Synchronisieren einer Firmware. Informationen, die sich auf eine Charakteristik der Firmware, zugeordnet zu der ersten Vorrichtung, beziehen, werden von der ersten Vorrichtung zu der zweiten Vorrichtung übertragen. Die Firmware-Informationen können eine Version einer bestimmten Software sein. Die Firmware-Informationen werden dann mit Informationen verglichen, die sich auf dieselbe Charakteristik beziehen, und eine neue oder unterschied liche Firmware wird der zweiten Vorrichtung zugeordnet, falls die Charakteristika nicht dieselben sind.
  • Die US 5,886,991 offenbart ein System und ein Verfahren zum schnellen Verteilen von Programm-Aktualisierungen in einem Verarbeitungssystem einer verteilten Architektur.
  • Die US 5,896,566 beschreibt ein Verfahren zum Anzeigen einer Verfügbarkeit einer aktualisierten Software zu tragbaren, drahtlosen Kommunikationseinheiten.
  • Die WO 00/54206 A2 beschreibt ein System, ein Verfahren und einen Artikel zum Herstellen einer dynamischen Konfiguration eines mobilen Kommunikations-Netzwerks.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist die Aufgabe der vorliegenden Erfindung, eine verbesserte Daten-Synchronisationstechnik zu schaffen, die die Probleme des Stands der Technik, wie sie vorstehend diskutiert sind, beseitigen kann.
  • Die Erfindung ist in den unabhängigen Ansprüchen beansprucht.
  • Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Die Erfindung ist auf Synchronisations-Kopien von Daten, gespeichert an zwei getrennten Vorrichtungen, gerichtet, durch Sicherstellen, dass (i) eine Anforderungs-Synchronisation nicht Änderungen dupliziert, die über einen Aktualisierungs-Hinweis empfangen sind; (ii) eine Anforderungs-Synchronisation eine Änderung liefert, falls ein Aktualisierungs-Hinweis nicht empfangen ist oder nur einen Teil der Änderung umfasst; und (iii) Änderungen ungeachtet davon identifiziert werden können, wie eine bestimmte Vorrichtung Daten speichert. Wie zuvor angeführt ist, können Daten-Aktualisierungen eine Anforderungs-Synchronisation (eine explizite Anforderung, um Daten zu synchronisieren, allgemein gekennzeichnet durch eine Zweiwege-Kommunikation, wo Vorrichtungen bestätigen, dass sie dieselben Daten enthalten), und einen Aktualisierungs-Hinweis (ein Informieren über Daten-Änderungen, wenn sie auftreten, was typischerweise eine Einwege-Kommunikation einsetzt) umfassen. Wenn „Synchronisation" und „Aktualisierung" in dem Rest dieser Unterlagen verwendet wird, sollten sie als allgemeine Ausdrücke gelesen werden, dahingehend, dass sie entweder eine Anforderungs-Synchronisation oder ein Aktualisierungs-Hinweis, oder beide, umfassen können.
  • Weiterhin sollte, ungeachtet irgendeiner früheren Zuordnung zwischen einem Anforderungs-Synchronisations- und einem zuverlässigen Kommunikations-Kanal und ir gendeiner früheren Zuordnung zwischen einem Aktualisierungs-Hinweis- und einem unzuverlässigen Kommunikations-Kanal, kein bestimmter Kommunikations-Kanal notwendigerweise zu der vorliegenden Erfindung zugerechnet werden, ohne dass dies so durch die Ansprüche gefordert wird. (Wie vorstehend angeführt ist, bezieht sich ein unzuverlässiger Kommunikations-Kanal auf einen Kanal, der keine Bestätigung von einer Bestimmung, die Daten empfängt, umfasst. Zum Beispiel fordern Rundfunk- oder Fernsehsender nicht Rundfunk- und Fernsehgeräte auf, zu bestätigen, dass sie eine Sendung empfangen. Im Gegensatz dazu umfassen zuverlässige Kanäle eine Bestätigung. Viele Telefon- und Computer-Kommunikations-Kanäle nehmen an, dass Daten verloren sind, falls keine Bestätigung empfangen ist, und senden erneut die verlorenen Daten.)
  • Die vorliegende Erfindung ordnet Token zu gespeicherten Daten zu, um so Änderungen abzustimmen, die in separaten „Kopien" derselben Daten auftreten. Wie vorstehend erwähnt ist, besitzt eine zweite Vorrichtung eine „Kopie" der Daten an einer ersten Vorrichtung, falls die zweite Vorrichtung den momentanen Zustand der Daten darstellt, insofern, als die zweite Vorrichtung freigegeben ist oder auswählt. Dies bedeutet, dass die Kopie ein identisches Replika der originalen Daten sein kann.
  • Die Token dienen zumindest zu zwei Zwecken: (1) sie identifizieren spezifische Daten, und (2) sie identifizieren eine bestimmte Version der spezifischen Daten. Es wird zum Beispiel ein individuelles Daten-Objekt in einer Kontakt-Datenbank betrachtet. Wenn Änderungen in Bezug auf das Daten-Objekt auftreten, kann eine Reihe von Token erzeugt werden, einer für jede Version von dem Daten-Objekt oder um dieses zu aktualisieren. Während alle der Token in der Reihe dasselbe Daten-Objekt identifizieren, identifiziert jeder individuelle Token eine unterschiedliche Version des Daten-Objekts. (Das bedeutet, dass die Daten, die ein Teil jedes Token identifizieren, dieselben sind, allerdings ist die Daten-Version jedes Tokens unterschiedlich.) Falls diese Änderungen über einen unzuverlässigen Kommunikations-Kanal synchronisiert werden, kann es auftreten, dass separate Änderungen in jeder Kopie der Daten vorgenommen worden sind, da unterschiedliche Vorrichtungen dieselben Daten unter Verwendung von unterschiedlichen Daten-Strukturen darstellen. Allerdings wird, unter Bezugnahme auf die Token, die die Änderungen, die in Rede stehen, identifizieren, eine Bestimmung, ob zwei ersichtlich unterschiedliche Änderungen tatsächlich dieselben Änderungen sind, stark vereinfacht, insbesondere in Syste men, bei denen unterschiedliche Vorrichtungen dieselben Daten unter Verwendung von unterschiedlichen Daten-Strukturen darstellen.
  • Zu Anfang enthalten eine Sendevorrichtung und eine Empfangsvorrichtung die „selben" Daten. Mit anderen Worten stellt die Empfangsvorrichtung den momentanen Zustand der Daten insofern da, als sie freigegeben bzw. in der Lage ist, oder auswählt. Für einen darauf folgenden Zeitpunkt werden die Daten, gespeichert in der Sendevorrichtung, in einer bestimmten Art und Weise modifiziert, und die sendende Vorrichtung erzeugt einen Token, der eindeutig die Änderung identifiziert. Der Token ist eindeutig für die Sendevorrichtung. Wenn einmal der Token erzeugt worden ist, erzeugt die Sendevorrichtung einen Hinweis, der sowohl die Änderung als auch den entsprechenden Token umfasst. Der Hinweis wird zu der Empfangsvorrichtung geschickt, um die Daten, gespeichert an der Empfangsvorrichtung, mit den Daten, gespeichert an der Sendevorrichtung, zu synchronisieren. (Der gesendete Token kann komprimiert werden, um seine Größe zu verringern. Obwohl der komprimierte Token nicht länger einzigartig für die Sendevorrichtung sein kann, ist er einzigartig für die Empfangsvorrichtung.)
  • Gelegentlich fordert die Empfangsvorrichtung eine Anforderungs-Synchronisation an, um sicherzustellen, dass sie alle Änderungen empfangen hat, die an der Sendevorrichtung aufgetreten sind. Um diese Prüfung vorzunehmen, führt die Empfangsvorrichtung einen Start-Token und alle die Token, die sie empfangen hat, zu der Sendevorrichtung zurück. (Falls die Token komprimiert wurden, müssen sie dekomprimiert werden.) Die Sendevorrichtung vergleicht dann die zurückgeführten Token mit den Token, die die Sendevorrichtung geschickt hat. Irgendwelche Token nach dem Start-Token, die nicht zu der Empfangsvorrichtung zurückgeführt worden sind, zeigen an, dass die Empfangsvorrichtung nicht die Änderung, die zu den zählenden Token zugeordnet ist, empfing. Auf einen fehlenden Token hin schickt die Sendevorrichtung erneut die Änderung. Auch zeigen irgendwelche neuen Token, die durch die Empfangsvorrichtung geliefert sind, Änderungen in Bezug auf Daten an der Empfangsvorrichtung an, die zu der Sendevorrichtung zugeführt werden sollen.
  • Token können auch dazu verwendet werden, eine Änderung in verschiedene Teile zu unterteilen. Zum Beispiel kann eine E-Mail in einen Header-Abschnitt, einen Grund-Abschnitt und einen Anhängungs-Abschnitt unterteilt werden. Zu Anfang kann eine Sendevorrichtung einen Hinweis senden, der dem Header-Bereich entspricht. Dies ermöglicht der Empfangsvorrichtung, eine repräsentative Größe der Nachricht anzuzeigen, wie beispielsweise dasjenige, von wo die Nachricht ausging, die Gegenstands-Zeile, usw., ohne die volle Nachricht empfangen haben zu müssen. Dann kann, in Abhängigkeit eines Empfangens des Token, entsprechend zu dem Header-Abschnitt, die Sendevorrichtung die verbleibenden Abschnitte der E-Mail-Nachricht senden. Ein fehlender Header-Token würde dazu führen, dass die Sendevorrichtung die volle E-Mail-Nachricht sendet.
  • Zusätzliche Merkmale und Vorteile der Erfindung werden in der Beschreibung, die nun folgt, angegeben, und werden zum Teil aus der Beschreibung offensichtlich werden oder können durch Praktizieren der Erfindung erlernt werden. Die Merkmale und Vorteile der Erfindung können mittels des Instrumentariums und der Kombinationen, die insbesondere in den beigefügten Ansprüchen hervorgehoben sind, realisiert und erhalten werden. Diese und andere Merkmale der vorliegenden Erfindung werden vollständiger aus der nachfolgenden Beschreibung und den beigefügten Ansprüchen ersichtlich werden, oder können durch das Praktizieren der Erfindung, wie sie nachfolgend angegeben ist, erlernt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Art und Weise, in der die vorstehend angegebenen und andere Vorteile und Merkmale der Erfindung erhalten werden, ersichtlicht wird, wird eine besondere Beschreibung der Erfindung, die kurz vorstehend beschrieben ist, unter Bezugnahme auf spezifische Ausführungsformen davon vorgenommen werden, die in den beigefügten Zeichnungen dargestellt sind. Es ist verständlich, dass diese Zeichnungen nur typische Ausführungsformen der Erfindung zeigen und deshalb nicht dazu vorgesehen sind, deren Schutzumfang zu begrenzen, wobei die Erfindung mit einer zusätzlichen Spezifizierung und den Details unter Verwendung der beigefügten Zeichnungen beschrieben und erläutert werden wird, in denen:
  • 1 stellt ein beispielhaftes System dar, das eine geeignete Betriebsumgebung für die vorliegende Erfindung darstellt;
  • 2 zeigt ein Blockdiagramm, das Daten-Strukturen und Kommunikations-Kanäle zum Synchronisieren von Client-Daten mit Server-Daten darstellt;
  • 3A und 3B zeigen ein Flussdiagramm eines Verfahrens zum Synchronisieren von zwei Kopien derselben Daten aus der Perspektive eines Servers; und
  • 4A und 4B stellen ein Beispiel der Synchronisation einer Client-Kopie von Kontakt-Informationen mit Änderungen dar, die zu einer Server-Kopie derselben Informationen gemäß der vorliegenden Erfindung vorgenommen sind.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung wird nachfolgend unter Verwendung von Diagrammen beschrieben, um entweder die Struktur oder die Verarbeitung von Ausführungsformen, verwendet dazu, die Systeme, die Verfahren und die Computerprogramm-Produkte der vorliegenden Erfindung auszuführen, zu erläutern. Unter Verwendung der Diagramme in dieser Art und Weise, um die Erfindung anzugeben, sollte nicht als den Schutzumfang einschränkend ausgelegt werden. Die vorliegende Erfindung erstreckt sich auf Verfahren, Systeme und Computerprogramm-Produkte zum Synchronisieren von Daten, gespeichert an einem oder mehreren Nachrichten-Clients, mit Daten, gespeichert an einem Nachrichten-Server.
  • So, wie er in diesen Unterlagen verwendet wird, ist ein Nachrichten-Server eine Vorrichtung oder eine Kombination von Vorrichtungen, die Änderungen in Bezug auf Daten erzeugt, und ein Nachrichten-Client ist eine oder mehrere Vorrichtungen, die die erzeugten Änderungen von dem Nachrichten-Server empfangen. Dieselbe Vorrichtung kann deshalb als entweder ein Nachrichten-Server oder ein Nachrichten-Client arbeiten, in Abhängigkeit davon, wie sie mit anderen Vorrichtungen zusammenwirkt. Es sollte auch erkannt werden, dass Bezugnahmen auf Kopien der „selben" Daten Kopien umfassen, die nur einen Untersatz der in Rede stehenden Daten enthalten. Mit anderen Worten kann eine Kopie nur ausgewählte Felder von einer anderen Kopie umfassen, und kann noch dahingehend angesehen werden, dass sie die „selben" Daten speichert.
  • Fachleute auf dem betreffenden Fachgebiet werden erkennen, dass die Prinzipien der vorliegenden Erfindung eine effiziente Anforderungs-Synchronisation ermöglichen, wenn ein Nachrichten-Client Aktualisierungs-Hinweise von einem Nachrichten-Server empfangen kann, wie dies in den nachfolgenden und weiteren Betrachtungen angeführt ist. Zuerst werden Aktualisierungs-Hinweise, die der Nachrichten-Client empfängt, mit Anforderungs-Synchronisations-Anforderungen kommuniziert, so dass die Anforderungs-Synchronisation nicht die Änderungen des Nachrichten-Clients, empfangen über den Aktualisierungs-Hinweis, dupliziert. Als zweites liefert eine Anforderungs-Synchronisation eine Änderung, falls ein Aktualisierungs-Hinweis nicht empfangen ist oder falls ein Aktualisierungs-Hinweis nur einen Teil der Änderung umfasst. Zum Beispiel kann ein Aktualisie rungs-Hinweis nur bestimmte Teile einer E-Mail-Nachricht, wie beispielsweise eine bestimmte Zeile, den Sender, usw., umfassen. Eine Anforderungs-Synchronisation liefert andere Teile, die nicht in dem Aktualisierungs-Hinweis enthalten waren. Als drittes können Änderungen ungeachtet davon, wie eine bestimmte Vorrichtung die Daten speichert, identifiziert werden. In vielen Fällen variieren Daten-Formate Darstellungen und Unterstützungsfelder von einer Vorrichtung zu einer anderen, und zwar basierend auf entsprechenden Unterschieden in der Anwendungs-Software, in den Betriebssystemen, in dem verfügbaren Speicher, in dem Prozessor-Typ, usw..
  • Der Nachrichten-Server assoziiert einen Token mit Änderungen, die in Bezug auf die Daten, gespeichert an dem Server, vorgenommen sind. Es ist anzumerken, dass der Ausdruck „Änderung" in einem breiten Sinne dahingehend interpretiert werden sollte, eine Modifikation von existierenden Daten ebenso wie die Hinzufügung von neuen Daten zu umfassen. Ein Token identifiziert sowohl die Daten, die geändert wurden (z. B. das spezifische Daten-Objekt, das modifiziert wurde), als auch die Revision der Daten, die die Änderung darstellt. Die Token und Änderungen werden kombiniert, um Hinweise zu bilden, die zu den Nachrichten-Clients geschickt werden. Token können komprimiert werden, um Speicherraum einzusparen, allerdings sollten die Token eindeutig für jeden Nachrichten-Client sein, falls sie nicht eindeutig für den Nachrichten-Server sind.
  • Wenn Clients eine Synchronisation mit dem Nachrichten-Server anfordern, führen die Clients alle Token zurück, die von dem Nachrichten-Server empfangen worden sind. Unter Empfangen der zurückgeführten Token vergleicht der Nachrichten-Server die Token, zurückgeführt durch die Clients, mit den Token, die zu den Clients geschickt wurden. Der Nachrichten-Server interpretiert einen Fehler eines Client dahingehend, einen bestimmten Token als eine Anzeige zurückzuführen, dass der Token und die entsprechende Änderung niemals durch den Client empfangen wurden. Daraufhin sendet der Nachrichten-Server die Änderung zu dem Client zurück.
  • Token können auch dazu verwendet werden, um eine Änderung zu unterteilen. Nur ein Teil der Änderung ist innerhalb des Hinweises, geschickt zu den Clients, enthalten. Der Nachrichten-Server interpretiert dann einen Client, der einen Token zurückführt, als eine Anzeige, dass der Client gerne den Rest der Änderung empfangen würde. Falls der Token nicht zurückgeführt ist, schickt der Server die vollständige Änderung.
  • Ausführungsformen innerhalb des Schutzumfangs der vorliegenden Erfindung umfassen durch Computer lesbare Medien zum Ausführen von durch Computer ausführbare Instruktionen oder Daten-Strukturen, die darauf gespeichert sind, oder besitzen diese. Solche durch Computer lesbare Medien können irgendwelche verfügbaren Medien sein, auf die durch Computer für allgemeine Zwecke oder für spezielle Zwecke zugegriffen werden kann. Anhand eines Beispiels, und nicht als Einschränkung, können solche durch Computer lesbare Medien physikalische Speichermedien, wie beispielsweise RAM, ROM, EEPPROM, CD-ROM, oder andere, optische Plattenspeicher, magnetische Plattenspeicher oder magnetische Speichervorrichtungen, oder irgendein anderes Medium, das dazu verwendet werden kann, ein erwünschtes Programm-Code-Mittel in der Form von durch Computer ausführbare Instruktionen oder Daten-Strukturen zu tragen oder zu speichern, und auf die durch Computer für allgemeine Zwecke oder spezielle Zwecke zugegriffen werden kann, aufweisen. Ein solches Medium kann ein drahtloses Trägersignal, zum Beispiel, umfassen. Wenn Informationen über ein Netzwerk oder eine andere Kommunikations-Verbindung (entweder fest verdrahtet, drahtlos oder eine Kombination von fest verdrahtet und drahtlos) zu einem Computer übertragen oder zugeführt werden, sieht der Computer geeignet die Verbindung als Computer lesbares Medium. Demzufolge wird irgendeine solche Verbindung entsprechend als ein mittels Computer lesbares Medium bezeichnet. Kombinationen des Vorstehenden sollten auch innerhalb des Schutzumfangs von durch Computer lesbaren Medien liegen. Durch einen Computer ausführbare Instruktionen weisen, zum Beispiel, Instruktionen und Daten auf, die einen Computer für allgemeine Zwecke, einen Computer für spezielle Zwecke, oder eine Verarbeitungs-Vorrichtung für spezielle Zwecke eine bestimmte Funktion oder eine Gruppe von Funktionen vornimmt.
  • 1 und die nachfolgende Diskussion sind dazu vorgesehen, eine kurze, allgemeine Beschreibung einer geeigneten Rechenumgebung anzugeben, in der die Erfindung umgesetzt werden kann. Obwohl es nicht erforderlich ist, kann die Erfindung in dem allgemeinen Zusammenhang von durch einen Computer ausführbare Instruktionen bzw. Befehle, wie beispielsweise Programm-Module, die durch Computer in Netzwerk-Umgebungen ausgeführt werden sollen, beschrieben werden. Allgemein umfassen Programm-Module Routines, Programme, Objekte, Komponenten, Daten-Strukturen, usw., die bestimmte Aufgaben durchführen oder besondere, abstrakte Daten-Typen implementieren. Durch einen Computer ausführbare Instruktionen, die Daten-Strukturen zugeordnet sind, und Programm-Module stellen Beispiele des Programm-Code-Mittels zum Ausführen von Schritten der Verfahren, die hier offenbart sind, dar. Die besondere Folge solcher ausführbaren Instruktionen bzw. Befehle oder zugeordneter Daten-Strukturen stellen Beispiele von entsprechenden Vorgängen zum Umsetzen der Funktion, die in solchen Schritten beschrieben sind, dar.
  • Fachleute auf dem betreffenden Fachgebiet werden erkennen, dass die Erfindung in Netzwerk-Rechenumgebungen in Verbindung mit vielen Typen von Computer-System-Konfigurationen praktiziert werden kann, einschließlich von Personal-Computern, in der Hand gehaltenen Vorrichtungen, Multiprozessor-Systemen, auf einem Mikroprozessor basierenden oder programmierbaren Endkunden-Elektroniken, Netzwerk-PCs, Miniocomputern, Mainframe-Computern, und dergleichen. Die Erfindung kann auch in verteilten Rechenumgebungen praktiziert werden, wo Aufgaben durch lokale oder entfernte Verarbeitungs-Vorrichtungen durchgeführt werden, die über ein Kommunikations-Netzwerk verknüpft sind (entweder fest verdrahtete Verbindungen, drahtlose Verbindungen, oder durch eine Kombination von verdrahteten und drahtlosen Verbindungen). In der verteilten Rechenumgebung können Programm-Module in sowohl lokalen als auch in entfernten Speichervorrichtungen angeordnet sein.
  • 1 stellt einen herkömmlichen Computer 120 dar, der Komponenten und Daten-Verarbeitungs-Fähigkeiten umfasst, die dazu verwendet werden können, Ausführungsformen der Erfindung auszuführen. Der Computer 120 ist eine Rechenvorrichtung für allgemeine Zwecke, die eine Verarbeitungseinheit 121, einen Systemspeicher 122 und einen Systembus 123 umfasst, die verschiedene System-Komponenten, einschließlich des Systemspeichers 122, mit der Verarbeitungseinheit 121 koppelt. Die Verarbeitungseinheit 121, die die durch den Computer ausführbaren Instruktionen ausführt, ist ein Beispiel der Verarbeitungseinrichtung zum Durchführen von Schritten und Vorgängen gemäß der vorliegenden Erfindung. Der Systembus 123 kann irgendeiner von verschiedenen Typen von Busstrukturen sein, einschließlich eines Speicherbusses oder einer Speicher-Steuereinheit, eines peripheren Busses oder eines lokalen Busses, unter Verwendung irgendeiner Vielfalt von Bus-Architekturen. Der Systemspeicher umfasst einen Read Only Memory (ROM) 124 und einen Random Access Memory (RAM) 125. Ein Basis-Eingabe/Ausgabe-System (BIOS) 126, das die Grundprogramme enthält, die dabei helfen, Informationen zwischen Elementen innerhalb des Computers 120 zu übertragen, wie beispielsweise während des Startens, können in dem ROM 124 gespeichert sein.
  • Der Computer 120 kann auch ein Magnet-Festplattenlaufwerk 127 zum Lesen von und zum Schreiben auf einer Magnet-Festplatte 139, ein Magnet-Plattenlaufwerk 128 zum Lesen von oder zum Schreiben auf einer entfernbaren Magnetplatte 129, und ein Optik-Plattenlaufwerk 130 zum Lesen von und zum Schreiben auf einer entnehmbaren, optischen Platte 131, wie beispielsweise eine CD-ROM, oder andere, optische Medien, umfassen. Das Magnet-Plattenlaufwerk 127, das Magnet-Festplattenlaufwerk 128 und das Laufwerk 130 für die optische Platte sind mit dem Systembus 123 durch eine Festplattenlaufwerk-Schnittstelle 132, eine Magnet-Plattenlaufwerk-Schnittstelle 133 und eine Schnittstelle 134 für das optische Laufwerk, jeweils, verbunden. Die Laufwerke und deren zugeordnete, durch einen Computer lesbare Medien bilden einen nicht flüchtigen Speicher für durch einen Computer ausführbare Instruktionen, Daten-Strukturen, Programm-Module und andere Daten für den Computer 120. Obwohl die beispielhafte Umgebung, die hier beschrieben ist, ein Magnet-Plattenlaufwerk 139 einsetzt, können eine entnehmbare Magnetplatte 129 und eine entnehmbare, optische Platte 131, andere Typen von Computer lesbaren Medien zum Speichern von Daten, verwendet werden, einschließlich magnetischer Kassetten, Flash-Memory-Cards, Digital-Video-Disks, Bernoulli-Kassetten, RAMs, ROMs, und dergleichen.
  • Ein Programm-Code-Mittel, aufweisend eines oder mehrere Programm-Module, kann auf der Festplatte 139, der Magnetplatte 129, der optischen Platte 131, dem ROM 124 oder dem RAM 125, umfassend ein Betriebssystem 135, eines oder mehrere Anwendungs-Programm(e) 136, andere Programm-Module 137, und Programm-Daten 138, gespeichert sein. Ein Benutzer kann Befehle und Informationen in den Computer 120 über ein Tastenfeld 140, eine Hinweis-Vorrichtung 142 oder andere Eingabe-Vorrichtungen (nicht dargestellt), wie beispielsweise ein Mikrofon, einen Joystick, ein Game-Pad, eine Satellitenschüssel, einen Scanner, oder dergleichen, eingeben. Diese und andere Eingabe-Vorrichtungen sind oftmals mit der Verarbeitungseinheit 121 über eine serielle Schnittstelle 126, gekoppelt mit dem Systembus 123, verbunden. Alternativ können die Eingabe-Vorrichtungen durch andere Schnittstellen, wie beispielsweise einen parallelen Port, einen Game-Port oder einen universellen, seriellen Bus (USB), verbunden sein. Ein Monitor 147 oder eine andere Anzeige-Vorrichtung ist auch mit dem Systembus 123 über eine Schnitt stelle verbunden, wie beispielsweise einen Video-Adapter 148. Zusätzlich zu dem Monitor umfassen Personal-Computer typischerweise andere, periphere Ausgabe-Vorrichtungen (nicht dargestellt), wie beispielsweise Lautsprecher und Drucker.
  • Der Computer 120 kann in einer vernetzten Umgebung unter Verwendung von logischen Verbindungen zu einem oder mehreren entfernten Computer(n), wie beispielsweise entfernten Computern 149a und 149b, arbeiten. Entfernte Computer 149a und 149b können jeweils ein anderer Personal-Computer, ein Server, ein Router, ein Netzwerk-PC, eine Peer-Vorrichtung oder ein anderer, gemeinsamer Netzwerk-Knoten sein, und umfassen typischerweise viele oder alle der Elemente, die vorstehend in Bezug auf den Computer 120 beschrieben sind, obwohl nur Speichervorrichtungen 150a und 150b und deren zugeordneten Anwendungs-Programm 136a und 136b in 1 dargestellt worden sind. Die logischen Verbindungen, gezeigt in 1, umfassen ein Local Area Network (LAN) 151 und ein Wide Area Network (WAN) 152, die hier anhand eines Beispiels, und nicht einschränkend, angegeben sind. Solche Netzwerk-Umgebungen sind in büroweiten oder weltweiten Computer-Netzwerken, Intranets und dem Internet üblich.
  • Der Computer 120 ist, wenn er in einer LAN-Netzwerk-Umgebung verwendet wird, mit dem lokalen Netzwerk 151 über eine Netzwerk-Schnittstelle oder einen Adapter 153 verbunden. Wenn der Computer 120 in einer WAN-Netzwerk-Umgebung verwendet wird, kann er, zum Beispiel, ein Modem 154 oder eine drahtlose Verbindung umfassen. Das Modem 154, das intern oder extern vorhanden sein kann, ist mit dem Systembus 123 über die Schnittstelle 146 eines seriellen Ports verbunden. In einer Netzwerk-Umgebung können Programm-Module, gezeigt relativ zu dem Computer 120, oder Bereiche davon, in der entfernten Speichervorrichtung gespeichert werden. Es wird ersichtlich werden, dass die Netzwerk-Verbindungen, die dargestellt sind, beispielhaft sind, und andere Einrichtungen zum Einrichten von Kommunikationen über ein Wide Area Network 152 können verwendet werden.
  • 2 zeigt ein Blockdiagramm, das die Daten-Strukturen und Kommunikations-Kanäle zum Synchronisieren eines Speichers 128, eines Clients 260 mit einem Speicher 218 eines Servers 210 darstellt. Der vergrößerte Bereich 220 des Speichers 218 zeigt, dass der Speicher 218 einen Daten-Typ 230, einen Daten-Typ 240 und einen Daten-Typ 250 umfasst. Die Daten-Typen sind allgemeine Darstellungen von Informationen, die in einem Speicher 218 gespeichert werden können. Zum Beispiel können Daten-Typen all gemeinen Typen von Informationen, wie beispielsweise Aufgaben, Kontakt, Kalender, E-Mail, Musik, Finanz- und Sport-Daten, entsprechen, oder Daten-Typen können separaten Feldern innerhalb von Daten-Objekten einer Datenbank entsprechen. Daten 232, Daten 242 und Daten 252 sind vorgesehen, um anzuzeigen, dass diese Daten-Typen weiter unterteilt werden können. Falls der Daten-Typ 230 Aufgabe-Daten war, dann könnten die Daten 232 individuellen Aufgabe-Objekten entsprechen. Die vorliegende Erfindung legt keine besonderen Anforderungen dahingehend auf, was Daten-Typen 230, 240 und 250 oder Daten 232, Daten 242 und Daten 252 darstellen, wobei die Daten und Daten-Typen nur anzeigen, dass viele Typen von Informationen an dem Speicher 218 in einer breiten Vielfalt von Formaten vorliegen können.
  • Der Client 260 und der Server 210 kommunizieren über Kommunikations-Kanäle 216 und 266. Der Kommunikations-Kanal 216 umfasst einen Pfeil, der nur zu dem Client 260 hinweist, als eine Anzeige einer Einwege-Kommunikation von dem Server 210 zu dem Client 260. Im Gegensatz dazu umfasst der Kommunikations-Kanal 266 Pfeile an beiden Enden, um eine Zweiwege-Kommunikation zwischen dem Server 210 und dem Client 260 anzuzeigen. Eine Ausführungsform der vorliegenden Erfindung führt einen Kommunikations-Kanal 216 als einen nicht zuverlässigen Kommunikations-Kanal aus und führt einen Kommunikations-Kanal 266 als einen zuverlässigen Kommunikations-Kanal aus.
  • Zu Anfang speichern der Speicher 218 des Servers 210 und der Speicher 268 des Client 260 identische Kopien derselben Daten. Es wird daran erinnert, dass, für die Zwecke dieser Erfindung und in den Ansprüchen, eine erste Vorrichtung eine „Kopie" der Daten, gespeichert an einer zweiten Vorrichtung, besitzt, falls die erste Vorrichtung die momentanen Daten darstellt, insoweit, als die erste Vorrichtung geeignet ist und auswählt. Zum Beispiel kann ein Personal Digital Assistant (PDA) einen begrenzten Speicher und Verarbeitungs-Fähigkeit haben oder kann Daten unterschiedlich basierend auf der Anwendungs-Software oder des Betriebssystems der PDA's darstellen und formatieren. Deshalb kann der PDA eine abgekürzte Kopie von Daten, gespeichert an dem Host-Computer, speichern, in dem Speicher- und Verarbeitungsleistung nicht ein so großes Problem ist. Allerdings würde der PDA eine identische Kopie der Daten, gespeichert an dem Host-Computer, speichern, falls der PDA den momentanen Zustand der Daten insofern darstellt, als der PDA geeignet ist, oder auswählt. Zum Beispiel kann ein PDA ein Kontakt-Daten-Objekt so auflisten, dass es einen Namen und eine Telefonnummer umfasst, wäh rend der Host-Computer dies und zahlreiche andere Daten-Felder für denselben Kontakt auflisten kann. So lange wie der Name und die Telefonnummer momentan an dem PDA vorhanden sind, besitzt der PDA eine identische Kopie der Daten.
  • Es sollte angemerkt werden, dass der vergrößerte Bereich 280 des Speichers 268 nur Daten 282 darstellt. Dies zeigt an, dass der Speicher 268 nur einen Untersatz der Daten an dem Speicher 218 speichern kann. Für eine Vereinfachung wird angenommen, dass Daten 282 den Daten 242 des Speichers 218 entsprechen. (Die Auswahl ist wahlweise. Daten 282 könnten den Daten 232, den Daten 242 und/oder den Daten 252 entsprechen. Weiterhin ist die vorliegende Erfindung nicht auf Daten 282 dahingehend beschränkt, dass sie den Daten, angeordnet an einem einzelnen Server, entsprechen.) Wenn Änderungen in Bezug auf die Daten 242 vorgenommen werden, werden Token 244 erzeugt, um die Änderungen zu identifizieren. Der Server 210 behält eine Zuordnung zwischen Token 244 und Daten 242 bei, so dass dann, wenn ein Token 244 gegeben ist, der Server in der Lage ist, die Daten 242 zu identifizieren, die dem Token entsprechen. Jeder der Token 244 entspricht einem spezifischen Teil von Daten 242.
  • Um Daten 282 zu Daten 242 zu synchronisieren, erzeugt der Server 210 Aktualisierungs-Hinweise. Jeder Hinweis enthält mindestens eine der Änderungen und mindestens einen der entsprechenden Token. Wenn Änderungen auftreten, werden die Hinweise zu dem Client 260 über den Kommunikations-Kanal 216 geschickt. In einer Ausführungsform ist der Kommunikations-Kanal 216 ein drahtloser Kommunikations-Kanal, und Hinweise werden zu dem Client 260 gesendet. Der Client 260 speichert die Hinweise, die er empfängt, als Hinweise 290. Die Hinweise 290 umfassen Änderungen 292 und Token 294. In einer Ausführungsform sind Token 294 komprimierte Versionen der Token 244. Die Token 294 sind einzigartig für den Client 260 und die Token 244 sind einzigartig für den Server 210 (wie die Token 234 und die Token 254). Änderungen 292 entsprechen den Änderungen, die in Bezug auf die Daten 242 vorgenommen sind, allerdings ist es möglich, dass der Client 260 nicht alle Hinweise, geschickt durch den Server 210, empfangen wird, und deshalb können Änderungen 292 nur ein Untersatz von diesen Änderungen, vorgenommen in Bezug auf die Daten 242, sein.
  • Der Client 260 speichert auch eine Zusammenstellung 270. Die Zusammenstellung 270 stellt den Zustand der Kopie von Daten, gespeichert an dem Client 260, während einer vorherigen Synchronisation, dar, wenn Daten 282 alle Änderungen wiedergeben, die in Bezug auf die Daten 242 vorgenommen worden sind. Zusammen mit der Zusammenstellung 270 kann ein Token gespeichert werden, um den Startpunkt für die nächste Synchronisation anzugeben. Im Gegensatz zu der Zuordnung zwischen dem Token 244 und den Daten 242 an dem Server 210 werden allerdings die Token 274 an dem Client 260 nicht direkt zu den Daten 282 zugeordnet. Der Grund hierfür ist derjenige, dass eine Zusammenstellung 270 einen früheren Zustand der Daten darstellt, wogegen Daten 282 den momentanen Zustand der Daten darstellen. In einer Ausführungsform der vorliegenden Erfindung ist die Zusammenstellung 270 komprimiert.
  • Zu demselben Zeitpunkt gibt der Client 260 eine Synchronisations-Anforderung zu dem Server 210 über den Kommunikations-Kanal 266 aus. Der Server 210 empfängt Token 294, einen Startpunkt und eine Zusammenstellung 270 mit Token 274 zurück von dem Client 260. Die Token 294 und die Token 274, empfangen zurück von dem Client 260, werden dann mit den Token 244 verglichen, die der Server 210 zu den Clients 260 geschickt hatte. Der Server 210 interpretiert irgendwelche Token 244 nach dem Startpunkt, die keine passenden Token 294 haben, oder Token 274 als eine Anzeige, dass der Client 260 nicht die Änderungen entsprechend zu den fehlenden Token empfangen hatte.
  • Daraufhin schickt der Server 210 eine neue Zusammenstellung (nicht dargestellt) und eine Liste von Token (nicht dargestellt), die die Änderungen identifizieren, die dem Client 260 fehlen. Der Client 260 verwendet dann die Liste, um die fehlenden Änderungen von dem Server 210 anzufordern. Die fehlenden Änderungen werden in der Form von Hinweisen geschickt. Wenn der Client einmal die neue Zusammenstellung und alle der fehlenden Änderungen empfangen hat, sondert der Client 260 Hinweise 290 aus, da die neue Zusammenstellung alle die Token enthält, die notwendig sind, um den momentanen Zustand von Daten 282 zu repräsentieren. Der Kommunikations-Kanal 266 wird geschlossen, nachdem der Client 260 seine angeforderte Synchronisation empfangen hat, und der Server 210 beginnt den Prozess erneut, durch Schicken von darauf folgenden Hinweisen zu dem Client 260 über den Kommunikations-Kanal 216.
  • Alternativ werden, falls der Client 260 nicht in der Lage ist, alle der fehlenden Änderungen aufzusuchen, die Zusammenstellung 270 und die Hinweise 290 (einschließlich irgendwelcher Hinweise für fehlende Änderungen, die empfangen wurden) zurückgehalten, und die neue Zusammenstellung wird ausgesondert. Bei der nächsten Gelegenheit einer Synchronisation führt der Client 260 die Zusammenstellung 270 mit Token 274 und Token 294 zurück (umfassend fehlende Hinweise und neue Hinweise, darauf folgend empfangen von dem Server 210). Der Server 210 führt den Token-Vergleich durch und die Synchronisation schreitet fort, wie dies vorstehend beschrieben ist. Als eine Folge stellt eine Unterbrechungs-Synchronisation nur eine kleine Unannehmlichkeit dar.
  • Es sollte hervorgehoben werden, dass das Vorstehende nur ein Beispiel dafür ist, wie eine Synchronisation auftreten kann. Die vorliegende Erfindung, wie sie in den beigefügten Ansprüchen beschrieben ist, lässt viele Variationen zu, und deshalb sollte dieses Beispiel nicht dahingehend ausgelegt werden, dass es irgendwelche zusätzlichen Einschränkungen auferlegt.
  • Verfahren der vorliegenden Erfindung von der Perspektive des Servers aus werden als nächstes unter Bezugnahme auf das Flussdiagramm, gezeigt in den 3A und 3B, beschrieben. Eine Synchronisation beginnt mit dem Schritt eines Server-Computers, Hinweise (320) liefernd. Der Schritt eines Lieferns eines Hinweises vergleicht die Vorgänge, eine Änderung 322 vorzunehmen, an den Daten, gespeichert an dem Server-Computer, was einen Token (324) erzeugt, der der Änderung, die vorgenommen ist, entspricht, unter Komprimieren des Token 326, um seine Größe zu verringern, und unter Schicken eines Hinweises (328) zu dem Client-Computer.
  • Gewöhnlich werden Token einzigartig für den Server sein, der sie erzeugt. Allerdings kann es, in einigen Fällen, erwünscht sein, die Größe eines Token zu verringern. Zum Beispiel können drahtlose Kommunikations-Protokolle die Menge an Daten, geschickt in individuellen Paketen, auf ungefähr einhundert Byte begrenzt sein. Große Token, benötigt, um einzigartig alle Änderungen, vorgenommen an dem Server, darzustellen, können ein übermäßiges Verhältnis der drahtlosen Belastung erfordern. Eine Lösung ist diejenige, die Token zu komprimieren, so dass sie einzigartig für individuelle Clients sind, im Gegensatz dazu, dass sie einzigartig für den Server sind, und was demzufolge eine Bandbreite einspart. Gewöhnlich werden nur Token, geschickt zu dem Client, komprimiert, wogegen irgendwelche Token, die durch den Server zurückgehalten werden, um die Versionen der Daten, die der Server speichert, zu identifizieren, unkomprimiert und einzigartig für den Server verbleiben.
  • Der Schritt eines Bestimmens von fehlenden Hinweisen 340 folgt. Ein Entscheidungs-Block 342 führt den Vorgang eines Anzeigens durch, ob der Server eine Synchronisations-Anforderung von dem Client empfangen hat. Falls dies der Fall ist, führt der Server den Vorgang eines Empfangens von Token (344) zurück von dem Client und den Vorgang eines Vergleichens der Token, empfangen mit den Token, geschickt zu dem Client (346), durch. Beim Nichtvorhandensein einer Synchronisations-Anforderung an dem Entscheidungs-Block 342 geht die Verarbeitung zurück zu dem Beginn des Schritts 320, unter Liefern von Hinweisen.
  • Als nächstes sind nun in 3B die Vorgänge eines Lieferns einer Zusammenstellung 330 dargestellt. Eine Zusammenstellung enthält die Token, die notwendig sind, um darzustellen, welchen Zustand die Client-Daten haben sollten, nachdem eine Synchronisation abgeschlossen worden ist. Die Zusammenstellung wird an dem Server erzeugt (334) und zu dem Client geschickt (336). Der Server schickt auch eine Liste von Token, die die Änderungen identifizieren, die dem Client fehlen, basierend auf einem Startpunkt, geliefert durch den Client (nicht dargestellt). Unter Verwendung dieser Liste fordert der Client Änderungen an, die er nicht empfangen hat.
  • Nach Abschluss des Schritts eines Lieferns einer Zusammenstellung 330 beginnt der Server den Schritt eines Lieferns von fehlenden Hinweisen 350, so dass der Client irgendwelche Änderungen erhalten wird, die nicht empfangen wurden. Ein Liefern von fehlenden Hinweisen 350 weist die Vorgänge eines Sendens des fehlenden Hinweises 354 für jeden fehlenden Token, der identifiziert ist, auf (352). Es ist anzumerken, dass der Schritt 350 dazu dient, die Änderung, die Token, und/oder den Hinweis, usw., für einen fehlenden Token zu liefern.
  • Der Schritt eines Lieferns eines zweiten Bereichs 360 bezieht sich auf Änderungen, die der Server in separate Teile unterteilt. Zum Beispiel kann eine E-Mail-Nachricht in einen Header-, einen Grund- und einen Anhängungs-Abschnitt unterteilt werden. Ein Zuordnen einer Änderung und eines Token zu dem Header ermöglicht das Schicken eines Teils der Nachricht zu dem Client. Diese Maßnahme kann dort attraktiv sein, wo der Kommunikations-Kanal zwischen dem Server und dem Client eine relativ niedrige Bandbreite besitzt oder unzuverlässig ist. Durch Senden nur des Headers kann der Client einen bestimmten Teil der E-Mail einem Benutzer als eine Anzeige anzeigen, dass der Server die vollständige E-Mail erhalten hat. Ein Vorsehen eines zweiten Abschnitts 360 führt die Vorgänge einer Bestimmung, ob ein Token einen Nachrichten-Abschnitt (Entscheidungs-Block 362) identifiziert, und eines Sendens irgendeines verbleibenden Nachrichten-Abschnitts (364), und zwar zu dem Client, durch.
  • Die 4A und 4B stellen ein Synchronisieren einer Client-Kopie 450 von Kontakt-Informationen mit Änderungen, vorgenommen an einer Server-Kopie 410 derselben Informationen, unter Verwendung von Hinweisen 430, dar. Zu Anfang enthalten, wie in 4A dargestellt ist, Server-Daten 412 und Client-Daten 452 dieselben Daten. Server-Daten 414 geben Änderungen des ersten Namens eines Kontakts von „John" zu „Jon". Token 1 wird erzeugt, um die Änderung zu identifizieren. Ein Hinweis 434 umfasst die Namen-Änderung und den entsprechenden Token. Unter Empfangen eines Hinweises 434 geben Client-Daten 454 die Namen-Änderungen wieder, und speichern den Token. Pfeile 424 und 444 zeigen an, dass der Hinweis 434 in einer Richtung kommuniziert wird, möglicherweise über einen nicht zuverlässigen Kommunikations-Kanal.
  • Eine Fax-Nummer und sein Änderungs-Identifizierer, Token 2, ist zu den Server-Daten 415 hinzugefügt worden. Ein Hinweis 435 enthält die neue Fax-Nummer und einen zugeordneten Token. Wie vorstehend tritt eine Kommunikation zwischen dem Server und dem Client in einer Richtung (Pfeile 425) auf. In diesem Fall empfangen allerdings die Client-Daten 455 keinen Hinweis 435. Deshalb werden weder die neue Fax-Nummer noch ein entsprechender Token in den Client-Daten 455 wiedergegeben.
  • Server-Daten 416 stellen eine abschließende Änderung dar. „Jr." wird zu dem Namen-Feld hinzugefügt, und Token 3 ist erzeugt worden, um die Änderung zu identifizieren. Ein Hinweis 436 umfasst die Namen-Änderung und den Token. Nach Empfangen des Hinweises 436 geben die Client-Daten 456 die Namen-Änderungen wieder und speichern den Token 3. Hier wiederum zeigen die Pfeile 426 und 446 an, dass die Kommunikation von dem Server zu dem Client ohne eine Kenntnis oder Bestätigung auftritt.
  • Wie nun die 4B zeigt, hat der Server eine Synchronisations-Anforderung von dem Client empfangen. Client-Daten 457 führen zu den Server-Daten 417 alle die Token zurück, die durch den Client empfangen sind, einschließlich eines Token zur Benutzung als einen Startpunkt, der auf der früheren Synchronisation basiert. Das Bezugszeichen 437 umfasst Token 1 und Token 3. Token 1 ist der Startpunkt zum Bestimmen, welche Token empfangen worden sind. Es ist anzumerken, dass Token 2 nicht zurückgeführt wird, da der Client niemals einen Hinweis 435 empfing. Das Bezugszeichen 437 erscheint als ein Kasten in unterbrochener Linie, um anzuzeigen, dass er eine Rückführung von empfangenen Token, im Gegensatz zu einem Hinweis, ist. Pfeile 427 und 447 stellen dar, dass ein Zurückführen von Token eine Zweiwege-Kommunikation zwischen dem Client und dem Server verwendet, möglicherweise ausgeführt als ein zuverlässiger Kommunikations-Kanal. Es sollte angemerkt werden, dass die vorliegende Erfindung nicht notwendigerweise irgendein besonderes Erfordernis darüber auferlegt, wie Token zu dem Server zurückgeführt werden müssen (z. B. als eine Zusammenstellung, einen Hinweis, oder als individuelle Token).
  • Beginnend mit dem Start-Token werden zurückgeführte Token mit den geschickten Token verglichen, um irgendwelche Token zu identifizieren, die fehlen können. Die Erfindung legt nicht, anders als ein Identifizieren eines Startpunkts für den Token-Vergleich, irgendwelche bestimmten Erfordernisse dem Start-Token auf. Server-Daten 418 zeigen, dass Token 2 nicht zurück von dem Client empfangen wurde. In einer Ausführungsform liefert der Server eine Liste von fehlenden Token zurück zu dem Client, so dass der Client die Änderungen anfordern kann, die er nicht empfangen hat. Auf eine Anforderung für Token 2 hin wird ein Hinweis 438 erzeugt, um die fehlende Änderung und den zugeordneten Token zurückzuschicken. Alternativ könnte der Server einfach einen Hinweis 438 (oder die entsprechende Änderung selbst) schicken, im Gegensatz dazu, eine Liste von fehlenden Token zu schicken und darauf zu warten, dass der Client die entsprechenden Änderungen anfordert.
  • Es ist möglich, die fehlende Änderung zu dem Client als einen Hinweis 438 zu schicken, im Gegensatz dazu, nur die Änderung selbst zu schicken, allerdings legt die vorliegende Erfindung nicht notwendigerweise irgendeine besondere Struktur den zurückzusendenden Änderungen zu dem Client auf. Dennoch kann, durch Senden eines Hinweises 438, falls der zurückzusendende Vorgang unterbrochen wird, er wieder ohne irgendeine spezielle Verarbeitung aufgenommen werden. Der Client kann einfach zu einem späteren Zeitpunkt durch Zurückführen aller der Token, die er empfangen hat, fortfahren. Irgendwelche Hinweise, empfangen während des früheren Zurücksendens, liefern einen entsprechenden Token. Solche Hinweise, die nicht aufgrund der Unterbrechung empfangen sind, liefern keinen Token. Die Token, die noch aufgrund der Unterbrechung fehlen, werden identifiziert, und die entsprechenden Hinweise werden zu dem Client geschickt.
  • Als ein Teil einer Synchronisation schickt der Server zu dem Client eine Zusammenstellung von Token, die den momentanen Zustand der Daten, gespeichert durch den Client, darstellen. Nach Empfangen der Zusammenstellung sondert der Client die Hinweise, die er vor der Synchronisation empfangen hat, aus, und beginnt ein Empfangen von neuen Hinweisen, die neue Änderungen, in Bezug auf die Kontakt-Informationen, identifizieren. Bei einer darauf folgenden Synchronisation liefert der Client nur die Zusammenstellung und die Token von den neuen Hinweisen zurück zu dem Server.
  • Demzufolge ermöglichen die Prinzipien der vorliegenden Erfindung, dass Daten zwischen einem Nachrichten-Server und einem Nachrichten-Client sogar synchronisiert werden, wenn der Server und der Client dieselben Daten in einer unterschiedlichen Art und Weise darstellen. Weiterhin ist es, wie vorstehend erwähnt, wenn der Server und der Client dieselben Daten in einer unterschiedlichen Art und Weise darstellen, schwierig, zu bestimmen, ob die unterschiedlichen Daten-Strukturen tatsächlich dieselben Daten darstellen, durch Umsortieren zu einem Vergleich Feld für Feld. Demzufolge wird, in herkömmlichen Systemen, der Benutzer oftmals aufgefordert, einzugreifen, wenn der Server nicht die Bestimmung vornehmen konnte. Die vorliegende Erfindung beseitigt dieses Erfordernis, um dadurch eine Synchronisation benutzerfreundlicher zu gestalten, insbesondere dann, wenn Daten unterschiedlich durch den Server und den Client dargestellt sind.
  • Die vorliegende Erfindung kann in anderen, spezifischen Formen ausgeführt werden. Die beschriebenen Ausführungsformen sind dahingehend anzusehen, dass sie in jeglicher Hinsicht nur erläuternd, und nicht beschränkend, sind.

Claims (40)

  1. Datensynchronisationsverfahren in einer Umgebung, die eine erste Vorrichtung (210), die erste Daten speichert, sowie eine zweite Vorrichtung (260) enthält, die zweite Daten speichert, wobei das Verfahren dazu dient, die zweiten Daten mit den ersten Daten zu synchronisieren, und das Verfahren umfasst: einen Vorgang (322) des Vornehmens einer Änderung an den ersten Daten; einen Vorgang (328) des Sendens einer Mitteilung zu der zweiten Vorrichtung, wobei die Mitteilung sowohl die Änderung als auch ein Token (234, 244, 254) enthält, das die Änderung identifiziert; dadurch gekennzeichnet, dass das Verfahren des Weiteren umfasst; einen Vorgang (342) des Empfangens einer Synchronisationsanforderung von der zweiten Vorrichtung; und einen Vorgang (350) des erneuten Sendens der Änderung zu der zweiten Vorrichtung, wenn die Synchronisationsanforderung das Token nicht enthält; um so eine oder mehrere Aktualisierungsmitteilungen zu berücksichtigen, die möglicherweise von der zweiten Vorrichtung empfangen worden sind, und etwaige Unterschiede dahingehend zu berücksichtigen, wie die erste Vorrichtung und die zweite Vorrichtung Daten speichern.
  2. Verfahren nach Anspruch 1, wobei der Vorgang des erneuten Sendens der Änderung zu der zweiten Vorrichtung den Vorgang des erneuten Sendens des Tokens zu der zweiten Vorrichtung einschließt.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Vorgang des Sendens einer Mitteilung über einen unzuverlässigen Kommunikationskanal durchgeführt wird.
  4. Verfahren nach Anspruch 3, wobei der unzuverlässige Kommunikationskanal einen drahtlosen Kommunikationskanal umfasst.
  5. Verfahren nach Anspruch 3 oder 4, wobei die Vorgänge des Empfangens einer Synchronisationsanforderung und des erneuten Sendens der Änderung über einen zuverlässigen Kommunikationskanal durchgeführt werden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Token einzigartig für die erste Vorrichtung ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren den Vorgang des Komprimierens des Tokens umfasst, wobei das komprimierte Token einzigartig für die zweite Vorrichtung ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die ersten und die zweiten Daten wenigstens Kontakt-Daten, Kalender-Daten, Aufgaben-Daten und E-Mail-Daten enthalten.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei die erste Vorrichtung einen Nachrichten-Server (210) umfasst und die zweite Vorrichtung einen Nachrichten-Client (260) umfasst.
  10. Verfahren nach Anspruch 9, wobei der Nachrichten-Client einen tragbaren Personalcomputer, ein Mobiltelefon, einen Pager oder einen PDA umfasst.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die Mitteilung lediglich einem Teil der an den ersten Daten vorgenommenen Änderung entspricht und das Verfahren des Weiteren den Vorgang des Bereitstellens eines etwaigen verbleibenden Teils der an den ersten Daten vorgenommenen Änderung in Reaktion auf eine Anforderung zur Synchronisation, die das Token einschließt, umfasst.
  12. Verfahren nach Anspruch 1, wobei: die erste Vorrichtung ein Nachrichten-Server (210) ist, und die zweite Vorrichtung ein oder mehrere Nachrichten-Clients (260) ist/sind; der Vorgang des Vornehmens einer Änderung ein Vorgang des Vornehmens einer Vielzahl von Änderungen an den Daten (232, 242, 252) des Nachrichten-Servers ist; das Verfahren des Weiteren einen Vorgang des Generierens (324) einer Vielzahl von Token umfasst, die jeweils die Vielzahl von Änderungen an den Daten des Nachrichten-Servers identifizieren; der Vorgang des Sendens ein Vorgang des Sendens einer Vielzahl von Mitteilungen zu dem einen oder den mehreren Nachrichten-Clients über einen unzuverlässigen Kommunikationskanal ist, wobei jede Mitteilung (I) wenigstens eine der Vielzahl von Änderungen und (II) wenigstens eines der Vielzahl von Token enthält und wenigstens eines der Vielzahl von Token der wenigstens einen der Vielzahl von Änderungen entspricht; der Vorgang des Empfangens der Synchronisationsanforderung einen Vorgang des Empfangens einer Vielzahl von Token von dem einen oder den mehreren Nachrichten-Clients und einen Vorgang des Interpretierens eines oder mehrerer Token umfasst, die zu dem einen oder den mehreren Nachrichten-Clients gesendet, jedoch von dem einen oder den mehreren Nachrichten-Clients als Hinweis, dass eine oder mehrere Änderungen von dem einen oder den mehreren Nachrichten-Clients fehlen, nicht rückempfangen wurden; und der Vorgang des erneuten Sendens einen Vorgang des erneuten Sendens der einen oder der mehreren fehlenden Änderungen zu dem einen oder den mehreren Nachrichten-Clients umfasst.
  13. Verfahren nach Anspruch 12, das des Weiteren den Vorgang des erneuten Sendens eines oder mehrerer Token, die die eine bzw. die mehreren fehlenden Ände rungen identifizieren, zu dem einen bzw. den mehreren Nachrichten-Clients umfasst.
  14. Verfahren nach Anspruch 12 oder 13, das des Weiteren umfasst: einen Vorgang (334) des Generierens eines Sammelobjektes, das eine Liste von Token umfasst, wobei die Liste einen Zustand der Daten darstellt, die in dem einen bzw. den mehreren Nachrichten-Clients gespeichert sind; und einen Vorgang (336) des Sendens des Sammelobjektes zu dem einen bzw. den mehreren Nachrichten-Clients.
  15. Verfahren nach einem der Ansprüche 12 bis 14, wobei der unzuverlässige Kommunikationskanal einen drahtlosen Kommunikationskanal umfasst.
  16. Verfahren nach einem der Ansprüche 12 bis 15, das des Weiteren den Vorgang (326) des Komprimierens der Vielzahl von Token umfasst, wobei der Vorgang des Komprimierens der Vielzahl von Token eine Vielzahl von Token erzeugt, die für den einen bzw. jeden der mehreren Nachrichten-Clients einzigartig sind.
  17. Verfahren nach einem der Ansprüche 12 bis 16, wobei die in dem Nachrichten-Server gespeicherten Daten wenigstens Kontakt-Daten, Kalender-Daten, Aufgaben-Daten oder E-Mail-Daten enthalten und wobei der eine bzw. die mehreren Nachrichten-Clients einen tragbaren Personalcomputer, ein Mobiltelefon, einen Pager oder einen PDA umfassen.
  18. Verfahren nach einem der Ansprüche 1 bis 17, wobei wenigstens eine an den Daten des Nachrichten-Servers vorgenommene Änderung in einen ersten Teil und einen zweiten Teil unterteilt wird und wenigstens eine Mitteilung dem ersten Teil entspricht, und das Verfahren des Weiteren umfasst: einen Vorgang des Rückempfangens eines Tokens, das mit dem ersten Teil verknüpft ist, von dem einen bzw. den mehreren Nachrichten-Clients; und einen Vorgang des Sendens des zweiten Teils zu dem einen bzw. den mehreren Nachrichten-Clients in Reaktion auf das Rückempfangen des mit dem ersten Teil verknüpften Tokens.
  19. Verfahren nach Anspruch 1, wobei: die erste Vorrichtung ein Nachrichten-Server (210) ist und die zweite Vorrichtung ein oder mehrere Nachrichten-Clients (260) ist/sind; der Vorgang des Sendens einen Schritt des Bereitstellens (320) einer Vielzahl von Mitteilungen für den einen bzw. die mehreren Nachrichten-Clients über einen unzuverlässigen Kommunikationskanal umfasst, wobei die Vielzahl von Mitteilungen (I) eine Vielzahl von Änderungen an dem in dem Nachrichten-Server gespeicherten Daten und (II) eine Vielzahl von Token, die jede der Vielzahl von Änderungen identifizieren, enthält; und der Vorgang des erneuten Sendens einen Schritt des Feststellens (340), ob dem einen bzw. den mehreren Nachrichten-Clients eine der Vielzahl von Mitteilungen fehlt, basierend darauf, ob der eine bzw. die mehreren Nachrichten-Clients jedes der Vielzahl von Token, die jede der Vielzahl von Änderungen identifizieren, zurückleiten kann, sowie einen Schritt des Bereitstellens jeder Änderung umfasst, die mit einer fehlenden Mitteilung verknüpft ist, die in dem Schritt des Feststellens identifiziert wird, für den einen bzw. den mehreren Nachrichten-Clients.
  20. Verfahren nach Anspruch 19, wobei der unzuverlässige Kommunikationskanal einen drahtlosen Kommunikationskanal umfasst.
  21. Verfahren nach Anspruch 19 oder 20, das des Weiteren einen Schritt des Bereitstellens eines Sammelobjektes für den einen bzw. die mehreren Nachrichten-Clients umfasst, wobei das Sammelobjekt einen Zustand von Daten darstellt, die in dem einen bzw. den mehreren Nachrichten-Clients gespeichert sind.
  22. Verfahren nach einem der Ansprüche 19 bis 21, wobei der Schritt des Bereitstellens jeder Änderung, die mit einer fehlenden Mitteilung verknüpft ist, des Weiteren einen Schritt des Bereitstellens jedes Tokens umfasst, das mit einer fehlenden Mitteilung verknüpft ist.
  23. Verfahren nach einem der Ansprüche 19 bis 22, das des Weiteren einen Vorgang (326) des Komprimierens der Vielzahl von Token umfasst, um Token zu erzeugen, die für den einen bzw. jeden der mehreren Nachrichten-Clients einzigartig sind.
  24. Verfahren nach einem der Ansprüche 19 bis 23, wobei die in dem Nachrichten-Server gespeicherten Daten wenigstens Kontakt-Daten, Kalender-Daten, Aufgaben-Daten oder E-Mail-Daten enthalten, und wobei der eine bzw. die mehreren Nachrichten-Clients einen tragbaren Personalcomputer, ein Mobiltelefon, einen Pager oder einen PDA umfassen.
  25. Verfahren nach einem der Ansprüche 19 bis 24, wobei wenigstens eine an den Daten des Nachrichten-Servers vorgenommene Änderung in einen ersten Teil und einen zweiten Teil unterteilt wird und wenigstens eine Mitteilung dem ersten Teil entspricht, und das Verfahren des Weiteren einen Schritt des Bereitstellens des zweiten Teils für den einen bzw. die mehreren Nachrichten-Clients in Reaktion auf das Empfangen eines mit dem ersten Teil verknüpften Tokens umfasst.
  26. Verfahren nach Anspruch 1, wobei: die erste Vorrichtung ein Nachrichten-Server (210) ist und die zweite Vorrichtung ein oder mehrere Nachrichten-Clients (260) ist/sind; der Vorgang des Sendens das Identifizieren einer Vielzahl von Änderungen an den Daten des Nachrichten-Servers, das Generieren einer Vielzahl von Token, die jede der Vielzahl von Änderungen an den Daten des Nachrichten-Servers identifizieren, und das Veranlassen des Sendens einer Vielzahl von Mitteilungen zu dem einen bzw. den mehreren Nachrichten-Clients über einen unzuverlässigen Kommunikationskanal umfasst, wobei jede Mitteilung (I) wenigstens eine der Vielzahl der Änderungen und (II) wenigstens eines der Vielzahl von Token enthält, und das wenigstens eine der Vielzahl von Token der wenigstens einen der Vielzahl von Änderungen entspricht; der Vorgang des Empfangens das Rück-Akkumulieren einer Vielzahl von Token von dem einen bzw. den mehreren Nachrichten-Clients umfasst; und der Akt des erneuten Sendens das Interpretieren eines oder mehrerer Token, die zu dem einen bzw. den mehreren Nachrichten-Clients gesendet wurden, jedoch als Hinweis, dass dem einen bzw. den mehreren Nachrichten-Clients eine oder mehrere Änderungen fehlen, nicht von dem einen bzw. mehreren Nachrichten-Clients rückempfangen wurden; und das Veranlassen des erneuten Sendens der einen bzw. der mehreren fehlenden Änderungen zu dem einen bzw. den mehreren Nachrichten-Clients umfasst.
  27. Verfahren nach Anspruch 26, das des Weiteren umfasst: Erzeugen eines Sammelobjektes, das eine Liste von Token umfasst, wobei die Liste einen Zustand der Daten darstellt, die in dem einen bzw. den mehreren Nachrichten-Clients gespeichert sind; und Veranlassen des Sendens des Sammelobjektes zu dem einen bzw. den mehreren Nachrichten-Clients.
  28. Verfahren nach Anspruch 26 oder 27, das des Weiteren das Veranlassen des erneuten Sendens eines oder mehrerer Token, die die eine bzw. die mehreren fehlenden Änderungen identifizieren, umfasst.
  29. Verfahren nach einem der Ansprüche 26 bis 28, das des Weiteren das Komprimieren der Vielzahl von Token umfasst, wobei die durch Computer ausführbaren Befehle eine Vielzahl von Token erzeugen, die einzigartig für den einen bzw. jeden der mehreren Nachrichten-Clients sind.
  30. Verfahren nach einem der Ansprüche 26 bis 29, wobei die in dem Nachrichten-Server gespeicherten Daten wenigstens Kontakt-Daten, Kalender-Daten, Aufgaben-Daten oder E-Mail-Daten enthalten.
  31. Verfahren nach einem der Ansprüche 26 bis 30, wobei wenigstens eine an den Daten des Nachrichten-Servers vorgenommene Änderung in einen ersten Teil und einen zweiten Teil unterteilt wird und wenigstens eine Mitteilung dem ersten Teil entspricht, und das Verfahren des Weiteren umfasst: Rückempfangen (344) eines mit dem ersten Teil verknüpften Tokens von dem einen bzw. den mehreren Nachrichten-Clients; und Bereitstellen (360) des zweiten Teils für den einen bzw. die mehreren Nachrichten-Clients in Reaktion auf das Rückempfangen des mit dem ersten Teil verknüpften Tokens.
  32. Computerlesbares Speichermedium, das Befehle zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 31 speichert.
  33. System in einer elektronischen Nachrichtenübermittlungsumgebung, wobei das System dazu dient, Daten zu synchronisieren und dabei eine oder mehrere Aktualisierungsinformationen berücksichtigt werden, die von dem einen oder mehreren Nachrichten-Clients empfangen worden sind, und etwaige Unterschiede dahingehend berücksichtigt werden, wie der Nachrichten-Server und der eine bzw. die mehreren Nachrichten-Clients Daten speichern, wobei das System umfasst: einen Nachrichten-Server (210), der Daten speichert; einen oder mehrere Nachrichten-Clients (260), die Daten speichern; einen unzuverlässigen Kommunikationskanal (216), der den Nachrichten-Server und den einen bzw. die mehreren Nachrichten-Clients wenigstens intermittierend verbindet; und eine Prozessoreinrichtung (121), die die folgenden Vorgänge durchführt: Vornehmen einer Vielzahl von Änderungen an den Daten des Nachrichten-Servers; Generieren einer Vielzahl von Token, die jede der Vielzahl von Änderungen an den Daten des Nachrichten-Servers identifizieren; Senden einer Vielzahl von Mitteilungen zu dem einen bzw. den mehreren Nachrichten-Clients über den unzuverlässigen Kommunikationskanal, wobei jede Mitteilung (I) wenigstens eine der Vielzahl der Änderungen und (II) wenigstens eines der Vielzahl von Token enthält und das wenigstens eine der Vielzahl von Token der wenigstens einen der Vielzahl von Änderungen entspricht; Rückempfangen einer Vielzahl von Token von dem einen bzw. den mehreren Nachrichten-Clients; Interpretieren eines oder mehrerer Token, die zu dem einen bzw. den mehreren Nachrichten-Clients gesendet wurden, jedoch als Hinweis darauf, dass dem einen bzw. den mehreren Nachrichten-Clients eine oder mehrere Änderungen fehlen, nicht von dem einen bzw. den mehreren Nachrichten-Clients rückempfangen wurden; und erneutes Senden der einen bzw. mehreren fehlenden Änderungen zu dem einen bzw. den mehreren Nachrichten-Clients.
  34. System nach Anspruch 33, das des Weiteren eine Prozessoreinrichtung umfasst, die die folgenden Vorgänge durchführt: Generieren eines Sammelobjektes, das eine Liste von Token umfasst, wobei die Liste einen Zustand von in dem einen bzw. den mehreren Nachrichten-Clients gespeicherten Daten darstellt; und Senden des Sammelobjektes zu dem einen bzw. den mehreren Nachrichten-Clients.
  35. System nach Anspruch 33 oder 34, wobei der unzuverlässige Kommunikationskanal einen drahtlosen Kommunikationskanal umfasst.
  36. Verfahren nach einem der Ansprüche 33 bis 35, das des Weiteren eine Prozessoreinrichtung zum erneuten Senden eines oder mehrerer Token, die die eine bzw. die mehreren fehlenden Änderungen identifizieren, umfasst.
  37. System nach einem der Ansprüche 33 bis 36, das des Weiteren eine Prozessoreinrichtung zum Komprimieren der Vielzahl von Token umfasst, wobei die Prozessoreinrichtung eine Vielzahl von Token erzeugt, die einzigartig für den einen bzw. jeden der Nachrichten-Clients sind.
  38. System nach einem der Ansprüche 33 bis 37, wobei die in dem Nachrichten-Server gespeicherten Daten wenigstens Kontakt-Daten, Kalender-Daten, Aufgaben-Daten und E-Mail-Daten enthalten, und wobei der eine bzw. die mehreren Nachrichten-Clients einen tragbaren Personalcomputer, ein Mobiltelefon, einen Pager oder ein PDA umfassen.
  39. System nach einem der Ansprüche 33 bis 38, wobei wenigstens eine an den Daten des Nachrichten-Servers vorgenommene Änderung in einen ersten Teil und einen zweiten Teil unterteilt wird und wenigstens eine Mitteilung dem ersten Teil entspricht und das System des Weiteren eine Prozessoreinrichtung umfasst, die die folgenden Vorgänge durchführt: Rückempfangen eines mit dem ersten Teil verknüpften Tokens von dem einen bzw. den mehreren Nachrichten-Clients; und Bereitstellen des zweiten Teils für den einen bzw. die mehreren Nachrichten-Clients in Reaktion auf das Rückempfangen des mit dem ersten Teil verknüpften Tokens.
  40. System nach einem der Ansprüche 33 bis 39, das zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 31 eingerichtet ist.
DE60203550T 2001-01-24 2002-01-15 Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen Expired - Lifetime DE60203550T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/768,747 US6941326B2 (en) 2001-01-24 2001-01-24 Accounting for update notifications in synchronizing data that may be represented by different data structures
US768747 2001-01-24

Publications (2)

Publication Number Publication Date
DE60203550D1 DE60203550D1 (de) 2005-05-12
DE60203550T2 true DE60203550T2 (de) 2005-09-01

Family

ID=25083375

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60203550T Expired - Lifetime DE60203550T2 (de) 2001-01-24 2002-01-15 Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen

Country Status (4)

Country Link
US (4) US6941326B2 (de)
EP (1) EP1227396B1 (de)
AT (1) ATE292818T1 (de)
DE (1) DE60203550T2 (de)

Families Citing this family (223)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
FI113129B (fi) * 2001-03-26 2004-02-27 Nokia Corp Sovellusdatan synkronointi tietoliikennejärjestelmässä
US20090100149A1 (en) * 2001-05-21 2009-04-16 Greg Arnold Method and system for using tokens to conduct file sharing transactions between handhelds and a web service
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US7668535B2 (en) 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US7191209B1 (en) * 2001-07-30 2007-03-13 Bellsouth Intellectual Property Corp. Application server and method to perform hierarchical configurable data manipulation
US7441007B1 (en) 2001-07-30 2008-10-21 At&T Intellectual Property I, L.P. System and method for allowing applications to retrieve properties and configuration information from a persistent store
US7353248B1 (en) 2001-07-30 2008-04-01 At&T Delaware Intellectual Property, Inc. Application server and method to perform hierarchical configurable data validation
JP2003067185A (ja) * 2001-08-14 2003-03-07 Internatl Business Mach Corp <Ibm> アプリケーション編集装置、データ処理方法及びプログラム
JP4588271B2 (ja) * 2001-09-18 2010-11-24 富士通株式会社 データ同期システム、データ同期方法、データセンタ及びクライアント端末
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7870492B2 (en) * 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US6658091B1 (en) 2002-02-01 2003-12-02 @Security Broadband Corp. LIfestyle multimedia security system
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
US20040003007A1 (en) * 2002-06-28 2004-01-01 Prall John M. Windows management instrument synchronized repository provider
US20040044799A1 (en) * 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
TWI231426B (en) * 2002-09-03 2005-04-21 Nokia Corp Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
KR100459439B1 (ko) * 2002-10-18 2004-12-03 엘지전자 주식회사 통합 웹 브라우징 서비스 장치 및 방법
US6970987B1 (en) * 2003-01-27 2005-11-29 Hewlett-Packard Development Company, L.P. Method for storing data in a geographically-diverse data-storing system providing cross-site redundancy
JP3632695B2 (ja) * 2003-05-06 2005-03-23 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US7577960B2 (en) * 2003-06-19 2009-08-18 Microsoft Corporation System and method for managing cached objects using notifications bonds
US7509352B1 (en) * 2003-06-30 2009-03-24 Microsoft Corporation Method and apparatus for record synchronization with conflict resolution
WO2005008432A2 (en) * 2003-07-11 2005-01-27 Sonolink Communications Systems, Llc System and method for advanced rule creation and management within an integrated virtual workspace
IL157886A0 (en) * 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
IL158158A (en) * 2003-09-29 2012-05-31 Bamboo Mediacasting Ltd Distribution of multicast data to users
FI117151B (fi) 2003-12-18 2006-06-30 Capricode Oy Menetelmä, tiedonsiirtojärjestely, palvelin ja päätelaite päätelaitteessa olevan tiedon päivityksen suorittamiseksi
US7822708B1 (en) 2004-01-28 2010-10-26 Oracle America, Inc. Global attribute mapping data in an enterprise information system
US7483870B1 (en) 2004-01-28 2009-01-27 Sun Microsystems, Inc. Fractional data synchronization and consolidation in an enterprise information system
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US8988221B2 (en) 2005-03-16 2015-03-24 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US9191228B2 (en) 2005-03-16 2015-11-17 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10375253B2 (en) 2008-08-25 2019-08-06 Icontrol Networks, Inc. Security system with networked touchscreen and gateway
GB2428821B (en) 2004-03-16 2008-06-04 Icontrol Networks Inc Premises management system
US8963713B2 (en) 2005-03-16 2015-02-24 Icontrol Networks, Inc. Integrated security network with security alarm signaling system
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US11113950B2 (en) 2005-03-16 2021-09-07 Icontrol Networks, Inc. Gateway integrated with premises security system
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10444964B2 (en) 2007-06-12 2019-10-15 Icontrol Networks, Inc. Control system user interface
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US11368327B2 (en) 2008-08-11 2022-06-21 Icontrol Networks, Inc. Integrated cloud system for premises automation
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US10200504B2 (en) 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11159484B2 (en) 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10142392B2 (en) * 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US9609003B1 (en) 2007-06-12 2017-03-28 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US8635350B2 (en) 2006-06-12 2014-01-21 Icontrol Networks, Inc. IP device discovery systems and methods
US10062273B2 (en) 2010-09-28 2018-08-28 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10313303B2 (en) 2007-06-12 2019-06-04 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US10348575B2 (en) 2013-06-27 2019-07-09 Icontrol Networks, Inc. Control system user interface
US10382452B1 (en) 2007-06-12 2019-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US7477255B1 (en) * 2004-04-12 2009-01-13 Nvidia Corporation System and method for synchronizing divergent samples in a programmable graphics processing unit
US7324112B1 (en) 2004-04-12 2008-01-29 Nvidia Corporation System and method for processing divergent samples in a programmable graphics processing unit
US20060031340A1 (en) * 2004-07-12 2006-02-09 Boban Mathew Apparatus and method for advanced attachment filtering within an integrated messaging platform
US20090094332A1 (en) * 2004-09-02 2009-04-09 Zimbra, Inc. System and method for enabling offline use of email through a browser interface
FI120165B (fi) * 2004-12-29 2009-07-15 Seven Networks Internat Oy Tietokannan synkronointi matkaviestinverkon kautta
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US9450776B2 (en) 2005-03-16 2016-09-20 Icontrol Networks, Inc. Forming a security network including integrated security system components
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US9306809B2 (en) 2007-06-12 2016-04-05 Icontrol Networks, Inc. Security system with networked touchscreen
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US7849199B2 (en) * 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US20070014277A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070016636A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US7631045B2 (en) * 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US7623515B2 (en) * 2005-07-14 2009-11-24 Yahoo! Inc. Content router notification
US9282081B2 (en) * 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
US7962585B2 (en) * 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
CN1852309A (zh) * 2005-11-16 2006-10-25 华为技术有限公司 数据同步处理方法及其客户端
US20070123217A1 (en) * 2005-11-30 2007-05-31 Research In Motion Limited Display of secure messages on a mobile communication device
US8355701B2 (en) 2005-11-30 2013-01-15 Research In Motion Limited Display of secure messages on a mobile communication device
US8200699B2 (en) 2005-12-01 2012-06-12 Microsoft Corporation Secured and filtered personal information publishing
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US9367832B2 (en) * 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
US8201233B2 (en) * 2006-02-06 2012-06-12 Cisco Technology, Inc. Secure extended authentication bypass
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US7992203B2 (en) 2006-05-24 2011-08-02 Red Hat, Inc. Methods and systems for secure shared smartcard access
US8098829B2 (en) 2006-06-06 2012-01-17 Red Hat, Inc. Methods and systems for secure key delivery
US8495380B2 (en) 2006-06-06 2013-07-23 Red Hat, Inc. Methods and systems for server-side key generation
US8364952B2 (en) 2006-06-06 2013-01-29 Red Hat, Inc. Methods and system for a key recovery plan
US7822209B2 (en) 2006-06-06 2010-10-26 Red Hat, Inc. Methods and systems for key recovery for a token
US8180741B2 (en) * 2006-06-06 2012-05-15 Red Hat, Inc. Methods and systems for providing data objects on a token
US8332637B2 (en) 2006-06-06 2012-12-11 Red Hat, Inc. Methods and systems for nonce generation in a token
US8589695B2 (en) 2006-06-07 2013-11-19 Red Hat, Inc. Methods and systems for entropy collection for server-side key generation
US9769158B2 (en) 2006-06-07 2017-09-19 Red Hat, Inc. Guided enrollment and login for token users
US8707024B2 (en) 2006-06-07 2014-04-22 Red Hat, Inc. Methods and systems for managing identity management security domains
US8099765B2 (en) 2006-06-07 2012-01-17 Red Hat, Inc. Methods and systems for remote password reset using an authentication credential managed by a third party
US8412927B2 (en) 2006-06-07 2013-04-02 Red Hat, Inc. Profile framework for token processing system
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
US8787566B2 (en) 2006-08-23 2014-07-22 Red Hat, Inc. Strong encryption
US8806219B2 (en) 2006-08-23 2014-08-12 Red Hat, Inc. Time-based function back-off
US8356342B2 (en) 2006-08-31 2013-01-15 Red Hat, Inc. Method and system for issuing a kill sequence for a token
US8977844B2 (en) 2006-08-31 2015-03-10 Red Hat, Inc. Smartcard formation with authentication keys
US9038154B2 (en) 2006-08-31 2015-05-19 Red Hat, Inc. Token Registration
US8074265B2 (en) 2006-08-31 2011-12-06 Red Hat, Inc. Methods and systems for verifying a location factor associated with a token
US7870194B2 (en) * 2006-11-14 2011-01-11 Microsoft Corporation Sharing calendar information
US7966426B2 (en) * 2006-11-14 2011-06-21 Microsoft Corporation Offline synchronization capability for client application
US8693690B2 (en) 2006-12-04 2014-04-08 Red Hat, Inc. Organizing an extensible table for storing cryptographic objects
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US8813243B2 (en) 2007-02-02 2014-08-19 Red Hat, Inc. Reducing a size of a security-related data object stored on a token
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8832453B2 (en) 2007-02-28 2014-09-09 Red Hat, Inc. Token recycling
US8639940B2 (en) 2007-02-28 2014-01-28 Red Hat, Inc. Methods and systems for assigning roles on a token
US9081948B2 (en) 2007-03-13 2015-07-14 Red Hat, Inc. Configurable smartcard
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US10051078B2 (en) 2007-06-12 2018-08-14 Icontrol Networks, Inc. WiFi-to-serial encapsulation in systems
US10616075B2 (en) 2007-06-12 2020-04-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10389736B2 (en) 2007-06-12 2019-08-20 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US10666523B2 (en) 2007-06-12 2020-05-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US10498830B2 (en) 2007-06-12 2019-12-03 Icontrol Networks, Inc. Wi-Fi-to-serial encapsulation in systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US10423309B2 (en) 2007-06-12 2019-09-24 Icontrol Networks, Inc. Device integration framework
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US20090012961A1 (en) * 2007-06-29 2009-01-08 Balaya Llc System and method for deepening group bonds by granting access to a data structure
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US7949355B2 (en) * 2007-09-04 2011-05-24 Research In Motion Limited System and method for processing attachments to messages sent to a mobile device
US8254582B2 (en) 2007-09-24 2012-08-28 Research In Motion Limited System and method for controlling message attachment handling functions on a mobile device
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US10552384B2 (en) 2008-05-12 2020-02-04 Blackberry Limited Synchronizing media files available from multiple sources
US8095566B2 (en) 2008-05-12 2012-01-10 Research In Motion Limited Managing media files from multiple sources
US8086651B2 (en) 2008-05-12 2011-12-27 Research In Motion Limited Managing media files using metadata injection
US8706690B2 (en) 2008-05-12 2014-04-22 Blackberry Limited Systems and methods for space management in file systems
US8122037B2 (en) 2008-05-12 2012-02-21 Research In Motion Limited Auto-selection of media files
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
CN101431401B (zh) * 2008-09-08 2012-04-04 华为终端有限公司 一种同步故障处理方法、客户端、服务器及其系统
US8620861B1 (en) 2008-09-30 2013-12-31 Google Inc. Preserving file metadata during atomic save operations
US9934240B2 (en) 2008-09-30 2018-04-03 Google Llc On demand access to client cached files
US9628440B2 (en) 2008-11-12 2017-04-18 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US8812699B2 (en) * 2008-12-04 2014-08-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for data synchronization in a multi-path environment
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
CN101883419A (zh) * 2009-05-06 2010-11-10 中兴通讯股份有限公司 客户端信息的同步方法和系统
US20110153668A1 (en) * 2009-12-18 2011-06-23 Research In Motion Limited Accessing a data item stored in an unavailable mobile communication device
EP2569712B1 (de) 2010-05-10 2021-10-13 Icontrol Networks, Inc. Benutzeroberfläche für ein steuersystem
US8266102B2 (en) * 2010-05-26 2012-09-11 International Business Machines Corporation Synchronization of sequential access storage components with backup catalog
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
US8799378B2 (en) * 2010-12-17 2014-08-05 Microsoft Corporation Non-greedy consumption by execution blocks in dataflow networks
US20120323990A1 (en) * 2011-06-15 2012-12-20 Microsoft Corporation Efficient state reconciliation
US9367560B1 (en) * 2011-12-14 2016-06-14 Unboundid, Corp. Method, system and apparatus for synchronizing changes in a directory service
US9244934B2 (en) 2012-04-23 2016-01-26 Google Inc. Sharing and synchronizing electronically stored files
US9239846B2 (en) 2012-04-23 2016-01-19 Google Inc. Sharing and synchronizing electronically stored files
US9529818B2 (en) 2012-04-23 2016-12-27 Google Inc. Sharing and synchronizing electronically stored files
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US8775682B1 (en) * 2012-05-08 2014-07-08 Google Inc. Data synchronization with eventual consistency
US20130117681A1 (en) * 2013-01-02 2013-05-09 Sylvain Veys Method and Apparatus for Targeting Updated Personal Data to Providers
US9253223B1 (en) 2013-01-23 2016-02-02 Google Inc. Live interaction in persistent conversations
US9270630B1 (en) 2013-01-23 2016-02-23 Google Inc. Integrating communication modes in persistent conversations
US9338403B2 (en) 2013-01-23 2016-05-10 Google Inc. Persistent conversations
US9928975B1 (en) 2013-03-14 2018-03-27 Icontrol Networks, Inc. Three-way switch
US9287727B1 (en) 2013-03-15 2016-03-15 Icontrol Networks, Inc. Temporal voltage adaptive lithium battery charger
US9867143B1 (en) 2013-03-15 2018-01-09 Icontrol Networks, Inc. Adaptive Power Modulation
US10776384B1 (en) 2013-04-30 2020-09-15 Ping Identity Corporation Method, server and system for criteria-based assured replication
US10841668B2 (en) 2013-08-09 2020-11-17 Icn Acquisition, Llc System, method and apparatus for remote monitoring
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US9740474B2 (en) 2014-10-29 2017-08-22 Oracle International Corporation Orchestration of software applications upgrade using automatic hang detection
US9880828B2 (en) * 2014-11-07 2018-01-30 Oracle International Corporation Notifications framework for distributed software upgrades
US10505850B2 (en) * 2015-02-24 2019-12-10 Qualcomm Incorporated Efficient policy enforcement using network tokens for services—user-plane approach
CN105306585B (zh) * 2015-11-12 2019-02-05 焦点科技股份有限公司 一种多数据中心的数据同步方法
US20200184386A1 (en) * 2018-12-10 2020-06-11 Hewlett-Packard Development Company, L.P. Systems to resolve shipment delays
US10979500B1 (en) * 2018-12-31 2021-04-13 Facebook, Inc. Techniques for directive-based messaging synchronization
US11025576B1 (en) * 2018-12-31 2021-06-01 Facebook, Inc. Techniques for backend-specific cursor tracking
US11055314B1 (en) 2018-12-31 2021-07-06 Facebook, Inc. Techniques for a database-driven messaging user interface
US10855761B1 (en) 2018-12-31 2020-12-01 Facebook, Inc. Techniques for in-place directive execution
CN110737722B (zh) * 2019-09-29 2022-07-05 国网福建省电力有限公司检修分公司 变电站监控后台数据库、scd及rcd的同步系统及方法
US11265301B1 (en) * 2019-12-09 2022-03-01 Amazon Technologies, Inc. Distribution of security keys
CN113014615B (zh) * 2019-12-20 2023-11-14 西安诺瓦星云科技股份有限公司 数据同步方法、装置和系统
EP4033718A1 (de) * 2021-01-22 2022-07-27 Amadeus S.A.S. Direktkanaldatenaktualisierung in vermittelten datenaustauschsystemen
CN115544049B (zh) * 2022-11-29 2023-03-21 明度智云(浙江)科技有限公司 数据处理方法、电子设备及计算机可读存储介质
US11880803B1 (en) * 2022-12-19 2024-01-23 Tbk Bank, Ssb System and method for data mapping and transformation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337044A (en) * 1991-10-08 1994-08-09 Nomadic Systems, Inc. System for remote computer control using message broadcasting system
US5524135A (en) * 1994-02-14 1996-06-04 Sony Corporation Method and apparatus for secure downloading of operational information into a wireless communications device
US5896566A (en) * 1995-07-28 1999-04-20 Motorola, Inc. Method for indicating availability of updated software to portable wireless communication units
US5886991A (en) * 1995-12-13 1999-03-23 Lucent Technologies Inc. System and method for quickly distributing program updates in a distributed architecture processing system
US6108655A (en) * 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6119167A (en) * 1997-07-11 2000-09-12 Phone.Com, Inc. Pushing and pulling data in networks
US6192410B1 (en) * 1998-07-06 2001-02-20 Hewlett-Packard Company Methods and structures for robust, reliable file exchange between secured systems
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US6587441B1 (en) * 1999-01-22 2003-07-01 Technology Alternatives, Inc. Method and apparatus for transportation of data over a managed wireless network using unique communication protocol
JP2002539536A (ja) * 1999-03-05 2002-11-19 アクセンチュア・リミテッド・ライアビリティ・パートナーシップ 診療情報にアクセスするための方法およびシステム
US6694379B1 (en) * 1999-04-09 2004-02-17 Sun Microsystems, Inc. Method and apparatus for providing distributed clip-list management
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
GB2349044A (en) * 1999-04-16 2000-10-18 Emisis Infocom Group Plc Transfer of data to a PDA
US6249849B1 (en) * 1999-06-16 2001-06-19 International Business Machines Corporation “Fail-Safe” updating of redundant data in multiple data storage libraries
SE516871C2 (sv) * 1999-06-23 2002-03-12 Teracom Ab Metod för flödesstyrning i ett datakommunikationsnät
US6625621B2 (en) * 2000-01-04 2003-09-23 Starfish Software, Inc. System and methods for a fast and scalable synchronization server
US7043530B2 (en) * 2000-02-22 2006-05-09 At&T Corp. System, method and apparatus for communicating via instant messaging
US7072650B2 (en) * 2000-11-13 2006-07-04 Meshnetworks, Inc. Ad hoc peer-to-peer mobile radio access system interfaced to the PSTN and cellular networks
US6629261B1 (en) * 2000-11-21 2003-09-30 At&T Wireless Services, Inc. Enhanced data link layer selective reject mechanism in noisy wireless environment

Also Published As

Publication number Publication date
US7293049B2 (en) 2007-11-06
US6941326B2 (en) 2005-09-06
US7293045B2 (en) 2007-11-06
DE60203550D1 (de) 2005-05-12
US20050050104A1 (en) 2005-03-03
US20020099727A1 (en) 2002-07-25
ATE292818T1 (de) 2005-04-15
EP1227396B1 (de) 2005-04-06
EP1227396A1 (de) 2002-07-31
US7293046B2 (en) 2007-11-06
US20050144312A1 (en) 2005-06-30
US20050060355A1 (en) 2005-03-17

Similar Documents

Publication Publication Date Title
DE60203550T2 (de) Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE69834640T2 (de) System und Verfahren zur Synchronisierung elektronischer Nachrichten über ein Netzwerk
DE60115616T2 (de) Verfahren zur optimierung der synchronisation zwischen einer datenbank eines clienten und einer server-datenbank
DE602004009622T2 (de) Datenübertragung
DE60204729T2 (de) Objektenlöschen von einem Vorrichtungspeicher
DE60027247T2 (de) Verfahren und Systeme zur Konvertierung von Datenformaten
DE60313531T2 (de) Verfahren und Gerät zur Verarbeitung von sofortigen Nachrichten
DE60320045T2 (de) Verfahren zur Übertragung vollständiger Antworten zu abgekürzter elektronischer Post
DE69533565T2 (de) Verteiltes Computersystem
DE60223453T2 (de) Verfahren und Vorrichtung zur Benutzung eines Synchronisationsschlüssels
DE69926940T2 (de) Verfahren und System zum Auslagern der Konversionen von Nachrichtenanhängen
DE69930420T2 (de) System und Verfahren zum Verschieben von Information von einem Hostsystem an eine mobile Datenkommunikationsvorrichtung
DE60038448T2 (de) Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
DE10064627B4 (de) Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE60317453T2 (de) Verfahren zur Datenströmung zwischen einem Server und einem Client
DE602005001662T2 (de) Verfahren zum Synchronisieren der Status Information eines IMPS Clients
DE69937715T2 (de) Verbessertes Zwei-Phasen-Bindungsprotokoll
DE60217907T2 (de) Lokale cache-speicherung von bildern für online-konferenzprogramme
DE10239791A1 (de) System zur Sammlung und Verteilung von Kalenderinformationen
DE10303958B4 (de) Verfahren und System zum Einfügen eines Multimedia-Nachricht-Mehrfachelements in eine Multimedia-Nachricht
DE102008036453A1 (de) Verfahren zum Versenden von Daten und Kommunikationseinrichtung
DE10239790A1 (de) Elektronische Kalendarisierungsvorrichtung
EP1484882A1 (de) Verfahren zum Überwachen von Teilnehmerdiensten in einem Telekommunikationsnetz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition