(57)【特許請求の範囲】
【請求項１】
クラウドストレージシステムにおいて実行される方法であって、
ユーザアカウントと関連してデータ項目を記憶するための、第１のクライアント装置からの記憶リクエストを受信することと、
前記ユーザアカウントに関連付けられた外部ネットワーク記憶装置識別子を特定することであって、前記外部ネットワーク記憶装置識別子は、前記クラウドストレージシステムとは独立している外部ネットワーク記憶装置に対応する、特定することと、
前記外部ネットワーク記憶装置に前記データ項目を記憶させることと、
前記外部ネットワーク記憶装置を前記データ項目に関する記憶場所として反映するように、前記ユーザアカウントを更新することと、
を含む、方法。
【請求項２】
前記外部ネットワーク記憶装置に前記データ項目を記憶させることが、前記クラウドストレージシステム内に、前記データ項目を記憶するには不十分なスペースしか存在しないと判定することに応じて実行される、請求項１に記載の方法。
【請求項３】
前記外部ネットワーク記憶装置が、前記第１のクライアント装置に関連付けられたローカルエリアネットワークに接続される、請求項１又は２に記載の方法。
【請求項４】
前記データ項目に関する、第２のクライアント装置からの読み出しリクエストを受信することと、
前記第２のクライアント装置が前記データ項目へのアクセスを認可されていると判定することと、
前記外部ネットワーク記憶装置から前記データ項目を読み出すことと、
前記第２のクライアント装置に前記データ項目を提供することと、
を更に含む、請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記第１のクライアント装置及び前記第２のクライアント装置が、相異なるクライアント装置であり、前記ユーザアカウントに対して認可されている、請求項４に記載の方法。
【請求項６】
前記外部ネットワーク記憶装置が、複数のユーザアカウントにわたって認可されている、請求項１乃至５の何れか１項に記載の方法。
【請求項７】
前記不十分なスペースが、前記ユーザアカウントに対して承認されている前記クラウドストレージシステム内のスペース容量を上回った結果として生じる、請求項２に記載の方法。
【請求項８】
クラウドストレージシステムであって、
複数のユーザアカウントに関するデータ項目を記憶するために割り当てられたクラウドストレージ装置と、
前記クラウドストレージシステムに、
前記複数のユーザアカウントのユーザアカウントに関連付けられたデータ項目を記憶するための、第１のクライアント装置からの記憶リクエストを受信することと、
前記ユーザアカウントに関連付けられた第１の外部ネットワーク記憶装置識別子を取り出すことと、
前記第１の外部ネットワーク記憶装置識別子によって特定される外部ネットワーク記憶装置に前記データ項目を記憶することであって、前記外部ネットワーク記憶装置が前記クラウドストレージシステムとは別個のものである、記憶することと、
前記外部ネットワーク記憶装置を前記データ項目に関する記憶場所として反映するように、前記ユーザアカウントを更新することと、
を含むステップを実行させるように構成されたプロセッサと、
を備える、クラウドストレージシステム。
【請求項９】
前記ステップは、
前記データ項目に関する、第２のクライアント装置からの読み出しリクエストを受信することと、
前記第２のクライアント装置が前記データ項目へのアクセスを認可されていると判定することと、
前記外部ネットワーク記憶装置から前記データ項目を読み出すことと、
前記第２のクライアント装置に前記データ項目を提供することと、
を更に有する、請求項８に記載のクラウドストレージシステム。
【請求項１０】
前記外部ネットワーク記憶装置に前記データ項目を記憶することが、前記ユーザアカウントに関して、前記データ項目を記憶するために前記クラウドストレージ装置内に割り当てられた不十分なスペースしか存在しないと判定することに応じて生じる、請求項８に記載のクラウドストレージシステム。
【請求項１１】
前記ユーザアカウントが第２の外部ネットワーク記憶装置識別子に関連付けられている、請求項８に記載のクラウドストレージシステム。
【請求項１２】
前記ステップが、前記外部ネットワーク記憶装置に前記データ項目を記憶させる前に、前記第１の外部ネットワーク記憶装置識別子と前記第２の外部ネットワーク記憶装置識別子とから外部ネットワーク記憶装置識別子を選択することを更に有する、
請求項１１に記載のクラウドストレージシステム。
【請求項１３】
クラウドストレージシステムに含まれるプロセッサによって実行されると、前記クラウドストレージシステムに、
前記クラウドストレージシステム内にデータ項目を格納するための、第１のクライアント装置からの記憶リクエストであって、前記クラウドストレージシステムに既知のユーザアカウントを参照する記憶リクエストを受信することと、
前記ユーザアカウントに関連付けられたパーソナルネットワーク記憶装置識別子を取得することと、
前記パーソナルネットワーク記憶装置識別子によって特定されるパーソナルネットワーク記憶装置に前記データ項目を記憶させることであって、前記パーソナルネットワーク記憶装置が、前記クラウドストレージシステムの外部にある、記憶させることと、
前記パーソナルネットワーク記憶装置を前記データ項目に関する記憶場所として反映するように、前記ユーザアカウントを更新することと、
を含むステップを実行させるプログラム。
【請求項１４】
前記ステップは、
前記データ項目に関する、第２のクライアント装置からの読み出しリクエストを受信することと、
前記第２のクライアント装置が前記データ項目へのアクセスを認可されていると判定することと、
前記パーソナルネットワーク記憶装置から前記データ項目を読み出すことと、
前記第２のクライアント装置に前記データ項目を提供することと、
を更に有する、請求項１３に記載のプログラム。
【請求項１５】
前記パーソナルネットワーク記憶装置に前記データ項目を記憶させることが、既定の判定基準を満たすことに応じて生じる、請求項１３又は１４に記載のプログラム。
【請求項１６】
前記既定の判定基準を満たすことが、前記データ項目に関して、前記クラウドストレージシステム内に不十分なスペースしか存在しないと判定することを含む、請求項１５に記載のプログラム。
【請求項１７】
前記不十分なスペースが、前記ユーザアカウントに対して承認されている前記クラウドストレージシステム内のスペース容量を上回ったことの結果として生じる、請求項１６に記載のプログラム。
【請求項１８】
前記不十分なスペースが、前記クラウドストレージシステム内の前記ユーザアカウントについて割り当てられたスペースの量を、前記クラウドストレージシステムに前記データ項目を記憶することが上回ると判定したことの結果として生じる、請求項１６に記載のプログラム。
【請求項１９】
装置であって、
ユーザアカウントと関連してクラウドストレージ内にデータ項目を記憶するための、第１のクライアント装置からの記憶リクエストを受信するように構成されたネットワークインタフェースと、
プロセッサと、
を備え、前記プロセッサが、
前記ユーザアカウントに関連付けられたパーソナルネットワーク記憶装置識別子を取得することと、
前記パーソナルネットワーク記憶装置識別子によって特定されるパーソナルネットワーク記憶装置に前記データ項目を記憶することであって、前記パーソナルネットワーク記憶装置が、クラウドコンピューティングシステムの外部に存在する、記憶することと、
前記パーソナルネットワーク記憶装置を前記データ項目に関する記憶場所として反映するように、前記ユーザアカウントを更新することと、
を前記装置に実行させるように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００２】
＜１．技術分野＞
本開示は、クラウドコンピューティングに関し、より具体的には、クラウドベースのストレージの拡張に関する。
【背景技術】
【０００３】
＜２．前書＞
多くのクラウドコンピューティングシステムによって提供される一般的なサービスは、クラウドベースのストレージである。多くの場合、組織並びに個人は、クラウドベースのストレージによるソリューションを使用するが、これは、それらのソリューションが簡便なデータバックアップの選択肢を提供するためである。例えば、クラウドベースのストレージによる多くのソリューションは、ユーザに対して最小限の管理のみを要求する。すなわち、ユーザが、そのサービスに接続すると、クラウドコンピューティングシステムがファイル管理を処理する。実際に、一部の場合には、ユーザに要求される唯一の相互作用は、クラウドシステムによって提供されるソフトウェアをインストールすることである。更には、ユーザがクラウドベースのストレージによるソリューションを選択する理由は、それらのソリューションが、任意の場所からの重要なデータへの容易なアクセスを提供するためである。例えば、ユーザは、自分の家のデスクトップコンピュータからクラウドベースのストレージにファイルを転送することができ、その後、仕事場で、又は移動中に、ユーザは、異なるコンピューティング装置から、そのファイルにアクセスすることができる。
【０００４】
しかしながら、このクラウドベースのストレージの利便性は、多くの犠牲を伴う場合が多い。例えば、ユーザごとに割り当てられる記憶スペースの量は、価格ベース（例えば、月額料金で２ＧＢの記憶スペース）の場合があり、利用ベース（例えば、クラウドベースのストレージとユーザの装置との間で、一ヶ月当たり１ＧＢのデータを転送することができるなど）の場合があり、又は更に、最大量の上限（例えば、１０ＧＢの上限）が設けられる場合がある。更には、クラウドベースのストレージ内に記憶されたデータにアクセスすることは、そのデータが、ユーザのローカルネットワーク上のネットワーク対応ハードドライブ上に記憶されている場合であっても、ローカルに記憶されたデータよりも高いレイテンシを有する。
【発明の概要】
【０００５】
本開示の更なる特徴及び利点は、以下の説明に記載され、部分的には、その説明から明白となるか、又は、本明細書で開示される原理を実践することによって習得することができる。本開示の特徴及び利点は、添付の特許請求の範囲で具体的に指摘される手段及び組み合わせによって、実現し、取得することができる。本開示のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲から、より完全に明らかとなるか、又は、本明細書に記載される原理を実践することによって理解することができる。
【０００６】
本明細書で開示される技術は、パーソナルネットワーク記憶装置などの、外部ネットワーク記憶装置の統合を通じて、クラウドベースのストレージを強化する。この外部ネットワーク記憶装置は、クラウドコンピューティングシステムの一部である記憶装置とは対照的に、ローカルネットワークを介してクラウドコンピューティングシステムに接続される、任意のネットワーク対応記憶装置とすることができる。すなわち、クラウドコンピューティングシステムから独立している外部ネットワーク記憶装置である。クラウドベースのストレージを強化するための方法は、第１のクライアント装置からの記憶リクエストを、クラウドストレージシステムで受信することを含む。この記憶リクエストは、ユーザアカウントと関連して、クラウドベースのストレージ内に記憶するためのデータ項目を指定することができる。この記憶リクエストに応じて、本方法は、ユーザアカウントの詳細を取得することができ、このユーザアカウントの詳細は、認可された外部ネットワーク記憶装置の識別子と、そのユーザアカウントに関連付けられたデータの記憶場所とを含み得る。
【０００７】
本方法は、外部ネットワーク記憶装置の識別子によって特定される外部ネットワーク記憶装置に、データ項目を記憶させることができる。一部の構成では、本方法は、既定の判定基準を満たすことに応じて、外部ネットワーク記憶装置にデータ項目を記憶させることができる。例えば、この既定の判定基準としては、クラウドベースの記憶装置に不十分なスペースしか存在しないと判定すること、外部ネットワーク記憶装置にデータ項目を記憶することが、より効率的であると判定すること、クラウドストレージ内に記憶することにより、ユーザアカウントに対して認可されたスペースを超過することになると判定すること、及び／又は、外部ネットワーク記憶装置を、記憶リクエストが記憶場所として指定したと判定することを、挙げることができる。外部ネットワーク記憶装置にデータ項目を記憶すると、本方法は、そのデータ項目に関する記憶場所としての外部ネットワーク記憶装置を反映するように、ユーザアカウントの詳細を更新することができる。
【０００８】
一部の実施形態では、方法は、クラウドストレージシステムで、クライアント装置からの読み出しリクエストを受信することを含み得る。この読み出しリクエストは、データ項目を指定することができる。この読み出しリクエストに応じて、本方法は、ユーザアカウントの詳細を取得することができる。ユーザアカウントの詳細は、データ項目の記憶場所を指定することができる。データ項目が外部ネットワーク記憶装置に記憶されていることを、ユーザアカウントの詳細から特定することに応じて、本方法は、外部ネットワーク記憶装置から、そのデータ項目を読み出すことができる。データ項目を読み出した後、本方法は、そのデータ項目をクライアント装置に送信することができる。
【図面の簡単な説明】
【０００９】
上述の利点及び特徴並びに本開示の他の利点及び特徴を取得することが可能な方式を説明するために、上記で概説された原理のより詳細な説明が、添付図面に示されるそれらの具体的な実施形態を参照して提示される。これらの図面は、本開示の例示的実施形態のみを示すものであり、それゆえ、本開示の範囲を限定するものとして見なされるべきではないことを理解した上で、以下の添付図面の使用を通じて、本明細書での原理が、更に具体的かつ詳細に記載され、説明される。
【００１０】
【図１】クラウドコンピューティングシステム内の装置の例示的な構成を示す。
【００１１】
【図２】例示的なクラウドコンピューティングリソースシステムを示す。
【００１２】
【図３】強化されたクラウドベースのストレージを使用してデータ項目を記憶するための、例示的なリクエストを示す。
【００１３】
【図４】強化されたクラウドベースのストレージを使用してデータ項目を読み出すための、例示的なリクエストを示す。
【００１４】
【図５】アプリケーションリソースファイルを有する例示的なアプリケーションを示す。
【００１５】
【図６】アプリケーションリソースファイル及びアプリケーションリソースファイルプレースホルダを有する、例示的なアプリケーションを示す。
【００１６】
【図７】リソースファイル及びリソースファイルプレースホルダを有する、例示的なオペレーティングシステムを示す。
【００１７】
【図８】アプリケーションリソースファイルを使用するアプリケーションの例示的な実行を示す。
【００１８】
【図９】例示的なデータ項目の集合を示す。
【００１９】
【図１０】例示的な集合形成のやり取りを示す。
【００２０】
【図１１】集合へのデータ項目の例示的な割り当てを示す。
【００２１】
【図１２】強化されたクラウドベースのストレージを使用してデータ項目を記憶するための、例示的方法の実施形態を示す。
【００２２】
【図１３】強化されたクラウドベースのストレージを使用してデータ項目を読み出すための、例示的方法の実施形態を示す。
【００２３】
【図１４】アプリケーションリソースファイルプレースホルダを有するアプリケーションをインストールするための、例示的方法の実施形態を示す。
【００２４】
【図１５】アプリケーションリソースファイルを取得するための、例示的方法の実施形態を示す。
【００２５】
【図１６】データ項目の共有及び協働のための、例示的方法の実施形態を示す。
【００２６】
【図１７】ユーザを集合に加入させるための、例示的方法の実施形態を示す。
【００２７】
【図１８】集合にデータ項目を割り当てるための、例示的方法の実施形態を示す。
【００２８】
【図１９】集合に割り当てられたデータ項目を修正するための、例示的方法の実施形態を示す。
【００２９】
【図２０】例示的システムの実施形態を示す。
【発明を実施するための形態】
【００３０】
本開示の様々な実施形態が、以下で詳細に論じられる。特定の実装が論じられるが、このことは、例示目的のためにのみ行われることを理解されたい。本開示の趣旨及び範囲から逸脱することなく、他の構成要素及び構成を使用することができる点が、関連技術の当業者には認識されるであろう。本開示は、クラウドベースのコンピューティング環境内でデータを共有及び記憶する改善された方法に関する、当該技術分野での必要性に対処するものである。
１．クラウドコンピューティング環境の概要
【００３１】
クラウドコンピューティングは、様々なリソースが、エンティティによって提供及び／又は制御され、インターネットを介して、そのエンティティによって認可ユーザに利用可能となる、インターネットベースのコンピューティングである。例示的なクラウドコンピューティングシステム構成１００が図１に示され、このシステム構成内では、様々な電子装置が、コンテンツ及び他のデータを交換する目的のために、ネットワークを介して通信することができる。このシステムは、電子装置の相互通信を促進する、多種多様なネットワーク構成上での使用のために、構成することができる。例えば、図１のシステム１００の構成要素のそれぞれは、ネットワーク内で、局所的又は分散的な方式で実装することができる。
【００３２】
システム１００は、クラウドコンピューティングリソース１２０を含むように構成することができる。このクラウドリソースは、クラウドサーバ１２２、クラウドデータベース１２４、クラウドベースのストレージ１２６、クラウドネットワーク１２８、クラウドアプリケーション、クラウドプラットフォーム、及び／又は任意の他のクラウドベースのリソースなどの、様々なハードウェアリソース並びに／あるいはソフトウェアリソースを含み得る。一部の場合には、これらのクラウドリソースは分散される。例えば、クラウドベースのストレージ１２６は、複数の記憶装置を含み得る。一部の場合には、クラウドリソースは、複数のクラウドコンピューティングシステム及び／又は個別のネットワーク対応コンピューティング装置にわたって分散させることができる。例えば、クラウドコンピューティングリソース１２０は、サーバ１０４１、１０４２、．．．、１０４ｎ（全体として「１０４」）、データベース１０６、及び／又は任意の他のネットワーク対応コンピューティング装置と通信して、クラウドリソースを提供することができる。
【００３３】
更には、一部の場合には、クラウドリソースを冗長化することができる。例えば、クラウドコンピューティングリソース１２０が、データバックアップサービスを提供するように構成される場合には、ストレージリソースが、オフライン、ビジー、又は他の方式で、リクエストを処理するために利用不可である場合であっても、依然としてデータがユーザに利用可能となるように、そのデータの複数のコピーを記憶することができる。別の実施例では、クラウドコンピューティングリソース１２０が、アプリケーションを提供するように構成される場合には、それらのアプリケーションを、異なるクラウドサーバのいずれからも供給することができるように、それらのアプリケーションは、異なるクラウドサーバから利用可能とすることができる。最も近いサーバ、又は最も低い電流負荷を有するサーバが、所定のリクエストを処理するために選択されるように、アルゴリズムを適用することができる。
【００３４】
システム１００内で、ユーザは、直接通信及び／又は間接通信によってネットワークに接続される、ユーザ端末１０２１、１０２２、．．．、１０２ｎ（全体として「１０２」）を通じて、クラウドコンピューティングリソース１２０と相互作用する。クラウドコンピューティングリソース１２０は、サーバ；デスクトップコンピュータ；モバイルコンピュータ；ハンドヘルド通信装置、例えば、モバイルフォン、スマートフォン、タブレット；セットトップボックス；ネットワーク対応ハードドライブ；及び／又は任意の他のネットワーク対応コンピューティング装置などの、多種多様な電子装置からの接続をサポートすることができる。更には、クラウドコンピューティングリソース１２０は、同時に複数の電子装置からの接続を受け入れて、それらの電子装置と相互作用することができる。複数の電子装置との相互作用は、優先順位を決めるか、又は同時に実施することができる。
【００３５】
クラウドコンピューティングリソース１２０は、公的配置モデル、私的配置モデル、地域配置モデル、混成配置モデル、及び／又は任意の他のクラウド配置モデルなどの、様々な配置モデルを通じて、クラウドリソースを提供することができる。一部の場合には、クラウドコンピューティングリソース１２０は、複数の配置モデルをサポートすることができる。例えば、クラウドコンピューティングリソース１２０は、公的配置モデルを通じて１つのリソースのセットを提供し、私的配置モデルを通じて別のリソースのセットを提供することができる。
【００３６】
一部の構成では、ユーザ端末１０２は、インターネット接続が利用可能な任意の場所から、クラウドコンピューティングリソース１２０にアクセスすることができる。しかしながら、他の場合には、クラウドコンピューティングリソース１２０は、特定のリソースへのアクセスを制限して、特定の場所からのみリソースにアクセスすることができるように構成することができる。例えば、クラウドコンピューティングリソース１２０が、私的配置モデルを使用してリソースを提供するように構成される場合には、クラウドコンピューティングリソース１２０は、ファイアウォール越しにユーザ端末１０２がリソースにアクセスすることを要求することなどによって、リソースへのアクセスを制限することができる。
【００３７】
クラウドコンピューティングリソース１２０は、Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍｓ  ａｓ  ａ  ｓｅｒｖｉｃｅ（ＰａａＳ）、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）、及び／又は任意の他のクラウドサービスモデルなどの、様々なサービスモデルを通じて、ユーザ端末１０２にクラウドリソースを提供することができる。一部の場合には、クラウドコンピューティングリソース１２０は、ユーザ端末１０２に複数のサービスモデルを提供することができる。例えば、クラウドコンピューティングリソース１２０は、ユーザ端末１０２に、ＳａａＳ及びＩａａＳの双方を提供することができる。一部の場合には、クラウドコンピューティングリソース１２０は、異なるユーザ端末１０２に、異なるサービスモデルを提供することができる。例えば、クラウドコンピューティングリソース１２０は、ユーザ端末１０２１にＳａａＳを提供し、ユーザ端末１０２２にＰａａＳを提供することができる。
【００３８】
一部の場合には、クラウドコンピューティングリソース１２０は、アカウントデータベースを保守することができる。このアカウントデータベースは、登録ユーザに関するプロファイル情報を記憶することができる。プロファイル情報は、ユーザが使用を許可されるソフトウェア、最大記憶スペースなどの、リソースアクセス権を含み得る。プロファイル情報はまた、消費されたコンピューティングリソース、データの記憶場所、セキュリティ設定、個人的な構成設定などの、利用情報も含み得る。一部の場合には、アカウントデータベースは、サーバ１０４又はデータベース１０６などの、クラウドコンピューティングリソース１２０に対して遠隔のデータベース又はサーバ上に存在し得る。
【００３９】
クラウドコンピューティングリソース１２０は、ユーザとの対話を必要とする、様々な機能性を提供することができる。したがって、クラウドコンピューティングリソース１２０との通信、及び／又はクラウドリソースに関連付けられたタスクの実行のために、ユーザインタフェース（ＵＩ）を提供することができる。このＵＩには、クラウドコンピューティングリソース１２０と通信するエンドユーザ端末１０２を介して、アクセスすることができる。このＵＩは、クラウドコンピューティングリソース１２０並びに／あるいはユーザ端末１０２の記憶能力及び処理能力に応じて、ファットクライアントモード、シンクライアントモード、又は混成クライアントモードを含めた様々なクライアントモードで動作するように、構成することができる。それゆえ、ＵＩは、一部の実施形態では、ユーザ端末で動作するスタンドアロンアプリケーションとして実行することができる。他の実施形態では、ウェブブラウザベースのポータルを使用して、ＵＩを提供することができる。クラウドコンピューティングリソース１２０にアクセスするための任意の他の構成もまた、様々な実施形態で使用することができる。
２．クラウドコンピューティングリソースシステム
【００４０】
例示的なクラウドコンピューティング環境を開示してきたが、ここで本開示は、図１のクラウドコンピューティングリソース１２０などの、例示的なクラウドコンピューティングリソース（ＣＣＲ）システム２００を示す、図２を参照する。ＣＣＲシステム２００は、多種多様なクライアント装置のタイプからのデータを記憶し、共有し、アクセスする、ユーザの能力を強化するための、多くの特徴的機能を含み得る。これらの特徴的機能としては、強化されたクラウドベースのストレージ、クラウドベースのリソース、並びにグループデータ項目の共有及び協働を挙げることができる。例えば、ＣＣＲシステム２００は、パーソナルネットワーク対応外部ハードドライブなどの、外部ネットワーク記憶装置の使用を通じて拡張される、クラウドベースのストレージを提供することができる。別の実施例では、ＣＣＲシステム２００は、使用頻度の低いテンプレートファイルなどの、アプリケーションリソースファイル用の、クラウドベースのストレージを提供することができる。更に別の実施例では、ＣＣＲシステム２００は、集合に加入しているユーザのグループの間での、データ共有を容易にすることができる。これらの特徴的機能、並びにそれらの特徴的機能を提供するために使用可能なアーキテクチャ及びリソースが、以下でより詳細に論じられる。
２．１  アーキテクチャ
【００４１】
図２に示すように、ＣＣＲシステム２００のアーキテクチャは、多くの構成要素を含み得る。これらの構成要素としては、システムの動作に関連するデータを記憶するための１つ以上のデータベース、例えば、アカウントデータベース２４０、集合データベース２４２、及びアプリケーションリソースデータベース２４６；１つ以上の記憶装置、例えば、クラウドベースのストレージ２４４；並びに、データベース、記憶装置と相互作用し、かつ／又はシステムによって提供される特徴的機能を制御するための、１つ以上のモジュール及び／又はエンジン、例えば、通信インタフェース２１０、アカウント管理モジュール２１２、ユーザインタフェースモジュール２１４、データ項目共有エンジン２２０、及びクラウドストレージエンジン２３０を挙げることができる。図２の構成要素のそれぞれが、以下でより詳細に論じられるが、しかしながら、当業者には、図２に示すアーキテクチャ構成が、単に１つの可能な構成に過ぎず、より多くの構成要素又はより少ない構成要素を有する他の構成もまた可能であることを理解されたい。
【００４２】
ＣＣＲシステム２００は、多種多様なクライアント装置と通信することが可能な、ネットワークベースのシステムである。この通信を促進するために、ＣＣＲシステム２００は、通信インタフェース２１０を含み得る。通信インタフェース２１０は、クライアント装置から、リクエスト、データなどの通信を受信して、処理のために、ＣＣＲシステム２００内の適切なモジュール及び／又はエンジンに、その通信を転送するように構成することができる。通信インタフェース２１０はまた、クライアント装置に通信を送信するように構成することもできる。更には、通信インタフェース２１０は、他のクラウドコンピューティングシステムを含めた、任意のコンピューティング装置と通信するように構成することができる。
【００４３】
ＣＣＲシステム２００によって提供される特徴的機能の一部は、クラウドベースのストレージ内に記憶されている特定のファイルに対するリクエスト、データファイルの集合に加入するように新たなユーザを招待すること、及び／又は新たなファイルを集合に追加することなどの、ユーザとの対話を必要とし得る。したがって、そのようなタスクを実行するためのユーザインタフェースモジュール２１４と通信するために、ユーザインタフェース（ＵＩ）を提供することができる。ユーザインタフェースモジュール２１４に関するＵＩには、ＣＣＲシステム２００と通信するクライアント装置２０２を介してアクセスすることができる。このＵＩ及びユーザインタフェースモジュール２１４は、ＣＣＲシステム２００並びに／あるいはクライアント装置２０２の記憶能力及び処理能力に応じて、ファットクライアントモード、シンクライアントモード、又は混成クライアントモードを含めた様々なクライアントモードで動作することができる。それゆえ、ユーザインタフェースモジュールに関するＵＩは、一部の実施形態では、クライアント装置で動作するスタンドアロンアプリケーションとして実装することができる。他の実施形態では、ウェブブラウザベースのポータルを使用して、ユーザインタフェースモジュール２１４に関するＵＩを提供することができる。ＣＣＲシステム２００にリモート又はローカルでアクセスするための、任意の他の構成もまた、様々な実施形態で使用することができる。更には、このＵＩは、グラフィカルユーザインタフェース、音声ユーザインタフェース、及び／又は任意の他のタイプのＵＩなどの、ユーザとの対話を容易にする任意のタイプのＵＩとすることができる。
【００４４】
一部の場合には、ＣＣＲシステム２００は、クラウドベースのストレージなどの特徴的機能を、ユーザごとに提供することができ、又は、特徴的機能は、ユーザ認証を必要とする場合がある。これらの特徴的機能を可能にするために、ＣＣＲシステム２００は、アカウントデータベース２４０及びアカウント管理モジュール２１２を含み得る。アカウントデータベース内に記憶される情報は、その特徴的機能に応じて異なり得る。例えば、アカウントデータベース２４０が、強化されたクラウドベースのストレージに関連する情報を記憶するために使用される場合には、そのアカウント情報は、ユーザ情報、認可された最大記憶スペース、使用される記憶スペース、認可されたクライアント装置の識別子、認可された外部ネットワーク記憶装置の識別子、ファイルの記憶場所などを含み得る。あるいは、アカウントデータベース２４０が、データファイルの集合に関連する情報を記憶するために使用される場合には、そのアカウント情報は、ユーザ情報、加入される集合、認可されたクライアント装置の識別子などを含み得る。一部の構成では、ＣＣＲシステム２００全体にわたって単一のアカウントデータベースを使用して、これらの特徴的機能の全てに関するアカウント情報を記憶することができる。しかしながら、ＣＣＲシステム２００は、クラウドベースのストレージに関するアカウントデータベース、及びデータファイルの集合に関する異なるアカウントデータベースなどの、異なる特徴的機能に関する異なるアカウントデータベースを保守するように構成することができる。
【００４５】
アカウント管理モジュール２１２は、ユーザアカウントデータベース２４０内のユーザアカウントの詳細を、更新及び／又は取得するように構成することができる。例えば、ファイルを記憶するためのリクエストを受信すると、アカウント管理モジュール２１２は、ユーザのアカウントの詳細を取得することができ、次いでＣＣＲシステム２００は、このアカウントの詳細を使用して、そのユーザが外部ネットワーク記憶装置を記憶場所として認可しているか否かを判定することができる。別の実施例では、集合に加入するための招待をユーザが承諾することに応じて、アカウント管理モジュール２１２は、その集合を含むようにユーザのアカウントの詳細を更新することができる。アカウント管理モジュール２１２は、ＣＣＲシステム２００内の任意数の他のモジュール及び／又はエンジンと相互作用するように、構成することができる。
【００４６】
以下でより詳細に論じられる、ＣＣＲシステム２００の特徴的機能のうちの１つは、ＣＣＲシステム２００を使用して、ユーザのグループの間でのデータ項目の共有及び協働を促進することができる点である。この共有及び協働は、集合の作成を通じて達成することができる。ユーザのグループは、集合に加入することができる。集合が形成された後、１人以上の加入ユーザは、その集合にデータ項目を割り当てることができ、割り当てられた各データ項目のコピーを、各加入ユーザに配信することができる。集合に関連する情報は、集合データベース２４２内に記憶することができる。記憶される情報としては、集合の識別子、加入ユーザの識別子、割り当てられたデータ項目、修正の記録を保守する１つ以上のログファイルなどを挙げることができる。
【００４７】
ＣＣＲシステム２００は、集合に関連付けられる共有及び協働のアクティビティを管理するための、データ項目共有エンジン２２０を含み得る。例えば、データ項目共有エンジン２２０は、集合に割り当てられたデータ項目に対する修正を受信して、集合データベース２４２内の集合情報を更新し、その集合に加入している他のユーザに、その修正を配信することができる。集合に関連付けられる共有及び協働のアクティビティを管理するタスクを達成するために、データ項目共有エンジン２２０は、集合管理モジュール２２２及びバージョン制御モジュール２２４などの、１つ以上のモジュールを含み得る。データ項目共有エンジン２２０はまた、ＣＣＲシステム２００内の任意数の他のモジュール及び／又はエンジンと相互作用するように、構成することもできる。
【００４８】
以下でより詳細に論じられる、ＣＣＲシステム２００の別の特徴的機能は、ＣＣＲシステム２００が、強化されたクラウドベースのストレージを提供することができる点である。強化されたクラウドベースのストレージを促進するために、ＣＣＲシステム２００は、クラウドストレージエンジン２３０を含み得る。例えば、クラウドストレージエンジン２３０は、データ項目を記憶するためのリクエストを受信することができる。この記憶リクエストに応じて、クラウドストレージエンジン２３０は、そのリクエストに関連付けられたユーザアカウントの詳細を取得し、クラウドベースのストレージ２４４内、及び／又は認可された外部ネットワーク記憶装置に、そのデータ項目を記憶して、その記憶場所に関するアカウントの詳細を更新することができる。同様に、クラウドストレージエンジン２３０は、データ項目を読み出すためのリクエストを受信することができる。この読み出しリクエストに応じて、クラウドストレージエンジン２３０は、そのリクエストに関連付けられたユーザアカウントの詳細を取得して、記憶場所を特定し、その記憶場所からデータ項目を取得することができる。更には、クラウドストレージエンジン２３０を使用して、テンプレートファイルなどの、アプリケーションリソースファイルの記憶及び読み出しを管理することができる。クラウドストレージエンジン２３０は、データ管理モジュール２３２などの１つ以上のモジュール、及びアプリケーションリソースデータベース２４６などの１つ以上のデータベースを含むことにより、クラウドベースのアプリケーションリソース機能性を提供することができる。クラウドストレージエンジン２３０はまた、ＣＣＲシステム２００内の任意数の他のモジュール及び／又はエンジンと相互作用するように、構成することもできる。
２．２  特徴的機能
【００４９】
前述のように、ＣＣＲシステム２００は、多種多様なクライアント装置のタイプからのデータを記憶し、共有し、アクセスする、ユーザの能力を強化するための、多くの特徴的機能を含み得る。これらの特徴的機能としては、強化されたクラウドベースのストレージ、クラウドベースのリソース、及びグループデータ共有を挙げることができる。
２．２．１  強化されたクラウドベースのストレージ
【００５０】
ＣＣＲシステム２００は、クラウドベースのストレージを提供するように構成することができる。一部の構成では、クラウドストレージエンジン２３０が、クラウドベースのストレージの特徴的機能を管理することができる。クラウドストレージエンジンは、クライアント装置からの記憶リクエスト及び読み出しリクエストを受信することができる。一部の場合には、これらの記憶リクエスト及び読み出しリクエストは、通信インタフェース２１０及び／又はユーザインタフェースモジュール２１４を介して、クラウドストレージエンジン２３０に転送される。
【００５１】
ユーザは、クラウドベースのストレージ２４４などのクラウドベースのストレージ内に、クライアント装置からのデータ項目を記憶する目的のために、ＣＣＲシステム２００でアカウントを確立することができる。クラウドストレージエンジン２３０は、アカウント管理モジュール２１２などから、アカウントの詳細を取得することができる。一部の場合には、クラウドストレージエンジン２３０は、ユーザアカウントに対して最大記憶容量を割り当てることができる。例えば、クラウドストレージエンジン２３０は、全てのユーザに対して、均一の記憶容量、例えば４ＧＢを割り当てることができる。別の実施例では、クラウドストレージエンジン２３０は、既定の判定基準に基づいて、異なるユーザに対して異なる記憶容量、例えば、ユーザの所属に基づく容量、加入費に基づく容量などを割り当てることができる。この最大記憶容量は、アカウント管理モジュール２１２に情報を転送することなどによって、ユーザのアカウントの詳細内に記録することができる。しかしながら、一部の場合には、クラウドストレージエンジン２３０は、無制限の記憶容量を許可することができる。
【００５２】
記憶容量に加えて、クラウドストレージエンジン２３０はまた、ユーザの現在のストレージ利用の記録を保守するように、構成することもできる。例えば、ユーザが、５００ＭＢの合計サイズを有する、５つのファイルを記憶させている場合には、クラウドストレージエンジン２３０は、その情報をユーザのアカウントの詳細内に記録させることによって、そのような情報を保守することができる。一部の場合には、利用情報は、ユーザに最大記憶容量が割り当てられているか否かに関わりなく、保守することができる。
【００５３】
クラウドストレージエンジン２３０はまた、単一のユーザアカウントに対して、ユーザが複数のクライアント装置を認可することができるように構成することもできるため、ユーザは、クラウドベースのストレージ内に記憶されたデータ項目に、複数のクライアント装置からアクセスすることが可能となる。例えば、ユーザは、家庭用デスクトップコンピュータ及びポータブルコンピュータを認可することができる。次いで、ユーザは、そのデスクトップコンピュータから、クラウドベースのストレージにデータ項目を記憶させ、その後、ポータブルコンピュータを使用して、その項目を読み出すことができる。認可されたクライアント装置は、クライアント装置に関する一意的識別子を記録することなどによって、ユーザのアカウントの詳細内に記録することができる。更には、一部の場合には、クライアント装置は、複数のユーザアカウントに関連付けることができる。
【００５４】
上述のクラウドベースのストレージの詳細は、やや伝統的なクラウドベースのストレージの特徴的機能である。しかしながら、クラウドストレージエンジン２３０は、ユーザアカウントに対して認可された外部ネットワーク記憶装置の統合を通じて、強化されたクラウドベースのストレージを提供することができる。本明細書で使用されるような外部ネットワーク記憶装置は、ユーザが所有し、かつ／又はユーザのローカルネットワークを介してＣＣＲシステム２００に接続される、外部ハードドライブ、例えば、パーソナルネットワーク記憶装置２０２１などの、任意のネットワーク対応記憶装置とすることができる。すなわち、いずれのクラウドコンピューティングシステムからも独立している、ネットワーク対応記憶装置である。例えば、外部ネットワーク記憶装置は、ユーザが自分の家庭内で自身のローカルネットワークに接続している、外部ハードドライブとすることができる。あるいは、外部ネットワーク記憶装置は、組織のローカルネットワークに接続された、ネットワーク対応記憶装置とすることができる。すなわち、外部ネットワーク記憶装置は、ＣＣＲシステム２００又は何らかの他のクラウドコンピューティングシステムの一部であるのではなく、ローカルネットワーク上に存在する、任意のネットワーク対応記憶装置とすることができる。
【００５５】
ユーザは、ＣＣＲシステム２００内の自身のユーザアカウントに対して、１つ以上の外部ネットワーク記憶装置を認可することができる。一部の場合には、複数のユーザアカウントに対して、１つの外部ネットワーク記憶装置を認可することができる。例えば、１つの世帯が、ユーザアカウントをそれぞれが有する３人の人物、及び単一の外部ネットワーク記憶装置を含む場合がある。この世帯内の各ユーザは、自身のアカウントに対して、その外部ネットワーク記憶装置を認可することができる。
【００５６】
外部ネットワーク記憶装置が、特定のユーザアカウントで認可されると、クラウドストレージエンジン２３０は、その外部ネットワーク記憶装置を使用して、クラウドベースのストレージを拡張することができる。すなわち、クラウドベースのストレージ２４４内にデータ項目を記憶する代わりに、クラウドストレージエンジン２３０は、そのデータ項目を、認可された外部ネットワーク記憶装置に記憶させることができる。しかしながら、ユーザが、データ項目を記憶するようにリクエストし、かつユーザが、自身のアカウントに対して外部ネットワーク記憶装置を認可していない場合には、クラウドストレージエンジン２３０は、伝統的なクラウドベースのストレージに戻ることができる。
【００５７】
複数の外部ネットワーク記憶装置が、特定のユーザアカウントで認可される場合、クラウドストレージエンジン２３０は、それらの外部ネットワーク記憶装置のうちの１つを、データ項目の記憶場所として選択することができる。この選択は、無作為、利用可能なスペースの量、クラウドストレージエンジン２３０からの距離、データ項目のタイプ、ユーザ設定、外部ネットワーク記憶装置の信頼性などの、様々な判定基準に基づき得る。
【００５８】
クラウドストレージエンジン２３０は、クラウドベースのストレージ内に記憶されるデータ項目を管理することが可能な、データ管理モジュール２３２を含むように構成することができる。例えば、データ管理モジュール２３２は、強化されたファイルシステムとして動作することができる。データ管理モジュール２３２は、データ項目をクラウドベースのストレージ２４４内に記憶するべきか、又は認可された外部ネットワーク記憶装置に記憶するべきかを判定するように、構成することができる。認可された外部ネットワーク記憶装置にデータ項目を記憶するという決定は、既定の判定基準を満たすことに基づき得る。使用される判定基準は、システムの構成によって異なり得る。一部の場合には、データ管理モジュール２３２は、クラウドベースのストレージ内に、ユーザにとって十分なスペースが割り当てられなかったと判定される場合に、認可された外部ネットワーク記憶装置にデータ項目を記憶することを選択することができる。例えば、クラウドストレージエンジン２３０は、ユーザアカウントに対して承認された最大容量よりも小さいスペースを割り当てるように、構成することができる。データ管理モジュール２３２が、割り当てられたスペースが不十分であると判定し、かつユーザが、そのユーザの承認された最大記憶容量を超過していない場合、より多くのスペースをクラウドベースのストレージ２４４内に割り当てる代わりに、データ管理モジュール２３２は、認可された外部ネットワーク記憶装置に、データ項目を記憶させることができる。一部の場合には、データ管理モジュール２３２は、ユーザが、そのユーザの承認された最大記憶容量を超過していると判定される場合に、認可された外部ネットワーク記憶装置にデータ項目を記憶することを選択することができる。例えば、ユーザの記憶リクエストを拒否するか、又は、ユーザに、クラウドベースのストレージ２４４内の自身の記憶容量を増大させることを要求する代わりに、データ管理モジュール２３２は、認可された外部ネットワーク記憶装置に、データ項目を記憶させることができる。あるいは、一部の場合には、データ管理モジュール２３２は、外部ネットワーク記憶装置に記憶することがより効率的であり得ると、データ管理モジュール２３２が判定する場合に、認可された外部ネットワーク記憶装置にデータ項目を記憶することを選択するように、構成することができる。例えば、外部ネットワーク記憶装置が、クラウドベースのストレージ２４４よりも近い場合には、その外部ネットワーク記憶装置にデータ項目を記憶することにより、レイテンシを低減し、性能を向上させることができる。更には、一部の場合には、データ管理モジュール２３２は、ユーザ設定に基づいて、認可された外部ネットワーク記憶装置にデータ項目を記憶することを選択するように、構成することができる。例えば、ユーザは、特定のデータ項目、又は特定のタイプのデータ項目が、外部ネットワーク記憶装置に記憶されるべきであることを、指定することができる。
【００５９】
データ管理モジュール２３２はまた、クラウドベースのストレージ２４４内に、データ項目の複数のコピーを保守するように、構成することもできる。この冗長性を実行することにより、リクエストされたデータ項目が利用不可となる可能性を低減することができる。例えば、データ管理モジュール２３２は、データ項目が外部ネットワーク記憶装置に記憶されるたびに、クラウドベースのストレージ２４４内にデータ項目のコピーを記憶するように、構成することができる。一部の場合には、この冗長性オプションは、ユーザ設定に基づき得る。例えば、ユーザは、外部ネットワーク記憶装置に記憶するように、ユーザがクラウドストレージエンジン２３０に指示したデータ項目が、クラウドベースのストレージ２４４内にも記憶されるべきではなく、更なる認可された外部ネットワーク記憶装置に記憶することが可能であることを、指定することができる。
【００６０】
一部の場合には、データ管理モジュール２３２は、データ項目を分割して、それらのデータ部片を、外部ネットワーク記憶装置を含めた、１つ以上のクラウドベースの記憶場所内に記憶するように、構成することができる。例えば、データ項目を２つの部片に分割して、一方の部片をクラウドベースのストレージ２４４内に記憶し、他方を外部ネットワーク記憶装置に記憶することができる。更には、一部の構成では、データ管理モジュール２３２は、データ項目を複数の部片に分割して、それらの部片を冗長的に記憶させることができる、
【００６１】
図３は、強化されたクラウドベースのストレージを使用してデータ項目を記憶するためのリクエストが、ＣＣＲシステム２００で受信される、例示的なシナリオ３００を示す。シナリオ３００では、ユーザ３０２は、クライアント装置３０４、３０６、及びクライアント装置３０８の組み合わせを有する。ユーザは、クラウドベースのストレージにデータ項目を送信し、かつクラウドベースのストレージからデータ項目を読み出す目的のために、そのユーザのアカウントに認可されたクライアント装置３０４及びクライアント装置３０６を有する。更には、ユーザは、そのユーザのデータ項目に関する認可された記憶場所として、認可された外部ネットワーク記憶装置３０８を有する。ユーザが、クライアント装置３０４から記憶リクエストを行うと、クラウドストレージエンジン２３０が、そのリクエスト及びデータ項目を受信する。そのデータ項目が外部ネットワーク記憶装置３０８上に記憶されるべきであると判定すると、クラウドストレージエンジン２３０は、外部ネットワーク記憶装置３０８にデータ項目を送信することができ、この記憶場所の選択を反映するように、ユーザのアカウントの詳細を更新することができる。クラウドストレージエンジン２３０は、データ項目が外部ネットワーク記憶装置３０８上に記憶されるべきであるという判定を、ユーザに対して透過的な方式で行うことができる。すなわち、クラウドストレージエンジン２３０は、外部ネットワーク記憶装置３０８上にデータ項目を記憶することを、ユーザからの入力なしで選択することができる。
【００６２】
図４は、ユーザ３０２が、クラウドベースのストレージ内に以前に記憶されたデータ項目を読み出すことをリクエストする、例示的なシナリオ４００を示す。シナリオ４００では、ユーザは、データ項目を読み出すためのリクエストを行う。データ項目を読み出すためのリクエストは、データ項目を記憶するために使用されたものと同じクライアント装置から、及び／又は異なる装置から行うことができる。シナリオ４００では、読み出しリクエストは、データ項目を記憶するために使用されたものとは異なる装置である、クライアント装置３０６から行われる。このリクエストの受信に応じて、クラウドストレージエンジン２３０は、ユーザアカウント情報を取得して、データ項目の場所を判定する。データ項目が外部ネットワーク記憶装置に記憶されていたと判定すると、クラウドストレージエンジン２３０は、外部ネットワーク記憶装置３０８からデータ項目を取得して、そのデータ項目をクライアント装置３０６に送信することができる。記憶場所の情報は、ＣＣＲシステム２００によって保守されているため、クラウドストレージエンジン２３０は、ユーザからの追加入力なしで、外部ネットワーク記憶装置に記憶されたデータ項目を取得することができる。それゆえ、データ項目が外部ネットワーク記憶装置に記憶されているという事実は、ユーザに対して透過的となり得る。
２．２．２  クラウドベースのリソース
【００６３】
ＣＣＲシステム２００はまた、クライアント装置にクラウドベースのアプリケーションリソースを提供し、かつ／又は、他の記憶場所からのアプリケーションリソースの読み出しを容易にするように、構成することもできる。多くの場合、クライアント装置で実行されるアプリケーションは、主要なアプリケーション実行可能ファイルの外部に存在するアセット又はリソースの使用を必要とする、機能性を含み得る。アプリケーションリソースとしては、アプリケーションの機能性の何らかの態様を提供するために、そのアプリケーションによって要求される任意のリソース、例えば、テンプレートファイル、ライブラリファイル、データファイル、別のアプリケーション、デーモンなどを挙げることができる。例えば、ワードプロセッシングプログラムは、コアとなる機能性を提供する、主要なアプリケーション実行可能ファイルを含み得る。ユーザが再利用することができる特別に設計された文書フォーマット設定などの、特殊化された機能性を提供するために、ワードプロセッシングプログラムは、テンプレートを含み得る。ユーザが、既定の文書フォーマットを使用することを選択すると、対応するテンプレートが、外部リソースファイルからロードされる。この実施例では、各テンプレートが、アプリケーションリソースである。別の実施例では、音楽アプリケーションは、種々の楽器の集合を含み得る。各楽器を、アプリケーションリソースとすることができる。楽器に関する機能性は、アプリケーションリソースファイル内に含めることができ、このファイルは、その特定のアプリケーションをユーザが選択すると、その音楽アプリケーションによってロードされる。更に別の実施例では、アプリケーションは、カーネルを含むオペレーティングシステムとすることができ、このカーネルは、最も基本的な機能性を提供し、他のアプリケーションが装置のハードウェアと相互作用することを可能にする。より高レベルの機能性を提供するために、オペレーティングシステムは、他のアプリケーション及びデーモンの形態の、他のリソースを含み得るものであり、それらのリソースうちの多くは、必要に応じて随時実行される。より高レベルのアプリケーション及びデーモンのそれぞれが、オペレーティングシステムに関するアプリケーションリソースである。カーネルの観点からは、より高レベルの機能性が、アプリケーションリソースファイルを通じて提供される。
【００６４】
図５は、アプリケーションリソースファイルを有するアプリケーションの、例示的なシナリオ５００を示す。シナリオ５００では、アプリケーション５０２は、３つのアプリケーションリソースファイル５０４、５０６、及びアプリケーションリソースファイル５０８を含む。アプリケーション５０２が実行される際、これらのアプリケーションリソースファイルがロードされる。シナリオ５００では、リソースファイル５０４及びリソースファイル５０６はロードされているが、リソースファイル５０８はロードされていない。
【００６５】
アプリケーションに含まれているアプリケーションリソースファイルのフルセットは、広範なアプリケーション利用範囲を網羅するように設計することができ、大多数のユーザが利用することができるのは、それらのアプリケーションリソースのサブセットのみである。例えば、ワードプロセッシングアプリケーションは、多くの場合、個人的用途及びビジネス用途を含めた、一定の範囲のユースケースを対象とする、過剰なテンプレートを含む。個人的用途のためにワードプロセッシングアプリケーションをインストールしたユーザは、個人的ユースケース用に設計されたテンプレートよりも、ビジネス関連のテンプレートを使用する可能性が低い。更には、一部の場合には、ユーザは、テンプレートを１つも使用しない場合があり、又は個人的に作成したテンプレートのみを使用する場合もある。一切使用されないテンプレートが、ユーザによって実際に使用されるデータを記憶するために使用することが可能な、ユーザの装置のスペースを占有する。それゆえ、アプリケーションの記憶フットプリントを減少させるために、アプリケーションは、最小限のアプリケーションリソースファイルのセットのみを有して、又は更には、アプリケーションリソースファイルを全く有さずに、クライアント装置にインストールすることができる。
【００６６】
アプリケーションと共にインストールされる、アプリケーションリソースファイルのセットは、構成によって異なるものにすることができ、アプリケーション開発者によって決定することができ、かつ／又はユーザによって決定することができる。例えば、アプリケーション開発者は、アプリケーションの利用履歴情報を保守することができる。この利用履歴情報に基づいて、開発者は、アプリケーションリソースファイルの特定のサブセットが最も頻繁に使用されることを判定して、それらのリソースファイルのみを、アプリケーションに含めることができる。別の実施例では、アプリケーションのインストールは、特定のユースケース又は特定のタイプのアセット（例えば、家庭又はビジネス）に分類されるリソースファイルなどの、インストールするべきアプリケーションリソースファイルのサブセットを、ユーザが指定することを可能にするように、構成することができる。更に別の実施例では、クライアント装置は、リソースファイルのサイズ、又はインストールされる全てのアプリケーションリソースファイルに関する最大合計サイズなどの、既定の判定基準に基づいて、アプリケーションのサブセットのみを自動的にインストールするように、構成することができる。
【００６７】
アプリケーションリソースファイルの代わりに、アプリケーションは、アプリケーションリソースファイルプレースホルダを含み得る。アプリケーションリソースファイルプレースホルダは、実際のアプリケーションリソースファイルがインストールされているという外観を提供することができるが、実際にはそうではなく、実際のリソースファイルと同一に見えるように偽装されている、空のファイルである。すなわち、アプリケーションリソースファイルプレースホルダは、同じ名前、タイプなどを有し得る。アプリケーションリソースファイルプレースホルダは、更に、実際のリソースファイルのサイズと一致するファイルサイズを表示することができ、このことは、そのプレースホルダファイルの偶発的な削除を防ぐための安全対策となり得る。プレースホルダが実際のリソースファイルと異なり得る点は、プレースホルダがデータを含まず、そのファイルがプレースホルダであることを示すために、特殊ビットを設定することができる点である。
【００６８】
アプリケーションリソースファイルの読み出しを容易にするために、クライアント装置にインストールされたオペレーティングシステムは、特殊なリソースファイル取り出しプロセス又はデーモンを含み得る。アプリケーションリソースファイルが、アプリケーションによってリクエストされると、リソースファイル取り出しプロセスは、そのリクエストを受信して、次いで、インストールされているリソースファイルが実際のリソースファイルであるか、又はプレースホルダであるかを、特殊ビットを通じて検出することができる。このプロセスが、プレースホルダファイルを検出する場合には、障害がトリガされ、クラウドから実際のリソースファイルが取得される。実際のリソースファイルが取得されると、リソースファイルプレースホルダの代わりに、そのファイルをインストールすることができる。リクエストしているアプリケーションにリソースファイルを提供することには、別個のプロセスが関与しているため、実際のリソースファイルがインストールされているか、又はプレースホルダがインストールされているかは、アプリケーションに対して透過的となり得る。このレベルの透過性はまた、特殊なアプリケーションの準備を必要としないことも意味する。すなわち、アプリケーション自体は、リソースファイルを取り出すための特殊機能性を含む必要がなく、かつ／又は、アプリケーション開発者は、プログラムの諸部分を特定してリソースファイルプレースホルダで置き換える必要がない。このプレースホルダファイルのインストールは、リソースファイルがインストールされた後を含めて、任意の時点で実施することができる。
【００６９】
図６は、アプリケーションリソースファイル及びアプリケーションリソースファイルプレースホルダを有するアプリケーションの、例示的なシナリオ６００を示す。シナリオ６００では、図５からのアプリケーション５０２は、３つのアプリケーションリソースファイルによって提供される機能性を依然として含むが、この場合のアプリケーション５０２は、それらのアプリケーションリソースファイルのうちの２つ、リソースファイル５０４及びリソースファイル５０８のみを有してインストールされている。アプリケーションリソースファイル５０６の代わりに、このアプリケーションは、アプリケーションリソースファイルプレースホルダ５１０を含む。アプリケーション５０２が実行される際、アプリケーションリソースファイルがロードされる。アプリケーションリソースファイルプレースホルダ５１０に遭遇すると、クライアント装置は、実際のアプリケーションリソースファイルを取得する。
【００７０】
図７は、リソースファイル及びリソースファイルプレースホルダを有する、クライアント装置７０４上にインストールされたオペレーティングシステム７０２の、別の例示的なシナリオ７００を示す。オペレーティングシステム７０２は、カーネル及びリソースファイル読み出しデーモンを含む最小限の機能性を有して、クライアント装置７０４上にインストールすることができる。最小限の追加機能性のセットもまた、クライアント装置７０４上にインストールすることができる。例えば、ウェブブラウザ及びメディアプレーヤなどの、一般的に使用されるアプリケーションをインストールすることができるが、カレンダーアプリケーション、電子メールクライアント、アドレス帳アプリケーションなどの、それほど一般的に使用されないアプリケーションは、リソースファイルプレースホルダとしてインストールすることができる。
【００７１】
クライアント装置でのアプリケーションの実行中に、障害がトリガされる場合には、クライアント装置は、ＣＣＲシステム２００と通信して、アプリケーションリソースファイルを取得することができる。ＣＣＲシステム２００は、クラウドストレージエンジン２３０が、クラウドベースのアプリケーションリソースの特徴的機能を管理することができるように、構成することができる。一部の場合には、通信インタフェース２１４がリクエストを受信して、処理のために、そのリクエストをクラウドストレージエンジン２３０に転送することができる。
【００７２】
一部の場合には、ＣＣＲシステム２００は、アプリケーションリソースファイルのセットを保守するように構成することができる。例えば、ＣＣＲシステム２００は、クラウドベースのストレージ２４４内に、アプリケーションリソースファイルのセットを記憶することができる。アプリケーションリソースファイルの範囲は、ＣＣＲシステム２００及び／又はアプリケーションの構成によって異なり得る。例えば、アプリケーションに関してＣＣＲシステム２００によって保守されるアプリケーションリソースファイルのセットは、そのアプリケーションによって使用されるリソースの集合全体を含み得る。あるいは、ＣＣＲシステム２００によって保守されるアプリケーションリソースファイルのセットは、最初のアプリケーションのインストールで含まれなかった、アプリケーションリソースファイルのみを含み得る。すなわち、ＣＣＲシステム２００から利用可能なアプリケーションリソースファイルは、最小限のアプリケーションリソースファイルのセット内のアプリケーションリソースファイルを含み得ない。
【００７３】
クラウドストレージエンジン２３０は、クラウドベースのストレージ内に記憶されるアプリケーションリソースファイルを管理することが可能な、データ管理モジュール２３２を含むように構成することができる。一部の場合には、アプリケーションリソースファイルに対するリクエストを受信すると、データ管理モジュール２３２は、クラウドベースのストレージ２４４から、そのアプリケーションリソースファイルを読み出して、リクエストしているクライアント装置に、そのアプリケーションリソースファイルを送信することができる。あるいは、アプリケーションリソースファイルに対するリクエストを受信すると、データ管理モジュール２３２は、別のクラウドコンピューティングシステム及び／又は別のクライアント装置など、ＣＣＲシステム２００の外側の記憶場所から、そのアプリケーションリソースファイルを読み出すように、構成することができる。一部の場合には、ＣＣＲシステム２００は、リソースファイルの記憶場所などの、ＣＣＲシステム２００には既知のアプリケーションリソースに関する情報を含む、アプリケーションリソースデータベース２４６を含み得る。この場合には、アプリケーションリソースファイルに対するリクエストを受信すると、データ管理モジュール２３２は、アプリケーションリソースファイルデータベース２４６にアクセスして、任意のアプリケーションリソースファイルの詳細を取得することができる。そのアプリケーションリソースファイルの詳細が、記憶場所を指定する場合には、データ管理モジュール２３２は、その指定された記憶場所から、アプリケーションリソースファイルを取得することができる。
【００７４】
一部の場合には、クラウドストレージエンジン２３０は、一部又は全てのアプリケーションリソースファイルへのアクセスを制限するように構成することができる。例えば、特定のアプリケーションリソースファイルは、登録ユーザにのみ利用可能とすることができる。アクセスを登録ユーザに限定することによって、クラウドストレージエンジン２３０を使用して、そのアプリケーションの認可コピーを有さないユーザによる、アプリケーションリソースファイルへのアクセスを防止することができる。別の実施例では、アプリケーションリソースは、特定の加入レベル、例えば、家庭向けエディション、プロフェッショナル向けエディションなどのユーザにのみ、利用可能とすることができる。アプリケーションリソースファイルへの制限されたアクセスを可能にするために、クラウドストレージエンジン２３０は、アカウント管理モジュール２１２などから、ユーザアカウントの詳細を取得して、リクエストしているユーザが、リクエストされたアプリケーションリソースを受信する資格があるか否かを判定することができる。
【００７５】
一部の構成では、インストールされたアプリケーションリソースは、クライアント装置で、アプリケーションリソースファイルプレースホルダと自動的に置き換えることができる。一部の場合には、この置き換えは、アプリケーションに対して透過的な方式で実行することができる。アプリケーションリソースファイルが除去される条件は、クライアント装置及び／又はアプリケーションの構成によって異なり得る。一部の場合には、アプリケーションリソースファイルは、更なるスペースの必要性、特定のアプリケーションに関連付けられたアプリケーションリソースファイルに関する最大スペース割り当てに到達すること、及び／又は、そのアプリケーションリソースファイルがもはや必要ではないことを示す利用パターンに基づいて、選択することができる。アプリケーションリソースファイルを除去するべき場合を判定する、他の方法もまた可能である。更には、除去するために選択される特定のアプリケーションリソースファイルは、クライアント装置及び／又はアプリケーションの構成によって異なり得る。一部の場合には、選択される特定のアプリケーションリソースファイルは、無作為選択、サイズ、利用履歴、ユーザ設定、及び／又はアプリケーション開発者設定に基づき得る。除去するための特定のアプリケーションリソースファイルを選択する、他の方法もまた可能である。更には、アプリケーションリソースファイルは、任意の時点で置き換えることができる。すなわち、アプリケーションリソースファイルは、そのアプリケーションが実行中であるか否かに関わりなく、置き換えることができる。
【００７６】
図８は、アプリケーションリソースファイル８１２、８１４、及びアプリケーションリソースファイル８１６を利用するアプリケーション８１０が、クライアント装置８０２で実行されている、例示的なシナリオ８００を示す。アプリケーション８１０は、アプリケーションリソースファイル８１２及びアプリケーションリソースファイル８１６と共に、クライアント装置８０２にインストールされている。アプリケーションリソースファイル８１４の代わりに、アプリケーションリソースファイルプレースホルダ８１８が、クライアント装置８０２にインストールされている。実行中に、アプリケーション８１０は、アプリケーションリソースファイル８１４を要求し、このことが障害をトリガする。この障害に応じて、クライアント装置８０２は、ＣＣＲシステム２００と通信して、アプリケーションリソースファイル８１４をリクエストする。クラウドストレージエンジン２３０は、データ管理モジュール２３２を介して、クラウドベースのストレージ又は何らかの他の記憶場所から、アプリケーションリソースファイル８１４を読み出し、クライアント装置８０２にアプリケーションリソースファイル８１４を送信する。次いで、アプリケーションリソースファイル８１４は、クライアント装置８０２にインストールされる。
２．２．３  データ集合の管理
【００７７】
ＣＣＲシステム２００はまた、ユーザのグループの間での、データ項目の共有及び協働を促進するように、構成することもできる。このデータ項目の共有及び協働の特徴的機能は、ユーザのグループと１つ以上のデータ項目とを結びつけることが可能な、集合の概念を中心に展開する。図９は、集合の概念の例示的な図を提供する。第１に、集合９００は、ユーザのグループを含み、各ユーザは、その集合に加入しており、クライアント装置９０２、９０４、及び９０６などの１つ以上の認可されたクライアント装置を介して、その集合とデータ項目を共有することができる。集合９００はまた、データ項目９１０、９１２、及びデータ項目９１４などの、集合９００に割り当てられている１つ以上のデータ項目も含む。この集合の概念は、中央のデータ項目のプールにアクセスしている装置のグループとして示されるが、このことは単に、集合の異なる態様間の関係性を示す目的のために過ぎない。実装の際には、認可された各クライアント装置は、その集合に割り当てられた各データ項目の、ローカルコピーを保守することができる。更には、ユーザは、複数の集合に加入することができる。
【００７８】
一部の構成では、データ項目共有エンジン２２０は、集合の形成、集合の保守、及び／又は集合の終了などの、共有及び協働の特徴的機能の様々な態様を管理することができる。データ項目共有エンジン２２０は、アカウント管理モジュール２１２及び／又は集合データベース２４２と相互作用することができる。集合データベース２４２は、集合の識別子、加入ユーザの識別子、割り当てられたデータ項目、データ項目の修正の記録を保守する１つ以上のログファイルなどの、集合に関連する情報を記憶することができる。更には、一部の構成では、データ項目共有エンジン２２０は、通信インタフェース２１０及び／又はユーザインタフェースモジュール２１４を通じて、クライアント装置と通信することができる。
【００７９】
一部の構成では、クライアント装置は、データ項目の共有及び協働の特徴的機能に関するクライアント側の機能性を提供する、クライアント側集合アプリケーションを実行することができる。ユーザが、このクライアント側集合アプリケーションと相互作用することができる特徴的機能及び方式は、クライアント装置、集合アプリケーション、ＣＣＲシステム２００、及び／又はネットワーク接続の構成によって異なり得る。
【００８０】
データ項目の共有及び協働の一態様は、集合の形成である。集合が形成される方式は、クライアント装置、ＣＣＲシステム２００、及び／又はネットワーク接続の構成によって異なり得る。しかしながら、集合の形成は、認可及び認証の、２つの態様を含み得る。認可の態様は、１人以上のユーザを集合に加入するように招待することに関連し得るものであり、その一方、認証の態様は、その集合に加入する認可をユーザが実際に受けていることを検証することに関連し得る。
【００８１】
集合の形成の方法では、ユーザは、１人以上のユーザを集合に加入するように招待することによって、集合の形成を開始することができる。一部の場合には、クライアント装置は、ユーザが、デスクトップ上で右クリックすることにより、利用可能なメニュー項目のうちの１つが「集合を形成する」又はその変形形態であるメニューを起動することができるように、構成することができる。あるいは、クライアント装置は、ユーザが、アイコンをクリックするか、又はメニューオプションを選択することができるように、構成することができる。クライアント装置はまた、１つ以上の集合を作成するためのユーザインタフェースを含むアプリケーションを有して構成することもできる。この集合アプリケーションは、ユーザが、ユーザ名及びパスワードを供給することなどによって認証することを必要とし得る。
【００８２】
ユーザは、ユーザ名、電子メールアドレス、及び／又は任意の他の一意的ユーザ識別子などの、各ユーザに関するユーザ識別子を指定することによって、１人以上のユーザを招待することができる。この招待は、集合の形成の認可ステップとしての役割を果たし得る。集合の形成を完了するために、招待されたユーザが認証することにより、そのユーザを集合に加入させることができる。
【００８３】
この集合の形成のシナリオでは、ユーザは、加入プロセスが完了した後、その集合にファイルを追加することができる。例えば、集合の形成を開始したユーザは、１人以上のユーザを加入するように招待した後に、また一部の場合には、招待されたユーザの全てが、その招待を承諾する前に、その集合にファイルを追加することができる。しかしながら、招待されたユーザは、そのユーザが加入プロセスを完了するまで、その集合にファイルを追加することも、又は集合の一部であるファイルを受信することもできないが、これは、そのユーザが未だ集合の一部ではないためである。
【００８４】
あるいは、ユーザは、共有するべき１つ以上のデータ項目を選択することによって、集合の形成を開始することができる。一部の場合には、クライアント装置は、ユーザが、データ項目又はデータ項目のグループを右クリックすることにより、利用可能なオプションのうちの１つが共有であるメニューを起動することができるように、構成することができる。クライアント装置はまた、共有するべき１つ以上のデータ項目を選択するためのユーザインタフェースを含む、クライアント側アプリケーションを実行するように構成することもできる。あるいは、共有の特徴的機能を、アプリケーションに組み込むことができる。例えば、ワードプロセッシングアプリケーションは、共有に関するメニュー項目を含み得る。更には、一部の構成では、ユーザは、１つ以上のデータ項目を含むフォルダを選択して、そのフォルダ内の各データ項目を共有することができる。
【００８５】
データ項目を共有することを選択した後、ユーザは、そのデータ項目を共有するための１人以上のユーザを指定することができる。この１人以上のユーザを選択する行為が、招待プロセスをトリガすることができる。ユーザは、ユーザ名、電子メールアドレス、及び／又は任意の他の一意的ユーザ識別子などの、各ユーザに関するユーザ識別子を指定することによって、１人以上のユーザを招待することができる。この招待は、集合の形成の認可ステップとしての役割を果たし得る。集合の形成を完了するために、招待されたユーザが認証することにより、そのユーザを集合に加入させることができる。集合の形成が、共有するべき特定のファイルを選択することによって開始された場合であっても、招待されたユーザは、そのユーザが加入プロセスを完了するまで、データ項目を受信することができない。
【００８６】
一部の場合には、ＣＣＲシステム２００は、集合形成の際の仲介としての機能を果たし得る。例えば、クライアント装置は、データ項目共有エンジン２２０に、集合形成情報を送信することができる。この集合形成情報を受信すると、データ項目共有エンジン２２０は、招待ユーザに招待を送信し、認証プロセスを処理することができる。例えば、図１０は、ＣＣＲシステム２００によって促進される、例示的な集合形成のやり取り１０００を示す。この形成プロセスは、ユーザ１で開始され、ユーザ１は、集合に加入するようにユーザ２を招待する。この招待情報は、ＣＣＲシステム２００に送信される。次いで、ＣＣＲシステム２００は、その招待をユーザ２に送信することができる。ある時点で、ユーザ２は、その招待に対応するが、このことは、ユーザ２がＣＣＲシステム２００で認証することを必要とする。認証プロセスが完了すると、ＣＣＲシステム２００は、ユーザ２が加入プロセスを完了して、この時点で集合に加入しているという通知を、任意選択的にユーザ１に送信することができる。一部の場合には、ユーザ１からの招待リクエストは、データ項目を含み得る。この場合には、認証プロセスが完了すると、ＣＣＲシステム２００は、そのデータ項目をユーザ２に送信することができる。
【００８７】
集合形成プロセスはまた、クライアント装置がローカルエリアネットワーク（ＬＡＮ）上でアクティブである場合に、ピアツーピア構成内で実行することもできる。例えば、集合形成プロセスは、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，ＣＡ）によって公開されているＢｏｎｊｏｕｒアプリケーションなどの装置発見ソフトウェアを使用して、ＬＡＮ上の他のクライアント装置を発見することができる。次いで、集合に加入するための招待を、１つのクライアント装置から別のクライアント装置に、直接送信することができる。純粋なピアツーピア構成内では、認証プロセスは、クライアント装置で実行することができる。あるいは、集合形成プロセスは、ピアツーピアとＣＣＲシステム２００による促進との組み合わせとすることができる。
【００８８】
ユーザが通知を受信する方式は、クライアント装置、ＣＣＲシステム２００、及び／又はネットワーク接続の構成によって異なり得る。ユーザは、電子メール、インスタントメッセージ、ＳＭＳ、クライアント側アプリケーション内の通知、クライアント装置のポップアップウィンドウなどを介して、招待を受信することができる。例えば、ユーザが、ユーザ識別子を指定する招待情報をＣＣＲシステム２００に送信する場合には、ＣＣＲシステム２００は、ユーザアカウント情報のデータベースを保守することができる。ユーザアカウント情報内の項目は、電子メールアドレス又は電話番号などの、ユーザに連絡を取る方法を含み得る。次いで、ＣＣＲシステム２００は、その情報を使用して、招待ユーザに招待を送信することができる。別の実施例では、ユーザが、別のクライアント装置に、ＬＡＮ上で直接招待を送信する場合には、招待ユーザは、その招待ユーザのクライアント装置のポップアップウィンドウを介して、招待を受信することができる。
【００８９】
一部の場合には、集合を通じて共有することが可能なデータ項目のタイプを、限定することができる。例えば、集合を使用して、ワードプロセッシング文書を共有することができるが、動画などの特定のファイルタイプのメディア項目は、共有することができない。この限定は、システム全体にわたるもの、及び／又は集合ごとのものとすることができる。例えば、データ項目共有エンジン２２０は、あらゆる集合を通じたあらゆるデータ項目のタイプの共有を許可するように構成することができるが、ＡＡＣファイルタイプを使用するデータ項目の共有を阻止するポリシーで、特定の集合を形成することができる。別の実施例では、データ項目共有エンジン２２０は、ＭＰ３ファイルタイプを使用するデータ項目の共有を阻止するように構成することができ、次いで、ＡＡＣファイルタイプを使用するデータ項目の共有を更に阻止するポリシーで、特定の集合を形成することができる。それゆえ、結果的に得られる集合は、ＭＰ３又はＡＡＣのファイルタイプを使用するデータ項目の共有を阻止するポリシーを、有することになる。
【００９０】
一部の構成では、集合は、１人以上の管理者を含み得る。例えば、集合を形成したユーザを、自動的に管理者に指名することができる。管理者は、加入ポリシー、データ項目追加／削除ポリシー、データ項目修正ポリシーなどの、その集合に関連付けられるポリシーを指定することができる。例えば、管理者は、管理者のみが、新たなユーザを集合に加入するように招待することができるというポリシーを、確立することができる。別の実施例では、管理者は、管理者のみが集合にデータ項目を追加し、かつ／又は集合からデータ項目を削除することができるというポリシーを、確立することができる。更に別の実施例では、管理者は、各データ項目に対する修正権をいずれのユーザが有するかについてのポリシーを、確立することができる。更なる実施例では、管理者は、集合に割り当てることが可能なデータ項目のタイプを指定するポリシーを、確立することができる。更なるポリシーもまた可能である。
【００９１】
データ項目はまた、集合形成プロセスとは別個に、集合に割り当てることもできる。一部の場合には、クライアント装置は、ユーザが、データ項目又はデータ項目のグループを右クリックすることにより、利用可能なオプションのうちの１つが共有であるメニューを起動することができるように、構成することができる。クライアント装置はまた、共有するべき１つ以上のデータ項目を選択するためのユーザインタフェースを含む、クライアント側アプリケーションを実行するように構成することもできる。あるいは、共有の特徴的機能を、アプリケーションに組み込むことができる。例えば、ワードプロセッシングアプリケーションは、共有に関するメニュー項目を含み得る。更には、一部の構成では、ユーザは、フォルダを選択して、そのフォルダ内の各データ項目を共有することができる。共有することを選択した後、ユーザは、そのユーザが加入する１つ以上の集合を指定することができる。
【００９２】
一部の場合には、ＣＣＲシステム２００は、データ項目を共有する際の仲介としての機能を果たし得る。例えば、ユーザが、共有するべきデータ項目を選択して、そのデータ項目を集合に割り当てると、クライアント装置は、割り当てられた集合に関する情報と共に、そのデータ項目をデータ項目共有エンジン２２０に送信することができる。データ項目共有エンジン２２０内部の集合管理モジュール２２２は、新たに割り当てられたデータ項目を反映するように、集合データベース２４２を更新することができる。更には、一部の場合には、集合管理モジュール２２２は、その集合に加入している他のユーザを特定して、その加入ユーザに関連付けられた全ての認可された装置に、データ項目のコピーを配信することができる。あるいは、集合管理モジュール２２２は、集合に加入しているクライアント装置から、新たなデータ項目に対するリクエストを受信することができる。すなわち、データ項目共有エンジン２２０は、プッシュ構成及び／又はプル構成で構成することができ、新たなデータ項目を受信すると、データ項目共有エンジン２２０は、そのデータ項目を加入クライアント装置にプッシュすることができ、かつ／又は、データ項目共有エンジン２２０は、新たに割り当てられたデータ項目に対する、クライアント装置からのリクエストを受信することができる。このデータ項目共有プロセスはまた、クライアント装置が、ＬＡＮ上でアクティブである場合、又は、ピアツーピアとＣＣＲシステム２００による促進との組み合わせを使用する混成構成内でアクティブである場合に、ピアツーピア構成内で実行することもできる。
【００９３】
図１１は、データ項目１１１０が集合に割り当てられ、データ項目１１１０の配信がＣＣＲシステム２００によって促進される、例示的なシナリオ１１００を示す。データ項目１１１０が、クライアント装置１１０２上で集合に割り当てられる。データ項目１１１０が割り当てられると、クライアント装置１１０２は、データ項目共有エンジン２２０に、データ項目１１１０のコピーを送信する。集合管理モジュール２２２が、集合データベース２４２を更新する。更には、集合管理モジュールは、２つの更なる加入クライアント装置１１０４及び加入クライアント装置１１０６を特定して、クライアント装置１１０４及びクライアント装置１１０６のそれぞれに、データ項目のコピーである、データ項目１１１２及びデータ項目１１１４を配信する。データ項目のコピーを受信すると、各クライアント装置を操作しているユーザは、そのユーザが選択している記憶場所内で、ローカルにデータ項目を記憶することができる。すなわち、ユーザは、特殊なフォルダ内にデータ項目を記憶する必要はなく、その代わりに、ユーザにとって有意味な場所に、データ項目を記憶することができる。
【００９４】
一部の場合には、集合に加入しているユーザのサブセットのみが、データ項目を集合に追加することを認可される場合がある。そのような制限は、多くの技術を通じて施行することができる。一部の場合には、そのような制限を施行するために、データ項目を割り当てないようにクライアント装置を構成することができる。あるいは、無認可のユーザから割り当てられるデータ項目を受け入れないように、データ項目共有エンジン２２０を構成することができる。データ項目割り当て制限のポリシーを施行する、更なる方法もまた可能である。更には、一部の場合には、集合の管理者は、データ項目が正式に集合に割り当てられる前に、各データ項目、又は指定されたユーザによって割り当てられる各データ項目を、承認することができる。
【００９５】
集合を使用してデータ項目を共有することに加えて、集合に加入しているユーザはまた、その集合に割り当てられたデータ項目に対して協働することもできる。すなわち、ユーザが、集合に割り当てられているデータ項目のローカルコピーに修正を加えると、その集合に加入している他のあらゆるユーザに、その修正を自動的に配信することができる。一部の場合には、クライアント装置は、リアルタイムで修正を送信することができる。例えば、修正は、修正が加えられる際に、送信することができる。しかしながら、クライアント装置はまた、周期的間隔で修正の集合を送信するように、かつ／又は、ユーザからの指示に際して修正の集合を送信するように、構成することもできる。例えば、修正の集合は、５分ごとに、又はデータ項目が保存されるときに、送信することができる。別の実施例では、修正の集合は、ユーザが、「修正を送信する」などのオプションを選択する場合に、送信することができる。更には、クライアント装置は、そのクライアント装置がオフラインである間に修正を収集して、次いで、クライアント装置がネットワークに接続された後に、収集された全ての修正を送信するように、構成することができる。
【００９６】
クライアント装置及び／又はデータ項目共有エンジン２２０内の、バージョン制御機能は、この協働の特徴的機能を支援することができる。例えば、クライアント装置は、集合に割り当てられたデータ項目をユーザが修正するたびに、クライアント装置が、そのデータ項目全体をデータ項目共有エンジン２２０に送信して、そこでバージョン制御モジュール２２４が、集合データベース２４２内に記憶されている現在のバージョン内にその変更を統合するように、構成することができる。集合に加入している他のクライアント装置に変更を配信するために、データ項目共有エンジンは、加入クライアント装置のデータ項目の現在のコピーをリクエストして、その修正を統合し、更新されたデータ項目をクライアント装置に返すことができる。そのような技術は、著しいオーバーヘッドをもたらすものであり、他の加入装置のユーザを妨害する可能性を秘めている。それゆえ、代替案は、クライアント側バージョン制御アプリケーションを含むようにクライアント装置を構成すること、及び、バージョン制御モジュール２２４などのバージョン制御機能を有するデータ項目共有エンジン２２０である。ユーザが、データ項目を修正すると、クライアント装置は、バージョン制御ソフトウェアを使用して変更を特定し、その修正のみをデータ項目共有エンジン２２０に送信することができる。バージョン制御モジュール２２４は、受信した修正を記録して、それらの修正を他の加入クライアント装置に配信することができる。他のクライアント装置で受信されると、バージョン制御ソフトウェアは、いずれかの局所的変更で、受信した修正を統合することができる。この修正の配信及び／又はバージョン制御機能はまた、クライアント装置が、ＬＡＮ上でアクティブである場合、又は、ピアツーピアとＣＣＲシステム２００による促進との組み合わせを使用する混成構成内でアクティブである場合に、ピアツーピア構成内で実行することもできる。
【００９７】
各データ項目の修正を、そのデータ項目内に統合することにより、クライアント装置は、集合に割り当てられたデータ項目の単一のコピーを記憶することができる。一部の場合には、データ項目の修正は、データ項目の未修正部分又は以前に修正された部分から、識別可能にすることができる。例えば、クライアント装置は、ワードプロセッシング文書などの、テキスト文書であるデータ項目を表示することができ、データ項目の修正は、赤線引きを使用して識別される。強調表示、赤線引き、フォントの変更、メモ又はコメントの添付などの、新たな修正と以前から存在するデータ項目のコンテンツとの間に区別をつけるための様々な技術が可能である。更には、一部の場合には、ユーザ名又は他の識別子を、修正に添付することができ、かつ／又は、修正の横に沿って表示することができる。
【００９８】
一部の場合には、複数のユーザが、同時にデータ項目を修正することができる。この場合には、データ項目共有エンジン２２０及び／又はバージョン制御ソフトウェアは、クライアント装置が、集合内の各データ項目の単一のコピーのみを保守するように、競合解消戦略を含み得る。すなわち、競合が発生する場合、その競合は、クライアント装置での、データ項目の更なるコピーの作成を引き起こさない。クライアント装置は、そのデータ項目の単一のコピーを保守することができ、競合する修正の双方が、そのデータ項目のローカルコピー内に存在する。例えば、競合する修正の双方を、データ項目のローカルコピー内に統合することができ、ユーザは、修正の全て又は一部を選択することなどによって、その競合を手作業で解消することができる。一部の場合には、競合を解消することができるユーザは、集合の管理者とすることができる。あるいは、投票に基づくプロセスを使用することができる。例えば、集合に加入している各ユーザは、競合する修正のうちの１つを選択することができ、最多投票数を有する修正を、使用される修正とすることができる。あるいは、管理者が、選択を行う際に投票を使用することができる。一部の場合には、解消のポリシーは、データ項目又は集合に割り当てることができる。例えば、このポリシーは、より高いランク付けのユーザに関連付けられた競合が自動的に選択されることを、指定することができる。競合が解消されると、データ項目共有エンジン２２０は、その解消を配信することができる。
【００９９】
様々な技術を使用して、データ項目内に競合する修正を提示することができる。例えば、競合する修正は、互いに隣り合わせて提示することができるが、フォント又は色などを通じて、異なる方式で強調表示することができる。別の実施例では、競合する修正は、順次に提示することができる。一部の場合には、順次に提示される修正は、それらの修正に関連付けられるユーザに割り当てられた、ランクなどに基づいて、ランク付けすることができる。更に別の実施例では、競合する修正は、元のコンテンツの隣の余白内に提示することができる。更なる実施例では、競合する修正は、コンテンツの上方のポップアップボックス又はウィンドウ内に提示することができる。
【０１００】
一部の場合には、ユーザのサブセットのみが、集合に割り当てられたデータ項目を修正することができる。そのような制限は、多くの技術を通じて施行することができる。一部の場合には、そのような制限を施行するために、データ項目は、読み取り専用アクセスで、クライアント装置に記憶させることができる。あるいは、データ項目を修正することを認可されていないユーザによって行われる、いずれの修正も送信しないように、クライアント装置を構成することができる。データ項目共有エンジン２２０もまた、受信したいずれの無認可の修正も、記録又は配信しないように、構成することができる。更なる構成では、クライアント装置は、無認可のユーザによって行われた修正を受信することを、拒否することができる。集合に割り当てられたデータ項目に対する修正の制限を施行する、更なる方法もまた可能である。
【０１０１】
データ項目の共有はまた、新たなユーザを任意の時点で集合に加入するように招待することができるように、構成することもできる。一部の場合には、集合の管理者のみが、新たなユーザを集合に加入するように招待することができる。あるいは、管理者は、集合に加入している非管理ユーザによって提起された招待を再検討して、承認又は否認することができる。新たなユーザが集合に加入すると、その新たなユーザは、集合に現在割り当てられている全てのデータ項目を、修正と共に受信することができる。
【０１０２】
一部の構成では、以前に集合に割り当てられたデータ項目を、その集合から除去することができる。集合からデータ項目を除去する結果は、構成によって異なり得る。例えば、一部の場合には、集合に加入している全てのユーザは、そのデータ項目のローカルコピーを維持することができるが、もはや修正が伝播されることはなく、新たに加入するユーザは、除去されたデータ項目を受信することはない。あるいは、全てのローカルコピーを除去することができるが、一部の構成では、そのデータ項目を割り当てたユーザは、そのデータ項目を維持することができる。更には、一部の場合には、データ項目共有エンジン２２０は、そのデータ項目の記録を保守することができる。一部の場合には、集合の管理者、及び／又はデータ項目を割り当てたユーザのみが、集合からデータ項目を除去することができる。
【０１０３】
データ項目と同様に、一部の構成では、ユーザは、集合から加入を解除することができる。集合から加入を解除する結果は、構成によって異なり得る。例えば、一部の場合には、そのユーザによって割り当てられなかった、集合に割り当てられているデータ項目の全てのローカルコピーを、そのユーザのクライアント装置から除去することができる。あるいは、そのユーザは、ローカルコピーを維持することができるが、もはや集合に修正が伝播されることはない。更には、一部の場合には、管理者は、集合からユーザを除去することができ、かつ／又は、その集合に関連付けられた、ユーザの許可を変更することができる。例えば、ユーザが、望ましくないコンテンツを割り当てることによって、集合を誤用しているか、又は、集合が、作業環境内でプロジェクトに関連付けられながら、ユーザがもはやそのプロジェクトに取り組んでいない場合である。
【０１０４】
更には、一部の構成では、集合を削除することができる。例えば、集合がプロジェクトに関連付けられ、そのプロジェクトが中止されるか又は完了する場合には、その集合は、もはや必要とされない場合がある。集合を削除する結果は、構成によって異なり得る。一部の構成では、その集合に割り当てられたデータ項目の全てのローカルコピーを、削除することができる。一部の場合には、データ項目を割り当てた管理者、及び／又はユーザは、データ項目を保守することができる。あるいは、全てのユーザが、その集合に関連付けられたデータ項目のローカルコピーを保守することができる。更には、一部の場合には、データ項目共有エンジン２２０は、その集合の記録を保守することができる。
【０１０５】
前述のように、集合に割り当てられたデータ項目のローカルコピーは、クライアント装置の任意の場所に記憶することができる。それゆえ、一部の構成では、共有データ項目は、クライアント装置のその共有データ項目を、非共有データ項目から区別する、識別的特徴を有し得る。例えば、共有データ項目は、強調表示することができ、異なる色で表示することができ、異なるレベルの不透明度で表示することなどができる。更には、この識別的特徴は、そのデータ項目が割り当てられる集合と協調させることができる。例えば、集合１に割り当てられるデータ項目は、赤色で表示することができ、集合２に割り当てられるデータ項目は、青色で表示することができる。一部の場合には、ファイル記述子の詳細により、そのデータ項目が共有であるか否か、及び／又は、そのデータ項目が割り当てられる集合を、指定することができる。
２．２．４  プライバシー及びセキュリティ
【０１０６】
上述のように、一部の構成では、クラウドコンピューティングリソースシステムを使用して、ユーザデータを記憶することができる。本開示は、一部の実例では、この収集データが、個人データ及び／又は機密データを含む可能性があることを想到する。本開示では、そのようなデータの収集、分析、開示、転送、記憶、又は他の使用に関与するエンティティは、個人情報データを私的かつ安全なままに維持するための、産業上又は政治上の必要条件を満たすか若しくは上回ると一般的に見なされる、プライバシーのポリシー及び慣行を実施し、かつ一貫して使用するべきであることを、更に想到する。例えば、ユーザからの個人データは、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人データへのアクセスを保護して安全化し、その個人データへのアクセスを有する他者が、それらのプライバシー並びにセキュリティのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるべきである。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【０１０７】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人データの使用又は個人データへのアクセスを選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人データへのアクセスを防止又は阻止するために、ハードウェア要素及び／又はソフトウェア要素を提供することができると想到する。例えば、本技術は、ユーザが、クラウドベースのストレージ内に記憶されるデータを選択することが可能となるように、構成することができる。別の実施例では、本技術はまた、ユーザが、他のユーザと共有することが可能な、クラウドベースのストレージ内に記憶されるデータを指定することが可能となるように、構成することもできる。
【０１０８】
それゆえ、本開示は、１つ以上の様々な開示された実施形態を実施するための個人データの使用を、広範に網羅するものであるが、本開示は、それらの様々な実施形態がまた、そのような個人データにアクセスすることを必要とせずに実施することも可能である点も、また想到する。すなわち、本技術の様々な実施形態は、そのような個人データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、非個人的なデータを、クラウドベースのストレージ内に記憶することができる。
３．使用法
【０１０９】
ＣＣＲシステム２００は、強化されたクラウドベースのストレージ、クラウドベースのリソース、並びにデータ項目の共有及び協働を含めた、様々なクラウドベースの特徴的機能を促進する。図１２は、強化されたクラウドベースのストレージを使用してデータ項目を記憶するための、例示的方法１２００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。特定のステップが図１２で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このデータ項目の記憶方法は、クラウドコンピューティングリソースシステムが、データ項目を記憶するための、クライアント装置からのリクエストを受信するときに開始することができる（１２０２）。この記憶リクエストの受信に応じて、クラウドコンピューティングリソースシステムは、ユーザアカウントの詳細を取得することができる（１２０４）。
【０１１０】
このユーザアカウントの詳細、及びデータ項目に関する情報を使用して、クラウドコンピューティングリソースシステムは、クラウドベースのストレージ内に、そのデータ項目を記憶することができるか否かを判定することができる（１２０６）。クラウドコンピューティングリソースシステムは、既定の判定基準に基づいて、この判定を行うことができる。例えば、一部の場合には、クラウドコンピューティングリソースシステムは、ユーザアカウントの詳細で指定される、承認された最大容量よりも小さいスペースを割り当てるように、構成することができる。あるいは、クラウドコンピューティングリソースシステムは、ユーザが、ユーザアカウントの詳細で指定される、そのユーザの承認された最大記憶容量を超過していることを、判定することができる。それゆえ、クラウドコンピューティングシステムは、スペースの割り当て及び／又は認可に基づいて、この判定を行うことができる。一部の場合には、クラウドコンピューティングリソースシステムは、クラウドベースのストレージ内にデータ項目を記憶することが、外部ネットワーク記憶装置に記憶するよりも効率的ではないことを、判定することができる。例えば、外部ネットワーク記憶装置と比較して、クラウドベースのストレージ内にデータ項目を記憶することにより、レイテンシが増大し、性能が低下する場合がある。更には、クラウドコンピューティングリソースシステムは、ユーザ設定に基づいて、この判定を行うことができる。例えば、ユーザは、特定のデータ項目、又は特定のタイプのデータ項目が、外部ネットワーク記憶装置に記憶されるべきであることを、指定することができる。更なる既定の判定基準もまた可能である。
【０１１１】
クラウドコンピューティングリソースシステムが、クラウドベースのストレージ内にデータ項目を記憶することができないと判定する場合、クラウドコンピューティングリソースシステムは、アカウントの詳細をチェックして、認可された外部ネットワーク記憶装置が存在するか否かを判定することができる（１２０８）。少なくとも１つの外部ネットワーク記憶装置が、ユーザアカウントの詳細で認可されている場合には、クラウドコンピューティングリソースシステムは、その認可された外部ネットワーク記憶装置に、データ項目を記憶させることができる（１２１４）。一部の場合には、ユーザアカウントの詳細は、２つ以上の認可された外部ネットワーク記憶装置を指定することができる。この場合には、クラウドコンピューティングリソースシステムは、それらの利用可能な外部ネットワーク記憶装置から、１つの外部ネットワーク記憶装置を選択することができる。一部の場合には、この選択は、無作為、利用可能なスペースの量、クラウドコンピューティングリソースシステムからの距離、データ項目のタイプ、ユーザ設定、外部ネットワーク記憶装置の信頼性などの、既定の選択判定基準に基づき得る。更には、クラウドコンピューティング記憶装置は、その記憶場所を反映するように、ユーザアカウントの詳細を更新することができる（１２１６）。
【０１１２】
ユーザアカウントの詳細が、認可された外部ネットワーク記憶装置を指定しない場合には、クラウドコンピューティングシステムは、クラウドコンピューティング装置が、なぜクラウドベースのストレージ内にデータ項目を記憶することができなかったのかを検証するように、構成することができる（１２１０）。この検証の結果に基づいて、クラウドコンピューティングリソースシステムは、修復作業を行うことができる（１２１２）。例えば、クラウドコンピューティングリソースシステムが、ユーザアカウントの詳細で認可されているよりも小さいスペースを割り当てたために、クラウドベースのストレージ内にデータ項目が記憶されなかったと、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、より多くのスペースを割り当て、その後に、クラウドコンピューティングリソースを使用してデータ項目を記憶することができる。別の実施例では、ユーザが、ユーザアカウントの詳細で認可されているスペースの量を超過したために、クラウドベースのストレージ内にデータ項目が記憶されなかったと、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、ユーザに通知することができる。更に別の実施例では、外部ネットワーク記憶装置にデータ項目を記憶することが、より効率的であると判定されたために、クラウドベースのストレージ内にデータ項目が記憶されなかったと、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、クラウドベースのストレージ内にデータ項目を記憶することができる。更なる実施例では、ユーザが、外部ネットワーク記憶装置にデータ項目を記憶するようにリクエストしたと、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、認可された外部ネットワーク記憶装置の欠如をユーザに通知することができ、かつ／又は、クラウドベースのストレージ内にデータ項目を記憶するための許可をリクエストすることができる。更なる修復作業もまた可能である。ステップ１２１２又はステップ１２１６の完了後、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１２００を繰り返すことを含み得る。
【０１１３】
図１３は、強化されたクラウドベースのストレージを使用してデータ項目を読み出すための、例示的方法１３００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。特定のステップが図１３で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このデータ項目の読み出し方法は、クラウドコンピューティングリソースシステムが、データ項目を読み出すための、クライアント装置からのリクエストを受信するときに開始することができる（１３０２）。この読み出しリクエストの受信に応じて、クラウドコンピューティングリソースシステムは、ユーザアカウントの詳細を取得することができる（１３０４）。
【０１１４】
このユーザアカウントの詳細、及びデータ項目に関する情報を使用して、クラウドコンピューティングリソースシステムは、そのデータ項目が、クラウドベースのストレージ内に記憶されているか否かを特定することができる（１３０６）。クラウドコンピューティングリソースシステムが、そのデータ項目がクラウドベースのストレージ内に記憶されていないと判定する場合、クラウドコンピューティングリソースシステムは、そのデータ項目が、外部ネットワーク記憶装置に記憶されているか否かを特定することができる（１３０８）。クラウドコンピューティングリソースシステムが、リクエストされたデータ項目の記憶場所を特定することが不可能な場合には、クラウドコンピューティングリソースシステムは、リクエストしているクライアント装置に、失敗メッセージを送信することができる（１３１０）。一部の場合には、そのデータ項目が、クラウドベースのストレージ内に全く記憶されていなかった場合に、失敗が発生し得る。あるいは、そのデータ項目が、外部ネットワーク記憶装置に記憶されていたが、その装置がもはやクラウドコンピューティングリソースシステムによってアクセス可能ではない場合、例えば、ユーザが、その外部ネットワーク記憶装置をネットワークから接続解除した場合に、失敗が発生し得る。更なる失敗のシナリオもまたあり得る。
【０１１５】
クラウドコンピューティングリソースシステムが、リクエストされたデータ項目の記憶場所を特定することが可能な場合には、クラウドコンピューティングリソースシステムは、その記憶場所からデータ項目を読み出して（１３１２）、リクエストしているクライアント装置に、そのデータ項目を送信することができる（１３１４）。ステップ１３１０又はステップ１３１４の完了後、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１３００を繰り返すことを含み得る。
【０１１６】
図１４は、アプリケーションリソースファイルプレースホルダを有するアプリケーションをインストールするための、例示的方法１４００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、ファイルの読み出しのために構成されたオペレーティングシステムを含み、クラウドコンピューティングリソースシステムに接続される、例示的なクライアント装置の観点から論じられる。特定のステップが図１４で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このアプリケーションのインストール方法は、クライアント装置で動作しているオペレーティングシステムが、主要なアプリケーション実行可能ファイル及び１つ以上のアプリケーションリソースファイルを含むアプリケーションをインストールするための、リクエストを受信するときに開始することができる（１４０２）。このリクエストに応じて、オペレーティングシステムは、それらの１つ以上のアプリケーションリソースファイルをインストールするべきか否かを判定する（１４０４）。一部の場合には、アプリケーションリソースファイルをインストールするべきか否かの判定は、アプリケーションリソースファイルのサイズ、そのアプリケーションに関してインストールされるアプリケーションリソースファイルの最大合計サイズ、対象のアプリケーション用途、又はアプリケーション利用履歴などの、既定の判定基準に基づき得る。オペレーティングシステムが、アプリケーションリソースファイルをインストールするべきであると判定する場合には、オペレーティングシステムは、そのアプリケーションリソースファイルをインストールする（１４０８）。しかしながら、オペレーティングシステムが、アプリケーションリソースファイルをインストールするべきではないと判定する場合には、オペレーティングシステムは、アプリケーションリソースファイルプレースホルダをインストールする（１４０６）。一部の場合には、アプリケーションリソースファイルプレースホルダは、実際のアプリケーションリソースファイルの外観を有し得るが、実際には空のファイルである。
【０１１７】
アプリケーションリソースファイル又はアプリケーションリソースファイルプレースホルダのいずれかをインストールした後、オペレーティングシステムは、インストールするためのアプリケーションリソースファイルが更に存在するか否かを判定する（１４１０）。存在する場合には、オペレーティングシステムは、このプロセスを繰り返す。ステップ１４１０の完了後、クライアント装置のオペレーティングシステムは、以前の処理を再開することができ、このことは、方法１４００を繰り返すことを含み得る。
【０１１８】
図１５は、アプリケーションリソースファイルを取得するための、例示的方法１５００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、ファイルの読み出しのために構成されたオペレーティングシステムを含み、クラウドコンピューティングリソースシステムに接続される、例示的なクライアント装置の観点から論じられる。特定のステップが図１５で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このアプリケーションリソースファイルの読み出し方法は、クライアント装置で動作しているオペレーティングシステムが、同じくクライアント装置で動作しているアプリケーションから、アプリケーションリソースファイルに対するリクエストを受信するときに開始することができる（１５０２）。このリクエストに応じて、オペレーティングシステムは、クライアント装置に記憶されているアプリケーションリソースファイルが、実際のアプリケーションリソースファイルであるか、又は、そうではなくアプリケーションリソースファイルプレースホルダであるかを判定する（１５０４）。一部の場合には、アプリケーションリソースファイルプレースホルダは、実際のアプリケーションリソースファイルの外観を有し得るが、実際には空のファイルである。一部の構成では、オペレーティングシステムは、ファイル上に特殊ビットが設定されている場合に、そのアプリケーションリソースファイルがプレースホルダであると判定することができる。実際のアプリケーションリソースファイルをプレースホルダと区別するための、他の技術もまた可能である。
【０１１９】
リクエストされたアプリケーションリソースファイルが、アプリケーションリソースファイルプレースホルダに相当すると、オペレーティングシステムが判定する場合には、オペレーティングシステムは、障害をトリガすることができる。このトリガされた障害により、クライアント装置は、クラウドコンピューティングリソースシステムからアプリケーションリソースファイルをリクエストすることができる（１５０６）。アプリケーションリソースファイルを受信すると、オペレーティングシステムは、その受信したアプリケーションリソースファイルで、プレースホルダを置き換えることができる（１５０８）。最終的に、オペレーティングシステムは、リクエストしているアプリケーションに、そのアプリケーションリソースファイルを送信することができる（１５１０）。ステップ１５１０の完了後、クライアント装置のオペレーティングシステムは、以前の処理を再開することができ、このことは、方法１５００を繰り返すことを含み得る。
【０１２０】
図１６は、データ項目の共有及び協働のための、例示的方法１６００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。しかしながら、この方法はまた、部分的又は全面的に、クライアント装置で実行することもできる。特定のステップが図１６で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このデータ項目の共有及び協働の方法は、クラウドコンピューティングリソースシステムが、データ項目のグループ又は集合を形成するための、クライアント装置からのリクエストを受信するときに開始することができる（１６０２）。この集合を形成するためのリクエストは、ユーザ識別子のセットを含み得る。更には、一部の場合には、このリクエストは、その集合に割り当てるための、１つ以上のデータ項目を含み得る。集合形成リクエストと共に受信される、ユーザ識別子のセットに加えて、クラウドコンピューティングリソースシステムは、集合に加入するようにユーザを招待するためのリクエストを、別個に受信することができる。
【０１２１】
集合を形成するためのリクエスト、又は集合に加入するようにユーザを招待するための別個のリクエストの受信に応じて、クラウドコンピューティングリソースシステムは、そのリクエスト内に含まれるユーザ識別子に関連付けられた各ユーザに、集合に加入するための招待を送信することができる（１６０４）。その後のある時点で、クラウドコンピューティングリソースシステムは、招待ユーザから、加入の招待に対する応答を受信することができる。この応答に基づいて、クラウドコンピューティングリソースシステムは、そのユーザを集合に加入させることができる（１６０６）。一部の場合には、クラウドコンピューティングリソースシステムは、加入プロセスを完了する前に、このシステムでユーザが認証することを必要とし得る。ユーザの加入後、ＣＣＲシステムは、その集合にデータ項目が割り当てられているか否かをチェックすることができる（１６０８）。割り当てられている場合には、クラウドコンピューティングリソースシステムは、割り当てられている各データ項目のコピーを、加入ユーザに関連付けられたクライアント装置に送信することができる（１６１４）。一部の場合には、ユーザは、そのユーザのアカウントで認可された、複数のクライアント装置を有し得る。この場合には、クラウドコンピューティングリソースシステムは、認可された各クライアント装置に、コピーを送信することができる。
【０１２２】
一部の場合には、集合を形成するためのリクエストは、１つ以上のデータ項目を含み得る。あるいは、クラウドコンピューティングリソースシステムは、集合にデータ項目を割り当てるための、別個のリクエストを受信することができる。データ項目の受信に応じて、クラウドコンピューティングリソースシステムは、そのデータ項目を集合に割り当てることができる（１６１０）。データ項目を割り当てた後、クラウドコンピューティングリソースシステムは、そのデータ項目を集合に割り当てたユーザ以外に、その集合に加入しているユーザが存在するか否かを、判定することができる（１６１２）。存在する場合には、クラウドコンピューティングリソースシステムは、その加入ユーザに関連付けられたクライアント装置に、データ項目のコピーを送信することができる（１６１４）。一部の場合には、ユーザは、そのユーザのアカウントで認可された、複数のクライアント装置を有し得る。この場合には、クラウドコンピューティングリソースシステムは、認可された各クライアント装置に、コピーを送信することができる。一部の場合には、クラウドコンピューティングリソースシステムは、同時に、集合にユーザを加入させ（１６０６）、集合にデータ項目を割り当てる（１６１０）ことができる。
【０１２３】
その後のある時点で、クラウドコンピューティングリソースシステムは、集合に割り当てられたデータ項目に対する修正を受信することができる（１６１６）。一部の場合には、この修正は、修正のシーケンスとすることができる。更には、クラウドコンピューティングリソースシステムは、複数のユーザから、データ項目に対する修正を受信することができる。この修正の受信に応じて、クラウドコンピューティングリソースシステムは、集合に加入している各ユーザに、その修正を配信することができる（１６１８）。ステップ１６１８の完了後、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１６００を繰り返すことを含み得る。
【０１２４】
図１７は、ユーザを集合に加入させるための、例示的方法１７００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。しかしながら、この方法はまた、部分的又は全面的に、クライアント装置で実行することもできる。特定のステップが図１７で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このユーザ加入方法は、クラウドコンピューティングリソースシステムが、集合に加入するようにユーザを招待するためのリクエストを受信するときに、開始することができる（１７０２）。このリクエストは、ユーザ識別子を含み得る。一部の場合には、クラウドコンピューティングリソースシステムは、この集合に加入するようにユーザを招待するためのリクエストを、集合を形成するためのリクエストの一部として受信することができる。あるいは、クラウドコンピューティングリソースシステムは、ユーザを招待するための別個のリクエストを受信することができる。一部の場合には、クラウドコンピューティングリソースシステムは、集合の管理者から、及び／又は集合に加入するようにユーザを招待するための権限を有する別のユーザから、ユーザを招待するためのリクエストを受信することができる。
【０１２５】
集合に加入するようにユーザを招待するためのリクエストの受信に応じて、クラウドコンピューティングリソースシステムは、ユーザ識別子に関連付けられたユーザに、集合に加入するための招待を送信することができる（１７０４）。クラウドコンピューティングリソースシステムは、多種多様な技術を使用して、この招待を送信するように構成することができる。例えば、クラウドコンピューティングリソースシステムは、電子メール、インスタントメッセージ、ＳＭＳ、クライアント側アプリケーション内の通知、クライアント装置のポップアップウィンドウなどを介して、この招待を送信することができる。
【０１２６】
その後のある時点で、クラウドコンピューティングリソースシステムは、招待ユーザから応答を受信することができる（１７０６）。クラウドコンピューティングリソースシステムが、その応答が肯定応答であると判定する場合には（１７０８）、クラウドコンピューティングリソースシステムは、応じているユーザを認証することができる（１７１０）。クラウドコンピューティングリソースシステムは、任意の認証プロセスを使用することができる。例えば、クラウドコンピューティングリソースシステムは、加入の招待が送信されたユーザアカウントにログインすることをユーザに要求することによって、そのユーザを認証することができる。ユーザを認証するための、代替的技術もまた可能である。
【０１２７】
一部の構成では、ユーザは、加入の招待に対して、否定応答で応じることができる。すなわち、ユーザは、単に招待を無視するのではなく、そのユーザが集合に加入することを望んでいないという明示的な応答を送信することができる。一部の場合には、クラウドコンピューティングリソースシステムは、明示的な否定応答を無視することができる。あるいは、クラウドコンピューティングリソースシステムは、招待をリクエストしたユーザに通知することなどの措置を講じることができ、かつ／又は、集合に関連付けられた任意の記録を更新することができる。
【０１２８】
クラウドコンピューティングリソースシステムは、ユーザ認証が成功したか否かを判定し（１７１２）、その判定に従って応じることができる。認証が成功した場合には、クラウドコンピューティングリソースシステムは、その集合へのユーザの加入を完了することができる（１７１４）。ユーザの加入を完了することは、そのユーザの識別子を集合の記録に追加することを含み得る。一部の場合には、加入が完了すると、クラウドコンピューティングリソースシステムは、招待をリクエストしたユーザ、及び／又は集合の管理者に、通知を送信することができる。認証が失敗した場合には、クラウドコンピューティングリソースシステムは、その集合へのユーザの加入を否認することができる（１７１６）。一部の構成では、認証に失敗すると、ユーザは、認証プロセスを完了するように、再び試みることができる。更には、一部の場合には、クラウドコンピューティングリソースシステムは、認証の試みの失敗の数に上限を設けることができる。更には、一部の場合には、加入の試みの失敗に際して、クラウドコンピューティングリソースシステムは、招待をリクエストしたユーザ、及び／又は集合の管理者に、通知を送信することができる。ステップ１７１４若しくはステップ１７１６の完了後、又はステップ１７０８での否定応答に際して、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１７００を繰り返すことを含み得る。
【０１２９】
図１８は、集合にデータ項目を割り当てるための、例示的方法１８００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。しかしながら、この方法はまた、部分的又は全面的に、クライアント装置で実行することもできる。特定のステップが図１８で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このデータ項目の割り当て方法は、クラウドコンピューティングリソースシステムが、集合にデータ項目を割り当てるためのリクエストを受信するときに、開始することができる（１８０２）。一部の場合には、クラウドコンピューティングリソースシステムは、この集合にデータ項目を割り当てるためのリクエストを、集合を形成するためのリクエストの一部として受信することができる。あるいは、クラウドコンピューティングリソースシステムは、集合にデータ項目を割り当てるための別個のリクエストを受信することができる。
【０１３０】
集合にデータ項目を割り当てるためのリクエストの受信に応じて、クラウドコンピューティングリソースシステムは、リクエストしているユーザが、集合にデータ項目を割り当てることを認可されているか否かを、チェックすることができる（１８０４）。一部の場合には、集合は、その集合に加入しているユーザのサブセットのみが、集合にデータ項目を割り当てることを認可されるような、ポリシーを有し得る。例えば、集合は、管理者のみが集合にデータ項目を割り当てることができるというポリシーを有し得る。
【０１３１】
そのユーザが、集合にデータ項目を割り当てることを許可されていると、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、そのデータ項目が、その集合に割り当てられることを許可されているタイプのものであるか否かを、チェックすることができる（１８０６）。一部の場合には、集合は、一部のデータ項目のタイプが集合に割り当てられることを禁止するポリシーを有し得る。例えば、集合は、その集合にはワードプロセッシング文書のみを割り当てることができるというポリシーを有し得る。
【０１３２】
そのデータ項目が、その集合に割り当てられることを許可されているタイプのものであると、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、そのデータ項目を集合に割り当てることができる（１８０８）。データ項目を集合に割り当てることは、そのデータ項目を集合の記録に追加することを含み得る。一部の場合には、データ項目を割り当てると、クラウドコンピューティングリソースシステムは、その割り当てをリクエストしたユーザ、及び／又は集合の管理者に、通知を送信することができる。
【０１３３】
集合にデータ項目を割り当てると、クラウドコンピューティングリソースシステムは、その集合に加入している各ユーザに関連付けられたクライアント装置に、そのデータ項目のコピーを配信することができる（１８１０）。一部の場合には、ユーザは、ユーザアカウントで認可された、複数のクライアント装置を有し得る。この場合には、クラウドコンピューティングリソースシステムは、認可された各クライアント装置に、コピーを送信することができる。一部の構成では、クラウドコンピューティングリソースシステムは、データ項目を送信する代わりに、かつ／又は送信することに加えて、新たなデータ項目が集合に割り当てられたという通知を、その集合に加入している各ユーザに配信することができる。クラウドコンピューティングリソースシステムは、多種多様な技術を使用して、この通知を送信するように構成することができる。例えば、クラウドコンピューティングリソースシステムは、電子メール、インスタントメッセージ、ＳＭＳ、クライアント側アプリケーション内の通知、クライアント装置のポップアップウィンドウなどを介して、この通知を送信することができる。
【０１３４】
そのユーザが、集合にデータ項目を割り当てることを認可されていないこと、及び／又は、そのデータ項目のタイプが、その集合内で許可されていないことを、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、そのデータ項目を集合から遮断することができる（１８１２）。一部の構成では、割り当ての失敗に際して、クラウドコンピューティングリソースシステムは、その割り当てをリクエストしているユーザ、及び／又は集合の管理者に、通知を送信することができる。一部の場合には、この通知は、なぜ割り当てが失敗したのかを示すことができる。ステップ１８１０又はステップ１８１２の完了後、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１８００を繰り返すことを含み得る。
【０１３５】
図１９は、集合に割り当てられたデータ項目を修正するための、例示的方法１９００を示す流れ図である。明瞭性のために、この方法は、図２に示すような、例示的なクラウドコンピューティングリソースシステムの観点から論じられる。しかしながら、この方法はまた、部分的又は全面的に、クライアント装置で実行することもできる。特定のステップが図１９で示されるが、他の実施形態では、方法は、示されるものよりも多くのステップ、又は少ないステップを有し得る。このデータ項目の修正方法は、クラウドコンピューティングリソースシステムが、集合に割り当てられたデータ項目に対する修正を受信するときに、開始することができる（１９０２）。一部の場合には、この修正は、データ項目全体とすることができる。あるいは、この修正は、２つのバージョン間の相違を示す、データ項目の一部片とすることができる。更には、一部の場合には、この修正は、修正のシーケンスとすることができる。
【０１３６】
データ項目に対する修正の受信に応じて、クラウドコンピューティングリソースシステムは、修正を送信したユーザが、そのデータ項目を修正することを認可されているか否かを、チェックすることができる（１９０４）。一部の場合には、集合は、その集合に加入しているユーザのサブセットのみが、データ項目を修正することを認可されるような、ポリシーを有し得る。あるいは、ポリシーは、データ項目レベルで送信することができる。すなわち、各データ項目は、いずれのユーザが修正を加えることを許可されているかを示す、関連する許可のセットを有し得る。
【０１３７】
そのユーザが、データ項目を修正することを許可されていると、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、そのデータ項目を更新することができる（１９０６）。一部の場合には、クラウドコンピューティングリソースシステムは、データ項目のコピーを保守することができる。修正が受信されると、クラウドコンピューティングリソースシステムは、データ項目のコピー内に、その修正を統合することができる。更には、クラウドコンピューティングリソースシステムは、修正の記録を保守することができる。修正を受信すると、クラウドコンピューティングリソースシステムは、その集合に加入している各ユーザに関連付けられたクライアント装置に、その修正を配信することができる（１９０８）。
【０１３８】
そのユーザが、データ項目を修正することを許可されていないと、クラウドコンピューティングリソースシステムが判定する場合には、クラウドコンピューティングリソースシステムは、その修正を遮断することができる（１９１０）。一部の構成では、修正が失敗すると、クラウドコンピューティングリソースシステムは、修正を共有することを試みているユーザ、及び／又は集合の管理者に、通知を送信することができる。一部の場合には、この通知は、なぜ修正が失敗したのかを示すことができる。ステップ１９０８又はステップ１９１０の完了後、クラウドコンピューティングリソースシステムは、以前の処理を再開することができ、このことは、方法１９００を繰り返すことを含み得る。
４．例示的システム
【０１３９】
図２０を参照すると、例示的システム２０００としては、処理ユニット（ＣＰＵ又はプロセッサ）２０２０及びシステムバス２０１０を含む、汎用コンピューティング装置２０００が挙げられ、このシステムバス２０１０は、読み出し専用メモリ（ＲＯＭ）２０４０及びランダムアクセスメモリ（ＲＡＭ）２０５０などの、システムメモリ２０３０を含む様々なシステム構成要素を、プロセッサ２０２０に結合する。システム２０００は、プロセッサ２０２０に直接接続されるか、近接して接続されるか、又はプロセッサ２０２０の一部として統合される、キャッシュ２０２２を含み得る。システム２０００は、プロセッサ２０２０による迅速なアクセスのために、メモリ２０３０及び／又は記憶装置２０６０から、このキャッシュにデータをコピーする。この方式で、キャッシュは、データを待機している間にプロセッサ２０２０が遅延することを回避する、性能の向上を提供する。これらのモジュール及び他のモジュールは、様々な動作を実行するようにプロセッサ２０２０を制御することができ、又は制御するように構成することができる。他のシステムメモリ２０３０も同様に、使用するために利用可能とすることができる。メモリ２０３０は、異なる性能特性を備える、複数の異なるタイプのメモリを含み得る。本開示は、２つ以上のプロセッサ２０２０を有するコンピューティング装置２０００上で、又は一体にネットワーク接続されたコンピューティング装置のグループ若しくはクラスタ上で動作することにより、より高い処理能力を提供することができる点を、理解することができる。プロセッサ２０２０は、任意の汎用プロセッサ、及び、記憶装置２０６０内に記憶されプロセッサ２０２０を制御するように構成されたモジュール１（２０６２）、モジュール２（２０６４）、及びモジュール３（２０６６）などの、ハードウェアモジュール若しくはソフトウェアモジュール、並びに、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを含み得る。プロセッサ２０２０は、本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、自己完結型コンピューティングシステムとすることができる。マルチコアプロセッサは、対称型又は非対称型とすることができる。
【０１４０】
システムバス２０１０は、様々なバスアーキテクチャのうちのいずれかを使用する、メモリバス若しくはメモリコントローラ、周辺バス、及びローカルバスを含む、幾つかのタイプのバス構造のうちのいずれかとすることができる。ＲＯＭ２０４０内などに記憶された基本入出力システム（ＢＩＯＳ）は、起動中などに、コンピューティング装置２０００内部の要素間で情報を転送するために役立つ、基本ルーチンを提供することができる。コンピューティング装置２０００は、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、テープドライブなどの、記憶装置２０６０を更に含む。記憶装置２０６０は、プロセッサ２０２０を制御するための、ソフトウェアモジュール２０６２、２０６４、２０６６を含み得る。他のハードウェア又はソフトウェアモジュールも想到される。記憶装置２０６０は、ドライブインタフェースによって、システムバス２０１０に接続される。このドライブ及び関連するコンピュータ可読記憶媒体は、コンピューティング装置２０００に関する、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの、不揮発性の記憶を提供する。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ２０２０、バス２０１０、ディスプレイ２０７０などの必要なハードウェア構成要素に関連する、永続的コンピュータ可読媒体内に記憶されたソフトウェア構成要素を含む。これらの基本構成要素は、当業者には既知であり、装置２０００が小さいハンドヘルド型コンピューティング装置であるか、デスクトップコンピュータであるか、又はコンピュータサーバーであるかなどの、装置のタイプに応じて、適切な変形態様が想到される。
【０１４１】
本明細書で説明される例示的実施形態は、ハードディスク２０６０を採用するが、当業者には、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）２０５０、読み出し専用メモリ（ＲＯＭ）２０４０、ビットストリームを含む有線又は無線信号などの、コンピュータによってアクセス可能なデータを記憶することができる、他のタイプのコンピュータ可読媒体もまた、この例示的な動作環境で使用することができる点を理解されたい。永続的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、及び信号それ自体などの媒体を、明示的に除外する。
【０１４２】
コンピューティング装置２０００とのユーザの対話を可能にするために、入力装置２０９０は、会話用のマイクロフォン、ジェスチャ又は図形入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、会話などの、任意数の入力機構を表すものである。出力装置２０７０もまた、当業者には既知の多くの出力機構のうちの、１つ以上とすることができる。一部の実例では、多モードシステムにより、ユーザは、コンピューティング装置２０００と通信するために、複数のタイプの入力を提供することが可能となる。通信インタフェース２０８０は、ユーザ入力及びシステム出力を、全般的に統制及び管理する。いずれかの特定のハードウェア構成上で動作することに対する制限は存在せず、それゆえ、本明細書での基本的機構は、改善されたハードウェア又はファームウェアの構成が開発されるにつれ、それらの構成に容易に置き換えることができる。
【０１４３】
説明の明瞭性のために、例示的システムの実施形態は、「プロセッサ」又はプロセッサ２０２０として標識される機能ブロックを含めた、個別の機能ブロックを含むように提示される。これらのブロックが表す機能は、共有又は専用のハードウェアの使用を通じて提供することができ、それらのハードウェアとしては、ソフトウェアを実行することが可能なハードウェア、及び、汎用プロセッサ上で実行されるソフトウェアと同等品として動作する目的のために構築された、プロセッサ２０２０などのハードウェアが挙げられるが、これらに限定されない。例えば、図２０に提示される１つ以上のプロセッサの機能は、単一の共有プロセッサ又は複数のプロセッサによって提供することができる。（用語「プロセッサ」の使用は、ソフトウェアを実行することが可能なハードウェアのみを指すものとして解釈されるべきではない。）例示的実施形態は、マイクロプロセッサ及び／又はデジタル信号プロセッサ（ＤＳＰ）ハードウェア、以下で論じられる動作を実行するソフトウェアを記憶するための読み出し専用メモリ（ＲＯＭ）２０４０、並びに結果を記憶するためのランダムアクセスメモリ（ＲＡＭ）２０５０を含み得る。超大規模集積回路（ＶＬＳＩ）ハードウェアの実施形態に加えて、汎用ＤＳＰ回路と組み合わせたカスタムＶＬＳＩ回路機構もまた、提供することができる。
【０１４４】
様々な実施形態の論理演算は、（１）汎用コンピュータ内部のプログラム可能回路上で実行される、コンピュータによって実行されるステップ、動作、又は手順のシーケンス、（２）特定用途プログラム可能回路上で実行される、コンピュータによって実行されるステップ、動作、又は手順のシーケンス、並びに／あるいは（３）プログラム可能回路内部の、相互接続された機械モジュール又はプログラムエンジンとして実行される。図２０に示すシステム２０００は、列挙された方法の全て又は一部を実践することができ、列挙されたシステムの一部とすることができ、かつ／又は列挙された永続的コンピュータ可読記憶媒体内の命令に従って動作することができる。そのような論理演算は、プロセッサ２０２０を制御するように構成されたモジュールとして実行されることにより、そのモジュールのプログラミングに従って、特定の機能を実行することができる。例えば、図２０は、プロセッサ２０２０を制御するように構成された３つのモジュールである、Ｍｏｄ１（２０６２）、Ｍｏｄ２（２０６４）、及びＭｏｄ３（２０６６）を示す。これらのモジュールを、記憶装置２０６０上に記憶させ、実行時にＲＡＭ２０５０若しくはメモリ２０３０にロードすることができ、又は、当該技術分野において既知であるように、他のコンピュータ可読メモリの場所内に記憶させることができる。
【０１４５】
本開示の範囲内の実施形態はまた、コンピュータ実行可能命令又はデータ構造を伝達若しくは記憶するための、有形かつ／又は永続的コンピュータ可読記憶媒体も含み得る。そのような永続的コンピュータ可読記憶媒体は、上述のような任意の専用プロセッサの機能設計を含む、汎用コンピュータ又は専用コンピュータによってアクセスすることが可能な、利用可能な任意の媒体とすることができる。例として、また限定するものではないが、そのような永続的コンピュータ可読媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、あるいは、コンピュータ実行可能命令、データ構造、又はプロセッサチップ設計の形態で所望のプログラムコード手段を伝達若しくは記憶するために使用することが可能な、任意の他の媒体を挙げることができる。情報が、ネットワーク又は別の通信接続（有線、無線、又はこれらの組み合わせのいずれか）を介して、コンピュータに転送又は提供される場合、コンピュータが、その接続をコンピュータ可読媒体として見なすことは適切である。それゆえ、いずれのそのような接続も、コンピュータ可読媒体と呼ばれることが適切である。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に包含されるべきである。
【０１４６】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置に、特定の機能若しくは機能群を実行させる、命令及びデータを含む。コンピュータ実行可能命令はまた、スタンドアロン環境又はネットワーク環境内でコンピュータによって実行される、プログラムモジュールも含む。一般的に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実行する、専用プロセッサなどの設計に固有のルーチン、プログラム、コンポーネント、データ構造、オブジェクト、及び関数を含む。コンピュータ実行可能命令、関連するデータ構造、及びプログラムモジュールは、本明細書で開示される方法のステップを実行するための、プログラムコード手段の実施例を表すものである。そのような実行可能命令又は関連するデータ構造の特定のシーケンスは、そのようなステップで説明される機能を実施するための、対応する動作の実施例を表すものである。
【０１４７】
本開示の他の実施形態は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの民生用電子機器又はプログラム可能民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む、多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境内で実施することができる点が、当業者には理解されるであろう。実施形態はまた、通信ネットワークを通じて（有線リンク、無線リンクによって、又はこれらの組み合わせによって）リンクされたローカル及びリモートの処理装置によってタスクが実行される、分散コンピューティング環境内で実践することもできる。分散コンピューティング環境内では、プログラムモジュールは、ローカル及びリモート双方のメモリ記憶装置内に配置することができる。
【０１４８】
上述の様々な実施形態は、例示としてのみ提供されるものであり、本開示の範囲を限定するものとして解釈されるべきではない。本明細書で図示され説明される例示的な実施形態及び適用に従うことなく、かつ本開示の趣旨及び範囲から逸脱することなく、本明細書で説明された原理に対して実施することが可能な、様々な修正及び変更が、当業者には容易に認識されるであろう。
【図１】
0006013594.tif 000002
【図２】
0006013594.tif 000003
【図３】
0006013594.tif 000004
【図４】
0006013594.tif 000005
【図５】
0006013594.tif 000006
【図６】
0006013594.tif 000007
【図７】
0006013594.tif 000008
【図８】
0006013594.tif 000009
【図９】
0006013594.tif 000010
【図１０】
0006013594.tif 000011
【図１１】
0006013594.tif 000012
【図１２】
0006013594.tif 000013
【図１３】
0006013594.tif 000014
【図１４】
0006013594.tif 000015
【図１５】
0006013594.tif 000016
【図１６】
0006013594.tif 000017
【図１７】
0006013594.tif 000018
【図１８】
0006013594.tif 000019
【図１９】
0006013594.tif 000020
【図２０】
0006013594.tif 000021