(57)【特許請求の範囲】
【請求項１】
クライアントコンピューティングデバイスで実行可能なプログラムを具体化する、非一時的なコンピュータ可読媒体であって、前記プログラムは、
ローカルネットワークストレージシステムが、ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であるか否かを決定するコードであって、前記ローカルネットワークストレージシステムが、ネットワーク接続ストレージデバイスを備える、コードと、
遠隔ネットワークストレージシステムにおけるファイルの格納を容易にするよう構成されるユーザインタフェースをレンダリングするコードと、
前記ユーザインタフェースを通じてユーザから格納されるべきファイルの表示を取得するコードであって、前記ファイルが、前記クライアントコンピューティングデバイスに格納される、コードと、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であると決定されるときには、前記ファイルを、前記ローカルネットワークストレージシステムによる格納のために、前記ネットワーク接続ストレージデバイスにつながる前記ローカルネットワークを介して前記ローカルネットワークストレージシステムに送信するコードと、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能ではないと決定されるときには、ユーザアカウントによって制御されるメタデータベースのファイルシステムにおける前記遠隔ネットワークストレージシステムによる格納のために、前記ファイルを、遠隔ネットワークを介して前記遠隔ネットワークストレージシステムに送信するコードと、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能ではないと決定され、前記遠隔ネットワークストレージシステムが利用可能ではない場合に、前記ローカルネットワークストレージシステムが前記ローカルネットワークを介さず利用可能であれば、前記ローカルネットワークストレージシステムに書き込み要求を送信するコードと、
を含み、
前記ローカルネットワークストレージシステムは、前記ファイルが前記ローカルネットワークストレージシステムによって格納されることに応答して、前記遠隔ネットワークを介して前記ユーザアカウントによって制御される前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように構成される、
非一時的なコンピュータ可読媒体。
【請求項２】
ローカルネットワークストレージシステムが、ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であるか否かを決定する前記コードは、前記クライアントコンピューティングデバイスと前記ローカルネットワークストレージシステムとの間のネットワークパフォーマンスのベンチマークを実行するコードをさらに含む、請求項１に記載の非一時的なコンピュータ可読媒体。
【請求項３】
コンピューティングデバイスと、
前記コンピューティングデバイスで実行可能なストレージ管理アプリケーションであって、
ローカルネットワークストレージシステムが、ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であるか否かを決定する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であると決定されるときには、前記ローカルネットワークストレージシステムによる格納のために、前記ローカルネットワークを介して前記ローカルネットワークストレージシステムにファイルを送信する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能ではないと決定されるときには、ユーザアカウントによって制御される遠隔ネットワークストレージシステムによる格納のために、遠隔ネットワークを介して遠隔ネットワークストレージシステムに前記ファイルを送信する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能ではないと決定され、前記遠隔ネットワークストレージシステムが利用可能ではない場合に、前記ローカルネットワークストレージシステムが前記ローカルネットワークを介さず利用可能であれば、前記ローカルネットワークストレージシステムに書き込み要求を送信する論理と、
を含む、ストレージ管理アプリケーションと、を備える、システム。
【請求項４】
前記ストレージ管理アプリケーションは、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であると決定されるときには、前記ローカルネットワークを介して別のファイルを読み出す要求を、前記ローカルネットワークストレージシステムに送信する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能ではないと決定されるときには、前記遠隔ネットワークを介して前記別のファイルを読み出す要求を、前記ユーザアカウントによって制御される前記遠隔ネットワークストレージシステムに送信する論理と、をさらに含む、請求項３に記載のシステム。
【請求項５】
前記別のファイルを読み出す前記要求に応答して、前記ローカルネットワークストレージシステムは、
前記別のファイルがキャッシュされているときには、前記別のファイルをファイルキャッシュから前記コンピューティングデバイスに返し、
前記別のファイルがキャッシュされていないときには、前記別のファイルを、前記ユーザアカウントによって制御される前記遠隔ネットワークストレージシステムから取得するように構成される、請求項４に記載のシステム。
【請求項６】
前記ローカルネットワークストレージシステムは、前記別のファイルが前記遠隔ネットワークストレージシステムから取得されている間に同時に、前記別のファイルを前記コンピューティングデバイスに返し、前記別のファイルを前記ファイルキャッシュに格納するように構成される、請求項５に記載のシステム。
【請求項７】
前記ローカルネットワークストレージシステムは、前記別のファイルが前記遠隔ネットワークストレージシステムから取得された後、前記別のファイルを前記コンピューティングデバイスに返すように構成される、請求項４に記載のシステム。
【請求項８】
前記ローカルネットワークストレージシステムは、ネットワーク接続ストレージデバイスを備える、請求項３に記載のシステム。
【請求項９】
前記ローカルネットワークストレージシステムは、前記ファイルが前記ローカルネットワークストレージシステムによって格納されることに応答して、前記遠隔ネットワークを介して前記ユーザアカウントによって制御される前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように構成される、請求項３に記載のシステム。
【請求項１０】
前記ファイルを前記ローカルネットワークストレージシステムに送信する前記論理は、
ユーザ表示が、前記ファイルが前記遠隔ネットワークストレージシステムに複製されるべきであることを指定するときには、前記ユーザアカウントによって制御される前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように前記ローカルネットワークストレージシステムを構成する論理と、
前記ユーザ表示が、前記ファイルが前記遠隔ネットワークストレージシステムに複製されるべきではないことを指定するときには、前記遠隔ネットワークストレージシステムに、前記ファイルを複製しないように前記ローカルネットワークストレージシステムを構成する論理と、をさらに含む、請求項３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーティリティコンピューティングモデルに従うデータファイルの遠隔ストレージに関する。
【背景技術】
【０００２】
ユーザは、火災および他のハザードからデータを確実に守るために、ストレージの保証を提供するネットワークストレージシステムを使って、データを格納することを望む場合がある。残念ながら、コンピューティングスキルの不足および他の問題により、一部のユーザは、ネットワークストレージシステムと対話（ｉｎｔｅｒａｃｔ）することが難しい可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、コンピューティングスキルの不足および他の問題により、一部のユーザは、ネットワークストレージシステムと対話（ｉｎｔｅｒａｃｔ）することが難しい可能性がある。
【課題を解決するための手段】
【０００４】
本開示の１つの態様は、クライアントコンピューティングデバイスで実行可能なプログラムを具体化する、非一時的なコンピュータ可読媒体であって、前記プログラムは、ローカルネットワークストレージシステムが、ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であるか否かを決定するコードであって、前記ローカルネットワークストレージシステムが、ネットワーク接続ストレージデバイスを備える、コードと、遠隔ネットワークストレージシステムにおけるファイルの格納を容易にするよう構成されるユーザインタフェースをレンダリングするコードと、前記ユーザインタフェースを通じてユーザから格納されるべきファイルの表示を取得するコードであって、前記ファイルが、前記クライアントコンピューティングデバイスに格納される、コードと、前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であると決定されるときには、前記ファイルを、前記ローカルネットワークストレージシステムによる格納のために、前記ネットワーク接続ストレージデバイスにつながる前記ローカルネットワークを介して前記ローカルネットワークストレージシステムに送信するコードと、前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能ではないと決定されるときには、ユーザアカウントに関連するメタデータベースのファイルシステムにおける前記遠隔ネットワークストレージシステムによる格納のために、前記ファイルを、遠隔ネットワークを介して前記遠隔ネットワークストレージシステムに送信するコードと、を含み、前記ローカルネットワークストレージシステムは、前記ファイルが前記ローカルネットワークストレージシステムによって格納されることに応答して、前記遠隔ネットワークを介して前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように構成される。
【発明の効果】
【０００５】
ネットワークファイルシステムは、ネットワーク化された複数のコンピューティングデバイスを備えるクラウドコンピューティング資源に格納されたファイルへのアクセスを提供するために用いられ得る。いくつかの実施形態では、ネットワークファイルシステムは、ファイルの実際のデータオブジェクトが別々のデータストレージシステムに格納される仮想ファイルシステムに対応し得る。メタデータサービスは、メタデータをファイルに関連付けるために使用され得、これによって、メタデータを使用してファイルを検索することが容易になる。ファイルをこのようなネットワークファイルシステムに格納することによって、ユーザは、ネットワークの接続性を有するいかなるコンピューティングデバイスからもファイルにアクセスすることができる。
【図面の簡単な説明】
【０００６】
【図１】本開示の種々の実施形態に従うネットワーク環境の図である。
【図２Ａ】本開示の種々の実施形態に従う、図１のネットワーク環境におけるクライアントコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の例を例示するフローチャートである。
【図２Ｂ】本開示の種々の実施形態に従う、図１のネットワーク環境におけるクライアントコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の例を例示するフローチャートである。
【図３Ａ】本開示の種々の実施形態に従う、図１のネットワーク環境におけるコンピューティングデバイスで実行されるローカルネットワークストレージシステムの部分として実装される機能性の例を例示するフローチャートである。
【図３Ｂ】本開示の種々の実施形態に従う、図１のネットワーク環境におけるコンピューティングデバイスで実行されるローカルネットワークストレージシステムの部分として実装される機能性の例を例示するフローチャートである。
【図４】本開示の種々の実施形態に従う、図１のネットワーク環境で用いられるコンピューティングデバイスの一例の図を提供する略ブロック図である。
【発明を実施するための形態】
【０００７】
本開示の多くの態様は、以下の図面を参照して、より良好に理解することができる。図面中の構成要素は、必ずしも原寸に比例するとは限らず、代わりに、本開示の原理を明確に例示することを重視する。さらに、図面における同様の参照数字は、いくつかの図において対応する部分を指定する。
【０００８】
本開示の種々の実施形態は、ユーティリティコンピューティングモデルに従うデータファイルの遠隔ストレージに関する。ネットワークファイルシステムは、ネットワーク化された複数のコンピューティングデバイスを備えるクラウドコンピューティング資源に格納されたファイルへのアクセスを提供するために用いられ得る。いくつかの実施形態では、ネットワークファイルシステムは、ファイルの実際のデータオブジェクトが別々のデータストレージシステムに格納される仮想ファイルシステムに対応し得る。メタデータサービスは、メタデータをファイルに関連付けるために使用され得、これによって、メタデータを使用してファイルを検索することが容易になる。ファイルをこのようなネットワークファイルシステムに格納することによって、ユーザは、ネットワークの接続性を有するいかなるコンピューティングデバイスからもファイルにアクセスすることができる。
【０００９】
種々の実施形態によると、ネットワーク接続ストレージデバイスを使用して、遠隔ネットワークストレージシステムのためのローカルでアクセス可能であるストレージをクライアントデバイスに提供する。ローカルネットワークに接続されたネットワーク接続ストレージデバイスにアクセスすることによって、クライアントは、遠隔ネットワークストレージシステムに直接アクセスするよりも速いパフォーマンスを経験することができる。しかしながら、ネットワーク接続ストレージデバイスが遠隔ネットワークストレージシステムによって支持されるため、データはローカルにのみ格納されたデータよりも、より広くアクセス可能である。さらに、データは遠隔ネットワークストレージシステムの保証の信頼性および／または有効性によって、保護されてもよい。
【００１０】
クライアントがファイルをネットワーク接続ストレージデバイスに格納するとき、そのファイルは、クラウドストレージシステムを備え得る遠隔ネットワークストレージシステムに最終的に格納され、この場合、遠隔ネットワークストレージシステムに格納されるファイルのリストは、ネットワーク接続ストレージデバイスに保持され得る。直近にアクセスされた遠隔ネットワークストレージシステムに格納されるファイルのサブセットも、ネットワーク接続ストレージデバイスに格納され得る。アプリケーションは、ネットワーク接続ストレージデバイス上および遠隔ネットワークストレージシステム内の両方のファイルのストレージを管理する役割を果たすネットワーク接続ストレージデバイスに関連して実行され得る。加えて、他の機能性については、他の実施形態に関連して説明される。以下の説明では、最初に、種々の構成要素の物理的性質について説明し、次に、その動作について説明する。
【００１１】
図１を参照すると、種々の実施形態に従うネットワーク環境１００が示される。ネットワーク環境１００は、ネットワーク１０９を経由してデータ通信する、１つ以上のコンピューティングデバイス１０３、１つ以上のコンピューティングデバイス１０５、および１つ以上のクライアント１０６を含む。ネットワーク１０９には、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、もしくは他の適切なネットワーク等、または２つ以上のこのようなネットワークの任意の組み合わせが含まれる。
【００１２】
加えて、クライアント１０６は、ローカルネットワーク１１０を経由して、コンピューティングデバイス１０５とデータ通信する。ローカルネットワーク１１０は、家庭用ネットワーク、プライベートネットワーク、有線ネットワーク、無線ネットワーク、ならびに／または有線および無線ネットワークの組み合わせに対応し得る。ローカルネットワーク１１０は、仮想プライベートネットワーク、または他のゲートウェイを通じて、ネットワーク１０９からアクセス可能であってもよい。コンピューティングデバイス１０５およびクライアント１０６は、プロキシ、ネットワーク・アドレス変換デバイス、ファイアウォール、ルータ等といったローカルネットワーク１１０のゲートウェイを通じて、ネットワーク１０９に連結され得る。様々な実施形態において、ローカルネットワーク１１０は、ネットワーク１０９よりも非常に速い接続性を提供することができる。ローカルネットワーク１１０と比較すると、ネットワーク１０９は遠隔ネットワーク１０９と見なされてもよい。
【００１３】
コンピューティングデバイス１０３は、例えば、サーバコンピュータまたはコンピューティング性能を提供する任意の他のシステムを含み得る。代替として、例えば、１つ以上のサーババンクもしくはコンピュータバンクまたは他の配置で配置される複数のコンピューティングデバイス１０３を用いてもよい。例えば、複数のコンピューティングデバイス１０３は、まとめて、クラウドコンピューティング資源、グリッドコンピューティング資源、および／または任意の他の分散型コンピューティング配置を含んでもよい。このようなコンピューティングデバイス１０３は、単独の設置で位置付けられてもよく、または多数の異なる地理的な位置間で分散されてもよい。便宜上、コンピューティングデバイス１０３は、本明細書において単数形で言及される。コンピューティングデバイス１０３が単数形で言及されるが、上述のような種々の配置で複数のコンピューティングデバイス１０３を用いてもよいことが理解される。
【００１４】
種々のアプリケーションおよび／または他の機能性は、種々の実施形態に従って、コンピューティングデバイス１０３で実行され得る。また、種々のデータは、コンピューティングデバイス１０３にアクセス可能なデータストア１１３に格納される。データストア１１３は、理解できるように、複数のデータストア１１３の代表であり得る。データストア１１３に格納されるデータは、例えば、以下に記載する種々のアプリケーションおよび／または機能性エンティティの動作に関連付けられる。
【００１５】
コンピューティングデバイス１０３上で実行される構成要素には、例えば、遠隔ネットワークストレージシステム１１６および本明細書で詳細に説明されない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能性が含まれる。遠隔ネットワークストレージシステム１１６は、ユーザに対するネットワークベースのファイルシステムまたはメタデータベースのファイルシステム内に、ファイルおよびフォルダのファイル階層を保持するために実行される。このために、遠隔ネットワークストレージシステム１１６は、例えば、ファイルの作成、ファイルの削除、ファイルの修正、ファイルの許可設定、ファイルのダウンロード、および／または他の動作等の種々のファイルに関連する動作をサポートしてもよい。遠隔ネットワークストレージシステム１１６は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を介した統一資源位置指定子（ＵＲＬ）によってアドレス指定されたデータを供給するように構成されてもよい。
【００１６】
メタデータサービスは、ファイルに関連してメタデータ項目を保持するために、遠隔ネットワークストレージシステム１１６に関連して、または遠隔ネットワークストレージシステム１１６の一部として実行され得る。このために、このようなメタデータサービスは、例えば、メタデータ項目の作成、メタデータ項目の削除、メタデータ項目の読み出し、メタデータ項目の検索、および／または他の動作等の種々の動作をサポートし得る。また、メタデータサービスは、メタデータ項目の１つ以上の検索可能なインデックスを実装してもよい。２０１１年２月２８日に出願され、参照することによりその全体が本明細書に組み込まれる「ＭＥＴＡＤＡＴＡ−ＢＡＳＥＤ  ＦＩＬＥ  ＳＹＳＴＥＭ」と題された米国特許出願第１３／０３６，５３９号で説明されるように、遠隔ネットワークストレージシステム１１６の各ユーザストレージアカウントに関連付けられるネットワークファイルシステムは、メタデータベースのファイルシステムであってもよいことに留意されたい。
【００１７】
ネットワークファイルシステムに格納されたデータにアクセスし得るホスト型アプリケーションに対応する種々のアプリケーションが提供され得る。このようなアプリケーションは、例えば、ウェブベースのインタフェースを有し得、ウェブページまたは他の形式のネットワークコンテンツ等のネットワークページを供給して、ユーザインタラクションを容易にし得る。他のアプリケーションは、内部アプリケーションであってもよく、ウェブベースのインタフェースを持たなくてもよい。このようなアプリケーションの非限定的な例として、写真整理ツール、音楽ファイルオーガナイザおよび再生ツール、ワードプロセッサ、表計算、電子メールアプリケーション等が挙げられ得る。
【００１８】
データストア１１３に格納されるデータには、例えば、ストレージアカウント１３３が含まれる。各ストレージアカウント１３３に関連付けられるのは、アカウント設定１３６、基本識別子１３９および潜在的な他の情報である。基本識別子１３９は、例えば、以下に記載するように、電子メールアドレス、一連の文字、または他の種類の識別子を含み得る。各ストレージアカウント１３３に関連付けられるのは、１つ以上のストレージバケツ１５３であり、ストレージバケツ１５３中に、以下に記載するように、ストレージアカウント１３３を保持するユーザの代わりに、種々のファイル１５６が格納される。
【００１９】
ストレージアカウント１３３は、ストレージアカウント１３３が関連付けられるユーザに関する情報を含み得る。このような情報は、例えば、名前、住所、支払手段、および他の情報を含み得る。アカウント設定１３６は、パスワード、セキュリティ証明書、ファイル管理許可、ストレージ割り当ておよび限界、認定アクセスアプリケーション、請求情報、および／または他のデータ等の、所定のストレージアカウント１３３に関する種々の設定および他の機能性を特定および追跡するために用いられ得る。基本識別子１３９は、それぞれのストレージアカウント１３３の保持者に関連付けられる識別子である。このようなユーザは、アカウントの基本保持者であると見なされ得、その利用を制御することができる。
【００２０】
コンピューティングデバイス１０５は、ネットワーク接続ストレージデバイスを備えてもよい。このために、コンピューティングデバイス１０５は、例えばサーバコンピュータまたはコンピューティング性能およびデータ格納性能を提供する任意の他のシステムを含み得る。代替として、例えば、１つ以上のコンピュータバンクまたは他の配置で配置される複数のコンピューティングデバイス１０５を用いてもよい。便宜上、コンピューティングデバイス１０５は、本明細書において単数形で言及される。コンピューティングデバイス１０５は単数形で言及されるが、上述のような種々の配置で複数のコンピューティングデバイス１０５を用いてもよいことが理解される。
【００２１】
種々のアプリケーションおよび／または他の機能性は、種々の実施形態に従って、コンピューティングデバイス１０５で実行され得る。また、種々のデータは、コンピューティングデバイス１０５にアクセス可能なデータストア１５７に格納される。データストア１５７は、理解できるように、複数のデータストア１５７の代表であり得る。データストア１５７に格納されるデータは、例えば、以下に記載する種々のアプリケーションおよび／または機能性エンティティの動作に関連付けられる。一部の実施形態において、データストア１５７は、独立ディスクの冗長アレイ（ＲＡＩＤ）、クラスタリング、および／または信頼性を向上する他の技術を用いてもよい。
【００２２】
コンピューティングデバイス１０５上で実行される構成要素には、例えば、ローカルネットワークストレージシステム１５８および本明細書で詳細に説明されない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能性が含まれる。ローカルネットワークストレージシステム１５８は、ユーザに対する遠隔ネットワークストレージシステム１１６のネットワークベースのファイルシステム、またはメタデータベースのファイルシステムに、ファイルおよびフォルダのファイル階層のキャッシュを保持するために実行される。このために、ローカルネットワークストレージシステム１５８は、例えば、ファイルの作成、ファイルの削除、ファイルの修正、ファイルの許可の設定、ファイルのダウンロード、および／または他の動作等の種々のファイルに関連する動作をサポートし得る。ローカルネットワークストレージシステム１５８は、ＨＴＴＰを介したＵＲＬによってアドレス指定されたデータを供給するように構成されてもよい。
【００２３】
データストア１５７に格納されるデータには、例えば、ファイルキャッシュ１５９が含まれる。ファイルキャッシュ１５９は、遠隔ネットワークストレージシステム１１６のファイル１５６でユーザに利用可能なデータの、全てのミラーまたは一部のミラーに対応する。ファイルキャッシュ１５９は、ユーザがローカルネットワークストレージシステム１５８を通じてデータにアクセスするのに応答して、定期的に、または要望に応じて更新されてもよい。ファイルキャッシュ１５９はまた、遠隔ネットワークストレージシステム１１６におけるユーザのファイルシステムからのメタデータおよび／または他の情報を含んでもよい。
【００２４】
クライアント１０６は、ネットワーク１０９に連結され得る複数のクライアントデバイスを表す。クライアント１０６は、例えば、コンピュータシステム等のプロセッサベースのシステムを含み得る。このようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、セットトップボックス、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、スマートフォン、または同様の性能を有する他のデバイスの形式で、具体化され得る。クライアント１０６は、理解できるように、液晶ディスプレイ（ＬＣＤ）、または他の種類のディスプレイデバイス等の、ディスプレイデバイス１６０を含み得る。
【００２５】
クライアント１０６は、オペレーティングシステム１６３、ストレージ管理アプリケーション１６６、ならびに電子メールアプリケーション、インスタントメッセージアプリケーション、ブラウザ、ワードプロセッサ、表計算、描画アプリケーション、および／または他のアプリケーション等の他のアプリケーション１６９を実行するように構成され得る。様々な実施形態において、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６および／またはローカルネットワークストレージシステム１５８によって供給される、ブラウザベースのインタフェースと連動するように提供されるクライアント側で実行可能なコードに対応することができる。
【００２６】
次に、ネットワーク環境１００の種々の構成要素の動作の概要が提供される。まず、ユーザは、コンピューティングデバイス１０３上にストレージアカウント１３３を構成する。１つ以上のストレージバケツ１５３は、ユーザの基本識別子１３９を有するユーザに割り当てられてもよい。いったんストレージアカウント１３３が構成されると、ユーザは、遠隔ネットワークストレージシステム１１６上でファイル１５６の格納を始めることができる。
【００２７】
クライアント１０６による遠隔ネットワークストレージシステム１１６の直接使用が、最初に記載される。一実施例において、ユーザは、ブラウザベースのインタフェースを経由し、ネットワーク１０９を介してファイル１５６を遠隔ネットワークストレージシステム１１６にアップロードしてもよい。別の実施例において、クライアント１０６で実行されるストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６がローカルストレージデバイスのようであるかのように構成することができる。かかる一実施例において、ユーザは、任意のローカルストレージデバイスであるかのように、単にファイル１５６を遠隔ネットワークストレージシステム１１６上に格納してもよく、ストレージ管理アプリケーション１６６がバックグラウンドでアップロードを管理する。さらに別の実施例において、ユーザは、コンピューティングデバイス１０３で実行されるアプリケーションを経由してファイル１５６を取得するか、あるいはファイル１５６を生成してもよく、該アプリケーションはユーザのストレージバケツ１５３にファイル１５６を格納する。
【００２８】
いったんファイル１５６が遠隔ネットワークストレージシステム１１６で利用可能になると、ユーザは、ファイルおよび／またはファイルを記載するメタデータの修正の読み出しを始めることができる。一実施例において、ユーザは、ブラウザベースのインタフェースを通じて遠隔ネットワークストレージシステム１１６にアクセスしてもよく、かかるインタフェースを通じてファイル１５６をダウンロードまたは修正してもよい。別の実施例において、ユーザは、任意のローカルでアクセス可能であるストレージデバイスであるかのように、ストレージ管理アプリケーション１６６を通じて遠隔ネットワークストレージシステム１１６にアクセスしてもよい。例えば、オペレーティングシステム１６３は、クライアント１０６における実装ドライブまたはファイルシステムであるかのように、遠隔ネットワークストレージシステム１１６が存在するように構成することができる。ファイル１５６は、ダウンロード、ユーザによるディレクトリへの整理、改名、修正等をされてもよい。
【００２９】
ファイル１５６のストレージが遠隔ネットワークストレージシステム１１６によって保持されるため、ファイル１５６は、コンピューティングデバイス１０３のオペレーターのサービス水準合意に関連付けることができる。かかるサービス水準合意は、例えば、信頼性、有効性、および／または他の保証を含んでもよい。さらに、ファイル１５６は、ネットワーク１０９の異なる一部分上であり得る、ユーザの多様なクライアント１０６によってアクセスされてもよい。例えば、ユーザのクライアント１０６は、家庭用広帯域接続を通してネットワーク１０９に接続されるデスクトップコンピュータ、公共の場所で共用Ｗｉ−Ｆｉ接続を通してネットワーク１０９に接続されるラップトップコンピュータ、セルラーデータネットワークを通してネットワーク１０９に接続されるスマートフォン等を含み得る。
【００３０】
遠隔ネットワークストレージシステム１１６のパフォーマンスは、ローカルネットワーク１１０に接続するクライアント１０６にネットワーク接続ストレージを提示するコンピューティングデバイス１０５の使用を通じて、向上されてもよい。様々な実施形態において、コンピューティングデバイス１０５は、ローカルネットワーク１１０上のクライアント１０６の状態にかかわらず、通常オンライン状態であり続ける任意の独立型ネットワーク接続ストレージデバイスに対応する。しかしながら、コンピューティングデバイス１０５は、ローカルネットワーク１１０のクライアント１０６にネットワークファイルストレージを提示する任意のコンピュータシステムに対応してもよいことが理解される。コンピューティングデバイス１０５のローカルネットワークストレージシステム１５８は、ローカルネットワーク１１０上にあるとき、搭載可能であってもよく、および／または、別様では、クライアント１０６にローカルでアクセス可能であるかのように見える。
【００３１】
ローカルネットワークストレージシステム１５８は、クライアント１０６による遠隔ネットワークストレージシステム１１６よりも速いアクセスをサポートし得る。非限定的な例として、ローカルネットワーク１１０は、クライアント１０６のネットワーク１０９への接続が、７６８キロビット／秒のデジタル加入者回線（ＤＳＬ）インターネット接続に対応し得る一方で、１０００メガビット／秒のイーサネットネットワークに対応することができる。加えて、ローカルネットワークストレージシステム１５８は、遠隔ネットワークストレージシステム１１６よりも多くのストレージをユーザのためにサポートし得る。非限定的な例として、遠隔ネットワークストレージシステム１１６がユーザに対する経常費で利用可能な追加のストレージとともに、５ギガバイトのストレージを無償でユーザに提示し得る一方で、ローカルネットワークストレージシステム１５８は、３テラバイトのストレージをサポートし得る。
【００３２】
その結果、ローカルネットワークストレージシステム１５８が、ローカルネットワーク１１０を経由してクライアント１０６にアクセス可能であるとき、ストレージ管理アプリケーション１６６は、一部の、または全てのファイル１５６要求を、遠隔ネットワークストレージシステム１１６の代わりにローカルネットワークストレージシステム１５８に送るように構成されてもよい。ファイル１５６はファイルキャッシュ１５９内であってもよく、またファイルキャッシュ１５９内でなくてもよい。ファイル１５６の現在のバージョンがファイルキャッシュ１５９に格納される場合、ローカルネットワークストレージシステム１５８は、読み出し要求に応答して、ローカルネットワーク１１０を介してクライアント１０６に、キャッシュされたファイル１５６を単に返してもよい。
【００３３】
クライアント１０６が、ファイルキャッシュ１５９内にはないファイル１５６を読み出すことを要求する場合、ローカルネットワークストレージシステム１５８は、プロキシとして作用し、クライアント１０６の代わりに、遠隔ネットワークストレージシステム１１６からファイル１５６を要求する。様々な実施形態において、ファイル１５６は、取得された後、または取得しながら同時に複数の塊として、ローカルネットワークストレージシステム１５８によって、クライアント１０６に返されてもよい。代替として、クライアント１０６は、ファイル１５６がファイルキャッシュ１５９に存在しない場合、遠隔ネットワークストレージシステムから単独でファイル１５６を取得してもよい。ストレージ管理アプリケーション１６６は、その後、ファイルキャッシュ１５９に追加されるべきファイルのコピーを、ローカルネットワークストレージシステム１５８に提供してもよい。
【００３４】
新たなファイル１５６に関連して、ローカルネットワークストレージシステム１５８の書き込み、修正、および／または他の更新は、ストレージ管理アプリケーション１６６に対するライトスルーキャッシュとして作用することができる。データが更新されるとき、データはファイルキャッシュ１５９に格納され、遠隔ネットワークストレージシステム１１６に伝達される。一実施形態では、データはまずファイルキャッシュ１５９に格納され、次いで、遠隔ネットワークストレージシステム１１６に送信される。別の実施形態では、データは同時に、ファイルキャッシュ１５９に格納され、遠隔ネットワークストレージシステム１１６での格納のために、ローカルネットワークストレージシステム１５８によって送信される。様々な他の代替の実施形態において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８にデータを送信し、次いで遠隔ネットワークストレージシステム１１６にデータを送信するように、遠隔ネットワークストレージシステム１１６にデータを送信し、次いでローカルネットワークストレージシステム１５８にデータを送信するように、またはローカルネットワークストレージシステム１５８および遠隔ネットワークストレージシステム１１６に同時にデータを送信するように構成されてもよい。
【００３５】
一部の実施形態において、ローカルネットワークストレージシステム１５８は、ローカルネットワーク１１０上で透過的に、遠隔ネットワークストレージシステム１１６を増大させてもよい。このために、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８が存在するか否かを決定する一種の検出に携わってもよい。かかる検出は、ローカルネットワークストレージシステム１５８への接続が、遠隔ネットワークストレージシステム１１６への接続に勝るパフォーマンス利益を提供するかどうかを決定するために、スループット、待機時間、および／または他のネットワークパフォーマンスのベンチマークパラメータを測定するクライアント１０６上のアプリケーションを含んでも良い。代替として、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８を使用するために、ユーザによって明確に構成されてもよい。別の代替として、ローカルネットワークストレージシステム１５８およびストレージ管理アプリケーション１６６が、同じローカルネットワーク１１０に接続されるデバイスによって実行されることを遠隔ネットワークストレージシステム１１６が検出するとき、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８を使用するように、遠隔ネットワークストレージシステム１１６によって構成されてもよい。
【００３６】
一実施形態では、ローカルネットワークストレージシステム１５８によって生成されるファイル１５６のリストを含むユーザインタフェースは、各ファイル１５６（またはファイル１５６のディレクトリ）が、遠隔ネットワークストレージシステム１１６によって保持されるファイル１５６のキャッシュされたコピー、または遠隔ネットワークストレージシステム１１６によって保持されない元のファイルであるか否かを示すことができる。さらに、ユーザは、単なるローカルネットワークストレージシステム１５８とは対照的に、遠隔ネットワークストレージシステム１１６内に保持されるべきファイル１５６を特徴付けるか、あるいは制御することができる。かかる選択肢は、ローカルネットワークストレージシステム１５８が遠隔ネットワークストレージシステム１１６よりも大きいストレージ容量を有するとき、有用であり得る。一実施例として、ユーザは、信頼性の理由のために、特定の重要なファイル１５６を遠隔ネットワークストレージシステム１１６の含有物に指定してもよい。別の実施例として、ユーザは、ローカルネットワーク１１０に接続されないクライアント１０６によってアクセスされ得る特定のファイル１５６を、遠隔ネットワークストレージシステム１１６の含有物に指定してもよい。
【００３７】
場合によっては、ローカルネットワーク１１０の外側のクライアント１０６は、ローカルネットワークストレージシステム１５８にアクセスしてもよい。かかるアクセスは、仮想プライベートネットワーク、プロキシ、遠隔末端、および／または一部の他の手法によって、容易になり得る。しかしながら、ネットワーク１０９を通じた、コンピューティングデバイス１０５に対するクライアント１０６の接続は、コンピューティングデバイス１０３に対してよりも遅い可能性がある。クライアント１０６は、ローカルネットワーク１１０を通じたアクセスが利用できないときには、ローカルネットワークストレージシステム１５８の代わりに遠隔ネットワークストレージシステム１１６にアクセスすることを好むこともある。それにもかかわらず、例えば、遠隔ネットワークストレージシステム１１６が利用できない等の場合、遠隔ネットワークストレージシステム１１６によっても格納されないデータに対して等、場合によっては、ネットワーク１０９を通じたローカルネットワークストレージシステム１５８へのアクセスは有用であり得る。
【００３８】
様々な実施形態において、ローカルネットワークストレージシステム１５８または遠隔ネットワークストレージシステム１１６のいずれかが、ファイル１５６に対して権威をもち得る。遠隔ネットワークストレージシステム１１６が、信頼性、有効性および／または他の理由に対して権威をもつことが好ましいこともある。遠隔ネットワークストレージシステム１１６が権威をもつ場合、ローカルネットワークストレージシステム１５８は、ファイル１５６が同様に遠隔ネットワークストレージシステム１１６で無事に更新されるまで、ファイル１５６の更新が完了されるという肯定応答をしなくてもよい。その一方、ローカルネットワークストレージシステム１５８が権威をもつ場合、遠隔ネットワークストレージシステム１１６は、ファイル１５６が同様にローカルネットワークストレージシステム１５８で無事に更新されるまで、ファイル１５６の更新が完了されるという肯定応答をしなくてもよい。さらに、新たなバージョンは、更新が遠隔ネットワークストレージシステム１１６に伝達されるまでに、ローカルネットワークストレージシステム１５８によって、ローカルネットワーク１１０上ではなく直接クライアント１０６に送信されなければならない可能性がある。
【００３９】
ローカルネットワークストレージシステム１５８は、ユーザによるアクセスに対して、ファイル１５６のリストに有益であり得るファイル１５６のヘッダまたはこれらのファイル１５６の一部分からのデータをキャッシュしてもよい。例えば、ファイル１５６がＭＰ３フォーマットの曲である場合、ユーザがその曲にアクセスしたいか否かを決定するために、ユーザが再生するその曲の一部分が、ファイルキャッシュ１５９に格納され得る。代替として、メタデータ、画像のサムネイル、および他のデータ等の他の情報がファイルキャッシュ１５９に含まれてもよい。一実施形態では、ユーザのためのファイル１５６のメタデータの全てのミラーは、ファイルキャッシュ１５９で保持され得る。別の実施形態では、メタデータのアクセスまたは検索が行われるたびに、ローカルネットワークストレージシステム１５８は、メタデータに対する遠隔ネットワークストレージシステム１１６へのクエリを行ってもよい。
【００４０】
遠隔ネットワークストレージシステム１１６およびローカルネットワークストレージシステム１５８はまた、一部の実施形態において、クライアント１０６でキャッシュされるデータのローカルストレージによって、補完されてもよい。クライアント１０６上のローカルストレージの使用に関連する種々の技術は、２０１１年３月２９日に出願され、参照することによりその全体が本明細書に組み込まれる「ＬＯＣＡＬ  ＳＴＯＲＡＧＥ  ＬＩＮＫＥＤ  ＴＯ  ＮＥＴＷＯＲＫＥＤ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭ」と題された米国特許出願第１３／０７４，３２５号で説明される。
【００４１】
次に、図２Ａを参照すると、種々の実施形態に従う、ストレージ管理アプリケーション１６６の一部分の動作の一例を提供するフローチャートが示される。図２Ａのフローチャートが、本明細書に記載のストレージ管理アプリケーション１６６の一部分の動作を実装するために用いられ得る、多くの異なる機能性配置の単なる例を提供することが理解される。代替として、図２Ａのフローチャートは、１つ以上の実施形態に従うクライアント１０６（図１）に実装される方法のステップの一例を示すものとして考えられ得る。
【００４２】
ボックス２０３から始めて、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６（図１）からデータオブジェクトを読み出す要求を取得する。かかる要求は、ストレージ管理アプリケーション１６６によってクライアント１０６でレンダリングされるユーザインタフェースを通じて生成される。かかるユーザインタフェースは、ネットワークページ、オペレーティングシステム１６３（図１）のファイルブラウザアプリケーション、アプリケーション１６９（図１）の拡張、および／または他の種類のユーザインタフェースを含んでもよい。ユーザインタフェースは、遠隔ネットワークストレージシステム１１６およびローカルネットワークストレージシステム１５８（図１）の両方に格納されるファイル、または、遠隔ネットワークストレージシステム１１６に格納されるが、ローカルネットワークストレージシステム１５８には格納されないファイルを区別してもよく、または区別しなくてもよい。
【００４３】
ボックス２０６において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８がローカルで利用可能か否かを決定する。すなわち、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８が、ローカルネットワーク１１０（図１）を介してクライアント１０６によって接続され得るか否かを決定する。このために、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８がローカルネットワーク１１０を介してアクセス可能であるか否かを決定するネットワークパフォーマンスのベンチマークの一種の検出および／または実行に携わることができる。
【００４４】
ローカルネットワークストレージシステム１５８がローカルで利用可能な場合、ストレージ管理アプリケーション１６６はボックス２０９に移動する。ボックス２０９において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８からデータオブジェクトを取得する。ボックス２１２において、ストレージ管理アプリケーション１６６はデータオブジェクトを返す。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００４５】
ボックス２０６において、代わりに、ストレージ管理アプリケーション１６６が、ローカルネットワークストレージシステム１５８がローカルで利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６はボックス２０６からボックス２１５に続く。ボックス２１５において、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６が利用可能であるか否かを決定する。非限定的な例として、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６が利用可能であるか否かを決定するために、ネットワーク接続を開始する、ｐｉｎｇを送信する、および／または別の種類のアウトリーチを行ってもよい。遠隔ネットワークストレージシステム１１６が利用可能である場合、ストレージ管理アプリケーション１６６はボックス２１８に移動し、遠隔ネットワークストレージシステム１１６からデータオブジェクトを取得する。このために、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６に、基本識別子１３９（図１）といったストレージアカウント１３３（図１）の表示を提供することができる。ボックス２２１において、ストレージ管理アプリケーション１６６は、データオブジェクトを取得する。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００４６】
ボックス２１５において、代わりに、ストレージ管理アプリケーション１６６が、遠隔ネットワークストレージシステム１１６が利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６はボックス２２４に続く。ボックス２２４において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８が、ローカルネットワーク１１０を介していない場合でも、例えば、ネットワーク１０９（図１）、仮想プライベートネットワーク等を介して利用可能であるか否かを決定する。ローカルネットワークストレージシステム１５８が利用可能である場合、ストレージ管理アプリケーション１６６はボックス２２７に進み、ローカルネットワークストレージシステム１５８からデータオブジェクトを取得する。ボックス２３０において、ストレージ管理アプリケーション１６６はデータオブジェクトを返す。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００４７】
ボックス２２４において、ストレージ管理アプリケーション１６６が、ローカルネットワークストレージシステム１５８が利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６は、代わりにボックス２３３に続き、エラーを生成する。代替として、ストレージ管理アプリケーション１６６は、クライアント１０６上のデータオブジェクトのローカルのコピーを返してもよい（かかるローカルのコピーが利用可能な場合）。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００４８】
図２Ｂに移動すると、種々の実施形態に従って、ストレージ管理アプリケーション１６６の一部分の動作の別の実施例を提供するフローチャートが示される。図２Ｂのフローチャートが、本明細書に記載のストレージ管理アプリケーション１６６の一部分の動作を実装するために用いられ得る、多くの異なる機能性配置の単なる例を提供することが理解される。代替として、図２Ｂのフローチャートは、１つ以上の実施形態に従うクライアント１０６（図１）に実装される方法のステップの例を示すものとして考えられ得る。
【００４９】
ボックス２３６から始めて、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６（図１）上で、データオブジェクトを書き込む、更新する、あるいは修正する要求を取得する。かかる要求は、ストレージ管理アプリケーション１６６によってクライアント１０６でレンダリングされるユーザインタフェースを通じて生成される。かかるユーザインタフェースは、ネットワークページ、オペレーティングシステム１６３（図１）のファイルブラウザアプリケーション、アプリケーション１６９（図１）の拡張、および／または他の種類のユーザインタフェースを含んでもよい。ユーザインタフェースは、遠隔ネットワークストレージシステム１１６およびローカルネットワークストレージシステム１５８（図１）の両方に格納されるファイル、または、遠隔ネットワークストレージシステム１１６に格納されるが、ローカルネットワークストレージシステム１５８には格納されないファイルを区別してもよく、または区別しなくてもよい。
【００５０】
ボックス２３９において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８がローカルで利用可能か否かを決定する。すなわち、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８が、ローカルネットワーク１１０（図１）を介してクライアント１０６によって接続され得るか否かを決定する。このために、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８がローカルネットワーク１１０を介してアクセス可能であるか否かを決定するネットワークパフォーマンスのベンチマークの一種の検出および／または実行に携わってもよい。
【００５１】
ローカルネットワークストレージシステム１５８がローカルで利用可能な場合、ストレージ管理アプリケーション１６６はボックス２４２に移動する。ボックス２４２において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８に書き込み要求を送信する。ストレージ管理アプリケーション１６６は、種々の実施形態において、成功した書き込みの確認を受信することができる。同期化手法は、ローカルネットワークストレージシステム１５８において、更新されたデータオブジェクトを大域的に利用可能にするために用いられ得る。書き込みが成功するか否かは、データオブジェクトに対するローカルネットワークストレージシステム１５８に権威があるか否か、および／または書き込みが遠隔ネットワークストレージシステム１１６に無事に伝達されているか否かに依存し得る。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００５２】
ボックス２３９において、代わりに、ストレージ管理アプリケーション１６６が、ローカルネットワークストレージシステム１５８がローカルで利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６はボックス２３９からボックス２４５に続く。ボックス２４５において、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６が利用可能であるか否かを決定する。非限定的な例として、ストレージ管理アプリケーション１６６は、遠隔ネットワークストレージシステム１１６が利用可能であるか否かを決定するために、ネットワーク接続を開始する、ｐｉｎｇを送信する、および／または別の種類のアウトリーチを行ってもよい。遠隔ネットワークストレージシステム１１６が利用可能である場合、ストレージ管理アプリケーション１６６はボックス２４８に移動し、遠隔ネットワークストレージシステム１１６に書き込み要求を送信する。ストレージ管理アプリケーション１６６は、種々の実施形態において、成功した書き込みの確認を受信することができる。書き込みが成功するか否かは、遠隔ネットワークストレージシステム１１６がデータオブジェクトに対して権威をもつか否かに依存し得る。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００５３】
ボックス２４５において、代わりに、ストレージ管理アプリケーション１６６が、遠隔ネットワークストレージシステム１１６が利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６はボックス２５１に続く。ボックス２５１において、ストレージ管理アプリケーション１６６は、ローカルネットワークストレージシステム１５８が、ローカルネットワーク１１０を介していない場合でも、例えば、ネットワーク１０９（図１）、仮想プライベートネットワーク等を介して利用可能であるか否かを決定する。ローカルネットワークストレージシステム１５８が利用可能である場合、ストレージ管理アプリケーション１６６はボックス２５４に進み、ローカルネットワークストレージシステム１５８に書き込み要求を送信する。ストレージ管理アプリケーション１６６は、種々の実施形態において、成功した書き込みの確認を受信することができる。同期化手法は、ローカルネットワークストレージシステム１５８において、更新されたデータオブジェクトを大域的に利用可能にするために用いられ得る。書き込みが成功するか否かは、データオブジェクトに対してローカルネットワークストレージシステム１５８が権威をもつか否か、および／または書き込みが遠隔ネットワークストレージシステム１１６に無事に伝達されているか否かに依存し得る。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００５４】
ボックス２２４において、ストレージ管理アプリケーション１６６が、ローカルネットワークストレージシステム１５８が利用可能ではないと決定する場合、ストレージ管理アプリケーション１６６は、代わりにボックス２３３に続き、エラーを生成する。代替として、ストレージ管理アプリケーション１６６は、データオブジェクトをクライアント１０６上のローカルのキャッシュに書き込んでもよい（かかるローカルのキャッシュが利用可能な場合）。その後、ストレージ管理アプリケーション１６６の一部が終了する。
【００５５】
次に図３Ａにおいて、種々の実施形態に従う、ローカルネットワークストレージシステム１５８の一部分の動作の一例を提供するフローチャートが示される。図３Ａのフローチャートが、本明細書に記載のローカルネットワークストレージシステム１５８の一部分の動作を実装するために用いられ得る多くの異なる機能性配置の単なる例を提供することが理解される。代替として、図３Ａのフローチャートは、１つ以上の実施形態に従うコンピューティングデバイス１０５（図１）に実装される方法のステップの例を示すものとして考えられ得る。
【００５６】
ボックス３０３から始めて、ローカルネットワークストレージシステム１５８は、クライアント１０６（図１）で実行されるストレージ管理アプリケーション１６６（図１）からデータオブジェクトを読み出す要求を取得する。ボックス３０６において、ローカルネットワークストレージシステム１５８は、データオブジェクトがファイルキャッシュ１５９（図１）内にあるかを決定する。データオブジェクトがファイルキャッシュ１５９内でない場合は、ローカルネットワークストレージシステム１５８はボックス３０９に続き、遠隔ネットワークストレージシステム１１６（図１）からデータオブジェクトを取得する。ボックス３１２において、ローカルネットワークストレージシステム１５８は、データオブジェクトをファイルキャッシュ１５９に格納する。ボックス３１５において、ローカルネットワークストレージシステム１５８は、データオブジェクトをクライアント１０６に返す。様々な実施形態において、データオブジェクトは、ファイルキャッシュ１５９に格納される前、ファイルキャッシュ１５９に格納された後、またはデータオブジェクトが遠隔ネットワークストレージシステム１１６から取得されるとき、ファイルキャッシュ１５９での格納と同時にクライアント１０６に返されても良い。その後、ローカルネットワークストレージシステム１５８の一部が終了する。
【００５７】
ボックス３０６において、代わりに、ローカルネットワークストレージシステム１５８が、データオブジェクトがファイルキャッシュ１５９に格納されると決定する場合、ローカルネットワークストレージシステム１５８はボックス３１８に続く。ボックス３１８において、ローカルネットワークストレージシステム１５８は、ローカルネットワークストレージシステム１５８が権威をもたない場合、データオブジェクトのキャッシュされたコピーが、データオブジェクトの最新バージョンに対応するか否かを決定する。非限定的な例として、ローカルネットワークストレージシステム１５８は、データオブジェクトに関連付けられるファイルシグネチャが現在のものであるか否かを決定するために、遠隔ネットワークストレージシステム１１６と通信してもよい。データオブジェクトのキャッシュされたコピーが最新バージョンでない場合、ローカルネットワークストレージシステム１５８はボックス３０９に移動し、上述のように、データオブジェクトの最新バージョンを取得する。
【００５８】
ボックス３１８において、ローカルネットワークストレージシステム１５８が、ファイルキャッシュ１５９に格納されるデータオブジェクトのコピーが最新バージョンであると決定する場合、ローカルネットワークストレージシステム１５８はボックス３１８からボックス３２１に遷移し、ファイルキャッシュ１５９からデータオブジェクトを取得する。次に、ボックス３１５において、ローカルネットワークストレージシステム１５８はデータオブジェクトをクライアント１０６に返す。その後、ローカルネットワークストレージシステム１５８の一部が終了する。
【００５９】
図３Ｂに続き、種々の実施形態に従う、ローカルネットワークストレージシステム１５８の一部分の動作の別の例を提供するフローチャートが示される。図３Ｂのフローチャートが、本明細書に記載のローカルネットワークストレージシステム１５８の一部分の動作を実装するために用いられ得る多くの異なる機能性配置の単なる例を提供することが理解される。代替として、図３Ｂのフローチャートは、１つ以上の実施形態に従うコンピューティングデバイス１０５（図１）に実装される方法のステップの例を示すものとして考えられ得る。
【００６０】
ボックス３２４から始めて、ローカルネットワークストレージシステム１５８は、クライアント１０６（図１）で実行されるストレージ管理アプリケーション１６６（図１）からデータオブジェクトを書き込む要求を取得する。かかる要求は、新たなデータオブジェクトを書き出す、既存のデータオブジェクトを更新する、既存のデータオブジェクトのメタデータの修正する、または別の種類のデータ修正動作を行う、要求であってもよい。ボックス３２７において、ローカルネットワークストレージシステム１５８は、書き込まれた／修正されたデータオブジェクトをファイルキャッシュ１５９（図１）に格納する。ボックス３３０において、ローカルネットワークストレージシステム１５８は書き込まれたデータオブジェクトを遠隔ネットワークストレージシステム１１６（図１）に送信する。
【００６１】
ボックス３３３において、ローカルネットワークストレージシステム１５８はデータオブジェクトに対して、それが権威をもつか否かを決定する。その場合、ボックス３３６において、ローカルネットワークストレージシステム１５８は、成功した結果の表示をクライアント１０６に返す。その後、ローカルネットワークストレージシステム１５８の一部が終了する。
【００６２】
ボックス３３３において、ローカルネットワークストレージシステム１５８が、それが権威をもたないと決定する場合、代わりに、ローカルネットワークストレージシステム１５８は、ボックス３３３からボックス３３９に動く。ボックス３３９において、ローカルネットワークストレージシステム１５８は、更新が遠隔ネットワークストレージシステム１１６に無事に伝達または複製されているかどうかを決定する。例えば、ローカルネットワークストレージシステム１５８は、遠隔ネットワークストレージシステム１１６から確認応答を受信してもよい。更新が無事に伝達されている場合、ローカルネットワークストレージシステム１５８は、ボックス３３６に移動し、成功した結果の表示をクライアント１０６に返す。その後、ローカルネットワークストレージシステム１５８の一部が終了する。
【００６３】
ボックス３３９において、ローカルネットワークストレージシステム１５８が、代わりに、更新が無事に伝達されなかったことを決定する場合、ローカルネットワークストレージシステム１５８はボックス３３９からボックス３４２に移動し、データ送信が再試行されるか否かを決定する。ローカルネットワークストレージシステム１５８がデータ送信を再試行する場合、ローカルネットワークストレージシステム１５８はボックス３４５に移動し、書き込まれたデータオブジェクトを遠隔ネットワークストレージシステム１１６に再送する。次いで、ローカルネットワークストレージシステム１５８は、上述の成功した伝播を検証するために、ボックス３３９に戻る。
【００６４】
ローカルネットワークストレージシステム１５８がデータ送信を再試行しない場合、ローカルネットワークストレージシステム１５８は代わりに、ボックス３４２からボックス３４８に移動し、書き込み動作を停止する。ローカルネットワークストレージシステム１５８はまた、ファイルキャッシュ１５９をデータオブジェクトに対する前の状態に戻してもよく、それにより、任意の前の書き込みの準備（ｃｏｍｍｉｔｔａｌ）を効果的に取り消す。ボックス３５１において、ローカルネットワークストレージシステム１５８は、エラーの表示をクライアント１０６に返す。その後、ローカルネットワークストレージシステム１５８の一部が終了する。
【００６５】
図４を参照すると、本開示のある実施形態に従う、コンピューティングデバイス１０５の略ブロック図が示される。コンピューティングデバイス１０５は、少なくとも１つのプロセッサ回路を含み、プロセッサ回路は、例えば、プロセッサ４０３およびメモリ４０６を有し、その両方は、ローカルインタフェース４０９に連結される。このために、コンピューティングデバイス１０５は、例えば、少なくとも１つのサーバコンピュータまたは同様のデバイスを含み得る。ローカルインタフェース４０９は、理解できるように、例えば、付随するアドレス／制御バスを含むデータバスまたは他のバス構造を含み得る。クライアント１０６およびコンピューティングデバイス１０３は、コンピューティングデバイス１０５と同様のプロセッサおよびメモリ回路アーキテクチャを用いてもよいことが理解される。
【００６６】
メモリ４０６に格納されるのは、データと、プロセッサ４０３により実行可能ないくつかの構成要素との両方である。具体的には、メモリ４０６に格納され、かつプロセッサ４０３により実行可能であるのは、ローカルネットワークストレージシステム１５８および潜在的な他のアプリケーションである。また、メモリ４０６に格納されるのは、データストア１５７および他のデータであってもよい。加えて、オペレーティングシステムは、メモリ４０６に格納され、かつプロセッサ４０３により実行可能であり得る。
【００６７】
理解できるように、メモリ４０６に格納され、かつプロセッサ４０３により実行可能である他のアプリケーションが存在してもよいことが理解される。本明細書で説明する任意の構成要素が、ソフトウェアの形式で実装される場合、例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｄｅｌｐｈｉ（登録商標）、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語等の多数のプログラミング言語のうちの任意の１つが用いられ得る。
【００６８】
多数のソフトウェア構成要素は、メモリ４０６に格納され、プロセッサ４０３によって実行可能である。この点において、「実行可能」という用語は、プロセッサ４０３により最終的に起動可能である形式のプログラムファイルを意味する。実行可能なプログラムの例として、例えば、メモリ４０６のランダムアクセス部分にロード可能であり、かつプロセッサ４０３により起動可能なフォーマットで機械コードに変換可能なコンパイルされたプログラム、メモリ４０６のランダムアクセス部分にロード可能であり、かつプロセッサ４０３により起動可能なオブジェクトコード等の適切なフォーマットで表現され得るソースコード、またはプロセッサ４０３により実行されるようにメモリ４０６のランダムアクセス部分で命令を生成する別の実行可能なプログラムにより解釈され得るソースコード等が挙げられ得る。実行可能なプログラムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）もしくはデジタル多用途ディスク（ＤＶＤ）等の光ディスク、フロッピーディスク、磁気テープ、または他のメモリ構成要素を含むメモリ４０６の任意の部分または構成要素に格納され得る。
【００６９】
メモリ４０６は、揮発性メモリと不揮発性メモリとの両方およびデータストレージ構成要素を含むものとして本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ４０６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および／または他のメモリ構成要素、あるいはこれらのメモリ構成要素のうちの任意の２つ以上の組み合わせを含み得る。加えて、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）、および他のこのようなデバイスを含み得る。ＲＯＭは、例えば、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、または他の同様のメモリデバイスを含み得る。
【００７０】
また、プロセッサ４０３は、多数のプロセッサ４０３を表し得、メモリ４０６は、多数のメモリ４０６を表し得、それぞれが並行して処理回路を操作する。このような場合、ローカルインタフェース４０９は、多数のプロセッサ４０３のうちの任意の２つの間、任意のプロセッサ４０３とメモリ４０６のうちのいずれかとの間、またはメモリ４０６のうちの任意の２つの間等の通信を容易にする適切なネットワークであり得る。ローカルインタフェース４０９は、例えば、ロードバランシングの実施を含むこの通信を調整するように設計される追加のシステムを備えてもよい。プロセッサ４０３は、電気的構造またはいくつかの他の利用可能な構造を有してもよい。
【００７１】
本明細書に記載するローカルネットワークストレージシステム１５８、遠隔ネットワークストレージシステム１１６（図１）、ストレージ管理アプリケーション１６６（図１）、および他の種々のシステムは、上述のように、汎用ハードウェアにより実行されるソフトウェアまたはコードで具体化され得るが、代替として、同様のものが専用ハードウェアまたはソフトウェア／汎用ハードウェアと専用ハードウェアとの組み合わせで具体化されてもよい。専用ハードウェアで具体化される場合、各々は、多数の技術のうちの任意の１つまたはその組み合わせを用いる回路または状態機械として実装されることができる。これらの技術は、１つ以上のデータ信号の印加時に種々の論理機能を実装するために論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路、または他の構成要素等を含んでもよいが、これらに限定されない。このような技術は、概して、当業者により周知であることから、本明細書に詳細に記載しない。
【００７２】
図２Ａ〜３Ｂのフローチャートは、ストレージ管理アプリケーション１６６およびローカルネットワークストレージシステム１５８の部分の実装の機能性および動作を示す。ソフトウェアで具体化される場合、各ブロックは、特定の論理機能（複数可）を実装するために、プログラム命令を含むコードのモジュール、セグメント、または一部分を表し得る。プログラム命令は、プログラミング言語で書かれる人間が読める命令文を含むソースコード、またはコンピュータシステムまたは他のシステム内のプロセッサ４０３等の適切な実行システムにより認識可能な数値命令を含む機械コードの形式で具体化されてもよい。機械コードは、ソースコード等から変換されてもよい。ハードウェアで具体化する場合、各ブロックは、特定の論理機能（複数可）を実装するために、回路または多数の相互接続された回路を表し得る。
【００７３】
図２Ａ〜３Ｂのフローチャートは、具体的な実行順序を示すが、実行順序が、図示する順序と異なってもよいことが理解される。例えば、２つ以上のブロックの実行順序は、図示する順序を入れ替えてもよい。また、図２Ａ〜３Ｂに連続して示される２つ以上のブロックは、同時にまたは部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、図２Ａ〜３Ｂに示すブロックのうちの１つ以上をスキップまたは省略してもよい。加えて、有用性の向上、説明、性能測定、または問題解決の手掛かりの提供等の目的で、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、本明細書に記載する論理フローに加えてもよい。全てのこのような変形が、本開示の範囲内にあることが理解される。
【００７４】
また、ソフトウェアまたはコードを備える、ローカルネットワークストレージシステム１５８、遠隔ネットワークストレージシステム１１６、およびストレージ管理アプリケーション１６６を含む、本明細書に記載の任意の論理またはアプリケーションは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ４０３等の命令実行システムが使用する、またはそれに関連して使用する、任意の非一時的なコンピュータ可読媒体で具体化されることができる。この意味では、論理は、例えば、コンピュータ可読媒体から取得可能であり、かつ命令実行システムにより実行可能な命令および宣言を含む命令文を含み得る。本開示の文脈において、「コンピュータ可読媒体」は、命令実行システムが使用する、またはそれに関連して使用する、本明細書に記載の論理またはアプリケーションを包含、格納、または保持することができる任意の媒体であることができる。コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等の多数の物理媒体のうちの任意の１つを含むことができる。適切なコンピュータ可読媒体のより具体的な例として、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光ディスクが挙げられるだろうが、これらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）およびダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）であってもよい。加えて、コンピュータ可読媒体は、読み取り専用メモリ（ＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、または他の種類のメモリデバイスであってもよい。
付記
【００７５】
１．クライアントコンピューティングデバイスで実行可能なプログラムを具体化する、非一時的なコンピュータ可読媒体であって、前記プログラムは、
ローカルネットワークストレージシステムが、ローカルネットワークを通じてクライアントコンピューティングデバイスにアクセス可能であるか否かを決定するコードであって、前記ローカルネットワークストレージシステムが、ネットワーク接続ストレージデバイスを備える、コードと、
遠隔ネットワークストレージシステムにおけるファイルの格納を容易にするよう構成されるユーザインタフェースをレンダリングするコードと、
前記ユーザインタフェースを通じてユーザから格納されるべきファイルの表示を取得するコードであって、前記ファイルが前記クライアントコンピューティングデバイスに格納される、コードと、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能であると決定されるときには、前記ファイルを、前記ローカルネットワークストレージシステムによる格納のために、前記ネットワーク接続ストレージデバイスにつながる前記ローカルネットワークを介して前記ローカルネットワークストレージシステムに送信するコードと、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスにアクセス可能ではないと決定されるときには、ユーザアカウントに関連するメタデータベースのファイルシステムにおける前記遠隔ネットワークストレージシステムによる格納のために、前記ファイルを、遠隔ネットワークを介して前記遠隔ネットワークストレージシステムに送信するコードと、を含み、
前記ローカルネットワークストレージシステムは、前記ファイルが前記ローカルネットワークストレージシステムによって格納されることに応答して、前記遠隔ネットワークを介して前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように構成される、非一時的なコンピュータ可読媒体。
【００７６】
２．ローカルネットワークストレージシステムがローカルネットワークを通じてコンピューティングデバイスにアクセス可能であるか否かを決定するコードは、前記クライアントコンピューティングデバイスと前記ローカルネットワークストレージシステムとの間のネットワークパフォーマンスのベンチマークを実行するコードをさらに含む、付記１に記載の非一時的なコンピュータ可読媒体。
【００７７】
３．前記ユーザインタフェースは、前記ローカルネットワークストレージシステムおよび前記遠隔ネットワークストレージシステムの両方に格納されたファイルと、前記遠隔ネットワークストレージシステムには格納されたが前記ローカルネットワークストレージシステムには格納されていないファイルとの間を区別しない、付記１に記載の非一時的なコンピュータ可読媒体。
【００７８】
４．前記遠隔ネットワークは、前記ローカルネットワークのゲートウェイを通じてアクセスされる、付記１に記載の非一時的なコンピュータ可読媒体。
【００７９】
５．
コンピューティングデバイスと、
前記コンピューティングデバイスで実行可能なストレージ管理アプリケーションであって、
ローカルネットワークストレージシステムが、ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であるか否かを決定する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であると決定されるときには、前記ローカルネットワークストレージシステムによる格納のために、前記ローカルネットワークを介して前記ローカルネットワークストレージシステムにファイルを送信する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能ではないと決定されるときには、ユーザアカウントに関連する前記遠隔ネットワークストレージシステムによる格納のために、遠隔ネットワークを介して遠隔ネットワークストレージシステムに前記ファイルを送信する論理と、を含む、ストレージ管理アプリケーションと、を備える、システム。
【００８０】
６．前記ストレージ管理アプリケーションは、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能であると決定されるときには、前記ローカルネットワークを介して別のファイルを読み出す要求を、前記ローカルネットワークストレージシステムに送信する論理と、
前記ローカルネットワークストレージシステムが、前記ローカルネットワークを通じて前記コンピューティングデバイスにアクセス可能ではないと決定されるときには、前記遠隔ネットワークを介して前記別のファイルを読み出す要求を、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに送信する論理と、をさらに含む、付記５に記載のシステム。
【００８１】
７．前記別のファイルを読み出す前記要求に応答して、前記ローカルネットワークストレージシステムは、
前記別のファイルがキャッシュされているときには、前記別のファイルをファイルキャッシュから前記コンピューティングデバイスに返し、
前記別のファイルがキャッシュされていないときには、前記別のファイルを、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムから取得するように構成される、付記６に記載のシステム。
【００８２】
８．前記ローカルネットワークストレージシステムは、前記別のファイルが前記遠隔ネットワークストレージシステムから取得されている間に同時に、前記別のファイルを前記コンピューティングデバイスに返し、前記別のファイルを前記ファイルキャッシュに格納するように構成される、付記７に記載のシステム。
【００８３】
９．前記ローカルネットワークストレージシステムは、前記別のファイルが前記遠隔ネットワークストレージシステムから取得された後、前記別のファイルを前記コンピューティングデバイスに返すように構成される、付記７に記載のシステム。
【００８４】
１０．前記ローカルネットワークストレージシステムは、前記遠隔ネットワークストレージシステムの前記ユーザアカウントの割り当てよりも大きいデータ量を提示するように構成される、付記５に記載のシステム。
【００８５】
１１．前記遠隔ネットワークはインターネットである、付記５に記載のシステム。
【００８６】
１２．前記ローカルネットワークストレージシステムは、ネットワーク接続ストレージデバイスを備える、付記５に記載のシステム。
【００８７】
１３．前記ローカルネットワークストレージシステムは、前記ファイルが前記ローカルネットワークストレージシステムによって格納されることに応答して、前記遠隔ネットワークを介して前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように構成される、付記５に記載のシステム。
【００８８】
１４．前記ストレージ管理アプリケーションは、前記ファイルが前記遠隔ネットワークストレージシステムに複製されるか否かのユーザ表示を取得するように構成される、ユーザインタフェースをレンダリングする論理をさらに含む、付記５に記載のシステム。
【００８９】
１５．前記ファイルを前記ローカルネットワークストレージシステムに送信する前記論理は、
前記ユーザ表示が、前記ファイルが前記遠隔ネットワークストレージシステムに複製されるべきであることを指定するときには、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに、前記ファイルを複製するように前記ローカルネットワークストレージシステムを構成する論理と、
前記ユーザ表示が、前記ファイルが前記遠隔ネットワークストレージシステムに複製されるべきではないことを指定するときには、前記遠隔ネットワークストレージシステムに前記ファイルを複製しないように、前記ローカルネットワークストレージシステムを構成する論理と、をさらに含む、付記１４に記載のシステム。
【００９０】
１６．
コンピューティングデバイスにおいて、ユーザアカウントに関連する遠隔ネットワークストレージシステムに格納されたファイルを読み出す前記要求であって、ローカルネットワークを通じてクライアントコンピューティングデバイスから取得される、要求を取得するステップと、
前記コンピューティングデバイスにおいて、前記ファイルがローカルのキャッシュに格納されているか否かを決定するステップと、
前記コンピューティングデバイスにおいて、前記ファイルが前記ローカルのキャッシュに格納されているときには、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスに前記ファイルを送信するステップと、
前記コンピューティングデバイスにおいて、前記ファイルが前記ローカルのキャッシュに格納されていないときには、前記遠隔ネットワークストレージシステムから前記ファイルを取得するステップであって、前記ユーザアカウントの識別が前記遠隔ネットワークストレージシステムに提供される、ステップと、
前記コンピューティングデバイスにおいて、前記ファイルが前記遠隔ネットワークストレージシステムから取得されている間に、前記ファイルを前記クライアントコンピューティングデバイスに送信するステップと、を含む、方法。
【００９１】
１７．前記コンピューティングデバイスは、前記ローカルネットワーク上でオンライン状態であり続けるように構成されるネットワーク接続ストレージデバイスである、付記１６に記載の方法。
【００９２】
１８．コンピューティングデバイスにおいて、前記ユーザアカウントに関連付けられるメタデータベースのファイルシステムであって、前記遠隔ネットワークストレージシステムによって格納された前記メタデータベースのファイルシステムのためのメタデータのミラーを保持するステップをさらに含む、付記１６に記載の方法。
【００９３】
１９．
前記コンピューティングデバイスにおいて、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムによって格納された、少なくとも１つのファイルに関するメタデータのクエリであって、前記クライアントコンピューティングデバイスから取得される、クエリを取得するステップと、
前記コンピューティングデバイスにおいて、前記クエリを前記遠隔ネットワークストレージシステムに送信するステップと、
前記コンピューティングデバイスにおいて、前記遠隔ネットワークファイルシステムから前記クエリへの応答を取得するステップと、
前記コンピューティングデバイスにおいて、前記クエリへの前記応答を前記クライアントコンピューティングデバイスに返すステップと、をさらに含む、付記１６に記載の方法。
【００９４】
２０．
前記コンピューティングデバイスにおいて、前記ローカルネットワークを通じて前記クライアントコンピューティングデバイスから、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムに格納されるべき別のファイルを取得するステップと、
前記コンピューティングデバイスにおいて、前記別のファイルを前記ローカルのキャッシュに格納するステップと、
前記コンピューティングデバイスにおいて、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムでの格納のために、前記遠隔ネットワークを介して前記遠隔ネットワークストレージシステムに、前記別のファイルを送信するステップであって、前記ユーザアカウントの前記識別が、前記遠隔ネットワークストレージシステムに提供される、ステップと、をさらに含む、付記１６に記載の方法。
【００９５】
２１．
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが、前記別のファイルに対して権威をもつか否かを決定するステップと、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記別のファイルに対して権威をもつときには、前記ローカルネットワークを介して前記クライアントコンピューティングデバイスに、前記別のファイルが無事に格納されたという表示を返すステップと、
前記コンピューティングデバイスにおいて、前記別のファイルが、前記遠隔ネットワークストレージシステムに無事に格納されたか否かを決定するステップと、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記別のファイルに対して権威をもたず、かつ前記別のファイルが前記遠隔ネットワークコンピューティングシステムに無事に格納されなかったときには、前記別のファイルが無事に格納されなかったという表示を、前記ローカルネットワークを介して前記クライアントコンピューティングデバイスに返すステップと、をさらに含む、付記２０に記載の方法。
【００９６】
２２．
前記コンピューティングデバイスにおいて、前記ファイルの更新を取得するステップと、
前記コンピューティングデバイスにおいて、前記ファイルの前記更新を前記ローカルのキャッシュに格納するステップと、
前記コンピューティングデバイスにおいて、前記ユーザアカウントに関連する前記遠隔ネットワークストレージシステムでの格納のために、前記遠隔ネットワークを介して前記遠隔ネットワークストレージシステムに、前記ファイルの前記更新を送信するステップであって、前記ユーザアカウントの前記識別が、前記遠隔ネットワークストレージシステムに提供される、ステップと、をさらに含む、付記１６に記載の方法。
【００９７】
本開示の上述の実施形態が、本開示の原理を明確に理解するために記述される実装の単なる可能な例であることを強調されたい。本開示の精神および原理から実質的に逸脱することなく、多くの変形および修正を上述の実施形態（複数可）に加えてもよい。全てのこのような修正および変形は、本開示の範囲内で本明細書に含まれ、かつ以下の請求項によって保護されるように意図される。
【図１】
0005841243.tif 000002
【図２Ａ】
0005841243.tif 000003
【図２Ｂ】
0005841243.tif 000004
【図３Ａ】
0005841243.tif 000005
【図３Ｂ】
0005841243.tif 000006
【図４】
0005841243.tif 000007