(58)【調査した分野】(Int.Cl.,DB名)
前記ファイルの前記ローカル・オフライン・バージョンと前記ファイルの前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップは、
前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供することと、
前記クライアントアプリケーションに、前記ウェブ・オンライン・バージョンに関連付けられるURLを提供することを含む、請求項1に記載の方法。
前記クライアントアプリケーションによってアクセスされる前記ファイルは、前記ファイルの前記ローカル・オフライン・バージョンの少なくとも一部と、前記ファイルの前記ウェブ・オンライン・バージョンの少なくとも一部から導出される、
を含む、請求項1に記載の方法。
前記クライアントアプリケーションが前記ファイルにアクセスしている間に、前記ファイル、前記ファイルの前記ローカル・オフライン・バージョン、及び前記ファイルの前記ウェブ・オンライン・バージョンを同期させるステップ
を含む、請求項1に記載の方法。
前記クライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間で、前記ファイルの共同オーサリングを可能にするステップを含み、前記ファイルと前記対応するファイルとが、前記ファイルの前記ウェブ・オンライン・バージョンを経由して同期される、請求項1に記載の方法。
前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられるローカル・ファイル・パスと、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられるURLを提供するステップと、
前記クライアントアプリケーションに、前記ローカル・ファイル・パス及び前記URLを使用して前記ファイルの前記ローカル・オフライン・バージョンを前記ファイルの前記ウェブ・オンライン・バージョンと同期させる同期権限を委譲するステップと
を含む、請求項1に記載の方法。
前記要求が、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられたURLを含み、前記同期モジュールが、前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供するように構成され、前記ローカル・ファイル・パスが、前記URLに基づいて特定される、請求項9に記載のシステム。
プロセッサによって実行されると、該プロセッサに、クライアントアプリケーションにファイルへのアクセスを提供するための処理を実行させるコンピュータプログラムであって、前記処理は、
前記クライアントアプリケーションが前記ファイルを開くように構成され、かつ、前記ファイルのファイル・タイプを取り扱う機能を有しているという判断に応答して、前記ファイル・タイプの前記ファイルを前記ファイルのローカル・オフライン・バージョン又は前記ファイルのウェブ・オンライン・バージョンのうちの少なくとも一方と同期させる同期権限を、同期モジュールから前記クライアントアプリケーションに委譲するステップであって、前記判断は、オペレーティング・システム・レジストリに基づく、ステップと、
前記クライアントアプリケーションから、前記ファイルへアクセスする要求を受信するステップと、
前記ファイルとして、前記ファイルの前記ローカル・オフライン・バージョンと前記ウェブ・オンライン・バージョンの双方へのアクセスを前記クライアントアプリケーションに提供するステップと、
を含む、コンピュータプログラム。
【発明を実施するための形態】
【0010】
次に、特許請求に係る主題を、図面を参照しながら説明する。図面では一般に、同じ参照番号が、全体にわたって同じ要素を指すのに使用される。以下の記述では、説明の目的で、特許請求に係る主題の完全な理解をもたらすために、多数の具体的な詳細が説明される。しかしながら、特許請求に係る主題が、これらの具体的な詳細を用いずに実施されてもよいことは明らかであろう。他の場合において、構造及びデバイスが、主題の記載を容易にするためにブロック図の形式で図示される。
【0011】
今日、データはよくコンピューティングデバイス間で共有される。例えばユーザは、ウェブ・ストレージ・サービスによってホストされるオンライン・ストレージを使用して、デスクトップ・デバイスとスマートフォンとの間で写真を共有することができる。共有した写真の同期は、そのデスクトップ・デバイス及びスマートフォン上の同期モジュールによって提供され得る。残念ながら、ウェブ・ストレージ・サービスが利用不可能の場合(例えばオフライン)、ユーザは、オンライン・ストレージ内に格納された、共有した写真に、デスクトップ・デバイス及び/又はスマートフォンからアクセスすることができないことがある。加えて、同期モジュールは、共有した写真に関連付けられたファイル・タイプに精通していない可能性がある(例えば同期モジュールは、汎用のアップロード/ダウンロード機能しか備えていない可能性がある)のに対して、デスクトップ・デバイス及び/又はスマートフォン上の写真クライアントアプリケーションは、共有された写真に関連付けられた、格納/同期の機能を取り扱うのにより適している可能性がある。しかしながら、写真クライアントアプリケーションは、実施されている可能性があるウェブ・ストレージ・サービス及び/又は同期ポリシーについて、認識していない可能性がある。したがって、同期モジュールは、写真クライアントアプリケーションの洗練されたファイルの取り扱い機能を用いずに、共有された写真を同期させることにおいて、非効率である可能性がある。
【0012】
したがって、他のものの中でも特に、クライアントアプリケーションにファイルへのアクセスを提供し、クライアントアプリケーションに同期権限を委譲し、及び/又はクライアントアプリケーションにファイルへのオフライン・アクセスを提供するための、1つ又は複数のシステム及び/又は技法が本明細書において提供される。
【0013】
図1の例示的方法100によって、クライアントアプリケーションにファイルへのアクセスを提供する一実施形態が示される。この方法は、102において開始する。104において、クライアントアプリケーションから、ファイルへアクセスするよう求める要求を受信する。要求を受信する一例において、この要求は、ウェブ・ストレージ・サービスによって共有された利用可能なファイルについての、同期モジュールへの問合せを含み得る。同期モジュールは、クライアントアプリケーションが理解することが可能な、及び/又は対話することが可能な1つ又は複数のファイル・タイプを判断することができる(例えばクライアントアプリケーションが、ファイル・タイプの互換性情報を同期モジュールに提供することがある)。このようにして、クライアントアプリケーションに、識別されたファイル・タイプに対応するファイル・タイプに従ってフォーマットされた、1つ又は複数のファイルへのアクセスを提供することができる。要求を受信する別の例において、要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたローカル・ファイル・パスを含むことがある。別の例において、この要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたURLを含むことがある。別の例において、この要求は、ファイルを識別するリソースIDを含むことがある(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。一例において、同期モジュールが、ウェブ・ストレージ・サービスによって共有されたファイルに関する知識、及び/又は共有されたファイルのローカルに格納されたバージョンに関する知識を備えることがあり、一方、クライアントアプリケーションは、このような知識を有していないことがあることが認識される。
【0014】
106において、ファイルのローカル・オフライン・バージョンが、ローカルに格納されている場合、クライアントアプリケーションに、ファイルとして、ローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる(例えば同期モジュールは、ローカル・ファイル・パスを、クライアントアプリケーションによる要求で指定され得るウェブ・オンライン・バージョンに関連付けられたURLに基づいて導出することができる)。このようにして、クライアントアプリケーションは、ローカル・ファイル・パスを使用して、ローカル・オフライン・バージョンからファイルを開くことができる。一例において、このファイルがローカルに格納されるように指定されているものの、まだローカルに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなローカル・オフライン・バージョンが作成されるべきローカル・パスを、クライアントアプリケーションに提供してもよい。108において、ファイルのウェブ・オンライン・バージョンが、リモートに(例えばウェブ・ストレージ・サービスによってホストされるオンライン・ストレージ内に)格納されている場合、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンへのアクセスをファイルとして提供することができる。例えばファイルのウェブ・オンライン・バージョンに関連付けられたURLを、クライアントアプリケーションに提供することができる(例えば同期モジュールは、クライアントアプリケーションによる要求内で指定され得るローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスに基づいて、URLを導出することができる)。このようにして、クライアントアプリケーションは、そのURLを使用して、ウェブ・オンライン・バージョンからファイルを開くことができる。一例において、このファイルが、リモートに格納されるように指定されているものの、まだリモートに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなリモート・バージョンが作成されるべきリモート・パスを、クライアントアプリケーションに提供することができる。
【0015】
一例において、クライアントアプリケーションに、ローカル・オフライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ファイルのウェブ・オンライン・バージョンが利用可能ではない(例えばオフライン)か、及び/又はクライアントアプリケーションにとって、アクセスすることが非効率であり得るためである。別の例において、クライアントアプリケーションに、ウェブ・オンライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ウェブ・オンライン・バージョンが、ファイルの最新のバージョンであるか、及び/又はファイルのローカル・オフライン・バージョンが利用不可能であり得るためである。別の例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンとファイルのウェブ・オンライン・バージョンとの双方へのアクセスがファイルとして提供されることがある。すなわち、クライアントアプリケーションによってアクセスされたファイルは、ファイルのローカル・オフライン・バージョンの少なくとも一部と、ファイルのウェブ・オンライン・バージョンの少なくとも一部とから導出されるか、及び/又はそれらの部分に同期的に関連付けられることがある。このようにして、クライアントアプリケーションによってアクセスされるファイル、ファイルのローカル・オフライン・バージョン、及び/又はファイルのウェブ・オンライン・バージョンを同期することができる。このような同期は、例えばクライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間のファイルの共同オーサリングを可能にすることができる。例えばファイル及び対応するファイルは、ファイルのウェブ・オンライン・バージョンを経由して同期され得る(例えばリモートのクライアントアプリケーションによってファイルのウェブ・オンライン・バージョンに対して行われた修正が、同期モジュールによって検出されることがあり、同期モジュールは、クライアントアプリケーションに、ファイルを、当該ファイルのウェブ・オンライン・バージョンと同期させるように指示することができる)。
【0016】
クライアントアプリケーションは、あるファイル・タイプを取り扱うための洗練された機能を備えることがあり、一方、同期モジュールは、このような高度な機能を備えていないことがある(例えば同期モジュールは、共有されたファイルに関連付けられている可能性がある広範なファイル・タイプに起因して、汎用のアップロード/ダウンロードの機能しか備えていないことがある)。したがって、同期権限が、クライアントアプリケーションに委譲されることがある。一例において、クライアントアプリケーションに対して、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、このローカル・ファイル・パスを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを提供し、このURLを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このように、クライアントアプリケーションによって提供されるファイル取り扱い機能を用いて、より向上した同期を提供することができる。
【0017】
同期モジュールは、ウェブ・ストレージ・サービスから通知を規則的に受け取るので、同期モジュールは、ファイルのウェブ・オンライン・バージョンが修正されたという通知をクライアントアプリケーションに提供し、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのウェブ・オンライン・バージョンとを同期させるように指示することができる。同期モジュールは、共有されたローカル・ファイルのローカル・ストレージをモニタリングし得るため、同期モジュールは、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのローカル・オフライン・バージョンとを同期させるように指示し得る。110において、この方法は終了する。
【0018】
図2の例示的方法200によって、クライアントアプリケーションに同期権限を委譲する一実施形態が示される。この方法は、202において開始する。204において、ファイルがフォーマットされる特定のファイル・タイプと対話するように構成されたクライアントアプリケーションを識別することができる。例えばオペレーティング・システム・レジストリを調べて、クライアントアプリケーションが、そのファイル・タイプに従ってフォーマットされたファイルを開くことができるかどうかを判断することができる(例えばレジストリ・キーは、ワード・プロセッサが.txtファイルを開くことができることを示すことがある)。別の例において、クライアントアプリケーションのインストール、クライアントアプリケーションのアンインストール、クライアントアプリケーションに対する修正、及び/又はクライアントアプリケーションに関連付けられたファイル・タイプ(例えば.txt及び.docx(しかし例えば.jpgではない))を、オペレーティング・システム・レジストリ内の1つ又は複数のレジストリ・キーを使用して識別することができる。206において、同期権限をクライアントアプリケーションに委譲して、クライアントアプリケーションによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させることができる。一例において、ファイルをリソースIDによって識別することができる(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。
【0019】
一例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、該ローカル・ファイル・パスを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを提供し、このURLを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このようにして、クライアントアプリケーションによって提供されるファイルの取り扱い機能を用いて、より向上した同期を提供することができる。208において、この方法は終了する。
【0020】
図3の例示的方法300によって、クライアントアプリケーションにファイルへのオフライン・アクセスを提供する一実施形態が示される。この方法は、302において開始する。304において、ファイルへアクセスする要求が、クライアントアプリケーションから受信され得る。一例において、この要求は、ファイルを識別するリソースIDを含み得る(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。任意選択により、306において、ファイルのウェブ・オンライン・バージョンの利用不可能性が判断され得る(例えばファイルのウェブ・オンライン・バージョンを含むオンライン・ストレージのホストするウェブ・ストレージ・サービスが、アクセス不可能であることがある)。一例において、同期モジュールが、ファイルのローカル・オフライン・バージョンを事前に格納している可能性がある(例えば同期モジュールが、ファイルのウェブ・オンライン・バージョンを、クライアントアプリケーションに対してローカルに格納されたファイルのローカル・オフライン・バージョンとしてダウンロードしている可能性がある)ことが認められ得る。308において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる(例えば要求が、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを含むことがあり、当該URLに基づいて、ローカル・ファイル・パスを特定することができる(これは、例えばオンライン・バージョンが利用可能ではないためである))。310においてこの方法は終了する。
【0021】
図4は、同期権限をクライアントアプリケーション410に委譲するために構成されたシステム400の例を図示している。システム400は、同期モジュール416を含み得る。同期モジュール416は、共有されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース402から、通知408を規則的に受け取るように構成されることができる。同期モジュール416は、ファイルのウェブ・オンライン・バージョン404が作成、修正及び/又は削除されたという通知など、共有/同期されたファイルに関連付けられる様々な情報を含む通知408を受信することができる。同期モジュール416は、ファイルのローカル・オフライン・バージョン424などの共有/同期されたファイルのローカル・ストレージ422(例えばクライアントアプリケーション410を含むコンピューティングデバイスに関連付けられたストレージ)に関連付けられたトポロジ・イベント(例えば作成、修正、削除等)のモニタリング及び/又は実行420を行うように構成され得る。一例において、ファイル404はリソースIDによって識別され得る(例えばリソースIDは、ファイル404と、同期モジュール416、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーション410とを一意に結び付け得る)。
【0022】
同期モジュール416が、特定のタイプのファイルを取り扱う洗練させた機能(例えばファイル内のどのデータを同期すべきかを判断するために使用される機能)を備えていない可能性があるため、同期モジュール406は、同期情報414をクライアントアプリケーション410に提供するように構成されることがある。クライアントアプリケーション410は、特定のファイル・タイプに従ってフォーマットされたファイルを取り扱うための洗練された機能を備えることができる。このようにして、クライアントアプリケーション410は、当該クライアントアプリケーション410によってアクセスされたファイル412、ファイルのウェブ・オンライン・バージョン404、及び/又はファイルのローカル・オフライン・バージョン424の間において、同期406及び/又は418などの同期を実施し得る。同期モジュール416は、同期情報(例えば同期モジュール416の存在、ファイルのローカル・オフライン・バージョンがどこに格納されているか等に関する情報)をクライアントアプリケーション410に提供し得る。一例において、同期モジュール416は、ファイルのウェブ・オンライン・バージョン404に関連付けられたURLと、同期権限とを同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、例えばファイル412とファイルのウェブ・オンライン・バージョン404とを同期406させることが可能になる。別の例において、同期モジュール416は、ファイルのローカル・オフライン・バージョン424に関連付けられたローカル・ファイル・パスと、同期権限とを同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、ファイル412とファイルのローカル・オフライン・バージョン424とを同期418させることが可能になる。別の例において、同期モジュール416は、ローカル・ファイル・パス、URL、及び/又は同期権限を同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、ファイル412、ファイルのローカル・オフライン・バージョン424、及び/又はファイルのウェブ・オンライン・バージョン404を同期させることが可能になる。同期モジュール416は、同期の進捗状況、成功、及び/又は失敗に関する情報を求めて、クライアントアプリケーション410をポーリングし得る(例えばクライアントアプリケーション410は、同期モジュール416に対し、ポーリングに利用可能な新たな同期イベントを通知する可能性があり、これにより特に、例えば追加のオーバーヘッドをほとんど又は全く伴わずに、同期モジュールのUI更新の増加をもたらすことができる)。このようにして、クライアントアプリケーション410は、同期モジュール416に代わってロバストな同期を実施することができる(なぜなら、例えば同期モジュール416は、洗練された同期を取り扱うように装備又は構成等されていない可能性があるためである)。
【0023】
図5は、クライアントアプリケーション508にファイル514へのアクセスを提供するために構成されたシステム500の例を図示している。システム500は、同期モジュール510を含み得る。同期モジュール510は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース502からの通知を規則的に受け取るように構成され得る。同期モジュール510は、ファイルのウェブ・オンライン・バージョン504に関する通知(例えばファイルのウェブ・オンライン・バージョン504の作成、修正、及び/又は削除に関する情報を含む通知)などの、共有/同期されたファイルに関する情報を受信し得る。同期モジュール510は、ファイルのローカル・オフライン・バージョン518などの共有/同期されたファイルのローカル・ストレージ516(例えばクライアントアプリケーション508を含むコンピューティングデバイスに関連付けられたストレージ)に関連付けられたトポロジ・イベント(例えば作成、修正、削除等)をモニタリング及び/又は実施するように構成され得る。
【0024】
同期モジュール510は、ファイルのウェブ・オンライン・バージョン504に関連付けられたURL、及び/又はファイルのローカル・オフライン・バージョン518に関連付けられたローカル・ファイル・パスのような同期情報512を、クライアントアプリケーション508に提供するように構成され得る。このようにして、同期モジュール510は、ファイルのローカル・オフライン・バージョン518へのアクセス520をファイル514として、及び/又はファイルのウェブ・オンライン・バージョン504へのアクセス506をファイル514として、クライアントアプリケーション508に提供し得る。クライアントアプリケーション508は、ファイル514にアクセスするときに、同期情報512を用いてよい。例えばファイル514は、クライアントアプリケーション508によって、ファイルのウェブ・オンライン・バージョン504の少なくとも一部、及び/又はファイルのローカル・オフライン・バージョン518の少なくとも一部を用いて開かれることがある。
【0025】
図6は、クライアントアプリケーション608にファイル614へのオフライン・アクセスを提供するために構成されたシステム600の例を図示している。システム600は、同期モジュール610を含み得る。同期モジュール610は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース602から、通知を規則的に受け取るように構成され得る。同期モジュール610は、ファイルのウェブ・オンライン・バージョン604に関する通知(例えばファイルのウェブ・オンライン・バージョン604の作成、修正、及び/又は削除に関する情報を含む通知)などの、共有/同期されたファイルに関する情報を受信し得る。同期モジュール610は、ローカル・ストレージ616(例えばクライアントアプリケーション608からローカルにアクセス可能なストレージ)内に共有/同期されたファイルのバージョンを、ローカルに格納するように構成され得る。例えば同期モジュール610は、ファイルのウェブ・オンライン・バージョン604を、ローカル・ストレージ616内にファイルのローカル・オフライン・バージョン618として格納し得る。このようにして、同期モジュール610は、ファイルのローカル・オフライン・バージョン618に基づいて、クライアントアプリケーション608に、ファイル614へのオフライン・アクセスを提供することができる。
【0026】
一例において、同期モジュール610は、クライアントアプリケーション608から、ファイル614へアクセスする要求を受信し得る。同期モジュール610は、クライアントアプリケーション608に、ファイルのローカル・オフライン・バージョン618に関連付けられたローカル・ファイル・パス612を提供し得る。リモート・ソース602及び/又はファイルのウェブ・オンライン・バージョン604が、オフライン606である(例えばクライアントアプリケーション608にとって利用不可能である)可能性があるため、同期モジュール610は、ローカル・ファイル・パス612を、クライアントアプリケーション608に単に提供してもよい。したがって、クライアントアプリケーション608は、ローカル・ファイル・パス610を使用して、ファイル614として、ファイルのローカル・オフライン・バージョン618にアクセス620し得る。このようにして、クライアントアプリケーション608に、ファイル614へのオフライン・アクセスを提供することができる。
【0027】
図7は、文書の共同オーサリングを可能にする例700を図示している。テキストファイルなどの文書は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース702へ、ファイルのウェブ・オンライン・バージョン704としてアップロードされ得る。ファイルのウェブ・オンライン・バージョン704は、クライアントアプリケーション710、リモートのクライアントアプリケーション712、並びに/あるいは他のクライアントアプリケーション及び/又はデバイス(図示せず)の間で共有/同期され得る。ファイルのウェブ・オンライン・バージョン704は、クライアントアプリケーション710のホストするクライアントデバイスに同期706されるか、及び/又はリモートのクライアントアプリケーション712のホストするリモートクライアントデバイスに同期708され得る。クライアントアプリケーション710は、ファイル714として、ファイルのウェブ・オンライン・バージョン704(例えばファイルのウェブ・オンライン・バージョン704のインスタンス)にアクセスし得る。リモートのクライアントアプリケーション712は、対応するファイル716として、ファイルのウェブ・オンライン・バージョン704(例えばファイルのウェブ・オンライン・バージョン704のインスタンス)にアクセスし得る。ファイル714及び対応するファイル718が、クライアントアプリケーション710及び/又はリモートのクライアントアプリケーション712によってアクセスされている間に、ファイルのウェブ・オンライン・バージョン704と同期され得るため、共同オーサリングが可能になり得る。例えばクライアントアプリケーション710のユーザは、ファイル714と対話している間、リモートのクライアントアプリケーション712のリモートユーザによって行われた対応するファイル716との対話を視認することが可能である。同様に、リモートのクライアントアプリケーション712のリモートユーザは、対応するファイル716と対話している間、クライアントアプリケーション710のユーザによって行われたファイル714との対話を視認することが可能である。このようにして、ファイルのウェブ・オンライン・バージョン704の同期706及び/又は同期708に基づいて、共同オーサリングが可能になり得る。
【0028】
更に別の実施形態は、本明細書に提示される技法のうちの1つ又は複数を実装するように構成されたプロセッサ実行可能な命令を含む、コンピュータ読取可能媒体を含む。
図8に、これらの方法で考案され得る例示的コンピュータ読取可能媒体が図示されている。実装例800は、コンピュータ読取可能データ814が符号化されるコンピュータ読取可能媒体816(例えばCD−R、DVD−R又はハード・ディスク・ドライブのプラッタ)を備える。このコンピュータ読取可能データ814は、本明細書で説明される原理のうちの1つ又は複数に従って動作するように構成されるコンピュータ命令812のセットを含む。1つのこのような実施形態800において、プロセッサ実行可能なコンピュータ命令812は、例えば
図1の例示的方法100の少なくとも一部、
図2の例示的方法200の少なくとも一部、及び/又は
図3の例示的方法300の少なくとも一部のような、方法810を実行するように構成され得る。別のこのような実施形態において、プロセッサ実行可能な命令812は、例えば
図4の例示的システム400の少なくとも一部、
図5の例示的システム500の少なくとも一部、及び/又は
図6の例示的システム600の少なくとも一部のようなシステムを実装するように構成され得る。本明細書に提示される技法に従って動作するように構成される多くのこのようなコンピュータ読取可能媒体が、当業者によって考案され得る。
【0029】
本主題を、構造的特徴及び/又は方法的動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される主題は、必ずしも上記の具体的な特徴又は動作に限定されないことを理解されたい。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実装する、例示的形式として開示されている。
【0030】
本出願において使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インタフェース」及び同様の用語は、一般に、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すように意図される。例えばコンポーネントは、限定ではないが、プロセッサ上で稼動するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム及び/又はコンピュータであってよい。例として、コントローラ上で稼動するアプリケーションと、そのコントローラとの双方がコンポーネントであってよい。1つ又は複数のコンポーネントが、プロセス及び/又は実行スレッド内に存在することがあり、1つのコンポーネントが、1つのコンピュータ上に配置されてもよく、及び/又は2つ若しくはそれ以上のコンピュータ間において分散されてもよい。
【0031】
さらに、特許請求に係る主題は、ソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを作成し、開示された主題を実装するようコンピュータを制御する、標準的なプログラミング及び/又はエンジニアリング技法を使用して、方法、装置又は製品として実装されてもよい。本明細書において使用されるとき、「製品」という用語は、任意のコンピュータ読取可能デバイス、キャリア又は媒体からアクセス可能なコンピュータ・プログラムを包含することが意図される。当然ながら、特許請求に係る主題の範囲又は精神から逸脱することなく、この構成に対して多くの修正が行われ得ることが、当業者には認識されよう。
【0032】
図9及び以下の議論では、本明細書で説明される対応策のうちの1つ又は複数の実施形態を実装するのに適したコンピューティング環境の簡潔かつ一般的な説明を提供する。
図9の動作環境は、適切な動作環境の一例に過ぎず、動作環境の使用又は機能性の範囲に関していかなる限定を示唆するようにも意図されていない。例示のコンピューティングデバイスには、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、モバイルデバイス(モバイルフォン、パーソナル・デジタル・アシスタント(PDA)、メディアプレーヤ等)、マルチプロセッサシステム、家庭用電子機器、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境等が含まれる。
【0033】
必ずではないが、諸実施形態は、1つ又は複数のコンピューティングデバイスによって「コンピュータ読取可能命令」が実行されるという一般的な文脈で説明される。コンピュータ読取可能命令は、コンピュータ読取可能媒体により分散され得る(以下に論じる)。コンピュータ読取可能命令は、特定のタスクを実行するか、又は特定の抽象データ型を実装する、関数、オブジェクト、アプリケーション・プログラミング・インタフェース(API)、データ構造等のプログラム・モジュールとして実装され得る。典型的に、コンピュータ読取可能命令の機能性は、様々な環境において所望の通りに組み合わされるか、又は分散される可能性がある。
【0034】
図9は、本明細書において提供される1つ又は複数の実施形態を実装するように構成されたコンピューティングデバイス912を備えるシステム910の例を図示している。一構成において、コンピューティングデバイス912は、少なくとも1つの処理ユニット916及びメモリ918を含む。コンピューティングデバイスの厳密な構成及びタイプに依存して、メモリ918は、揮発性(例えばRAM等)、不揮発性(例えばROM、フラッシュメモリ等)又は両者の何らかの組み合わせであり得る。
図9には、この構成が、破線914によって図示されている。
【0035】
他の実施形態において、デバイス912は、付加的な特徴及び/又は機能性を含み得る。例えばデバイス912は、これらに限定されないが、磁気ストレージ、光学ストレージ等を含め、付加的なストレージ(例えば取り外し可能及び/又は取り外し不可能なストレージ)も含んでよい。このような付加的なストレージは、
図9において、ストレージ920によって図示されている。一実施形態では、本明細書において提供される1つ又は複数の実施形態を実装するコンピュータ読取可能命令が、ストレージ920内に存在してよい。ストレージ920は、オペレーティングシステム、アプリケーション・プログラム等を実装する他のコンピュータ読取可能命令も格納してよい。コンピュータ読取可能命令は、例えば処理ユニット916による実行のために、メモリ918にロードされ得る。
【0036】
本明細書において使用されるとき、「コンピュータ読取可能媒体」という用語はコンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ読取可能命令又は他のデータ等の情報を格納するために、任意の方法又は技術で実装される、揮発性及び不揮発性の、取り外し可能及び取り外し不可能な媒体を含む。メモリ918及びストレージ920はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これらに限定されないが、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ若しくは他の磁気ストレージ・デバイス、又は所望の情報を格納するために使用可能であって、デバイス912によってアクセス可能な任意の他の媒体を含む。任意のこのようなコンピュータ記憶媒体がデバイス912の一部であってもよい。
【0037】
デバイス912は、当該デバイス912が他のデバイスと通信することを許容する通信接続(複数可)926も含み得る。通信接続926は、これらに限定されないが、モデム、ネットワーク・インタフェース・カード(NIC)、統合ネットワーク・インタフェース、無線周波送信機/受信機、赤外線ポート、USB接続、又はコンピューティングデバイス912を他のコンピューティングデバイスに接続するための他のインタフェースを含み得る。通信接続(複数可)926は、有線接続又は無線接続を含み得る。通信接続926は、通信媒体を送信及び/又は受信し得る。
【0038】
「コンピュータ読取可能媒体」という用語は、通信媒体を含むことがある。通信媒体は典型的に、コンピュータ読取可能命令又は他のデータを、搬送波又は他の移送機構などの「変調されたデータ信号」内に具現化し、任意の情報伝送媒体を含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するような手法で、その特性のうちの1つ又は複数を設定又は変更させた信号を含み得る。
【0039】
デバイス912は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、及び/又は任意の他の入力デバイスのような入力デバイス(複数可)924を含むことがある。1つ若しくは複数のディスプレイ、スピーカ、プリンタ、及び/又は任意の他の出力デバイス等の出力デバイス(複数可)922も、デバイス912に含まれてよい。入力デバイス(複数可)924及び出力デバイス922は、有線接続、無線接続又はこれらの任意の組み合わせを介して、デバイス912に接続され得る。一実施形態では、別のコンピューティングデバイスからの入力デバイス又は出力デバイスを、コンピューティングデバイス912用の入力デバイス924又は出力デバイス922として使用してよい。
【0040】
コンピューティングデバイス912のコンポーネントは、バスなどの様々な相互接続によって接続され得る。このような相互接続は、PCI ExpressのようなPCI(周辺コンポーネント相互接続)、ユニバーサルシリアルバス(USB)、ファイアワイヤ(登録商標)(IEEE1394)、光学バス構造等を含み得る。別の実施形態において、コンピューティングデバイス912のコンポーネントを、ネットワークによって相互接続することができる。例えばメモリ918は、ネットワークによって相互接続された異なる物理的位置に配置された複数の物理的なメモリユニットで構成されてよい。
【0041】
本技術分野の当業者には、コンピュータ読取可能命令を格納するのに使用されるストレージ・デバイスを、ネットワーク全体に分散させてもよいことが認識されよう。例えばネットワーク928を介してアクセス可能なコンピューティングデバイス930が、本明細書において提供される1つ又は複数の実施形態を実装するコンピュータ読取可能命令を格納してもよい。コンピューティングデバイス912は、コンピューティングデバイス930にアクセスして、コンピュータ読取可能命令の一部分又は全てを、実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス912は、必要に応じて、コンピュータ読取可能命令の一部をダウンロードしてもよく、あるいは一部の命令をコンピューティングデバイス912において実行し、別の一部をコンピューティングデバイス930において実行してもよい。
【0042】
諸実施形態の様々な動作が本明細書において提供される。一実施形態では、説明される動作のうちの1つ又は複数が、1つ又は複数のコンピュータ読取可能媒体に格納されたコンピュータ読取可能命令を構成してもよく、コンピュータ読取可能命令は、コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、説明された動作を実行させる。動作の一部又は全てが記載される順序は、これらの動作が必ずしも順序依存であることを暗示するものとして解釈されるべきではない。この説明の利益を享受する本技術分野の当業者によって、代替的な順序が認識されるであろう。さらに、必ずしも全ての動作が、本明細書において提供される各実施形態において存在するとは限らないことが理解されよう。
【0043】
さらに、本明細書において「例示的」という語は、例、実例又は例示として機能することを意味するように使用されている。本明細書において「例示的」として説明される任意の態様又は設計が、必ずしも他の態様又は設計よりも有利であると解釈されるべきではない。むしろ、例示的という語の使用は、具体的様式で概念を提示するように意図されている。本出願において使用されるとき、「又は(若しくは/あるいは)」という用語は、排他的な「又は(若しくは/あるいは)」ではなく、包含的な「又は(若しくは/あるいは)」を意味することが意図される。すなわち、特に指定されない限り、又は文脈から明らかである場合を除いて、「XがA又はBを用いる」は、自然な包含的順列の全てを意味することが意図される。すなわち、XがAを用いる場合、XがBを用いる場合、XがAとBの双方を用いる場合、「XはA又はBを用いる」は、上記の実例のいずれの下においても満たされる。加えて、本出願及び添付の特許請求の範囲で使用される冠詞「ある(a及びan)」は、一般に、特に指定されない限り、又は文脈から単数形を対象とすることが明らかである場合を除いて、「1つ又は複数」を意味するように解釈され得る。また、「A及びBのうちの少なくとも1つ」及び/又は同様の語は一般に、「A又はB」、「AとBとの双方」を意味する。
【0044】
また、本開示は、1つ又は複数の実装に関して示され、説明されているが、本明細書及び添付の図面の読解及び理解に基づいて、均等な変更及び修正が当技術分野の他の当業者には想起されよう。本開示は、このような修正及び変更の全てを含み、特許請求の範囲によってのみ限定される。特に、上記のコンポーネント(例えば要素、リソース等)によって実行される様々な機能に関して、このようなコンポーネントを説明するのに使用される用語は、特に指定されない限り、本開示の本明細書で図示された例示的実装において機能を実施する、開示された構造と構造的に等価ではない場合であっても、説明されるコンポーネントの指定された機能を実行する任意の(例えば機能的に等価な)コンポーネントに対応することが意図される。加えて、本開示の特定の特徴が、いくつかの実装のうちの1つのみに関して開示されていることがあるが、このような特徴を、任意の所与の用途又は特定の用途にとって望まれ、有利であるように、他の実装の1つ又は複数の他の特徴と組み合わせてもよい。さらに、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語又はそれらの変形体が詳細な説明又は特許請求の範囲のいずれかで使用される限りにおいて、このような用語は、「備える(comprising)」という用語と同様に包含的であることが意図される。