(57)【要約】  同期コミュニティは、同期エンドポイントのグループを含むことができる。同期コミュニティの２つの同期エンドポイントが互いに同期するとき、２つの同期エンドポイントが同一の特定のデータ項目に対して変更を行い、２つの同期エンドポイントが変更が行われたときに他方の各同期エンドポイントによって行われた同一の特定のデータ項目に対する変更を認識していなかったとき、同期データ競合を検出することができる。検出された同期データ競合の解決を遅延することができ、同期操作中に、検出された同期データ競合を示すデータを他の同期エンドポイントに伝播させることができる。
2010514062.tif 000002
【特許請求の範囲】
【請求項１】
複数の同期エンドポイント（３０２、３０４、３１０、３１４）を含む同期コミュニティ（３００）において、競合知識の伝播のための方法であって、
第１の同期エンドポイントで、第２の同期エンドポイントの知識情報を受け取るステップであって、前記知識情報は、前記第２の同期エンドポイントが認識している前記同期コミュニティ内のデータに対する変更を表すステップ（６２０）、
前記第２の同期エンドポイントからの前記知識情報を、前記第１の同期エンドポイントの知識情報と比較するステップであって、前記第１の同期エンドポイントの前記知識情報は、前記第１の同期エンドポイントが認識している前記同期コミュニティ内のデータに対する変更を表すステップ（６２２）、
前記第１の同期エンドポイントで、前記第２の同期エンドポイントからの前記知識情報と、前記第１の同期エンドポイントの前記知識情報との比較に基づいて変更情報を列挙するステップであって、前記変更情報は、第３の同期エンドポイントと、前記複数の同期エンドポイントのうちの別の同期エンドポイントとの間で未解決の同期データの競合を示すデータを含むステップ（５１４、図８の２）、および
前記第１の同期エンドポイントから前記第２の同期エンドポイントに前記変更情報（５１４）を送るステップ
を含むことを特徴とする方法。
【請求項２】
前記第１の同期エンドポイントから、前記第１の同期エンドポイントの前記知識情報を送るステップ、
前記第１の同期エンドポイントの前記知識情報を送ることに応答して、前記第１の同期エンドポイントで、列挙した変更情報を前記第２の同期エンドポイントから受け取るステップであって、前記列挙した変更情報は、第２の未解決の同期データの競合を示すデータを含むステップ、および
前記第１の同期エンドポイントが、前記第２の未解決の同期データの競合が競合する変更の知識を含む関連するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅを有する、前記第２の未解決の同期データの競合に関連するデータ項目に対して行われた変更の知識を含むとき、前記第１の同期エンドポイントで前記第２の未解決の同期データの競合を解決するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２の同期エンドポイントからの前記知識情報は、知識ベクトルを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の同期エンドポイントから、前記第１の同期エンドポイントの前記知識情報を送るステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記未解決の同期データの競合は、前記第１の同期エンドポイントと第３の同期エンドポイントとの同期中に生じたことを特徴とする請求項１に記載の方法。
【請求項６】
前記未解決の同期データの競合は、第３の同期エンドポイントと第４の同期エンドポイントとの間の同期中に生じたことを特徴とする請求項１に記載の方法。
【請求項７】
少なくとも１つのプロセッサーに対する命令が記録された有形コンピューター可読媒体であって、
第１の同期要求を第１の同期エンドポイントから第２の同期エンドポイントに送る命令であって、前記第１の同期要求は、前記第１の同期エンドポイントが認識している、複数の同期エンドポイントを含む同期コミュニティ内での、データに対する変更を表す知識情報を含む命令（６２０）と、
前記第１の同期要求を送ることに応答して、第２の同期エンドポイントが認識しており、前記第１の同期エンドポイントが認識していない同期コミュニティ内のデータに対する変更を表す知識情報を含む前記第２の同期エンドポイントから変更情報を前記第１の同期エンドポイントで受け取る命令（５１４）と、
受け取った前記変更情報に少なくとも部分的に基づいて、前記第１の同期エンドポイントと前記第２の同期エンドポイントとの間のデータ同期競合の存在を判定する命令（６２６、６２８）と、
同期コミュニティ内の第３の同期エンドポイントに伝播させるために、判定した前記データ同期競合の知識を格納する命令（９０４、９０６）と、
前記第１の同期エンドポイントで、前記複数の同期エンドポイントのうちの同期エンドポイントから第２の同期要求を受け取る命令（図８の３）と、
前記第２の同期要求を受け取ることに応答して、前記第１の同期エンドポイントと前記第２の同期エンドポイントとの間の前記データ同期競合を示すデータを含む変更情報を、前記第１の同期エンドポイントから前記複数の同期エンドポイントのうちの前記同期エンドポイントに送る命令（図８の４）と
を含むことを特徴とする有形コンピューター可読媒体。
【請求項８】
前記複数の同期エンドポイントのうちの前記同期エンドポイントは、前記第２の同期エンドポイント以外の同期エンドポイントであることを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項９】
前記第２の同期要求は、前記複数の同期エンドポイントのうちの前記同期エンドポイントが前記同期コミュニティ内で認識している同期データに対する変更を表す知識情報を含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１０】
前記第１の同期エンドポイントと前記第２の同期エンドポイントとの間の前記データ同期競合を示すデータを含む前記変更情報は、少なくとも２つの変更ＩＤおよび対応する変更データを含む競合する変更情報を含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１１】
前記第１の同期要求内に含まれる前記知識情報は知識ベクトルを含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１２】
前記変更情報は、少なくとも１つの変更ＩＤおよび対応する変更データを含み、
前記第１の同期エンドポイントと第２の同期エンドポイントとの間のデータ同期競合の存在を判定する前記命令は、
前記第２の同期エンドポイントからの前記変更情報がデータ項目に対する第１の変更を含み、前記第１の同期エンドポイントが前記データ項目に対する第２の変更を認識しており、前記データ項目に対する変更に関連し、前記第２の同期エンドポイントからの前記変更情報に含まれるｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅが、前記第２の同期エンドポイントが前記データ項目に対する前記第２の変更を認識していなかったことを示し、かつ前記データ項目に対する前記第２の変更に関連する前記第１の同期エンドポイントのｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅが、前記第１の同期エンドポイントが前記データ項目に対する変更を認識していなかったことを示すとき、前記第１の同期エンドポイントと前記第２の同期エンドポイントとの間にデータ同期競合が存在すると判定する命令と
をさらに含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１３】
前記変更情報は、少なくとも１つの変更ＩＤおよび対応する変更データを含み、
前記少なくとも１つの変更ＩＤのそれぞれは、バージョンと、前記同期コミュニティ内の特定の同期エンドポイントに関連付けられる同期エンドポイントＩＤとを含む
ことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１４】
前記第２の同期エンドポイントからの前記変更情報に対応する情報を含む例外リストを格納する命令をさらに含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１５】
前記第２の同期エンドポイントから受け取った前記変更情報に基づいて、前記第１の同期エンドポイントの前記知識情報を更新する命令をさらに含むことを特徴とする請求項７に記載の有形コンピューター可読媒体。
【請求項１６】
複数の同期エンドポイントを含む同期コミュニティ内の第１の同期エンドポイントを実装する処理装置であって、
少なくとも１つのプロセッサー（１２０）と、
通信インターフェース（１１０）と、
前記少なくとも１つのプロセッサー（１３０）に対する命令を含むメモリーであって、前記少なくとも１つのプロセッサーとメモリーが、前記通信インターフェースを介して接続されるメモリーと
を備え、前記少なくとも１つのプロセッサーに対する前記命令は、
前記第１の同期エンドポイントが認識している前記同期コミュニティ内のデータに対する変更を表す前記第１の同期エンドポイントの知識情報を維持する命令（５０８、５１２、６０８、６１２、７０８、８０６、８１４、１００６、１０１４、１２０６、１２１４）と、
前記第１の同期エンドポイントの前記知識情報を、第２の同期エンドポイントの受け取った知識情報とを比較する命令（６２２）と、
前記第１の同期エンドポイントの前記知識情報と、前記第２の同期エンドポイントの受け取った知識情報との比較に基づいて、同期データ競合の存在を判定する命令（６２２、６２６、６２８）と、
第３の同期エンドポイントに伝播させるために、判定した同期データ競合の知識を格納する命令（６３８）と
を含むことを特徴とする処理装置。
【請求項１７】
前記第１の同期エンドポイントの前記知識情報は第１知識ベクトルを含み、前記第２の同期エンドポイントの前記知識情報は第２知識ベクトルを含むことを特徴とする請求項１６に記載の処理装置。
【請求項１８】
前記第１の同期エンドポイントの前記知識情報および前記第２の同期エンドポイントの前記知識情報は、それぞれの同期エンドポイントが認識している前記同期コミュニティのデータ変更情報と、前記同期データ変更情報の各項目に対応するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅ情報とを含むことを特徴とする請求項１６に記載の処理装置。
【請求項１９】
前記第１の同期エンドポイントの前記知識情報および前記第２の同期エンドポイントの前記知識情報は、それぞれの同期エンドポイントが認識している前記同期コミュニティのデータ変更情報と、前記同期データ変更情報の各項目に対応するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅ情報とを含み、前記メモリーは、
前記第２の同期エンドポイントからの前記同期データ変更情報がデータ項目に対する第１の変更を含み、前記第１の同期エンドポイントが前記データ項目に対する第２の変更を認識しており、前記データ項目に対する前記第１の変更に関連し、前記第２の同期エンドポイントからの前記同期データ変更情報に含まれるｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅが、前記第２の同期エンドポイントが前記データ項目に対する前記第２の変更を認識していなかったことを示し、かつ前記データ項目に対する前記第２の変更に関連する前記第１の同期エンドポイントのｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅが、前記第１の同期エンドポイントが前記データ項目に対する変更を認識していなかったことを示すとき、データ同期競合が前記第１の同期エンドポイントと前記第２の同期エンドポイントとの間に存在すると判定する命令をさらに含むことを特徴とする請求項１６に記載の処理装置。
【請求項２０】
前記メモリーは、
前記第１の同期エンドポイントの前記知識情報と前記第３の同期エンドポイントの知識情報との比較に基づいて変更情報を列挙する命令であって、前記変更情報は、同期データ競合を示す情報を含む命令をさらに含むことを特徴とする請求項１６に記載の処理装置。
【発明の詳細な説明】
【背景技術】
【０００１】
同期エンドポイントを処理装置上に実装することができ、同期エンドポイントは、限定はしないが、コンピューター、ノートブックコンピューター、携帯情報端末、携帯電話または他のワイヤレス装置、１つまたは複数のファイルを有する記憶装置上のフォルダ、メモリー内のメモリー位置のグループ、サーバーコンピューター、オンラインサービス、データを電子的に格納することができ、またはデータを電子的に取り出すことのできる任意の他の装置またはコンテナー、あるいはそれらの任意の組合せを含むことのできる様々なデータストアまたは装置を表すことができる。同期コミュニティは、互いに同期することのできる同期エンドポイントのグループでよい。２方向マルチマスタ同期トポロジでは、１対の同期エンドポイントの第１の同期エンドポイントがその１対の同期エンドポイントの第２の同期エンドポイントとの同期を要求することができ、第２の同期エンドポイントが第１の同期エンドポイントとの同期を要求することのできる方式で、同期エンドポイントの対が互いにデータを同期することができる。２方向マルチマスタ同期トポロジでは、異なるエンドポイントで特定のデータ項目に対して同時またはほぼ同時の修正が行われることがあり、それによって、エンドポイントが同期を試みるときに競合が生じることがある。
【０００２】
既存の同期応用例は、競合を解決するいくつかの技法を使用する。ある同期応用例は、同期時にユーザーインターフェース（ＵＩ）を表示し、ユーザーに競合解決を選択することを要求することによって競合を解決する。この手法の欠点は、ユーザーがＵＩに応答することができるように、または同期プロセスが完了しない危険に応じることができるように、ユーザーが同期プロセス中に立ち会うことを強いられることである。別の同期応用例は、競合解決を延期し、ユーザーが後でＵＩを介して競合解決を解決することを可能にする。ある状況では、競合を解決する機構を有さないエンドポイント上で競合が検出されることがあるので、延期された競合解決が決して解決されないことがある。別の同期応用例は、自動競合解決ポリシーを実装することができる。例えば、同期応用例は、書込み時間が後である改訂を競合の勝者として常に選ぶことによって競合を解決することができる。そのような同期応用例では、破棄された改訂を取消し操作のために保存することができ、取消し操作は、実行されたときに、破棄された改訂を競合の勝者と宣言させることができ、それに応じてデータを改訂することができる。しかし、そのような同期応用例の欠点は、取消し操作が、項目に対して実行された１つまたは複数のアクションをアンワインドするのではなく、項目に対する新しい改訂として作用することである。
【発明の概要】
【課題を解決するための手段】
【０００３】
この「発明の概要」は、以下の「発明を実施するための形態」でさらに説明される、単純化した形の１組の概念を紹介するために与えられるものである。この「発明の概要」は、特許請求される主題の主要な特徴または不可欠な特徴を識別することを意図するものではなく、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００４】
本開示の主題に適合する実施形態では、同期エンドポイントが一貫した最新データを含むことができるように、同期コミュニティ内の同期エンドポイントが互いに同期することができる。しかし、２つの同期エンドポイントが、それぞれの各同期エンドポイントが他方の各同期エンドポイントによって行われている変更を認識していないときに、同一のデータ項目を変更することが可能である。そのような変更が同一のデータ項目に対して行われるとき、同期データ競合が存在する可能性がある。同期データ競合の解決を遅延することができ、他の同期エンドポイントと同期するときに、同期データ競合の知識を他の同期エンドポイントに伝播させることができる。
【０００５】
上記で列挙した利点および特徴、ならびにその他の利点および特徴を得る方法を説明するために、より具体的な説明が以下で説明され、添付の図面に示される本発明の特定の実施形態を参照することによって表現される。これらの図面は典型的な実施形態だけを示しており、したがって本発明の範囲を限定するものとみなすべきでないことを理解した上で、添付の図面を使用することにより、実装をさらに具体的かつ詳細に説明し、明らかにする。
【図面の簡単な説明】
【０００６】
【図１】同期エンドポイントを実装することのできる処理装置の機能ブロック図である。
【図２】同期エンドポイントの同期コミュニティに関する例示的動作環境を示す図である。
【図３】同期コミュニティの例示的トポロジを示す図である。
【図４】本開示の主題に適合する実施形態における、同期エンドポイントで変更をどのように管理することができるかについての例示的時間図である。
【図５】本開示の主題に適合する実施形態における、知識を使用して、同期中に変更を列挙することについての例示的時間図である。
【図６Ａ】同期データ競合を検出する例示的実施形態を示す図である。
【図６Ｂ】同期データ競合を検出する例示的実施形態を示す図である。
【図６Ｃ】同期データ競合を検出する例示的実施形態を示す図である。
【図７】同期操作中の変更ＩＤおよび知識追跡の例示的実施形態を示す図である。
【図８】本開示の主題に適合する例示的実施形態における、例外リストを使用する同期を示す図である。
【図９】図８に示されるような同期に続いて知識を更新する例示的方法を示す図である。
【図１０】本開示の主題に適合する例示的実施形態における、例外リストを使用する同期を示す図である。
【図１１】図１０に示されるような同期に続いて知識を更新する例示的方法を示す図である。
【図１２】本開示の主題に適合する例示的実施形態における、例外リストを使用する同期を示す図である。
【図１３】図１２に示されるような同期に続いて知識を更新する例示的方法を示す図である。
【発明を実施するための形態】
【０００７】
実施形態が以下で詳細に論じられる。特定の実装が論じられるが、これは例示のために行われるにすぎないことを理解されたい。本開示の主題の精神および範囲から逸脱することなく、他の構成要素および構成を使用できることを当業者は理解されよう。
【０００８】
例示的動作環境
本開示の主題に適合する実施形態は、同期コミュニティの同期エンドポイント間のデータの同期に関する。同期エンドポイントを処理装置上に実装することができ、同期エンドポイントは、限定はしないが、コンピューター、ノートブックコンピューター、携帯情報端末、携帯電話または他のワイヤレス装置、１つまたは複数のファイルを有する記憶装置上のフォルダ、メモリー内のメモリー位置のグループ、サーバーコンピューター、オンラインサービス、データを電子的に格納することができ、またはデータを電子的に取り出すことのできる任意の他の装置またはコンテナー、あるいはそれらの任意の組合せを含むことのできる様々なデータストアまたは装置を表すことができる。ある実施形態では、同期エンドポイントを実装する装置は、複数の同期エンドポイントを含むことができる。２つの同期エンドポイント間で行われる同期操作の一例は、限定はしないが、２つの処理装置、１の記憶装置上または２つの異なる記憶装置上の２つのフォルダ、１のメモリー内または２つの異なるメモリー内の２つのグループのメモリー位置の同期を含むことができる。
【０００９】
図１は、同期コミュニティ内の１つまたは複数の同期エンドポイントを実装するのに使用することのできる処理装置１００の機能ブロック図である。処理装置１００は、バス１１０、プロセッサー１２０、メモリー１３０、読取り専用メモリー（ＲＯＭ）１４０、記憶装置１５０、入力装置１６０、出力装置１７０、および通信インターフェース１８０を含むことができる。バス１１０は、処理装置１００の構成要素間の通信を可能にする通信インターフェースでよい。
【００１０】
プロセッサー１２０は、命令を解釈および実行する少なくとも１つの従来型プロセッサーまたはマイクロプロセッサーを含むことができる。メモリー１３０は、情報と、プロセッサー１２０で実行される命令とを格納するランダムアクセスメモリー（ＲＡＭ）または別のタイプの動的記憶装置でよい。メモリー１３０はまた、プロセッサー１２０による命令の実行中に使用される一時的変数または他の中間情報をも格納することができる。ＲＯＭ１４０は、プロセッサー１２０のための静的情報および命令を格納する従来型ＲＯＭ装置または別のタイプの静的記憶装置を含むことができる。記憶装置１５０は、データおよび／または命令を格納する任意のタイプの有形媒体を含むことができる。ある実施形態では、記憶装置１５０は１つまたは複数のフォルダを含むことができ、そのそれぞれは１つまたは複数のファイルを含むことができる。
【００１１】
入力装置１６０は、例えばキーボード、マウス、または他の入力装置などの、ユーザーが処理装置１００に情報を入力することを可能にする１つまたは複数の従来型機構を含むことができる。出力装置１７０は、ディスプレイ、プリンター、または他の出力装置を含む、ユーザーに情報を出力する１つまたは複数の従来型機構を含むことができる。通信インターフェース１８０は、処理装置１００が他の装置またはネットワークと通信することを可能にする任意のトランシーバー的機構を含むことができる。
【００１２】
処理装置１００は、プロセッサー１２０が例えばメモリー１３０または他の有形媒体などの機械可読媒体に含まれる命令のシーケンスを実行することに応答して、そのような機能を実行することができる。そのような命令を記憶装置１５０などの別の有形機械可読媒体からメモリー１３０に読み込むことができ、または通信インターフェース１８０を介して別々の装置からメモリー１３０に読み込むことができる。
【００１３】
図２は、同期エンドポイントの同期コミュニティのための例示的動作環境２００を示す。例示的動作環境２００は、ネットワーク２０２、同期エンドポイント２０４、および同期エンドポイント２０６を含むことができる。
【００１４】
ネットワーク２０２は、ワイヤードネットワークまたはワイヤレスネットワークでよく、ワイヤード手段またはワイヤレス手段を介して接続されたいくつかの装置を含むことができる。ネットワーク２０２は、唯一のネットワークまたはいくつかの異なるネットワークを含むことができ、いくつかの異なるネットワークの一部は、異なるタイプのネットワークでよい。
【００１５】
この例示的実施形態では、例えば処理装置１００などの２つの異なる処理装置上に同期エンドポイント２０４および同期エンドポイント２０６を実装することができる。例示的実施形態２００では、同期エンドポイント２０４と同期エンドポイント２０６は、ネットワーク２０２を介して互いに通信することができる。
【００１６】
動作環境２００は例示的なものである。本開示の主題に適合する他の実施形態を他の動作環境で実装することができる。例えば同期エンドポイントを単一の装置に含めることのできる動作環境などのある動作環境では、例えばネットワーク２０２が含まれないことがある。
【００１７】
同期
本開示の主題に適合する実施形態では、同期エンドポイントは互いに同期することができ、それによって同期エンドポイントは、一貫した最新データを含むことができる。一方の同期エンドポイントが特定のデータ項目に対する変更を含み、他方の同期エンドポイントがその特定のデータ項目に対する別の変更を含み、どちらの同期エンドポイントも、それぞれの他方の同期エンドポイントによってその特定のデータ項目に対して行われた変更を認識していないとき、同期エンドポイントの同期中に競合が生じることがある。例えば、同期エンドポイント１がアドレス帳データベース内のＪｏｈｎ  Ｓｍｉｔｈの電話番号を更新することがあり、同期エンドポイント２がアドレス帳データベース内のＪｏｈｎ  Ｓｍｉｔｈの電話番号を削除することがある。同期エンドポイントの両方が、それぞれの他方の同期エンドポイントによって行われた変更の知識なしに前述の変更を行った場合、同期エンドポイント１と同期エンドポイント２が互いに同期するときに競合が生じることがある。本開示の主題に適合する様々な実施形態では、同期エンドポイントが競合を解決することができないとき、競合解決を遅延することができ、同期操作中に競合の知識を他の同期エンドポイントに伝播させることができる。
【００１８】
同期は通常、同期コミュニティを形成する参加同期エンドポイントのグループ間で行われる。同期コミュニティの全体的なメンバーシップは、所与の時間に所与の同期エンドポイントにとって既知ではないことがある。さらに、同期コミュニティのトポロジは、任意の所与の時間に任意の所与の同期エンドポイントにとって既知ではないことがある。一実施形態では、同期コミュニティ内の各同期エンドポイントは、例えばグローバル一意識別子（ＧＵＩＤ）、または同期コミュニティ内で一意となることができる他のＩＤなどのＩＤを有することができる。
【００１９】
各同期エンドポイントは、同期エンドポイント間の効率的で改良された同期を容易にする「知識」を維持することができる。一実施形態では、知識は、所与の同期エンドポイントにとって既知である変更を表現するメタデータでよい。知識を変更ＩＤのベクトルとして表現することができ、その場合、各変更ＩＤは、同期エンドポイントＩＤおよび最大バージョンを表すことができる（同期エンドポイントＩＤ、最大バージョン）。特定の知識ベクトル中のいくつかの変更ＩＤは、同期エンドポイントが同期コミュニティに追加され、または同期コミュニティから除去されるときに変化することがある。知識ベクトルを異なるように表現することもできるが、特定の同期エンドポイントが認識している変更を簡潔に表現することが有利である。特定の知識は、同期コミュニティ内の各同期エンドポイントについての変更ＩＤを具体的に含むことがあり、または含まないことがある。他の同期エンドポイントが何を既に認識しているかを同期エンドポイントが追跡することを軽減することができる。この情報は事実上、同期エンドポイントの知識によって表現されるからである。
【００２０】
同期コミュニティ内の同期エンドポイントは、それ自身の知識を、共に同期する同期エンドポイントに提供することによって同期することができる。同期する同期エンドポイント間で送られる可能性のある知識を表すデータの量を削減するために、前述のように知識を知識ベクトルとして表現することができる。したがって、同期エンドポイント間で送られる知識は、あらゆる変更ＩＤを含む必要はなく、いくつかの変更ＩＤを表すベクトルの形でよい。例えば、同期エンドポイントが同期エンドポイントＡによって行われた第１の変更から第１０変更までのすべての変更と、Ｂと符号が付けられた同期エンドポイントによって行われた第１の変更から第５変更までのすべての変更を認識している場合、同期エンドポイントは、同期エンドポイントが変更ＩＤ  Ａ１からＡ１０に対応するすべての変更と、変更ＩＤ  Ｂ１からＢ５に対応するすべての変更とを認識していることを示す知識ベクトルＡ１０Ｂ５を送ることができる。知識を知識ベクトルとして表現することができるが、別の実施形態は、知識の別の表現も企図する。例えば、ある実施形態は、（１）知識の表現に変更を加えることができ、（２）変更が知識の表現内に含まれるかどうかをチェックすることができ、（３）知識の２つの表現を共にマージすることのできる知識の任意の表現を使用して、知識を表現することができる。
【００２１】
図３は、図示されるトポロジを有する同期コミュニティ３００の一例を示す。同期コミュニティ３００は、いくつかの同期エンドポイントを含み、本開示の主題に適合する実施形態を実装する環境の一例である。同期コミュニティ３００内の同期エンドポイントを、例えば処理装置１００などの装置上に実装することができ、同期コミュニティ３００内の同期エンドポイントは、限定はしないが、コンピューター、ノートブックコンピューター、携帯情報端末、携帯電話または他のワイヤレス装置、１つまたは複数のファイルを有する記憶装置上のフォルダ、メモリー内のメモリー位置のグループ、サーバーコンピューター、オンラインサービス、データを電子的に格納することができ、またはデータを電子的に取り出すことのできる任意の他の装置またはコンテナー、あるいはそれらの任意の組合せを含むことのできる様々なデータストアまたは装置を表すことができる。
【００２２】
図３は、例示的同期コミュニティ３００を示す。図３では、通信リンク３０６を介して同期エンドポイントＡ  ３０２を同期エンドポイントＢ  ３０４に電子的に結合することができる。同期エンドポイントＡ  ３０２は、通信リンク３０８を介して同期エンドポイントＣ  ３１０に接続することができる。同期エンドポイントＣ  ３１０は、通信リンク３１２を介して同期エンドポイントＢ  ３０４に接続することができる。同期エンドポイントＣ  ３１０は、通信リンク３１６を介して同期エンドポイントＤ  ３１４にさらに接続することができる。同期コミュニティ３００では、同期エンドポイントのすべてが通信リンクを介して直接的に接続されるわけではないが、任意の同期エンドポイントの変更を、同期コミュニティ３００内の他の任意の同期エンドポイントと同期することができる。
【００２３】
例えば、同期エンドポイントＡ  ３０２を同期エンドポイントＤ  ３１４と同期するために、同期エンドポイントＡ  ３０２とＣ  ３０２とを通信リンク３０８を介して同期することができる。したがって、同期エンドポイントＣ  ３１０は、同期エンドポイントＡ  ３０２に対して行われた変更を含むことができる。次いで、同期エンドポイントＣ  ３１０とＤ  ３１４とを通信リンク３１６を介して同期することができ、したがって同期エンドポイントＤ  ３１４は、同期エンドポイントＡ  ３０２からの変更を含むことができる。このようにして、同期エンドポイントＡ  ３０２は、どんな種類の直接的リンクも用いずに同期エンドポイントＤ  １１４と同期することができる。実際、同期エンドポイントＡ３０２およびＤ３１４は、同期コミュニティ３００内の互いの存在さえも認識しないことがある。図示される通信リンクは、ワイヤードリンクおよび／またはワイヤレスリンクでよい。
【００２４】
次に図４を参照すると、本開示の主題に適合する一実施形態は、同期エンドポイントで変更をどのように管理することができるかを示す。図４は、同期エンドポイントＡ  ４００の時間的進行を示す。同期エンドポイントＡ  ４００は、この場合はＫAと符号が付けられた知識４０２と、この場合はΔAと符号が付けられた変更４０４とを含むことができる。変更４０４の各変更は、項目の現データ内容でよい。変更は、項目自体は変更されなかった場合であっても、同期エンドポイントに追加された新しい項目、項目の削除などでよい。変更４０４のそれぞれをバージョンと関連付けることができ、一実施形態では、バージョンは変更ＩＤでよい。（１）の時点で、同期エンドポイントＡ  ４００は定常状態にある。（２）の時点で、ユーザーは、Ｘと符号が付けられた変更を同期エンドポイントＡ  ４００に入力する。図４は、変更Ｘが変更４０４のメンバとして追加されていることを示す。（３）の時点で、変更ＩＤ  ＣｈａｎｇｅＩＤ（Ｘ）を含むように知識４０２を更新することができ、変更ＩＤ  ＣｈａｎｇｅＩＤ（Ｘ）は、変更Ｘに関連付けられ、変更４０４に対する変更Ｘの追加を識別することができる。この実施形態は、同期エンドポイントに対する変更を特定の変更ＩＤと関連付けることのできる１つの方式を示す。知識４０４は知識ベクトルでよく、同期エンドポイントＡ  ４００が認識している変更を表すことができる。一実施形態では、項目またはオブジェクトについてのバージョンまたは変更ＩＤをデータベース内に維持することができ、バージョンを使用して、同期する必要のあるものを識別することができる。あるいは、変更のログを維持することもできる。
【００２５】
図５は、知識を使用して、同期中に変更を列挙することを示す。図５は、２つの同期エンドポイント、すなわち同期エンドポイントＡ  ５０２および同期エンドポイントＢ  ５０４を示す。同期エンドポイントＡ  ５０２は、この例ではΔAと符号が付けられた１組の変更５０６を含むことができる。同期エンドポイントＡ  ５０２は、この例ではＫAと符号が付けられた知識５０８をさらに含むことができる。知識５０８は、上述のような変更ＩＤのリストを含むことができる。同様に、同期エンドポイントＢ  ５０４は１組の変更５１０を含むことができ、変更のそれぞれを、変更ＩＤであるバージョンと関連付けることができる。同期を開始するために、（１）の時点で、同期エンドポイントＡ  ５０２は、知識５０８を含む同期要求を同期エンドポイントＢ  ５０４に送ることができる。同期エンドポイントＢ  ５０４は、知識５０８を１組の変更５１０の各変更に関連するバージョンと比較することにより、同期エンドポイントＢの変更５１０のうちのどれを同期エンドポイントＡ  ５０２が既にその変更５０６内に有しているかと、同期エンドポイントＡ  ５０２が認識している変更とに関して判定を行うことができる。あるいは、同期エンドポイントＢ  ５０４は、知識５０８を各項目のバージョンと比較することもできる。したがって、同期エンドポイントＢ  ５０４は、変更５１４で示されるように、（２）の時点で、同期エンドポイントＡ  ５０２の知識５０８に含まれないバージョンに関連する同期エンドポイントＢの変更５１０の部分のみを列挙して、同期エンドポイントＡ  ５０２に送ることができる。例えば、同期エンドポイントＡ  ５０２の知識ベクトルがＡ３Ｂ１２であり、かつ同期エンドポイントＢ  ５０４が変更ＩＤ  Ｂ１３およびＢ１４であるバージョンに関連する最新の変更を有する場合、同期エンドポイントＡ  ５０２に送られる変更は、変更ＩＤ  Ｂ１３およびＢ１４に関連する変更を含むことになる。一実施形態では、Ｂ１３およびＢ１４が同じ項目に対して行われた場合、Ｂ１４のみを送ることができる。
【００２６】
さらに、同期エンドポイントＢ  ５０４は、同期エンドポイントＢの知識５１２も同期エンドポイントＡ  ５０２に送ることができる。同期エンドポイントＢ  ５０４は、同期エンドポイントＡ  ５０２内にまだない、同期エンドポイントＢ  ５０４で利用可能な変更５１０のすべてを同期エンドポイントＡ  ５０２に送ったので、そのとき同期エンドポイントＡ  ５０２は、こうした変更５１０が同期エンドポイントＢ  ５０４によって送られた変更で置換されたのでない限り、元々は同期エンドポイントＢ  ５０４内にあった変更５１０に加えて、元々は同期エンドポイントＡ  ５０２内にあった変更５０６のすべてを有する。同期エンドポイントＡ  ５０２は、同期エンドポイントＢ  ５０４が認識した変更のすべてについての情報をさらに有する。したがって、同期エンドポイントＡ５０２は、その知識５０８を更新して、変更５１０の追加を反映することができる。このことは単に、図５の（３）の時点で示されるように、同期エンドポイントＡの知識５０８を同期エンドポイントＢの知識５１２に追加し、その値を同期エンドポイントＡの知識５０８と定義することによって行われる。
【００２７】
したがって、必要な変更のみを同期することができ、個々の同期エンドポイントが、特定の同期エンドポイント内にある変更と、認識している以前の変更とに関する情報を維持する必要があるだけである、効率的な同期を実施することができる。この例は、同期エンドポイントＢ  ５０４上の変更のすべての、同期エンドポイントＡ  ５０２に対する完全な同期を示すが、変更の各部分のみが同期されるケースも存在することができる。したがって、同期される変更に対応する変更ＩＤのみを、更新を受け取る同期エンドポイントの知識に追加することができる。
【００２８】
変更を列挙することに加えて、同期エンドポイントの知識も競合検出で使用することができる。次に図６Ａおよび６Ｂを参照すると、本発明の一実施形態が、競合検出をどのように実施することができるかを示す。図６Ａは、通信および同期のための通信リンク（ワイヤレスおよび／またはワイヤード）によって接続された２つの同期エンドポイントを示す。同期エンドポイントＡ  ６０２は、知識６０８および１組の変更６０６を含むことができる。図５の例と同じく、知識６０８は、変更６０６および以前の変更に関連する変更ＩＤの集合を含むことができる。同期エンドポイントＡ  ６０２は、この例では、同期エンドポイントＡ  ６０２で行われた項目に対する変更をさらに含むことができる。変更は図６ＡではＸと符号が付けられ、Ｘは変更６０６のメンバである。同様に、同期エンドポイントＢ  ６０４は、知識６１２と、変更６１０の集合と、変更６１０のメンバでありＹと符号が付けられた項目に対する変更とを含むことができる。
【００２９】
例示的には、図６Ｂの動作６２０で、同期エンドポイントＡ  ６０２は、Ｘと符号が付けられた変更Ｘを、同期エンドポイントＢ  ６０４に送ることができる。変更Ｘと２つの別の値を関連付け、変更Ｘと共に送ることができ、その２つの別の値とはすなわち、ＣｈａｎｇｅＩＤ（Ｘ）と符号が付けられた変更Ｘに関連する変更ＩＤと、変更Ｘが同期エンドポイントＡ  ６０２に対して行われた時刻に同期エンドポイントＡ  ６０２内に存在した知識であり、ＫA（Ｘ）と符号が付けられたｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅ値である（動作６２０）。あるいは、本開示の主題に適合するある実施形態では、ｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅは、変更が送られるときに同期エンドポイント内に存在した知識でもよい。同期エンドポイントＡ  ６０２の現知識６０８を同期エンドポイントＢ  ６０４に送ることもできる。次いで、同期エンドポイントＢ  ６０４は、変更Ｘによって変更された項目ＩXを、変更Ｙによって変更された項目ＩYと比較することができる（動作６２２）。変更Ｘと変更Ｙが異なる項目に対応する場合、競合はない（動作６２４）。
【００３０】
変更が同一の項目の異なるバージョンを参照する場合、さらなる解析が、競合の発生を判定することができる。次いで、同期エンドポイントＢ  ６０４は、変更Ｙが同期エンドポイントＢ  ６０４で行われたときに変更Ｘが同期エンドポイントＢ  ６０４にとって既知であったかどうかを確認するためにチェックすることができる（動作６２６）。変更Ｙは、それに関連する変更ＩＤ  ＣｈａｎｇｅＩＤ（Ｙ）およびｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅ値ＫB（Ｙ）を有することができる。ＣｈａｎｇｅＩＤ（Ｘ）が変更Ｙのｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅ  ＫB（Ｙ）のメンバである場合、競合はない。言い換えれば、同期エンドポイントＡ  ６０２で行われた変更Ｘの知識と共に同期エンドポイントＢ  ６０４で変更Ｙが行われた。したがって、そのとき変更Ｙは、同期エンドポイントＡ  ６０２およびＢ  ６０４についての最新かつ有効なデータを表す。図６Ｂに示される例では図示していないが、後続の時間に、変更Ｙが同期エンドポイントＡ  ６０２に送られ、変更ＸおよびＹに関連する項目が、図５に記載の方式で同期エンドポイントＡ  ６０２上で変更Ｙに更新される可能性が高い。
【００３１】
変更ＸおよびＹが同一の項目に対するものであり、ＣｈａｎｇｅＩＤ（Ｘ）がＫB（Ｙ）中に現れない場合、変更Ｘが行われたとき変更Ｙが同期エンドポイントＡ  ６０２で既知であったかどうかを確認するためにチェックが行われる（動作６２８）。このことは通常、ＣｈａｎｇｅＩＤ（Ｙ）として示される変更Ｙについての変更列挙（ｃｈａｎｇｅ  ｅｎｕｍｅｒａｔｉｏｎ）が、変更Ｘが行われたときの同期エンドポイントＡの知識６０８  ＫA（Ｘ）内に含まれるかどうかを確認するためにチェックすることによって行われる。ＣｈａｎｇｅＩＤ（Ｙ）がＫA（Ｘ）のメンバである場合、変更Ｘが変更Ｙのｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅであったのであり、競合はない（動作６２４）。そうでない場合、競合が存在すると判定される（動作６３０）。この例では、変更Ｘは、特定の項目についての最新かつ有効な変更である。したがって、同期エンドポイントＢ  ６０４は、図５に記載の方式で変更Ｘで更新される可能性が高い。
【００３２】
変更ＸおよびＹが同一の項目に対するものであり、ＣｈａｎｇｅＩＤ（Ｙ）がＫA（Ｘ）中に現れず、ＣｈａｎｇｅＩＤ（Ｘ）がＫB（Ｙ）中に現れない場合、真の競合が存在する。言い換えれば、変更Ｘおよび変更Ｙが互いに独立に行われた。この場合、競合が検出され、様々な競合解決規則を適用して、ＸまたはＹのどちらの変更が最新かつ有効な変更であるかを判定することができる。そのような規則は、タイムスタンプをチェックして、どちらの変更が最後に行われたかを判定すること、一定のタイプの同期エンドポイント（サーバー上に格納された同期エンドポイントなど）を常に優先して競合を解決すること、および／または任意の他の適切な競合解決を含むことができる。あるいは、競合解決の一形態では、競合する変更がマージされて新しい変更が形成されるように、競合する変更を伴う項目を更新することができる。
【００３３】
図６Ｃは、例えば競合が図６Ｂの動作６３０中に検出されるときの同期エンドポイントＢ  ６０４などの同期エンドポイントで行うことができる例示的処理を示す流れ図である。競合が存在すると判定した後、同期エンドポイントＢ  ６０４は、判定した競合を解決するための競合解決ポリシーまたは規則が存在するかどうかを判定することができる（動作６３２）。競合解決ポリシーまたは規則が存在すると判定された場合、同期エンドポイントＢ  ６０４は、競合解決ポリシーまたは規則に従って競合を解決することができ、同期エンドポイントＢ  ６０４は、図５を参照しながら説明したように、変更を適用することができる。
【００３４】
動作６３２で、判定された競合を解決するための競合解決ポリシーまたは規則が存在しないと同期エンドポイントＢ  ６０４が判定した場合、同期エンドポイントＢ  ６０４は、競合する変更ＸおよびＹを同期エンドポイントＢ  ６０４の知識の一部として保存することができ（動作６３８）。後続の時点で、同期エンドポイントＢ  ６０４が別の同期エンドポイントと同期するとき、同期エンドポイントＢ  ６０４は、競合する変更の知識を含む同期エンドポイントＢ  ６０４の知識を他の同期エンドポイントに送ることができる。図６Ｃを参照しながら説明したように、他の同期エンドポイントは、競合が存在すると判定することができ、他の同期エンドポイントが競合を解決するための競合解決ポリシーまたは規則を有する場合、競合を解決することができ、または他の同期エンドポイントは、競合する変更をその知識の一部として保存することができる。
【００３５】
次に図７を参照すると、変更ＩＤおよび知識追跡の例示的一実施形態が示されている。図７は同期エンドポイント７０２を示す。同期エンドポイント７０２は、変更７０６および知識７０８の集合を含むことができる。変更の集合７０６は、この例ではＸ、Ｙ、およびＺとして示されるいくつかの個々の変更７１０を含むことができる。図７に示される例では、同期エンドポイント７０２の知識の現状態が知識ベクトル７１２で示され、この場合は知識ベクトル７１２はＡ４である。知識ベクトル７１２は、同期エンドポイント７０２のすべての知識７０８を表すことができる。
【００３６】
図７にはいくつかの変更ＩＤ  ７１４も表されている。図７の例では、同期エンドポイント７０２は、変更７１０に対応する３つの変更後項目７１６  ＩX、ＩY、およびＩZを含むことができる。変更ＩＤを使用して、変更ＩＤ  Ａ１を有する項目ＩXが、最初に同期エンドポイント７０２で作成されたことを認識することができる。変更ＩＤ  Ａ２を有する項目ＩYが、変更ＩXに続く時間に同期エンドポイント７０２で作成された。変更ＩＤ  Ａ４を有する項目ＩZが、項目ＩYが変更されたときに続く時間に同期エンドポイント７０２で作成された。Ａ３は、図７には直接的には示されていないが、一例として、Ａ４と符号が付けられた項目ＩZに対する変更によって置換される変更などの以前の変更に対応することができる。
【００３７】
同期エンドポイント７０２の変更ＩＤ  Ａ４と、やはりＡ４と符号が付けられる知識ベクトル７１２との間には違いがある。この例では、知識ベクトルＡ４は、知識７０８がＡ４、Ａ３、Ａ２、およびＡ１と符号が付けられた変更ＩＤに対応する変更を含むことを示す。言い換えれば、知識ベクトルは、知識ベクトルに等しい変更ＩＤ  ７１８で表される変更、ならびに知識ベクトルで表される変更ＩＤ  ７１８の前に行われた同一の同期エンドポイントＩＤを有するすべての変更を含むことができる。一方、この例では、Ａ４と符号が付けられた変更ＩＤ  ７１８は、項目ＩZに対して行われた変更Ｚのみを表す。
【００３８】
変更が特定の同期エンドポイントに追加されるとき、変更ＩＤを例外として例外リストに追加することができる。例外リストに含まれる同期エンドポイントからの連続する変更のバージョンが受諾され、同期エンドポイントの知識ベクトルと組み合わせたときにバージョン数のギャップがない場合に、例外リストを知識ベクトルにマージすることができる。このことを図８を参照しながらさらに説明する。
【００３９】
次に図８を参照すると、いくつかの同期エンドポイントを含むトポロジ内で同期する２つの同期エンドポイントの一例が示されている。同期エンドポイントＡ  ８０２は１組の変更８０４、知識８０６、および知識８０６の簡略表現である知識ベクトル８０８を含む。例示的には、同期エンドポイントＡ  ８０２の知識ベクトル８０８  Ａ５Ｂ３Ｃ１Ｄ８は、同期エンドポイントＡの知識８０６が同期エンドポイントＡ  ８０２の第５変更までに行われた変更と、同期エンドポイントＢ  ８１０の第３の変更までの知識と、同期エンドポイントＣの第１の変更までの知識と、同期エンドポイントＤの第８変更までの知識とを含むことを示す。図８の例では、同期エンドポイントＢ  ８１０は、１組の変更８１２と、同期エンドポイントＢの知識８１４の少なくとも一部の簡略表現である知識ベクトル８１６および例外リスト８１７を含む知識８１４とを含む。同期エンドポイントＢの知識ベクトル８１６  Ａ３Ｂ３Ｃ３Ｄ８は、同期エンドポイントＢ  ８０２が同期エンドポイントＡ  ８１０によって行われた第３の変更までの知識、同期エンドポイントＢ  ８１０によって行われた第３の変更までの知識、同期エンドポイントＣによって行われた第３の変更までの知識、および同期エンドポイントＤによって行われた第８変更までの知識を含む知識を有することを示す。上述の知識ベクトルは、同期エンドポイントによって行われた第１の変更からある後続の変更までの変更列挙の連続的表現を含むことができる。例外リスト８１７は、同期エンドポイントＣによって行われた第４変更、同期エンドポイントＣによって行われた第５変更、および同期エンドポイントＤによって行われた第９変更を含む。この例では、同期エンドポイントＣからの第４変更Ｃ４、および同期エンドポイントＤからの第９変更Ｄ９は、同一のデータ項目に対する競合する変更を含む。すなわち、変更Ｃ４およびＤ９は、受諾されていない変更であり、同期エンドポイントＣと同期エンドポイントＤの間の遅延された競合解決の結果である。変更Ｃ４およびＤ９は受諾されていないので、変更Ｃ４およびＤ９を同期エンドポイントＢ  ８１０の知識ベクトル８１６にマージすることはできない。さらに、変更Ｃ４を知識ベクトル８１６にマージすることができないので、同期エンドポイントＣからの、例えばＣ５などの後の変更も、知識ベクトル８１６にマージすることはできない。
【００４０】
同期エンドポイントＡ  ８０２の同期エンドポイントＢ  ８１０との同期の時間図が、図８に示されている。（１）の時点で、同期エンドポイントＡ  ８０２は、同期エンドポイントＡの知識ベクトル８０８で表すことのできる同期エンドポイントＡの知識８０６と共に、同期要求８１８を同期エンドポイントＢ  ８１０に送る。この例ではそうではないが、同期エンドポイントＡ  ８０２が例外リストを含む場合、例外リストが同期エンドポイントＡの知識８０６と共に含められる。さらに、ある実施形態では、同期エンドポイントＡ  ８０２は、別々の同期要求を送ることができない。そのような実施形態では、同期エンドポイントＡ  ８０２は、同期要求としても機能することのできる知識８０６を送ることができる。
【００４１】
（２）の時点で、同期エンドポイントＢ  ８１０は、同期エンドポイントＡの知識８０６を同期エンドポイントＢの変更に関連する変更ＩＤと比較することによって同期エンドポイントＡの知識８０６を検査する。同期エンドポイントＢ  ８１０は、同期エンドポイントＡ  ８０２が変更ＩＤ  Ｃ２およびＣ３と符号を付けられた同期エンドポイントＣによって行われた変更を認識していないことを発見することができる。さらに、同期エンドポイントＢ  ８１０は、同期エンドポイントＡ  ８０２が同期エンドポイントＢの例外リスト８１７からの変更Ｃ４、Ｃ５、およびＤ９を認識していないことを発見することができる。したがって、同期エンドポイントＢ  ８１０は、こうした変更ＩＤで符号を付けられた変更が同期エンドポイントＢ  ８１０内の項目に適用可能な最新の変更と考えられる限り、こうした変更ＩＤに対応する同期エンドポイントＢの変更を送ることができる。変更ＩＤが以前の古い変更に対応する場合、そのＩＤに対応する変更は送られない。例えば、バージョンＣ３を有した項目が更新され、新しいバージョンが割り当てられた場合、Ｃ３に関連する変更は同期エンドポイントＢ  ８１０内にもはや存在せず、同期エンドポイントＡ  ８０２に送られない。その後で、または同時に、（３）の時点で示されるように、同期エンドポイントＢ  ８１０は、知識ベクトル８１６および例外リスト８１７として表現することのできる同期エンドポイントＢの知識８１４を同期エンドポイントＡ  ８０２に送ることができる。（３）の時点で同期エンドポイントＢ  ８１０によって知識８１４を送ることは、ある実施形態では同期要求を送ることと同等とみなすことができる。
【００４２】
（４）の時点で、同期エンドポイントＡ  ８０２は、同期エンドポイントＢ  ８１０によって送られた知識８１４を、同期エンドポイントＡ  ８０２の変更に対応する変更ＩＤと比較することによって知識８１４を検査する。同期エンドポイントＡ  ８０２は、同期エンドポイントＢ  ８１０が変更ＩＤ  Ａ４およびＡ５によって表される変更のどちらも有さず、またはそうした変更についての知識のどちらも有さないことを発見する。したがって、同期エンドポイントＡ  ８０２は、そうした変更ＩＤに対応する最新の変更が同期エンドポイントＡの変更８０４内または例外リスト（この例では存在しない）内に存在する場合にそれを送る（変更ＩＤが古い変更を表し、それによって変更が送られないときを除く）。変更が受諾され、変更が１つまたは複数の未解決の競合に関連する変更ではない場合、その後で、同期エンドポイントＡ  ８０２は、すべての変更が送られ、それによって同期エンドポイントＡ  ８０２および同期エンドポイントＢ  ８１０は今やその知識ベクトル８０８および８１６を最新の変更を含むようにそれぞれ更新することができることを示すメッセージを同期エンドポイントＢ  ８１０に送ることができる。図８の（５）の時点で示されるように、同期エンドポイントＡの知識は、同期エンドポイントＢの知識ベクトルと等しく、同期エンドポイントＡ  ８０２によって行われた第５変更列挙までのすべての変更、同期エンドポイントＢによって行われた第３の変更列挙までのすべての変更、同期エンドポイントＣによって行われた第３の変更列挙までのすべての変更、同期エンドポイントＤによって行われた第８変更列挙までのすべての変更を含む知識ベクトルＡ５Ｂ３Ｃ３Ｄ８、ならびに例外リストに格納された変更Ｃ４、Ｃ５、およびＤ９を含む。この例では、変更Ｃ４およびＤ９は、同期エンドポイントＣとＤの間の競合に関する情報を含むことに留意されたい。
【００４３】
図９は、図８に示されるような同期に続いて知識を更新する方法を示す。具体的には、図９は、同期エンドポイントＡ  ８０２上に格納された例外リスト９０２と、同期エンドポイントＢ  ８１０内に格納された例外リスト９０３とを使用して知識ベクトルを更新する方法を示す。同期エンドポイント間で変更が送られるとき、変更に関連する変更ＩＤと共に変更が送られる。変更が同期エンドポイントに追加されるとき、変更ＩＤを例外リスト９０２または９０３に例外として追加することができる。図９で同期エンドポイントＡ  ８０２についての知識を検査して、知識は、知識ベクトル８０８および例外リスト９０２を含み、例外リスト９０２は、同期エンドポイントＢ  ８１０から受信された例外Ｃ２、Ｃ３、Ｃ４、Ｃ５、およびＤ９を含む。この例では、変更Ｃ４およびＤ９は、同一のデータ項目に対する変更に関係し、変更Ｃ４および変更Ｄ９に関連するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅは、それぞれの変更が同一のデータ項目に対する競合する変更の知識なしに行われたことを示す。この例では、例外リスト９０２の変更Ｃ２およびＣ３は競合データを有さず、変更Ｃ２およびＣ３を同期エンドポイントＡ  ８０２のデータに適用することができる。したがって、次いで変更Ｃ２およびＣ３を例外リスト９０２から除去することができ、知識ベクトル８０８を更新して、更新後の知識９０４を提供することができ、更新後の知識９０４は、同期エンドポイントＡ  ８０２が同期エンドポイントＡ  ８０２からの第５変更までのすべての変更と、同期エンドポイントＢからの第３の変更までのすべての変更と、同期エンドポイントＣからの第３の変更までのすべての変更と、同期エンドポイントＤからの第８変更までのすべての変更とを適用したことを示す知識ベクトルを含むことができる。更新後の知識９０４は、変更Ｃ４、Ｃ５、およびＤ９を有する例外リストも含むことができる。この例では、変更Ｃ４およびＤ９は、競合する変更であり、Ｃ５は、適用することのできる同期エンドポイントＣからの変更である。
【００４４】
同期エンドポイントＢ  ８１０に関して、同期エンドポイントＡ  ８０２から受信された変更Ａ４およびＡ５を例外リスト９０３に追加することができる。変更Ｃ４、Ｃ５、およびＤ９が既に例外リストに含まれていることがあり、それらは、同期エンドポイントＡ  ８０２と同期する前に同期エンドポイントＢ  ８１０で既知の知識８１６の一部である。同期エンドポイントＡ  ８０２と同期した後、更新後知識９０６は、同期エンドポイントＡ  ８０２からの第５変更までと、同期エンドポイントＢ  ８１０からの第３の変更までと、同期エンドポイントＣからの第３の変更までと、同期エンドポイントＤからの第８変更までとが同期エンドポイントＢ  ８１０のデータに適用されていることを示す知識ベクトルＡ５Ｂ３Ｃ３Ｄ８を含むことができる。知識９０６は、変更Ｃ４、Ｃ５、およびＤ９を有する例外リストをさらに含むことができる。この例では、Ｃ４およびＤ９は、適用されていない競合する変更であり、Ｃ５は、同期エンドポイントＢ  ８１０のデータに適用することのできる、同期エンドポイントＣからの第５変更である。
【００４５】
図８および９に示される例では、別の同期エンドポイントからの競合の知識を伝播させることができ、同期エンドポイントＡ８０２およびＢ８１０は、競合の知識を維持することができ、後続の同期中にその知識をさらに伝播させることができる。同期エンドポイントが解決ポリシーまたは規則を含む場合、競合の知識を受け取る同期エンドポイントは競合を解決することができる。
【００４６】
図１０は、２つの同期エンドポイントの同期の別の例を示す。同期エンドポイントＡ  １００２は、１組の変更１００４、知識１００６、および知識１００６の簡略表現である知識ベクトル１００８を含む。同期エンドポイントＡ  １００２の知識ベクトル１００８  Ａ５Ｂ３Ｃ５Ｄ９は、同期エンドポイントＡの知識１００６が同期エンドポイントＡ  １００２で行われた第５変更までの変更と、同期エンドポイントＢ  １０１０の第３の変更までの知識と、同期エンドポイントＣの第５変更までの知識と、同期エンドポイントＤの第９変更までの知識とを含むことを示す。図１０の例では、同期エンドポイントＢ  １０１０は、１組の変更１０１２と、同期エンドポイントＢの知識１０１４の少なくとも一部の簡略表現である知識ベクトル１０１６および例外リスト１０１７を含む知識１０１４とを含む。同期エンドポイントＢの知識ベクトル１０１６  Ａ３Ｂ４Ｃ３Ｄ８は、同期エンドポイントＢが同期エンドポイントＡ  １００２によって行われた第３の変更までの知識と、同期エンドポイントＢ  １０１０によって行われた第４変更までの知識と、同期エンドポイントＣによって行われた第３の変更までの知識と、同期エンドポイントＤによって行われた第８変更までの知識とを含む知識を有することを示す。例外リスト１０１７は、同期エンドポイントＣによって行われた第４変更と、同期エンドポイントＣによって行われた第５変更と、同期エンドポイントＤによって行われた第９変更とを含む。この例では、同期エンドポイントＣからの第４変更Ｃ４と、同期エンドポイントＤからの第９変更Ｄ９とが、同一のデータ項目に対する競合する変更を含む。すなわち、変更Ｃ４およびＤ９は、受諾されておらず、同期エンドポイントＣと同期エンドポイントＤの間の競合解決の遅延の結果である変更である。変更Ｃ４およびＤ９が受諾されていないので、変更Ｃ４およびＤ９を同期エンドポイントＢ  １０１０の知識ベクトル１０１６にマージすることはできない。さらに、変更Ｃ４を知識ベクトル１０１６にマージすることができないので、同期エンドポイントＣからの、例えばＣ５などの後の変更も、知識ベクトル１０１６にマージすることはできない。
【００４７】
同期エンドポイントＡ  １００２の同期エンドポイントＢ  １０１０との同期の時間図が、図１０に示されている。（１）の時点で、同期エンドポイントＡ  １００２は、同期エンドポイントＡの知識ベクトル１００８で表すことのできる同期エンドポイントＡの知識１００６と共に、同期要求１０１８を同期エンドポイントＢ  １０１０に送ることができる。この例ではそうではないが、同期エンドポイントＡ  ８０２が例外リストを含む場合、例外リストが同期エンドポイントＡの知識１００６と共に含められる。前述のように、ある実施形態では、同期エンドポイントＡ  １００２は、別々の同期要求を送ることができない。そのような実施形態では、同期エンドポイントＡ  １００２は、同期要求としても機能することのできる知識１００６を送ることができる。
【００４８】
（２）の時点で、同期エンドポイントＢ  １０１０は、同期エンドポイントＡの知識１００６を同期エンドポイントＢ  １０１０の変更に関連する変更ＩＤと比較することによって同期エンドポイントＡの知識１００６を検査することができる。同期エンドポイントＢ  １０１０は、同期エンドポイントＡ  １００２が変更ＩＤ  Ｂ４と符号を付けられた同期エンドポイントＢによって行われた変更を認識していないことを発見することができる。したがって、同期エンドポイントＢ  １０１０は、変更ＩＤ  Ｂ４に対応する同期エンドポイントＢの変更が同期エンドポイントＢ  １０１０内の項目に適用可能な最新の変更と考えられる限り、その変更を送ることができる。変更ＩＤが以前の古い変更に対応する場合、ＩＤに対応する変更は送られない。その後で、または同時に、（３）の時点に示されるように、同期エンドポイントＢ  １０１０は、知識ベクトル１０１６および例外リスト１０１７として表現することのできる同期エンドポイントＢの知識１０１４を同期エンドポイントＡ  １００２に送ることができる。（３）の時点で同期エンドポイントＢ  １０１０によって知識１０１４を送ることは、ある実施形態では同期要求を送ることと同等とみなすことができる。
【００４９】
（４）の時点で、同期エンドポイントＡ  １００２は、同期エンドポイントＢ  １０１０によって送られた知識１０１４を、同期エンドポイントＡ  ８０２の変更に対応する変更ＩＤと比較することによって知識１０１４を検査することができる。同期エンドポイントＡ  ８０２は、同期エンドポイントＢ  ８１０が、変更ＩＤ  Ａ４およびＡ５によって表される変更、またはそうした変更についての知識のどちらも有さないことを発見することができる。したがって、同期エンドポイントＡ  １００２は、そうした変更ＩＤに対応する最新の変更が同期エンドポイントＡの変更１００４内または例外リスト（この例では存在しない）内に存在する場合にそれを送ることができる（変更ＩＤが古い変更を表し、それによって変更が送られないときを除く）。
【００５０】
この例では、変更ＩＤ  Ａ５によって表される変更は、変更ＩＤ  Ｃ４およびＤ９によって表される変更が行うのと同一のデータ項目を変更する。したがって、同期エンドポイントＢ  １０１０が変更ＩＤ  Ａ５によって表される変更に関する情報を受け取ったとき、同期エンドポイントＢ  １０１０は、変更Ａ５、Ｃ４、およびＤ９の間に潜在的な競合が存在すると判定することができる。しかし、この例では、変更ＩＤ  Ａ５に対応するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅは、変更ＩＤ  Ａ５によって表される変更が、変更ＩＤ  Ｃ４およびＤ９によって表される変更の知識と共に行われたことを示す。したがって、この例では、変更ＩＤ  Ａ５によって表される変更は、変更ＩＤ  Ｃ４およびＤ９によって表される競合に対する解決である。
【００５１】
変更が受諾され、変更が１つまたは複数の未解決の競合に関連する変更ではない場合、その後で、同期エンドポイントＡ  １００２は、すべての変更が送られ、それによって同期エンドポイントＡ  １００２および同期エンドポイントＢ  １０１０がその知識ベクトル１００８および１０１６を最新の変更を含むようにそれぞれ更新することができることを示すメッセージを同期エンドポイントＢ  １０１０に送ることができる。図１０の（５）の時点で示されるように、同期エンドポイントＡの知識は、知識ベクトルＡ５Ｂ４Ｃ５Ｄ９を含み、知識ベクトルＡ５Ｂ４Ｃ５Ｄ９は、同期エンドポイントＢの知識ベクトルと等しく、同期エンドポイントＡ  １００２によって行われた第５変更列挙までのすべての変更と、同期エンドポイントＢによって行われた第４変更列挙までのすべての変更と、同期エンドポイントＣによって行われた第５変更列挙までのすべての変更と、同期エンドポイントＤによって行われた第９変更列挙までのすべての変更とを含む。
【００５２】
図１１は、図１０に示されるような同期に続いて知識を更新する方法を示す。具体的には、図１１は、同期エンドポイントＡ  １００２上に格納された例外リスト１１０２と、同期エンドポイントＢ  １０１０上に格納された例外リスト１１０３とを使用して知識ベクトルを更新する方法を示す。同期エンドポイント間で変更が送られるとき、変更に関連する変更ＩＤと共に変更を送ることができる。変更が同期エンドポイントに追加されるとき、変更ＩＤを例外リスト１１０２に例外として追加することができる。図１１で同期エンドポイントＡ  １００２についての知識を検査して、知識は、知識ベクトル１００８および例外リスト１１０２を含み、例外リスト１１０２は、同期エンドポイントＢ  ８１０から受信された例外Ｂ４を含む。この例では、例外リスト１１０２の変更Ｂ４は、競合するデータを有さず、変更Ｂ４を同期エンドポイントＡ  １００２のデータに適用することができる。したがって、次いで変更Ｂ４を例外リスト１１０２から除去することができ、知識ベクトル１００８を更新して、更新後の知識１１０４を提供することができ、更新後の知識１１０４は、同期エンドポイントＡ  ８０２が同期エンドポイントＡ  ８０２からの第５変更までのすべての変更と、同期エンドポイントＢからの第４変更までのすべての変更と、同期エンドポイントＣからの第５変更までのすべての変更と、同期エンドポイントＤからの第９変更までのすべての変更とを適用したことを示す知識ベクトルを含むことができる。
【００５３】
同期エンドポイントＢ  ８１０に関して、同期エンドポイントＡ  １００２から受信された変更Ａ４およびＡ５を例外リスト１１０３に追加することができる。変更Ｃ４、Ｃ５、およびＤ９が既に例外リストに含まれていることがあり、それらは、同期エンドポイントＡ  １００２と同期する前に同期エンドポイントＢ  １０１０にとって既知の知識１０１６の一部でよい。同期エンドポイントＡ  １００２と同期した後、更新後知識１１０６は、同期エンドポイントＡ  ８０２からの第５変更までと、同期エンドポイントＢ  ８１０からの第４変更までと、同期エンドポイントＣからの第５変更までと、同期エンドポイントＤからの第９変更までとが同期エンドポイントＢ  ８１０のデータに適用されていることを示す知識ベクトルＡ５Ｂ４Ｃ５Ｄ９を含むことができる。したがって、この例では、同一のデータ項目に対する変更が未解決の競合の知識と共に行われたとき、その変更を受け取ることにより、変更ＩＤ  Ｃ４およびＤ９によって表される競合を解決することができる。
【００５４】
図１２は、２つの同期エンドポイントの同期のさらに別の例を示す。同期エンドポイントＡ  １２０２は、１組の変更１２０４、知識１２０６、および知識１２０６の簡略表現である知識ベクトル１２０８を含む。同期エンドポイントＡ  １２０２の知識ベクトル１２０８  Ａ５Ｂ３Ｃ３Ｄ８は、同期エンドポイントＡの知識１２０６が同期エンドポイントＡ  １２０２で行われた第５変更までの変更と、同期エンドポイントＢ  １０１０の第３の変更までの知識と、同期エンドポイントＣの第３の変更までの知識と、同期エンドポイントＤの第８変更までの知識とを含むことを示す。図１２の例では、同期エンドポイントＢ  １２１０は、１組の変更１２１２と、同期エンドポイントＢの知識１２１４の少なくとも一部の簡略表現である知識ベクトル１２１６および例外リスト１２１７を含む知識１２１４とを含む。同期エンドポイントＢの知識ベクトル１２１６  Ａ３Ｂ４Ｃ３Ｄ８は、同期エンドポイントＢが同期エンドポイントＡ  １２０２によって行われた第３の変更までの知識と、同期エンドポイントＢ  １２１０によって行われた第４変更までの知識と、同期エンドポイントＣによって行われた第３の変更までの知識と、同期エンドポイントＤによって行われた第８変更までの知識とを含む知識を有することを示す。例外リスト１２１７は、同期エンドポイントＣによって行われた第４変更と、同期エンドポイントＣによって行われた第５変更と、同期エンドポイントＤによって行われた第９変更とを含む。この例では、同期エンドポイントＣからの第４変更Ｃ４と、同期エンドポイントＤからの第９変更Ｄ９とが、同一のデータ項目に対する競合する変更を含む。すなわち、変更Ｃ４およびＤ９は、受諾されておらず、同期エンドポイントＣと同期エンドポイントＤの間の競合解決の遅延の結果である変更である。変更Ｃ４およびＤ９が受諾されていないので、変更Ｃ４およびＤ９を同期エンドポイントＢ  １２１０の知識ベクトル１２１６にマージすることはできない。さらに、変更Ｃ４を知識ベクトル１２１６にマージすることができないので、同期エンドポイントＣからの、例えばＣ５などの後の変更も、知識ベクトル１２１６にマージすることはできない。
【００５５】
同期エンドポイントＡ  １２０２の同期エンドポイントＢ  １２１０との同期の時間図が、図１２に示されている。（１）の時点で、同期エンドポイントＡ  １２０２は、同期エンドポイントＡの知識ベクトル１２０８で表すことのできる同期エンドポイントＡの知識１２０６と共に、同期要求１２１８を同期エンドポイントＢ  １２１０に送ることができる。この例ではそうではないが、同期エンドポイントＡ  １２０２が例外リストを含む場合、例外リストが同期エンドポイントＡの知識１２０６と共に含められる。前述のように、ある実施形態では、同期エンドポイントＡ  １２０２は、別々の同期要求を送ることができない。そのような実施形態では、同期エンドポイントＡ  １２０２は、同期要求としても機能することのできる知識１２０６を送ることができる。
【００５６】
（２）の時点で、同期エンドポイントＢ  １２１０は、同期エンドポイントＡの知識１２０６を同期エンドポイントＢ  １２１０の変更に関連する変更ＩＤと比較することによって同期エンドポイントＡの知識１２０６を検査することができる。同期エンドポイントＢ  １２１０は、同期エンドポイントＡ  １２０２が変更ＩＤ  Ｂ４、Ｃ４、Ｃ５、およびＤ９と符号を付けられた同期エンドポイントＢによって行われた変更を認識していないことを発見することができる。したがって、同期エンドポイントＢ  １２１０は、変更ＩＤ  Ｂ４、Ｃ４、Ｃ５、およびＤ９に対応する同期エンドポイントＢの変更が最新であると考えられる限り、その変更を送ることができる。変更ＩＤが以前の古い変更に対応する場合、その変更ＩＤに対応する変更は送られない。その後で、または同時に、（３）の時点で示されるように、同期エンドポイントＢ  １２１０は、知識ベクトル１２１６および例外リスト１２１７として表現することのできる同期エンドポイントＢの知識１２１４を同期エンドポイントＡ  １２０２に送ることができる。（３）の時点で同期エンドポイントＢ  １０１０によって知識１２１４を送ることは、ある実施形態では同期要求を送ることと同等とみなすことができる。
【００５７】
（４）の時点で、同期エンドポイントＡ  １２０２は、同期エンドポイントＢ  １０１０によって送られた知識１２１４を、同期エンドポイントＡ  １２０２の変更に対応する変更ＩＤと比較することによって知識１２１４を検査することができる。同期エンドポイントＡ  １２０２は、同期エンドポイントＢ  １２１０が変更ＩＤ  Ａ４およびＡ５によって表される変更のどちらの知識も有さないことを発見することができる。したがって、同期エンドポイントＡ  １２０２は、そうした変更ＩＤに対応する最新の変更が同期エンドポイントＡの変更１２０４内または例外リスト（この例では存在しない）内に存在する場合にそれらの最新の変更を送ることができる（変更ＩＤが古い変更を表し、それによって変更が送られないときを除く）。
【００５８】
この例では、変更ＩＤ  Ａ５によって表される変更は、変更ＩＤ  Ｃ４およびＤ９によって表される変更が行うのと同一のデータ項目を変更する。したがって、同期エンドポイントＢ  １２１０が変更ＩＤ  Ａ５によって表される変更に関する情報を受け取ったとき、同期エンドポイントＢ  １０１０は、変更Ａ５、Ｃ４、およびＤ９の間に潜在的な競合が存在すると判定することができる。この例では、変更ＩＤ  Ａ５に対応するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅは、変更ＩＤ  Ａ５によって表される変更が、変更ＩＤ  Ｃ４およびＤ９によって表される変更の知識なしに行われたことを示す。さらに、変更ＩＤ  Ｃ４およびＤ９に対応するｍａｄｅ−ｗｉｔｈ−ｋｎｏｗｌｅｄｇｅは、変更ＩＤ  Ｃ４およびＤ９によって表される変更が、変更ＩＤ  Ａ５によって表される変更の知識なしに行われたことを示す。したがって、この例では、変更ＩＤ  Ａ５によって表される変更は、変更ＩＤ  Ｃ４およびＤ９によって表される変更と同じデータ項目を含む追加の競合である。
【００５９】
変更が受諾され、変更が１つまたは複数の未解決の競合に関連する変更ではない場合、その後で、同期エンドポイントＡ  １２０２は、すべての変更が送られ、それによって同期エンドポイントＡ  １２０２および同期エンドポイントＢ  １２１０はその知識ベクトル１２０８および１２１６を最新の変更を含むようにそれぞれ更新することができることを示すメッセージを同期エンドポイントＢ  １２１０に送ることができる。図１２の（５）の時点で示されるように、同期エンドポイントＡの知識は、知識ベクトルＡ４Ｂ４Ｃ３Ｄ８を含み、知識ベクトルＡ４Ｂ４Ｃ３Ｄ８は、同期エンドポイントＢの知識ベクトルと等しく、同期エンドポイントＡ  １２０２によって行われた第４変更列挙までのすべての変更と、同期エンドポイントＢによって行われた第４変更列挙までのすべての変更と、同期エンドポイントＣによって行われた第３の変更列挙までのすべての変更と、同期エンドポイントＤによって行われた第８変更列挙までのすべての変更とを含む。さらに、同期エンドポイントＡ  １２０２および同期エンドポイントＢ  １２１０は、それぞれの知識内に例外リスト（Ａ５、Ｃ４、Ｃ５、Ｄ９）を含む。この例では、Ａ５、Ｃ４、およびＤ９は、同一のデータ項目に対する未解決の競合する変更を表す。同期エンドポイントＡ  １２０２によって以前に受諾された、変更ＩＤ  Ａ４に対応する変更を、判定された競合のために受諾しないことができ、同期エンドポイントＡの知識１４０６に含まれる例外リストに追加することができる。
【００６０】
図１３は、図１２に示されるような同期に続いて知識を更新する方法を示す。具体的には、図１３は、同期エンドポイントＡ  １２０２上に格納された例外リスト１３０２と、同期エンドポイントＢ  １２１０上に格納された例外リスト１３０３とを使用して知識ベクトルを更新する方法を示す。同期エンドポイント間で変更が送られるとき、変更に関連する変更ＩＤと共に変更を送ることができる。変更が同期エンドポイントＡ  １２０２などの同期エンドポイントに追加されるとき、変更ＩＤを例外リスト１３０２に例外として追加することができる。図１３で同期エンドポイントＡ  １２０２についての知識を検査して、知識は、知識ベクトル１２０８および例外リスト１３０２を含み、例外リスト１３０２は、同期エンドポイントＢ  １２１０から受信された例外Ｂ４、Ｃ４、Ｃ５、およびＤ９を含むことができる。例外リスト１３０２の変更ＩＤ  Ｂ４によって表される変更は、この例では、競合する変更を有さず、同期エンドポイントＡ  １２０２のデータに適用することができる。しかし、変更ＩＤ  Ｃ４およびＤ９に関連する変更は、競合するデータを有し、その変更をデータ同期エンドポイントＡ  １２０２に適用することができない。したがって、次いで変更ＩＤ  Ｂ４を例外リスト１３０２から除去することができ、知識ベクトル１２０８を更新して、更新後の知識１３０４を提供することができ、更新後の知識１３０４は、同期エンドポイントＡ  １２０２が同期エンドポイントＡ  １２０２からの第４変更までの変更と、同期エンドポイントＢからの第４変更までのすべての変更と、同期エンドポイントＣからの第３の変更までのすべての変更と、同期エンドポイントＤからの第８変更までのすべての変更とを適用したことを示す知識ベクトルを含むことができる。知識１３０４はまた、例外Ａ５、Ｃ４、Ｃ５、およびＤ９をも含むことができ、変更ＩＤ  Ａ５、Ｃ４、およびＤ９によって表される変更が、同一のデータ項目に対する競合する変更を有する。この例では、変更ＩＤ  Ａ５に関連する変更が競合の一部であるので、変更を同期エンドポイントＡ  １２０２で受諾しないことができ、変更を表す変更ＩＤ  Ａ５を、知識１３０４に含まれる例外リストに追加することができる。
【００６１】
同期エンドポイントＢ  １２１０に関して、同期エンドポイントＡ  １２０２から受け取った変更Ａ４およびＡ５を、例外リスト１３０３に追加することができる。変更Ｃ４、Ｃ５、およびＤ９が既に例外リストに含まれていることがあり、それらは、同期エンドポイントＡ  １２０２と同期する前に同期エンドポイントＢ  １２１０にとって既知の知識１２１６の一部でよい。同期エンドポイントＡ  １２０２と同期した後、更新後知識１３０６は、同期エンドポイントＡ  １２０２からの第４変更までと、同期エンドポイントＢ  １２１０からの第４変更までと、同期エンドポイントＣからの第３の変更までと、同期エンドポイントＤからの第８変更までとが同期エンドポイントＢ  １２１０のデータに適用されていることを示す知識ベクトルＡ４Ｂ４Ｃ３Ｄ８を含むことができる。更新後知識１３０６は、変更ＩＤ  Ａ５、Ｃ４、Ｃ５、およびＤ９に対応する例外をさらに含むことができ、変更ＩＤ  Ａ５、Ｃ４、およびＤ９によって表される変更が、同一のデータ項目に対する競合する変更である。したがって、この例では、同一のデータ項目に対する複数の競合する変更を示す情報を、他の同期エンドポイントに伝播させることができる。
【００６２】
結論
構造的特徴および／または方法動作に特有の術語で主題を説明したが、添付の特許請求の範囲での主題は必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実装する例示的形態として開示される。
【００６３】
上記の説明は特定の詳細を含むことがあるが、それを何らかの形で特許請求の範囲を限定するものとして解釈すべきではない。記載の実施形態の他の構成は、本開示の範囲の一部である。さらに、本開示の主題に適合する実装は、記載のものよりも多くの動作または少ない動作を有することができ、あるいは示されるものとは異なる順序で動作を実装することができる。したがって、与えられたどんな特定の例でもなく、添付の特許請求の範囲およびその法的均等物のみが本発明を定義する。
【図１】
2010514062.tif 000003
【図２】
2010514062.tif 000004
【図３】
2010514062.tif 000005
【図４】
2010514062.tif 000006
【図５】
2010514062.tif 000007
【図６Ａ】
2010514062.tif 000008
【図６Ｂ】
2010514062.tif 000009
【図６Ｃ】
2010514062.tif 000010
【図７】
2010514062.tif 000011
【図８】
2010514062.tif 000012
【図９】
2010514062.tif 000013
【図１０】
2010514062.tif 000014
【図１１】
2010514062.tif 000015
【図１２】
2010514062.tif 000016
【図１３】
2010514062.tif 000017
【国際調査報告】
2010514062.tif 000018
2010514062.tif 000019