(57)【要約】  同期データおよび／またはメタデータ、例えば「知識」、を交換して同期処理の性能を改善するための代替的なパターンを開示するシステムおよび方法が開示される。したがって、本発明は、データを同期するときの完全な「ラウンド・トリップ」の要件を緩和するためにデータとメタデータの交換を使用する同期機構を開示する。プロバイダにデータの変更、修正、追加、または削除を知らせる「知識」を提供することができる。「知識」は、同期処理において変更を列挙することに関する、情報に基づいた決定を可能とすることによって、同期における交換のコストを削減し、かつ／または効率性を高めることができる。
2010541077.tif 000002
【特許請求の範囲】
【請求項１】
データの同期を容易にするシステムであって、
プロバイダの状態を特定する知識データ集合と、
前記知識データ集合に基づいて複数のプロバイダ間のデータ・フローを管理する同期エンジンであって、前記データ・フローが複数の同期候補を定義する同期エンジンと
を備えることを特徴とするシステム。
【請求項２】
前記複数のプロバイダのうち１つの状態に少なくとも部分的に基づいて、前記知識データ集合を確立する知識生成器をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記知識を評価する分析コンポーネントと、
前記評価に基づいて複数の変更を列挙する変更集約器と
をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項４】
前記知識に基づいて前記同期候補をフィルタするフィルタ・コンポーネントをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項５】
前記知識は、宛先プロバイダの状態を定義する実際の知識であることを特徴とする請求項１に記載のシステム。
【請求項６】
前記知識は、宛先プロバイダの状態を定義する「代理の」知識であることを特徴とする請求項１に記載のシステム。
【請求項７】
ユーザが自動的に実施してほしい動作を推論する確率ベースの分析および統計ベースの分析のうち少なくとも１つを使用する機械学習および推論コンポーネントをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項８】
複数のプロバイダ間でデータを同期するコンピュータ実施方法であって、
知識を含む要求を生成するステップと、
前記知識に少なくとも部分的に基づいて複数の変更を列挙するステップと、
前記知識に少なくとも部分的に基づいて前記複数の変更を送信するステップと
を含むことを特徴とする方法。
【請求項９】
前記知識は実際の知識であることを特徴とする請求項８に記載の方法。
【請求項１０】
前記知識は「代理の」知識であることを特徴とする請求項８に記載の方法。
【請求項１１】
前記複数の変更の一部を前記知識の関数としてフィルタするステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記複数の変更の一部を受理するステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１３】
前記複数の変更の各々とローカル項目の間の衝突を検出するステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記衝突を解決するステップと、
前記複数の変更の一部を前記解決の関数として受理するステップと
をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記衝突を記録するステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
起点プロバイダに関連する変更を監視するステップと、
前記起点プロバイダに関連する前記変更の特定に基づいて前記要求の生成を促すステップと
をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１７】
起点プロバイダに問い合わせて変更を特定するステップと、
前記起点プロバイダに関連する前記変更の特定に基づいて前記要求の生成を促すステップと
をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１８】
データを同期するコンピュータ実行可能システムであって、
宛先プロバイダの状態を特定する「知識」を生成する手段と、
前記「知識」に基づいて起点プロバイダと前記宛先プロバイダの間の複数の変更を列挙する手段と
を備えることを特徴とするシステム。
【請求項１９】
前記列挙した変更の一部の関数として前記起点プロバイダと前記宛先プロバイダの間のデータを同期する手段をさらに備えることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記列挙した変更の一部に基づいて複数の衝突を検出し解決する手段をさらに備えることを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの同期を容易にするシステム及び方法に関する。
【背景技術】
【０００２】
今日では、人々は様々なコンピュータ装置またはシステムを定期的に使用している。したがって、しばしば、装置間で情報を同期された状態に保つことが望ましい。例えば、人々は、しばしば、デスクトップＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）および／または、職場でやりとりする関連のファイル・サーバを有する。また、人々は、しばしば、職場から離れて作業するためのノートブック・コンピュータまたはラップトップ・コンピュータを有し、自宅に１つまたは複数のデスクトップ・コンピュータを有する。さらに、人々はＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ポケットＰＣ、携帯電話（例えば、スマート・フォン）ならびに／または組織、通信、および／もしくは娯楽のために利用する他のポータブル装置のようなハンドヘルド・コンピュータを有することもある。一般には、少なくとも幾つかのデータを複数の装置の間でコピーまたは同期して、それらのデータに便利にアクセスできるようにすることが望ましい。
【０００３】
例えば、ユーザは、しばしば、ユーザが職場を離れている間に使用するためにファイルをデスクトップ・コンピュータまたはファイル・サーバからポータブル・コンピュータまたはポータブル装置にコピー（または同期）する。その後、ユーザは恐らく、職場を離れている間にファイルを修正するか、幾つかの新しいファイルを追加し、続いて職場に戻ったときにこれらのファイルをデスクトップ・コンピュータまたはファイル・サーバにコピー（または同期）したいであろう。同様に、別の例では、ユーザは画像または音楽を或る装置から別の装置へ（例えば、コンピュータからＭＰ３プレイヤーへ、デジタル・カメラからコンピュータへ）コピーしたい場合がある。さらに、ユーザが、個人的な好みや連絡先（例えば、住所録）が自身のコンピュータの全てまたは一部にわたって維持されることを求める場合がある。このように、幾つかのファイルを複数のコンピュータまたは装置にわたって同期する必要があるシナリオが多く存在する。
【０００４】
同期は、その最も簡単な形態では、単に、複数の装置またはシステムからの指定されたファイルまたはデータを装置の全てまたは一部にわたって同一にするかまたは一貫させる作業である。一般に、これは、直近のファイルのバージョンを使用して記憶領域へコピーすることを意味する。最もよくあるのは、このプロセスが双方向でピア・ツー・ピアの同期ソフトウェア・アプリケーションによって自動化されることである。具体的には、１組の情報を受け取ると、同期アプリケーションはその１組の情報を分析し、ファイルの変更または追加を第１の装置内に存在するデータと比較して検出することができる。その後、変更されたデータまたは新しいデータを、第１の装置と通信可能に結合された第２の装置に、例えば有線接続または無線接続を介して、コピーまたは複製することができる。もちろん、衝突を検出しかつ／または解決の方式を適用して、データの正確性を保証することができる。
【０００５】
これにより、第１の装置上のファイルが第２の装置上のファイルと同期される。同期を、デスクトップ・コンピュータのような第１の装置を接続させたネットワークにアクセスすることによってリモートに実施することもできる。第２のデスクトップ・コンピュータまたはラップトップ・コンピュータのような第２の装置を、同期ソフトウェアを利用して第１の装置と同期することができる。残念なことに、今日の同期アプリケーションは、可動性（ｍｏｂｉｌｉｔｙ）を高めるという今日の増大し続ける要望に合致しない。換言すれば、従来の同期アプリケーションでは、同期に用いる変更を決定するために完全な１組の情報がしばしば或る装置から別の装置に送達されるので、大量の帯域幅が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上述したような問題に鑑みてなされたものであり、その目的とするところは、データの同期を容易にするシステム及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
以下に、本発明の幾つかの態様の基本的な理解を与えるために本発明の簡単な概要を提示する。本概要は本発明の広範囲な概要ではない。本概要は、本発明の主要または重要な要素を特定しようとするものではなく、本発明の範囲を限定しようとするものでもない。本概要の唯一の目的は、後で提示するより詳細な説明の前置きとして、本発明の幾つかの概念を簡潔な形で提示することである。
【０００８】
本明細書で開示し主張する発明は、その一態様において、送信されたトラフィックを削減しつつデータ同期を可能とするシステムを含む。その態様によれば、本発明は、従来の装置で使用されている同期の完全な「ラウンド・トリップ」を必要とせずに、同期を実現することができる。むしろ、本明細書で開示するシステムと方法は、洗練された知的な情報送達を容易にするための、データおよびメタデータの交換を使用する。
【０００９】
諸態様では、プロバイダにデータの変更、修正、追加または削除を知らせる「知識（ｋｎｏｗｌｅｄｇｅ）」を提供することができる。この「知識」は実際の知識または何らかの加工された「代理の（ｓｔａｎｄ−ｉｎ）」知識であることができ、そのいずれかによって同期交換のコストを削減し、同期交換の効率性を高めることができる。
【００１０】
事実上、本発明は、同期データおよび／またはメタデータ、例えば「知識」、を交換して同期処理の性能を改善するための代替的なパターンを開示する。特定の態様では、各パターンにおいてデータおよび／またはメタデータを交換するための、様々な有効な順序の動作を開示する。具体的には、洗練された同期処理を容易にするために、「実際の（ａｃｔｕａｌ）」（または「代理の」）知識を提供することができる。さらに、本発明は、提供された知識から学習して同期処理をさらに改善することができる。
【００１１】
本発明のさらに別の態様では、確率ベースおよび／または統計ベースの分析を使用してユーザが自動的に実施してほしい動作を予知または推論する、機械学習および推論コンポーネントを提供する。
【００１２】
前述の目的および関連する目的を達成するために、本明細書では、本発明の幾つかの例示的な態様を、以下の説明および添付の図面と関連して説明する。しかし、これらの態様は、本発明の原理を使用できる様々な方法のうち幾つかを示すにすぎず、本発明は全ての係る態様とそれらの均等物を含むことを意図している。本発明の他の利点および新規な特徴は、図面と併せて考慮すると、後の本発明の詳細な説明から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本発明の一態様による、データ同期を容易にするシステムを示す図である。
【図２】本発明の一態様による、「知識」を使用して同期処理を改善するシステムを示す図である。
【図３】本発明の一態様による、一方向の知識ベースの同期を容易にする手続きの例示的な流れ図である。
【図４】本発明の一態様による、変更の受理を容易にする手続きの例示的な流れ図である。
【図５】本発明の一態様による、非交互型の知識ベースの双方向同期を容易にする手続きの例示的な流れ図である。
【図６】本発明の一態様による、交互型の知識ベースの双方向同期を容易にする手続きの例示的な流れ図である。
【図７】本発明の一態様による、知識ベースで多方向の交互型同期を容易にするシステムの例示的なブロック図である。
【図８】本発明の一態様による、絶え間のない更新に関して起点を監視することを容易にする手続きの例示的な流れ図である。
【図９】本発明の一態様による、「ピング・ツー・プル（Ｐｉｎｇ−ｔｏ−Ｐｕｌｌ）」機構を促進する手続きの例示的な流れ図である。
【図１０】本発明の一態様による、中間装置を介した知識ベースの同期を容易にする手続きの例示的な流れ図である。
【図１１】開示したアーキテクチャを実行するように動作可能なコンピュータのブロック図である。
【図１２】本発明による例示的なコンピューティング環境の略ブロック図である。
【発明を実施するための形態】
【００１４】
以下に、図面を参照して本発明を説明する。図面全体を通して、同じ参照番号は同じ要素を指すために使用する。以下の記述では、説明の目的で、本発明の徹底的な理解を与えるために多数の具体的な詳細を説明してある。しかし、これらの具体的な詳細がなくとも本発明を実施できることは明らかであろう。他の事例では、良く知られた構造や装置は、本発明の説明を容易にするためにブロック図の形で示してある。
【００１５】
本明細書で使用する場合、「コンポーネント」および「システム」という用語は、コンピュータ関連の実体、すなわち、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどを指すことを意図している。例えば、コンポーネントは、プロセッサ上で稼動しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータであることができるがこれらに限らない。例として、サーバ上で稼動しているアプリケーションおよびサーバはともにコンポーネントであることができる。１つまたは複数のコンポーネントがプロセスおよび／または実行スレッド内に存在することができ、コンポーネントを１つのコンピュータ上に配置し、かつ／または複数のコンピュータ間に分散させることができる。
【００１６】
本明細書で使用する場合、「推論する（ｉｎｆｅｒ）」または「推論（ｉｎｆｅｒｅｎｃｅ）」は、一般に、システム、環境、および／またはユーザの状態をイベントおよび／またはデータを介して得た１組の観測結果から推測または推論することを指す。例えば、推論を使用して特定の文脈もしくは動作を特定することができ、または推論により状態の確率分布を生成することができる。推論は確率的であることができる。すなわち、着目する状態の確率分布の計算はデータとイベントに基づいて行われる。推論はまた、高レベルなイベントを１組のイベントおよび／またはデータから構成するために使用される技法を指すことができる。係る推論の結果、イベントが時間的に密接に相関しているかいないかに関わらず、かつイベントおよびデータが複数のイベントおよびデータソースに由来するかしないかに関わらず、新たなイベントまたは動作は、１組の観測されたイベントおよび／または記憶されたイベントデータから構築されることになる。
【００１７】
先ず図面を参照する。図１はプロバイダ間のデータ同期を容易にするシステム１００を示す。示したように、システム１００は、２つのプロバイダ（１０４、１０６）間の同期活動を管理する同期エンジン１０２を備える。図１に示したシステムは２つのプロバイダで同期するシステムに関するが、本発明の他の態様では、本発明の範囲から逸脱せずにプロバイダを追加できることは理解されよう。
【００１８】
標準的な同期システム（例えば、１００）では、同期セッションにおいて３つのプレイヤー、すなわち、同期エンジン１０２と２つの同期プロバイダ１０４、１０６が存在する。同期エンジン１０２は同期セッションの調整に関与する。プロバイダ１０４、１０６は同期されているエンドポイント１０８、１１０とのインタフェースに関与する。示したように、各プロバイダ１０４、１０６は何らかのエンドポイントまたはエンドポイントのクラス（１０８、１１０）に対応する。何らかの同期トポロジにおいて様々に共に同期されている複数のエンドポイント（１０８、１１０）は「パートナー」と称する場合もあることは理解されよう。
【００１９】
従来は、必要に応じて、同期エンジン１０２とプロバイダ１０４、１０６が、同一コンピュータの同じプロセスにおいて、１つのコンピュータの複数の通信プロセスにおいて、または１つもしくは複数のコンピュータにわたって分散した複数の通信プロセスにおいて、稼動していなければならなかった。一方向の同期セッション（ｏｎｅ−ｗａｙ  ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｓｅｓｓｉｏｎ）の以下のケースは、本発明の全体像を提示するために提供した。したがって、この例は本開示の範囲を限定しようとするものではない。
【００２０】
本発明によれば、一方向の同期セッションでは、宛先と起点（ｓｏｕｒｃｅ）（例えば、１０４または１０６）が存在する。本発明によれば、処理の構成に係わらず、宛先プロバイダはその「知識」を起点プロバイダ（ｓｏｕｒｃｅ  ｐｒｏｖｉｄｅｒ）が利用できるようにすることができる。「知識」の概念は後でより詳細に説明するが、要約すれば、「知識」は、宛先が任意の特定の瞬間に「知っている」ステータスを指すことができる。
【００２１】
したがって、起点プロバイダは、その提供された知識に従って、宛先プロバイダがまだ「知らない」変更を宛先プロバイダへ搬送する。一態様では、これらの変更には宛先プロバイダがこれらの変更を適用した際に「学習」する「知識」、すなわち、いわゆる「学習知識（ｌｅａｒｎｅｄ  ｋｎｏｗｌｅｄｇｅ）」を含めることができる。以下の図は、知識と変更を様々な同期プロバイダ間で搬送するためのパターンに関連する様々な実施形態を概観する。より具体的には、以下の図は、少なくとも次の７つのシナリオを扱う。
１．  一方向の同期（One-Way Synchronization）
２．  双方向の非交互型の同期（Two-Way, Non-Interleaved Synchronization）
３．  双方向の交互型の同期（Two-Way, Interleaved Synchronization）
４．  多方向の交互型の同期（Multi-Way Interleaved Synchronization）
５．  絶え間のない更新の同期（Continuous Update Synchronization）
６．  ピング・ツー・プルの同期（Ping-to-Pull Synchronization）
７．  中間装置を介した同期（Synchronization-Through-Intermediary）
【００２２】
上述のように、各ケースでは、効率的な同期を実現するために、宛先プロバイダがその知識を起点プロバイダが利用できるようにする。次いで、起点プロバイダがその知識に従って、宛先プロバイダに、宛先プロバイダがまだ「知らない」変更を搬送する。諸態様では、これらの変更には、宛先プロバイダがこれらの変更を適用した際に学習する「知識」、すなわち、いわゆる「学習知識」が含まれる。
【００２３】
図２は、本発明の一態様によるシステム１００の代替的なブロック図を示す。原則として、図２に示すシステム１００は、宛先プロバイダおよび起点プロバイダのコンポーネント（１０４、１０６）の各々の内部にあるサブコンポーネントを示す。プロバイダを図２に示すように指定してあるが、各プロバイダは具体的な同期アプリケーションに応じて起点および／または宛先として機能できることは理解されよう。したがって、代替的な態様では、サブコンポーネント（またはその一部）をプロバイダのいずれかまたは両方に含めることができる。同様に、後で説明するように、本発明を、３つ以上のプロバイダが関与する態様において使用することができる。これらおよび他の考えうる態様は本発明の範囲および添付の請求項の範囲内に含まれる。
【００２４】
示したように、宛先プロバイダ１０４は知識生成器（ｋｎｏｗｌｅｄｇｅ  ｇｅｎｅｒａｔｏｒ）２０２およびフィルタ２０４を備えることができる。動作に際して、知識生成器２０２は、宛先プロバイダ１０４（またはサービスされているエンドポイント）内のデータのステータスを説明する「知識」を確立することができる。この知識は、宛先プロバイダ１０４によって維持または管理されるデータの状態またはステータスに基づいて起点プロバイダに知らせるという点で有益である。この知識を、同期エンジン１０２を用いて起点プロバイダ１０６に送信することができる。
【００２５】
したがって、起点プロバイダ１０６は、受け取った知識に従ってデータを一体となって決定および編集する分析コンポーネント２０６と変更集約器（ｃｈａｎｇｅ  ａｇｇｒｅｇａｔｏｒ）２０８を備えることができる。原則として、受け取った知識をこのように分析することで、冗長（または不要）な情報の送信を制限または削減するための洗練されたロジックがもたらされる。換言すれば、知識を分析することで、変更を起点プロバイダから宛先プロバイダに送信する前に決定（ｄｅｃｉｓｉｏｎ）を行うことができる。
【００２６】
同様に、フィルタ２０４を使用して、記憶領域内で日付データを置換（またはデータを同期）する前に、任意の不要な変更をさらにフィルタすることができる。フィルタ機能の有用性は、以下の個々のケースを検討すればより明らかになろう。より具体的には、一態様では、「代理の知識」を実際の知識の代わりに提供する場合に、フィルタにより、宛先プロバイダ（またはサポートされるエンドポイント）内の不要または冗長な同期をさらに除外するための必要なロジックを提供することができる。
【００２７】
以下の説明に関連して示すように、起点プロバイダ１０６が宛先プロバイダからの知識をもつ必要がないと考える価値もある。ここで、フィルタ・コンポーネント２０４を使用して１組の変更を制限することができる。ここで、宛先の知識（ｄｅｓｔｉｎａｔｉｏｎ  ｋｎｏｗｌｅｄｇｅ）を使用して、宛先が知らない１組の変更を、起点が知っている１組の変更からフィルタする。したがって、起点は全ての変更を宛先に転送することができ、それにより、起点が宛先の実際の知識を知る必要性が排除される。しかし、これには、宛先が起点からの変更を宛先自身の知識に対してフィルタして、不明瞭である（または必要ではない）知識を排除する必要がある。
【００２８】
代替的な態様では、宛先は（表現が恐らくより簡単な）何らかの「代理の」知識を作ることができ、その結果、実際の知識に対して未知の全ての変更は「代理の」知識に対して未知であり、この場合、この情報を真の宛先の知識の代わりに宛先に送信することができる。このシナリオを実現して、（知識の伝送の観点から）配線を介したデータ送信量を削減するか、または起点での処理を簡略化できることは理解されよう。起点が宛先の知識を知らないことが「代理の」知識と等価であると考えれば、起点が宛先の知識を知らないことが単に代理の知識の変形の特殊なケースであるのは明らかであることに留意されたい。
【００２９】
以下の説明では、従来の同期の実装形態に関する問題の様々な解決策を列挙する。より具体的には、本発明は、同期に関連する問題の多くを解決し、特に、様々な同期プロバイダの間で知識および変更を搬送するためのパターンに関する。以下の図および説明では、以下のように称するパターンを考える。
【００３０】
一方向の同期（図３）
双方向の非交互型の同期（図５）
双方向の交互型の同期（図６）
多方向の交互型の同期（図７）
絶え間のない更新（図８）
ピング・ツー・プル（図９）
中間装置を介した同期（図１０）
【００３１】
図３は、本発明の一態様による一方向同期の例示的な方法を示す。換言すれば、図３は本発明の一態様による単一の宛先と単一の起点を同期することに関する例示的な動作を示す。図３は単一の起点との一方向の同期を扱うが、本発明の趣旨および／または範囲を逸脱せずに、この方法を使用して宛先を複数の起点と同期できることが理解されよう。
【００３２】
説明を簡単にするため、本明細書では例えば流れ図の形で示す１つまたは複数の方法を一連の動作として図示および説明するが、本発明によれば、一部の動作を本明細書で図示および説明した他の動作と異なる順序でかつ／または並行に行ってもよいので、本発明が動作の順序によって限定されないことは理解されよう。例えば、方法を、状態図のような一連の相互に関連する状態またはイベントとして代替的に表現することもできることは当業者には理解されよう。さらに、全ての図示した動作が本発明による方法を実装しなくともよい。
【００３３】
一方向の同期を、プロバイダ（またはエンドポイント）間でデータを同期する最も簡単なパターンの１つと考えることができる。プロバイダＡ（例えば、図１の１０４）がプロバイダＢ（例えば、図１の１０６）と同期したい場合を考える。図１に示すように、同期エンジン１０２を使用してプロバイダ間の制御フローを管理することができる。例えば、各プロバイダは、様々なプリミティブ応答（例えば、ｇｅｔｃｈａｎｇｅｓ）、および様々なプリミティブの結果を受理するためのプリミティブ（例えば、ｐｒｏｃｅｓｓｃｈａｎｇｅｓ）を公開することができる。係るケースでは、ステートレスなプロバイダ（１０４、１０６）が単純に様々なメソッド呼出しに応答する一方で、同期エンジン１０２は同期動作を駆動する。
【００３４】
図３を再度参照すると、３０２において、第１のプロバイダ（例えば、プロバイダＡ）は第２のプロバイダ（例えば、プロバイダＢ）からの変更に対する要求を生成することができる。事実上、プロバイダＡはプロバイダＢからの変更を要求する。示すように、プロバイダＡは、一般に、その「知識」をこの要求の一部としてプロバイダＢに送信する。しかし、前述した宛先の知識の送信に対する変形、例えば、「代理の」知識も、この方法においては有効である。他の態様では、プロバイダＡは、例えば同期が複数の変更バッチに分割される場合には、バッチ・サイズ（ｂａｔｃｈ  ｓｉｚｅ）のような様々な要求メタデータを送信してもよい。さらに、プロバイダＡは、同期するための複数のスコープ（例えば、概念的には複数のエンドポイント）をプロバイダＢが提供する場合には、スコープ識別子（ＩＤ）を送信することができる。
【００３５】
３０４において要求を分析し、３０６において変更を列挙する。この例では、プロバイダＢはプロバイダＡが知らない１組の変更（複数のバージョンを含む）を計算する。プロバイダＢは、バッチ内の変更ごとに、学習した知識を含む。さらに、プロバイダＢはまた、スコープＩＤ、リターン・バッチ（ｒｅｔｕｒｎ  ｂａｔｃｈ）のサイズ等の追加のメタデータを含めてもよい。
【００３６】
３０８において、変更を起点から宛先に搬送することができる。例えば、前述の例を続けると、プロバイダＢは変更の組をプロバイダＡに送信する。この動作において、変更には、変更された項目（ｉｔｅｍ）（複数可）の識別子、項目の作成バージョン（複数可）、項目の更新バージョン（複数可）、項目（複数可）が削除されたか否かを記述するフラグ等を含めることができる。原則として、基準の特定は、項目もしくは項目のグループに対する、または項目もしくは項目のグループの、変更、修正、追加、削除等を分類する基準を特定するほとんど全てのものであることができる。項目が変更単位を伴う場合は、変更単位ごとに更新バージョンが存在することができ、したがって、変更単位ごとにＩＤが存在することができる。プロバイダＢは、要望どおりに、または必要に応じて、変更を個別に、または纏めて供給することを選択してもよい。プロバイダＢは変更されたデータを変更バッチに含めても含めなくてもよい。さらに、データが供給された場合は、本発明の範囲から逸脱することなく、プロバイダＢは項目に対するデータの全て、または変更差分のみを供給してもよい。
【００３７】
３１０において、変更を受理する（ａｃｃｅｐｔｅｄ）。上述の例では、プロバイダＡが、プロバイダＢから受け取った変更をとり、それらの変更を以下の図４で説明するように適用することができる。本明細書で提供した例示的な方法は、本発明の全体像を提示するために含めたものであって、本発明を限定しようとするものではないことは理解されよう。本発明および添付の特許請求の範囲内に含まれる他の例が存在することが理解されよう。
【００３８】
ここで図４を参照すると、本発明の一態様による、変更を受理する例示的な方法が示されている。原則として、方法３１０は、プロバイダＡがプロバイダＢから受け取った変更に従って実施する処理動作を示す。これらの動作をほとんど全ての順序で実施できることは理解されよう。同様に、図４の処理方法は例示的なシナリオを示すものであって、本発明の範囲を限定しようとするものではないことは理解されよう。
【００３９】
変更を受理すると、４０２において衝突を検出する。ここで、（供給された知識を用いて）衝突を検出し、検出した衝突を解決するための機構を選択する。本明細書で説明する本発明の趣旨および範囲から逸脱することなく、当分野で公知のほとんど全ての衝突解決機構を使用できることは理解されよう。諸態様では、衝突解決機構は、要望どおりに、または必要に応じて、自動および／または手動であることができる。
【００４０】
さらに、本発明は「制約上の（ｃｏｎｓｔｒａｉｎｔ）」衝突を管理できることが理解されよう。「制約上の」衝突は、知識の中では検出できない（例えば、同時発生型の変更からは生じない）が、典型的には何らかのビジネス・ルールまたは処理ルールに違反することに起因して、リモートに生じた変更がローカルに適用できないために存在する。例えば、宛先がファイル・システムである場合は、複数のファイルが同じ名前をもつことは許されない。または、宛先がデータベースである場合は、テーブルの行に、例えば範囲チェックまたは他の一貫性チェックのような１つまたは複数の制約を課すことができる。これらは衝突であるが、知識からは検出可能ではない。
【００４１】
４０４において、変更ごとに、対応するローカル項目（ｉｔｅｍ）を発見する（ｌｏｃａｔｅｄ）。ここで、起点が提供したローカル項目に対応する項目は、宛先プロバイダ内で発見される。図４の方法を、起点によって問題の項目として特定された項目ごとに繰り返すことができることは理解されよう。
【００４２】
４０６において、衝突が存在するかまたはリモート・バージョンが衝突の勝者である場合は、変更データを（起点によって供給されたバッチ内に含まれなければ）取り出す。さらに、４０８において、任意の制約上の衝突を（例えば、知識を用いずに）検出する。さらに、４０８において、衝突をどのように解決するかに関する機構を選択する。
【００４３】
４１０、４１２、および４１４においてそれぞれ示されるように、変更を適用し、ローカル項目に対する衝突解決を開始し、かつ／または衝突を記録する。全てのケースにおいて、要求に応じて、または必要に応じて、知識を同時に更新することができる。例えば、ローカルな知識を変更するために、学習知識を追加することができる。諸態様では、衝突が記録される場合には、学習知識の追加を省略することができる。図３および図４の方法は、双方向の同期（図５）に対するフレームワーク、および以下の他のパターンを記述するための基盤（図６から図１０）を提供する。
【００４４】
ここで図５を参照すると、非交互型の双方向の同期の例示的な方法が示されている。原則として、この方法は一方向の同期の再帰的なバージョンである。図５に示す方法は、しばしば、双方向の同期の最も分かりやすい形態と考えられる。この方法では、プロバイダＡは、動作５０２、５０４、５０６、５０８および５１０において示すように、プロバイダＢからの一方向の同期を実施する。これらの動作は、図３の動作３０２から動作３１０に示すものと同一であることは理解されよう。
【００４５】
第１のパス（または一方向の同期）に従って、２つのプロバイダは場所を切り替え（ｓｗｉｔｃｈ）、プロバイダＢはプロバイダＡからの双方向の同期を完了する。この切替えは、図５に示す５１０から５０２への矢印によって示されている。衝突が検出され解決されるケースでは、特に、エンドポイントに対して制約上の衝突が存在するかまたは同期動作中にいずれかのエンドポイントに変更が行われる場合には、複数の双方向の同期動作が収束に達することを要求してもよい。ここでも、この再帰的な機能を、動作５１０から動作５０２への矢印によって示す。
【００４６】
本発明の一態様による交互型の同期の例示的な方法が示されている。示したように、図６の方法は前述の双方向の同期の変形である。この方法では、送信側のプロバイダは、知識を伴う変更（ｔｈｅ  ｍａｄｅ）をその送信バッチで搬送した（例えば、動作６０２から動作６０８）後かつ変更を受理する（例えば、動作６１０）前に、宛先プロバイダからの受取りの同期を開始することができる。このように宛先プロバイダから同期を開始することが、動作６０８から動作６０２への矢印によって示されている。宛先プロバイダは利用可能な起点プロバイダの知識を有するので、宛先プロバイダは、起点が知らない宛先の変更を決定し、その変更を起点に送信し戻すことができる。これにより、起点および宛先は双方向の同期の間にバッチの交換を様々に交互に行う（ｉｎｔｅｒｌｅａｖｅ）ことができる。
【００４７】
図７は、本発明の一態様による、多方向の交互型の同期を可能とするシステム７００を示す。原則として、システム７００は、複数のパートナー（７０２）がない双方向の交互型の同期の変形である方法（図６）を容易にする。具体的には、プロバイダＡが変更をプロバイダＢに送信している場合を考える。ここで、第３（または第４、第５、・・・）のプロバイダ、すなわち、プロバイダＣ（Ｄ、Ｅ、・・・、Ｎ）を考える。
【００４８】
ここで、プロバイダＣはプロバイダＢから（例えば、同期エンジン７０４を介して）変更を受け取り始めることができる。プロバイダＢは、プロバイダＣが知らない全ての変更をエンドポイントＢから送信することができ、それに加えて、プロバイダＣがやはり知らない変更をプロバイダＡから転送することができる。同期エンジン７０４を介してデータの流れを実現できることは理解されよう。プロバイダＢは、衝突が検出され、場合によっては解決された後に、変更をＣのみに送信する（衝突解決の機会を最少化する）ことを選択できることに留意されたい。さらに、プロバイダＢは、単純に、例えばスループットを優先して、変更をプロバイダＣに「通過（ｐａｓｓ−ｔｈｒｏｕｇｈ）」させることができる。ＣがＢから受け取るのと同様にプロバイダＮがプロバイダＣから受け取る、等のように、この方法を複数のプロバイダに拡張できると考える価値がある。ここで、Ｎは整数である。
【００４９】
図８は、本発明の一態様による例示的な絶え間のない更新の方法を示す。この方法では、定義された「同期セッション」はなく、セッションは単純に継続する。具体的には、プロバイダＡが変更をプロバイダＢから受け取りたいことを想定する。係るケースでは、８０２において、プロバイダＡはその現在の知識をプロバイダＢに登録する。したがって、８０４において、プロバイダＢは変更を監視することができる。例えば、プロバイダＢは、プロバイダＡが知らない変更があるかどうかを定期的に（変更ごとに、または１つの何らかの定義もしくは推論されたタイマーもしくはスケジュールで）チェックすることができる。
【００５０】
ここで、８０６において、変更が発見されたかどうかを判定することができる。発見されなければ、８０４に戻って変更を監視する。しかし、変更が発見された場合は、８０８において同期を開始することができる。換言すれば、係るケースでは、プロバイダＢはプロバイダＡに連絡して、図３に示す一方向の同期と同様に同期を開始することができる。係るケースでは、プロバイダＢはプロバイダＡに連絡することができ、プロバイダＡは、プロバイダＢに登録されたものより新しく、不明瞭な変更の送信を最小化できる、その現在のローカル知識で応答できることに留意されたい。あるいは、プロバイダＢは、単純に登録した知識に基づいて変更で応答することによって、例えば、不明瞭の変更の送信につながるけれども、ラウンド・トリップを潜在的に省くことができる。このように、コストを削減し、効率性を高めることができる。
【００５１】
図８を参照して説明した実装形態では、プロバイダＡはその知識をプロバイダＢに発行し、その後、何らかのリモート・プロシージャ呼出しをブロックして、変更が最終的に利用可能となったときに変更バッチを返すことができることに留意されたい。あるいは、プロバイダＡはその知識をプロバイダＢに発行し、接続を切断することができ、プロバイダＢは将来の何らかの時点で新しい接続およびコール・バックを構築することができる。
【００５２】
プロバイダＡが、更新された知識を、同期と無関係なプロバイダＢに定期的に登録する変形も考えることができる。これは、不明瞭な変更の送信を最小化できるので、ＡがＢ以外のパートナーとも同期している場合に有用であろう。プロバイダＢは変更を利用可能になったらすぐに返すことができ、または、第１の変更検出から幾分かの時間だけ待機して一組の変更を蓄積できるようにプロバイダＢを構成可能に設定することができる。あるいは、プロバイダＢは、プロバイダＡに送信する前に幾つかの変更が利用可能になるまで待機することができるが、これによりプロバイダＡ側での陳腐化（ｓｔａｌｅｎｅｓｓ）につながる可能性がある。それにも関わらず、これは幾つかのシナリオにおいて有用でありうることは理解されよう。これらの代替的な態様は図８に示していないが、これらの態様は本開示および添付の特許請求の範囲内に含まれることは理解されよう。
【００５３】
ここで図９を参照すると、一態様による「ピング・ツー・プル」を容易にする例示的な方法が示されている。この変形では、プロバイダＡはプロバイダＢと同期できるが、プロバイダＡはデータ接続を開始しないか、または開始することができない。
【００５４】
それどころか、プロバイダＡは「ピング」をプロバイダＢに送信する能力を有するだけである。したがって、９０２において、プロバイダＡはピングをプロバイダＢに送信し、９０４において、プロバイダＢはプロバイダＡに対する接続を開始することによって応答する。９０６において、プロバイダＡは次に、知識を送信するためにこの接続を使用することによって同期を開始し、前述の同期パターンの１つを実行する。
【００５５】
プロバイダＡが何らかの小さなデータをペイロードに置くことができる場合、プロバイダＡはプロバイダＡの知識を含めることができ、または空間が限られていれば何らかの「代理の」知識を含めることができる。係るケースでは、ラウンド・トリップは省かれる。さらに、プロバイダＡに送信すべき変更がないと含まれている知識からプロバイダＢが判定できる場合には、プロバイダＢはプロバイダＡの要求への応答を拒むことができ、またはプロバイダＢは何らかの簡略化された「送信データなし（ｎｏｔｈｉｎｇ  ｔｏ  ｓｅｎｄ）」といったタイプの応答を送信することができる。
【００５６】
ここで図１０を参照すると、本発明の一態様による、中間装置（ｉｎｔｅｒｍｅｄｉａｒｙ）を介して同期する例示的な方法の代替的なブロック図が示されている。この変形では、プロバイダＡとプロバイダＢは、中間装置Ｍを介して接続する以外は、接続することができない（または接続しようとしない）。中間装置Ｍは「ダム（ｄｕｍｂ）」データ記憶領域または何らかのより汎用的な目的のデータ記憶領域であってもよいことは理解されよう。このケースでは、本発明は、プロバイダＡおよびプロバイダＢが中間装置Ｍを介して同期できるようにする。
【００５７】
分かりやすい変形では、プロバイダＡとプロバイダＢは、格納し転送する中継器として中間装置Ｍを効果的に用いて、互いに対するメッセージを中間装置Ｍに様々に置き、中間装置Ｍにメッセージを問い合わせる。より複雑な変形では、プロバイダＢは変更を、学習した知識を含めて、中間装置Ｍに発行することができる。次いでプロバイダＡは、これらの変更を検証し、不明瞭な変更の検出を行い、不明瞭でない変更をローカルに適用することができる。同様に、プロバイダＡはプロバイダＢ向けの変更を中間装置Ｍに発行することもできる。さらに、このモデルは、記憶領域に変更を発行し、記憶領域から変更を受け取る他のパーティにも、修正なしで拡張されることは理解されよう。
【００５８】
図１０に示すように、１００２において、第１のプロバイダが情報を（知識を含めて）中間装置に送信することができる。同様に、１００４において、第２のプロバイダが情報を中間装置に送信することができる。中間装置は、１００６において情報を処理し、１００８において適切な情報をプロバイダＡおよび／またはプロバイダＢに送信することができる。１０１０において、プロバイダＡおよび／またはプロバイダＢは受け取った情報を処理し、必要に応じて変更を受理することができる。
【００５９】
さらに他の態様では、本発明は、本発明による、１つまたは複数の機能の自動化を促進する機械学習および推論（ＭＬＲ：ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ  ａｎｄ  ｒｅａｓｏｎｉｎｇ）コンポーネントを使用することができる。本発明は（例えば、変更データの受理または処理と関連して）、様々なＭＬＲベースの方式を使用してその様々な態様を実行することができる。例えば、変更を受理および／または処理する時点を決定するための処理を、自動的な分類（ｃｌａｓｓｉｆｉｅｒ）システムおよび分類プロセスを介して促進することができる。
【００６０】
分類器（ｃｌａｓｓｉｆｉｅｒ）は、入力属性ベクトル、すなわち、ｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を、入力が分類に属するという確かさに対応付ける関数、すなわち、ｆ（ｘ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ）である。係る分類では、（例えば、分析の費用とコストに分解する）確率ベースおよび／または統計ベースの分析を使用して、ユーザが自動的に実施することを望む動作を予知または推論することができる。
【００６１】
ＳＶＭ（ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ）は、使用できる分類器の例である。ＳＶＭは、可能な入力の空間の中に超平面（ｈｙｐｅｒｓｕｒｆａｃｅ）を見つけることによって動作し、超平面はトリガ基準（ｔｒｉｇｇｅｒｉｎｇ  ｃｒｉｔｅｒｉａ）を非トリガイベントから分離しようとする。直感的には、これにより、トレーニング・データの近傍にあるがそれと同一ではない試験データに対して分類が正確なものになる。他の有向および無向のモデル分類アプローチには、例えば、単純ベイズ、ベイジアン・ネットワーク、決定木、ニューラル・ネットワーク、ファジー・ロジック・モデルが含まれ、異なるパターンの独立性を提供する確率分類モデルを使用することができる。本明細書で使用する分類にはまた、優先度のモデルを開発するために使用される統計的回帰が含まれる。
【００６２】
本明細書から容易に理解されるように、本発明は、（例えば、包括的なトレーニング・データを介して）明示的にトレーニングされた分類器だけでなく（ユーザの振舞いを観察し、外部情報を受け取ることを介して）暗黙的にトレーニングされた分類器を使用することができる。例えば、ＳＶＭは、分類器の構成子（ｃｌａｓｓｉｆｉｅｒ  ｃｏｎｓｔｒｕｃｔｏｒ）および特徴選択モジュールにおける学習フェーズまたはトレーニング・フェーズを介して構成される。したがって、分類器（複数可）を使用して幾つかの機能を自動的に学習し実施することができる。この機能には、所定の基準に従って、変更を受理および／または処理する時、変更に対して起点を問い合わせる時、起点に変更を通知する時等を決定することが含まれるが、これに限らない。
【００６３】
ここで図１１を参照すると、開示したアーキテクチャを実行するように動作可能なコンピュータのブロック図が示されている。本発明の様々な態様に対して追加の文脈を与えるため、図１１および以下の説明は、本発明の様々な態様を実施するのに適したコンピューティング環境１１００の簡潔で一般的な説明を提供しようとするものである。本発明を、１つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的な文脈で上述したが、本発明を、他のプログラム・モジュールと組み合わせて、かつ／またはハードウェアとソフトウェアの組合せとしても実装できることは当業者には理解されよう。
【００６４】
一般に、プログラム・モジュールには、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造等が含まれる。さらに、本発明の方法を、単一プロセッサまたはマルチ・プロセッサのコンピュータ・システム、ミニ・コンピュータ、メインフレーム・コンピュータだけでなく、パーソナル・コンピュータ、ハンドヘルド・コンピューティング装置、マイクロプロセッサ・ベースのまたはプログラム可能な消費家電等を含む他のコンピュータ・システム構成で実施でき、それらの各々を１つまたは複数の関連装置に動作可能に結合できることは当業者には理解されよう。
【００６５】
例示した本発明の態様を、或る種のタスクが通信ネットワークを介して接続されたリモート処理装置により実行される、分散コンピューティング環境で実施してもよい。分散コンピューティング環境では、プログラム・モジュールをローカル・メモリ記憶装置およびリモート・メモリ記憶装置の両方に配置することができる。
【００６６】
コンピュータは、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータがアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータのような情報を記憶するための任意の方法または技術で実装した揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用でき、コンピュータがアクセスできる他の任意の媒体が含まれるが、これらに限らない。
【００６７】
通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータを搬送波または他の伝送機構のような変調データ信号で具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、その１つまたは複数の特性集合を有するか信号内の情報をエンコードするよう変化した信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続のような有線媒体、ならびに音響、ＲＦ、赤外線および他の無線媒体のような無線媒体が含まれる。上のいずれかの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００６８】
図１１を再度参照すると、本発明の様々な態様を実装するための例示的な環境１１００はコンピュータ１１０２を含み、コンピュータ１１０２は処理装置１１０４、システム・メモリ１１０６およびシステム・バス１１０８を含む。システム・バス１１０８はシステム・コンポーネントを処理装置１１０４に結合させる。当該システム・コンポーネントにはシステム・メモリ１１０６が含まれるがこれに限らない。処理装置１１０４は様々な市販のプロセッサのいずれかとすることができる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャを処理装置１１０４として使用してもよい。
【００６９】
システム・バス１１０８は、（メモリ・コントローラを伴うかまたは伴わない）メモリ・バス、周辺バス、および様々な市販のバス構造の何れかを用いたローカル・バスにさらに相互接続できる数種のバス構造のいずれかとすることができる。システム・メモリ１１０６は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）１１１０およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１１１２を含む。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）はＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭのような不揮発性メモリ１１１０に記憶される。ＢＩＯＳは、例えば起動中に、コンピュータ１１０２内部の要素間での情報伝送を支援する基本ルーチンを含む。ＲＡＭ１１１２はデータをキャッシュするための静的ＲＡＭのような高速ＲＡＭを含むこともできる。
【００７０】
コンピュータ１１０２はさらに、内部ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）１１１４（例えば、ＥＩＤＥ、ＳＡＴＡ）、（例えば、取外し可能ディスク１１１８を読み書きするための）磁気ＦＤＤ（ｆｌｏｐｐｙ  ｄｉｓｋ  ｄｒｉｖｅ）１１１６、（例えば、ＣＤ−ＲＯＭディスク１１２２を読むか、ＤＶＤのような他の大容量光媒体を読み書きするための）光ディスク・ドライブ１１２０を含む。内部ＨＤＤ１１１４を、適切なシャーシ（図示せず）内で外付け使用するために構成してもよい。ハード・ディスク・ドライブ１１１４、磁気ディスク・ドライブ１１１６および光ディスク・ドライブ１１２０を、それぞれハード・ディスク・ドライブ・インタフェース１１２４、磁気ディスク・ドライブ・インタフェース１１２６および光ドライブ・インタフェース１１２８によりシステム・バス１１０８に接続することができる。外付けドライブの実装形態向けのインタフェース１１２４は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）およびＩＥＥＥ１３９４インタフェース技術のうち少なくとも１つまたはその両方を含む。他の外付けドライブ接続技術も本発明では考慮している。
【００７１】
ドライブおよびその関連コンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の不揮発性記憶領域を提供する。コンピュータ１１０２に対して、ドライブおよび媒体は任意のデータを適切なデジタル形式で記憶する。上述のコンピュータ可読媒体の説明では、ＨＤＤ、取外し可能磁気ディスク、ＣＤまたはＤＶＤのような取外し可能光媒体に言及したが、ジップ・ドライブ、磁気カセット、フラッシュ・メモリ・カード、カートリッジ等のような、コンピュータにより読取可能な他種の媒体を例示的な動作環境で使用してもよく、さらに、任意の係る媒体は本発明の方法を実施するためのコンピュータ実行可能命令を含んでもよいことは当業者には理解されよう。
【００７２】
オペレーティング・システム１１３０、１つまたは複数のアプリケーション・プログラム１１３２、他のプログラム・モジュール１１３４およびプログラム・データ１１３６を含む、幾つかのプログラム・モジュールをドライブおよびＲＡＭ１１１２に記憶することができる。オペレーティング・システム、アプリケーション、モジュール、および／またはデータの全てまたは一部をＲＡＭ１１１２にキャッシュすることもできる。本発明を様々な市販のオペレーティング・システムまたはオペレーティング・システムの組合せで実装できることは理解されよう。
【００７３】
ユーザは、１つまたは複数の有線または無線の入力装置、例えば、キーボード１１３８およびマウス１１４０のようなポインティング・デバイスを介してコンピュータ１１０２にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイクロフォン、ＩＲリモート・コントロール、ジョイスティック、ゲーム・パッド、スタイラス・ペン、タッチ・スクリーン等を含むことができる。これらおよび他の入力装置は、システム・バス１１０８に接続される入力装置インタフェース１１４２を介して処理装置１１０４に接続されることがよくあるが、パラレル・ポート、ＩＥＥＥ１３９４シリアル・ポート、ゲーム・ポート、ＵＳＢポート、ＩＲインタフェース等の他のインタフェースにより接続することができる。
【００７４】
モニタ１１４４または他種の表示装置も、ビデオ・アダプタ１１４６のようなインタフェースを介してシステム・バス１１０８に接続される。モニタ１１４４に加えて、コンピュータは、一般に、スピーカー、プリンター等の他の周辺出力装置（図示せず）を備える。
【００７５】
コンピュータ１１０２は、リモート・コンピュータ（複数可）１１４８のような１つまたは複数のリモート・コンピュータへの有線および／または無線通信を介した論理接続を用いてネットワーク環境で動作することができる。リモート・コンピュータ（複数可）１１４８は、ワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、ポータブル・コンピュータ、マイクロプロセッサ・ベースの娯楽機器、ピア・デバイスまたは他の共通ネットワーク・ノードとすることができ、一般にコンピュータ１１０２に関して説明した要素の多くまたは全てを含むが、簡潔にするため、メモリまたは記憶装置１１５０のみを示してある。図示した論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）１１５２および／またはより大きなネットワーク、例えば、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）１１５４への有線接続または無線接続を含む。係るＬＡＮおよびＷＡＮネットワーク環境はオフィスおよび企業では一般的であり、イントラネットのような企業規模のコンピュータ・ネットワークを円滑にする。これらの全てを、グローバル通信ネットワーク、例えばインターネットに接続することができる。
【００７６】
ＬＡＮネットワーク環境で使用する場合、コンピュータ１１０２は有線および／または無線の通信ネットワーク・インタフェースまたはアダプタ１１５６を介してローカル・ネットワーク１１５２に接続される。アダプタ１１５６はＬＡＮ１１５２への有線通信または無線通信を促進することができ、無線アダプタ１１５６と通信するための無線アクセス・ポイントをそれ自体に配置して含むこともできる。
【００７７】
ＷＡＮネットワーク環境で使用する場合、コンピュータ１１０２はモデム１１５８を含むことができ、またはＷＡＮ１１５４上の通信サーバに接続され、または例えばインターネットによってＷＡＮ１１５４上で通信を確立するための他の手段を有する。モデム１１５８は、内部または外部にある有線または無線の装置とすることができ、シリアル・ポート・インタフェース１１４２を介してシステム・バス１１０８に接続される。ネットワーク環境では、コンピュータ１１０２に対して図示したプログラム・モジュール、またはその一部をリモートのメモリまたは記憶装置１１５０に記憶することができる。示したネットワーク接続は例であって、コンピュータ間の通信リンクを確立する他の手段を使用できることは理解されよう。
【００７８】
コンピュータ１１０２は、無線接続において動作可能に配置した任意の無線装置またはエンティティ、例えば、プリンター、スキャナ、デスクトップ・コンピュータおよび／またはポータブル・コンピュータ、ポータブル・データ・アシスタント、通信衛星、無線検出可能なタグに関連する任意の装置または位置（例えば、キオスク、新聞販売店、化粧室）、および電話と通信するよう動作可能である。これには、少なくともＷｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈ（登録商標）の無線技術が含まれる。したがって、通信は、従来のネットワークまたは単に少なくとも２つの装置間のアドホック通信を伴う所定の構造であることができる。
【００７９】
Ｗｉ−Ｆｉ、すなわち、ワイヤレス・フィデリティにより、家のソファ、ホテルの部屋のベッド、または職場の会議室から、配線なしにインターネットに接続することができる。Ｗｉ−Ｆｉは、例えばコンピュータのような装置が基地局の範囲内でればどこでも屋内および屋外でデータを送受信できるようにする携帯電話で使用されるものと同様な無線技術である。Ｗｉ−Ｆｉネットワークは、安全で信頼度が高く、高速な無線接続を提供するためのＩＥＥＥ８０２．１１（ａ、ｂ、ｇ等）と呼ばれる無線技術を使用する。Ｗｉ−Ｆｉネットワークを使用してコンピュータを互いのコンピュータ、インターネット、および（ＩＥＥＥ８０２．３またはイーサネットを使用する）有線ネットワークと接続することができる。Ｗｉ−Ｆｉネットワークは、例えば、無許可の２．４および５ＧＨｚ無線帯域において、１１Ｍｂｐｓ（８０２．１１ａ）もしくは５４Ｍｂｐｓ（８０２．１１ｂ）のデータ速度で、または両方の帯域（デュアル・バンド）を含む製品とともに動作し、したがってネットワークは多くのオフィスで使用される基本的な１０ＢａｓｅＴの有線イーサネット・ネットワークと同様な実世界の性能を提供することができる。
【００８０】
次に図１２を参照すると、本発明による例示的なコンピューティング環境１２００の略ブロック図が示されている。システム１２００は１つまたは複数のクライアント１２０２を備える。クライアント１２０２はハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。クライアント１２０２は、例えば、本発明を使用することでクッキーおよび／または関連するコンテクスト情報を収容することができる。
【００８１】
システム１２００は１つまたは複数のサーバ１２０４も備える。サーバ１２０４も、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。サーバ１２０４は、例えば、本発明を使用することで、変換を実施するためのスレッドを収容することができる。クライアント１２０２とサーバ１２０４の間の１つの可能な通信形態は、複数のコンピュータ・プロセス間で送信されるよう適応させたデータ・パケットの形とすることができる。データ・パケットは、例えばクッキーおよび／または関連するコンテクスト情報を含んでもよい。システム１２００は、クライアント１２０２とサーバ１２０４の間の通信を容易にするために使用できる通信フレームワーク１２０６（例えば、インターネットのようなグローバル通信ネットワーク）を備える。
【００８２】
通信を有線技術（光ファイバを含む）および／または無線技術を介して促進することができる。クライアント１２０２は、クライアント１２０２にローカルな情報（例えば、クッキーおよび／または関連するコンテクスト情報）の記憶に使用できる１つまたは複数のクライアント・データ・ストア１２０８に動作可能に接続される。同様に、サーバ１２０４は、サーバ１２０４にローカルな情報の記憶に使用できる１つまたは複数のサーバ・データ・ストア１２１０に動作可能に接続される。
【００８３】
以上の説明には本発明の種々の例が含まれる。当然のことながら、本発明を説明する目的で構成要素または方法の全ての考えうる組合せを記載することは不可能であるが、本発明の多数のさらなる組合せおよび置換が可能であることは当業者には理解されよう。したがって、本発明は添付の特許請求の範囲の趣旨および範囲内にある全ての代替物、修正物、および変形物を含むことを意図している。さらに、発明を実施するための形態または特許請求の範囲において用語「含む」を使用する限りでは、係る用語は用語「備える」を請求項において代わりに使用する場合に解釈される用語「備える」と同様に、包括的であることを意図している。
【図１】
2010541077.tif 000003
【図２】
2010541077.tif 000004
【図３】
2010541077.tif 000005
【図４】
2010541077.tif 000006
【図５】
2010541077.tif 000007
【図６】
2010541077.tif 000008
【図７】
2010541077.tif 000009
【図８】
2010541077.tif 000010
【図９】
2010541077.tif 000011
【図１０】
2010541077.tif 000012
【図１１】
2010541077.tif 000013
【図１２】
2010541077.tif 000014
【国際調査報告】
2010541077.tif 000015
2010541077.tif 000016