JP2005509979A - 非同期型同期のシステムおよび方法 - Google Patents

非同期型同期のシステムおよび方法 Download PDF

Info

Publication number
JP2005509979A
JP2005509979A JP2003546265A JP2003546265A JP2005509979A JP 2005509979 A JP2005509979 A JP 2005509979A JP 2003546265 A JP2003546265 A JP 2003546265A JP 2003546265 A JP2003546265 A JP 2003546265A JP 2005509979 A JP2005509979 A JP 2005509979A
Authority
JP
Japan
Prior art keywords
computing device
change
data
trigger
routing system
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.)
Pending
Application number
JP2003546265A
Other languages
English (en)
Other versions
JP2005509979A5 (ja
Inventor
クインラン,ショーン
メンデス,ダニエル・ジェイ
ジョシ,ラジブ
アルドゥロフ,ユリ
Original Assignee
ヴィスト・コーポレーション
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 ヴィスト・コーポレーション filed Critical ヴィスト・コーポレーション
Publication of JP2005509979A publication Critical patent/JP2005509979A/ja
Publication of JP2005509979A5 publication Critical patent/JP2005509979A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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

Abstract

ユーザが、PC、PDA、携帯電話などのデバイス間でデータセットを非同期的に同期させることを可能にするシステムおよび方法が開示される。開示の方法は、そうした同期を、インターネット(102a)や企業ネットワーク(102b)を含むいくつかの媒体を介して実施できるようにする。この方法は、すべてのデバイス間で迅速かつ安全にデータを更新する諸ステップをさらに含む。

Description

関連出願
(関連出願の優先権引用)
本願は、発明者Sean Quinlanらによって、2001年11月15日に出願された、「System and Method for Asynchronous Synchronization」という名称の、米国仮出願第60/336,326号の特典を主張すると共に、これを参照によって本明細書に組み込むものである。
本発明は、一般に、コンピュータ・システムに関し、より詳細には、2台以上のデバイス間での情報の同期を実現するシステムおよび方法を提供する。
より高能力で低価格な計算処理技術の開発は、パーソナル・コンピュータ(「PC」)のユーザ数を増加させているだけではない。それはまた、より多種多様な数多くの計算処理デバイスを用意すると共に、2台以上の計算処理デバイス(PC、携帯電話、PDAなど)を利用するユーザの数も増加させている。しかし、従来の計算処理デバイスや情報と共に使用される技術は、新しいデバイス、デバイス相互接続と情報処理、さらにはそうした新しい技術を利用するユーザ数との関連で、当然にも、問題になり得ることが認められている。
従来の同期型データ同期は、例えば、同期アルゴリズムを適用する都度、そのユーザの計算処理デバイスのうちの2台で指定されたユーザ・データの完全に同期させている。
同期の前に、第1のユーザ・デバイス上にある指定されたユーザ・データ(「第1のデバイス・データ」)がネットワーク・サーバに転送され、そこで記憶される(「サーバ・データ」)。次いで、通常は、ユーザの選択に従って、第1のユーザ・デバイスのその後の起動時またはシャットダウン時、あるいは周期的に同期が開始される。
同期時には、サーバは、そのサーバ・データを、第1のデバイス・データと第2のユーザ・デバイス上にある対応するデータ(「第2のデバイス・データ」)とを完全に同期させる。すなわち、競合が存在しないと仮定すると、第1のデバイス・データへのすべての識別された変更のコピーがサーバに転送され、サーバは、それに対応して、サーバ・データを置き換え、またはそれへ追加を行う。次いで、そのサーバ・データに加えられた変更のコピーが第2のデバイス・データにも同様に加えられ、必要に応じて第2のデバイス・データを置き換え、またはそれへ追加を行う。競合が存在する場合、すなわち、データ要素が両方のユーザ・デバイスで変更されている場合は、ネットワーク・サーバは、通常、一方のユーザ・デバイスを他方に優先させることによって、あるいはユーザにそれらのデータ・バージョンのうちの1つを選択させることによってその競合を解決する。第1のデバイス変更が選択された場合には、サーバは、対応する第2のデバイス・データを置き換える。次いで、サーバは、同様に、第2のデバイス・データへ競合していない変更をサーバ・データと同期させ、次いで、第1のデバイス・データと同期させる。
従来の同期方式には、その普及にもかかわらず、若干の欠点もある。例えば、あるユーザのデバイスのうちの2台で指定されたデータのすべてに関してそれぞれ同期を行う場合でさえ、相当なユーザ・デバイス・リソースを必要とすることがある。これは、スマート電話やPDAなど、低能力のユーザ・デバイスを用いた場合には特に問題になる。というのは、その同期プロセス中ずっと、ユーザがそのデバイスを使用できなくなる可能性があるからである。
同期型同期方式も、相当なネットワーク・リソースを必要とする。例えば、増加しつつあるユーザのために、潜在的に大量のデータを同期させるのに必要とされるネットワーク帯域幅が管理不能になる可能性がある。同様に、明らかに十分であっても、同期サービスを求めるユーザ数が著しく増加すると、ネットワーク・サーバの能力の限界を超えることもある。いずれにしても、通常は他の用途に使用可能なリソースを、同期を実施することに集中させる必要がある。
その他の欠点には、最新の情報やセキュリティの利用可能性に関連するものが含まれる。例えば、延長された時間要件によって、ユーザが、起動時以外(例えば、携帯電話を使用する前など)に、あるいはより低い頻度で、同期を実施するよう促されることが考えられる。したがって、ユーザは結局、同期の前に、使用可能で有効に見える古いデータを使用することがある。また、セキュリティの維持も問題になるであろう。というのは、データセット全体の認証と暗号化は、通常、同期サービス提供者の「より高能力の」ネットワーク・サーバによって実施されるからである。
したがって、既存の同期方式の欠点を回避しつつ計算処理デバイス情報を同期させることを可能にする同期システムと方法が求められている。
本発明の諸態様は、2台以上の計算処理デバイス間での非同期的な同期の実施を実現すると同時に、さらに、従来の同期方式の欠点も回避できるようにするものである。
一態様では、各実施態様は、第1の計算処理デバイスが、指定された第1のデバイス・データと第2のデバイスのデータとの同期を、第2のデバイスが、第1のデバイス・データを受け取り、または第2のデバイス・データと第1のデバイスとの同期を開始するのとは無関係なときに開始できるように、非同期的に同期を実施する。別の態様では、各実施態様は、そうした同期を2台以上のデバイス間で、または2ユーザ以上のデバイス間で、あるいはその両方でも実施できるようにする。別の態様では、各実施態様は、データ変更の転送、更新、競合解決が、同期をとるユーザ・デバイスによって実施できるようにすると共に、同期すべきであると指定されたすべての情報を事前にサーバが記憶すること、またはサーバが同期を実施することが回避できるようにする。別の態様では、各実施態様は、特に、同期が可変の量または細分度のデータ上で開始できるようにする。
本発明による非同期型同期方法の一例は、第1のトリガを受け取り、第1のデバイス・データに変更が加えられているかどうか判定し、変更が加えられている場合には、その変更を指示する変更標識を経路指定システムに転送する第1の計算処理デバイスを含む。この例では、その変更はさらに、第2の計算処理デバイスによって受け取られ、第1のデバイス・トリガに対して非同期的にトリガする第2のデバイス・トリガに応答して、第2の計算処理デバイスの第2のデバイス・データと同期される。例えば、第1のトリガは、デバイス・ユーザがそのデバイスを使用していなかった場合の第1のデバイス・データ変更ごとの結果として、あるいは第三者が特定の更新または指定されたデータセットへの更新を発行したときに呼び出される。第2のトリガは、特に、ユーザが更新を要求する、変更が受領を保留している間に他の何らかの目的で第2のデバイスを経路指定システムに接続する、などの結果として呼び出される。
本発明による方法の別の例は、第1のトリガ・イベントを受け取り、経路指定システムに接続することによってそのイベントに応答し、その経路指定システムから切断された場合には、さらに、第2の計算処理デバイスの第2のデバイス・データへの変更を指示する変更標識をその経路指定システムから受け取る第1の計算処理デバイスを含む。この例では、変更標識は、第1のデバイス・トリガに対して非同期的に、すなわち「時間と無関係に」トリガする第2のデバイス・トリガに応答して経路指定システムに転送される。
本発明による方法の別の例は、第1のデバイス・トリガに応答して動作する第1の計算処理デバイスから、第1のデバイス・データへの変更を指示する変更標識を受け取り、その変更標識を記憶する経路指定システムを含む。この方法は、第1のデバイス・トリガに対して非同期的にトリガする第2のデバイス・トリガに応答して動作する第2の計算処理デバイスから、第1のデバイス変更を求める要求を受け取ることをさらに含む。この方法は、第2の計算処理デバイスに変更標識を転送することによって応答することをさらに含み、その変更は、第2の計算処理デバイスによって受け取られ、第2のデバイス・データと同期される。
上記その他の様々なシステムまたは方法例によれば、変更標識には、例えば、1つのデータ要素への1つの変更、様々なデータへの多数の変更、1つまたは複数のデータ属性への変更、変更の種類/程度の標識などが含まれる。この変更は、第1/第2のデバイスが使用可能な形に変換されていることも、それらのデバイスによって変換されることも考えられ、あるいは送受信されるデータ量が使用可能なデバイス/ネットワーク・リソース、デバイスのユーザ用途などに応じて異なることも考えられる。データには、特に、プログラム・コードやマルチメディア・データなどが含まれる。
有利には、本発明の諸態様は、2台以上の計算処理デバイス間での情報の同期を極めて効果的で効率のよい方式で実施できるようにする。様々な計算処理デバイスが、様々なデバイス、デバイス・リソースまたはデバイス・オペレーションに適した時間/イベント基準に従って非同期的にデータ変更を送受信できるようにする。さらに、計算処理デバイスがデータ競合や結果として生じる競合を解決することも可能にする。中でも特に、様々な計算処理デバイスが、さらに、それらのデバイスまたはネットワーク要素の使用可能なリソースまたはより要望の少ないリソースに応じて、様々な量、種類または細分度のデータを送受信できるようにする。以下の本文および図を参照すれば、その他の利点も明らかになるであろう。
本発明の諸形態は、非同期型同期システムと方法を実現する際に、2台以上の計算処理デバイス間で情報が非同期的に同期されるようにする。諸形態は、事前のネットワーク・サーバによる同期の実施や目標データのコピーを回避できるようにする。また、諸形態は、特に、様々な情報の種類と細分度で同期が実施できるようにする。
本明細書で使用する際、「または」という用語は、特に指示しない限りは、一般に「および/または」を意味するためのものであることに留意されたい。さらに、「ユーザ・デバイス」と「計算処理デバイス」は、「同期される情報」と「ユーザ・デバイス・データ」と同様に、本明細書がよりよく理解されるように、同義で使用する。だたし、そうした用語は限定的なものであると解釈すべきではない。
図1に、例えば、企業イントラネットを介して結合された企業用デバイス、インターネットを介して結合された個人用デバイス、または何らかの組み合わせを含む、様々な計算処理デバイス間での非同期型同期を可能にするように構成されている汎用ネットワーク・システム100の一例を示す。図示のように、システム100は、非同期対応ユーザ・デバイス101a〜bと101c〜f、ネットワーク(102a〜bなど)、ネットワーク・サーバ(103a〜bなど)、共通記憶104を含む。非同期システム100は、個々のアプリケーション(図示せず)の要件に従って、ルータ、キャッシュ、バックアップ・システム、その他の相互接続ネットワーク要素のほかに1つまたは複数のファイアウォール(ファイアウォール105など)を含む。
非同期型同期は、非同期方式で、第1のユーザ・デバイスが少なくとも1つの情報変更の同期を開始できるようにし、あるいは別のユーザ・デバイスの情報の開始された同期に応答できるようにし、好ましくはその両方を可能にする。より好ましくは、第1のユーザ・デバイスは、第2のユーザ・デバイスが第1のデバイスに接続されているか、それとも第1のデバイスによる事前に開始された同期を完了しているかどうか、あるいは第1のデバイスがその他のデバイスによる事前に開始された同期を完了しているかどうかとは無関係に、第1のユーザ・デバイス情報への変更の反復同期を開始することができる。
また、各実施形態は、1つまたは複数の重複するまたは重複しない非同期対応ユーザ・デバイスのグループ間で非同期型同期を実施できるようにする。その場合どのグループも、対応する作業空間要素を同期する2台以上のそうしたデバイスを含む。同期をとるユーザ・デバイスのグループ中の各ユーザ・デバイスは、例えば、それ自体の時間/イベント・トリガ、ユーザ開始、または他の何らかの適切な同期トリガに従って同期を開始し、またはそれに応答する。また、非同期型同期は、1つまたは複数の選択されたユーザ・デバイスまたはユーザ・デバイス・グループでの時間、スケジュール、イベント、リソース使用可能性、またはその他の基準に従って使用可能とすることも使用不能とすることもできる。
本例では、同期が経路指定システムを介して実施され、それはこの場合、同期をとるデバイスとの間でやりとりされる同期メッセージを一時的に記憶するための一時記憶を備えるデータ・センタである。
非同期対応ユーザ・デバイス101a〜fは、ユーザ情報を記憶し、同期されるユーザ情報または「作業空間要素」を指定し、変更(例えば、追加または変更など)が行われている作業空間要素の一部の非同期型同期を実施することのできる任意の計算処理デバイスを含む。したがって、非同期対応ユーザ・デバイス101a〜fの各々は、さらに、本明細書での議論と矛盾しない(すなわち「非同期対応の」)非同期方式で同期を実施することのできる単機能または多機能計算処理デバイスを含む。
より典型的には、非同期対応ユーザ・デバイス101a〜fは、非同期型同期機能が付加された従来型のユーザ・デバイスを含む。そうしたユーザ・デバイスには、例えば、それだけに限らないが、計算処理システムの中でも特に、デスクトップまたはラップトップPC、ハンドヘルド・コンピュータ、セットトップ・ボックス、携帯情報端末(「PDA」)、個人情報管理装置(「PIM」)、携帯電話、制御装置またはいわゆる「スマート」デバイスが含まれ得る。非同期対応ユーザ・デバイス101a〜fには、さらに、単一ユーザまたはマルチユーザ、あるいは統合型または分散型の計算処理デバイスが含まれる。同期をとるユーザ・デバイス・グループは、例えば、単一ユーザのネットワーク結合可能PC、PDA、携帯電話(「スマート」電話と呼ばれることもある)など、1人または複数のユーザのデバイスのうちの少なくとも2つを含む。
同期される情報(すなわち「ユーザ・デバイス情報」または「作業空間要素」)は、通常、ユーザ・デバイスのユーザまたはシステム管理者の役割を果たす別の人によって、少なくとも他の1台のユーザ・デバイスとの同期を要求していると指定された情報を含む。作業空間要素は、一般に、少なくとも一部は、そうした情報の同期をとる各非同期対応ユーザ・デバイスによって記憶され、参照され、転送される、実質的にどんな種類のプログラム・コードもマルチメディア・データ(例えば、値、その他の属性、値/属性標識、変更標識など)も含むことができる。
より典型的には、作業空間要素は、例えば、電子メール、ブックマーク、連絡先、会議メモまたはプロジェクト・データ、それらの属性または部分、あるいはユーザによって常駐またはダウンロード可能アプリケーション・プログラムに入力されるその他のユーザ・デバイス情報のうちの1つまたは複数を含む。作業空間要素は、適当に構成された非同期対応ユーザ・デバイスによって自動的に(例えば、プログラムによって)生成し、または電子的に受信することもできることが理解されるであろう。
必ずしもすべてのユーザ・デバイスが、完全な作業空間要素を処理することができ、あるいはすべての作業空間要素を同じ方式で維持することができる必要はないことに留意すべきである。それとは異なり、非同期型同期は、個々のユーザ・デバイスの能力に応じて、様々なユーザ・デバイスが様々なアプリケーション・プログラムまたはそれらの様々なバージョンを実行できるようにし、完全ではない作業空間要素属性の同期をとることができる(以下を参照されたい)。
非同期対応ユーザ・デバイス101a〜fは、さらに、ネットワーク102a〜bなど、1つまたは複数の無線または有線で結合可能な接続を介してユーザ・デバイス情報の同期をとるために結合することが可能である。本例では、ネットワーク102aは、インターネットなどの広域ネットワーク(「WAN」)であり、ネットワーク102bは、企業イントラネットなどのローカル・エリア・ネットワーク(「LAN」)である。ただし、1つまたは複数の様々な静的または再構成可能な相互接続を使用してユーザ・デバイス間で作業空間要素を転送することもできることが理解されるであろう。
本例では、ネットワーク・サーバ103aはデータ・センタ103の一部として動作する。従来の同期システムとは異なり、すべての作業空間データを記憶すると共に一対のユーザ・デバイスのそれぞれの間で同期を実施する共通の同期制御機能は必要とされない。それとは異なり、非同期対応ユーザ・デバイス101a〜fによって非同期的に同期を実施することができる。
本例では、代わりに、ネットワーク・サーバ103aが一時記憶104aの共通記憶管理機能として動作する。ネットワーク・サーバ103aは、より具体的には、通信リンクを形成し、次いで、第1のユーザ・デバイス情報を受け取り、それを一時的に記憶することによって、あるいは、次いで、別のユーザ・デバイスから非同期的に受け取り、かつ記憶した情報を検索し、第1のユーザ・デバイスに伝達することによって、第1のユーザ・デバイス要求に応答する。ネットワーク・サーバ103aは、さらに、同じ同期グループ中の1つまたは複数の他のユーザ・デバイスによるその情報の検索に続いて第1のユーザ・デバイスの一時的に記憶されたユーザ・デバイス情報の削除を実施することができる。ユーザ・デバイス情報を記憶する一時記憶104には、個々の用途に従って、メモリ、キャッシュ、より永続的な記憶デバイス、または任意の適切な記憶媒体が含まれる。
最後に、ネットワーク・サーバ103bは、企業ネットワーク・サーバとして従来方式で動作する。したがって、ネットワーク・サーバ103bは、同期に関しては透過的に動作する。ただし、ネットワーク・サーバ103bが、同期される情報のキャッシュを提供し、あるいはさらに、企業ネットワーク106内での同期またはシステム100内での分散型の同期を提供するために、別の従来方式で動作することも考えられることが理解されるであろう。
システム100の一動作例として、非同期対応ユーザ・デバイス101a〜cがそれぞれ、非同期型同期を実施するように構成された(すなわち非同期対応の)、単一ユーザのPCや携帯電話、PDAであると想定する。同期の前に、ユーザは、個人連絡先情報が変更されるたびに、それらのデバイスのそれぞれが、(例えば、それらのデバイスのそれぞれで実行中の連絡先プログラムの個人連絡先フォルダに記憶された)すべての個人連絡先情報の同期を残りのデバイスに対してとるように構成する。さらに、ユーザは、デバイスのそれぞれを、起動時に、残りのデバイスのそれぞれからのすべての同期情報の有無をチェックするように構成し、どのデバイスもネットワーク・サーバ103aに結合されたままではないと想定する。
ユーザが非同期対応PC上で(既存の連絡先電話番号を変更するなどによって)個人連絡先を変更すると、そのPCはネットワーク102aを介してネットワーク・サーバ103aに結合し、ネットワーク・サーバ103aを介して記憶104に変更メッセージを転送する。次いで、ユーザが残りのデバイスの1つ(PDAなど)を起動すると、そのPDAはネットワーク102aを介してネットワーク・サーバ103aに結合し、記憶104からその変更メッセージを検索する。以下で論じる、この変更に関連する競合解決がある場合には、次いでそれが実施されるはずである。次いで、PDAは、その変更メッセージに対応するデータを記憶する。
ユーザがさらにPDA上の個人連絡先情報を変更する(例えば新規連絡先を追加する)場合には、PDAは同様に、ネットワーク・サーバ103aに結合され、その変更を記憶104に転送する。次いで、ユーザが残りのデバイスの1つ、例えば、携帯電話を起動した場合には、その携帯電話がネットワーク102aを介してネットワーク・サーバ103aに結合し、記憶104からそれらの変更の両方を検索する。次いで、競合が存在しないものと仮定すると、携帯電話は、PCやPDAの変更に対応するデータを記憶する。
図2にシステム100(図1)の要素のうちの1つまたは複数を含む例示的処理システムを示す。他の代替手段も利用できると考えられるが、明確にするために、システム100の諸要素は、特に指示しない限り、ハードウェア、ソフトウェア、あるいはそれらと整合性のとれる1つまたは複数の処理システムによる何らかの組み合わせとして実装されるものとする。
処理システム200は、Pentium(登録商標)、Power PC(登録商標)、ディジタル信号プロセッサ(「DSP」)など、1つまたは複数の専用または汎用プロセッサ202を含む、通信チャネル(バス201など)を介して結合された諸要素を含む。システム200の要素には、1つまたは複数の入力デバイス203(マウス、キーボード、マイク、ペンなど)や、個々の用途に応じた、適切なディスプレイ、スピーカ、アクチュエータなど、1つまたは複数の出力デバイス204も含まれる。
システム200は、記憶/メモリ・デバイスまたはハードまたは取り外し可能記憶/メモリ媒体などのコンピュータ可読記憶媒体206に結合されたコンピュータ可読記憶媒体読取り装置205も含む。そうしたデバイスまたは媒体を、さらに、記憶デバイス208とメモリ209として別個に示す。それらには、個々の用途に応じて、各種ハードディスク、各種フロッピー(登録商標)/コンパクト・ディスク、各種ディジタル多用途ディスク(「DVD」)、スマート・カード、読取り専用メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリなどが含まれる。直接に、または、それだけに限らないが、すでに論じたものを含む1つまたは複数の適切な専用または公衆ネットワークを介してデバイス間通信を提供するために、モデム、DSL、赤外線またはその他適切な送受信機など、1つまたは複数の適切な通信デバイス207も含まれる。
作業メモリ210(メモリ209のものなど)は、そこに記憶され、または使用時にロードされるシステム100a〜c/200要素を実装するために、オペレーティング・システム(「OS」)211要素と、アプリケーション・プログラム、モバイル・コード、データなどのその他のプログラム212をさらに含む。個々のOSは、個々のデバイス、機能または個々の用途に一致するその他の形態に応じて異なる(Windows(登録商標)、Mac、Linux、各種Unix(登録商標)またはPalm OS、専用OSなど)。様々なプログラミング言語やその他のツールも利用することもできる。また、作業メモリ210の内容は、大まかにOS211とその他のプログラム212として示すが、個々の用途に応じて大きく異なることも理解されるであろう。
ソフトウェアとして(例えば、アプリケーション・プログラム、オブジェクト、エージェント、ダウンロード可能プログラム、サーブレットなどの全部または一部として)実装されると、システム100要素は、実行のために、ローカルまたはリモート記憶からメモリ(またはキャッシュ・メモリなど)に、過渡的にまたはより持続的に伝達することができ、あるいは他の適切な機構を利用することもでき、諸要素をコンパイル済み形式または解釈形式で実装することもできる。さらに、入力、中間または結果データあるいは機能要素を、個々の用途に従って、より過渡的またはより持続的に、記憶媒体、キャッシュまたはその他の揮発性または不揮発性メモリ(記憶デバイス307またはメモリ308など)に入れることもできる。
図3aから3dに、例示的な非同期対応ユーザ・デバイスとデータ・センタのオペレーションをより詳細に示す。
図3aから開始すると、非同期対応ユーザ・デバイス301は、ユーザ・デバイスが非同期型同期を実施できるようにする非同期型同期管理機能すなわち「支援機能」を含む。支援機能312は、好ましくは、独立型の常駐またはダウンロード可能アプリケーションとして実装される。ただし、支援機能312は、OSもしくは1つまたは複数の基礎を成すアプリケーションと、様々な程度に統合することもできることが理解されるであろう。
支援機能312は、同期を開始する前にユーザによって入力され、同期の間は予め決められている、(通常はユーザによる)指定変更可能なユーザ選好に従って同期を開始し、実施する。同期の間、支援機能312は、アプリケーション・データ空間との間で1つまたは複数の変更済み作業空間要素(この場合は、アプリケーション・データ311)を転送することによって、またはデータ・センタ302との間で同期メッセージを転送することによって同期トリガに応答する。
支援機能312は、より具体的には、アプリケーション・データ空間から、変更されている1つまたは複数の作業空間要素を受け取り、同期メッセージを形成し、データ・センタ302と(まだ相互接続されていない場合には)相互接続し、このように形成されたメッセージをデータ・センタ302に転送することによって、開始トリガに応答する。支援機能312は、データ・センタ302と(まだ相互接続されていない場合には)相互接続し、データ・センタ302から通常は1つの同期メッセージを受け取ることによって応答トリガに応答する。次いで、支援機能312は、非同期対応ユーザ・デバイス301の作業空間要素に関して競合が存在するかどうか判定する。競合が存在しない場合には、支援機能は、その同期メッセージに含まれるデータをアプリケーション・データ空間に記憶させ、それによって既存のデータに追加を行い、またはそれを置き換える。競合が存在する場合には、支援機能312は、競合解決を開始する(競合解決については以下で別個に論じる)。
本例では、支援機能によってメッセージが待ち行列に入れられない支援機能実装が想定されていることに留意されたい。そうした実装では、複雑度が低いことおよび非常に限られた記憶/処理リソースしか持たないデバイスに適した手法が有利に働くことがわかる。しかし、各非同期対応ユーザ・デバイスは、例えば、利用可能なリソースに従って、個別に構成することもできる。したがって、より多くの同期メッセージを記憶、転送または受信するためにより高能力のユーザ・デバイスを実装し、別のデバイスには、現在利用可能なリソースに従ってより同期メッセージの少ない1つまたは複数のオペレーションを実施させ、さらに別のデバイスには、常に、1度に1メッセージだけを処理させるようにしてもよい。
好ましくは、支援機能312は、通常の従来方式で、例えば、アプリケーション・プロトコル・インターフェイス(「API」)を介したデータ転送や、HTMLまたはSOAPなどのメッセージ転送プロトコルを使用したメッセージ転送などで転送を実施する。しかし、個々の用途に従ってその他の転送機構を使用することもできる。
図3cから3dおよび図4に、データ・センタ302が共通記憶管理機能321とデータ待ち行列322a〜nを含む一時記憶としてどのように実装されるかを示す。
共通記憶管理機能321は、2台以上の非同期対応ユーザ・デバイスの同期メッセージを記憶するための一時記憶(本例ではメッセージ待ち行列)を初期設定し、管理する。関連するユーザ・デバイスの同期の前に、共通記憶管理機能321は、ユーザ選好(ある同期グループ中のいくつかの同期をとるデバイスなど)に対応するいくつかのメッセージ待ち行列を初期設定することによってユーザ・デバイスからの初期設定要求に応答する。
同期時に、共通記憶管理機能321は、1つまたは複数の同期メッセージを受け取り、それを少なくとも1つの他のユーザ・デバイスによる検索のために書込みメッセージ待ち行列に記憶することによって、あるいは、メッセージ待ち行列から要求側デバイスに、別のユーザ・デバイスから受け取った同期メッセージを返すことによってユーザ・デバイス要求に応答する。共通記憶管理機能321は、さらに、宛先とされる1つまたは複数の対応するユーザ・デバイスによってすでに受け取られている同期メッセージの削除も実現する。
共通記憶管理機能321は、メッセージ待ち行列をポーリング(あるいは同期イベントが存在するかどうかの判定)し、かつ1つまたは複数の非同期対応ユーザ・デバイスへの警告トリガを転送する。そうしたトリガを使用して、例えば、同期メッセージを送信するために相互接続され、あるいはすでに同期メッセージを受け取っている非同期対応ユーザ・デバイスに、1つまたは複数の同期メッセージが検索可能であることを知らせることもできる。ただし、本実装形態では、共通記憶管理機能321は、対応する非同期対応ユーザ・デバイスからの要求受信時にメッセージ待ち行列をポーリングする。
図4に示すように、共通記憶管理機能は、要求に応答してメッセージ待ち行列処理を呼び出す要求制御機能401や、メッセージ待ち行列の初期設定とポーリングを実施し、かつメッセージの検索と記憶を実施する待ち行列管理機能403を含む。(共通記憶管理機能321は、例えば、図1のサーバ103aなどのネットワーク・サーバの記憶デバイス管理機能として、通常の従来方式で実装することもできる。)
先入れ先出し(「FIFO」)メッセージ待ち行列のシステムは、ユーザ・デバイス・メッセージを記憶するのに好都合な一時記憶構成であることがわかるであろう。例えば、対応する非同期対応ユーザ・デバイス(図3cおよび3d)ごとにFIFOを使用すると、非同期対応ユーザ・デバイス301aと301bの間での同期メッセージの非同期転送のための単純な共通記憶構成が実現される。
図3cでは、例えば、非同期対応ユーザ・デバイス301aの支援機能1(312a)は、メッセージ待ち行列B(322b)に1つまたは複数の同期メッセージを記憶することによって同期トリガに応答し、非同期対応ユーザ・デバイス301bの支援機能2(312b)は、このメッセージ待ち行列にアクセスしてメッセージを受け取ることができる。支援機能1(312a)は、さらに、メッセージ待ち行列A(322b)から1つまたは複数のメッセージを受け取ることによって応答トリガに応答し、支援機能2(312b)は、このメッセージ待ち行列にアクセスしてメッセージを転送することができる。
それとは異なり、図3dは、支援機能2(312b)が、メッセージ待ち行列A(322b)に1つまたは複数の同期メッセージを記憶することによってどのように同期トリガに応答するかを示すものであり、支援機能1(312b)はこのメッセージ待ち行列にアクセスしてメッセージを受け取ることができる。支援機能2(312b)は、さらに、メッセージ待ち行列B(322b)から1つまたは複数のメッセージを受け取ることによって応答トリガに応答し、支援機能1(312a)はこのメッセージ待ち行列にアクセスしてメッセージを転送することができる。
この待ち行列構成は、例えば、別々に動作し、または重複する各非同期対応ユーザ・デバイスごとに新規待ち行列を実装するなど、2つ以上の同期をとる非同期対応ユーザ・デバイス・グループが利用される場合にも有用である。さらに、受け取り同期メッセージの削除も容易になり、それが、例えば、各非同期対応ユーザ・デバイスによる同期メッセージ検索時に、共通記憶管理機能321(図3c)によって実施される。個々の用途に従って他のデータ構造またはデータ構造の構成を使用することもできる。
図5から10に非同期型同期支援機能の例をより詳細に示す。図5に示すように、支援機能500は、非同期スケジューラ501、同期制御機能503、同期エンジン505、同期履歴507、同期アダプタ509、選好エンジン511、システム監視機能513、インターフェイス生成機能515を含む。
非同期スケジューラ501は、同期制御機能503を呼び出すことによってトリガ・イベントに応答し、それによって、対応する非同期対応ユーザ・デバイスに同期を開始させ、または待ち行列に入れられた同期メッセージに応答させる。トリガ・イベントはユーザ選好エンジン511を介してユーザによって選択的に使用可能にされ、選択オプションがインターフェイス生成機能515によってユーザに提示される。トリガ・イベントには、それだけに限らないが、ローカル・データベース変更通知(例えば、アプリケーション・プログラム・インターフェイス「API」)からの、他のデバイスまたは「リモート」メッセージ待ち行列のポーリングからの肯定的結果、SMS警告の受信、予定された同期タイマの期限切れ、ユーザによる手動の同期呼び出しのうち1つまたは複数が含まれる。SMSすなわち「ショート・メッセージ・サービス」は、携帯電話やその他の無線デバイスへの短いテキスト・メッセージの送信を可能にするシステムである。SMS警告を使用して、例えば、同期スケジューラ501に同期アクティビティを開始させるために、そうしたメッセージの受信によってそのデバイスにとってローカルのアプリケーションに通知を受け取らせ、それに反応させることもできる。
非同期スケジューラ501は、同期オペレーションを開始させ、またはそれを妨げることによって、あるいは応答の方式を変更することによってシステム監視機能513に応答する。例えば、ユーザがデバイスにアクセスしている間に、同期トリガを表示させることができ、ユーザ警告を開始させることもできる。また、特に、対応するより多数または少数のネットワークまたはデバイス・リソースの使用可能性に従って、より多数または少数の同期メッセージを転送/受信することもできる。
システム監視機能513は、進行中のユーザ・デバイスまたはネットワーク・アクティビティ・レベルを判定し、報告するように、通常の従来方式で動作する。システム監視機能513は、ユーザによる進行中のユーザ・デバイスのオペレーションなど、個々のアクティビティも監視する。
同期制御機能503は、作業空間要素変更があればそれを識別し、開始することによって同期スケジューラ511に応答する。より具体的には、同期制御機能503は、同期アダプタ509から、作業空間要素変更リストが存在する場合はそれを検索する。作業空間要素変更リストは、最近変更された作業空間要素の一部または全部への参照を含む。それはすなわち、その要素に関連する最後の同期メッセージがその同期に関与するその他のデバイスに送信されてから追加、変更、または削除された作業空間要素である。同期アダプタは、それがインターフェイスするローカル要素ストアの変更表示機能に適したやり方でこの変更リストを決定することができる(以下を参照されたい)。
同期制御機能503は、さらに、同期履歴507と同期アダプタ509を呼び出し、変更リスト情報があればそれを同期アダプタ509に転送する。次いで、同期制御機能503は、同期エンジン505を呼び出す。
同期エンジン505は、同じ作業空間要素の競合する更新が存在するかどうかを判定し、存在する場合には、その競合を解決する。また、同期エンジン505は、ローカル作業空間要素の(すなわちユーザ・デバイスの)更新、およびそのユーザ・デバイスの変更済み作業空間要素の転送を開始する。
図6に進むと、同期エンジン505は、メッセージ・パーサ601、履歴管理機能602、競合エンジン603、データ転送エンジン604、バージョン割り当て機能605、データ参照管理機能606を含む。競合エンジン603は、競合を検出するための競合検出機能631と、競合を解決するための競合解決機能632を含み、転送エンジン604は、データ転送エンジン641、メッセージ転送エンジン642を含む。
図示の例では、同期エンジン505は、受け取った作業空間要素のバージョン情報を、そのユーザ・デバイスに記憶された最新のバージョン情報と比較することによって競合の有無を判定する。より具体的には、それぞれのバージョン割り当て機能605によってバージョン・スタンプが、少なくとも各作業空間要素に関して、同期をとる各ユーザ・デバイスごとに割り当てられる。他の細分性を使用して、例えば、各作業空間要素の1つまたは複数の属性を追跡することもできる。しかし、PDAや携帯電話など多くのデバイスのリソースは限られているため、使用できないこともある。次いで、各ユーザ・デバイスは、その作業空間要素のバージョン・スタンプを、そのユーザ・デバイスによって入力されたその作業空間要素の各変更ごとに増分し、その変更もデータ・センタを介してその他の同期をとるデバイスに転送される。
例えば、2台のユーザ・デバイス間で同期される未変更の(または新規の)作業空間要素Xが、00という数値のバージョン・スタンプを持つとする。第1のユーザ・デバイスだけが変更を入力した場合は、第1のユーザ・デバイスは、作業空間要素を転送する前にそのバージョンを増分し、10というバージョン・スタンプを生成する。第2のユーザ・デバイスだけが変更を入力した場合には、第2のユーザ・デバイスは、作業空間要素を転送するまえにそのバージョンを増分し、01というバージョン・スタンプを生成する。
図7の例示的同期メッセージには、データを含む各同期メッセージが、この場合はユーザ・デバイス1(704)とユーザ・デバイス2(705)という、各ユーザ・デバイスごとの増分されたバージョン・スタンプをどのように含むかが示されている。残りの各メッセージ・フィールドは、(一意の)メッセージID701、命令702、作業空間要素情報またはデータ703、データの発信元ユーザ・デバイス706、およびデータの宛先ユーザ・デバイスを含む。したがって、以下の各事例を考察する。
例1:事例1:ユーザ・デバイス2がユーザ・デバイス1によって要素Xに入力された変更を受け取り、変更を要素Xに入力する場合には、ユーザ・デバイス1は、バージョン11を有する、2回変更された要素Xを含むメッセージを受け取る。
例2:事例2a:そうではなく、ユーザ・デバイス2が、ユーザ・デバイス1による変更を受け取る前に要素Xに変更を入力する場合には、ユーザ・デバイス1はバージョン01を有する(ユーザ・デバイス2によって)1回変更された要素Xを受け取る。
例3:事例2b:ユーザ・デバイス2は、後で、要素Xおよびバージョン01を含むデバイス1からのメッセージも受け取る。
図8の例示的同期履歴マップには、各ユーザ・デバイスの同期エンジンの履歴管理機能602(図6)が、さらに、新規メッセージを受け取る前に、各同期された作業空間要素ごとに、同期をとるすべてのユーザ・デバイスでの現在の各同期状態(例えば、ユーザ・デバイス1のバージョン・スタンプ812やユーザ・デバイス2のバージョン・スタンプ813など)をどのように維持するかが示されている。
他の履歴マップの各部分は、レコード値比較および変更検出を可能にするハッシュ値814、および必要に応じて変更伝播を禁止できるようにする読取り専用フラグ815を含む。履歴マップは、さらに、特に、現在のメッセージ・バージョン・スタンプ・カウンタや、ローカル・データベースまたは作業空間データを含むその他のデータ空間の完全変更スキャンを実施する際に締切として使用する変更日付など、どのレコード(図示せず)にも特有でない同期状態も含む。
したがって、同期エンジン505(図6)の競合検出機能630は、(受信同期メッセージを構文解析する)メッセージ・パーサ601から受け取った、新規「受信」バージョン情報を、同期履歴マップをポーリングする履歴管理機能602から受け取った現行バージョン情報と比較することによって競合が存在するかどうか判定する。
次に前述の各例に戻ると、ユーザ・デバイス1とユーザ・デバイス2それぞれの初期の現行バージョン・スタンプは00であった。例1では、ユーザ・デバイス1がXを更新し、次いで、ユーザ・デバイス2がそれを受け取って、ユーザ・デバイス1、2の現行バージョン・スタンプが、10(1)および00(2)になり、ユーザ・デバイス2での受信バージョンが10(2)になる。次に、ユーザ・デバイス2がXを更新し、次いで、ユーザ・デバイス1がそれを受け取る。したがって、ユーザ・デバイス1、2でのバージョン・スタンプは以下のようになる。
現行→10(1)および11(2);受信→11(1)および11(2)
例2では、ユーザ・デバイス1がXを更新し、次いで、ユーザ・デバイス2がそれを受け取らずにXを更新し、次いで、ユーザ・デバイス1がそれを受け取る。したがって、ユーザ・デバイス1、2でのバージョン・スタンプは以下のようになる。
現行→10(1)および01(2);受信→01(1)および不適用(2)
最後に、例3は、ユーザ・デバイス2がユーザ・デバイス1の更新を受け取ること以外は、例2と同じである。したがって、ユーザ・デバイス1、2でのバージョン・スタンプは以下のようになる。
現行→10(1)および01(2);受信→11(1)および11(2)
競合検出機能630は、別のイベントの「後で発生した」イベントは、「前に発生した」イベントに優先するという一般的挙動に従って動作する。しかし、同時に発生したイベントが競合し、競合解決規則を適用してそれを解決する必要がある。この一般的規則を適用する際でさえも、競合検出機能630比較の結果は、例1では競合を示さないが、例2および例3では、同時更新のために競合を示すはずである。したがって、ユーザ・デバイス1の競合検出機能は、例2では、ユーザ・デバイス2の更新を受け取ると競合を検出し、ユーザ・デバイス2の競合検出機能は、例3では、ユーザ・デバイス1の更新を受け取ると競合を検出するはずである。
しかし、より具体的な競合検出のための規則を、様々な種類の変更に適用できることがわかる。そうした変更は、同期メッセージ内で命令または「コマンド」として提供され、それには、既存の作業空間要素を更新するコマンドすなわち「更新」(または「置換」)コマンド、新規作業空間要素を追加するコマンドすなわち「追加」コマンド、作業空間要素を削除するコマンドすなわち「削除」コマンドが含まれる。個々の実装形態ではその他の規則も適用し得るが、以下の例示的規則が特に適切に機能する。
非同期対応ユーザ・デバイスの支援機能が更新コマンド・メッセージを受け取り、競合検出機能が現行と新規のバージョン・スタンプを比較するときには、予期される事例と予期されない事例(すなわち可能なエラー/実際のエラー)があり得る。予期される更新コマンド事例には以下のものが含まれる。
(1)(受信側ユーザ・デバイスにとっての)現行ローカル・バージョンと受信ローカル・バージョンが等しく、(送信側ユーザ・デバイスにとっての)受信リモート・バージョンが現行のリモート・バージョンより大きい場合には、競合は検出されず、記憶された作業空間要素への更新を適用する必要があり、受信リモート・バージョン・スタンプが現行として記憶される。
(2)しかし、新規ローカル・バージョンが現行バージョンより小さく、受信リモート・バージョンが現行リモート・バージョンより大きい場合には、競合または「競合更新」が存在する。
予期されない更新事例には以下のものが含まれる。
(3)ローカル・バージョンが等しく、かつリモート・バージョンも等しい場合には、更新競合が存在し、以下を適用する必要がある。受け取った更新データがローカル・データに合致する場合には、複製メッセージが送信されている可能性がある。この場合には、それらのデータは等しいので、そのコマンドを適用することも無視することもできる。しかし、その更新がローカル・データを変更するはずの場合には、リモートでエラーが発生している。更新競合解決を適用して、リモートのクラッシュ回復を呼び出す必要がある。
(4)受信リモート・バージョンが現行リモート・バージョンより小さく、かつ受信ローカル・バージョンが現行ローカル・バージョン以下である場合には、エラーが発生している。この更新は適用すべきではない。そのメッセージが不適切に受け取られているか、それともリモート・デバイスでエラーが発生しているかのどちらかである。使用されたメッセージ搬送システムがメッセージの順序付けおよび配信を保証している場合には、リモート・デバイスのエラーであると想定され、リモートのクラッシュ回復を呼び出す必要がある。
(5)受信ローカル・バージョンが現行ローカル・バージョンより大きく、かつ受信リモート・バージョンが現行リモート・バージョン以上である場合には、ローカルでエラーが発生している。その更新を受け入れて、ローカルのクラッシュ回復を呼び出す必要がある。
(6)受信ローカル・バージョンが現行ローカル・バージョンより小さく、新規リモート・バージョンと現行リモート・バージョンが等しい場合には、エラーが発生しており、クラッシュ回復が必要である。その更新は適用すべきではない。複製メッセージが受け取られているか、それともリモート・デバイスでエラーが発生しているかのどちらかである。使用されたメッセージ搬送システムが、メッセージが二重配信されないことを保証している場合には、リモート・デバイスでエラーが発生していると想定され、リモートのクラッシュ回復を呼び出す必要がある。
(7)受信ローカル・バージョンが現行ローカル・バージョンより大きく、かつ受信リモート・バージョンが現行リモート・バージョンより小さい場合には、エラーが発生しており、更新競合が存在する。更新競合解決を適用し、ローカルのクラッシュ回復を呼び出す必要がある。
同期履歴は、削除されたエントリの「削除標識」を保持することが期待されることに留意されたい。これらは、単に、削除時に、(その削除自体の動作に対して増分されたローカル・バージョンのアカウントと共に)その要素の識別子と、そのレコードに関連付けられたローカルおよびリモートのバージョン・スタンプとを記録するにすぎないエントリである。これにより、ローカルで検出された要素の場合でさえも、競合検出と解決が可能になる。削除された要素であって、その「削除標識」が同期履歴から取り除かれているものに適用される更新が届いた場合には、その更新は追加として処理される。同期履歴は、そうした更新コマンドの大部分が最初にシステム中を進むのに十分な期間それらの削除標識を維持する必要がある。
競合検出機能631(図6)は、更新競合を検出すると、競合解決機能632を呼び出す。次いで、競合解決機能632は、その競合を解決するために競合解決規則を適用し、さらに、データ転送エンジン641またはメッセージ転送エンジン642を呼び出し、必要に応じてそれぞれの転送を開始させる。更新コマンドでの競合解決規則の例には、以下の受け入れ規則、拒否規則、複製規則が含まれる。
1)受信側ユーザ・デバイスは更新を受け入れることができる。この場合には、解決は、既存の作業空間要素を更新/置換し、受信したリモートと現行リモートのバージョン・スタンプの最大値を現行のリモート・バージョンとして記憶すること、および受信したローカルと現行ローカルのバージョン・スタンプの最大値を現行のローカル・バージョンとして記憶することを含む。
2)受信側デバイスは更新を拒否することができる。この場合には、解決は、既存の作業空間要素を更新せず、受信および現行リモートのバージョン・スタンプの最大値を現行のリモート・バージョンとして記憶し、受信および現行ローカル・バージョン・スタンプの最大値を現行ローカル・バージョンとして記憶することを含む。
3)受信側デバイスはローカル作業空間要素を複製することができる。この場合には、解決は、1つを除くすべての「サーバ」ユーザ・デバイスが元の作業空間要素への変更を受け入れること、およびそのサーバ・ユーザ・デバイスがその元の要素への変更を拒否し、その変更をその複製に適用することを含む。その(変更を含む)新規作業空間要素は、同期をとる各ユーザ・デバイスに追加コマンドを発行させ、そのコマンドを、競合追加コマンド競合解決に従って解決することができる。このオプションは、その要素更新がローカル要素への変更を全く生じない場合には使用すべきでない。
ただし、競合解決は、一般に、同期をとるデバイス間で汎用的方式で実施する必要があることに留意すべきである。したがって、競合解決規則が、各ユーザ・デバイスごとに事前に決定され、静的であり続ける必要があり、あるいはユーザ・デバイスによって記憶される規則または規則の標識が、それらが変更される際にそれらのユーザ・デバイス間で伝達される必要がある。別の代替手段は、少なくとも1つの同期をとるユーザ・デバイスが制御または「サーバ」ユーザ・デバイスとして動作するように構成することである。この場合には、残りの、すなわち「クライアント」ユーザ・デバイスは、バージョン競合を検出すると、既存の作業空間要素を複製することができる。その結果生じる追加コマンドを受信すると、サーバ・ユーザ・デバイスはそれらの競合を解決し、必要に応じて削除コマンドを発行することができる。
まず図6を見、次いで、さらに図7、9、10を参照すると、追加コマンドは一意である。既存の作業空間要素と異なり、各ユーザ・デバイスが同一のデータ空間を維持しない限り、新規に作成された作業空間要素への既存の共通参照はない。しかし、新規作業空間要素を、大幅に異なるユーザ・デバイス構成とアプリケーション・プログラムに統合させるか、またはその他のデータ・ソースとでさえも統合させるようにする、リモート参照機構が見られる。
追加コマンドを含む同期メッセージを受け取ると、同期エンジン505のデータ参照エンジン606は、送信側ユーザ・デバイスの作業空間データのローカル参照のためにそのメッセージを構文解析する。データ参照エンジン606は、送信側デバイスの作業空間要素参照を、図9の例示的データ参照マップ900の要素901〜912などを用いて、データ参照マップに記憶する。
データ参照エンジン606は、さらに、受信側ユーザ・デバイスのためのローカル参照(例えば、参照901〜911など)もそのマップに追加し、その作業空間データが、送信側デバイス参照に従って記憶される。データ参照エンジン606は、作業空間要素が追加されるたびにこのプロセスを繰り返し、すべてのユーザ・デバイスのすべての作業空間要素のマップを維持するようにする。
その後、同じ送信側参照を持つ同期メッセージを受け取ると、データ参照エンジン606は、対応するローカル(ホスト・ユーザ・デバイスの)参照を求めてデータ参照マップをポーリングし、そのローカル参照に従って同期が続行される。これとは異なり、作業空間データのローカル変更を同期するときには、参照エンジン606は、ローカル参照を求めてデータ参照マップをポーリングし、受信側参照を検索し、その受信側参照に従って同期メッセージが形成される。
発信元参照とローカル参照は、メモリ・アドレスに対応する必要はないことに留意されたい。ローカル参照は、対応を確立し、ローカルの処理を実施するのに十分でさえあればよい。
さらに、この機構は、すべてのユーザ・デバイスではなく、1台のユーザ・デバイスがそのデータ参照マップを維持できるようにする。この1台の「サーバ」ユーザ・デバイスは、例えば、その他のデバイスより多くの使用可能リソースを持つことができる。第2の(または他の)ユーザ・デバイスは、図10の例示的完了マップなどのように、単に、どの参照が送信されたかを示す「参照送信済みマップ」を維持することができるにすぎない。次いで、同期に際して、第2のユーザ・デバイスのデータ参照管理機能は、参照送信済みマップをポーリングして、参照が送信されたかどうか判定することができる。送信されなかった場合には、参照管理機能は、その参照を同期メッセージに追加し、マップ済みフラグを、その参照が送信されたことを示すように設定することができる。
追加コマンドでの競合検出および解決の例は以下の通りである。一般に、同期は、送信側ユーザ・デバイスと受信側ユーザ・デバイスの両方に追加される同一の作業空間要素を識別し、作業空間要素の複製を回避する必要がある。より具体的には、追加コマンドを受け取ると、以下が実施される。
1)0より大きいローカル・バージョン・スタンプが含まれている場合は、強制追加を指示する。解決は、新規作業空間要素を追加し、その作業空間要素をマップ済みとマークし、応答マップ・コマンドを発行することを含む。
2)作業空間要素が追加コマンドと共に含まれる場合には、応答は、その含まれる作業空間要素を、マップ済みとマークされていないすべてのローカル・レコードに比較することを含む。
3)合致が見つからなかった場合には、その追加は競合しない。応答は、新規作業空間要素を作成し、その要素をマップ済みとマークし、応答マップ・コマンドを発行することを含む。
4)合致が見つかった場合には、それは競合する追加である。解決は、レコードのバージョン・スタンプのリモート・コンポーネントをその更新コマンドに含まれる値に設定し、その作業空間要素をマップ済みとマークし、応答マップ・コマンドを発行することを含む。
新規に作成された作業空間要素はマップ済みとマークされず、マップ・コマンドを受け取ったときにマップ済みとマークされるはずであることに留意されたい。
競合検出と削除コマンドは、削除の受け入れが、要素のローカル・コピーを削除し、その要素の同期履歴エントリを、そのエントリが単に削除済みレコードの削除標識にすぎないものであると示すようにマークすることを伴う点を除いて、更新コマンドのものと同じである。削除競合解決オプションは、複製オプションが適用されないことを除いて、更新コマンドのものと同じである。
結果として生じる競合エンジン607は、さらに、特に、結局はカレンダやプロジェクト管理などのアプリケーションを生じさせる競合の解決を実現する。例えば、1つの会議が2つの異なる場所で行われるように予定され、または連続する会議が、両方に出席するにはあまりにも隔たった場所に指定されたとする。結果として生じる競合エンジン607は、結果として生じる競合を求めて作業空間データとメッセージ・パーサ601からの作業空間データをポーリングし、結果として生じる競合解決規則またはユーザ対話に従ってそれらの競合を解決する。
再度図5に戻ると、同期アダプタ509は、同期エンジンが特定のデータベース、アプリケーションまたはその他のデータ空間にアクセスできるようにする汎用インターフェイスを実装する。このインターフェイスは、同期エンジンが個々のレコードを検索すると共に、「最近」変更されたレコードのセット全部を反復することができるようにする。「最近」の解釈は、アダプタの種類やそれをインスタンス化するのに使用される個々の構築機能に応じて異なる。
例えば、様々なオペレーティング・システム、アプリケーション・プログラムまたはその他のシステムは、データ変更の標識を提供することもしないこともある。様々なシステムが提供する内容の例を以下に示す。
1.各作業空間要素ごとのフラグが、その要素が変更される都度設定される。
2.「最終変更」日付が各要素ごとに記録される。
3.その要素ストアに関連付けられた現在の連番など何らかの他の表示が、各要素と共に、それが変更されたときに記憶される。
4.要素ストアが、要素が変更されたときに、パブリッシュ/サブスクライブ・タイプのインターフェイスを介して変更イベントを知らせる。
5.要素変更標識が記憶されない。
事例2、3で最近の変更の判定を容易にするために、同期制御機能は、例えば、同期アクティビティの開始時に、各同期アダプタに同期アンカーを供給することができる。同期アンカーは、同期履歴から取り出された単純なトークン(例えば、タイムスタンプや連番など)とすることができる。このトークンは、同期アクティビティの以前のインスタンスが発生した瞬間に対応する締切を示す。同期アダプタはこのトークを使用して、指示された締切日または連番の前に変更されている要素を変更リストに入れて返すべきではないと推断することが可能である。同期アダプタは、さらに、「新規アンカー」トークンを返すことができ、それをその後の同期アクティビティで使用して、その時点の瞬間に対応する締切を指示することができる。同期エンジンが変更リスト中のすべての要素を正常に処理した場合には、その新規アンカー・トークンを用いて同期履歴を更新することができる。
事例1および4での最近の変更の判定を容易にするために、同期エンジンは同期アダプタに、各変更リスト要素の正常な処理を、それが処理される際に明示的に認めることができる。これによって同期アダプタは、関連する変更フラグをクリアし(事例1)、または内部待ち行列から関連する変更イベント通知を削除する(事例4)ことができる。
事例5では、同期アダプタは変更リストにすべての現行要素のリストを入れて返す。次いで、同期エンジンは、あらゆる同期ごとにすべての要素を処理し、(同期履歴に記憶される)最後の同期からの各要素の短いハッシュを使用して要素が実際にはいつ変更されたか判定する。この場合には、同期エンジンは、どの要素が削除されているか推論するために、それらの要素を、同期履歴中の要素に比較することもできる。
同期アダプタが、締切日に基づいて削除ではなく変更を判定できる場合には、同期エンジンは同期アダプタに、すべての要素のリストを別個に要求することができる。次いで、同期エンジンは、変更リストから変更を推論し、同期履歴とすべての現行要素のリストから削除を推論することができる。
ローカル・アダプタは、ローカル・データベースまたはその他のデータ空間、および一般にそこに含まれる任意のレコードへのアクセスを可能にする。「最近の」変更のセットは、例えば、構築機能に供給された1組の変更イベントによって、(SyncHistoryから抽出された)「最終変更」締切日によって、あるいはデータベースにダーティー・ビットを問い合わせることによって判定する。
ローカル・アダプタは、アプリケーション間での作業空間要素の同期も容易にする。例えば、様々な能力を備えるPIMアプリケーション間でのデータの同期は、フィールド・マッピング、フィールド切り捨て、反復規則マッピング、および(場合によっては)値の範囲の予測を必要とする。これは、同期エンジンにフィールド・データを返す前に、固有表現から共通フィールド表現にフィールドをマッピングするローカル・データ・アダプタによって実現される。さらに、更新メッセージが待ち行列に入れられる前に、リモート・データ・アダプタによって、個々のデバイスでの切り捨て、反復マッピング、範囲予測がフィールド・データに適用される。
リモート・アダプタは、リモート・メッセージ待ち行列を介して経路指定された更新メッセージによるリモート・データベースへのアクセスを可能にする。リモート・アダプタは、一般に、更新メッセージを待ち行列に入れられたレコードへの読取りアクセスのみ、および更新メッセージを待ち行列に入れさせる必要のあるレコードへの書込みアクセスを可能にする。
また、リモート・アダプタは、使用可能なデバイス構成とデータ・ソースに関する高度の柔軟性も可能にする。それらのアダプタは、リモート・デバイスに代わって、フィールド・マッピング、フィールド切り捨て、反復規則サポートに関する決定、その他の変更を行うことができる。また、それらのアダプタは、必要に応じて変換または翻訳を実施することもできる。したがって、同期をとる各ユーザ・デバイスが、同じデバイスであり、同じプログラムを走らせ、あるいは同等のメモリ空間を維持することが必要であるとは限らない。
同期アダプタは、作業空間要素に対応するデータにアクセスできる必要がある。このデータは、別のデバイスに伝送するためにそのデータのマーシャリングを処理するリモート・アダプタによって解釈される共通形式に変換することができる。同期アダプタは、要素アクセスと変更メソッドを公開し、それによって同期エンジンは同期を実施できるようになる。これらのメソッドには、例えば、setLastSyncAnchor、getNextSyncAnchor、getAllElementReferences、getChangedElementReferences、getHashRepresentationOfElement、addElement、copyElement、modifyElement、deleteElement、applyTruncationToElement、acknowledgeChangeが含まれる。
残りの支援機能要素のうち、セキュリティ・エンジン515は、認証や暗号化などのセキュリティ措置を実装する。暗号化と解読は、メッセージ・パーサ601(図6)と共に、作業空間要素上で実施することができる。非同期型同期によって可変のデータ細分性が与えられていると仮定すると、暗号化は、たとえリソースの低いユーザ・デバイス内でさえも、そのデータ・センタに作業空間要素を転送する前に通常の従来方式で実施することができる。解読も同様に、作業空間要素の受信時に、または、暗号化形式で記憶されている場合には、作業空間要素の検索時に実施される。
クラッシュ回復エンジンまたは「クラッシュ管理機能」516は、処理中に同期エンジンによって発見された同期エラーの警告を受け取ることができる。同期エンジンは、ローカルとリモートのバージョン・スタンプを利用して、ローカルまたはリモート・デバイスに、おそらくその後のバックアップからの復元が行われるデータ喪失または破損が発生している可能性のある事例を検出する。同期エンジンはクラッシュを、関連する要素での現行ローカル・バージョンより大きいローカル・バージョン・スタンプを持つメッセージが受け取られた状態として検出する。この詳細についてはすでに述べた。クラッシュとバックアップからの復元が発生した場合には、様々な要素について同期履歴に記憶されたローカルの現行バージョン・スタンプは、不可避的に、何らかの以前の値に戻されることになる。
リモートのクラッシュ/復元イベントも、リモート・バージョンが関連する要素での現行リモート・バージョン以下であり、メッセージの配信が保証され、メッセージが重複しないことが保証され、厳密なメッセージ順序付けが保証されているメッセージ搬送システムが使用された場合には、同様に、メッセージの受信によって検出される。この詳細についてはすでに述べた。
そうした障害が検出されたときには、再同期を実施する必要がある。ローカル・クラッシュ検出の場合には、「クラッシュ管理機能」は回復を実施すべきかどうか決定する必要がある。それは、ユーザに確認の入力を要求し、あるいは回復を開始すべきかどうかの他の何らかの機構を使用することができる。これには、このデバイス(A)でクラッシュが発生していると指示するメッセージを別のデバイス(B)に送信することさえも含まれると考えられるであろう。デバイスBの「クラッシュ管理機能」は、回復を開始すべきかどうかについてのユーザ・フィードバックを促すようにより適切に位置決めすることもできる。リモート・クラッシュの場合には、「クラッシュ管理機能」は他方のデバイスにメッセージを送信して、それ自体のデータが破損している可能性があることを知らせる必要がある。
回復を開始する決定がなされると、「クラッシュ管理機能」は同期スケジューラに「回復同期」を実行するよう知らせる必要がある。そうした同期に際して、同期エンジンは他方のデバイスに、すべてのマップ済み要素での更新メッセージ、すべてのマップされていない要素での追加メッセージ、同期履歴中のすべての削除標識での削除メッセージを送信するよう指図される。これらのメッセージのそれぞれに「回復」メッセージとマークし、そうしたメッセージの受信が他方のデバイス上でクラッシュ検出をトリガしないようにする必要がある。また、他方のデバイスに「回復同期」要求を送信する必要もあり、そのデバイスは、同様に、現在関連するデータ要素ストア中にあるすべての要素、または同期履歴中の削除標識によって参照されるすべての要素での回復メッセージを送信することになる。これら回復の追加、更新、削除メッセージのそれぞれの処理は、前述のように行うことができる。ただし、これらのメッセージによってクラッシュ検出論理はトリガされず、それらのメッセージの多くは、以前に遡った日付のローカルまたはリモート・バージョン・スタンプを持ち得る。
図11から14に、同期を開始し、経路指定し、受信し、処理することのできる例示的方法を示す。
図11に示すように、第1の計算処理デバイスは、ステップ1101でトリガ・イベントを受け取り、ステップ1103で、第1のデバイス・データに変更が行われているかどうか判定することによって応答する。変更が行われている場合(ステップ1105)には、第1のデバイスは、ステップ1107で、1つまたは複数の受信先デバイスを決定し、第1のデバイス・ユーザおよび/またはデバイスでのセキュリティ手順を実施する。
例示的セキュリティ手順を図12に示す。第1のデバイスは、ステップ1201で、受信先デバイス識別を検索し、暗号化されている場合には、その識別を解読する。また、第1のデバイスは、現在の第1のデバイス・ユーザとデバイスにその変更の同期をとる許可が存在するかどうかも判定する。ステップ1205でその変更が却下されない限り、図11のステップ1109に進む。
受信先デバイスと、例えば、追加、変更/更新または削除の同期をとる許可は、通常の従来方式で実施することができる。より典型的には、セキュリティは、秘書、配偶者、子供などの第三者デバイス・ユーザが変更の同期をとろうとし、かつ受信先デバイス・ユーザのローカル・デバイスが使用不能である場合に適用される。セキュリティ情報または変更の同期をとる試行での失敗は、本明細書で論じた情報の同期と同様の方式で受信先デバイスに伝播し、またはそれと同期をとることができることに留意すべきである。したがって、例えば、同期を介してリモート・デバイス情報を変更することのできる、失われたデバイスのオペレーションを回避または報告することができる。
図11のステップ1109で、第1のデバイスは、変更に対応する変更標識を構成する。そうした構成の一例を図12bに示す。ステップ1211から開始すると、第1のデバイスは、例えばそのデバイスのユーザ・アクセス、デバイス・リソースまたはその他の要因(上記を参照)に従って、転送するいくつかの変更を決定する。
第1のデバイスは、さらに、ステップ1211で受信先デバイス特性を判定し、ステップ1213で変更を汎用形式に変換し、その変更を受信先デバイスに適した形式に変換する。そうした変更には、例えば、特に、同期データ・アダプタに関連して本明細書で論じたような、データまたはデータ形式操作が含まれる。
ステップ1217で、第1のデバイスは、その1つまたは複数の変更標識を暗号化された形で転送すべきである場合には、任意選択で、変更標識を暗号化する。非同期型同期では同期型同期よりリソース利用を少なくすることが可能であるが、リソースの使用を適切な数の変更を判定する際に考慮に入れることもできる。データまたはデータ属性またはその他の要因によるリソース要件の判定、およびユーザ利用の検出は、例えば、通常の従来方式で行うことができる。
ステップ1219で、第1のデバイスは、変更を伝達するのに必要なその他の情報を判定する。前述のように、例えば、その他の情報には、前述の同期メッセージ例で利用されるようなコマンドの種類、コマンドID、参照マッピング情報などが含まれる。
最後に、ステップ1111(図11)で、第1のデバイスは、変更標識(または同期メッセージ)を経路指定システムに転送し、それによってその変更が第2のデバイスに受け取られ、第1のデバイス・トリガに関連して非同期的にトリガする第2のデバイス・トリガに応答して、それが第2のデバイス・データと同期されるようにする。
図13に、さらに、経路指定システムの方法の例を示す。図示のように、経路指定システムは、ステップ1301で、第1のデバイス・トリガ(例えば、図11の第1のデバイスのトリガなど)に応答して動作する第1のデバイスから転送要求を受け取る。経路指定システムは、さらに、ステップ1303で、第1のデバイスから第1のデバイス・データへの変更を指示する変更標識を受け取り、ステップ1305で、第2のデバイスによる非同期受信のためにその変更標識を記憶する。経路指定システムは、ステップ1306で、(同期に関する)次の要求を待つ。
次いで、ステップ1303から1305の変更標識の同期(およびおそらくその他の変更標識の同期)は、ステップ1307から1309に進むことができる。しかし、非同期オペレーションは、さらに、ステップ1301から1305で第1のデバイスから1つまたは複数のさらなる変更標識を受け取ること、ステップ1311から1315で第2のデバイスからさらなる変更標識を受け取ること、あるいはステップ1317からステップ1319で第1のデバイスに変更標識を転送することも可能にする。
ステップ1303から開始すると、経路指定システムは、第1のデバイス・トリガに関連して非同期的にトリガする第2のデバイス・トリガに応答して動作する第2のデバイスから転送要求を受け取る。次いで、ステップ1309で、経路指定システムは第2のデバイスに、その経路指定システムが記憶する要求された変更標識を転送し、それらの変更を第2のデバイスが受け取り、第2のデバイス・データと同期させることができる。
それとは異なりステップ1311から開始すると、経路指定システムは、非同期の第2のデバイス・トリガに応答して動作する第2のデバイスから転送要求を受け取る。前述の例のように、このトリガは、第1のデバイス・トリガに関連して非同期的に開始し、ステップ1307〜1309のトリガと同じトリガ、または、より典型的には、異なるトリガ(例えば、情報へのユーザ・アクセスまたは同期受信スケジュールに反するデータの変更、同期初期設定スケジュールまたはユーザ変更など)とすることができる。ステップ1313で、経路指定システムは第2のデバイスから、第2のデバイス・データへの変更を指示する(第2のデバイスの)変更標識を受け取り、ステップ1315で、その変更標識を記憶する。
それとは異なりステップ1317から開始すると、経路指定システムは、第2のデバイス・トリガに関連して非同期的にトリガする第2のデバイス・トリガに応答して動作する第1のデバイスから転送要求を受け取る。(この場合もやはり、例えば上記のような様々なトリガ・オプションが存在する。)経路指定システムは、さらに、第1のデバイスに、使用可能な、1つまたは複数の要求された変更標識を転送し、それらの変更を第1のデバイスが受け取り、第1のデバイス・データと同期させることができる。
図14に、開始された同期を処理する例示的方法を示す。図示のように、ステップ1401で、第1のデバイスは第1のトリガ・イベントを受け取り、ステップ1403で(まだ接続されていない場合には)経路指定システムに接続することによって応答する。ステップ1405で、第1のデバイスは、例えば、第1のデバイス、他のシステム、ユーザまたはデバイス利用要因などに従って、要求するいくつかの変更標識を決定する。ステップ1407で、第1のデバイスは経路指定システムから、(少なくとも第1のデバイス・トリガに関連して)第2のデバイス・トリガを非同期のトリガしたことに応答して経路指定システムに転送された、第2のデバイス・データへの変更を指示する変更標識を受け取る。
ステップ1409で、第1のデバイスは、任意選択で、それらの変更が同期でのセキュリティ要件を満たすかどうか判定する。(セキュリティは、例えば、共用の方式で、送信側デバイスによっても、受信側デバイスによって、その両者によっても実施できることに留意されたい。例えば、図11および図12を参照されたい。)ステップ1411で、第1のデバイスは、その標識が暗号化されている場合には、その変更標識を解読し、ステップ1413で、例えば、第1のデバイス・データに追加、更新または削除を行うことによって、対応する第1のデバイス・データとその第2のデバイス変更の同期をとる。最後に、処理すべき次の標識が残っている場合には、第1のデバイスはステップ1407に戻る。1回の同期「セッション」または連続した同期セッションで、経路指定システムによって記憶された変更標識のすべてまたは一部を、経路指定システムから一度に検索することもできることが理解されるであろう。
以上、本明細書では本発明をその具体的実施形態を参照して説明したが、前述の開示では、ある程度の変更の許容範囲、様々な変更および置換が意図されており、場合によっては、記載の本発明の精神および範囲を逸脱することなく、対応する他の特徴を使用せずに本発明の一部の特徴が用いられることが理解されるであろう。
本発明の一実施形態による非同期型同期システムを示す流れ図である。 本発明の一実施形態による、非同期型同期システム要素を実装することのできる処理システムを示す構成図である。 本発明の一実施形態による、非同期型同期支援機能およびデータ・センタの使用を示す流れ図である。 図3aのデータ・センタをより詳細に示す構成図である。 本発明の一実施形態による、第1の非同期型同期支援機能のオペレーションを示す流れ図である。 本発明の一実施形態による、第2の非同期型同期支援機能のオペレーションを示す流れ図である。 本発明の一実施形態による、共通記憶管理機能を示す構成図である。 本発明の一実施形態による、非同期型同期支援機能をより詳細に示す図である。 本発明の一実施形態による同期エンジンを示す図である。 本発明の一実施形態による同期メッセージの例を示す図である。 本発明の一実施形態による同期履歴の例を示す図である。 本発明の一実施形態によるサーバ・ユーザ・デバイス・マップを示す図である。 本発明の一実施形態によるクライアント・ユーザ・デバイス・マップを示す図である。 本発明の一実施形態による非同期型同期方式を開始する方法示すフローチャートである。 本発明の一実施形態による、変更受信者を決定し、それと併せてセキュリティを実施する方法を示す図(a)と、本発明の一実施形態による、非同期型同期を開始する計算処理システムが1つまたは複数の変更標識を構成する方法を示すフローチャートである(b)。 一実施形態による、非同期的に同期をとる計算処理システム間で転送される1つまたは複数の変更を処理する経路指定システムのための方法を示すフローチャートである。 本発明の一実施形態による、1つまたは複数の第2のデバイス変更の第1のデバイスによる非同期型同期を実施する方法を示すフローチャートである。

Claims (40)

  1. 第1の計算処理デバイスが第1のトリガ・イベントを受け取ること、
    前記第1の計算処理デバイスが前記第1のトリガ・イベントに応答して、前記第1の計算処理デバイスの第1のデバイス・データに変更が加えられているかどうか判定すること、および
    前記変更が加えられていると判定された場合には、経路指定システムに前記変更を指示する変更標識を転送すること
    を含む方法であって、
    前記変更が、第2の計算処理デバイスによって受け取られ、非同期的にトリガする第2のデバイス・トリガに応答して前記第2の計算処理デバイスの第2のデバイス・データと同期させられる方法。
  2. 前記第1の計算処理デバイスと前記第2の計算処理デバイスの少なくとも一方がパーソナル・コンピュータ、PDA、PIMおよび携帯電話を含むグループから選択される請求項1に記載の方法。
  3. 前記第1のトリガ・イベントが前記第1のデバイス・データへの変更を含む請求項1に記載の方法。
  4. 前記変更標識が同期メッセージを含む請求項1に記載の方法。
  5. 前記同期メッセージが前記変更に対応する変更済みデータを含む請求項4に記載の方法。
  6. 前記同期メッセージが、前記第1のデバイス・データの第1の計算処理デバイス・バージョンを指示する第1のバージョン標識と、前記第2のデバイス・データの第2の計算処理デバイス・バージョンを指示する第2のバージョン標識の少なくとも一方を含む請求項4に記載の方法。
  7. 前記経路指定システムが、前記第1の計算処理デバイスと前記第2の計算処理デバイスからアクセス可能な記憶デバイスを含む請求項1に記載の方法。
  8. 前記記憶デバイスが、前記第1の計算処理デバイスから第1のデバイス変更標識を受け取り、前記第1のデバイス変更標識を前記第2のデバイスに転送する第1の待ち行列と、前記第2の計算処理デバイスから第2のデバイス変更標識を受け取り、前記第2のデバイス変更標識を前記第1のデバイスに転送する第2の待ち行列とを含む請求項7に記載の方法。
  9. 前記経路指定システムが、前記第1の計算処理デバイスと前記第2の計算処理デバイスがネットワークを介して結合可能なネットワーク・サーバを含む請求項1に記載の方法。
  10. 前記ネットワークがインターネットを含む請求項9に記載の方法。
  11. 前記第2のトリガ・イベントが、第2のデバイスの電源オンおよび周期的に開始される第2のデバイス・トリガを含むグループから選択される請求項1に記載の方法。
  12. 第1の計算処理デバイスが第1のトリガ・イベントを受け取る手段と、
    第1の計算処理デバイスが前記第1のトリガ・イベントに応答して、前記第1の計算処理デバイスの第1のデバイス・データに変更が加えられているかどうか判定する手段と、
    前記変更が加えられていると判定された場合には、経路指定システムに前記変更を指示する変更標識を転送する手段と
    を含む同期システムであって、
    前記変更は、第2の計算処理デバイスによって受け取られ、非同期的にトリガする第2のデバイス・トリガに応答して前記第2のデバイスの第2のデバイス・データと同期させられる同期システム。
  13. コンピュータに、
    第1の計算処理デバイスが第1のトリガ・イベントを受け取るステップと、
    前記第1の計算処理デバイスが前記第1のトリガ・イベントに応答して、前記第1の計算処理デバイスの第1のデバイス・データに変更が加えられているかどうか判定するステップと、
    前記変更が加えられていると判定された場合には、経路指定システムに前記変更を指示する変更標識を転送するステップと
    を実施させるプログラム・コードを記憶するコンピュータ可読記憶媒体であって、
    前記変更が、第2の計算処理デバイスによって受け取られ、非同期的にトリガする第2のデバイス・トリガに応答して前記第2のデバイスの第2のデバイス・データと同期させられるコンピュータ可読記憶媒体。
  14. 第1の計算処理デバイスが第1のトリガ・イベントを受け取ること、
    前記第1の計算処理デバイスが経路指定システムから切断されている場合には、前記第1の計算処理デバイスが前記経路指定システムに接続することによって前記第1のトリガ・イベントに応答すること、
    前記第1の計算処理デバイスが前記経路指定システムから、第2の計算処理デバイスの非同期的にトリガする第2のデバイス・トリガに応答して前記経路指定システムに転送された、前記第2の計算処理デバイスの第2のデバイス・データへの変更を指示する変更標識を受け取ること、および
    前記第1の計算処理デバイスが、前記第2の計算処理デバイスの前記第2のデバイス・データを、前記第1の計算処理デバイスの対応する第1のデバイス・データと同期させること
    を含む方法。
  15. 前記第1の計算処理デバイスと前記第2の計算処理デバイスの少なくとも一方が、パーソナル・コンピュータ、PDA、PIM、携帯電話を含むグループから選択される請求項13に記載の方法。
  16. 前記第1のトリガ・イベントが、第1の計算処理デバイスの電源オンと周期的に開始される第1のデバイス・トリガを含むグループから選択される請求項13に記載の方法。
  17. 前記変更標識が同期メッセージを含む請求項13に記載の方法。
  18. 前記同期メッセージが前記変更に対応する変更済みデータを含む請求項16に記載の方法。
  19. 前記同期メッセージが、前記第1のデバイス・データの第1の計算処理デバイス・バージョンを指示する第1のバージョン標識と、前記第2のデバイス・データの第2の計算処理デバイス・バージョンを指示する第2のバージョン標識の少なくとも一方を含む請求項16に記載の方法。
  20. 前記経路指定システムが、前記第1の計算処理デバイスと前記第2の計算処理デバイスからアクセス可能な記憶デバイスを含む請求項13に記載の方法。
  21. 前記記憶デバイスが、前記第1の計算処理デバイスから第1のデバイス変更標識を受け取り、前記第1のデバイス変更標識を前記第2のデバイスに転送する第1の待ち行列と、前記第2の計算処理デバイスから第2のデバイス変更標識を受け取り、前記第2のデバイス変更標識を前記第1のデバイスに転送する第2の待ち行列とを含む請求項19に記載の方法。
  22. 前記経路指定システムが、前記第1の計算処理デバイスと前記第2の計算処理デバイスがネットワークを介して結合可能なネットワーク・サーバを含む請求項13に記載の方法。
  23. 前記ネットワークがインターネットを含む請求項21に記載の方法。
  24. 前記第2のトリガ・イベントが前記第2のデバイス・データへの変更を含む請求項13に記載の方法。
  25. 第1の計算処理デバイスが第1のトリガ・イベントを受け取る手段と、
    前記第1の計算処理デバイスが前記第1のトリガ・イベントに応答して、経路指定システムから切断されている場合には、前記第1の計算処理デバイスが前記経路指定システムに接続する手段と、
    前記第1の計算処理デバイスが前記経路指定システムから、第2の計算処理デバイスの非同期的にトリガする第2のデバイス・トリガに応答して前記経路指定システムに転送された前記第2の計算処理デバイスの第2のデバイス・データへの変更を指示する変更標識を受け取る手段と、
    前記第1の計算処理デバイスが、前記第2の計算処理デバイスの前記第2のデバイス・データを、前記第1の計算処理デバイスの対応する第1のデバイス・データに同期させること
    を含むシステム。
  26. コンピュータに、
    第1の計算処理デバイスが第1のトリガ・イベントを受け取るステップと、
    前記第1の計算処理デバイスが前記第1のトリガ・イベントに応答して、経路指定システムから切断されている場合には、前記第1の計算処理デバイスが前記経路指定システムに接続するステップと、
    前記第1の計算処理デバイスが前記経路指定システムから、第2の計算処理デバイスの非同期的にトリガする第2のデバイス・トリガに応答して前記経路指定システムに転送された前記第2の計算処理デバイスの第2のデバイス・データへの変更を指示する変更標識を受け取るステップと、
    前記第1の計算処理デバイスが、前記第2の計算処理デバイスの前記第2のデバイス・データを、前記第1の計算処理デバイスの対応する第1のデバイス・データと同期させるステップと
    を実施させるプログラム・コードを記憶するコンピュータ可読記憶媒体。
  27. 第1のユーザ・デバイスが第1のトリガ・イベントを受け取ること、
    前記第1のユーザ・デバイスが、前記第1の計算処理デバイスのデータ要素に変更が加えられているかどうか判定し、変更が加えられている場合には、前記第1のトリガ・イベントに応答して、経路指定システムに前記変更を指示する変更標識を転送すること、
    第2の計算処理デバイスが、前記第1のトリガ・イベントと時間的に無関係な第2のトリガ・イベントを受け取ること、および
    前記第2の計算処理デバイスが、前記経路指定システムから前記変更標識を受け取り、前記変更を前記第2のユーザ・デバイスに記憶されたデータと同期させることによって前記第2のトリガ・イベントに応答すること
    を含む方法。
  28. 経路指定システムが、第1のデバイス・トリガに応答して動作している第1の計算処理デバイスから、前記第1の計算処理デバイスの第1のデバイス・データへの変更を指示する変更標識を受け取ること、
    前記経路指定システムが前記変更標識を記憶すること、
    前記経路指定システムが、前記第1のデバイス・トリガに関して非同期的にトリガする第2のデバイス・トリガに応答して動作している第2の計算処理デバイスから、前記第2の計算処理デバイスからの転送要求を受け取ること、および
    前記経路指定システムが、前記第2の計算処理デバイスに前記変更標識を転送することによって前記転送要求に応答すること
    を含む方法であって、
    前記変更が、前記第2の計算処理デバイスによって受け取られ、前記第2の計算処理デバイスの第2のデバイス・データと同期させられる方法。
  29. 前記第1の計算処理デバイスと前記第2の計算処理デバイスの少なくとも一方が、パーソナル・コンピュータ、PDA、PIM、携帯電話を含むグループから選択される請求項27に記載の方法。
  30. 前記第1のトリガ・イベントが前記第1のデバイス・データへの変更を含む請求項27に記載の方法。
  31. 前記変更標識が同期メッセージを含む請求項27に記載の方法。
  32. 前記同期メッセージが前記変更に対応する変更済みデータを含む請求項30に記載の方法。
  33. 前記同期メッセージが、前記第1のデバイス・データの第1の計算処理デバイス・バージョンを指示する第1のバージョン標識と前記第2のデバイス・データの第2の計算処理デバイス・バージョンを指示する第2のバージョン標識の少なくとも一方を含む請求項30に記載の方法。
  34. 前記経路指定システムが、前記第1の計算処理デバイスおよび前記第2の計算処理デバイスからアクセス可能な記憶デバイスを含む請求項27に記載の方法。
  35. 前記記憶デバイスが、前記第1の計算処理デバイスから第1のデバイス変更標識を受け取り、前記第1のデバイス変更標識を前記第2のデバイスに転送する第1の待ち行列と、前記第2の計算処理デバイスから第2のデバイス変更標識を受け取り、前記第2のデバイス変更標識を前記第1のデバイスに転送する第2の待ち行列とを含む請求項33に記載の方法。
  36. 前記経路指定システムが、前記第1の計算処理デバイスと前記第2の計算処理デバイスがネットワークを介して結合可能なネットワーク・サーバとを含む請求項27に記載の方法。
  37. 前記ネットワークがインターネットを含む請求項35に記載の方法。
  38. 前記第2のトリガ・イベントが、第2のデバイスの電源オンと、周期的に開始される第2のデバイス・トリガを含むグループから選択される請求項27に記載の方法。
  39. 経路指定システムが、第1のデバイス・トリガに応答して動作している第1の計算処理デバイスから、前記第1の計算処理デバイスの第1のデバイス・データへの変更を指示する変更標識を受け取る手段と、
    前記経路指定システムが前記変更標識を記憶する手段と、
    前記経路指定システムが、前記第1のデバイス・トリガに関して非同期的にトリガする第2のデバイス・トリガに応答して動作している第2の計算処理デバイスから、前記第2の計算処理デバイスからの転送要求を受け取る手段と、
    前記経路指定システムが、前記第2の計算処理デバイスに前記変更標識を転送することによって前記転送要求に応答する手段と
    を含むシステムであって、
    前記変更が、前記第2の計算処理デバイスによって受け取られ、前記第2の計算処理デバイスの第2のデバイス・データと同期させられるシステム。
  40. コンピュータに、
    経路指定システムが、第1のデバイス・トリガに応答して動作している第1の計算処理デバイスから、前記第1の計算処理デバイスの第1のデバイス・データへの変更を指示する変更標識を受け取るステップと、
    前記経路指定システムが前記変更標識を記憶するステップと、
    前記経路指定システムが、前記第1のデバイス・トリガに関して非同期的にトリガする第2のデバイス・トリガに応答して動作している第2の計算処理デバイスから、前記第2の計算処理デバイスからの転送要求を受け取るステップと、
    前記経路指定システムが前記転送要求に応答して、前記第2の計算処理デバイスに前記変更標識を転送するステップと
    を実施させるプログラム・コードを記憶するコンピュータ可読記憶媒体であって、
    前記変更が、前記第2の計算処理デバイスによって受け取られ、前記第2の計算処理デバイスの第2のデバイス・データと同期させられるコンピュータ可読記憶媒体。
JP2003546265A 2001-11-15 2002-11-15 非同期型同期のシステムおよび方法 Pending JP2005509979A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33632601P 2001-11-15 2001-11-15
PCT/US2002/036777 WO2003044698A1 (en) 2001-11-15 2002-11-15 System and methods for asychronous synchronization

Publications (2)

Publication Number Publication Date
JP2005509979A true JP2005509979A (ja) 2005-04-14
JP2005509979A5 JP2005509979A5 (ja) 2006-01-12

Family

ID=23315579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003546265A Pending JP2005509979A (ja) 2001-11-15 2002-11-15 非同期型同期のシステムおよび方法

Country Status (7)

Country Link
US (3) US7752166B2 (ja)
EP (1) EP1459213B1 (ja)
JP (1) JP2005509979A (ja)
AU (1) AU2002357731A1 (ja)
CA (1) CA2467404A1 (ja)
IL (1) IL162008A0 (ja)
WO (1) WO2003044698A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222552A (ja) * 2004-02-04 2005-08-18 Microsoft Corp 複数の同期ソースのクロスポリネーション
JP2005293560A (ja) * 2004-04-01 2005-10-20 Microsoft Corp 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法
JP2007503049A (ja) * 2003-08-21 2007-02-15 マイクロソフト コーポレーション 同期スキーマの実装のためのシステム
JP2007503050A (ja) * 2003-08-21 2007-02-15 マイクロソフト コーポレーション ハードウェア/ソフトウェアインタフェースシステムにより管理可能な情報のユニットに対する同期処理サービスを実現するシステムおよび方法
JP2007515695A (ja) * 2003-08-21 2007-06-14 マイクロソフト コーポレーション ハードウェア/ソフトウェアインターフェースシステムにより管理可能な情報のユニットに対する関係および階層の同期サービスを実現するシステムおよび方法
JP2009544070A (ja) * 2006-07-12 2009-12-10 イーストマン コダック カンパニー グローバルアセット管理
JP2011519441A (ja) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション 切断データ/オフラインデータの処理/入力の同期化
JP2014525066A (ja) * 2011-06-03 2014-09-25 アップル インコーポレイテッド クラウドストレージ

Families Citing this family (283)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US6219694B1 (en) 1998-05-29 2001-04-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device having a shared electronic address
US7739334B1 (en) 2000-03-17 2010-06-15 Visto Corporation System and method for automatically forwarding email and email events via a computer network to a server computer
US7225231B2 (en) * 2000-09-20 2007-05-29 Visto Corporation System and method for transmitting workspace elements across a network
US20040024910A1 (en) * 2001-06-01 2004-02-05 Marl Coyle B. Adaptive synchronization of service data
US7539665B2 (en) * 2001-10-23 2009-05-26 Visto Corporation System and method for merging remote and local data in a single user interface
AU2002357731A1 (en) * 2001-11-15 2003-06-10 Visto Corporation System and methods for asychronous synchronization
WO2003058483A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US7076567B1 (en) * 2002-04-25 2006-07-11 Oracle International Corporation Simplified application object data synchronization for optimized data storage
US11337047B1 (en) 2002-05-21 2022-05-17 M2M Solutions Llc System and method for remote asset management
GB0211644D0 (en) 2002-05-21 2002-07-03 Wesby Philip B System and method for remote asset management
US7958455B2 (en) * 2002-08-01 2011-06-07 Apple Inc. Mode activated scrolling
US7346705B2 (en) * 2002-08-28 2008-03-18 Apple Inc. Method of synchronising three or more electronic devices and a computer system for implementing that method
US7787489B2 (en) * 2002-10-07 2010-08-31 Oracle International Corporation Mobile data distribution
US20080261633A1 (en) 2002-10-22 2008-10-23 Research In Motion Limited System and Method for Pushing Information from a Host System to a Mobile Data Communication Device
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7290019B2 (en) * 2003-03-03 2007-10-30 Microsoft Corporation Garbage collection of tombstones for optimistic replication systems
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
JP4149315B2 (ja) * 2003-06-12 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップシステム
JP2005004661A (ja) * 2003-06-13 2005-01-06 Sony Corp データ管理システム
EP1489862A1 (en) * 2003-06-20 2004-12-22 Axalto S.A. Database synchronization
US20050004954A1 (en) * 2003-07-01 2005-01-06 Hand Held Products, Inc. Systems and methods for expedited data transfer in a communication system using hash segmentation
US8131803B2 (en) * 2003-08-19 2012-03-06 Research In Motion Limited System and method for integrating an address book with an instant messaging application in a mobile station
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7937433B1 (en) * 2003-09-23 2011-05-03 Embarq Holdings Company, Llc Queuing connector to promote message servicing
US8321534B1 (en) 2003-10-15 2012-11-27 Radix Holdings, Llc System and method for synchronization based on preferences
US7080104B2 (en) * 2003-11-07 2006-07-18 Plaxo, Inc. Synchronization and merge engines
US7389324B2 (en) 2003-11-07 2008-06-17 Plaxo, Inc. Viral engine for network deployment
US8954420B1 (en) 2003-12-31 2015-02-10 Google Inc. Methods and systems for improving a search ranking using article information
US20050181790A1 (en) * 2004-02-10 2005-08-18 Yach David P. Apparatus, and associated method, for facilitating efficient communication of data communicated pursuant to a syncrhonization session
US7680888B1 (en) 2004-03-31 2010-03-16 Google Inc. Methods and systems for processing instant messenger messages
US8161053B1 (en) 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
US8099407B2 (en) 2004-03-31 2012-01-17 Google Inc. Methods and systems for processing media files
US7725508B2 (en) * 2004-03-31 2010-05-25 Google Inc. Methods and systems for information capture and retrieval
US8346777B1 (en) 2004-03-31 2013-01-01 Google Inc. Systems and methods for selectively storing event data
US20050234929A1 (en) * 2004-03-31 2005-10-20 Ionescu Mihai F Methods and systems for interfacing applications with a search engine
US7412708B1 (en) 2004-03-31 2008-08-12 Google Inc. Methods and systems for capturing information
US7581227B1 (en) * 2004-03-31 2009-08-25 Google Inc. Systems and methods of synchronizing indexes
US7333976B1 (en) 2004-03-31 2008-02-19 Google Inc. Methods and systems for processing contact information
US7941439B1 (en) 2004-03-31 2011-05-10 Google Inc. Methods and systems for information capture
US8386728B1 (en) 2004-03-31 2013-02-26 Google Inc. Methods and systems for prioritizing a crawl
US8631076B1 (en) 2004-03-31 2014-01-14 Google Inc. Methods and systems for associating instant messenger events
US8275839B2 (en) 2004-03-31 2012-09-25 Google Inc. Methods and systems for processing email messages
JP2005309968A (ja) * 2004-04-23 2005-11-04 Kyosan Electric Mfg Co Ltd 最新情報表示システム及びそれを使用した列車運行状況表示システム
US7730167B2 (en) * 2004-04-30 2010-06-01 Microsoft Corporation Methods and systems for halting synchronization loops in a distributed system
US7606820B2 (en) * 2004-05-11 2009-10-20 Sap Ag Detecting and handling changes to back-end systems
US7966391B2 (en) * 2004-05-11 2011-06-21 Todd J. Anderson Systems, apparatus and methods for managing networking devices
US7814231B2 (en) * 2004-05-24 2010-10-12 Apple Inc. Method of synchronizing between three or more devices
US7809682B2 (en) * 2004-05-24 2010-10-05 Apple Inc. Data synchronization between multiple devices
US7383291B2 (en) * 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US7877356B1 (en) 2004-05-24 2011-01-25 Apple Inc. Retaining intermediate states of shared groups of objects and notification of changes to shared groups of objects
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7490295B2 (en) * 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
WO2006045102A2 (en) * 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US7840528B2 (en) * 2004-10-22 2010-11-23 Research In Motion Limited System and method for integrating continuous synchronization on a host handheld device
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
US7643818B2 (en) 2004-11-22 2010-01-05 Seven Networks, Inc. E-mail messaging to/from a mobile terminal
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
EP1828932A4 (en) * 2004-12-10 2008-03-05 Seven Networks Internat Oy DATABASE SYNCHRONIZATION
US7634519B2 (en) * 2004-12-17 2009-12-15 International Business Machines Corporation Bypassing an intermediate synchronization server of a three tiered synchronization system
ATE492969T1 (de) 2004-12-23 2011-01-15 Research In Motion Ltd Systeme und verfahren für kontinuierliche pim- synchronisation zwischen einem hostcomputer und einer in der hand gehaltenen client-einrichtung
FI120165B (fi) * 2004-12-29 2009-07-15 Seven Networks Internat Oy Tietokannan synkronointi matkaviestinverkon kautta
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US20060242206A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for peer to peer synchronization of files
US20060242204A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager conflict resolution
US7774384B2 (en) * 2005-05-25 2010-08-10 At&T Intellectual Property I, L.P. Obtaining user feedback for unavailable content
WO2006136661A1 (en) * 2005-06-21 2006-12-28 Seven Networks International Oy Network-initiated data transfer in a mobile network
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
WO2007045051A1 (en) 2005-10-21 2007-04-26 Honeywell Limited An authorisation system and a method of authorisation
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7707514B2 (en) * 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US9262446B1 (en) 2005-12-29 2016-02-16 Google Inc. Dynamically ranking entries in a personal data book
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US7620721B2 (en) * 2006-02-28 2009-11-17 Microsoft Corporation Pre-existing content replication
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
TW200743028A (en) * 2006-05-12 2007-11-16 Benq Corp State synchronization apparatuses and methods
TWI305619B (en) * 2006-05-12 2009-01-21 Qisda Corp State synchronization systems and methods
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
TWI320534B (en) * 2006-06-23 2010-02-11 Qisda Corp State synchronization systems and methods
US8089987B2 (en) * 2006-06-29 2012-01-03 International Business Machines Corporation Synchronizing in-memory caches while being updated by a high rate data stream
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US20080115152A1 (en) 2006-11-15 2008-05-15 Bharat Welingkar Server-controlled heartbeats
US8135798B2 (en) 2006-11-15 2012-03-13 Hewlett-Packard Development Company, L.P. Over-the-air device services and management
US7603435B2 (en) 2006-11-15 2009-10-13 Palm, Inc. Over-the-air device kill pill and lock
US7805403B2 (en) 2007-01-07 2010-09-28 Apple Inc. Synchronization methods and systems
US20100005102A1 (en) * 2007-03-22 2010-01-07 Arinc Incorporated Method and apparatus for managing document/message content for distribution to subscribers
US7756995B1 (en) 2007-03-28 2010-07-13 Amazon Technologies, Inc. Regulating transmission rates
US7747770B1 (en) * 2007-03-28 2010-06-29 Amazon Technologies, Inc. Protocol for managing information
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US20090012961A1 (en) * 2007-06-29 2009-01-08 Balaya Llc System and method for deepening group bonds by granting access to a data structure
US20090024558A1 (en) * 2007-07-16 2009-01-22 Sap Ag Methods and systems for storing and retrieving rejected data
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8135865B2 (en) * 2007-09-04 2012-03-13 Apple Inc. Synchronization and transfer of digital media items
US8584140B2 (en) * 2007-09-21 2013-11-12 Presenceid, Inc. Systems and methods for receiving and sending messages about changes to data attributes
US9143561B2 (en) 2007-11-09 2015-09-22 Topia Technology, Inc. Architecture for management of digital files across distributed network
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8135769B2 (en) * 2008-06-06 2012-03-13 Apple Inc. Synchronization improvements
US8429123B2 (en) * 2008-06-06 2013-04-23 Apple Inc. Synchronization improvements
US20090307280A1 (en) * 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8010487B2 (en) * 2008-06-27 2011-08-30 Microsoft Corporation Synchronization and collaboration within peer-to-peer and client/server environments
US20100070776A1 (en) * 2008-09-17 2010-03-18 Shankar Raman Logging system events
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8856322B2 (en) 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
US20100159898A1 (en) * 2008-12-19 2010-06-24 Openpeak, Inc. Services platform for networked devices that provide telephony and digital media services
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US9614685B2 (en) 2009-03-09 2017-04-04 Nokia Technologies Oy Methods, apparatuses, and computer program products for facilitating synchronization of setting configurations
EP2408984B1 (en) 2009-03-19 2019-11-27 Honeywell International Inc. Systems and methods for managing access control devices
US8156173B2 (en) 2009-04-06 2012-04-10 Novell, Inc. Synchronizing machines in groups
US8380669B2 (en) * 2009-06-05 2013-02-19 Apple Inc. Throttling to reduce synchronizations of excessively changing data
US9280365B2 (en) * 2009-12-17 2016-03-08 Honeywell International Inc. Systems and methods for managing configuration data at disconnected remote devices
US9015283B2 (en) 2009-12-18 2015-04-21 Microsoft Technology Roaming profiles and application compatibility in multi-user systems
US8606889B2 (en) * 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
US8386433B1 (en) * 2010-02-19 2013-02-26 Netapp, Inc. Coalescing metadata for mirroring to a remote node in a cluster storage system
US8386425B1 (en) 2010-02-19 2013-02-26 Netapp, Inc. Out of order delivery for data and metadata mirroring in a cluster storage system
TW201209697A (en) 2010-03-30 2012-03-01 Michael Luna 3D mobile user interface with configurable workspace management
US8266102B2 (en) * 2010-05-26 2012-09-11 International Business Machines Corporation Synchronization of sequential access storage components with backup catalog
CN102906730A (zh) * 2010-05-28 2013-01-30 无极公司 用于被管理装置的共享心搏服务
EP2599345B1 (en) 2010-07-26 2017-09-06 Seven Networks, LLC Distributed implementation of dynamic wireless traffic policy
CA2806527A1 (en) 2010-07-26 2012-02-09 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
CA2857458A1 (en) 2010-07-26 2012-02-09 Michael Luna Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
WO2012061430A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
GB2499534B (en) 2010-11-01 2018-09-19 Seven Networks Llc Caching adapted for mobile application behavior and network conditions
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
US8204953B2 (en) 2010-11-01 2012-06-19 Seven Networks, Inc. Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8787725B2 (en) 2010-11-11 2014-07-22 Honeywell International Inc. Systems and methods for managing video data
WO2012071384A2 (en) 2010-11-22 2012-05-31 Michael Luna Optimization of resource polling intervals to satisfy mobile device requests
EP2596658B1 (en) 2010-11-22 2018-05-09 Seven Networks, LLC Aligning data transfer to optimize connections established for transmission over a wireless network
US9992055B2 (en) 2010-12-31 2018-06-05 Openpeak Llc Disseminating commands from a DMS server to fielded devices using an extendable command architecture
EP2661697B1 (en) 2011-01-07 2018-11-21 Seven Networks, LLC System and method for reduction of mobile network traffic used for domain name system (dns) queries
US8868500B2 (en) * 2011-01-14 2014-10-21 Apple Inc. Data synchronization
FI20115060A0 (fi) 2011-01-21 2011-01-21 Teliasonera Ab Historiatietojen synkronointi
WO2012145544A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Device resource sharing for network resource conservation
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
EP2702827A4 (en) 2011-04-27 2014-10-22 Seven Networks Inc MOBILE DEVICE DISCHARGING REQUESTS MOBILE APPLICATION TO REMOTE ENTITY TO KEEP MOBILE DEVICE RESOURCES AND NETWORK RESOURCES AND RELATED METHODS
US9489325B2 (en) * 2011-04-28 2016-11-08 Sandeep Jain Method and a system for polling and processing data
US8949182B2 (en) * 2011-06-17 2015-02-03 International Business Machines Corporation Continuous and asynchronous replication of a consistent dataset
US9894261B2 (en) 2011-06-24 2018-02-13 Honeywell International Inc. Systems and methods for presenting digital video management system information via a user-customizable hierarchical tree interface
EP2737742A4 (en) 2011-07-27 2015-01-28 Seven Networks Inc AUTOMATIC PRODUCTION AND DISTRIBUTION OF GUIDELINES INFORMATION ON MOBILE MOBILE TRANSPORT IN A WIRELESS NETWORK
US10362273B2 (en) 2011-08-05 2019-07-23 Honeywell International Inc. Systems and methods for managing video data
CN104137154B (zh) 2011-08-05 2019-02-01 霍尼韦尔国际公司 用于管理视频数据的系统和方法
US9344684B2 (en) 2011-08-05 2016-05-17 Honeywell International Inc. Systems and methods configured to enable content sharing between client terminals of a digital video management system
US20130231971A1 (en) * 2011-08-23 2013-09-05 Judy Bishop Legal project management system and method
GB201115083D0 (en) * 2011-08-31 2011-10-19 Data Connection Ltd Identifying data items
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
WO2013086214A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9563626B1 (en) * 2011-12-08 2017-02-07 Amazon Technologies, Inc. Offline management of data center resource information
US8713646B2 (en) 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
WO2013090834A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
GB2499306B (en) 2012-01-05 2014-10-22 Seven Networks Inc Managing user interaction with an application on a mobile device
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US10257194B2 (en) 2012-02-14 2019-04-09 Airwatch Llc Distribution of variably secure resources in a networked environment
US9705813B2 (en) 2012-02-14 2017-07-11 Airwatch, Llc Controlling distribution of resources on a network
US10404615B2 (en) 2012-02-14 2019-09-03 Airwatch, Llc Controlling distribution of resources on a network
US9680763B2 (en) 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US8756565B2 (en) * 2012-02-17 2014-06-17 National Instruments Corporation Modifying a target system configuration to utilize a different synchronization module for performing synchronization among multiple programmable hardware elements
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US9443230B2 (en) * 2012-04-30 2016-09-13 At&T Intellectual Property I, L.P. Point-to point data synchronization
US9116971B2 (en) 2012-05-08 2015-08-25 Softframe, Inc. Data synchronization using a composite change clock
US9990378B2 (en) 2012-06-27 2018-06-05 Microsoft Technology Licensing, Llc Opportunistic clearing of sync states associated with a database
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9176828B2 (en) * 2012-09-04 2015-11-03 Opshub, Inc. System and method for merging results from multiple runs based on run inputs
US9147004B2 (en) * 2012-09-07 2015-09-29 Cimpress Schweiz Gmbh Website builder systems and methods with device detection to adapt rendering behavior based on device type
US9170886B2 (en) * 2012-10-09 2015-10-27 International Business Machines Corporation Relaxed anchor validation in a distributed synchronization environment
US9247432B2 (en) 2012-10-19 2016-01-26 Airwatch Llc Systems and methods for controlling network access
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US8832785B2 (en) 2012-12-06 2014-09-09 Airwatch, Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9805052B2 (en) 2013-01-28 2017-10-31 Netapp, Inc. Coalescing metadata for mirroring to a remote storage node in a cluster storage system
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
KR102020358B1 (ko) * 2013-03-14 2019-11-05 삼성전자 주식회사 단말 및 그 단말에서 애플리케이션 동기화 방법
US20140280955A1 (en) 2013-03-14 2014-09-18 Sky Socket, Llc Controlling Electronically Communicated Resources
US9473417B2 (en) 2013-03-14 2016-10-18 Airwatch Llc Controlling resources used by computing devices
US9275245B2 (en) 2013-03-15 2016-03-01 Airwatch Llc Data access sharing
US9378350B2 (en) 2013-03-15 2016-06-28 Airwatch Llc Facial capture managing access to resources by a device
US9148416B2 (en) 2013-03-15 2015-09-29 Airwatch Llc Controlling physical access to secure areas via client devices in a networked environment
US9203820B2 (en) 2013-03-15 2015-12-01 Airwatch Llc Application program as key for authorizing access to resources
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US9819682B2 (en) 2013-03-15 2017-11-14 Airwatch Llc Certificate based profile confirmation
US10652242B2 (en) 2013-03-15 2020-05-12 Airwatch, Llc Incremental compliance remediation
US9401915B2 (en) 2013-03-15 2016-07-26 Airwatch Llc Secondary device as key for authorizing access to resources
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US10754966B2 (en) 2013-04-13 2020-08-25 Airwatch Llc Time-based functionality restrictions
US8914013B2 (en) 2013-04-25 2014-12-16 Airwatch Llc Device management macros
US9123031B2 (en) 2013-04-26 2015-09-01 Airwatch Llc Attendance tracking via device presence
US9426162B2 (en) 2013-05-02 2016-08-23 Airwatch Llc Location-based configuration policy toggling
US9246918B2 (en) 2013-05-10 2016-01-26 Airwatch Llc Secure application leveraging of web filter proxy services
US9058495B2 (en) 2013-05-16 2015-06-16 Airwatch Llc Rights management services integration with mobile device management
US9584437B2 (en) 2013-06-02 2017-02-28 Airwatch Llc Resource watermarking and management
US9900261B2 (en) 2013-06-02 2018-02-20 Airwatch Llc Shared resource watermarking and management
US20140358703A1 (en) 2013-06-04 2014-12-04 SkySocket, LLC Item Delivery Optimization
US9270777B2 (en) 2013-06-06 2016-02-23 Airwatch Llc Social media and data sharing controls for data security purposes
US9535857B2 (en) 2013-06-25 2017-01-03 Airwatch Llc Autonomous device interaction
US8924608B2 (en) 2013-06-25 2014-12-30 Airwatch Llc Peripheral device management
US8775815B2 (en) 2013-07-03 2014-07-08 Sky Socket, Llc Enterprise-specific functionality watermarking and management
US8806217B2 (en) 2013-07-03 2014-08-12 Sky Socket, Llc Functionality watermarking and management
US8756426B2 (en) 2013-07-03 2014-06-17 Sky Socket, Llc Functionality watermarking and management
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9226155B2 (en) 2013-07-25 2015-12-29 Airwatch Llc Data communications management
US9112749B2 (en) 2013-07-25 2015-08-18 Airwatch Llc Functionality management via application modification
US9665723B2 (en) 2013-08-15 2017-05-30 Airwatch, Llc Watermarking detection and management
US9516005B2 (en) 2013-08-20 2016-12-06 Airwatch Llc Individual-specific content management
US10129242B2 (en) 2013-09-16 2018-11-13 Airwatch Llc Multi-persona devices and management
US9578117B2 (en) 2013-09-20 2017-02-21 Amazon Technologies, Inc. Service discovery using a network
WO2015042144A1 (en) * 2013-09-20 2015-03-26 Amazon Technologies, Inc. Service activity user interface
US9185099B2 (en) 2013-09-23 2015-11-10 Airwatch Llc Securely authorizing access to remote resources
US9258301B2 (en) 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US9544306B2 (en) 2013-10-29 2017-01-10 Airwatch Llc Attempted security breach remediation
US10523903B2 (en) 2013-10-30 2019-12-31 Honeywell International Inc. Computer implemented systems frameworks and methods configured for enabling review of incident data
EP3080725B1 (en) * 2013-12-12 2020-06-10 Mobile Iron, Inc. Application synchronization
US10742520B2 (en) * 2013-12-31 2020-08-11 Citrix Systems, Inc. Providing mobile device management functionalities
US10394924B2 (en) * 2014-06-01 2019-08-27 Apple Inc. Synchronized web browsing histories: processing deletions and limiting communications to server
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
JP6499423B2 (ja) * 2014-11-18 2019-04-10 キヤノン株式会社 情報処理システム、情報処理装置、及びその制御方法とプログラム
US9584964B2 (en) 2014-12-22 2017-02-28 Airwatch Llc Enforcement of proximity based policies
US9413754B2 (en) 2014-12-23 2016-08-09 Airwatch Llc Authenticator device facilitating file security
US10372285B2 (en) 2015-04-14 2019-08-06 Ebay Inc. Standardizing user interface elements
US20160342670A1 (en) * 2015-05-20 2016-11-24 Preventice, Inc. Device data synchronization
CN106168763B (zh) * 2015-05-22 2021-04-27 松下电器(美国)知识产权公司 控制方法以及控制器
US9652225B1 (en) * 2016-01-04 2017-05-16 International Business Machines Corporation Development community assessment via real-time workspace monitoring
CN106980625B (zh) * 2016-01-18 2020-08-04 阿里巴巴集团控股有限公司 一种数据同步方法、装置及系统
US10261961B2 (en) * 2016-03-17 2019-04-16 Change Healthcare Holdings, Llc Method and apparatus for replicating data across multiple data centers
US10452635B2 (en) 2016-03-23 2019-10-22 Microsoft Technology Licensing, Llc Synchronizing files on different computing devices using file anchors
US9916446B2 (en) 2016-04-14 2018-03-13 Airwatch Llc Anonymized application scanning for mobile devices
US9917862B2 (en) 2016-04-14 2018-03-13 Airwatch Llc Integrated application scanning and mobile enterprise computing management system
US10360742B1 (en) 2016-04-22 2019-07-23 State Farm Mutual Automobile Insurance Company System and method for generating vehicle crash data
CN106997378B (zh) * 2017-03-13 2020-05-15 上海摩库数据技术有限公司 基于Redis的数据库数据聚合同步的方法
CN109981315B (zh) * 2017-12-27 2021-08-27 华为技术有限公司 一种anima网络的信息处理方法、设备及系统
US10963423B2 (en) * 2018-02-06 2021-03-30 Bank Of America Corporation Generating and identifying distinct portions of a merged file
US10476656B2 (en) * 2018-04-13 2019-11-12 DeGirum Corporation System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
US11568011B2 (en) * 2018-11-01 2023-01-31 Rewardstyle, Inc. System and method for improved searching across multiple databases
US10909036B2 (en) * 2018-11-09 2021-02-02 International Business Machines Corporation Management of shared memory using asynchronous invalidation signals
US10691632B1 (en) 2019-03-14 2020-06-23 DeGirum Corporation Permutated ring network interconnected computing architecture

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4714995A (en) * 1985-09-13 1987-12-22 Trw Inc. Computer integration system
US4831582A (en) * 1986-11-07 1989-05-16 Allen-Bradley Company, Inc. Database access machine for factory automation network
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US4875159A (en) * 1987-12-22 1989-10-17 Amdahl Corporation Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system
US5687322A (en) * 1989-05-01 1997-11-11 Credit Verification Corporation Method and system for selective incentive point-of-sale marketing in response to customer shopping histories
US5263157A (en) * 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for providing user access control within a distributed data processing system by the exchange of access control profiles
US5388255A (en) * 1991-12-19 1995-02-07 Wang Laboratories, Inc. System for updating local views from a global database using time stamps to determine when a change has occurred
US5519606A (en) * 1992-01-21 1996-05-21 Starfish Software, Inc. System and methods for appointment reconciliation
US5392390A (en) * 1992-04-10 1995-02-21 Intellilink Corp. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5666530A (en) * 1992-12-02 1997-09-09 Compaq Computer Corporation System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
US5581749A (en) * 1992-12-21 1996-12-03 Thedow Chemical Company System and method for maintaining codes among distributed databases using a global database
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
US5386564A (en) * 1993-02-24 1995-01-31 Hewlett-Packard Company Conversion of data and objects across classes in an object management system
US5799318A (en) * 1993-04-13 1998-08-25 Firstfloor Software Method and apparatus for collecting and displaying information from diverse computer resources
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
DE69432503T2 (de) * 1993-10-08 2003-12-24 Ibm Informationsarchivierungssystem mit objektabhängiger Funktionalität
EP0674253B1 (en) * 1994-03-15 2003-02-19 Kabushiki Kaisha Toshiba Shared file editing system with file content secrecy, version management and asynchronous editing
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
US5678039A (en) * 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5588132A (en) * 1994-10-20 1996-12-24 Digital Equipment Corporation Method and apparatus for synchronizing data queues in asymmetric reflective memories
US5652884A (en) * 1994-11-14 1997-07-29 Object Technology Licensing Corp. Method and apparatus for dynamic update of an existing object in an object editor
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5613012A (en) * 1994-11-28 1997-03-18 Smarttouch, Llc. Tokenless identification system for authorization of electronic transactions and electronic transmissions
US5627658A (en) * 1994-12-14 1997-05-06 Xerox Corporation Automatic networked facsimile queuing system
US5664207A (en) * 1994-12-16 1997-09-02 Xcellenet, Inc. Systems and methods for automatically sharing information among remote/mobile nodes
US5878230A (en) * 1995-01-05 1999-03-02 International Business Machines Corporation System for email messages wherein the sender designates whether the recipient replies or forwards to addresses also designated by the sender
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5758354A (en) * 1995-04-28 1998-05-26 Intel Corporation Application independent e-mail synchronization
US5966714A (en) * 1995-04-28 1999-10-12 Intel Corporation Method and apparatus for scaling large electronic mail databases for devices with limited storage
US5682524A (en) * 1995-05-26 1997-10-28 Starfish Software, Inc. Databank system with methods for efficiently storing non-uniform data records
US5752246A (en) * 1995-06-07 1998-05-12 International Business Machines Corporation Service agent for fulfilling requests of a web browser
US5721908A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Computer network for WWW server data access over internet
US5710918A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5680542A (en) * 1995-06-07 1997-10-21 Motorola, Inc. Method and apparatus for synchronizing data in a host memory with data in target MCU memory
US6020885A (en) * 1995-07-11 2000-02-01 Sony Corporation Three-dimensional virtual reality space sharing method and system using local and global object identification codes
CA2227432C (en) 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5745360A (en) * 1995-08-14 1998-04-28 International Business Machines Corp. Dynamic hypertext link converter system and process
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5647002A (en) * 1995-09-01 1997-07-08 Lucent Technologies Inc. Synchronization of mailboxes of different types
US5721914A (en) * 1995-09-14 1998-02-24 Mci Corporation System and method for hierarchical data distribution
US5764902A (en) * 1995-09-29 1998-06-09 Intel Corporation Conditional insert or merge in a data conference
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
US5757916A (en) * 1995-10-06 1998-05-26 International Series Research, Inc. Method and apparatus for authenticating the location of remote users of networked computing systems
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5713019A (en) * 1995-10-26 1998-01-27 Keaten; Timothy M. Iconic access to remote electronic monochrome raster data format document repository
US5832483A (en) * 1995-12-15 1998-11-03 Novell, Inc. Distributed control interface for managing the interoperability and concurrency of agents and resources in a real-time environment
US5765171A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Maintaining consistency of database replicas
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
EP1010096B1 (en) 1996-03-19 2003-10-29 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US5706502A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
JP2910667B2 (ja) 1996-04-09 1999-06-23 日本電気株式会社 線形中継光増幅伝送装置
US5815573A (en) 1996-04-10 1998-09-29 International Business Machines Corporation Cryptographic key recovery system
US5862346A (en) * 1996-06-28 1999-01-19 Metadigm Distributed group activity data network system and corresponding method
US5812773A (en) * 1996-07-12 1998-09-22 Microsoft Corporation System and method for the distribution of hierarchically structured data
US5758355A (en) * 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables
US5974238A (en) * 1996-08-07 1999-10-26 Compaq Computer Corporation Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
US5870759A (en) * 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US5790790A (en) * 1996-10-24 1998-08-04 Tumbleweed Software Corporation Electronic document delivery system in which notification of said electronic document is sent to a recipient thereof
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US6212529B1 (en) * 1996-11-13 2001-04-03 Puma Technology, Inc. Synchronization of databases using filters
US6708221B1 (en) 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US6023708A (en) * 1997-05-29 2000-02-08 Visto Corporation System and method for using a global translator to synchronize workspace elements across a network
US6131116A (en) * 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US6085192A (en) * 1997-04-11 2000-07-04 Roampage, Inc. System and method for securely synchronizing multiple copies of a workspace element in a network
US20060195595A1 (en) * 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US5790425A (en) * 1997-02-19 1998-08-04 Sun Microsystems, Inc. Generic server benchmarking framework in a client-server environment
JPH10240637A (ja) * 1997-02-26 1998-09-11 Internatl Business Mach Corp <Ibm> 代替送信機能を持つデータ送信装置、データ送信方法、及びデータ送信プログラムを格納した記憶媒体
US5924103A (en) * 1997-03-12 1999-07-13 Hewlett-Packard Company Works-in-progress in an information management system
US5961590A (en) 1997-04-11 1999-10-05 Roampage, Inc. System and method for synchronizing electronic mail between a client site and a central site
US6021427A (en) * 1997-05-22 2000-02-01 International Business Machines Corporation Method and system for preventing routing maelstrom loops of automatically routed electronic mail
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
US6023700A (en) * 1997-06-17 2000-02-08 Cranberry Properties, Llc Electronic mail distribution system for integrated electronic communication
US6314408B1 (en) * 1997-07-15 2001-11-06 Eroom Technology, Inc. Method and apparatus for controlling access to a product
CA2210763C (en) 1997-07-17 2000-02-29 Weidong Kou Key generation from a given string for entity authentication
US6073165A (en) * 1997-07-29 2000-06-06 Jfax Communications, Inc. Filtering computer network messages directed to a user's e-mail box based on user defined filters, and forwarding a filtered message to the user's receiver
US6249805B1 (en) * 1997-08-12 2001-06-19 Micron Electronics, Inc. Method and system for filtering unauthorized electronic mail messages
US6138146A (en) * 1997-09-29 2000-10-24 Ericsson Inc. Electronic mail forwarding system and method
US5951652A (en) * 1997-10-06 1999-09-14 Ncr Corporation Dependable data element synchronization mechanism
US6034621A (en) * 1997-11-18 2000-03-07 Lucent Technologies, Inc. Wireless remote synchronization of data between PC and PDA
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US5999932A (en) * 1998-01-13 1999-12-07 Bright Light Technologies, Inc. System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing
US6151606A (en) 1998-01-16 2000-11-21 Visto Corporation System and method for using a workspace data manager to access, manipulate and synchronize network data
US6304881B1 (en) 1998-03-03 2001-10-16 Pumatech, Inc. Remote data access and synchronization
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US20040024824A1 (en) * 2000-04-10 2004-02-05 Ferguson Tabitha K System and method for bundling information
US6779019B1 (en) * 1998-05-29 2004-08-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
JP2000020370A (ja) 1998-06-29 2000-01-21 Sharp Corp データ同期処理装置
US6477545B1 (en) 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US6131096A (en) * 1998-10-05 2000-10-10 Visto Corporation System and method for updating a remote database in a network
US6564218B1 (en) 1998-12-10 2003-05-13 Premitech Aps Method of checking the validity of a set of digital information, and a method and an apparatus for retrieving digital information from an information source
US6118856A (en) * 1998-12-28 2000-09-12 Nortel Networks Corporation Method and apparatus for automatically forwarding an email message or portion thereof to a remote device
US6510455B1 (en) * 1999-09-01 2003-01-21 Inventec Corporation Electronic mail message checking system
US6901380B1 (en) * 1999-09-10 2005-05-31 Dataforce, Inc. Merchandising system method, and program product utilizing an intermittent network connection
US6748447B1 (en) * 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed network
US7225231B2 (en) * 2000-09-20 2007-05-29 Visto Corporation System and method for transmitting workspace elements across a network
US6736322B2 (en) * 2000-11-20 2004-05-18 Ecrio Inc. Method and apparatus for acquiring, maintaining, and using information to be communicated in bar code form with a mobile communications device
US7539665B2 (en) * 2001-10-23 2009-05-26 Visto Corporation System and method for merging remote and local data in a single user interface
AU2002357731A1 (en) 2001-11-15 2003-06-10 Visto Corporation System and methods for asychronous synchronization
EP2955896B1 (en) * 2002-08-09 2017-10-18 Good Technology Holdings Limited System and method for preventing access to data on a compromised remote device

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007503049A (ja) * 2003-08-21 2007-02-15 マイクロソフト コーポレーション 同期スキーマの実装のためのシステム
JP2007503050A (ja) * 2003-08-21 2007-02-15 マイクロソフト コーポレーション ハードウェア/ソフトウェアインタフェースシステムにより管理可能な情報のユニットに対する同期処理サービスを実現するシステムおよび方法
JP2007515695A (ja) * 2003-08-21 2007-06-14 マイクロソフト コーポレーション ハードウェア/ソフトウェアインターフェースシステムにより管理可能な情報のユニットに対する関係および階層の同期サービスを実現するシステムおよび方法
JP2005222552A (ja) * 2004-02-04 2005-08-18 Microsoft Corp 複数の同期ソースのクロスポリネーション
JP4726508B2 (ja) * 2004-02-04 2011-07-20 マイクロソフト コーポレーション 複数の同期ソースのクロスポリネーション
JP2005293560A (ja) * 2004-04-01 2005-10-20 Microsoft Corp 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法
JP4690076B2 (ja) * 2004-04-01 2011-06-01 マイクロソフト コーポレーション 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法
JP2009544070A (ja) * 2006-07-12 2009-12-10 イーストマン コダック カンパニー グローバルアセット管理
JP2011519441A (ja) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション 切断データ/オフラインデータの処理/入力の同期化
JP2014525066A (ja) * 2011-06-03 2014-09-25 アップル インコーポレイテッド クラウドストレージ
US9208201B2 (en) 2011-06-03 2015-12-08 Apple Inc. Cloud storage

Also Published As

Publication number Publication date
AU2002357731A1 (en) 2003-06-10
US20100100641A1 (en) 2010-04-22
US20100268844A1 (en) 2010-10-21
IL162008A0 (en) 2005-11-20
US8069144B2 (en) 2011-11-29
CA2467404A1 (en) 2003-05-30
US20030130984A1 (en) 2003-07-10
US7752166B2 (en) 2010-07-06
EP1459213B1 (en) 2017-05-10
EP1459213A4 (en) 2007-09-19
EP1459213A1 (en) 2004-09-22
WO2003044698A1 (en) 2003-05-30
US8255359B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
JP2005509979A (ja) 非同期型同期のシステムおよび方法
US7865469B2 (en) Method and system for supporting off-line mode of operation and synchronization
JP4405812B2 (ja) 第1データ記憶部と第2データ記憶部との間で同期を取るための方法および装置
CN101167069B (zh) 文件对等同步的系统和方法
JP5727020B2 (ja) クラウドコンピューティングシステム及びそのデータ同期化方法
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
US7831734B2 (en) Method and system for remote configuration of network devices
US20080195739A1 (en) Resolving Synchronization Duplication
US20040162900A1 (en) Distributed content management system
JPH09198294A (ja) ローカル・エリア・ネットワークと分散コンピューティング環境との間の同期化をするシステム
US7840528B2 (en) System and method for integrating continuous synchronization on a host handheld device
US10789138B2 (en) SMB service fault processing method and storage device
US20110208761A1 (en) Coordinating content from multiple data sources
CA2522477C (en) System and method for integrating continuous synchronization on a host handheld device
KR20020003674A (ko) 데이타 동기화 시스템 및 그 방법
JP2003256257A (ja) 全社統合システムにおける共通処理装置並びにその方法、及び共通処理プログラム
CN109376193B (zh) 基于自适应规则的数据交换系统
US20050281258A1 (en) Address translation program, program utilizing method, information processing device and readable-by-computer medium
CN111404980B (zh) 一种数据存储方法及一种对象存储系统
Redkar et al. Introducing Message Queuing
US20030105836A1 (en) Device and method for specifying location of object in distributed object system
JP2004046300A (ja) イベント共有システム、ホスト、イベント共有方法及びイベント共有プログラム
JP2010072745A (ja) メールアドレス管理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090223

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090302

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091028

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100216