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