(57)【特許請求の範囲】
【請求項１】
クライアントアプリケーションにファイルへのアクセスを提供する方法であって、
前記クライアントアプリケーションが前記ファイルを開くように構成され、かつ、前記ファイルのファイル・タイプを取り扱う機能を有しているという判断に応答して、前記ファイル・タイプの前記ファイルを前記ファイルのローカル・オフライン・バージョン又は前記ファイルのウェブ・オンライン・バージョンのうちの少なくとも一方と同期させる同期権限を、同期モジュールから前記クライアントアプリケーションに委譲するステップであって、前記判断は、オペレーティング・システム・レジストリに基づく、ステップと、
前記クライアントアプリケーションから、前記ファイルへアクセスする要求を受信するステップと、
前記ファイルとして、前記ファイルの前記ローカル・オフライン・バージョンと前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップと、
を含む、方法。
【請求項２】
前記ファイルの前記ローカル・オフライン・バージョンと前記ファイルの前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップは、
前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供することと、
前記クライアントアプリケーションに、前記ウェブ・オンライン・バージョンに関連付けられるＵＲＬを提供することを含む、請求項１に記載の方法。
【請求項３】
前記クライアントアプリケーションによってアクセスされる前記ファイルは、前記ファイルの前記ローカル・オフライン・バージョンの少なくとも一部と、前記ファイルの前記ウェブ・オンライン・バージョンの少なくとも一部から導出される、
を含む、請求項１に記載の方法。
【請求項４】
前記クライアントアプリケーションが前記ファイルにアクセスしている間に、前記ファイル、前記ファイルの前記ローカル・オフライン・バージョン、及び前記ファイルの前記ウェブ・オンライン・バージョンを同期させるステップ
を含む、請求項１に記載の方法。
【請求項５】
前記クライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間で、前記ファイルの共同オーサリングを可能にするステップを含み、前記ファイルと前記対応するファイルとが、前記ファイルの前記ウェブ・オンライン・バージョンを経由して同期される、請求項１に記載の方法。
【請求項６】
前記クライアントアプリケーションに、前記ファイルの前記ウェブ・オンライン・バージョンに対する修正についての通知を提供するステップと、
前記クライアントアプリケーションに、前記ファイルと前記ファイルの前記ウェブ・オンライン・バージョンとを同期させるように指示するステップと
を含む、請求項５に記載の方法。
【請求項７】
前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられるローカル・ファイル・パスと、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられるＵＲＬを提供するステップと、
前記クライアントアプリケーションに、前記ローカル・ファイル・パス及び前記ＵＲＬを使用して前記ファイルの前記ローカル・オフライン・バージョンを前記ファイルの前記ウェブ・オンライン・バージョンと同期させる同期権限を委譲するステップと
を含む、請求項１に記載の方法。
【請求項８】
前記クライアントアプリケーションに、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられるＵＲＬを提供するステップと、
前記クライアントアプリケーションに、前記ＵＲＬを使用して前記ファイルと前記ファイルの前記ウェブ・オンライン・バージョンとを同期させる同期権限を委譲するステップと
を含む、請求項１に記載の方法。
【請求項９】
クライアントアプリケーションに、ファイルへのオフライン・アクセスを提供するシステムであって、
プロセッサと、
前記プロセッサに結合され、同期モジュールを記憶するメモリと、を備え、前記同期モジュールは、前記プロセッサによって実行されると、
前記クライアントアプリケーションが前記ファイルを開くように構成され、かつ、前記ファイルのファイル・タイプを取り扱う機能を有しているという判断に応答して、前記ファイル・タイプの前記ファイルを前記ファイルのローカル・オフライン・バージョン又は前記ファイルのウェブ・オンライン・バージョンのうちの少なくとも一方と同期させる同期権限を、当該同期モジュールから前記クライアントアプリケーションに委譲するステップであって、前記判断は、オペレーティング・システム・レジストリに基づく、ステップと、
前記クライアントアプリケーションから、前記ファイルへアクセスする要求を受信するステップと、
前記ファイルとして、前記ファイルの前記ローカル・オフライン・バージョンと前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップと、
を含む処理を実行するように構成される、
システム。
【請求項１０】
前記要求が、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられたＵＲＬを含み、前記同期モジュールが、前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供するように構成され、前記ローカル・ファイル・パスが、前記ＵＲＬに基づいて特定される、請求項９に記載のシステム。
【請求項１１】
プロセッサによって実行されると、該プロセッサに、クライアントアプリケーションにファイルへのアクセスを提供するための処理を実行させるコンピュータプログラムであって、前記処理は、
前記クライアントアプリケーションが前記ファイルを開くように構成され、かつ、前記ファイルのファイル・タイプを取り扱う機能を有しているという判断に応答して、前記ファイル・タイプの前記ファイルを前記ファイルのローカル・オフライン・バージョン又は前記ファイルのウェブ・オンライン・バージョンのうちの少なくとも一方と同期させる同期権限を、同期モジュールから前記クライアントアプリケーションに委譲するステップであって、前記判断は、オペレーティング・システム・レジストリに基づく、ステップと、
前記クライアントアプリケーションから、前記ファイルへアクセスする要求を受信するステップと、
前記ファイルとして、前記ファイルの前記ローカル・オフライン・バージョンと前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップと、
を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントアプリケーションのファイル・アクセスに関する。
【背景技術】
【０００２】
多くのユーザは、ラップトップ、デスクトップ、スマートフォンなどの様々なコンピューティングデバイス、及び／又は他のデバイスを所有する。このようなデバイス間において、データの共有が望ましい可能性がある。一例において、ウェブ・ストレージ・サービスは、ユーザがオンライン・ストレージにファイルをアップロードし、様々なデバイス間でこのようなファイルを同期させることを許容することがある。特に、同期（ｓｙｎｃ）モジュールなどの同期サービスが、ユーザデバイスにインストールされることがある。共有すべきファイルが利用可能であるとき（例えばクライアントアプリケーションによって現在アクセスされていない）、同期サービスは、共有されるファイルをウェブ・ストレージ・サービスにアップロードすることができる。残念ながら、同期サービスは、少なくともクライアントアプリケーションと比べて、非効率及び／又は不十分なファイル取り扱い能力しか有さない可能性がある。例えば同期サービスは、特定のタイプのファイルに対して調整されない可能性がある、汎用のアップロード／ダウンロードの機能性を有することがある（これに対して、例えばワード処理のクライアントアプリケーションは、テキスト文書に対する変更を、例えば所望の効率的な様式等で保存することができる可能性がある）。それでも、クライアントアプリケーションは、洗練されたファイル取り扱い機能を有し得るものの、クライアントアプリケーションは（同期サービスとは異なり）、整備されている可能性がある同期サービス、同期技法の存在、及び／又はオフライン・アクセスの利用可能性を認識していない可能性がある。
【発明の概要】
【０００３】
この「発明の概要」の記載は、「発明を実施するための形態」において以下にさらに記載される概念の選択を、簡略化された形式で紹介するために提供される。この「発明の概要」の記載は、特許請求に係る主題の手法な要因又は本質的特徴を特定するようには意図されておらず、特許請求に係る主題の範囲を限定するのに用いられるようにも意図されていない。
【０００４】
特に、クライアントアプリケーションにファイルへのアクセスを提供し、クライアントアプリケーションに同期権限を委譲し、及び／又はクライアントアプリケーションにファイルへのオフライン・アクセスを提供する、１つ又は複数のシステム及び／又は技法を本明細書において開示する。クライアントアプリケーションをホストするクライアントデバイスを、オンライン・ストレージをホストするウェブ・ストレージ・サービスにアクセスするように構成された同期モジュールに関連付けることができる。オンライン・ストレージは、共有されるファイルのウェブ・オンライン・バージョンを格納するように構成される。同期モジュールは、ウェブ・ストレージ・サービスから共有ファイルのウェブ・オンライン・バージョンに関して通知（例えばファイルのウェブ・オンライン・バージョンが追加、除去及び／又は修正されたという通知）を受信するように構成される。同期モジュールは、共有ファイルのローカル・オフライン・バージョンを管理するように構成される（例えば同期モジュールは、ウェブ・ストレージ・サービスを経由して共有されるファイルのローカルコピーを追加、除去、及び／又は修正することができる）。このようにして、同期モジュールは、ファイルのローカル・オフライン・バージョン、及び／又はファイルのウェブ・オンライン・バージョンに関連付けられる同期情報などの知識を有し得る（例えばこの場合、クライアントアプリケーションは、そのような知識を保有しない）。したがって、同期モジュールは、同期情報（例えばファイルのウェブ・オンライン・バージョンのＵＲＬ、ファイルのローカル・オフライン・バージョンのローカル・ファイルのパス、同期権限等）をクライアントアプリケーションに提供することができ、その結果、クライアントアプリケーションは、ファイルの同期を実施すること、ファイルのローカル・オフライン・バージョン及び／又はファイルのウェブ・オンライン・バージョンに基づいてファイルにアクセスすること、並びに／あるいはウェブ・ストレージ・サービス及び／又はクライアントデバイスがオフラインであったとしても、共有ファイルにアクセスすることが可能になり得る（例えば以前に同期されたファイルに対するオフライン・アクセスが提供され得る）。クライアントアプリケーションによって実行されるファイルの同期は、単にファイルデータを転送すること（例えばファイルをオンライン・ストレージに上り方向に転送するか、及び／又はオンライン・ストレージから下り方向に転送すること）から、洗練された同期の機能性を実施すること（例えばファイル間でコンテンツを同期させること）にまで及ぶ可能性があることが認識される。すなわち、同期及び／又は同様のものは、データ・ファイルを同期させることとは対照的に、データを転送することを単に含み得るが、当然ながら、同期させることも含み得る。
【０００５】
クライアントアプリケーションにファイルへのアクセスを提供する一例では、クライアントアプリケーションから、ファイルへアクセスするための要求が受信され得る。例えばワード・プロセッサは、共有されるテキストファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイルのパス、共有されるテキストファイルのウェブ・オンライン・バージョンに関連付けられたＵＲＬ、及び／又は共有されたテキストファイルの列挙を要求する一般問合せを含む要求を生成することができる。ファイルのローカル・オフライン・バージョンがローカルに格納されている場合、クライアントアプリケーションに、ファイルとして、ローカル・オフライン・バージョンへのアクセスを提供することができる（例えばワード・プロセッサに、少なくとも部分的にテキストファイルのローカル・オフライン・バージョンから導出される、テキストファイルへのアクセスを提供することができる）。一例において、ファイルのウェブ・オンライン・バージョンが利用不可能である（例えばオフラインである）場合であっても、ファイルのローカル・オフライン・バージョンに対するアクセスを提供することができる。ファイルのウェブ・オンライン・バージョンがリモートに格納されている場合、クライアントアプリケーションに、ファイルとして、ファイルのウェブ・オンライン・バージョンへのアクセスを提供することができる（例えばワード・プロセッサに、少なくとも部分的にテキストファイルのウェブ・オンライン・バージョンから導出されたテキストファイルへのアクセスを提供することができる）。
【０００６】
一例において、クライアントアプリケーションには、ファイルとして、当該ファイルのローカル・オフライン・バージョンと当該ファイルのウェブ・オンライン・バージョンとの双方に対するアクセスを提供することができる（例えばワード・プロセッサには、テキストファイルのローカル・オフライン・バージョンの少なくとも一部と、テキストファイルのウェブ・オンライン・バージョンの少なくとも一部とから導出されたテキストファイルへのアクセスを提供することができ、その結果、ワード・プロセッサによってアクセスされるテキストファイルは、テキストファイルのローカル・オフライン・バージョンとテキストファイルのウェブ・オンライン・バージョンとの双方に関連付けられることになる）。このようにして、クライアントアプリケーションによるファイルとの対話及び／又はファイルへの修正を、クライアントアプリケーションによってアクセスされたファイル、該ファイルのローカル・オフライン・バージョン、及び／又は該ファイルのウェブ・オンライン・バージョンの間で同期することができる。例えば同期は、クライアントアプリケーションがファイルにアクセスしている間に、リアルタイムで実施されることがある。このようなリアルタイムの同期により、ファイルと、リモートのクライアントアプリケーションによってアクセスされる、対応するファイルとの間の共同オーサリングが可能になる。例えばファイル及び／又は対応するファイルを、クライアントアプリケーション及び／又はリモートのクライアントアプリケーションに対してアクセス可能なファイルのウェブ・オンライン・バージョンに基づいて、リアルタイムで更新することができる。
【０００７】
クライアントアプリケーションに同期権限を委譲する一例において、ファイルがフォーマットされる、特定のファイル・タイプと対話するように構成されたクライアントアプリケーションを識別することができる（例えばワード・プロセッサは．ｔｘｔファイル・タイプとしてフォーマットされるテキストファイルと対話するように構成される）。クライアントアプリケーションは、ファイル・タイプに関して、洗練されたファイル取り扱い機能性を備えることができる。例えばワード・プロセッサは、テキストファイルの全体を再保存するのとは対照的に、既存のテキストファイルに対して行われた変更のみを保存するように構成され得る。大量の異なるファイル・タイプ（例えば．ｔｘｔテキストファイル、．ｂｍｐ画像ファイル、．ｚｉｐ圧縮ファイル、．ｘｌｓスプレッドシート・ファイル等）がウェブ・ストレージ・サービスによって共有される可能性があるため、同期モジュールは、その様々なファイル・タイプに関して適切なファイル取り扱い機能を備えていないことがある（例えば同期モジュールは、汎用のダウンロード／アップロードの機能性しか備えていないことがある）。したがって、同期モジュールにとって、クライアントアプリケーションに同期権限を委譲し、その結果、クライアントアプリケーションが、該クライアントアプリケーションによってアクセスされたファイル、該ファイルのローカル・オフライン・バージョン、及び／又はファイルのウェブ・オンライン・バージョンを同期させることができるようにすることが効率のよい可能性がある。本明細書における態様は、概して、例えば同期サービス及びクライアントアプリケーションに関連する弱点、欠点等を緩和、回避等しつつも、例えば同期サービス及びクライアントアプリケーションに関連する強み、利点等を促進、活用等することを認識されたい。一例において、（例えばファイルへの許可されたアクセスを与える広範なセキュリティ機能を実施するのとは対照的に）同期権限の委譲は、単に同期のタスク（例えばファイル転送）をクライアントアプリケーションに委譲することを含むことを認識されたい。すなわち（逆のことが示されない限り）、同期「権限」の委譲及び／又は同様の文言が、本明細書の全体にわたって使用されるとしても、本出願は、添付の特許請求の範囲の範囲を含め、認証動作（例えば認証情報の要求及び／又は検証など）に限定するようには意図されておらず、及び／又は認証動作を必要とするようにも企図されていない。
【０００８】
上記の目的及び関連する目的を達成するために、以下の説明及び添付された図面では、ある特定の例示的な態様及び実装を説明する。これらは、１つ又は複数の態様を用いることができる様々な方法のうちの一部のみを示すものにすぎない。本開示の他の態様、利点及び新規の特徴は、添付の図面とともに考察されるときに、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】クライアントアプリケーションにファイルへのアクセスを提供する例示的方法を示すフローチャートである。
【図２】同期権限をクライアントアプリケーションに委譲する例示的方法を示すフローチャートである。
【図３】クライアントアプリケーションにファイルへのオフライン・アクセスを提供する例示的方法を示すフローチャートである。
【図４】同期権限をクライアントアプリケーションに委譲する例示的システムを示すコンポーネント・ブロック図である。
【図５】クライアントアプリケーションにファイルへのアクセスを提供する例示的システムを示すコンポーネント・ブロック図である。
【図６】クライアントアプリケーションにファイルへのオフライン・アクセスを提供する例示的システムを示すコンポーネント・ブロック図である。
【図７】文書の共同オーサリングを可能にする例を示す図である。
【図８】本明細書で説明されるプロビジョンのうちの１つ又は複数を具現化するように構成されたプロセッサ実行可能な命令を備え得る、例示的コンピュータ読取可能媒体を示す図である。
【図９】本明細書で説明されるプロビジョンのうちの１つ又は複数が実装され得る、例示的コンピューティング環境を示す図である。
【発明を実施するための形態】
【００１０】
次に、特許請求に係る主題を、図面を参照しながら説明する。図面では一般に、同じ参照番号が、全体にわたって同じ要素を指すのに使用される。以下の記述では、説明の目的で、特許請求に係る主題の完全な理解をもたらすために、多数の具体的な詳細が説明される。しかしながら、特許請求に係る主題が、これらの具体的な詳細を用いずに実施されてもよいことは明らかであろう。他の場合において、構造及びデバイスが、主題の記載を容易にするためにブロック図の形式で図示される。
【００１１】
今日、データはよくコンピューティングデバイス間で共有される。例えばユーザは、ウェブ・ストレージ・サービスによってホストされるオンライン・ストレージを使用して、デスクトップ・デバイスとスマートフォンとの間で写真を共有することができる。共有した写真の同期は、そのデスクトップ・デバイス及びスマートフォン上の同期モジュールによって提供され得る。残念ながら、ウェブ・ストレージ・サービスが利用不可能の場合（例えばオフライン）、ユーザは、オンライン・ストレージ内に格納された、共有した写真に、デスクトップ・デバイス及び／又はスマートフォンからアクセスすることができないことがある。加えて、同期モジュールは、共有した写真に関連付けられたファイル・タイプに精通していない可能性がある（例えば同期モジュールは、汎用のアップロード／ダウンロード機能しか備えていない可能性がある）のに対して、デスクトップ・デバイス及び／又はスマートフォン上の写真クライアントアプリケーションは、共有された写真に関連付けられた、格納／同期の機能を取り扱うのにより適している可能性がある。しかしながら、写真クライアントアプリケーションは、実施されている可能性があるウェブ・ストレージ・サービス及び／又は同期ポリシーについて、認識していない可能性がある。したがって、同期モジュールは、写真クライアントアプリケーションの洗練されたファイルの取り扱い機能を用いずに、共有された写真を同期させることにおいて、非効率である可能性がある。
【００１２】
したがって、他のものの中でも特に、クライアントアプリケーションにファイルへのアクセスを提供し、クライアントアプリケーションに同期権限を委譲し、及び／又はクライアントアプリケーションにファイルへのオフライン・アクセスを提供するための、１つ又は複数のシステム及び／又は技法が本明細書において提供される。
【００１３】
図１の例示的方法１００によって、クライアントアプリケーションにファイルへのアクセスを提供する一実施形態が示される。この方法は、１０２において開始する。１０４において、クライアントアプリケーションから、ファイルへアクセスするよう求める要求を受信する。要求を受信する一例において、この要求は、ウェブ・ストレージ・サービスによって共有された利用可能なファイルについての、同期モジュールへの問合せを含み得る。同期モジュールは、クライアントアプリケーションが理解することが可能な、及び／又は対話することが可能な１つ又は複数のファイル・タイプを判断することができる（例えばクライアントアプリケーションが、ファイル・タイプの互換性情報を同期モジュールに提供することがある）。このようにして、クライアントアプリケーションに、識別されたファイル・タイプに対応するファイル・タイプに従ってフォーマットされた、１つ又は複数のファイルへのアクセスを提供することができる。要求を受信する別の例において、要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたローカル・ファイル・パスを含むことがある。別の例において、この要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたＵＲＬを含むことがある。別の例において、この要求は、ファイルを識別するリソースＩＤを含むことがある（例えばリソースＩＤは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び／又はクライアントアプリケーションとを一意に結び付ける）。一例において、同期モジュールが、ウェブ・ストレージ・サービスによって共有されたファイルに関する知識、及び／又は共有されたファイルのローカルに格納されたバージョンに関する知識を備えることがあり、一方、クライアントアプリケーションは、このような知識を有していないことがあることが認識される。
【００１４】
１０６において、ファイルのローカル・オフライン・バージョンが、ローカルに格納されている場合、クライアントアプリケーションに、ファイルとして、ローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる（例えば同期モジュールは、ローカル・ファイル・パスを、クライアントアプリケーションによる要求で指定され得るウェブ・オンライン・バージョンに関連付けられたＵＲＬに基づいて導出することができる）。このようにして、クライアントアプリケーションは、ローカル・ファイル・パスを使用して、ローカル・オフライン・バージョンからファイルを開くことができる。一例において、このファイルがローカルに格納されるように指定されているものの、まだローカルに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなローカル・オフライン・バージョンが作成されるべきローカル・パスを、クライアントアプリケーションに提供してもよい。１０８において、ファイルのウェブ・オンライン・バージョンが、リモートに（例えばウェブ・ストレージ・サービスによってホストされるオンライン・ストレージ内に）格納されている場合、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンへのアクセスをファイルとして提供することができる。例えばファイルのウェブ・オンライン・バージョンに関連付けられたＵＲＬを、クライアントアプリケーションに提供することができる（例えば同期モジュールは、クライアントアプリケーションによる要求内で指定され得るローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスに基づいて、ＵＲＬを導出することができる）。このようにして、クライアントアプリケーションは、そのＵＲＬを使用して、ウェブ・オンライン・バージョンからファイルを開くことができる。一例において、このファイルが、リモートに格納されるように指定されているものの、まだリモートに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなリモート・バージョンが作成されるべきリモート・パスを、クライアントアプリケーションに提供することができる。
【００１５】
一例において、クライアントアプリケーションに、ローカル・オフライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ファイルのウェブ・オンライン・バージョンが利用可能ではない（例えばオフライン）か、及び／又はクライアントアプリケーションにとって、アクセスすることが非効率であり得るためである。別の例において、クライアントアプリケーションに、ウェブ・オンライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ウェブ・オンライン・バージョンが、ファイルの最新のバージョンであるか、及び／又はファイルのローカル・オフライン・バージョンが利用不可能であり得るためである。別の例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンとファイルのウェブ・オンライン・バージョンとの双方へのアクセスがファイルとして提供されることがある。すなわち、クライアントアプリケーションによってアクセスされたファイルは、ファイルのローカル・オフライン・バージョンの少なくとも一部と、ファイルのウェブ・オンライン・バージョンの少なくとも一部とから導出されるか、及び／又はそれらの部分に同期的に関連付けられることがある。このようにして、クライアントアプリケーションによってアクセスされるファイル、ファイルのローカル・オフライン・バージョン、及び／又はファイルのウェブ・オンライン・バージョンを同期することができる。このような同期は、例えばクライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間のファイルの共同オーサリングを可能にすることができる。例えばファイル及び対応するファイルは、ファイルのウェブ・オンライン・バージョンを経由して同期され得る（例えばリモートのクライアントアプリケーションによってファイルのウェブ・オンライン・バージョンに対して行われた修正が、同期モジュールによって検出されることがあり、同期モジュールは、クライアントアプリケーションに、ファイルを、当該ファイルのウェブ・オンライン・バージョンと同期させるように指示することができる）。
【００１６】
クライアントアプリケーションは、あるファイル・タイプを取り扱うための洗練された機能を備えることがあり、一方、同期モジュールは、このような高度な機能を備えていないことがある（例えば同期モジュールは、共有されたファイルに関連付けられている可能性がある広範なファイル・タイプに起因して、汎用のアップロード／ダウンロードの機能しか備えていないことがある）。したがって、同期権限が、クライアントアプリケーションに委譲されることがある。一例において、クライアントアプリケーションに対して、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、このローカル・ファイル・パスを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたＵＲＬを提供し、このＵＲＬを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び／又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このように、クライアントアプリケーションによって提供されるファイル取り扱い機能を用いて、より向上した同期を提供することができる。
【００１７】
同期モジュールは、ウェブ・ストレージ・サービスから通知を規則的に受け取るので、同期モジュールは、ファイルのウェブ・オンライン・バージョンが修正されたという通知をクライアントアプリケーションに提供し、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのウェブ・オンライン・バージョンとを同期させるように指示することができる。同期モジュールは、共有されたローカル・ファイルのローカル・ストレージをモニタリングし得るため、同期モジュールは、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのローカル・オフライン・バージョンとを同期させるように指示し得る。１１０において、この方法は終了する。
【００１８】
図２の例示的方法２００によって、クライアントアプリケーションに同期権限を委譲する一実施形態が示される。この方法は、２０２において開始する。２０４において、ファイルがフォーマットされる特定のファイル・タイプと対話するように構成されたクライアントアプリケーションを識別することができる。例えばオペレーティング・システム・レジストリを調べて、クライアントアプリケーションが、そのファイル・タイプに従ってフォーマットされたファイルを開くことができるかどうかを判断することができる（例えばレジストリ・キーは、ワード・プロセッサが．ｔｘｔファイルを開くことができることを示すことがある）。別の例において、クライアントアプリケーションのインストール、クライアントアプリケーションのアンインストール、クライアントアプリケーションに対する修正、及び／又はクライアントアプリケーションに関連付けられたファイル・タイプ（例えば．ｔｘｔ及び．ｄｏｃｘ（しかし例えば．ｊｐｇではない））を、オペレーティング・システム・レジストリ内の１つ又は複数のレジストリ・キーを使用して識別することができる。２０６において、同期権限をクライアントアプリケーションに委譲して、クライアントアプリケーションによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び／又は当該ファイルのウェブ・オンライン・バージョンを同期させることができる。一例において、ファイルをリソースＩＤによって識別することができる（例えばリソースＩＤは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び／又はクライアントアプリケーションとを一意に結び付ける）。
【００１９】
一例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、該ローカル・ファイル・パスを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたＵＲＬを提供し、このＵＲＬを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び／又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このようにして、クライアントアプリケーションによって提供されるファイルの取り扱い機能を用いて、より向上した同期を提供することができる。２０８において、この方法は終了する。
【００２０】
図３の例示的方法３００によって、クライアントアプリケーションにファイルへのオフライン・アクセスを提供する一実施形態が示される。この方法は、３０２において開始する。３０４において、ファイルへアクセスする要求が、クライアントアプリケーションから受信され得る。一例において、この要求は、ファイルを識別するリソースＩＤを含み得る（例えばリソースＩＤは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び／又はクライアントアプリケーションとを一意に結び付ける）。任意選択により、３０６において、ファイルのウェブ・オンライン・バージョンの利用不可能性が判断され得る（例えばファイルのウェブ・オンライン・バージョンを含むオンライン・ストレージのホストするウェブ・ストレージ・サービスが、アクセス不可能であることがある）。一例において、同期モジュールが、ファイルのローカル・オフライン・バージョンを事前に格納している可能性がある（例えば同期モジュールが、ファイルのウェブ・オンライン・バージョンを、クライアントアプリケーションに対してローカルに格納されたファイルのローカル・オフライン・バージョンとしてダウンロードしている可能性がある）ことが認められ得る。３０８において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる（例えば要求が、ファイルのウェブ・オンライン・バージョンに関連付けられたＵＲＬを含むことがあり、当該ＵＲＬに基づいて、ローカル・ファイル・パスを特定することができる（これは、例えばオンライン・バージョンが利用可能ではないためである））。３１０においてこの方法は終了する。
【００２１】
図４は、同期権限をクライアントアプリケーション４１０に委譲するために構成されたシステム４００の例を図示している。システム４００は、同期モジュール４１６を含み得る。同期モジュール４１６は、共有されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース４０２から、通知４０８を規則的に受け取るように構成されることができる。同期モジュール４１６は、ファイルのウェブ・オンライン・バージョン４０４が作成、修正及び／又は削除されたという通知など、共有／同期されたファイルに関連付けられる様々な情報を含む通知４０８を受信することができる。同期モジュール４１６は、ファイルのローカル・オフライン・バージョン４２４などの共有／同期されたファイルのローカル・ストレージ４２２（例えばクライアントアプリケーション４１０を含むコンピューティングデバイスに関連付けられたストレージ）に関連付けられたトポロジ・イベント（例えば作成、修正、削除等）のモニタリング及び／又は実行４２０を行うように構成され得る。一例において、ファイル４０４はリソースＩＤによって識別され得る（例えばリソースＩＤは、ファイル４０４と、同期モジュール４１６、ウェブ・ストレージ・サービス、及び／又はクライアントアプリケーション４１０とを一意に結び付け得る）。
【００２２】
同期モジュール４１６が、特定のタイプのファイルを取り扱う洗練させた機能（例えばファイル内のどのデータを同期すべきかを判断するために使用される機能）を備えていない可能性があるため、同期モジュール４０６は、同期情報４１４をクライアントアプリケーション４１０に提供するように構成されることがある。クライアントアプリケーション４１０は、特定のファイル・タイプに従ってフォーマットされたファイルを取り扱うための洗練された機能を備えることができる。このようにして、クライアントアプリケーション４１０は、当該クライアントアプリケーション４１０によってアクセスされたファイル４１２、ファイルのウェブ・オンライン・バージョン４０４、及び／又はファイルのローカル・オフライン・バージョン４２４の間において、同期４０６及び／又は４１８などの同期を実施し得る。同期モジュール４１６は、同期情報（例えば同期モジュール４１６の存在、ファイルのローカル・オフライン・バージョンがどこに格納されているか等に関する情報）をクライアントアプリケーション４１０に提供し得る。一例において、同期モジュール４１６は、ファイルのウェブ・オンライン・バージョン４０４に関連付けられたＵＲＬと、同期権限とを同期情報４１４内で提供することがあり、それによってクライアントアプリケーション４１０が、例えばファイル４１２とファイルのウェブ・オンライン・バージョン４０４とを同期４０６させることが可能になる。別の例において、同期モジュール４１６は、ファイルのローカル・オフライン・バージョン４２４に関連付けられたローカル・ファイル・パスと、同期権限とを同期情報４１４内で提供することがあり、それによってクライアントアプリケーション４１０が、ファイル４１２とファイルのローカル・オフライン・バージョン４２４とを同期４１８させることが可能になる。別の例において、同期モジュール４１６は、ローカル・ファイル・パス、ＵＲＬ、及び／又は同期権限を同期情報４１４内で提供することがあり、それによってクライアントアプリケーション４１０が、ファイル４１２、ファイルのローカル・オフライン・バージョン４２４、及び／又はファイルのウェブ・オンライン・バージョン４０４を同期させることが可能になる。同期モジュール４１６は、同期の進捗状況、成功、及び／又は失敗に関する情報を求めて、クライアントアプリケーション４１０をポーリングし得る（例えばクライアントアプリケーション４１０は、同期モジュール４１６に対し、ポーリングに利用可能な新たな同期イベントを通知する可能性があり、これにより特に、例えば追加のオーバーヘッドをほとんど又は全く伴わずに、同期モジュールのＵＩ更新の増加をもたらすことができる）。このようにして、クライアントアプリケーション４１０は、同期モジュール４１６に代わってロバストな同期を実施することができる（なぜなら、例えば同期モジュール４１６は、洗練された同期を取り扱うように装備又は構成等されていない可能性があるためである）。
【００２３】
図５は、クライアントアプリケーション５０８にファイル５１４へのアクセスを提供するために構成されたシステム５００の例を図示している。システム５００は、同期モジュール５１０を含み得る。同期モジュール５１０は、共有／同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース５０２からの通知を規則的に受け取るように構成され得る。同期モジュール５１０は、ファイルのウェブ・オンライン・バージョン５０４に関する通知（例えばファイルのウェブ・オンライン・バージョン５０４の作成、修正、及び／又は削除に関する情報を含む通知）などの、共有／同期されたファイルに関する情報を受信し得る。同期モジュール５１０は、ファイルのローカル・オフライン・バージョン５１８などの共有／同期されたファイルのローカル・ストレージ５１６（例えばクライアントアプリケーション５０８を含むコンピューティングデバイスに関連付けられたストレージ）に関連付けられたトポロジ・イベント（例えば作成、修正、削除等）をモニタリング及び／又は実施するように構成され得る。
【００２４】
同期モジュール５１０は、ファイルのウェブ・オンライン・バージョン５０４に関連付けられたＵＲＬ、及び／又はファイルのローカル・オフライン・バージョン５１８に関連付けられたローカル・ファイル・パスのような同期情報５１２を、クライアントアプリケーション５０８に提供するように構成され得る。このようにして、同期モジュール５１０は、ファイルのローカル・オフライン・バージョン５１８へのアクセス５２０をファイル５１４として、及び／又はファイルのウェブ・オンライン・バージョン５０４へのアクセス５０６をファイル５１４として、クライアントアプリケーション５０８に提供し得る。クライアントアプリケーション５０８は、ファイル５１４にアクセスするときに、同期情報５１２を用いてよい。例えばファイル５１４は、クライアントアプリケーション５０８によって、ファイルのウェブ・オンライン・バージョン５０４の少なくとも一部、及び／又はファイルのローカル・オフライン・バージョン５１８の少なくとも一部を用いて開かれることがある。
【００２５】
図６は、クライアントアプリケーション６０８にファイル６１４へのオフライン・アクセスを提供するために構成されたシステム６００の例を図示している。システム６００は、同期モジュール６１０を含み得る。同期モジュール６１０は、共有／同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース６０２から、通知を規則的に受け取るように構成され得る。同期モジュール６１０は、ファイルのウェブ・オンライン・バージョン６０４に関する通知（例えばファイルのウェブ・オンライン・バージョン６０４の作成、修正、及び／又は削除に関する情報を含む通知）などの、共有／同期されたファイルに関する情報を受信し得る。同期モジュール６１０は、ローカル・ストレージ６１６（例えばクライアントアプリケーション６０８からローカルにアクセス可能なストレージ）内に共有／同期されたファイルのバージョンを、ローカルに格納するように構成され得る。例えば同期モジュール６１０は、ファイルのウェブ・オンライン・バージョン６０４を、ローカル・ストレージ６１６内にファイルのローカル・オフライン・バージョン６１８として格納し得る。このようにして、同期モジュール６１０は、ファイルのローカル・オフライン・バージョン６１８に基づいて、クライアントアプリケーション６０８に、ファイル６１４へのオフライン・アクセスを提供することができる。
【００２６】
一例において、同期モジュール６１０は、クライアントアプリケーション６０８から、ファイル６１４へアクセスする要求を受信し得る。同期モジュール６１０は、クライアントアプリケーション６０８に、ファイルのローカル・オフライン・バージョン６１８に関連付けられたローカル・ファイル・パス６１２を提供し得る。リモート・ソース６０２及び／又はファイルのウェブ・オンライン・バージョン６０４が、オフライン６０６である（例えばクライアントアプリケーション６０８にとって利用不可能である）可能性があるため、同期モジュール６１０は、ローカル・ファイル・パス６１２を、クライアントアプリケーション６０８に単に提供してもよい。したがって、クライアントアプリケーション６０８は、ローカル・ファイル・パス６１０を使用して、ファイル６１４として、ファイルのローカル・オフライン・バージョン６１８にアクセス６２０し得る。このようにして、クライアントアプリケーション６０８に、ファイル６１４へのオフライン・アクセスを提供することができる。
【００２７】
図７は、文書の共同オーサリングを可能にする例７００を図示している。テキストファイルなどの文書は、共有／同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース７０２へ、ファイルのウェブ・オンライン・バージョン７０４としてアップロードされ得る。ファイルのウェブ・オンライン・バージョン７０４は、クライアントアプリケーション７１０、リモートのクライアントアプリケーション７１２、並びに／あるいは他のクライアントアプリケーション及び／又はデバイス（図示せず）の間で共有／同期され得る。ファイルのウェブ・オンライン・バージョン７０４は、クライアントアプリケーション７１０のホストするクライアントデバイスに同期７０６されるか、及び／又はリモートのクライアントアプリケーション７１２のホストするリモートクライアントデバイスに同期７０８され得る。クライアントアプリケーション７１０は、ファイル７１４として、ファイルのウェブ・オンライン・バージョン７０４（例えばファイルのウェブ・オンライン・バージョン７０４のインスタンス）にアクセスし得る。リモートのクライアントアプリケーション７１２は、対応するファイル７１６として、ファイルのウェブ・オンライン・バージョン７０４（例えばファイルのウェブ・オンライン・バージョン７０４のインスタンス）にアクセスし得る。ファイル７１４及び対応するファイル７１８が、クライアントアプリケーション７１０及び／又はリモートのクライアントアプリケーション７１２によってアクセスされている間に、ファイルのウェブ・オンライン・バージョン７０４と同期され得るため、共同オーサリングが可能になり得る。例えばクライアントアプリケーション７１０のユーザは、ファイル７１４と対話している間、リモートのクライアントアプリケーション７１２のリモートユーザによって行われた対応するファイル７１６との対話を視認することが可能である。同様に、リモートのクライアントアプリケーション７１２のリモートユーザは、対応するファイル７１６と対話している間、クライアントアプリケーション７１０のユーザによって行われたファイル７１４との対話を視認することが可能である。このようにして、ファイルのウェブ・オンライン・バージョン７０４の同期７０６及び／又は同期７０８に基づいて、共同オーサリングが可能になり得る。
【００２８】
更に別の実施形態は、本明細書に提示される技法のうちの１つ又は複数を実装するように構成されたプロセッサ実行可能な命令を含む、コンピュータ読取可能媒体を含む。図８に、これらの方法で考案され得る例示的コンピュータ読取可能媒体が図示されている。実装例８００は、コンピュータ読取可能データ８１４が符号化されるコンピュータ読取可能媒体８１６（例えばＣＤ−Ｒ、ＤＶＤ−Ｒ又はハード・ディスク・ドライブのプラッタ）を備える。このコンピュータ読取可能データ８１４は、本明細書で説明される原理のうちの１つ又は複数に従って動作するように構成されるコンピュータ命令８１２のセットを含む。１つのこのような実施形態８００において、プロセッサ実行可能なコンピュータ命令８１２は、例えば図１の例示的方法１００の少なくとも一部、図２の例示的方法２００の少なくとも一部、及び／又は図３の例示的方法３００の少なくとも一部のような、方法８１０を実行するように構成され得る。別のこのような実施形態において、プロセッサ実行可能な命令８１２は、例えば図４の例示的システム４００の少なくとも一部、図５の例示的システム５００の少なくとも一部、及び／又は図６の例示的システム６００の少なくとも一部のようなシステムを実装するように構成され得る。本明細書に提示される技法に従って動作するように構成される多くのこのようなコンピュータ読取可能媒体が、当業者によって考案され得る。
【００２９】
本主題を、構造的特徴及び／又は方法的動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される主題は、必ずしも上記の具体的な特徴又は動作に限定されないことを理解されたい。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実装する、例示的形式として開示されている。
【００３０】
本出願において使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インタフェース」及び同様の用語は、一般に、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すように意図される。例えばコンポーネントは、限定ではないが、プロセッサ上で稼動するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム及び／又はコンピュータであってよい。例として、コントローラ上で稼動するアプリケーションと、そのコントローラとの双方がコンポーネントであってよい。１つ又は複数のコンポーネントが、プロセス及び／又は実行スレッド内に存在することがあり、１つのコンポーネントが、１つのコンピュータ上に配置されてもよく、及び／又は２つ若しくはそれ以上のコンピュータ間において分散されてもよい。
【００３１】
さらに、特許請求に係る主題は、ソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを作成し、開示された主題を実装するようコンピュータを制御する、標準的なプログラミング及び／又はエンジニアリング技法を使用して、方法、装置又は製品として実装されてもよい。本明細書において使用されるとき、「製品」という用語は、任意のコンピュータ読取可能デバイス、キャリア又は媒体からアクセス可能なコンピュータ・プログラムを包含することが意図される。当然ながら、特許請求に係る主題の範囲又は精神から逸脱することなく、この構成に対して多くの修正が行われ得ることが、当業者には認識されよう。
【００３２】
図９及び以下の議論では、本明細書で説明される対応策のうちの１つ又は複数の実施形態を実装するのに適したコンピューティング環境の簡潔かつ一般的な説明を提供する。図９の動作環境は、適切な動作環境の一例に過ぎず、動作環境の使用又は機能性の範囲に関していかなる限定を示唆するようにも意図されていない。例示のコンピューティングデバイスには、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、モバイルデバイス（モバイルフォン、パーソナル・デジタル・アシスタント（ＰＤＡ）、メディアプレーヤ等）、マルチプロセッサシステム、家庭用電子機器、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境等が含まれる。
【００３３】
必ずではないが、諸実施形態は、１つ又は複数のコンピューティングデバイスによって「コンピュータ読取可能命令」が実行されるという一般的な文脈で説明される。コンピュータ読取可能命令は、コンピュータ読取可能媒体により分散され得る（以下に論じる）。コンピュータ読取可能命令は、特定のタスクを実行するか、又は特定の抽象データ型を実装する、関数、オブジェクト、アプリケーション・プログラミング・インタフェース（ＡＰＩ）、データ構造等のプログラム・モジュールとして実装され得る。典型的に、コンピュータ読取可能命令の機能性は、様々な環境において所望の通りに組み合わされるか、又は分散される可能性がある。
【００３４】
図９は、本明細書において提供される１つ又は複数の実施形態を実装するように構成されたコンピューティングデバイス９１２を備えるシステム９１０の例を図示している。一構成において、コンピューティングデバイス９１２は、少なくとも１つの処理ユニット９１６及びメモリ９１８を含む。コンピューティングデバイスの厳密な構成及びタイプに依存して、メモリ９１８は、揮発性（例えばＲＡＭ等）、不揮発性（例えばＲＯＭ、フラッシュメモリ等）又は両者の何らかの組み合わせであり得る。図９には、この構成が、破線９１４によって図示されている。
【００３５】
他の実施形態において、デバイス９１２は、付加的な特徴及び／又は機能性を含み得る。例えばデバイス９１２は、これらに限定されないが、磁気ストレージ、光学ストレージ等を含め、付加的なストレージ（例えば取り外し可能及び／又は取り外し不可能なストレージ）も含んでよい。このような付加的なストレージは、図９において、ストレージ９２０によって図示されている。一実施形態では、本明細書において提供される１つ又は複数の実施形態を実装するコンピュータ読取可能命令が、ストレージ９２０内に存在してよい。ストレージ９２０は、オペレーティングシステム、アプリケーション・プログラム等を実装する他のコンピュータ読取可能命令も格納してよい。コンピュータ読取可能命令は、例えば処理ユニット９１６による実行のために、メモリ９１８にロードされ得る。
【００３６】
本明細書において使用されるとき、「コンピュータ読取可能媒体」という用語はコンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ読取可能命令又は他のデータ等の情報を格納するために、任意の方法又は技術で実装される、揮発性及び不揮発性の、取り外し可能及び取り外し不可能な媒体を含む。メモリ９１８及びストレージ９２０はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これらに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ若しくは他の磁気ストレージ・デバイス、又は所望の情報を格納するために使用可能であって、デバイス９１２によってアクセス可能な任意の他の媒体を含む。任意のこのようなコンピュータ記憶媒体がデバイス９１２の一部であってもよい。
【００３７】
デバイス９１２は、当該デバイス９１２が他のデバイスと通信することを許容する通信接続（複数可）９２６も含み得る。通信接続９２６は、これらに限定されないが、モデム、ネットワーク・インタフェース・カード（ＮＩＣ）、統合ネットワーク・インタフェース、無線周波送信機／受信機、赤外線ポート、ＵＳＢ接続、又はコンピューティングデバイス９１２を他のコンピューティングデバイスに接続するための他のインタフェースを含み得る。通信接続（複数可）９２６は、有線接続又は無線接続を含み得る。通信接続９２６は、通信媒体を送信及び／又は受信し得る。
【００３８】
「コンピュータ読取可能媒体」という用語は、通信媒体を含むことがある。通信媒体は典型的に、コンピュータ読取可能命令又は他のデータを、搬送波又は他の移送機構などの「変調されたデータ信号」内に具現化し、任意の情報伝送媒体を含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するような手法で、その特性のうちの１つ又は複数を設定又は変更させた信号を含み得る。
【００３９】
デバイス９１２は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、及び／又は任意の他の入力デバイスのような入力デバイス（複数可）９２４を含むことがある。１つ若しくは複数のディスプレイ、スピーカ、プリンタ、及び／又は任意の他の出力デバイス等の出力デバイス（複数可）９２２も、デバイス９１２に含まれてよい。入力デバイス（複数可）９２４及び出力デバイス９２２は、有線接続、無線接続又はこれらの任意の組み合わせを介して、デバイス９１２に接続され得る。一実施形態では、別のコンピューティングデバイスからの入力デバイス又は出力デバイスを、コンピューティングデバイス９１２用の入力デバイス９２４又は出力デバイス９２２として使用してよい。
【００４０】
コンピューティングデバイス９１２のコンポーネントは、バスなどの様々な相互接続によって接続され得る。このような相互接続は、ＰＣＩ  ＥｘｐｒｅｓｓのようなＰＣＩ（周辺コンポーネント相互接続）、ユニバーサルシリアルバス（ＵＳＢ）、ファイアワイヤ（登録商標）（ＩＥＥＥ１３９４）、光学バス構造等を含み得る。別の実施形態において、コンピューティングデバイス９１２のコンポーネントを、ネットワークによって相互接続することができる。例えばメモリ９１８は、ネットワークによって相互接続された異なる物理的位置に配置された複数の物理的なメモリユニットで構成されてよい。
【００４１】
本技術分野の当業者には、コンピュータ読取可能命令を格納するのに使用されるストレージ・デバイスを、ネットワーク全体に分散させてもよいことが認識されよう。例えばネットワーク９２８を介してアクセス可能なコンピューティングデバイス９３０が、本明細書において提供される１つ又は複数の実施形態を実装するコンピュータ読取可能命令を格納してもよい。コンピューティングデバイス９１２は、コンピューティングデバイス９３０にアクセスして、コンピュータ読取可能命令の一部分又は全てを、実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス９１２は、必要に応じて、コンピュータ読取可能命令の一部をダウンロードしてもよく、あるいは一部の命令をコンピューティングデバイス９１２において実行し、別の一部をコンピューティングデバイス９３０において実行してもよい。
【００４２】
諸実施形態の様々な動作が本明細書において提供される。一実施形態では、説明される動作のうちの１つ又は複数が、１つ又は複数のコンピュータ読取可能媒体に格納されたコンピュータ読取可能命令を構成してもよく、コンピュータ読取可能命令は、コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、説明された動作を実行させる。動作の一部又は全てが記載される順序は、これらの動作が必ずしも順序依存であることを暗示するものとして解釈されるべきではない。この説明の利益を享受する本技術分野の当業者によって、代替的な順序が認識されるであろう。さらに、必ずしも全ての動作が、本明細書において提供される各実施形態において存在するとは限らないことが理解されよう。
【００４３】
さらに、本明細書において「例示的」という語は、例、実例又は例示として機能することを意味するように使用されている。本明細書において「例示的」として説明される任意の態様又は設計が、必ずしも他の態様又は設計よりも有利であると解釈されるべきではない。むしろ、例示的という語の使用は、具体的様式で概念を提示するように意図されている。本出願において使用されるとき、「又は（若しくは／あるいは）」という用語は、排他的な「又は（若しくは／あるいは）」ではなく、包含的な「又は（若しくは／あるいは）」を意味することが意図される。すなわち、特に指定されない限り、又は文脈から明らかである場合を除いて、「ＸがＡ又はＢを用いる」は、自然な包含的順列の全てを意味することが意図される。すなわち、ＸがＡを用いる場合、ＸがＢを用いる場合、ＸがＡとＢの双方を用いる場合、「ＸはＡ又はＢを用いる」は、上記の実例のいずれの下においても満たされる。加えて、本出願及び添付の特許請求の範囲で使用される冠詞「ある（ａ及びａｎ）」は、一般に、特に指定されない限り、又は文脈から単数形を対象とすることが明らかである場合を除いて、「１つ又は複数」を意味するように解釈され得る。また、「Ａ及びＢのうちの少なくとも１つ」及び／又は同様の語は一般に、「Ａ又はＢ」、「ＡとＢとの双方」を意味する。
【００４４】
また、本開示は、１つ又は複数の実装に関して示され、説明されているが、本明細書及び添付の図面の読解及び理解に基づいて、均等な変更及び修正が当技術分野の他の当業者には想起されよう。本開示は、このような修正及び変更の全てを含み、特許請求の範囲によってのみ限定される。特に、上記のコンポーネント（例えば要素、リソース等）によって実行される様々な機能に関して、このようなコンポーネントを説明するのに使用される用語は、特に指定されない限り、本開示の本明細書で図示された例示的実装において機能を実施する、開示された構造と構造的に等価ではない場合であっても、説明されるコンポーネントの指定された機能を実行する任意の（例えば機能的に等価な）コンポーネントに対応することが意図される。加えて、本開示の特定の特徴が、いくつかの実装のうちの１つのみに関して開示されていることがあるが、このような特徴を、任意の所与の用途又は特定の用途にとって望まれ、有利であるように、他の実装の１つ又は複数の他の特徴と組み合わせてもよい。さらに、「含む（ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｖｉｎｇ）」、「有する（ｈａｓ）」、「有する（ｗｉｔｈ）」という用語又はそれらの変形体が詳細な説明又は特許請求の範囲のいずれかで使用される限りにおいて、このような用語は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という用語と同様に包含的であることが意図される。
【図１】
0006272771.tif 000002
【図２】
0006272771.tif 000003
【図３】
0006272771.tif 000004
【図４】
0006272771.tif 000005
【図５】
0006272771.tif 000006
【図６】
0006272771.tif 000007
【図７】
0006272771.tif 000008
【図８】
0006272771.tif 000009
【図９】
0006272771.tif 000010