JP2007535757A - 低忠実度デバイスを同期させるための時刻−日付情報の保持 - Google Patents

低忠実度デバイスを同期させるための時刻−日付情報の保持 Download PDF

Info

Publication number
JP2007535757A
JP2007535757A JP2007510695A JP2007510695A JP2007535757A JP 2007535757 A JP2007535757 A JP 2007535757A JP 2007510695 A JP2007510695 A JP 2007510695A JP 2007510695 A JP2007510695 A JP 2007510695A JP 2007535757 A JP2007535757 A JP 2007535757A
Authority
JP
Japan
Prior art keywords
remote
property
time
value
representation
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.)
Granted
Application number
JP2007510695A
Other languages
English (en)
Other versions
JP4722124B2 (ja
Inventor
ティー.スターバック ブライアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority claimed from PCT/US2004/024708 external-priority patent/WO2005111808A2/en
Publication of JP2007535757A publication Critical patent/JP2007535757A/ja
Application granted granted Critical
Publication of JP4722124B2 publication Critical patent/JP4722124B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/275Synchronous replication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/964Database arrangement
    • Y10S707/966Distributed
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

時刻−日付フィールドを有さない低忠実度デバイスのために、本発明は、リモートプロパティ値に対応する時刻−日付情報(350)を標準のフォーマット(305)でフォーマットすること、特定すること、およびリモートデバイス上に格納することを可能にする。時刻−日付情報は、いくつかのデバイスが解析することができ、プロパティ値間の競合を解決する際に使用される。他の典型的な実施形態は、プロパティ値のリモート表現(320)を同一のプロパティ値に関連付けられたローカル表現と比較することにより、リモートデバイスとローカルマシンの間における前回の同期以来、プロパティに関する値がリモートデバイス上で変化しているかどうかを判定することを可能にする。さらに別の典型的な例は、同期値間の競合を解決する際に使用される時刻−日付情報が割り当てられるべきプロパティ値を選択することにより、メモリリソースを保存することを可能にする。プロパティ値は、例えば、リモートデバイスの利用可能なリソースに基づいて、または履歴情報に基づいて選択されることが可能である。

Description

本発明は、一般に、分散コンピューティングシステム内のデータを同期させることに関する。より詳細には、本発明は、以下を提供する。すなわち、(1)デバイスの1つがプロパティに対応する時刻−日付フィールドを有するデータベースを提供しない2つのデバイスの間で同期競合を解決する場合に、プロパティに関する時刻−日付情報を保持すること、(2)ローカルマシンとの前回の同期以来、リモート低忠実度デバイス(low fidelity device)上のプロパティ値が変化しているかどうかを判定すること、および(3)同期値間の競合を解決するために使用される、プロパティの部分集合に関する時刻−日付情報を制限することにより、メモリリソースを保存することである。
デバイスのサイズがより小さくなり、値段が下がるにつれ、ラップトップ、ハンドヘルド、およびその他のポータブルコンピュータまたはコンピューティングデバイスの人気が高まっている。さらに、ポータブルコンピュータの動作速度および処理能力の進歩が、それらの人気を増大させている。多くのポータブルコンピュータは、アドレス帳、ゲーム、計算機などの複数のアプリケーションプログラムを格納することができる。アプリケーションプログラムは、製造中にポータブルコンピュータ内部に永久的にインストールすることができる(例えば、読み取り専用メモリ(ROM)上に)。代替として、1つまたは複数のアプリケーションプログラムが、ポータブルコンピュータを購入した後、ユーザによってインストールされることが可能である。
そのようなコンピューティングデバイスの人気および計算能力が高まるにつれ、人々は、1つだけに留まらないコンピューティングデバイスを使用してデータおよびアプリケーションを格納することを始めている。多くの人々は、例えば、自分の通常のデスクトップコンピュータに加えてラップトップコンピュータをしばしば使用する。セルラー電話機、パーソナルデジタルアシスタント(PDA)、インターネットサービスなどの他のデバイスも、データおよびアプリケーションを格納するために使用される。
それらのデバイスのそれぞれは、分散コンピューティングシステムの一部であることが可能であり、関連情報が互いに関係付けられ、複数のそのようなデバイス上に格納されることが可能である。例えば、ユーザが、デジタルアドレス帳を自分のデスクトップ職場コンピュータ上、自分のPDA上、自分のセル電話機上などに格納していることが可能である。したがって、仕事中は、電話番号およびその他の一般的な連絡先情報を含むことが可能な連絡先情報にアクセスするのがユーザに便利である可能性がある。しかし、仕事から離れている間は、ユーザは、パーソナルデジタルアシスタント(PDA)または他のモバイル情報記憶システムなどのモバイル形態でアドレス帳を使用できることが可能である。理想的には、PDAの連絡先情報は、デスクトップ職場コンピュータにおける連絡先情報と一致しなければならない。
同一の情報または関連する情報が2つの場所に格納されている場合、一方の場所においてデータが変化し、他方の場所においては変化しないことが可能である。この問題は、分散システム内の各デバイスが最新の情報またはデータを有することを確実にしようと試みる自動化されたプロセスである同期を介して克服することができる。しかし、同期は、独自の一連の問題を有する。例えば、2つのデバイス間で同期が初期設定される場合、現在のシステムが、各デバイスからの対応するプロパティ値を比較することにより、変更されたプロパティ値を検出する。しかし、そのような比較は、いずれのデバイスがその変更を行ったかについての指示を全く提供しない。このため、プロパティ変更がいずれかのデバイス上で行われた場合、競合が生じ、競合解決プロセスが実行されなければならない。
他のシステムは、変更が行われたことを示すタグ、例えば、適宜、「変更」、「削除」、「追加」、またはその他のタグで変更されたプロパティにマークを付ける。しかし、そのようなシステムは、2つのデバイスが同期を開始した際、ローカルデバイスが、何が適用される必要があるかに関してデータを比較した後、メモリの中でそれらのマーカを作成することが可能である。さらに、タグは、メモリの中で追跡されるだけであるため、それらのタグは、他のデバイス群との同期中に使用するためにリモートデータベースの中に格納されない。つまり、競合がまず調停されなければ、ローカルメモリの中でプロパティにマークを付け、追跡することができない。
通常、競合は、例えば、時刻−日付情報を提供するプロパティ値に関連付けられたメタデータを比較することを介して解決することができる。最新の時刻−日付情報が、最も新しい情報であると考えられ、それに応じてプロパティを更新することができる。時刻−日付情報を比較することによって競合を解決することは、同期されるべきデータが時刻−日付情報を含まない場合、特に不確かとなり、そのようなデータを低忠実度データ(low fidelity data)と呼ぶ。例えば、多くのより小型のコンピューティングデバイスは、限られた物理的リソースを有し、データ構造アイテムのプロパティに関する時刻−日付情報を保持することができない。このため、コンピュータは、そのような低忠実度デバイスからデータを同期して取り込む(sync data in)場合、ユーザが最初にそのプロパティを設定したのがいつであるかを知ることができない。これは、コンピュータが、別のコンピューティングデバイスからプロパティを同期して取り込むこと、および「最後に書き込んだものが勝つ(last−writer−wins)」解決論理を自信をもって使用して最も新しいプロパティを選ぶことを妨げる。さらに、競合が全く存在しない場合でも、競合解決プロセスなしに受信側デバイスに対してプロパティ変更を同期させる方法は、通常、存在しない。
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、低忠実度デバイスを同期させるための時刻−日付情報の保持を実現する方法を提供することにある。
現行の同期システムの以上に特定した不備および欠点が、本発明によって克服される。例えば、デバイス間でデータを同期させることができる分散コンピューティングシステムでは、分散コンピューティングシステムは、対応する時刻−日付フィールドを有さないデータベースの中にプロパティを格納するデバイスを有する可能性がある。そのような事例では、本発明は、時刻−日付情報をデータベース内部のプロパティ値に関連付けることを可能にする。
典型的な実施形態は、対応する時刻−日付フィールドなしにプロパティを格納するリモートデータベース内部のリモートプロパティ値に対応する時刻−日付情報を特定すること提供する。特定された時刻−日付情報は、分散コンピューティングシステム内のデバイスが解析できる標準のフォーマットでフォーマットされる。フォーマット済みの時刻−日付情報は、リモートプロパティ値に関連付けられたフィールドの中に格納するために、リモートデータベースに送信される。
他の典型的な実施形態は、対応する時刻−日付フィールドを有さないデータベースの中にプロパティを格納するデバイスを有する分散コンピューティングシステムを提供する。フォーマット済みの時刻−日付情報が、分散コンピューティングシステム内のデバイスが解析できる標準のフォーマットで受信され、フォーマット済みの時刻−日付情報は、プロパティ値に関連付けられている。さらに、フォーマット済みの時刻−日付情報は、プロパティ値に関連付けられたデータベースフィールドの中に格納され、フォーマット済みの時刻−日付情報を利用して、プロパティ値に関わるデータ競合を解決することができるようになる。
さらに別の典型的な実施形態は、分散コンピューティングシステム内のデバイス間におけるデータ競合を解決することを可能にする。リモートプロパティに関してリモートプロパティ値が受信される。また、対応するリモート時刻−日付情報も、対応する時刻−日付フィールドを有さず受信される。リモート時刻−日付情報は、分散コンピューティングシステム内のデバイスが解析できる標準のフォーマットでフォーマットされている。さらに、リモート値と対応するローカルプロパティ値の間の競合が検出される。リモート時刻−日付情報が、標準のフォーマットに応じて解析されて、リモートプロパティ値がいつ変更されたかを示すリモート時刻−日付が特定される。さらに、リモート時刻−日付は、ローカル時刻−日付と比較され、ローカル時刻−日付は、1つまたは複数のローカルプロパティ値がいつ変更されたかを示す。次に、比較の結果に基づいて競合が解決される。
現行の同期システムの他の不備および欠点も、本発明によって克服される。例えば、デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、典型的な実施形態は、リモートデバイスとローカルマシンの間におけるプロパティの前回の同期以来、リモートデバイス上のプロパティに関する値が変化しているかどうかを判定することを可能にする。
典型的な実施形態は、リモートデバイスとローカルデバイスの間におけるデータの同期中、リモートプロパティに関する現在の値、およびそのリモートプロパティの以前の値に関するリモート表現が受信されるようにする。次に、リモートプロパティに関する現在の値から、リモートプロパティのローカル表現が生成される。これに応じて、リモート表現がローカル表現と比較され、この比較に基づき、リモート表現が生成された後にリモートプロパティの以前の値が変更されたことが判定される。
他の典型的な実施形態は、リモートデバイスとローカルデバイスの間におけるデータの同期中、リモートプロパティに関するリモート値、およびそのリモートプロパティのリモート値に関するリモート表現が受信されるようにする。次に、リモートプロパティのローカル表現が、リモートプロパティに関するリモート値から生成される。これに応じて、リモート表現がローカル表現と比較され、この比較に基づき、リモート表現が生成された後にリモートプロパティのリモート値が変化していないことが判定される。
現行の同期システムのさらに別の不備および欠点も、本発明によって克服される。例えば、典型的な実施形態は、同期値の間における競合を解決する際に使用される時刻−日付情報が割り当てられるべきプロパティ値を選択することにより、メモリリソースを保存することを可能にする。
典型的な実施形態は、リモートデバイスから複数のプロパティ値を受信することを可能にする。受信された複数のプロパティ値のなかから限られた集合のプロパティ値が、リモートデバイスの利用可能なリソースに基づいて選択される。さらに、複数のプロパティ値に対応する複数の時刻−日付情報から、時刻−日付情報の集合が特定される。限られた集合内のプロパティ値のそれぞれは、時刻−日付情報の集合の異なる部分に対応し、限られた集合内のプロパティ値のそれぞれが最後に変更された時点を示す。次に、時刻−日付情報の異なる部分は、リモートデバイスのリモートデータベースの中に格納される。
他の典型的な実施形態は、プロパティ値の限られた集合の選択が、複数のプロパティ値の変更に関連付けられた履歴情報にも基づくことが可能であるようにする。例えば、履歴情報は、複数のプロパティ値のそれぞれが変更される頻度であることが可能であり、その場合、最も頻繁に変更されたプロパティ値が選択されることが可能である。代替として、またはそれに併せて、履歴情報は、複数のプロパティ値に関する時刻−日付情報であることが可能であり、その場合、最も新しく変更されたプロパティ値が選択されることが可能である。
さらに別の典型的な実施形態は、プロパティ値の限られた集合に入っていない残りのプロパティ値に関する上記に特定された複数の時刻−日付情報から、時刻−日付情報の一部分を特定することを可能にする。時刻−日付情報のその部分は、残りのプロパティ値の1つまたは複数がユーザによって変更された時点に対応する。次に、時刻−日付情報の特定された部分が1つまたは複数の残りのプロパティ値のすべてに対応するように、時刻−日付情報の特定された部分が、リモートデータベース内部の1つの場所に格納されることが可能である。
本発明のさらなる特徴および利点は、以下の説明に記載され、ある程度、この説明から明白となるか、または本発明の実施によって学ぶことができる。本発明の特徴および利点は、添付の特許請求の範囲で特に指摘する手段および組み合わせを使用して実現し、獲得することができる。本発明の以上の特徴およびその他の特徴は、以下の説明からより完全に明白となるか、または以下に記載する本発明の実施によって学ぶことができる。
本発明の前述した利点および特徴、ならびにその他の利点および特徴を獲得することができる仕方を説明するため、以上に簡単に説明した本発明のより詳細な説明を、添付の図面に示した本発明の特定の実施形態を参照して提示する。それらの図面は、本発明の典型的な例だけを描いており、したがって、本発明の範囲を限定していると見なすべきでないものと理解して、本発明を、添付の図面の使用を介して、さらに具体的に、さらに詳細に記述し、説明する。
本発明は、対応する時刻−日付フィールドを有さないデータベースの中にプロパティを格納するデバイス向けに時刻−日付情報を格納し、保持するための方法、システム、およびコンピュータプログラム製品を対象とする。さらに、本発明は、リモートデバイス上でデータが変化した場合に、それを特定することを可能にする。また、本発明は、制限された、または限られたメモリリソースを保存するために時刻−日付情報が割り当てられるべきプロパティ値の限られた集合を選択することも提供する。本発明の実施形態は、以下にさらに詳細に説明するとおり、様々なコンピュータハードウェアを含む専用または汎用のコンピュータを含むことが可能である。
一般に、本発明は、時刻−日付情報をデータベース内のプロパティ値に関連付けることができる分散コンピューティングシステムを提供する。分散コンピューティングシステムは、対応する時刻−日付フィールドを有さないデータベースの中にプロパティを格納するデバイスを有し、このため、低忠実度デバイス、つまりレガシデバイスと考えられる。典型的な実施形態は、リモートプロパティ値に対応する時刻−日付情報が特定され、分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットされることが可能であるようにする。フォーマット済みの時刻−日付情報は、リモートプロパティ値に関連付けられたフィールドの中に格納するために、リモートデータベースに送信される。フォーマット済みの時刻−日付情報は、その後、プロパティ値間における競合を解決する際に使用されることが可能である。
他の典型的な実施形態は、リモートデバイスとローカルマシンの間におけるプロパティの前回の同期以来、リモートデバイス上のプロパティに関する値がいつ変化しているかを判定することを可能にする。さらに、他の典型的な実施形態は、リモートデバイスの利用可能なリソースに基づき、複数のプロパティ値のなかからプロパティ値の限られた集合を選択することを可能にする。
次に、同様の構造に同様の、または類似の符号が与えられている図を参照する。図面は、本発明の実施形態の概略図の例であり、本発明の範囲を限定する、または別の形で狭めることは意図していないものと理解されたい。
図1Aは、分散コンピューティングネットワーク100内のいくつかのノードを示して接続を例示し、各ノードがシステム内のその他のノードとどのように同期をとるかを示している。例えば、分散コンピューティングシステム100内に示すとおり、職場コンピュータ105が、電子メールサーバ110、PDA115、モバイル電話機120、およびインスタントメッセージサーバ125などのいくつかの様々なデバイスと同期をとることができる。そのような分散コンピューティングシステム100内でデータを同期させることの目的は、1名または複数名のユーザによって使用されるすべてのデバイス上で最も新しい情報が提供されることを確実にすることである。
同期される必要があるデータは、例えば、各アイテムが、個別の人物、会社、企業、または他の任意の類似した連絡先に関する情報に相当する連絡先情報であることが可能である。各連絡先アイテムに関連するプロパティの例は、ファーストネーム、ミドルネーム、ラストネーム、会社名、アドレス、電話番号、電子メールアドレス、Webサイト情報などであることが可能である。しかし、認識されるとおり、ローカルデータは、連絡先情報以外の情報であってもよい。例えば、ローカルデータは、2つのデバイス間で同期される必要があるカレンダおよび/またはスケジュール情報、ファイル、アプリケーション、または他の任意のそのような情報であることも可能である。したがって、連絡先情報についての記載は、例示の目的でだけ使用しており、明示的に主張している場合を除き、本発明の範囲を限定する、または別の形で狭めることを意図するものではない。
職場コンピュータ105と同様に、自宅ラップトップ130も、インスタントメッセージサーバ125、モバイル電話機120、PDA115、および電子メールサーバ110の間で同期されることが可能である。分散コンピューティングシステム100は、低忠実度(例えば、データベースが、プロパティに関する時刻−日付情報を格納することができない)デバイスおよび高忠実度デバイスから構成されることが可能である。これを考慮することが重要であるのは、理想的には、すべてのデータベースが、各プロパティに関する時刻−日付情報をアイテムの中に有して、ユーザがプロパティを前回に変更したのがいつであるかを示すからである。これが該当したとすると、同期アダプタは、「最後に書き込んだものが勝つ」規則を使用して、最後の時刻−日付情報に勝者を選ばせることができる。これは、いくつかのループ問題を解決し、最良のプロパティがそれぞれの競合に勝つことをもたらす(分散コンピューティングシステム100内で使用されるクロックも同期されるという条件付きで)。多くの分散コンピューティングシステム100は、そのような時刻−日付情報を格納するために限られたメモリリソースを有する少なくともいくつかの低忠実度クライアント、つまりレガシクライアントから構成されるため、またそのようなレガシクライアントをサポートすることが望ましいため、潜在的に無限の同期ループを回避しながら、デバイス間の競合を解決する他の方法が存在する必要がある。
図1Bは、リモートデバイス群116(モバイル電話機120またはPDA115などの)およびローカルマシン132(自宅ラップトップ130または職場コンピュータ105などの)を有する分散コンピューティングネットワーク100の一部分を示している。図示するとおり、リモートデバイス116は、リモートデバイス116とローカルマシン132の間における前回の同期後、いくらか経った時点で、プロパティ値をAからBに変更している。同様に、ローカルマシン132も、2つのデバイス116、132の間における前回の同期後、同一のプロパティ値をAからCに変更している。このため、リモートデバイス116は、プロパティに関するBの値が、ローカルマシン132に下方に同期され(be synced down to)なければならないことを示す同期必要(needs sync)矢印135を有する。同様に、ローカルマシン132は、Cの値がリモートデバイス115に上方に同期され(be synced up to)なければならないことを示す上方同期必要(needs sync up)矢印140を有する。両方のデバイス116、132が、それぞれ、プロパティ値を下方および上方に同期する同期必要矢印を有するため、競合がもたらされる。
前述したとおり、図1Bで特定したような通常の競合は、プロパティ値に関連付けられた時刻−日付情報の比較を介して解決することができる。しかし、時刻−日付情報を比較することによって競合を解決することは、同期されるべきデータが、低忠実度デバイスのケースにおけるように、時刻−日付情報を含まない場合に特に不確かになる。これは、コンピュータが、別のコンピューティングデバイスからプロパティを同期して取り込むこと、および「最後に書き込んだものが勝つ」解決論理を自信をもって使用して最も新しいプロパティを選ぶことを妨げる。さらに、低忠実度デバイスに関連する別の関係する問題は、プロパティがいつ変化したかを特定する方法が存在しないことである。したがって、時刻−日付情報を低忠実度データと関連付けることができる場合でも、そのような情報、つまり時刻−日付情報は、低忠実度デバイスにおいてプロパティが変更されている可能性があるという事実により、信頼できない可能性がある。
現行の分散コンピューティングネットワークの上記に特定した不備および欠点が、本発明の典型的な実施形態を介して克服される。例えば、本発明は、時刻−日付情報をデータベース内のプロパティ値に関連付けることを可能にし、デバイスは、対応する時刻−日付フィールドなしでプロパティを格納する(すなわち、低忠実度デバイス)。さらに、本発明は、リモートデバイスが低忠実度デバイスである場合でも、プロパティの前回の同期以来、リモートデバイス上でプロパティに関する値が変化している場合、それを判定することを可能にする。
図2は、本発明の典型的な実施形態による低忠実度デバイスのために時刻−日付情報を作成すること、使用すること、および更新することができるシステムを有する分散コンピューティングネットワーク200を示す。分散コンピューティングシステム200は、2つの高忠実度デバイス、ローカルマシン210およびリモートマシン220を含む。また、分散コンピューティングシステム200内には、低忠実度デバイス、すなわち、リモートデバイス205も含まれる。リモートデバイス205は、リモートデバイス205に関連するデータベースが、各プロパティとともに時刻−日付情報を格納することができないという点で低忠実度である。つまり、リモートデバイス205は、対応する時刻−日付フィールドなしに自らのデータベースの中にプロパティを格納する。
リモートデバイス205は、自らのデータベース内にプロパティに関する時刻−日付フィールドを有さないが、典型的な実施形態は、時刻−日付情報をリモートデバイス205内部のプロパティ値に関連付けること、およびリモートデバイス205が、その時刻−日付情報を標準のフォーマットで、未使用であるフィールドの中に格納することができるようにすることを可能にする。例えば、ローカルマシン210が、リモートデバイス群205データベース内のリモートプロパティ値に対応する時刻−日付情報を特定することができる。次に、特定された時刻−日付情報が、分散コンピューティングシステム200内のいくつかのデバイスが解析できる標準のフォーマットでフォーマットされることが可能である。標準のフォーマットは、例えば、ユニフォームリソースアイデンティファイア(Uniform Resource Identifier)(URI)であることが可能である。例えば、URIは、プロパティを特定し、各プロパティに関連付けられた特定済みの時刻−日付情報を含む同期ユニフォームリソースロケータ(URL)の形態であることが可能である。図3に関連して以下により詳細に説明するとおり、この同期URLフォーマットが望ましい。というのは、同期URLは、多くのデバイスが容易に特定でき、解析でき、このため、標準のフォーマットとして理想的であるからである。
ローカルマシン210は、フォーマット済みの時刻−日付情報をリモートデバイス205に送信することができ、この情報は、リモートプロパティ値に関連付けられたフィールドの中に格納される。例えば、図2に示すとおり、ローカルマシン210は、リモートデバイス205と同期をとる際、時刻−日付(T/D)情報および更新済みのプロパティを伴うアイテム1(215)を送信する。次に、リモートデバイス205が、時刻−日付情報を含むアイテム1(215)を格納する。フォーマット済みの時刻−日付情報は、リモートデバイス205上の未使用のプロパティフィールドの中に格納される。例えば、リモートデバイス205は、フォーマット済みの時刻−日付情報を、通常のプロパティの中、隠されたプロパティの中、秘密の拡張プロパティ(private expanded property)の中に格納することができ、あるいはメモ(notes)フィールドの終りに付加することさえできる。他の情報がプロパティフィールドの中に格納されることも可能であるが(例えば、テキストがメモフィールドの中に)、本発明は、そのようなフィールドを未使用と呼ぶことに留意されたい。というのは、そのフィールドが、時刻−日付情報を格納することに予約されていないからである。したがって、「未使用の」プロパティフィールドという用語の使用は、時刻−日付情報を格納することに予約されていない任意のプロパティフィールドを包含するものと広く解釈されなければならない。
典型的な実施形態は、フォーマット済みの時刻−日付情報が、競合を解決すること、またはプロパティが変化した場合にそれを特定することなど、いくつかの異なる目的で使用されることが可能であるようにする。例えば、リモートデバイス205とリモートマシン220の間で同期が開始される。これに応じて、アイテム1(215)が、プロパティ、およびフォーマット済みの時刻−日付情報とともにリモートマシン220に送信されることが可能である。時刻−日付情報のフォーマットは、標準の解析可能なフォーマットになっているため、リモートマシン220は、リモート時刻−日付情報を解析し、各プロパティに関連付けられたリモート時刻−日付情報を特定することができる。次に、このリモート時刻−日付情報が、プロパティ値間のあらゆる競合を解決する際に、リモートマシン220の時刻−日付情報と比較されることが可能である。
他の典型的な実施形態は、リモートデバイス205においてプロパティが変化した場合に、それを検出することを可能にする。例えば、アイテム1(215)内のフォーマット済みの時刻−日付情報が、時刻−日付情報の各セグメント内に、ローカルマシン210と前回に同期されたプロパティ値の表現を含むことが可能である。この表現は、例えば、ハッシュの形態であることが可能であり、このハッシュは、時刻−日付情報に関連付けられた前回に同期されたプロパティ値のハッシュである。リモートマシン220がアイテム1(215)を同期のために受信した場合、アイテム1(215)内の受信されたプロパティも、前回に同期されたプロパティ値をハッシュするのに使用されたのと同一の標準のハッシュ関数を使用してハッシュされることが可能である。使用することができる標準のハッシュ関数には、SHA(secure hash algorithm)−1、MD(message digest algorithm)5、または他の類似したハッシュ関数が含まれるが、以上には限定されない。
フォーマット済みの時刻−日付情報内のハッシュ値を、リモートマシン220によって生成されたハッシュ値と比較することができる。値が一致しない場合、時刻−日付情報に関連付けられたプロパティ値がリモートデバイス205において変更されているものと推論することができる。したがって、時刻−日付情報は、信頼できない可能性があり、その結果、リモートマシン220によって破棄されることが可能である。そのような場合、時刻−日付情報が信頼できない可能性があるため、競合を解決するためにユーザインタフェースがユーザに提供されることが可能である。もちろん、競合を解決する他の方法も、当業界で周知の標準の慣行を介して利用可能である。
リモートデバイス205において変更が行われた場合に、それを特定するためのプロパティ値のハッシュまたは表現の前述した使用は、フォーマット済みの時刻−日付情報に限定されないことに留意されたい。例えば、プロパティ値が変更された場合に、それを特定するためのプロパティ表現の比較は、時刻−日付情報なしで使用することもできる。そのような実例は、リモートマシン220上に格納されたプロパティの値を比較する必要なしに、いつプロパティをリモートデバイス205から同期する必要があるかを特定する際に有用である。したがって、同期URL内またはフォーマット済みの時刻−日付情報内のハッシュまたはリモートプロパティ表現の使用は、例示の目的でだけ使用しており、特に明示的に主張しない限り、本発明の範囲を限定する、または別の形で狭めることを意図するものではない。
図3は、どのように時刻−日付情報をフォーマットし、リモートデバイス205において格納することができるかを示す。図3に示すとおり、アイテム355は、プロパティ識別子、プロパティ名、およびプロパティの初期値を含む、連絡先に関する様々なフィールドを有する。もちろん、予約済みの時刻−日付プロパティフィールドを例外として、他のアイテム、プロパティ、フィールドなども利用可能である。したがって、アイテム355連絡先情報、およびアイテム335内のフィールドに関する記載は、例示の目的でだけ使用しており、明示的に主張する場合を除き、本発明の範囲を限定する、または別の形で狭めることを意図するものではない。
やはり図3に示すとおり、フォーマット済みの時刻−日付情報が、フィールド値350としてプロパティフィールド375の中に格納されることが可能である。典型的な実施形態は、フォーマットが、フィールド350の中で示すとおり、同期URLの形態であることが可能であるようにする。フィールド350の解析済み部分の分解図も、図3に示している。フィールド350の最初の部分は、同期URL305を含む。この部分は、アイテム355をスキャンしているデバイス群に、同期URLの後続のセグメントが、アイテム355内の様々なプロパティに関する時刻−日付情報を含むことを明らかにする。同期URL305の中でロケータ情報のために通常、取っておかれるプレースホルダ315は、使用されても、使用されなくてもよいことに留意されたい。
後続のセグメントのそれぞれが、アンパサンド340で分けられ、プロパティID(identification)、例えば、プロパティ値310を介して特定されることが可能である。また、フィールド350の同期URL305の各セグメント内には、プロパティIDに関連付けられた時刻−日付情報も含まれる(例えば、time_date_1 330が、Prop ID_1に関連付けられている)。典型的な実施形態は、貴重なメモリリソースを節約するために、時刻−日付情報の単純な表現が使用されることが可能であるようにする。例えば、時刻−日付情報を16進数として格納することができる。さらに空間を節約するため、時刻−日付情報をより低い分解能で格納することもできる。例えば、時刻−日付値は、普通、千分の1秒単位まで格納される。しかし、典型的な実施形態は、秒単位、または分単位まで格納された時刻−日付値を有するフォーマット済みの時刻−日付情報または同期URLを作成することを可能にする。さらに、典型的な実施形態は、時刻−日付情報が、時間帯とは独立の形で格納されることが可能であるようにする。したがって、これにより、同期トポロジ内のノード群が相異なる時間帯の中に存在する場合に、比較できる時刻が可能になる。
また、同期URL305の各セグメント内では、プロパティ表現、例えば、プロパティ表現320も提供される。典型的な実施形態は、プロパティ表現320が、ハッシュの形態であることが可能であるようにし、このハッシュは、前述したとおり、プロパティ表現320が生成されて以来、プロパティ値が変更されているかどうかを判定する際に使用することができる。これは、時刻−日付情報330が信頼できない可能性があるか否かを示す。
メモフィールドなどのいくつかのフィールドを例外として、フォーマット済みの時刻−日付情報を格納するのに利用できるメモリは、限られている。このため、すべてのプロパティに関する時刻−日付情報を格納するためのメモリは、用意されていない、または実際的ではない可能性がある。したがって、本発明は、アイテム355内の総数のプロパティ値のなかから、プロパティ値の限られた集合を特定し、選択することを可能にする。本発明の同期URL305内に時刻−日付情報を含めるプロパティ値の選択は、様々な考慮に基づいて選択されることが可能である。例えば、選択は、最も新しく変更されたプロパティ値に基づくことが可能である。代替として、同期URL305内、またはフォーマット済みの時刻−日付情報内で時刻−日付情報が関連付けられるように選択されるプロパティ値は、特定のプロパティ値に関する変更の頻度などのヒューリスティックなデータに基づくことが可能である。もちろん、時刻−日付情報を関連付けるプロパティ値を選択するための、他のいくつもの様々な方法も提供される。したがって、どのようにプロパティが選択されるかの使用、例えば、最も新しく変更されたプロパティの使用は、例示の目的でだけ使用しており、特に明示的に主張しない限り、本発明の範囲を限定する、または別の形で狭めることを意図するものではない。
空間が考慮すべき事項であり、通常、プロパティの部分集合が、時刻−日付情報が関連付けられるように選択される必要があるため、本発明は、前回の同期以来、その他のプロパティが変化しているかどうかを判定することを可能にすることもできるとともに、より小さい空間内でそれらのプロパティに時刻−日付情報を関連付ける。例えば、本発明は、より小さいフォーマットで残りのプロパティを表現すること、およびその表現に関する上限および/または下限の時刻−日付情報を関連付けることを可能にする。例えば、図3に示すとおり、フィールド350の中のURL305の終りには、残り値(rest value)を保持するプロパティ識別子360を有するセグメントが付加されている。プロパティ識別子360は、同期URL305をスキャンしているデバイス群に、特定の時刻−日付情報が関連付けられていないプロパティがそのセグメント内で提示されていることを示す。したがって、残りのプロパティのプロパティ表現365を使用することができる。
前述したその他のプロパティ表現、例えば、プロパティ表現320の場合と同様に、残りのプロパティ値に関するプロパティ値365は、すべての残りのプロパティ値のハッシュの形態であることが可能である。このため、このプロパティ表現365を前述したプロパティ表現と同様の形で使用して、残りのプロパティ値の1つまたは複数が、リモートマシンとローカルマシンの間における前回の同期以来、変化している場合、それを特定することができる。その他の典型的な実施形態も、時刻−日付情報370が残りプロパティ(rest property)に関連付けられて、残りのプロパティ値がいつ変更されたかに関する上限および/または下限を与えることができるようにする。
残りセグメント(rest segment)を同期URLの追加のセグメントとして説明したが、残りセグメントを独自のフィールドの中でフォーマットしてもよいことが認識されよう。例えば、空間またはメモリを取っておく必要がある場合、残りセグメントを使用して、アイテム355全体の中のプロパティの1つまたは複数がいつ変化したかを特定することができる。したがって、同期URL305の終りに付加された残りセグメントの使用は、例示の目的でだけ使用しており、明示的に主張する場合を除き、本発明の範囲を制限する、または別の形で狭めることを意図するものではない。
本発明は、機能的ステップおよび/または非機能的動作を含む方法として説明することもできる。以下は、本発明を実施する際に実行されることが可能なステップおよび動作の説明である。通常、機能的ステップは、本発明を達せられる結果に関して説明し、非機能的動作は、特定の結果を達するためのより具体的な動作を説明する。機能的ステップおよび非機能的動作は、任意の特定の順序で説明する、または主張することができるが、本発明は、動作および/またはステップのいずれかの特定の順序または組み合わせに必ずしも限定されない。さらに、特許請求の範囲の記載、および図4〜8に関する流れ図の以下の説明における動作および/またはステップの使用を使用して、そのような用語の望ましい特定の用法を示す。
図4〜8は、本発明の様々な典型的な実施形態に関する典型的な流れ図を示す。図4〜8の以下の説明は、図1B、図2、および図3からの対応する要素をときとして参照する。以上の図からの特定の要素を参照することができるが、そのような要素は、例示の目的でだけ使用しており、明示的に主張する場合を除き、本発明の範囲を制限する、または別の形で狭めることを意図するものではない。
図4は、対応する時刻−日付フィールドなしでプロパティを格納するリモートデータベース内のプロパティ値に時刻−日付情報を関連付ける方法400の典型的な流れ図を示す。方法400は、時刻−日付情報を特定する動作405を含む。時刻−日付情報は、リモートデータベース内の1つまたは複数のプロパティ値に対応する。方法400は、特定された時刻−日付情報をフォーマットする動作410も含む。時刻−日付情報は、分散コンピューティングシステム200内の1つまたは複数のデバイス210、220が解析できる標準のフォーマットでフォーマットされる。標準のフォーマットは、同期URL305のようなURIであることが可能である。同期URL305は、アンパサンド340で分けられたセグメントに解析されることが可能である。各セグメントは、プロパティ識別子310、プロパティ値320の表現、およびプロパティ値に対応する時刻−日付情報330の表現を含むことが可能である。典型的な実施形態は、プロパティ値320の表現が、その特定のプロパティ値のハッシュであることが可能であるようにする。さらに、時刻−日付情報の表現は、16進数であることが可能であり、かつ/または秒単位または分単位まで、および/または時間帯とは独立のフォーマットで格納されることが可能である。
方法400は、フォーマット済みの時刻−日付情報を送信する動作420も含む。例えば、フォーマット済みの時刻−日付情報は、リモートプロパティ値が関連付けられたフィールド350の中に格納するために、リモートデータベースに送信されることが可能である。フィールド350は、メモフィールド、隠されたプロパティ、秘密の拡張プロパティ、または他の任意の類似した未使用のフィールドであることが可能である。
他の典型的な実施形態は、フィールド305の中で時刻−日付情報が関連付けられているプロパティ値が、総数のプロパティ値の部分集合であるようにする。部分集合は、時刻−日付情報が関連付けられた値に基づいて選択されることが可能である。例えば、最も新しい時刻−日付情報を使用して、部分集合の中に含められるプロパティ値が選択されることが可能である。代替として、プロパティ値が変更された頻度を使用して、部分集合が選択されることが可能である。
さらに別の実施形態では、総数のプロパティ値からのプロパティ値の残りの部分が、表現値365として組み合わされて、時刻−日付情報370が関連付けられることが可能である。例えば、時刻−日付情報370は、残りのプロパティのなかの総数のプロパティに関する最も新しく変更された値であることが可能である。代替として、時刻−日付情報370は、プロパティ値の残りの部分の中のプロパティの1つが同期されているのが最も早期である場合、それを示す、下方時刻−日付情報370を限界とすることも可能である。さらに、結合された表現値365は、プロパティ値の残りの部分のハッシュの形態であることが可能である。
図5は、プロパティ値とともに時刻−日付情報を受信して、データベースの中に格納する方法500を示し、データベース内のプロパティは、対応する時刻−日付フィールドなしに格納される。方法500は、フォーマット済みの時刻−日付情報を受信する動作505を含む。時刻−日付情報は、プロパティ値に関連付けられ、分散コンピューティングシステム200内の1つまたは複数のデバイス210、220が解析できる標準のフォーマットでフォーマットされる。方法500は、フォーマット済みの時刻−日付情報を格納する動作510も含む。フォーマットされた時刻−日付情報は、プロパティ値に関連付けられたデータベースフィールド350の中に格納され、フォーマット済みの時刻−日付情報を利用して、プロパティ値に関わるデータ競合を解決できるようになることが可能である。
典型的な実施形態は、フォーマット済みの時刻−日付情報を特定すること、および更新することも可能にする。例えば、プロパティ値が変化した場合、フォーマット済みの時刻−日付情報が、そのプロパティ値に関連付けられているものとして特定されることが可能である。次に、このフォーマット済みの時刻−日付情報が、変更されたプロパティ値に従ってデータベースフィールドの中で更新されることが可能である。典型的な実施形態は、これが、適切なアプリケーションソフトウェアを有するリモートデバイス205によって行われることが可能であるようにする。例えば、フォーマット済みの時刻−日付情報が、リモートデバイス205上に受信され、格納されて、リモートデバイスのユーザが変更を行っていることが可能である。代替として、ローカルマシン210、220が変更を行っていることも可能である。ローカルマシン210、220は、1つまたは複数のプロパティ値に関連付けられたフォーマットされていない時刻−日付情報を格納し、この情報を対応する時刻−日付フィールドの中に格納する。つまり、ローカルマシン210、220は、高忠実度デバイスである。
図6は、分散システム内のデバイス間におけるデータ競合を解決する方法600を示す。分散コンピューティングシステム内のデバイスの1つが、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納する。方法600は、リモートプロパティ値を受信する動作605を含む。リモートプロパティに関して受信されたリモートプロパティ値、および対応するリモート時刻−日付情報も受信される。さらに、リモート時刻−日付情報は、分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマット、例えば、URIフォーマットまたはURLフォーマットでフォーマットされる。方法600は、競合を検出する動作610も含む。競合は、リモートプロパティ値と対応するローカルプロパティ値の間に存在する。
方法600は、リモート時刻−日付情報を利用するための機能的な結果指向のステップ620も含むことが可能である。時刻−日付情報を利用して、ローカルデバイスとリモートデバイスの間で同期をとるのに適切なプロパティ値が選択されることが可能である。ステップ620は、リモート時刻−日付情報を解析する動作622を含むことが可能である。リモート時刻−日付情報は、標準のフォーマットに従って解析されて、リモート時刻−日付が特定され、この時刻−日付は、リモートプロパティ値がいつ変更されたかを示す。ステップ620は、リモート時刻−日付をローカル時刻−日付と比較する動作624も含むことが可能である。ローカル時刻−日付は、ローカルプロパティ値がいつ変更されたかを示す。最後に、ステップ620は、競合を解決する動作626を含むことが可能である。競合の解決は、比較の結果に基づく。
前述したとおり、標準のフォーマットは、URIの形態であることが可能である。例えば、URIは、セグメントに解析されるURLであることが可能である。セグメントは、リモートプロパティ値に対応するプロパティID、リモートプロパティ値の表現、および時刻−日付情報の表現を含むことが可能である。さらに、リモートプロパティ値の表現は、ハッシュであることが可能であり、時刻−日付情報の表現は、16進数であることが可能である。
他の典型的な実施形態は、リモートプロパティ値からリモートプロパティのローカル表現を生成することを可能にする。次に、ローカル表現が、リモートプロパティ値が変化したかどうかを判定するために、前述したリモート表現と比較されることが可能である。
図7は、リモートデバイスとローカルマシンの間におけるプロパティの前回の同期以来、プロパティに関する値が変化している場合、それを判定するための方法700を示す。方法700は、リモートプロパティに関する現在の値を受信する動作705を含む。さらに、リモートプロパティの以前の値のリモート表現も受信される。方法700は、リモートプロパティのローカル表現を生成する動作710も含むことが可能である。ローカル表現は、リモートプロパティに関する現在の値から生成される。方法700は、リモート表現をローカル表現と比較する動作715も含む。最後に、方法700は、以前のリモートプロパティが変更されたことを判定する動作720を含む。この判定は、リモート表現が生成された後にプロパティ値が変更されたことを示す。したがって、例えば、同期URL305の中で時刻−日付情報がリモートプロパティに関連付けられている場合、そのような情報は、信頼できない可能性があり、破棄されることが可能である。
図8は、複数のプロパティ値のなかからプロパティ値の限られた集合を選択する方法800を示す。対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスのために、プロパティ値には、時刻−日付情報が関連付けられることになる。方法800は、リモートデバイスからプロパティ値を受信する動作805を含む。さらに方法800は、時刻−日付情報の限られた集合を選択する動作810も含む。リモートデバイスの利用可能なリソースに基づき、複数のプロパティ値からプロパティ値の限られた集合が選択されることが可能である。方法800は、時刻−日付情報の集合を特定する動作815も含む。限られた集合内のプロパティ値のそれぞれは、時刻−日付情報の集合の異なる部分に対応する。方法800は、リモートデータベースの中に時刻−日付情報の異なる部分を格納する動作820も含む。
方法800は、プロパティ値の残りの部分を特定し、それらを表現値として格納し、それらに時刻−日付情報を関連付けることも含むことが可能である。例えば、残りのプロパティ値に関する時刻−日付情報の一部分が特定されることが可能である(残りのプロパティ値は、プロパティ値の限られた集合に入っていない)。時刻−日付情報の特定された部分は、時刻−日付情報の特定された部分が残りのプロパティ値のすべてに対応するように、リモートデータベース内の1つの場所に格納されることが可能である。
本発明の範囲内の諸実施形態は、コンピュータ実行可能命令またはデータ構造を担持する、または格納しておくためのコンピュータ可読媒体も含む。そのようなコンピュータ可読媒体は、汎用または専用のコンピュータがアクセスすることができる任意の利用可能な媒体であることが可能である。例として、限定としてではなく、そのようなコンピュータ可読媒体は、RAM(random access memory)、ROM、EEPROM(Electronically Erasable and Programmable Read Only Memory)、CD(compact disc)−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶装置、あるいはコンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコード手段を担持する、または格納するのに使用することができ、汎用または専用のコンピュータがアクセスすることができる他の任意の媒体を含むことが可能である。情報が、ネットワークまたは別の通信接続(有線、無線、または有線と無線の組み合わせ)を介してコンピュータに転送される場合、コンピュータは、その接続をコンピュータ可読媒体と適切に見なす。このため、任意のそのような接続が、コンピュータ可読媒体と適切に呼ばれる。以上の媒体の組み合わせも、コンピュータ可読媒体の範囲に含められなければならない。コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスにある機能、またはあるグループの機能を実行させる命令およびデータを含む。
図9および以下の説明は、本発明を実施することができる適切なコンピューティング環境の簡単で一般的な説明を提供することを目的とする。必須ではないが、本発明は、ネットワーク環境におけるコンピュータ群によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールが、本明細書で開示する方法のステップを実行するためのプログラムコード手段の例である。特定の一続きのそのような実行可能命令または関連するデータ構造は、そのようなステップで説明される機能を実施するための対応する動作の例である。
本発明は、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークPC(personal computer)、ミニコンピュータ、メインフレームコンピュータなどを含め、多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境において実施できることが当業者には認識されよう。本発明は、通信ネットワークを介してリンクされた(有線リンク、無線リンク、または有線リンクと無線リンクの組み合わせで)ローカル処理デバイスとリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することができる。
図9を参照すると、本発明を実施するための典型的なシステムが、処理装置921、システムメモリ922、ならびにシステムメモリ922から処理装置921までを含む様々なシステムコンポーネントを結合するシステムバス923を含む、従来のコンピュータ920の形態で汎用コンピューティングデバイスを含んでいる。システムバス923は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかのタイプのバス構造のいずれであってもよい。システムメモリは、読み取り専用メモリ(ROM)924およびランダムアクセスメモリ(RAM)925を含む。スタートアップ中など、コンピュータ920内部の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(Basic Input/Output System)926が、ROM924の中に格納されることが可能である。
コンピュータ920は、磁気ハードディスク939に対して読み取りおよび書き込みを行うための磁気ハードディスクドライブ927、リムーバブルな磁気ディスク929に対して読み取りまたは書き込みを行うための磁気ディスクドライブ928、およびCD−ROMまたは他の光媒体などのリムーバブルな光ディスク931に対して読み取りまたは書き込みを行うための光ディスクドライブ930も含むことが可能である。磁気ハードディスクドライブ927、磁気ディスクドライブ928、および光ディスクドライブ930は、それぞれ、ハードディスクドライブインタフェース932、磁気ディスクドライブインタフェース933、および光ドライブインタフェース934でシステムバス923に接続される。以上のドライブ、および関連するコンピュータ可読媒体により、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージがコンピュータ920に提供される。本明細書で説明する典型的な環境は、磁気ハードディスク939、リムーバブルな磁気ディスク929、およびリムーバブルな光ディスク931を使用するが、磁気カセット、フラッシュメモリカード、デジタルバーサタイルディスク、ベルヌーイカートリッジ、RAM、ROMなどを含め、データを格納するための他のタイプのコンピュータ可読媒体も使用することができる。
オペレーティングシステム935、1つまたは複数のアプリケーションプログラム936、他のプログラムモジュール937、およびプログラムデータ938を含め、1つまたは複数のプログラムモジュールを含むプログラムコード手段が、ハードディスク939、磁気ディスク929、光ディスク931、ROM924、またはRAM925に格納されることが可能である。ユーザは、キーボード940、ポインティングデバイス942、あるいはマイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどの他の入力デバイス群(図示せず)を介して、コマンドおよび情報をコンピュータ920に入力することができる。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバス923に結合されたシリアルポートインタフェース946を介して処理装置921に接続される。代替として、入力デバイス群は、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインタフェース群で接続してもよい。モニタ947または別のディスプレイデバイスも、ビデオアダプタ948のようなインタフェースを介してシステムバス923に接続される。モニタに加えて、パーソナルコンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス群(図示せず)も含む。
コンピュータ920は、リモートコンピュータ949aおよび949bのような1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピュータ949aおよび949bはそれぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、コンピュータ920に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置950aおよび950b、ならびに関連するアプリケーションプログラム936aおよび936bだけを図9に示している。図9に示した論理接続は、例として、限定としてではなく、ここで提示するローカルエリアネットワーク(LAN)951およびワイドエリアネットワーク(WAN)952を含む。そのようなネットワーキング環境は、オフィス全体または企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
LANネットワーキング環境で使用される場合、コンピュータ920は、ネットワークインタフェースまたはネットワークアダプタ953を介してローカルネットワーク951に接続される。WANネットワーキング環境で使用される場合、コンピュータ920は、インターネットなどのワイドエリアネットワーク952を介して通信を確立するためのモデム954、無線リンク、またはその他の手段を含むことが可能である。内部にあることも、外部にあることも可能なモデム954は、シリアルポートインタフェース946を介してシステムバス923に接続される。ネットワーク化された環境では、コンピュータ920に関連して示したプログラムモジュール群、またはプログラムモジュール群の諸部分は、リモートメモリ記憶装置の中に格納することができる。図示したネットワーク接続は、典型的であり、ワイドエリアネットワーク952を介して通信を確立する他の手段も使用できることが認められよう。
本発明は、本発明の趣旨または基本的な特徴から逸脱することなく、他の特定の形態で実施することもできる。説明した諸実施形態は、すべての点で単に例示的であり、限定的ではないものと見なされるべきである。したがって、本発明の範囲は、以上の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲に含まれるすべての変更が、特許請求の範囲に包含されるものとする。
本発明を実施することができる高忠実度デバイスおよび低忠実度デバイスを有する分散システムを示す図である。 本発明の典型的な実施形態による分散システム内の2つのデバイス間における競合の検出を示す図である。 本発明の典型的な実施形態による低忠実度デバイスを有する分散システムにおける時刻−日付情報の更新および使用を示す図である。 本発明の典型的な実施形態によるフィールド内の時刻−日付情報の典型的な標準のフォーマットを示す図である。 典型的な実施形態による対応する時刻−日付フィールドを有さないデータベース内のプロパティ値に時刻−日付情報を関連付ける方法を示す流れ図である。 典型的な実施形態による対応する時刻−日付フィールドを有さないデータベース内のプロパティ値とともに時刻−日付情報を受信し、格納する方法を示す流れ図である。 典型的な実施形態による対応する時刻−日付フィールドを有さないデータベースから受信された時刻−日付情報を使用して、分散コンピューティングシステム内のデバイス間におけるデータ競合を解決する方法を示す流れ図である。 典型的な実施形態によるプロパティの前回の同期以来、リモート上のプロパティに関する値が変化した時点を判定する方法を示す流れ図である。 典型的な実施形態による複数のプロパティ値のなかから時刻−日付情報が割り当てられるべきプロパティ値の限られた集合を選択する方法を示す流れ図である。 本発明の適切な動作環境を提供する典型的なシステムを示す図である。

Claims (100)

  1. デバイス間でデータを同期させることができる、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスを有する分散コンピューティングシステムにおいて、時刻−日付情報を前記データベース内のプロパティ値に関連付ける方法であって、
    対応する時刻−日付フィールドなしでプロパティを格納するリモートデータベース内の1つまたは複数のリモートプロパティ値に対応する時刻−日付情報を特定する動作と、
    前記特定された時刻−日付情報を前記分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットする動作と、
    前記1つまたは複数のリモートプロパティ値に関連付けられたフィールドの中に格納するために、前記フォーマットされた時刻−日付情報を前記リモートデータベースに送信する動作と
    を備えることを特徴とする方法。
  2. 前記標準のフォーマットは、ユニフォームリソースアイデンティファイア(Uniform Resource Identifier)であることを特徴とする請求項1に記載の方法。
  3. 前記ユニフォームリソースアイデンティファイアは、プロパティ識別子、前記1つまたは複数のプロパティ値の1つの表現、および前記1つまたは複数のプロパティ値の前記1つに対応する前記時刻−日付情報の表現をそれぞれが含むセグメントに解析されるユニフォームリソースロケータであることを特徴とする請求項2に記載の方法。
  4. 前記1つまたは複数のプロパティ値の前記1つの前記表現は、前記1つまたは複数のプロパティ値の前記1つのハッシュであることを特徴とする請求項3に記載の方法。
  5. 前記1つまたは複数のプロパティ値の前記1つに対応する前記時刻−日付情報の前記表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される前記時刻−日付情報の16進数の1つまたは複数であることを特徴とする請求項3に記載の方法。
  6. 前記1つまたは複数のリモートプロパティ値に関連付けられた前記フィールドは、メモフィールドであることを特徴とする請求項1に記載の方法。
  7. 前記1つまたは複数のリモートプロパティ値に関連付けられた前記フィールドは、未使用のフィールドであることを特徴とする請求項1に記載の方法。
  8. 前記1つまたは複数のプロパティ値は、総数の関連するプロパティ値の部分集合であり、前記1つまたは複数のプロパティ値は、前記特定された時刻−日付情報が、前記時刻−日付情報に関連する値に基づいて標準のフォーマットでフォーマットされるように選択されることを特徴とする請求項1に記載の方法。
  9. 選択されなかった前記総数のプロパティ値からのプロパティ値の残りの部分は、プロパティ値の前記残りの部分に関する時刻−日付情報に基づく関連する時刻−日付情報を有する結合された表現値により、前記1つまたは複数のプロパティ値に関連付けられた前記フィールドの中で表されることを特徴とする請求項8に記載の方法。
  10. 前記1つまたは複数のプロパティ値に関する前記時刻−日付情報に関連する前記値は、最新の時刻−日付値であり、前記結合された表現値に関連する前記時刻−日付情報は、プロパティ値の前記残りの部分に関連付けられた最新の時刻−日付値または最古の時刻−日付値の1つまたは複数であることを特徴とする請求項9に記載の方法。
  11. 前記結合された表現は、プロパティ値の前記残りの部分のハッシュであることを特徴とする請求項10に記載の方法。
  12. デバイス間でデータを同期させることができる、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスを有する分散コンピューティングシステムにおいて、時刻−日付情報を前記データベース内のプロパティ値に関連付ける方法であって、
    前記分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットされた、前記1つまたは複数のプロパティ値に関連付けられたフォーマット済みの時刻−日付情報を受信する動作と、
    前記フォーマット済みの時刻−日付情報を前記1つまたは複数のプロパティ値に関連付けられたデータベースフィールドの中に格納して、前記フォーマット済みの時刻−日付情報を利用して、前記1つまたは複数のプロパティ値に関わるデータ競合を解決することができるようにする動作と
    を備えることを特徴とする方法。
  13. 前記1つまたは複数のプロパティ値の少なくとも1つを変更する動作と、
    前記フォーマット済みの時刻−日付情報を前記1つまたは複数のプロパティ値に関連付けられているとして特定する動作と、
    前記1つまたは複数のプロパティ値の前記変更された少なくとも1つに従って、前記データベースフィールドの中の前記フォーマット済みの時刻−日付情報を更新する動作と
    をさらに備えることを特徴とする請求項12に記載の方法。
  14. 前記フォーマット済みの時刻−日付情報は、リモートデバイス上で受信され、格納され、前記リモートデバイスのユーザが、前記変更を行っていることを特徴とする請求項13に記載の方法。
  15. 前記フォーマット済みの時刻−日付情報は、リモートデバイス上で受信され、格納され、ローカルマシンのユーザが、前記変更を行っており、前記ローカルマシンは、対応する時刻−日付フィールドを有するデータベースの中に、前記1つまたは複数のプロパティ値に関連付けられたフォーマットされていない時刻−日付情報プロパティを格納していることを特徴とする請求項13に記載の方法。
  16. 前記標準のフォーマットは、ユニフォームリソースアイデンティファイアであることを特徴とする請求項12に記載の方法。
  17. 前記ユニフォームリソースアイデンティファイアは、プロパティ識別子、前記1つまたは複数のプロパティ値の1つの表現、および前記1つまたは複数のプロパティ値の前記1つに対応する前記時刻−日付情報の表現をそれぞれが含むセグメントに解析されるユニフォームリソースロケータであることを特徴とする請求項16に記載の方法。
  18. 前記1つまたは複数のプロパティ値の前記1つの前記表現は、前記1つまたは複数のプロパティ値の前記1つのハッシュであることを特徴とする請求項17に記載の方法。
  19. 前記1つまたは複数のプロパティ値の前記1つに対応する前記時刻−日付情報の前記表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される前記時刻−日付情報の16進数の1つまたは複数であることを特徴とする請求項18に記載の方法。
  20. 前記1つまたは複数のリモートプロパティ値に関連付けられた前記フィールドは、メモフィールドであることを特徴とすることを特徴とする請求項12に記載の方法。
  21. 前記1つまたは複数のリモートプロパティ値に関連付けられた前記フィールドは、未使用のフィールドであることを特徴とする請求項12に記載の方法。
  22. 前記1つまたは複数のプロパティ値は、総数の関連するプロパティ値の部分集合であり、前記1つまたは複数のプロパティ値は、前記特定された時刻−日付情報が、前記時刻−日付情報に関連する値に基づいて標準のフォーマットでフォーマットされるように選択されることを特徴とする請求項12に記載の方法。
  23. 選択されなかった前記総数のプロパティ値からのプロパティ値の残りの部分は、プロパティ値の前記残りの部分に関する時刻−日付情報に基づく関連する時刻−日付情報を有する結合された表現値により、前記1つまたは複数のプロパティ値に関連付けられた前記フィールドの中で表されることを特徴とする請求項22に記載の方法。
  24. 前記1つまたは複数のプロパティ値に関する前記時刻−日付情報に関連する前記値は、最新の時刻−日付値であり、前記結合された表現値に関連する前記時刻−日付情報は、プロパティ値の前記残りの部分に関連付けられた最新の時刻−日付値または最古の時刻−日付値の1つまたは複数であることを特徴とする請求項23に記載の方法。
  25. 前記結合された表現は、プロパティ値の前記残りの部分のハッシュであることを特徴とする請求項24に記載の方法。
  26. デバイス間でデータを同期させることができる、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスを有する分散コンピューティングシステムにおいて、前記分散コンピューティングシステム内のデバイス間におけるデータ競合を解決する方法であって、
    対応する時刻−日付フィールドを有さないデータベースからリモートプロパティに関するリモートプロパティ値、および前記分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットされた対応するリモート時刻−日付情報を受信する動作と、
    前記リモートプロパティ値と対応するローカルプロパティ値の間の競合を検出する動作と、
    前記標準のフォーマットに従って前記リモート時刻−日付情報を解析して、前記リモートプロパティ値がいつ変更されたかを示すリモート時刻−日付を特定する動作と、
    前記リモート時刻−日付を、前記1つまたは複数のローカルプロパティ値がいつ変更されたかを示すローカル時刻−日付と比較する動作と、
    前記比較の結果に基づいて前記競合を解決する動作と
    を備えることを特徴とする方法。
  27. 前記標準のフォーマットは、ユニフォームリソースアイデンティファイアであることを特徴とする請求項26に記載の方法。
  28. 前記ユニフォームリソースアイデンティファイアは、セグメントに解析されるユニフォームリソースロケータであり、前記セグメントの1つは、前記リモートプロパティ値に対応するプロパティID、前記リモートプロパティ値のリモート表現、および前記リモートプロパティ値に対応する前記時刻−日付情報の表現を含むことを特徴とする請求項27に記載の方法。
  29. 前記リモートプロパティ値の前記リモート表現は、前記リモートプロパティ値のハッシュであることを特徴とする請求項28に記載の方法。
  30. 前記リモートプロパティ値に対応する前記時刻−日付情報の前記表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される前記時刻−日付情報の16進数の1つまたは複数であることを特徴とする請求項28に記載の方法。
  31. 前記リモートプロパティ値から前記リモートプロパティのローカル表現を生成する動作と、
    前記リモート表現を前記ローカル表現と比較する動作と、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティ値が変化していないと判定する動作と
    をさらに備えることを特徴とする請求項28に記載の方法。
  32. デバイス間でデータを同期させることができる、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスを有する分散コンピューティングシステムにおいて、前記分散コンピューティングシステム内のデバイス間におけるデータ競合を解決する方法であって、
    対応する時刻−日付フィールドを有さないデータベースからリモートプロパティ値、および前記分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットされた対応するリモート時刻−日付情報を受信するステップと、
    前記リモートプロパティ値と対応するローカルプロパティ値の間の競合を検出するステップ動作と、
    前記リモート時刻−日付情報を利用して、ローカルデバイスとリモートデバイスの間で同期をとるのに適切なプロパティ値を選択するためのステップと
    を備えることを特徴とする方法。
  33. 前記標準のフォーマットは、ユニフォームリソースアイデンティファイアであることを特徴とする請求項32に記載の方法。
  34. 前記ユニフォームリソースアイデンティファイアは、セグメントに解析されるユニフォームリソースロケータであり、前記セグメントの1つは、前記リモートプロパティ値に対応するプロパティID、前記リモートプロパティ値のリモート表現、および前記リモートプロパティ値に対応する前記時刻−日付情報の表現を含むことを特徴とする請求項33に記載の方法。
  35. 対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納するデバイスを有する、デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて使用するための、前記分散コンピューティングシステム内のデバイス間におけるデータ競合を解決する方法を実施するためのコンピュータプログラム製品であって、
    プロセッサによって実行された場合、
    対応する時刻−日付フィールドを有さないデータベースからリモートプロパティに関するリモートプロパティ値、および前記分散コンピューティングシステム内の1つまたは複数のデバイスが解析できる標準のフォーマットでフォーマットされた対応するリモート時刻−日付情報を受信するステップと、
    前記リモートプロパティ値と対応するローカルプロパティ値の間の競合を検出すること、
    前記標準のフォーマットに従って前記リモート時刻−日付情報を解析して、前記リモートプロパティ値がいつ変更されたかを示すリモート時刻−日付を特定するステップと、
    前記リモート時刻−日付を、前記1つまたは複数のローカルプロパティ値がいつ変更されたかを示すローカル時刻−日付と比較するステップと、
    前記比較の結果に基づいて前記競合を解決するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令を格納している1つまたは複数のコンピュータ可読媒体を含むことを特徴とする製品。
  36. 前記標準のフォーマットは、ユニフォームリソースアイデンティファイアであることを特徴とする請求項35に記載のコンピュータプログラム製品。
  37. 前記ユニフォームリソースアイデンティファイアは、セグメントに解析されるユニフォームリソースロケータであり、前記セグメントの1つは、前記リモートプロパティ値に対応するプロパティID、前記リモートプロパティ値のリモート表現、および前記リモートプロパティ値に対応する前記時刻−日付情報の表現を含むことを特徴とする請求項36に記載のコンピュータプログラム製品。
  38. 前記リモートプロパティ値の前記リモート表現は、前記リモートプロパティ値のハッシュであることを特徴とする請求項37に記載の方法。
  39. 前記リモートプロパティ値に対応する時刻−日付情報の前記表現は、前記時刻−日付情報の16進数であることを特徴とする請求項38に記載の方法。
  40. 前記リモートプロパティ値から前記リモートプロパティのローカル表現を生成する動作と、
    前記リモート表現を前記ローカル表現と比較する動作と、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティ値が変化していないと判定する動作とをさらに備えることを特徴とする請求項39に記載の方法。
  41. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、リモートデバイス上のプロパティに関する値が、前記リモートデバイスとローカルマシンの間における前記プロパティの前回の同期以来、変化しているかどうかを判定する方法であって、
    リモートプロパティに関する現在の値、および前記リモートプロパティの以前の値に関するリモート表現を受信する動作と、
    前記リモートプロパティに関する前記現在の値から前記リモートプロパティのローカル表現を生成する動作と、
    前記リモート表現を前記ローカル表現と比較する動作と、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティの前記以前の値が変更されていると判定する動作と
    を備えることを特徴とする方法。
  42. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであることを特徴とする請求項41に記載の方法。
  43. 前記リモートデバイスは、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納する低忠実度デバイスであることを特徴とする請求項42に記載の方法。
  44. 前記リモートプロパティに関連付けられた時刻−日付情報のリモート表現を受信する動作と、
    前記リモートプロパティの前記以前の値が変更されているという前記判定に基づき、時刻−日付情報の前記リモート表現が信頼できない可能性があると判定する動作と
    をさらに備えることを特徴とする請求項41に記載の方法。
  45. 前記時刻−日付情報の前記リモート表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項44に記載の方法。
  46. 前記現在の値と前記リモートプロパティに関連付けられたローカル値の間で競合が存在し、時刻−日付情報の前記リモート表現は、前記競合を解決するために使用されないことを特徴とする請求項44に記載の方法。
  47. ローカル値を使用して前記現在の値が置き換えられ、前記リモート表現は、更新されたリモート表現で置き換えられることを特徴とする請求項41に記載の方法。
  48. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであり、前記更新されたリモート表現は、前記ローカル値のハッシュであることを特徴とする請求項47に記載の方法。
  49. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、リモートデバイス上のプロパティに関する値が、前記リモートデバイスとローカルマシンの間における前記プロパティの前回の同期以来、変化しているかどうかを判定する方法であって、
    リモートプロパティに関するリモート値、および前記リモートプロパティの前記リモート値に関するリモート表現を受信する動作と、
    前記リモートプロパティに関する前記リモート値から前記リモートプロパティのローカル表現を生成する動作と、
    前記リモート表現を前記ローカル表現と比較する動作と、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティの前記リモート値が変化していないと判定する動作と
    を備えることを特徴とする方法。
  50. 前記リモート表現は、前記リモート値のハッシュであり、前記ローカル表現は、前記リモート値のハッシュであることを特徴とする請求項49に記載の方法。
  51. 前記リモートデバイスは、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納する低忠実度デバイスであることを特徴とする請求項50に記載の方法。
  52. 前記リモート値と前記リモートプロパティに関連付けられたローカル値の間で競合が存在すると判定する動作と、
    前記リモートプロパティに関連付けられた時刻−日付情報のリモート表現を受信する動作と、
    前記リモートプロパティの前記リモート値が変化していないという前記判定に基づき、時刻−日付情報の前記リモート表現を時刻−日付情報のローカル表現と比較し、時刻−日付情報の前記リモート表現、および時刻−日付情報の前記ローカル表現は、前記リモート値および前記ローカル値がいつ生成されたかをそれぞれ示す動作と、
    時刻−日付の前記リモート表現と時刻−日付情報の前記ローカル表現の前記比較の結果に基づき、前記競合を解決する動作と
    をさらに備えることを特徴とする請求項49に記載の方法。
  53. 前記時刻−日付情報の前記リモート表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項52に記載の方法。
  54. ローカル値を使用して前記リモート値が置き換えられ、前記リモート表現は、更新されたリモート表現で置き換えられることを特徴とする請求項52に記載の方法。
  55. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであり、前記更新されたリモート表現は、前記ローカル値のハッシュであることを特徴とする請求項54に記載の方法。
  56. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、リモートデバイス上のプロパティに関する値が、前記リモートデバイスとローカルマシンの間における前記プロパティの前回の同期以来、変化しているかどうかを判定する方法を実施するためのコンピュータプログラム製品であって、
    プロセッサによって実行された場合、
    リモートプロパティに関する現在の値、および前記リモートプロパティの以前の値に関するリモート表現を受信するステップと、
    前記リモートプロパティに関する前記現在の値から前記リモートプロパティのローカル表現を生成するステップと、
    前記リモート表現を前記ローカル表現と比較するステップと、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティの前記以前の値が変更されていると判定するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令を格納している1つまたは複数のコンピュータ可読媒体を含むことを特徴とする製品。
  57. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであることを特徴とする請求項56に記載のコンピュータプログラム製品。
  58. 前記リモートデバイスは、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納する低忠実度デバイスであることを特徴とする請求項57に記載のコンピュータプログラム製品。
  59. 前記リモートプロパティに関連付けられた時刻−日付情報のリモート表現を受信するステップと、
    前記リモートプロパティの前記以前の値が変更されているという前記判定に基づき、時刻−日付情報の前記リモート表現が信頼できない可能性があると判定するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令をさらに含むことを特徴とする請求項56に記載のコンピュータプログラム製品。
  60. 前記時刻−日付情報の前記リモート表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項59に記載のコンピュータプログラム製品。
  61. 前記現在の値と前記リモートプロパティに関連付けられたローカル値の間で競合が存在し、時刻−日付情報の前記リモート表現は、前記競合を解決するために使用されないことを特徴とする請求項59に記載のコンピュータプログラム製品。
  62. ローカル値を使用して前記現在の値が置き換えられ、前記リモート表現は、更新されたリモート表現で置き換えられることを特徴とする請求項56に記載のコンピュータプログラム製品。
  63. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであり、前記更新されたリモート表現は、前記ローカル値のハッシュであることを特徴とする請求項62に記載のコンピュータプログラム製品。
  64. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、リモートデバイス上のプロパティに関する値が、前記リモートデバイスとローカルマシンの間における前記プロパティの前回の同期以来、変化しているかどうかを判定する方法を実施するためのコンピュータプログラム製品であって、
    プロセッサによって実行された場合、
    リモートプロパティに関するリモート値、および前記リモートプロパティの前記リモート値に関するリモート表現を受信するステップと、
    前記リモートプロパティに関する前記リモート値から前記リモートプロパティのローカル表現を生成するステップと、
    前記リモート表現を前記ローカル表現と比較するステップと、
    前記比較に基づき、前記リモート表現が生成された後、前記リモートプロパティの前記リモート値が変化していないと判定するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令を格納している1つまたは複数のコンピュータ可読媒体を含むことを特徴とする製品。
  65. 前記リモート表現は、前記リモート値のハッシュであり、前記ローカル表現は、前記リモート値のハッシュであることを特徴とする請求項64に記載のコンピュータプログラム製品。
  66. 前記リモートデバイスは、対応する時刻−日付フィールドなしでデータベースの中にプロパティを格納する低忠実度デバイスであることを特徴とする請求項65に記載のコンピュータプログラム製品。
  67. 前記リモート値と前記リモートプロパティに関連付けられたローカル値の間で競合が存在すると判定するステップと、
    前記リモートプロパティに関連付けられた時刻−日付情報のリモート表現を受信するステップと、
    前記リモートプロパティの前記リモート値が変化していないという前記判定に基づき、時刻−日付情報の前記リモート表現を時刻−日付情報のローカル表現と比較し、時刻−日付情報の前記リモート表現、および時刻−日付情報の前記ローカル表現は、前記リモート値および前記ローカル値がいつ生成されたかをそれぞれ示すステップと、
    時刻−日付の前記リモート表現と時刻−日付情報の前記ローカル表現の前記比較の結果に基づき、前記競合を解決するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令をさらに含むことを特徴とする請求項64に記載のコンピュータプログラム製品。
  68. 前記時刻−日付情報の前記リモート表現は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項67に記載のコンピュータプログラム製品。
  69. 前記ローカル値を使用して前記リモート値が置き換えられ、前記リモート表現は、更新されたリモート表現で置き換えられることを特徴とする請求項67に記載のコンピュータプログラム製品。
  70. 前記リモート表現は、前記リモートプロパティの前記以前の値のハッシュであり、前記ローカル表現は、前記リモートプロパティに関する前記現在の値のハッシュであり、前記更新されたリモート表現は、前記ローカル値のハッシュであることを特徴とする請求項70に記載のコンピュータプログラム製品。
  71. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、同期値間の競合を解決する際に使用される時刻−日付情報が割り当てられるべきプロパティ値を選択することにより、メモリリソースを保存する方法であって、
    リモートデバイスから複数のプロパティ値を受信する動作と、
    前記リモートデバイスの前記利用可能なリソースに基づき、前記複数のプロパティ値のなかからプロパティ値の限られた集合を選択する動作と、
    前記複数のプロパティ値に対応する複数の時刻−日付情報から時刻−日付情報の集合を特定する動作であって、
    前記限られた集合内の前記プロパティ値のそれぞれは、時刻−日付情報の前記集合の異なる部分に対応して、前記限られた集合内の前記プロパティ値のそれぞれが、ユーザによって前回、いつ変更されたかを示す動作と、
    時刻−日付情報の前記異なる部分を前記リモートデバイスのリモートデータベースの中に格納する動作と
    を備えることを特徴とする方法。
  72. 前記複数のプロパティ値からの1つまたは複数の残りのプロパティ値に関する前記複数の時刻−日付情報から、時刻−日付情報の一部分を特定する動作であって、前記1つまたは複数の残りのプロパティ値は、プロパティ値の前記限られた集合に入っておらず、時刻−日付情報の前記一部分は、前記1つまたは複数の残りのプロパティ値の少なくとも1つが、ユーザによって変更された時点に対応する、時刻−日付情報の一部分を特定する動作作と、
    時刻−日付情報の前記特定された部分を、時刻−日付情報の前記特定された部分が前記1つまたは複数の残りのプロパティ値のすべてに対応するように、前記リモートデータベース内の1つの場所に格納する動作と
    をさらに備えることを特徴とする請求項71に記載の方法。
  73. 前記1つまたは複数の残りのプロパティ値は、結合された表現値で表されることを特徴とする請求項72に記載の方法。
  74. 前記結合された表現値は、プロパティ値の前記残りの部分のハッシュであることを特徴とする請求項73に記載の方法。
  75. 前記1つまたは複数の残りのプロパティ値に関する時刻−日付情報の前記特定された部分、最新の時刻−日付値、最古の時刻−日付値、または該最新の時刻−日付値と該最古の時刻−日付値の両方であることを特徴とする請求項73に記載の方法。
  76. 前記1つまたは複数の残りのプロパティ値に関する時刻−日付情報の前記一部分は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項75に記載の方法。
  77. 前記限られた集合内の前記プロパティ値のそれぞれは、前記対応するプロパティ値の表現として格納されることを特徴とする請求項73に記載の方法。
  78. 前記対応するプロパティ値の前記表現は、前記対応するプロパティ値のハッシュであることを特徴とする請求項77に記載の方法。
  79. 前記限られた集合内の前記プロパティ値のそれぞれは、前記対応するプロパティ値の表現として格納されることを特徴とする請求項71に記載の方法。
  80. 前記対応するプロパティ値の前記表現は、前記対応するプロパティ値のハッシュであることを特徴とする請求項79に記載の方法。
  81. 前記時刻−日付情報は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項71に記載の方法。
  82. 前記利用可能なリソースは、限られたサイズのフィールドであることを特徴とする請求項71に記載の方法。
  83. プロパティ値の前記限られた集合の前記選択は、前記複数のプロパティ値の前記変更に関連する履歴情報にも基づくことを特徴とする請求項71に記載の方法。
  84. 前記履歴情報は、前記複数のプロパティ値のそれぞれが変更される頻度であり、最も頻繁に変更されたプロパティ値群が選択されることを特徴とする請求項83に記載の方法。
  85. 前記履歴情報は、前記複数のプロパティ値に関する時刻−日付情報であり、前記最も新しく変更されたプロパティ値群が選択されることを特徴とする請求項83に記載の方法。
  86. デバイス間でデータを同期させることができる分散コンピューティングシステムにおいて、同期値間の競合を解決する際に使用される時刻−日付情報が割り当てられるべきプロパティ値を選択することにより、メモリリソースを保存する方法を実施するためのコンピュータプログラム製品であって、
    プロセッサによって実行された場合、
    リモートデバイスから複数のプロパティ値を受信するステップと、
    前記リモートデバイスの前記利用可能なリソースに基づき、前記複数のプロパティ値のなかからプロパティ値の限られた集合を選択するステップと、
    前記複数のプロパティ値に対応する複数の時刻−日付情報から時刻−日付情報の集合を特定し、前記限られた集合内の前記プロパティ値のそれぞれは、時刻−日付情報の前記集合の異なる部分に対応して、前記限られた集合内の前記プロパティ値のそれぞれが、ユーザによって前回、いつ変更されたかを示すステップと、
    時刻−日付情報の前記異なる部分を前記リモートデバイスのリモートデータベースの中に格納するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令を格納している1つまたは複数のコンピュータ可読媒体を含むことを特徴とする製品。
  87. 前記複数のプロパティ値からの1つまたは複数の残りのプロパティ値に関する前記複数の時刻−日付情報から、時刻−日付情報の一部分を特定し、前記1つまたは複数の残りのプロパティ値は、プロパティ値の前記限られた集合に入っておらず、時刻−日付情報の前記一部分は、前記1つまたは複数の残りのプロパティ値の少なくとも1つが、ユーザによって変更された時点に対応するステップ、
    時刻−日付情報の前記特定された部分を、時刻−日付情報の前記特定された部分が前記1つまたは複数の残りのプロパティ値のすべてに対応するように、前記リモートデータベース内の1つの場所に格納するステップと
    を前記分散コンピューティングシステムに実行させることができるコンピュータ実行可能命令をさらに含むことを特徴とする請求項86に記載のコンピュータプログラム製品。
  88. 前記1つまたは複数の残りのプロパティ値は、結合された表現値で表されることを特徴とする請求項87に記載のコンピュータプログラム製品。
  89. 前記結合された表現値は、プロパティ値の前記残りの部分のハッシュであることを特徴とする請求項88に記載のコンピュータプログラム製品。
  90. 前記1つまたは複数の残りのプロパティ値に関する時刻−日付情報の前記特定された部分、最新の時刻−日付値、最古の時刻−日付値、または該最新の時刻−日付値と該最古の時刻−日付値の両方であることを特徴とする請求項88に記載のコンピュータプログラム製品。
  91. 前記1つまたは複数の残りのプロパティ値に関する時刻−日付情報の前記一部分は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項90に記載のコンピュータプログラム製品。
  92. 前記限られた集合内の前記プロパティ値のそれぞれは、前記対応するプロパティ値の表現として格納されることを特徴とする請求項88に記載のコンピュータプログラム製品。
  93. 前記対応するプロパティ値の前記表現は、前記対応するプロパティ値のハッシュであることを特徴とする請求項92に記載のコンピュータプログラム製品。
  94. 前記限られた集合内の前記プロパティ値のそれぞれは、前記対応するプロパティ値の表現として格納されることを特徴とする請求項86に記載のコンピュータプログラム製品。
  95. 前記対応するプロパティ値の前記表現は、前記対応するプロパティ値のハッシュであることを特徴とする請求項94に記載のコンピュータプログラム製品。
  96. 前記時刻−日付情報は、秒単位まで格納される、分単位まで格納される、または時間帯とは独立のフォーマットで格納される16進数の1つまたは複数であることを特徴とする請求項86に記載のコンピュータプログラム製品。
  97. 前記利用可能なリソースは、限られたサイズのフィールドであることを特徴とする請求項86に記載のコンピュータプログラム製品。
  98. プロパティ値の前記限られた集合の前記選択は、前記複数のプロパティ値の前記変更に関連する履歴情報にも基づくことを特徴とする請求項86に記載のコンピュータプログラム製品。
  99. 前記履歴情報は、前記複数のプロパティ値のそれぞれが変更される頻度であり、最も頻繁に変更されたプロパティ値群が選択されることを特徴とする請求項98に記載のコンピュータプログラム製品。
  100. 前記履歴情報は、前記複数のプロパティ値に関する時刻−日付情報であり、前記最も新しく変更されたプロパティ値群が選択されることを特徴とする請求項99に記載のコンピュータプログラム製品。
JP2007510695A 2004-04-30 2004-07-30 低忠実度デバイスを同期させるための時刻−日付情報の保持 Expired - Fee Related JP4722124B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10/835,830 2004-04-30
US10/835,830 US6944636B1 (en) 2004-04-30 2004-04-30 Maintaining time-date information for syncing low fidelity devices
US10/878,717 US6950835B1 (en) 2004-04-30 2004-06-28 Determining when a low fidelity property value has changed during a sync
US10/878,717 2004-06-28
US10/878,095 US7007045B2 (en) 2004-04-30 2004-06-28 Preserving memory resources by limiting time-date information for a subset of properties
US10/878,095 2004-06-28
PCT/US2004/024708 WO2005111808A2 (en) 2004-04-30 2004-07-30 Maintaining time-date information for syncing low fidelity devices

Publications (2)

Publication Number Publication Date
JP2007535757A true JP2007535757A (ja) 2007-12-06
JP4722124B2 JP4722124B2 (ja) 2011-07-13

Family

ID=34912757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007510695A Expired - Fee Related JP4722124B2 (ja) 2004-04-30 2004-07-30 低忠実度デバイスを同期させるための時刻−日付情報の保持

Country Status (4)

Country Link
US (6) US6944636B1 (ja)
JP (1) JP4722124B2 (ja)
KR (1) KR101224821B1 (ja)
CN (1) CN101061475B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644125B2 (en) * 2000-09-11 2010-01-05 Ianywhere Solutions, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US6944636B1 (en) * 2004-04-30 2005-09-13 Microsoft Corporation Maintaining time-date information for syncing low fidelity devices
RU2367008C2 (ru) * 2004-04-30 2009-09-10 Майкрософт Корпорейшн Поддержание информации времени-даты для синхронизации устройств с низкой достоверностью данных
US7342555B2 (en) * 2004-04-30 2008-03-11 Microsoft Corporation Detecting low fidelity sync data
US7284021B2 (en) * 2004-06-28 2007-10-16 Microsoft Corporation Determining when a low fidelity property value has changed during a SYNC
US7269609B2 (en) * 2004-06-28 2007-09-11 Microsoft Corporation Preserving memory resources by limiting time-date information for a subset of properties
US7788288B1 (en) * 2004-11-01 2010-08-31 At&T Corp. Method for distributed configuration and file distribution based on centralized data
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US8069184B2 (en) 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US7933869B2 (en) 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
GB0718214D0 (en) * 2007-09-19 2007-10-31 Ibm An apparatus for storing a logical statement
US7996357B2 (en) 2008-02-29 2011-08-09 Plaxo, Inc. Enabling synchronization with a difference unaware data source
US8250588B2 (en) 2009-06-16 2012-08-21 Microsoft Corporation Persisting application state
US8424009B2 (en) * 2009-12-04 2013-04-16 Microsoft Corporation Lock resolution for distributed durable instances
US8296780B2 (en) * 2010-03-23 2012-10-23 Microsoft Corporation Reducing persistence commands
US8793402B2 (en) 2011-08-26 2014-07-29 International Business Machines Corporation Synchronizing time across a plurality of devices connected to a network
WO2014060011A1 (en) * 2012-10-15 2014-04-24 Huawei Technologies Co., Ltd. Method and apparatus for managing the coherency for data stored in distributed databases
EP2934215B1 (en) 2012-12-21 2019-03-13 NIKE Innovate C.V. Woven footwear upper with lockout
CN104580424B (zh) * 2014-12-26 2019-04-30 珠海格力电器股份有限公司 智能家居系统的数据上报方法和装置
CN109284332B (zh) * 2018-08-29 2021-01-05 江苏奇异点网络有限公司 数据处理方法、客户端、服务器及计算机可读存储介质
KR20220126024A (ko) 2021-03-08 2022-09-15 삼성전자주식회사 호스트 장치 및 스토리지 장치 사이의 시간 동기화 방법 및 이를 수행하는 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055864A (ja) * 2000-08-09 2002-02-20 Seiko Epson Corp データ更新方法および情報処理装置
JP2003140950A (ja) * 2001-11-07 2003-05-16 Casio Soft Co Ltd データベース同期化方法、装置、及びプログラム
JP2003242013A (ja) * 2002-02-18 2003-08-29 Sony Corp データ同期方法、データ同期システムおよびデータ同期プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590305A (en) 1994-03-28 1996-12-31 Altera Corporation Programming circuits and techniques for programming logic
US5758355A (en) 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables
US5926816A (en) 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US6044381A (en) 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US6405218B1 (en) * 1996-11-13 2002-06-11 Pumatech, Inc. Synchronizing databases
US6212529B1 (en) * 1996-11-13 2001-04-03 Puma Technology, Inc. Synchronization of databases using filters
US6006241A (en) 1997-03-14 1999-12-21 Microsoft Corporation Production of a video stream with synchronized annotations over a computer network
US6052735A (en) 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6442570B1 (en) 1997-10-27 2002-08-27 Microsoft Corporation Object identification and data communication during an object synchronization process
US6223050B1 (en) 1997-12-09 2001-04-24 Bellsouth Intellectual Property Management Corporation System and method for automatically setting a remote timepiece with the correct time
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US5956490A (en) 1998-06-30 1999-09-21 Motorola, Inc. Method, client device, server and computer readable medium for specifying and negotiating compression of uniform resource identifiers
US6324544B1 (en) 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6343299B1 (en) * 1998-11-16 2002-01-29 International Business Machines Corporation Method and apparatus for random update synchronization among multiple computing devices
US6247135B1 (en) * 1999-03-03 2001-06-12 Starfish Software, Inc. Synchronization process negotiation for computing devices
US6463427B1 (en) 1999-03-16 2002-10-08 Microsoft Corporation Use of object signature property as a search parameter during synchronization of objects on a computer
CN1652517A (zh) * 1999-06-21 2005-08-10 菲尔德巴士基金 在高速以太网上的面向块控制系统
US6505214B1 (en) 1999-09-28 2003-01-07 Microsoft Corporation Selective information synchronization based on implicit user designation
US7039656B1 (en) 1999-10-20 2006-05-02 Yodlee.Com, Inc. Method and apparatus for synchronizing data records between a remote device and a data server over a data-packet-network
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6636873B1 (en) * 2000-04-17 2003-10-21 Oracle International Corporation Methods and systems for synchronization of mobile devices with a remote database
US6879996B1 (en) * 2000-09-13 2005-04-12 Edward W. Laves Method and apparatus for displaying personal digital assistant synchronization data using primary and subordinate data fields
US6952708B2 (en) 2001-06-27 2005-10-04 Microsoft Corporation Method and system for using a sync key
US7149813B2 (en) 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US20030217096A1 (en) * 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
GB0226249D0 (en) * 2002-11-11 2002-12-18 Clearspeed Technology Ltd Traffic handling system
US6944636B1 (en) 2004-04-30 2005-09-13 Microsoft Corporation Maintaining time-date information for syncing low fidelity devices
RU2367008C2 (ru) 2004-04-30 2009-09-10 Майкрософт Корпорейшн Поддержание информации времени-даты для синхронизации устройств с низкой достоверностью данных
US7342555B2 (en) 2004-04-30 2008-03-11 Microsoft Corporation Detecting low fidelity sync data
US7269609B2 (en) 2004-06-28 2007-09-11 Microsoft Corporation Preserving memory resources by limiting time-date information for a subset of properties
US7284021B2 (en) 2004-06-28 2007-10-16 Microsoft Corporation Determining when a low fidelity property value has changed during a SYNC

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055864A (ja) * 2000-08-09 2002-02-20 Seiko Epson Corp データ更新方法および情報処理装置
JP2003140950A (ja) * 2001-11-07 2003-05-16 Casio Soft Co Ltd データベース同期化方法、装置、及びプログラム
JP2003242013A (ja) * 2002-02-18 2003-08-29 Sony Corp データ同期方法、データ同期システムおよびデータ同期プログラム

Also Published As

Publication number Publication date
US7305423B2 (en) 2007-12-04
KR101224821B1 (ko) 2013-01-22
US20050246399A1 (en) 2005-11-03
US20050246462A1 (en) 2005-11-03
US7007045B2 (en) 2006-02-28
CN101061475B (zh) 2011-11-30
CN101061475A (zh) 2007-10-24
US20050256995A1 (en) 2005-11-17
KR20120006082A (ko) 2012-01-17
US20050246400A1 (en) 2005-11-03
US7620663B2 (en) 2009-11-17
US6950835B1 (en) 2005-09-27
US7370067B2 (en) 2008-05-06
JP4722124B2 (ja) 2011-07-13
US6944636B1 (en) 2005-09-13

Similar Documents

Publication Publication Date Title
JP4722124B2 (ja) 低忠実度デバイスを同期させるための時刻−日付情報の保持
US7284021B2 (en) Determining when a low fidelity property value has changed during a SYNC
RU2421780C2 (ru) Отслеживание и синхронизация частичного изменения элементов
US8019898B2 (en) Detecting low fidelity sync data
EP1605373A1 (en) Method and system for graph analysis and synchronization
US20100211542A1 (en) Methods and systems for halting synchronization loops in a distributed system
US7213039B2 (en) Synchronizing differing data formats
US7216134B2 (en) Determining when a low fidelity property value has changed during a sync
US7269609B2 (en) Preserving memory resources by limiting time-date information for a subset of properties
CA2507424C (en) Maintaining time-date information for syncing low fidelity devices
KR101201075B1 (ko) 저 충실도 장치들을 동기화하기 위한 시간-날짜 정보 유지 방법
US20110016100A1 (en) Multiple fidelity level item replication and integration
AU2011202919B2 (en) Partial item change tracking and synchronization
KR20070064893A (ko) 서버와 클라이언트 사이의 데이터 동기화 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees