(57)【要約】  本開示は、マルチマスター同期環境におけるネットワーク・ノード間で行う同期に関し、同期させるオブジェクト（１つまたは複数）の起動および／または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、および／または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点がデータを同期することができるという利点がある。一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての有効期限情報を表す知識ベクトル上に追加の次元（１つまたは複数）を置くことができる。同期プロセスの間この有効期限情報を根拠として、同期アプリケーションまたはプロセスによるオブジェクトに対する動作をその有効期限の間だけ許可する。【選択図】      図１
2011511362.tif 000002
【特許請求の範囲】
【請求項１】
マルチマスター同期環境において1つ又は複数のネットワークを通じて通信状態に結合されている複数のノードの内、第１ノードと第２ノードとの間において１組のオブジェクトを同期する方法であって、
前記第１ノードによって、前記１組のオブジェクトの内少なくとも１つのオブジェクトを、限定有効期限を有するように定義し（３００）、前記少なくとも１つのオブジェクトの前記限定有効期限を示す有効期限メタデータを含むように前記第１ノード上において表される前記１組のオブジェクトに関する前記第１ノードの同期知識メタデータを更新するステップであって、前記同期知識メタデータの表現がデータ・タイプには独立している、ステップと、
前記第１ノードによって、前記第２ノードと同期する（３３０）ステップであって、該同期が、前記第１ノードによって前記第２ノードに、前記第１ノードの前記更新した同期知識メタデータを送信することを含み、前記第１ノード上で表される前記１組のオブジェクトのバージョンを表す、前記１組のオブジェクトのオブジェクトに対する、対応するバージョン・メタデータと、前記オブジェクトに対するあらゆる対応する有効期限メタデータとを送信することを含む、ステップと、
を備えている、方法。
【請求項２】
請求項１記載の方法において、前記定義するステップは、前記少なくとも１つのオブジェクトに対して失効回数を定めることを含み、前記少なくとも１つのオブジェクトは、既定イベントが前記失効回数だけ発生した後に失効となり、前記有効期限メタデータは前記所定回数を含む、方法。
【請求項３】
請求項１記載の方法において、前記定義するステップ（３００）は、前記少なくとも１つのオブジェクトに対して起動回数を定めることを含み、前記少なくとも１つのオブジェクトは、既定のイベントが前記起動回数だけ発生するまで、同期アプリケーションによる前記少なくとも１つのオブジェクトに対して動作する目的で、前記１組のオブジェクトを加入させず、前記有効期限メタデータは前記起動回数を含む、方法。
【請求項４】
請求項１記載の方法であって、更に、
前記第１ノードによって、前記同期知識メタデータを分析し（３２０）、前記少なくとも１つのオブジェクトの失効を示す、対応の有効期限メタデータを有する少なくとも１つのオブジェクトを決定するステップと、
前記第１ノードによって、前記少なくとも１つのオブジェクトを削除し（３４０）、前記少なくとも１つのオブジェクトのあらゆる知識を除去するために、前記同期知識メタデータを更新するステップと、
を備えている、方法。
【請求項５】
請求項１記載の方法であって、更に、
前記第１ノードによって、前記同期知識メタデータを分析し（３２０）、前記少なくとも１つのオブジェクトの起動を示す、対応の有効期限メタデータを有する少なくとも１つのオブジェクトを決定するステップと、
前記少なくとも１つのオブジェクトが、前記１組のオブジェクトの一部として起動されることを反映するために、前記同期知識メタデータを更新する（３５０）ステップと、
を備えている、方法。
【請求項６】
請求項５記載の方法において、前記更新する（３５０）ステップは、前記少なくとも１つのオブジェクトの起動を表す前記有効期限メタデータを、前記同期知識メタデータから削除することを含む、方法。
【請求項７】
マルチマスター同期環境において1つ又は複数のネットワークを通じて通信状態に結合されている複数のノードの内、第２ノードと第１ノードとの間において１組のオブジェクトを同期する方法であって、
前記第１ノードによって前記第２ノードから、前記第２ノード上で表されている前記１組のオブジェクトに関する外部同期知識を受信する（３１０）ステップであって、前記同期知識が、前記１組のオブジェクトについてのデータ範囲と、前記第２ノード上で表されている前記１組のオブジェクトのオブジェクト群についての対応するバージョンと、前記１組のオブジェクトの前記オブジェクト群の内少なくとも１つについての対応する失効情報とを含み、前記同期知識の表現がデータ・タイプには独立している、ステップと、
前記第１ノード上で表されている前記１組のオブジェクトに関する前記第１ノードのローカル同期知識を、前記第２ノードの外部同期知識と比較する（３２０）ステップと、
前記オブジェクト群の内少なくとも１つのオブジェクトについての前記失効情報が、前記オブジェクトの失効を示すか否か判断する（１２１０）ステップと、
を備えている、方法。
【請求項８】
請求項７記載の方法であって、更に、
前記オブジェクトについての前記失効情報が失効を示す場合、前記データ範囲内で前記第１ノード上で表されている前記１組のオブジェクトから前記オブジェクトを除去するために、前記ローカル同期知識を更新する（１２３０）ステップを備えている、方法。
【請求項９】
請求項８記載の方法において、前記オブジェクトを除去するために前記ローカル同期知識を更新する（１２３０）ステップは、更に、前記オブジェクトを前記第１ノードから削除することを含む、方法。
【請求項１０】
請求項８記載の方法において、前記オブジェクトを除去するために前記ローカル同期知識を更新する（１２３０）ステップは、更に、前記オブジェクトに関するあらゆる同期メタデータを、前記ローカル同期知識から削除することを含む、方法。
【請求項１１】
請求項７記載の方法であって、更に、前記第２ノード上で表されている前記１組のオブジェクトの前記外部知識に対する変更と、前記第２ノード上で表されている前記１組のオブジェクトに対する対応する変更とを、前記比較するステップに基づいて決定する（３２０）ステップと、
前記外部知識に対する変更と、前記１組のオブジェクトに対する対応する変更とを前記第２ノードに送信する（３３０）ステップと、
を備えている、方法。
【請求項１２】
請求項７記載の方法において、前記判断する（１２１０）ステップは、前記第１ノードによって、前記オブジェクトについての前記失効情報によって表される回数の関数が満たされているか否か判断することを含む、方法。
【請求項１３】
請求項７記載の方法において、前記判断する（１２１０）ステップは、前記第１ノードによって、前記オブジェクトに対する既定の動作がある回数実行されたか否か判断することを含む、方法。
【請求項１４】
請求項７記載の方法において、前記判断する（１２１０）ステップは、前記第１ノードによって、前記オブジェクトの開始時刻に対して、ある回数の既定の時間期間が経過したか否か判断することを含む、方法。
【請求項１５】
請求項７記載の方法において、前記判断する（１２１０）ステップは、前記第１ノードによって、前記オブジェクトに対して外部の既定イベントがある回数実行されたか否か判断することを含む、方法。
【請求項１６】
マルチマスター同期環境において1つ又は複数のネットワークを通じて接続可能な複数のノード内にあるノードであって、当該ノードと前記複数のノードの内別のノードとの間において１組のオブジェクトを同期させ、該ノードが、
前記複数のノードの内当該ノードと前記別のノードとの間において前記１組のオブジェクトを同期させる同期コンポーネント（１６２０）を備えており、該同期コンポーネントが、
データ・タイプには独立して、前記別のノードと当該ノードとの間における知識交換のためのメタデータ構造を定義する同期プロトコルによって前記別のノードとの同期を開始し、前記同期プロトコルに基づいて、前記別のノードに、前記１組のオブジェクトと同期する要求を送信し、応答した前記別のノードから前記１組のオブジェクトの外部知識を受信する同期通信コンポーネント（１６２２）であって、前記外部知識が、前記別のノード上で表されている前記１組のオブジェクトに対応する別ノード・オブジェクト・バージョン変更情報と、前記別のノード上で表された前記１組のオブジェクトの内少なくとも１つのオブジェクトに対応し、前記少なくとも１つのオブジェクトが前記マルチマスター同期環境において同期の目的で起動するときを示す別ノード・オブジェクト起動情報とを含む、同期通信コンポーネントと、
前記１組のオブジェクトの前記外部知識と、対応する別ノード・オブジェクト・バージョン変更情報と、対応する別ノード・オブジェクト起動情報とを、前記１組のオブジェクトの前記ローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報と比較することによって、当該ノード上で表されている前記１組のオブジェクトのローカル知識と、対応するノード・オブジェクト・バージョン変更情報とを更新して、前記１組のローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報の更新によって、どのような変更を反映させるべきか決定する同期分析コンポーネント（１６２８）と、
を備えている、ノード。
【請求項１７】
請求項１６記載のノードにおいて、対応するノード・オブジェクト起動情報を有する前記更新したローカル知識によって表される前記１組のオブジェクトの内オブジェクト毎に、前記同期分析コンポーネント１６２８は、前記ノード・オブジェクト起動情報に指定されている回数の関数が、当該オブジェクトに対して満たされたか否か判断する、ノード。
【請求項１８】
請求項１７記載のノードにおいて、前記関数が当該ノードに対して満たされない場合、前記同期分析コンポーネント１６２８は、前記１組のオブジェクトに関する前記マルチマスター同期環境のプロセスが前記オブジェクトにアクセスするのを妨げる、ノード。
【請求項１９】
請求項１６記載のノードにおいて、前記同期分析コンポーネント１６２８は、前記１組のオブジェクトの前記外部知識と、対応する別オブジェクト・バージョン変更情報と、対応する別オブジェクト起動情報とを、前記１組のオブジェクトの前記ローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報とを用いて分析し、前記別のノードが何を知らないか判断し、それについて当該別のノードにどのような変更を送るべきか判断する、ノード。
【請求項２０】
請求項１６記載のノードにおいて、前記同期プロトコルは、当該ノード７００と前記別のノード７１０との間で同期されている実際のデータの大要(schema)を全く規定しない、ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  主題の開示は、マルチマスター同期環境のための知識ベース同期フレームワークにおける同期オブジェクト（１つまたは複数）の起動(initiation)および／または終了(expiration)に関する。
【背景技術】
【０００２】
[0002]  モバイルコンピューティングおよび通信デバイスの普及により、これに対応して、ユーザーが望むときにはいつでも情報を配信および受信できることの要望が生まれた。単純に言うと、ユーザーは、どこでも、いつでも、そしてデバイスの能力がどうであっても、種々のデバイスから情報およびアプリケーションに対して、どこででもアクセスできることを望む。加えて、ユーザーはそのような情報にその場でアクセスおよび更新できることを望み、更にデータができるだけ正しく最新であることの保証を望む。
【０００３】
[0003]  データの複製をデバイスおよびオブジェクトに互いに共有させようとする種々の分散型データ・システムがある。例えば、音楽共有システムは、ＰＣ、セル・フォン、ゲーミング・コンソール、およびＭＰ３プレーヤー間で音楽を同期することができる。電子メール・データも、ワーク・サーバー、クライアントＰＣ、および携帯用電子メール・デバイス間で同期することができる。しかしながら、今日、このようなデバイスが互いに１組の共通情報を同期する場合に限って言えば、同期はデバイス間における静的設定にしたがって行われる。しかしながら、これらのデバイスが頻繁にまたは間欠的に切断される場合、即ち、これらが疎に結合されており、互いの通信から切断される可能性がある場合、例えば、セル・フォンがトンネルの中に入ったとき、または同期すべき多数のデバイスが動き回っているときには、これらのデバイスが互いに再度接続するとき、またはこれらがネットワークに加入する際には、他方の各デバイスにどのような変化が必要となるのか判断するために、トポロジーに依存しない方法を有することが望ましくなる。
【０００４】
[0004]  図１に示すように、今日、電子メール・サーバーが電子メール・クライアントと同期するときというように、マスター・ノード１００がクライアント・ノード１１０と排他的に(dedicated manner)同期する場合には種々の例がある。２つのデバイス間の同期が排他的であるために、２つのデバイス間で同期する必要がある情報１０２を、マスター・ノード１００が追跡することができる。また、このような情報１０２は、任意にクライアント・ノード１１０が追跡することもできる。しかしながら、マスター・ノード１００とクライアント・ノード１１０との間の接続がときどき断絶するとき、または多数の同期デバイスが急激に増大または減少する可能性があるとき、各デバイスがこれらのデバイス全てを跨いで必要とする共通情報から必要な情報を追跡することは、難しい問題となる。
【０００５】
[0005]  現在の解決策は、多くの場合、その同期セマンティクス(synchronization semantics)は、あらゆるノードではなく、特定のノード（例えば、電子メール・サーバー）のクロックまたは論理透かしのみに基づいている。これらのシステムは、１つの接続ノードまたはマスターの場合にはうまく作用することができる。しかしながら、ノードが接続するトポロジー即ちパターンが予期不能に変化する可能性がある場合、これらには問題が生ずる。
【０００６】
[0006]  他のシステムでは、特定の種類のデータ・オブジェクトに対して固有の(proprietary)同期モデルを構築し、前述の問題に対処するために、デバイスを跨るデータ・フォーマットに特定的な、膨大な量のプリミティブ・メタデータを追跡する。例えば、特定のワープロ文書フォーマットのオブジェクトを同期する際、文書およびその基礎的プリミティブを表し、共通な１組のワープロ文書にしたがって同期することを望む他のデバイスにその情報を効率的に表示するには、多量のオーバーヘッドおよび複雑さが混入する。何故なら、これらは時間と共に変化するからである。このようなシステムを構築するには費用がかかりしかも複雑であること、そしてこれらのシステムが基本とするカスタム・データ・フォーマットのために拡張可能でないことに加えて、このようなシステムは、大量のメタデータを発生し、分析し、追跡しなければならないため、本来的にスケーリングができない。
【０００７】
[0007]  加えて、このような解決策は、１つの特定ドメイン、例えば、ワープロ文書にしか適用できない。全てのタイプのオブジェクト、例えば、ピクチャー、ビデオ、電子メール、文書、データベース・ストア等の同期を考慮する場合、マルチマスター環境において全てのデバイスに跨ってこのようなオブジェクトの発展を追跡するために、各オブジェクト・タイプに基づいてカスタム同期解決策を実現することは、今日では実行不可能である。したがって、このような解決策は同期セマンティクスをデータ・セマンティクスにリンクすることを解決できない。
【０００８】
[0008]  つまり、あるトポロジーのコンピューターが互いに接続する方法を変更するとき、またはコンピューターの数が増大するにつれて、ノードに独立した同期の知識が必要になる。例えば、メディア・プレーヤでは、多数のコンピューターおよび多数のウェブサイト間で同期することが望ましい場合もあり得る。殆どの場合、殆どのアプリケーションは、数箇所の周知の終点（ホームＰＣおよびメディア・プレーヤ）間でしかデータを同期することができない。しかしながら、時と共にデバイス共同体がメディア・プレーヤ・アプリケーションのユーザーにまで発展すると、デバイスが利用する音楽ライブラリに対するデータ同期柔軟性の要望が増大することにより、一層ロバストなシステムの要望が生ずる。
【０００９】
[0009]  この要望は、コンピューティングオブジェクトの大半がある意味では短命である、即ち、限られた有効期限でしか使用されないことを考慮すると、更に一層複雑になる。したがって、複雑なマルチマスター・ネットワーク・トポロジーのデバイスにおける知識交換の際に、いつオブジェクトを生じさせそして消滅させればよいか表すことができれば、無数の同期状況には望ましいであろう。多様な状況において同期を可能にすることに加えて、マルチマスター同期環境におけるオブジェクトの有効期限についての情報を表しそして組み合わせ、更にオブジェクトの有効期限を制御することができれば、オブジェクトに関連が出てきたときにこれらを起動し、もはや関連がなくなったときにオブジェクトを除去することによって、全てのノードに跨って一層インテリジェントかつ効率的なオブジェクトの表現が可能になるであろう。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
[0010]  これに関して、従来のシステムは、電子メール・ストアのような、具体的に特定できるオブジェクト集合に対して動作するカスタム・プロセスの一部として、「削除」動作を行うだけに過ぎなかった。例えば、保持方針(retention policy)の一部として、電子メール・プログラムのようなアプリケーションは、デフォルトで６カ月よりも古い電子メールは全て、保存のフラグが立てられている電子メール・オブジェクトを除いて削除するカスタム・コードを具体的に実装することができる。しかしながら、このようなカスタム・コードは、アプリケーションによって管理されるドメインにおける全てのオブジェクトに跨る静的なワークフローおよび方針の一部として動作するに過ぎず、非常に柔軟ではない。その結果、オブジェクトを削除する方法を変更するためには、アプリケーションのワークフローを変更する必要がある。
【００１１】
[0011]  つまり、いつオブジェクトをデバイスまたはデバイスのアプリケーションの知識から除去すべきか指定する方法が求められている。同様に、いつオブジェクトをデバイスまたはデバイスのアプリケーションの知識に組み込むべきか指定することができれば望ましいであろう。言い換えると、オブジェクト自体を記述する同期メタデータにオブジェクトの起動および分解の一般的な観念を組み込み、どのデバイスがオブジェクトの知識を取得するかには関係なく、起動および分解の観念を解釈できるようにすれば望ましいであろう。つまり、同期モデル全体の一部としてオブジェクトをインスタンス化／起動および分解し、オブジェクトの起動および分解をオブジェクト毎に、そしてどのノードがオブジェクトを格納しているかには関係なく、マルチマスター同期体験の一部として、適用できるようにすることができれば望ましいであろう。
【００１２】
[0012]  以上に述べた今日の同期モデルの欠点は、単に従来システムの問題の一部の全体像を呈示することを意図するのであって、それだけで全てであると言うつもりはない。従来のシステムに伴うその他の問題や、本明細書に記載する種々の非限定的な実施形態の対応する効果も、以下の説明を検討することにより、更に明白となるであろう。
【課題を解決するための手段】
【００１３】
[0013]  ここで、更に詳細な説明および添付図面に続く非限定的な実施形態例の種々の態様の基本的または全体的理解を可能にするのに役立てるために、簡略化した摘要を提示する。この摘要は、しかしながら、広範なまたは余すところのない全体像であることを意図するのではない。逆に、この摘要の唯一の目的は、以下に続く種々の実施形態の更に詳細な説明に対する序文として、簡略化した形態で非限定的実施形態例の一部に関する概念の一部を紹介することである。
【００１４】
[0014]  本明細書において記載する種々の実施形態は、マルチマスター同期環境における複数のネットワーク・ノード間で行う同期に関し、同期させるオブジェクト（１つまたは複数）の起動および／または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、および／または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点(endpoints)がデータを同期させることができるという利点がある。一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての増分有効期限情報(incremental lifetime information)を表す知識ベクトル上に追加の次元（１つまたは複数）を置くことができる。同期プロセスの間この増分有効期限情報を根拠として、同期アプリケーションまたはプロセスによるオブジェクトに対する動作をその有効期限の間だけ許可する。
【００１５】
[0015]  これらおよびその他の実施形態について、以下で更に詳細に説明する。
【図面の簡単な説明】
【００１６】
[0016]  添付図面を参照しながら、種々の非限定的な実施形態について更に説明する。図面において、
【図１】図１は、２つの確定した終点間における同期に備えた排他的同期システムを示す。
【図２】図２は、同期させるオブジェクトについての有効期限情報を含む同期メタデータを組み込むマルチマスター同期のインフラストラクチャの上位ブロック図を示す。
【図３】図３は、ネットワークから接続および切断するノードの存在下において、有効期限同期メタデータに基づいて同期する非限定的プロセス例を示す流れ図である。
【図４】図４は、有効期限同期メタデータに基づいて同期を行う非限定的プロセス例を示す別の流れ図である。
【図５】図５は、疎に接続されたノードのネットワークの内４つのノード間における、非限定的な知識交換例を示す。
【図６】図６は、デバイスの一部が互いに切断されていくときにおける、疎に接続されたノードのネットワークの内４つのノード間における、非限定的な知識交換例を示す。
【図７】図７は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
【図８】図８は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
【図９】図９は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
【図１０】図１０は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換プロセスを示す、非限定的な流れ図の例である。
【図１１】図１１は、知識に基づいて変化を要求および伝達するフレームワークを示す総合的アーキテクチャーである。
【図１２】図１２は、それぞれ、オブジェクト同期の起動および失効を示す全体的な流れ図である。
【図１３】図１３は、それぞれ、オブジェクト同期の起動および失効を示す全体的な流れ図である。
【図１４】図１４は、知識に基づく同期フレームワークにおける同期変化過程(life cycle)にしたがうオブジェクトについての状態遷移を示す。
【図１５】図１５は、本明細書において記載する種々の実施形態による、起動前から起動、そして終了までのオブジェクトの進展を示す流れ図である。
【図１６】図１６は、１組の共通ＡＰＩを通じて他のノードと知識交換を行うデバイスの非限定的な実施態様例のブロック図である。
【図１７】図１７は、本明細書において記載する種々の実施形態を実現することができる、非限定的なネットワーク状環境例を表すブロック図である。
【図１８】図１８は、本明細書において記載する種々の実施形態の1つ又は複数の態様を実現することができる非限定的なコンピューティングシステムまたは動作環境例を表すブロック図である。
【発明を実施するための形態】
【００１７】
全体像
[0032]  背景において論じたように、とりわけ、従来のシステムは、オブジェクトの削除を、全てのデータに跨る1つ又は複数の削除方針を実施する外部ワークフローの一部として実行するに過ぎない。その結果、柔軟性は、予め異なるオブジェクトのために組み込まれている範囲でしか存在せず、オブジェクトのクラス数、および異なる方針が増えるにつれて、このような削除プロセスは過度に複雑になることがわかる。つまり、オブジェクトの起動およびオブジェクトの除去の観念を、同期自体の言語に組み込んで、「オブジェクトをインスタンス化すべきとき」および「オブジェクトを削除すべきとき」を同期知識の一部として定義方法が求められている。同期知識は、オブジェクトについての同期メタデータを効率的に表し、マルチマスター同期環境における同期に用いることができる。
【００１８】
[0033]  したがって、種々の非限定的実施形態では、同期メタデータの効率的表現が、デバイス間においてデータのマルチマスター同期のために提供される。このデータは、オブジェクトを起動してその有効期限を開始するとき、および／またはオブジェクトを削除してその有効期限を終了させるときを記述する。アプリケーションのドメイン内における全てのオブジェクトに跨ってアプリケーション・ワークフォローの一部として適用される具体的な起動または分解方針を必要とする従来システムとは対照的に、起動および削除の観念は、オブジェクトについての同期メタデータ、例えば、オブジェクト識別子、バージョン等を記述する知識フレームワークの一部として組み込まれている。
【００１９】
[0034]  これに関して、大多数のコンピューティングオブジェクトは、ある意味では短命である。つまり、デバイスの複雑なマルチマスター・ネットワーク・トポロジーにおける知識交換の際に、いつオブジェクトを生じさせそして消滅させればよいか表すことができれば、無数の同期状況には望ましいであろう。同期状況には、オブジェクトに対する権利期間満了についてのディジタル権利管理（ＤＲＭ）、カレンダ・オブジェクトのインスタンス化遅延というような、オブジェクトに適用されるスケジューリング等が含まれるが、これらに限定されるのではない。
【００２０】
[0035]  アプリケーションが、データに対する永続的なビュー以外の何かから利益を得ることができ、更に、オブジェクトのために保持されている同期メタデータにインテリジェンスを移動させることによってオブジェクトの起動および削除の管理から解放されることから利益を得ることができるときはいつでも、本明細書に記載する種々の実施形態を効果的に適用することができる。つまり、マルチマスター同期環境においてオブジェクトの有効期限についての同期知識において情報を表しそして組み合わせることができると、オブジェクトの有効期限に制限があり得る種々の状況には有利である。
【００２１】
[0036]  以下に続くものについてのロードマップとして、最初に、本明細書に記載する実施形態の一部の全体像を紹介する。次いで、マルチマスター・データ同期システムにおいて効率的に知識を表すための総合的メカニズムについて、何らかの補足的なコンテキストを示す。次に、補足的コンテキストおよびこのようなマルチマスター・データ同期システムの理解のために、非限定的な実施形態例および特徴について更に詳細に論じ、続いて、このような実施形態を実現することができる代表的なネットワークおよびコンピューティング環境について論ずる。
【００２２】
[0037]  図２は、マルチマスター同期環境において同期するオブジェクトの概念を概略的に示すブロック図であり、オブジェクトは、当該オブジェクトについて定義された同期メタデータにしたがって、起動または分解される。図示のように、デバイス２００およびデバイス２１０がネットワーク（１つまたは複数）２２０を通じて、それぞれ、同期コンポーネント２０２、２１２によって互いに接続されて、同期している様子が示されている。各同期コンポーネント２０２、２１２は、ストレージ２０４、２１４にオブジェクトを格納しており、更に、これらのオブジェクトの同期知識２０６、２１６をそれぞれ維持している。これについては、以下で更に詳しく説明する。これに関して、データ・タイプやネットワーク・トポロジーとは無関係に同期するために用いられる同期知識２０６、２１６は、いつオブジェクトを開始しいつ終了させるかを記述するメタデータを含めるように増強することができる。
【００２３】
[0038]  メタデータがオブジェクトの開始を記述する場合、これは、オブジェクトが将来のある時点で作成され、次いでオブジェクトの同期に関与することを意味することができる。あるいは、これは、オブジェクトが作成されるまたは既に作成されており、そしてこのオブジェクトは、開始されるまでは、同期には関与しないことを意味することができる。メタデータがオブジェクトの終了を記述する場合、これは、１組の同期されるオブジェクトに包含される場合に同期に関与するのを止めることを意味することができる。あるいは、これは、オブジェクトおよびこのオブジェクトに関するあらゆるメタデータが削除されること、またはオブジェクトは削除される可能性があるがこのオブジェクトを記述するメタデータは削除されないことを意味することができる。
【００２４】
[0039]  図３は、マルチマスター同期環境において種々のノード間で同期を行うことを目的とした、オブジェクトについての「有効期限」情報として、オブジェクトの「開始」および「終了」を記述する全体的な流れ図を示す。３００において、ある時点で、オブジェクトについて、限定された有効期限を有するという同期メタデータを定義し、マルチマスター同期環境におけるいずれかのネットワーク・トポロジーにしたがって敷設された1つ又は複数のネットワークを通じて、１つのノードが他のノードに接続する。３１０において、ノードは、同期メタデータを学習することができる。即ち、メタデータを受信する、または他のノードに要求して受信する。あるいは、ノードは同期メタデータを別のノードに送ることもでき、この場合、メタデータは、同期しようとするオブジェクト集合についてのバージョン変更情報 (versioning information)を記述し、オブジェクトの開始および／または終了についての情報を含む有効期限情報を含む。
【００２５】
[0040]  ３２０において、２つのノードの同期メタデータを比較して、これらのオブジェクトについての有効期限情報の集合知識を決定する。３３０において、任意に、これらのオブジェクトの集合についての有効期限情報の集合知識に基づいて、有効期限が開始したが終了していないオブジェクトを同期させる。３４０において、有効期限が終了しているオブジェクトを削除することができる。３５０において、任意に、別のノードがビデオ・データを直ちに必要とすることを予測することができれば、まだ開始していないオブジェクトであっても、例えば、その別のノードにおいて表示の準備ができているビデオ・データに同期させることができる。
【００２６】
[0041]  図４は、マルチマスター環境における同期のための知識フレームワークにおける同期メタデータとして、有効期限情報の代表的な実施態様を示す流れ図である。４００において、マルチマスター同期環境においていずれかのネットワーク・トポロジーにしたがって敷設された1つ又は複数のネットワークを通じて、あるノードが他のノードに接続する。４１０において、以下で更に詳細に説明する知識交換にしたがって、同期が開始する。
【００２７】
[0042]  ４２０において、各オブジェクトのメタデータから、ノードの同期コンポーネントが、メタデータにおいて表されているオブジェクトのオブジェクト起動チックカウント(initiate tickcount)がオブジェクト開始数以上であるか否か判断する。以上である場合、そのオブジェクトは既に起動されており、同期される。４３０において、同様に、各オブジェクトのメタデータから、ノードの同期コンポーネントが、メタデータにおいて表されているオブジェクトのオブジェクト終了チックカウンタがオブジェクト失効数以上であるか否か判断する。以上である場合、オブジェクトは失効しており、知識交換の一部としてこのオブジェクトを同期させる。これは４４０において反映されており、起動されたが失効していないオブジェクトを同期する。任意に、４５０において、未だ起動されていないオブジェクト（例えば、何らかの方法で同期する）、または失効したオブジェクト（例えば、オブジェクトを削除する）に対して他の動作を行うこともできる。
効率的な知識表現および交換
[0043]  種々の非限定的な実施形態によるマルチマスター同期環境において知識として表される同期メタデータによってオブジェクトの起動および削除を記述する序文として、この状況において、データ同期システムにて知識を効率的に表す一般的なメカニズムの全体像を紹介する。
【００２８】
[0044]  一般的なメカニズムは、（１）第１ノードから第２ノードに送る必要がある最小限のデータを要求することによって、接続されているデバイス間における知識の効率的な交換、（２）第１ノードと第２ノードとの間におけるデータの状態についての不一致、即ち、矛盾を効率的かつ正しく理解できること、（３）任意の数のノードを同期できること、および（４）いずれのノードでも他のいずれのノードを通じてでも同期できること、即ち、ピア・ツー・ピア、マルチマスター同期環境において動作できることを含む。
【００２９】
[0045]  この一般的なメカニズムによって、いずれの回数の変更でも、２つのデバイス間で共有すべき情報に対して行うことができる。これらが接続されるいずれの時点でも、その知識を互いに交換することによって、これらは、デバイス間の変更を容易にするために互いに知っていることおよび知らないことを再現するために必要な少なくとも最小量の情報を知ることになる。尚、２つよりも多いデバイスが関与する場合、知識は、共有すべきもっと大きな情報の基盤の中における不完全な情報であるかもしれないが、多数のデバイス間で共有する知識が増えるにつれて、時と共に他のデバイスに接続すれば、これらのデバイスによって集合的な知識が継続的に得られることを注記しておく。
【００３０】
[0046]  有利なのは、種々の非限定的な実施形態において、オブジェクト集合の最新バージョンを維持することに関心がある全てのデバイスの集合、またはデバイスの部分集合に対して同期が実行されるだけでなく、このようなデバイスが、集合における他のオブジェクトと接続することおよび接続から外れることも可能になることである。デバイスが1つ又は複数のネットワークを通じてデバイス集合における他のデバイス（１つまたは複数）と再度接続するときはいつでも、このデバイスは、他のデバイス（１つまたは複数）がその集合的知識によって表すのと同じ最新の集合的知識を再度取得する。このように、疎に接続されているデバイスであっても、デバイスの集合と接触することおよび解除することができ、ついで集合的知識の最新集合を所持するいずれのデバイス集合と接触することによって失われた全ての知識を再学習することができる。
【００３１】
[0047]  図５は、いずれの数のデバイスに対しても、知識が一般化可能であるまたはスケーラブルであることを示す。図示のように、４つのデバイス５００、５１０、５２０、および５３０が、知識表現５０２、５１２、５２２、および５３２と共に示されている。知識表現５０２、５１２、５２２、および５３２は、それぞれ、各デバイスが、当該デバイスを跨って共有される共通情報の集合について、知っていることおよび知らないことを示す。
【００３２】
[0048]  有利なのは、図６に示すように、ネットワークにおける接続が断絶されても、それにも拘わらず、１つの接続が他のデバイスに対して直接または間接的に存在する限り、デバイス５００、５１０、５２０、および５３０の全てによって、完全な知識集合を得ることができることである。例えば、図示のように、デバイス５３０の知識５３２は、デバイス５２０との知識交換を通じて、次いでデバイス５２０と５１０との間の知識交換を通じて、そして最後にデバイス５１０と５００との間の知識交換を通じて、デバイス５００に到達することに変わりはない。
【００３３】
[0049]  共有すべき共通情報についての知識を共有するデバイスが増えると、種々の非限定的実施形態による知識交換（１回または複数回）は、どのデバイスから集合的知識が来たのかということについては寛容になるので、これらのデバイス全てが利益を得る。デバイスは、各々、それが接続されている他のデバイスのいずれからも、デバイス間で共有する情報についてできるだけ多くの知識を得ようとして、独立して動作する。
【００３４】
[0050]  非限定的な詳細の一例において、２つのノードが会話に加わり、この会話の終了時に、関係するデータ集合について同等の知識を有する方法について更に詳しく説明する。この方法は、ピア・ツー・ピア・ネットワーク／マルチマスター環境に入る新たなデバイス毎に、知識交換能力を形成することによって、２つのノードを超えてスケーラブルである。
【００３５】
[0051]  つまり、図７に示すように、いずれの数のノードでも有するピア・ツー・ピア・ネットワークのノード７００は、ノード７１０とデータを交換することを望んでいる。ノードＡは、ノード７１０に変更を要求することによって開始し、そうするために、図示のように、ノード７００はその知識（ＫＮ７００で示す）をノード７１０に送る。
【００３６】
[0052]  デバイスまたはノードの知識は、文字の識別子によって、各オブジェクトがデバイス間で共有される表記を付けることによって表され、最後の数値は、このオブジェクトの最新バージョンを表す。例えば、図７に示すようなＫＮ７００はオブジェクトＡ、Ｂ、Ｃ、およびＤを含み、これらは各々ノード７００および７１０間で同期され、オブジェクトの各々に続く数値は、デバイス上で知られている当該オブジェクトの最新バージョンを表す。例えば、時点ｔ＝１における知識ＫＮ７００は、第５バージョンのＡ、第４バージョンのＢ、第７バージョンのＣ、および第１バージョンのＤを含み、図７では、Ａ４、Ｂ３、Ｃ６、Ｄ０と表記されている。対照的に、時点ｔ＝１におけるノード７１０の知識ＫＮ７１０は、第４バージョンのＡ、第７バージョンのＢ、第７バージョンのＣ、および第３バージョンのＤを含むことができ、図７ではＡ３、Ｂ６、Ｃ６、Ｄ２と表記されている。
【００３７】
[0053]  図８に示すように、時点Ｔ＝２において、ノード７１０は、ノード７００から受信した知識ＫＮ７００をそれ自体の知識ＫＮ７１０と比較し、何をノード７００に送る必要があるのか判断する。この例では、結果的に、ノード７１０はノード７００に、ＢおよびＤに関する変更を送る。何故なら、ノード７００のＢ３、Ｄ０の知識はノード７１０のＢ６およびＤ２の知識よりも遅れているからである。ノード７１０がノード７００にＢ６およびＢ３間の変更、ならびにＤ２およびＤ０間の変更を送るとき、それが有する知識ＫＮ７１０の最新バージョンも一緒に送る（ノード７１０において最後の変更を行ったときにはいつでも）。
【００３８】
[0054]  時点ｔ＝３を表す図９に示すように、知識ＫＮ７１０をノード７００に送ることによって、ノード７００およびノード７１０の双方が同じバージョンでありながらオブジェクトに変更を加えたことを後に発見した場合、ノード７００は矛盾を検出することができる（例えば、これらを後の解決のために格納する）。これによって、自律的更新、効率的な列挙(enumeration)に対処するだけでなく、ノードが変更に気付いたときまたは変更を交換するときには、正しい矛盾の検出にも対処する。例えば、この例では、Ｃ６が知識ＫＮ７１０およびＫＮ７１０の双方において同じオブジェクトでない場合、例えば、双方が独立してＣ５からＣ６に発展した場合、どちらのＣ６が正しいＣ６であるかを、例えば、同期の状況および関与するデバイスに適した既設定の方針解決にしたがって、矛盾解決のために別途設定することができる。
【００３９】
[0055]  前述の一般的なメカニズムを用いた分散型マルチマスター同期環境のいずれか２つのノード間における知識交換プロセスの一例を、図１０の流れ図に示す。１０００において、ノードＡはノードＢとの同期を要求することによって、ノードＡが知らない変更についてノードＢに尋ねる。ノードＢに授けるために、１０１０において、ノードＡはその知識をノードＢに送る。１０２０において、ノードＢは、ノードＡから受信した知識をそれ自体の知識と比較して、ノードＢが知っている知識の内何をノードＡに送るべきか判断する。１０３０において、ノードＢはこのような変更をノードＡに送り、加えて、ノードＢはその知識もノードＡに送り、ノードＡが１０４０において同様の知識比較を行えるようにする。本明細書に記載する実施形態によれば、メタデータにしたがって終了したオブジェクトまたは開始していないオブジェクトは同期されない。
【００４０】
[0056]  １０５０において、ノードＡおよびノードＢにおいて独立したバージョンの発展があった場合、ノードＡは、ノードＢの知識において反映されている最新バージョンと、ノードＡの知識において反映されている最新バージョンとの間に潜在的な矛盾があれば、そのいずれをも検出する。任意に、矛盾の場合にどのノードが他方のノードに勝つか判断するためには、いずれの矛盾解決方針でも適用することができる。１０６０において、ノードＡからの最新の変更の内ノードＢが所持していないものがノードＢに送られる。矛盾解決方針は、加えて、ノード間で共通の情報を維持するために、ノードＢからノードＡに、またはノードＡからノードＢに何らかの変更を送るか否か指図する。独立したバージョン変更がＯＫである、または望ましい場合、矛盾解決を行わないという別の選択肢がある。本明細書に記載する実施形態によれば、メタデータにしたがって終了したオブジェクトまたは開始していないオブジェクトは同期されない。
【００４１】
[0057]  図１１は、知識の選別(filter)が可能なとき、即ち、ノードの知識の部分集合を他のノードの1つ又は複数と同期させるべき場合の、一般化した知識交換メカニズムを示す。図示のように、各複製ＡおよびＢは、それぞれ、同期プロバイダー(synchronization provider)ＰＡおよびプロバイダーＰＢを有する。これに関して、各複製ＡおよびＢは、それぞれ、知識ＫＡおよびＫＢを維持しており、潜在的に選別知識ＦＡおよびＦＢも維持することもできる。部分集合を作らない場合と同様、複製のいずれもが、他の複製の変更１１００を要求することができ、更に他の複製が変更を伝えることに応答して、変更１１１０を受信することができる。図示のように、複製Ａは、１１００において、所与の範囲のオブジェクトの集合に対する変更を要求することができ、この集合のオブジェクトの有効期限についての情報を含むその知識を送る。同様に、１１１０において、知識ＫＡおよびＫＢの分析に基づいて、１１１０において、複製Ｂは知っているが複製Ａは知らない変更を、未だ有効期限以内であるオブジェクトについて、複製Ａに送る。選別知識ＦＡおよび選別知識ＦＢが同じ範囲でない場合、一般化した知識の変更と同様、次のようになる。
【００４２】
[0058]    ＫＡ＝ＫＡ∪ＫＢ
[0059]  選別知識ＦＡおよび選別知識ＦＢが同じ範囲でない場合、知識は、代わりに、既存の知識と、それぞれのフィルタＦＡおよびＦＢの交叉上に投影した他方の複製の知識との関数となり、次のように表される。
【００４３】
[0060]   ＫＡ＝ＫＡ∪（ＫＢ→（ＦＡ∩ＦＢ））
[0061]  用途の中でもとりわけ、これらの形式のフィルタの非限定的な用途の例は、同期フレームワークのコラム、即ち、何らかの変更単位を選別することである。これが特に該当するのは、コラム変更はシステムにおける移動動作の対象となる可能性が低いからである。この状況について注記するに値する２つの考慮点がある。即ち、フィルタ表現および知識合同である。
【００４４】
[0062]  フィルタ表現に関して、移動フィルタ(move filter)がない場合のフィルタ表現は次の通りである。各フィルタは、当該フィルタ内に含まれる変化単位(change unit)のリストとして表される。この表現は、便利な表現手段を備えるだけでなく、必要なときにフィルタを組み合わせる能力も備えている。このフィルタを組み合わせる能力は、知識を合同するために有用である。
【００４５】
[0063]  知識合同に関して、知識をその最も簡潔な形態に保つために、知識を合同する能力を維持しなければならない。これに関して、知識をその最も密集した形態に維持することができるように、選別した知識の断片を合同することができる。
【００４６】
[0064]  フィルタを組み合わせる能力について検討すると、フィルタは変化単位の集合として表すことができるので、フィルタにおける重複は、双方のフィルタ内に存在する変化単位の集合を分離することによって、調和させることができる。
【００４７】
[0065]  また、フィルタのベクトルは、当該フィルタ内における個々の変化単位の各々に適用されるので、フィルタの組み合わせは、双方のフィルタにおける変化単位毎に、変化単位に対して組み合わされたベクトルを発見することによって行うことができる。次いで、一旦ベクトルの全てが分かったならば、共通ベクトルを有する変化単位を再度組み合わせて新しいフィルタにする。
【００４８】
[0066]  したがって、知識の観念は、マルチマスター同期ネットワークの多数のノード間における知識交換のためのデータを効率的に表現するために用いることができ、ネットワークのいずれのノードも、ノード同士間で同期させるために、共通情報または共通情報の部分集合を独立して発展させることができる。前述の知識に基づくフレームワークは、マルチマスター同期環境に合わせて実現することができ、以下で更に詳しく説明するように、フレームワークは、効率的な同期メタデータを通じて、オブジェクトの起動および削除の観念を組み込むように拡張可能である。
知識に基づくオブジェクトの起動および分解
[0067]  前述のように、知識フレームワークに含まれるメタデータを増強することによる、知識に基づくオブジェクトの起動および／またはオブジェクトの削除について、種々の実施形態をここで提供する。その全体像については既に示した。疑問を回避するために、「起動」という用語は、本明細書において用いる場合、広義の意味を有し、コンピューティングシステムにおいてデータをアクセス可能、作成、格納、または同期させることができるあらゆる方法に言及する。例えば、記載する起動能力は、同期の一部としてオブジェクトの表出を遅延させるが、ある種の判断基準が満たされたときに今後の同期を指定することが望ましいという状況に適用することができる。
【００４９】
[0068]  同様に、「削除」または「分解」という用語も、広義に、コンピューティングシステムにおいて、データを除去、読み取り不能、またそうでなければアクセス不能にすることができる、あるいは同期させる他のオブジェクトと共に同期させなくすることができるあらゆる方法に言及する。例えば、記載する削除能力は、所定回数のイベントが発生した後にデータが失効になることが望ましい状況に提供することができる。
【００５０】
[0069]  マルチマスター同期環境において複数のネットワーク・ノード間で同期を行う種々の実施形態についてここで説明する。これは、同期させるオブジェクト（１つまたは複数）の起動および／または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点がデータを同期させることができる利点がある。
【００５１】
[0070]  前述のように、一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての有効期限情報を表す知識ベクトル上に追加の次元（１つまたは複数）を置くことができる。同期プロセスの間これを根拠として、同期アプリケーションオブジェクトに対する動作をその有効期限の間だけ許可する。例えば、オブジェクトの開始に関して、前述の知識に基づくフレームワークにしたがって、あるオブジェクトがＯ５で表されており、オブジェクトＯの第５バージョンの知識を示す場合、追加の起動項目を知識ベクトルにＯ５Ｉ３として追加することができ、Ｏ５Ｉ３によって、起動カウントが３回進んだ後に起動されることになっているオブジェクトＯの第５バージョンの知識を示す。オブジェクト、例えば、オブジェクトＯ５の終了に関して、追加の失効項目を知識ベクトルにＯ５Ｅ７として追加することができ、Ｏ５Ｅ７は失効カウントが７回進んだ後に起動されることになっているオブジェクトＯの第５バージョンの知識を示す。したがって、知識ベクトル上に置かれた追加の次元（１つまたは複数）に基づいて、オブジェクトの知識は、知識に基づく同期フレームワークにおいて、オブジェクトの起動および分解の観念を組み込むことになる。
【００５２】
[0071]  前述のように、マルチマスター同期用同期フレームワークは、知識の概念に基づく同期のモデルを定義し、複製の状態に基づく同期の概要を定義する。多くの場合、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか（例えば、将来の日付において電子メール・オブジェクトを同期する）、または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきか、終点に定義させるような方法で、データを同期させることは有用である。
【００５３】
[0072]  いずれの状況であっても、所与のオブジェクトについて知識ベクトル上に置かれた追加の次元によって遂行することができる。
【００５４】
[0073]  例えば、オブジェクトの知識が、あるデバイスにおいてＩｘ：Ａ５である場合、将来知識交換の一部としてこのオブジェクトを同期させるためには、オブジェクトの知識を単にＩｘ：Ａ５Ｆ４として増強することができる。これは、オブジェクトの知識をそのデバイスから同期の一部として受け取る解釈側終点が、Ｆ１、Ｆ２、およびＦ３を事前に仮定する条件が満たされない間は、オブジェクトＩｘ：Ａ５を存在するものとして扱わないことを意味する。これらの条件は、間隔、オブジェクトによる介在終点までのホップ回数、レンダリング回数、修正または編集回数、特定のアプリケーションによる動作回数、特定の外部イベントの発生回数等にしたがって、時間を過ごす(time passing)ことができる。即ち、将来関数(future function) Ｆを想定すると、この関数Ｆによって定義された発生回数をカウントした後に、将来データを同期する目的でオブジェクトを成立させる。
【００５５】
[0074]  オブジェクトの知識がＩｘ：Ｃ８であるという別の例では、将来における知識交換の一部としてオブジェクトを同期させるのを中止させるには、オブジェクトの知識を単にＩｘ：Ｃ８  Ｓ６として増強することができる。これが意味するのは、同期の一部としてオブジェクトの知識をそのオブジェクトから受け取る解釈側終点は、Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、およびＳ６を事前仮定する条件が満たされるまで、オブジェクト・データを同期させることを意味する。この場合も、これらの条件は、間隔、オブジェクトによる介在終点までのホップ回数、レンダリング回数、修正または編集回数、特定のアプリケーションによる動作回数、特定の外部イベントの発生回数等、即ち、解釈側デバイスによってオブジェクトを廃止するか否か判断することができることを考慮してチック・カウント(tick count)を割り当てることができるあらゆる関数Ｓにしたがって、時間を過ごす(time passing)ことができる。
【００５６】
[0075]  種々の実施形態は、オブジェクトについての失効メタデータ、またはオブジェクトについての起動メタデータ、あるいは双方を含むことができる。図１２は、オブジェクトについての失効メタデータは含むが、起動メタデータを含まない実施形態の流れ図である。このような知識交換において失効メタデータを用いる手法は、例えば、コンテンツ用のディジタル権利管理（ＤＲＭ）の実施として有用であり、３回のデバイス共有の後、デバイス間における共有量を制限するためにコンテンツが失効し、ユーザーのデバイス間で同期しなくなる場合、あるいは予め設定した回数のレンダリングの後、販促素材を失効させることが望ましい場合に有用である。データ失効させるの別の用法は、サーバー上のデータの周期的削除について、例えば、オブジェクト作成から６カ月経過した後に、文書を失効させる方針を実施することである。疑問を回避するために、これらは非限定的な状況であり、同期体験の一部としてデータを失効させることが望ましい状況の数は無限である。
【００５７】
[0076]  図１２では、１２００において、オブジェクトについて維持されている同期メタデータにおいて、このオブジェクトの失効カウントを定義する。これによって、このオブジェクト失効カウントが、当該オブジェクトに定められた失効させる回数に達した後、オブジェクトは失効する。次に、１２１０において、同期させる目的で、メタデータの失効カウントを失効回数と比較することによって、同期すべき各オブジェクトが既に失効しているか否か判断する。オブジェクト失効カウントは、所定の関数が満たされたときにはいつでも増大する（例えば、１月経過する毎、またはオブジェクトが変更される毎等）。１２２０において、失効していないオブジェクトを、マルチマスター同期環境における他のノード（１つまたは複数）と同期させる。１２３０において、失効したオブジェクトがあるかもしれないので、これらのオブジェクトを任意に削除することができる。また、一旦オブジェクトを削除すると、そのオブジェクトを記述するメタデータも任意に削除することができる。１２４０において、即ち、同期の合間には、いずれの数のイベントでも発生するかもしれず、同期するオブジェクトの集合に付随する失効カウントが増大する。端的に言えば、失効カウントが失効を示すと、もはやこのようなオブジェクトを同期させない。
【００５８】
[0077]  図１３は、オブジェクトについての起動メタデータは含まれるが、失効メタデータは含まれない実施形態の流れ図である（しかし、前述のように、起動メタデータおよび失効メタデータは１つの実施形態において独立して実施することができる）。知識交換において起動メタデータを用いるこのような手法は、例えば、コンテンツ用のディジタル権利管理（ＤＲＭ）の実施として有用であり、コンテンツ所有者が、例えば、プレス・リリースの一部として、コンテンツのリリースを未だ許可していないが、プレス・リリースのコンテンツを同期させるために将来実行に移すことを望む場合に有用である。データの同期の起動を遅らせる別の用法は、コンテンツの同期前に、ユーザーにある種の行為を行う気にさせる、例えば、同期を許可する前にユーザーを登録することである。オブジェクトの起動を遅らせる別の用法は、将来における特定の時点まで送信を遅らせる、例えば、電子メールの送信を遅らせることである。疑問を回避するために、これらは非限定的な状況であり、同期体験の一部として将来データを起動することが望ましい状況の数は無制限である。
【００５９】
[0078]  図１３において、１３００では、オブジェクトについて維持されている同期メタデータにおいて、当該オブジェクトの起動カウントを定義する。これによって、オブジェクトの起動カウントがそのオブジェクトについて定められた起動回数に達した後、オブジェクトが失効する。次いで、１３１０において、メタデータの起動カウンタを起動回数と比較することによって、同期する目的で、同期すべき各オブジェクトが起動されているか否か判断する。オブジェクトの起動カウントは、所定の機能が満たされるときにはいつでも増大する（例えば、１月が過ぎる毎、別の何らかのオブジェクトに対して作用があった後、関係するオブジェクトが成立した後等）。１３２０において、起動されているオブジェクトを他のノード（１つまたは複数）と、マルチマスター同期環境において同期させる。
【００６０】
[0079]  １３３０において、起動されたオブジェクトに対して、この時点では起動メタデータは関連がないと見なされる可能性があるので、任意に、いつ起動されたかに関するオブジェクトの知識（同期メタデータ）を削除することができる。また、このような知識を保存することもできる。更に、この合流点(junction)において、失効メタデータも用いる実施形態では、オブジェクトが起動される時点は、望ましければ、オブジェクトについて失効メタデータを定義するためにも適した時点となる。これに関して、一旦オブジェクトを起動したなら、したがって、そのオブジェクトを記述する起動メタデータを任意に削除することができる。１３４０において、即ち、同期の合間には、いずれの数のイベントでも発生するかもしれず、同期するオブジェクトの集合に付随する起動カウントが増大する。端的に言えば、起動カウントが起動を示すと、このようなオブジェクトは同期し始める。このようなオブジェクトは、起動時に作成することができ、あるいは前もって作成することができるが、起動までは同期させることができない。
【００６１】
[0080]  図１４は、システムにおけるオブジェクトに関するデータの同期を起動および終了させるための、前述した同期メタデータに基づく、状態遷移図に関する概念を明記する。例えば、左上の状態において開始して、起動チックカウントが１、失効チックカウントが０である、オブジェクトＯの第２バージョンを示す知識ベクトルＯ１＿ＩＴ１＿ＥＴ０を有するオブジェクトが、非開始状態１４００（即ち、オブジェクトが同期しない）において示されている。この例では、同期プロセスが起動目標数を３に定めて、既定の関数が２回以上満たされたとき、即ち、オブジェクトＯに付随する起動チックカウントが３に達したときに、オブジェクトＯが起動され、同期状態１４０２に入り、これによってオブジェクトＯは、前述のようなマルチマスター環境における典型的な知識交換にしたがって同期することになる。
【００６２】
[0081]  一旦状態１４０２において起動されて同期すると、次に失効チックカウンタを動作させ始めることができる。これに関して、同期プロセスは、オブジェクトに対して失効目標数を、例えば、１０に定めることができる。既定の関数が１０回満たされた後（例えば、１０カ月の経過、あるいは１０回のレンダリングまたは編集というような１０回のイベントの発生）このオブジェクトの失効チックカウントが１０回増大した後、オブジェクトは失効し失効状態１４０４に入る。図示のように、オブジェクトＯ１が５回の独立した変更を受けた後のＯ６のように、失効したオブジェクトの異なるバージョンであってもよい。前述のように、非開始状態１４００において、オブジェクトについての失効チックカウント・メタデータを含めることは任意であり、更に同期状態１４０２または失効状態１４０４において、起動チックカウント・メタデータを含めることは任意である。
【００６３】
[0082]  図１５は、一実施態様を記述する非限定的流れ図として、同期変化過程 (life cycle)を通じて同期されるオブジェクトの遷移を示す。１５００において、オブジェクトが作成され、このオブジェクトを同期の目的でいつアクティブにすべきかを決定する起動カウント数を、このオブジェクトに対して定めることができる。同期メタデータは、起動カウントを含む。起動カウントは、０に設定されており、オブジェクトがアクティブになるまで増大する準備ができている。１５１０において、既定の起動イベントが発生すると、オブジェクトの知識ベクトルにおいて表されている起動カウントが、起動カウント数に達してオブジェクトがアクティブになるまで、増大する。この段階で、オブジェクトは未起動から起動に移動する。
【００６４】
[0083]  １５２０において、オブジェクトを起動する。このため、このオブジェクトに失効カウント数を定めることができる。失効カウント数は、同期の目的で、このオブジェクトをいつ無視または削除すべきか決定する。同期メタデータは、失効カウントを含む。失効カウントは、０に設定されており、オブジェクトが失効になるまで増分する準備ができている。１５３０において、起動したオブジェクトの同期が、図５から図１１において列挙した知識交換原理にしたがって行われる。１５４０において、既定の失効イベントが発生すると、１５５０において失効カウント数に達してオブジェクトが失効になるまで、オブジェクトの知識ベクトルにおいて表されている失効カウントが増大する。この段階で、オブジェクトは起動から失効に移動し、したがって、オブジェクトが知識交換要求の範囲内にあっても、このオブジェクトはもはや同期しない。ストレージを節約するために、失効したオブジェクトは任意に削除することができる。
【００６５】
[0084]  図１６は、１組のＡＰＩを通じて完全なまたは部分的な知識交換を実行するデバイス１６００の非限定的実施態様例のブロック図である。図示のように、デバイス１６００は、同期モジュール１６２０を含む。同期モジュール１６２０は、１組のオブジェクト１６３０を別のデバイスと同期させる知識交換技法を、非限定的な実施形態にしたがって実行する。また、１組のオブジェクト１６３０は、効率的な動作のためにキャッシュ（図示せず）に格納することができ、そしてこの１組のオブジェクト１６３０は、後にオフライン・アプリケーションによって更新することができる。同期モジュール１６２０は、本明細書において説明したように他のノードとの間における双方向知識交換技法にしたがってデータを全体的に送信および受信するために同期通信モジュール１６２２を含むことができる。
【００６６】
[0085]  また、同期通信モジュール１６２２は、同期始動モジュール１６２４も含むことができる。同期始動モジュール１６２４は、許可された場合に、例えば、任意の同期モジュール１６４０を通じて第２デバイスとの同期を始動させ、第２デバイスと接続することができる。また、同期モジュール１６２２は、例えば、知識を得るまたは送るため、あるいは変更を得るまたは送るために、１組のオブジェクト１６４０についての完全なおよび／または部分的な知識１６０２を第２デバイスにＡＰＩを通じて送ることによって、同期の始動に応答するＩ／Ｏモジュール１６２６も含むことができる。同様に、Ｉ／Ｏモジュール１６２６は、要求された第２デバイスの知識または変更１６１２、ならびに第２デバイスから生じた、１組のオブジェクト１６３０に対して行うべき変更を受信することができる。一方、同期分析モジュール１６２８は、行うべきあらゆる変更を１組のオブジェクト１６３０に適用するように動作し、更に第２デバイスから受信した知識１６１２を、第１デバイスの知識１６０２と比較して、ローカルに行うべき変更を決定するか、あるいはデバイス間における同期を完了させるために第２デバイスに送るように動作する。
【００６７】
[0086]  本明細書における実施形態によれば、図５から図１１と関連付けて説明したバージョン変更知識(versioning knowledge)１６０３のような、１組のオブジェクト１６３０のノードによって所有される知識１６０２は、知識に基づくフレームワークにおいていつオブジェクトが同期を開始するのかを定める起動知識１６０４、および／または知識に基づくフレームワークにおいていつオブジェクトが同期を停止するのかを定める失効知識１６０５を含むように増強される。
ネットワーク型および分散型環境の例
[0087]  当業者であれば、本明細書に記載した同期インフラストラクチャの種々の実施形態は、あらゆるコンピューターあるいはその他のクライアントまたはサーバー・デバイスと共に実現できることを認めることができる。これらのデバイスは、コンピューター・ネットワークの一部として、または分散型コンピューティング環境において配備することができ、更にいずれの種類のデータ・ストアにでも接続することができる。これに関して、本明細書に記載した種々の実施形態は、いずれの数のメモリーまたは記憶ユニット、ならびにいずれの数の記憶ユニットにまたがって現れるいずれの数のアプリケーションおよびプロセスを有するいずれのコンピューター・システムまたは環境においても実現することができる。これは、サーバー・コンピューターおよびクライアント・コンピューターを含み、ネットワーク環境あるいはリモートまたはローカル・ストレージを有する分散型コンピューティング環境に配備されている環境を含むが、これに限定されるのではない。
【００６８】
[0088]  分散型コンピューティングは、コンピューティング・デバイスおよびシステム間における通信型交換によって、コンピューター資源およびサービスの共有を提供する。これらの資源およびサービスは、情報の交換、ファイルのような、オブジェクトのキャッシュへの格納およびディスクへの格納を含む。また、これらの資源およびサービスは、負荷均衡、資源の拡大、処理の特殊化等のための、多数の処理ユニット間における処理パワーの共有を含む。分散型コンピューティングは、ネットワーク接続を利用して、クライアントがその集合的パワーを利用して企業全体に恩恵を与えることを可能にする。これに関して、種々のデバイスは、アプリケーション、オブジェクト、または資源を有することができ、これらは、本開示の種々の実施形態について説明したような、同期インフラストラクチャを用いることができる。
【００６９】
[0089]  図１７は、ネットワーク型または分散型コンピューティング環境の一例の模式図を示す。この分散型コンピューティング環境は、コンピューティングオブジェクト１７１０、１７１２等、およびコンピューティングオブジェクトまたはデバイス１７２０、１７２２、１７２４、１７２６、１７２７等を備えており、これらは、アプリケーション１７３０、１７３２、１７３４、１７３６、１７３８で表すように、プログラム、方法、データ・ストア、プログラマブル・ロジック等を含むことができる。尚、オブジェクト１７１０、１７１２等、およびコンピューティングオブジェクトまたはデバイス１７２０、１７２２、１７２４、１７２６、１７２８等は、ＰＤＡ、オーディオ／ビデオ・デバイス、移動体電話機、ＭＰ３プレーヤー、パーソナル・コンピューター、ラップトップ等のような、異なるデバイスを備えることができることを認めることができる。
【００７０】
[0090]  各オブジェクト１７１０、１７１２等、およびコンピューティングオブジェクトまたはデバイス１７２０、１７２２、１７２４、１７２６、１７２８等は、1つ又は複数の別のオブジェクト１７１０、１７１２等、およびコンピューティングオブジェクトまたはデバイス１７２０、１７２２、１７２４、１７２６、１７２８等を、通信ネットワーク１７４０を経由して直接または間接的に通信することができる。図１７には１つのエレメントとして図示されているが、ネットワーク１７４０は、図１７のシステムにサービスを提供するその他のコンピューティングオブジェクトおよびコンピューティング・デバイスを備えることもでき、および／または、図示しない多数の相互接続ネットワークを表すこともできる。また、各オブジェクト１７１０、１７１２等、または１７２０、１７２２、１７２４、１７２６、１７２８等は、アプリケーション１７３０、１７３２、１７３４、１７３６、１７３８のような、アプリケーションを内蔵することもできる。アプリケーションは、本開示の種々の実施形態にしたがって提供される同期インフラストラクチャとの通信またはその実現に適したＡＰＩ、その他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを利用することもできる。
【００７１】
[0091]  分散型コンピューティング環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステムは、有線またはワイヤレス・システムによって、ローカル・ネットワークによって、あるいは広く分散したネットワークによって互いに接続することができる。現在、多くのネットワークがインターネットに結合されており、インターネットは、広く分散したコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを包含するが、種々の実施形態において記載したような同期インフラストラクチャに付随する通信例には、あらゆるネットワーク・インフラストラクチャを用いることができる。
【００７２】
[0092]  つまり、クライアント／サーバー、ピア・ツー・ピア、または混成アーキテクチャーのような、ネットワーク・トポロジーおよびネットワーク・インフラストラクチャのホストを利用することができる。「クライアント」とは、それが関係しない他のクラスまたはグループのサービスを用いる多数のクラスまたはグループのことである。クライアントは、別のプログラムまたはプロセスによって提供されるサービスを要求するプロセス、即ち、大まかには１組の命令またはタスクとすることができる。クライアント・プロセスは、他のプログラムまたはサービス自体について何ら動作上の詳細を「知る」必要なく、要求されたサービスを利用する。
【００７３】
[0093]   クライアント／サーバー・アーキテクチャー、特に、ネットワーク型システムでは、クライアントは大抵の場合別のコンピューター、例えば、サーバーが提供する共有ネットワーク資源にアクセスするコンピューターである。図１７の図では、非限定的な一例として、コンピューター１７２０、１７２２、１７２４、１７２６、１７２８等はクライアントとして考えることができ、そしてコンピューター１７１０、１７１２等はサーバーとして考えることができる。この場合、サーバー１７１０、１７１２等は、クライアント・コンピューター１７２０、１７２２、１７２４、１７２６、１７２８等からのデータ受信、データ・サービス、データの格納、データの処理、クライアント・コンピューター１７２０、１７２２、１７２４、１７２６、１７２８等へのデータ送信等というようなデータ・サービスを提供するが、状況に応じていずれのコンピューターもクライアント、サーバー、または双方と見なすことができる。これらのコンピューティング・デバイスはいずれも、データを処理し、1つ又は複数の実施形態について本明細書において説明したような同期インフラストラクチャと関わる可能性があるサービスまたはタスクを同期あるいは要求することができる。
【００７４】
[0094]  サーバーは、通例、インターネットまたはワイヤレス・ネットワーク・インフラストラクチャのようなリモートまたはローカル・ネットワークを通じてアクセス可能なリモート・コンピューター・システムである。クライアント・プロセスは、第１コンピューター・システムにおいてアクティブであることができ、サーバー・プロセスは第２コンピューター・システムにおいてアクティブであることができ、互いに通信媒体を通じて通信し、こうして機能分散を行い、多数のクライアントがサーバーの情報収集能力を利用することを可能にする。同期インフラストラクチャにしたがって利用されるソフトウェア・オブジェクトはいずれも、単体で設けることができ、あるいは多数のコンピューティング・デバイスまたはオブジェクトに跨って分散することができる。
【００７５】
[0095]  通信ネットワーク／バス１７４０がインターネットであるネットワーク環境では、例えば、サーバー１７１０、１７１２等はウェブ・サーバーとすることができ、クライアント１７２０、１７２２、１７２４、１７２６、１７２８等は、ハイパーテキスト・トランスファ・プロトコル（ＨＴＴＰ）のような多数の周知のプロトコルのいずれによっても、これらのウェブ・サーバーと通信することができる。また、サーバー１７１０、１７１２等は、分散型コンピューティング環境に特徴的であると言えるが、クライアント１７２０、１７２２、１７２４、１７２６、１７２８等としての役割を果たすこともできる。
コンピューティング・デバイス例
[0096]  前述のように、本明細書に記載した技法は、コンピューティングシステムにおいて他のオブジェクトと同期することが望ましいいずれのデバイスにでも適用できるという利点がある。したがって、ハンドヘルド、携帯用、ならびに全ての種類のその他のコンピューティング・デバイスおよびコンピューティングオブジェクトは、種々の実施形態と共に用いることができる、即ち、デバイスが同期することができればどこででも用いることができると考えられる。したがって、図１８において以下で説明する以下の汎用リモート・コンピューターは、コンピューティング・デバイスの一例に過ぎない。
【００７６】
[0097]  必須ではないが、実施形態は、部分的に、デバイスまたはオブジェクトのためのサービスの開発者によって用いられるための、オペレーティング・システムによって実現することができ、および／または本明細書に記載した種々の実施形態の1つ又は複数の機能的態様を実行するように動作するアプリケーション・ソフトウェア内に含めることができる。ソフトウェアは、クライアント・ワークステーション、サーバー、またはその他のデバイスというような1つ又は複数のコンピューターによって実行されるプログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで説明することができる。コンピューター・システムは種々の構成およびプロトコルを有し、これらを用いてデータを伝達することができ、つまり、特定の構成またはプロトコルを限定と見なしてはならないことは、当業者には認められよう。
【００７７】
[0098]  図１８は、本明細書において記載した実施形態の1つ又は複数の態様を実現することができる、適したコンピューティングシステム環境１８００の一例を示すが、先に明確にしたように、このコンピューティングシステム環境１８００は、適したコンピューティング環境の一例に過ぎず、使用または機能の範囲について何らの限定をも示唆することは意図していない。コンピューティング環境１８００が、当該コンピューティング環境例１８００において図示されるコンポーネントのいずれの１つまたはその組み合わせに関しても、依存性や必須要件を有するという解釈を決して行ってはならない。
【００７８】
[0099]  図１８を参照すると、1つ又は複数の実施形態を実現するリモート・デバイス例は、コンピューター１８１０の形態とした汎用コンピューティング・デバイスを含む。コンピューター１８１０のコンポーネントは、演算装置１８２０、システム・メモリー１８３０、およびシステム・バス１８２２を含むことができるが、これらに限定されるのではない。システム・バス１８２２は、システム・メモリーを含む種々のシステム・コンポーネントを演算装置１８２０に結合する。
【００７９】
[00100]  コンピューター１８１０は、通例、種々のコンピューター読み取り可能媒体を含み、コンピューター１８１０によってアクセスできる入手可能な媒体であればいずれでも可能である。システム・メモリー１８３０は、リード・オンリー・メモリー（ＲＯＭ）および／またはランダム・アクセス・メモリー（ＲＡＭ）というような、揮発性および／または不揮発性メモリーの形態としたコンピューター記憶媒体を含むことができる。一例として、そして限定ではなく、メモリー１８３０はオペレーティング・システム、アプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも含むことができる。
【００８０】
[00101]  ユーザーは、入力デバイス１８４０を通じて、コマンドおよび情報をコンピューター１８１０に入力することができる。モニターまたはその他の種類のディスプレイ・デバイスも、出力インターフェース１８５０のようなインターフェースを通じて、システム・バス１８２２に接続されている。モニターに加えて、コンピューターは、スピーカーおよびプリンターというような、その他の周辺出力デバイスも含むことができ、これらは出力インターフェース１８５０を通じて接続することができる。
【００８１】
[00102]  コンピューター１８１０は、リモート・コンピューター１８７０のような、1つ又は複数の別のリモート・コンピューターへの論理接続を用いて、ネットワーク型または分散型環境において動作することができる。リモート・コンピューター１８７０は、パーソナル・コンピューター、サーバー、ルーター、ネットワークＰＣ、ピア・デバイスまたはその他の共通ネットワーク・ノード、あるいはその他のいずれのリモート・メディア消費または送信デバイスであってもよく、コンピューター１８１０に関して先に述べたエレメントのいずれでもまたは全てを含むことができる。図１８に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）のようなネットワーク１８７２を含むだけでなく、他のネットワーク／バスも含むことができる。このようなネットワーキング環境は、家庭、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。
【００８２】
[00103]  前述のように、種々のコンピューティング・デバイスおよびネットワーク・アーキテクチャと関連付けて実施形態例について説明したが、基礎となる概念は、同期することが望ましいネットワーク・システムおよびコンピューティング・デバイスまたはシステムであればいずれにでも適用することができる。
【００８３】
[00104]  また、同一または同様の機能を実現するには多数の方法があり、例えば、アプリケーションおよびサービスが同期インフラストラクチャを用いることを可能にする、しかるべきＡＰＩ、ツール・キット、ドライバー・コード、オペレーティング・システム、制御、単体またはダウンロード可能なソフトウェア・オブジェクト等が上げられる。つまり、本明細書における実施形態は、同期能力を提供するソフトウェアまたはハードウェア・オブジェクトからだけでなく、ＡＰＩ（またはその他のソフトウェア・オブジェクト）の観点からも考えられる。つまり、本明細書において記載した種々の実施形態は、完全にハードウェア、部分的にハードウェアおよび部分的にソフトウェア、ならびにソフトウェアとした態様を有することができる。
【００８４】
[00105]  「一例の」(exemplary)という用語は、本明細書では、一例、実例、または例示として役割を果たすことを意図して用いられている。疑問を回避するために、本明細書に開示した主題は、このような例には限定されないものとする。加えて、本明細書において「一例」として記載されるいずれの態様または設計も、他の態様または設計よりも好ましいまたは有利であると必ずしも解釈される訳ではなく、当業者には周知である同等の代表的な構造や技法を排除することを意図するのでもない。更に、「含む」、「有する」、「内蔵する」、およびその他の同様の単語が詳細な説明または特許請求の範囲のいずれかにおいて用いられる限りにおいて、疑問を回避するために、このような単語は、あらゆる追加の要素または他の要素をも排除しない開いた移行性単語としての「備えている」(comprise)という用語と同様に、内包的であることを意図している。
【００８５】
[00106]  「限定有効期限」という用語は、オブジェクトの存在の開始および／または終了を制限するように、同期システムにおけるオブジェクトの存在に対する制限に言及するものとする。
【００８６】
[00107]  前述のように、本明細書に記載した種々の技法は、ハードウェアまたはソフトウェア、あるいはしかるべき場合には双方の組み合わせと合わせて実現することができる。本明細書において用いる場合、「コンポーネント」、「システム」等の用語は、同様に、コンピューター関係エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかに言及することを意図している。例えば、コンポーネントは、プロセッサにおいて実行中のプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行スレッド、プログラム、および／またはコンピューターとすることができるが、これらに限定されるのではない。例示すると、コンピューターにおいて実行しているアプリケーションおよびコンピューターの双方がコンポーネントであることができる。1つ又は複数のコンポーネントは、プロセスおよび／または実行のスレッドの内部に位置することができ、更にコンポーネントは１つのコンピューターに局在化すること、および／または２つ以上のコンピューター間に分散することができる。
【００８７】
[00108]  前述のシステムは、様々なコンポーネント間における相互作用に関して説明した。尚、このようなシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、および／または追加のコンポーネントを、そして以上のものの種々の順列および組み合わせにしたがって、含むことができることが認めることができる。また、サブコンポーネントは、親のコンポーネント（階層的）に含まれるのではなく、他のコンポーネントに通信状態で結合されているコンポーネントとして実現することもできる。加えて、1つ又は複数のコンポーネントを１つのコンポーネントに組み合わせて集約機能を備えること、または数個の別個のサブコンポーネントに分割することもできること、そして管理レイヤのような1つ又は複数のいずれの中間レイヤであっても、統合した機能を備えるために、このようなサブコンポーネントに通信状態で結合するように備えることもできることは注記してしかるべきである。本明細書に記載したいずれのコンポーネントも、本明細書には具体的に記載しなかったが当業者には一般に周知の1つ又は複数のその他のコンポーネントと相互作用することもできる。
【００８８】
[00109]  以上に記載したシステム例を考慮して、記載した主題にしたがって実現することができる方法は、種々の図のフローチャートを参照すると、一層その真価が認められよう。説明の簡素化という目的のために、これらの方法は一連のブロックとして示しそして説明したが、特許請求する主題は、これらのブロックの順序には限定されないことは言うまでないことであり、認められるべきである。何故なら、一部のブロックは異なる順序で現れても、および／または本明細書において図示および説明したブロックとは別のブロックと同時に現れてもよいからである。フローチャートによって、非連続的な、または分岐するフローが示される場合、種々の他の分岐、フロー経路、およびブロックの順序も実施することができ、同一または同様の結果が得られることを認めることができる。更に、図示したブロックの全てが、以後に記載する方法を実現するために必要ではない場合もある。
【００８９】
[00110]  本明細書に記載した種々の実施形態に加えて、他の同様の実施形態を用いることができ、あるいは対応する実施形態（群）の同一または同等の機能を実行するために、当該実施形態から逸脱することなく、記載した実施形態（群）に対して変更および追加を行うこともできることは言うまでもない。更にまた、多数の処理チップまたは多数のデバイスが、本明細書に記載した1つ又は複数の機能の遂行を共有することができ、複数のデバイスに跨って格納を行うことができる。したがって、本発明は、いずれの一実施形態にも実施形態の集合体にも限定されず、逆に添付した請求項に応じた広さ、主旨および範囲で解釈すべきものとする。
【図１】
2011511362.tif 000003
【図２】
2011511362.tif 000004
【図３】
2011511362.tif 000005
【図４】
2011511362.tif 000006
【図５】
2011511362.tif 000007
【図６】
2011511362.tif 000008
【図７】
2011511362.tif 000009
【図８】
2011511362.tif 000010
【図９】
2011511362.tif 000011
【図１０】
2011511362.tif 000012
【図１１】
2011511362.tif 000013
【図１２】
2011511362.tif 000014
【図１３】
2011511362.tif 000015
【図１４】
2011511362.tif 000016
【図１５】
2011511362.tif 000017
【図１６】
2011511362.tif 000018
【図１７】
2011511362.tif 000019
【図１８】
2011511362.tif 000020
【国際調査報告】
2011511362.tif 000021
2011511362.tif 000022