特許第6062987号(P6062987)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インクの特許一覧

<>
  • 特許6062987-ネットワークストレージ管理システム 図000002
  • 特許6062987-ネットワークストレージ管理システム 図000003
  • 特許6062987-ネットワークストレージ管理システム 図000004
  • 特許6062987-ネットワークストレージ管理システム 図000005
  • 特許6062987-ネットワークストレージ管理システム 図000006
  • 特許6062987-ネットワークストレージ管理システム 図000007
  • 特許6062987-ネットワークストレージ管理システム 図000008
  • 特許6062987-ネットワークストレージ管理システム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6062987
(24)【登録日】2016年12月22日
(45)【発行日】2017年1月18日
(54)【発明の名称】ネットワークストレージ管理システム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20170106BHJP
【FI】
   G06F12/00 545A
   G06F12/00 514K
   G06F12/00 531M
【請求項の数】12
【全頁数】23
(21)【出願番号】特願2015-60526(P2015-60526)
(22)【出願日】2015年3月24日
(62)【分割の表示】特願2014-502741(P2014-502741)の分割
【原出願日】2012年3月28日
(65)【公開番号】特開2015-135698(P2015-135698A)
(43)【公開日】2015年7月27日
【審査請求日】2015年3月24日
(31)【優先権主張番号】13/074,325
(32)【優先日】2011年3月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】515004599
【氏名又は名称】アマゾン テクノロジーズ インク
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】べルミーラム ピラガシュ
(72)【発明者】
【氏名】オルソン ヨハンナ エス.
(72)【発明者】
【氏名】スミス コーウィン ジェイ.
(72)【発明者】
【氏名】ウッド ジェームス エイチ.
【審査官】 篠塚 隆
(56)【参考文献】
【文献】 特開2007−249414(JP,A)
【文献】 特表2011−501317(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/06−3/08
12/00
13/00
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスに連結するように構成される携帯型メモリデバイスと、
前記携帯型メモリデバイスに格納されるストレージ管理アプリケーションであって、
プロセッサ回路により実行可能であり、
ネットワークストレージシステムにおけるストレージのために複数のファイルを前記ネットワークストレージシステムに送信し、前記ネットワークストレージシステムが、前記コンピューティングデバイスに対して遠隔にあり、
前記ファイルのサブセットを前記携帯型メモリデバイス上にキャッシュし、
前記携帯型メモリデバイスは、前記サブセットの中間ストレージとして動作し、前記サブセットの前記ファイルは前記ファイルの内直近にアクセスされた複数のファイルを含み、
前記携帯型メモリデバイスにキャッシュされている前記複数のファイルの各々のバージョンが古いか否か判定し、
前記複数のファイルの各々の前記バージョンがキャッシュしようとする前記複数のファイルの各々と異なる場合に、前記複数のファイルの各々の前記バージョンは古く、
前記複数のファイルの各々の前記バージョンが古くないとの判定に応じて、前記複数のファイルの各々と関連する少なくとも1つのパラメータを更新し、
前記少なくとも1つのパラメータは格納の更新時間であり、
ローカルファイルディレクトリを前記携帯型メモリデバイスに保持し、
前記ローカルファイルディレクトリは、前記携帯型メモリデバイスにリンクされるアカウントに関連する前記ネットワークストレージシステムに格納された前記ファイルをリストする、
ストレージ管理アプリケーションと、
を備える、システム。
【請求項2】
前記ストレージ管理アプリケーションは、
ロード要求に応答して、前記ファイルのうちの1つが前記携帯型メモリデバイス上にキャッシュされた前記サブセットに含まれるか否かを決定する、
ことをさらに含む、
請求項1に記載のシステム。
【請求項3】
前記ストレージ管理アプリケーションは、
書き込み要求に応答して、前記ファイルのうちの1つが前記携帯型メモリデバイス上にキャッシュされた前記サブセットに含まれるか否かを決定する、
ことをさらに含む、
請求項1に記載のシステム。
【請求項4】
前記ストレージ管理アプリケーションは、
前記ネットワークストレージシステムへのネットワーク接続が利用可能である場合に、要求プロセスから前記ストレージ管理アプリケーションに提供される書き込み要求時に、前記ネットワークストレージシステムにおけるストレージのために、前記ファイルの各々を前記ネットワークストレージシステムに送信する、
請求項1に記載のシステム。
【請求項5】
前記ストレージ管理アプリケーションは、
要求プロセスから前記ストレージ管理アプリケーションに提供される書き込み要求に応答して、前記携帯型メモリデバイス内の前記サブセットに前記ファイルのうちの1つを格納し、
前記ネットワークストレージシステムへのネットワーク接続が利用不可能である場合に、前記ネットワークストレージシステムにおけるストレージのために前記ファイルのうちの前記1つにフラグを付ける、
ことをさらに含み、
前記ネットワークストレージシステムにおけるストレージのために前記ファイルを前記ネットワークストレージシステムに送信することは、
前記ネットワーク接続が利用可能になったときに、前記ネットワークストレージシステムにおけるストレージのために前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信する、
ことをさらに含む、
請求項1に記載のシステム。
【請求項6】
前記ストレージ管理アプリケーションは、
前記ファイルのうちの前記1つが前記サブセットにない場合に、ネットワークアクセスが前記ネットワークストレージシステムに対して利用可能であるか否かを決定し、
前記ネットワークアクセスが利用可能である場合に、前記ファイルの要求を前記ネットワークストレージシステムに送信する、
ことをさらに含む、請求項2に記載のシステム。
【請求項7】
インストールアプリケーションが前記携帯型メモリデバイス上に格納され、前記インストールアプリケーションは、前記ストレージ管理アプリケーションを前記コンピューティングデバイスにインストールするために、前記コンピューティングデバイスで実行可能である、請求項6に記載のシステム。
【請求項8】
前記ストレージ管理アプリケーションは、前記コンピューティングデバイスから遠隔にある前記ネットワークストレージシステムにおける前記ファイルのストレージを提供しながら、前記コンピューティングデバイス内のローカルストレージデバイスをシミュレーションするようにさらに構成される、請求項7に記載のシステム。
【請求項9】
前記プロセッサ回路は、前記携帯型メモリデバイス内で具体化される、請求項6に記載のシステム。
【請求項10】
前記携帯型メモリデバイスは、前記ネットワークストレージシステムへのネットワーク接続をさらに含む、請求項9に記載のシステム。
【請求項11】
前記ネットワーク接続は、無線ネットワーク接続をさらに含む、請求項10に記載のシステム。
【請求項12】
前記携帯型メモリデバイスは、メモリスティックをさらに含む、請求項6に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワークストレージ管理システムに関する。
【背景技術】
【0002】
ユーザは、火災および他のハザードからデータを確実に守るために、ストレージの保証を提供するネットワークストレージシステムを使って、データを格納することを望む場合がある。残念ながら、コンピューティングスキルの不足および他の問題により、一部のユーザは、ネットワークストレージシステムと対話(interact)することが難しい可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、ファイルへのアクセスを容易にすることを目的とする。
【課題を解決するための手段】
【0004】
本開示の態様の1つは、コンピューティングデバイスで実行可能なプログラムを具体化する非一時的なコンピュータ可読媒体である。前記プログラムは、コンピューティングシステムに連結される携帯型メモリデバイスが複数のファイルのローカルストレージを提供し、同時に、ネットワークを介して前記コンピューティングデバイスにアクセス可能であるネットワークストレージシステムにおける前記複数のファイルのストレージを提供するという感知を前記コンピューティングシステムで促進するコードであって、前記携帯型メモリデバイス内の前記ネットワークストレージシステムに格納される前記ファイルのサブセットを格納するコードと、要求プロセスから前記ファイルのうちの1つについて書き込み要求が取得されたときに、前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信するために、前記ネットワークが利用可能であるか否かを決定するコードと、前記ネットワークが利用可能であるときに、前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信するコードと、前記ネットワークが利用不可能であるときに、前記ファイルのうちの前記1つを前記携帯型メモリデバイスに格納するコードと、前記利用不可能なネットワークが利用可能になったときに、前記ネットワークストレージシステムに送信されるように、前記携帯型メモリデバイスに格納された前記ファイルのうちの前記1つにフラグを付けるコードと、を含む、コードを含む。
【発明の効果】
【0005】
本開示は、ファイルへのアクセスを容易にする
【図面の簡単な説明】
【0006】
図1】本開示の種々の実施形態に従うネットワーク環境の図である。
図2】本開示の種々の実施形態に従う、図1のネットワーク環境におけるクライアントデバイス内にプラグ着脱可能である携帯型メモリデバイスの一例の図である。
図3】本開示の種々の実施形態に従う、図1のネットワーク環境におけるクライアントデバイス内にプラグ着脱可能である携帯型メモリデバイスの別の例の図である。
図4A】本開示の種々の実施形態に従う、図1のネットワーク環境におけるコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の一例を提供するフローチャートを図示する。
図4B】本開示の種々の実施形態に従う、図1のネットワーク環境におけるコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の一例を提供するフローチャートを図示する。
図4C】本開示の種々の実施形態に従う、図1のネットワーク環境におけるコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の一例を提供するフローチャートを図示する。
図4D】本開示の種々の実施形態に従う、図1のネットワーク環境におけるコンピューティングデバイスで実行されるストレージ管理アプリケーションの部分として実装される機能性の一例を提供するフローチャートを図示する。
図5】本開示の種々の実施形態に従う、図1のネットワーク環境で用いられるコンピューティングデバイスの一例の図を提供する略ブロック図である。
【発明を実施するための形態】
【0007】
本開示の多くの態様は、添付の図面を参照して、より良好に理解するころができる。図面中の構成要素は、必ずしも原寸に比例するとは限らず、代わりに、本開示の原理を明確に例示することを重視する。さらに、図面における同様の参照数字は、いくつかの図において対応する部分を指定する。
【0008】
本開示の種々の実施形態は、ユーティリティコンピューティングモデルに従うデータファイルの遠隔ストレージに関する。ネットワークファイルシステムは、ネットワーク化された複数のコンピューティングデバイスを備えるクラウドコンピューティング資源に格納されたファイルへのアクセスを提供するために用いられ得る。いくつかの実施形態では、ネットワークファイルシステムは、ファイルの実際のデータオブジェクトが別々のデータストレージシステムに格納される仮想ファイルシステムに対応し得る。メタデータサービスは、メタデータをファイルに関連付けるために使用され得、これによって、メタデータを使用してファイルを検索することが容易になる。ファイルをこのようなネットワークファイルシステムに格納することによって、ユーザは、ネットワークの接続性を有するいかなるコンピューティングデバイスからもファイルにアクセスすることができる。
【0009】
種々の実施形態によると、携帯型メモリデバイスは、ネットワークストレージシステムにおける遠隔ストレージをクライアントデバイスに提供するために使用される。携帯型メモリデバイスは、メモリスティックまたは同様の性能を有する他のデバイスを含んでもよい。クライアントがファイルを携帯型メモリデバイスに格納するとき、そのファイルは、クラウドストレージシステムを備え得るネットワークストレージシステムに最終的に格納され、この場合、ネットワークストレージシステムに格納されるファイルのリストは、携帯型メモリデバイスに保持される。直近にアクセスされたネットワークストレージシステムに格納されるファイルのサブセットも、携帯型メモリデバイスに格納され得る。アプリケーションは、携帯型メモリデバイス上およびネットワークストレージシステム内の両方のファイルのストレージを管理する役割を果たす携帯型メモリデバイスに関連して実行され得る。加えて、他の機能性については、他の実施形態に関連して説明される。以下の説明では、最初に、種々の構成要素の物理的性質について説明し、次に、その動作について説明する。
【0010】
図1を参照すると、種々の実施形態に従うネットワーク環境100が示される。ネットワーク環境100は、ネットワーク109を経由して、1つ以上のクライアント106とデータ通信する1つ以上のコンピューティングデバイス103を含む。ネットワーク109には、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、もしくは他の適切なネットワーク等、または2つ以上のこのようなネットワークの任意の組み合わせが含まれる。
【0011】
コンピューティングデバイス103は、例えば、サーバコンピュータまたはコンピューティング機能性を提供する任意の他のシステムを含み得る。代替として、例えば、1つ以上のサーババンクもしくはコンピュータバンクまたは他の配置で配置される複数のコンピューティングデバイス103を用いてもよい。例えば、複数のコンピューティングデバイス103は、まとめて、クラウドコンピューティング資源、グリッドコンピューティング資源、および/または任意の他の分散型コンピューティング配置を含んでもよい。このようなコンピューティングデバイス103は、単独の設置で位置付けられてもよく、または多数の異なる地理的な位置間で分散されてもよい。便宜上、コンピューティングデバイス103は、本明細書において単数形で言及される。コンピューティングデバイス103が単数形で言及されるが、上述のような種々の配置で複数のコンピューティングデバイス103を用いてもよいことが理解される。
【0012】
種々のアプリケーションおよび/または他の機能性は、種々の実施形態に従って、コンピューティングデバイス103で実行され得る。また、種々のデータは、コンピューティングデバイス103にアクセス可能なデータストア113に格納される。データストア113は、理解できるように、複数のデータストア113の代表であり得る。データストア113に格納されるデータは、例えば、以下に記載する種々のアプリケーションおよび/または機能性エンティティの動作に関連付けられる。
【0013】
コンピューティングデバイス103上で実行される構成要素には、例えば、ネットワークストレージシステム116および本明細書に説明されない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能性が含まれる。ネットワークストレージシステム116は、ユーザのために、ネットワークベースのファイルシステムまたはメタデータベースのファイルシステムに、ファイルおよびフォルダのファイル階層を保持するために実行される。このために、ネットワークストレージシステム116は、例えば、ファイルの作成、ファイルの削除、ファイルの修正、ファイルの許可の設定、ファイルのダウンロード、および/または他の動作等の種々のファイルに関連する動作をサポートし得る。
【0014】
メタデーサービスは、ファイルに関連してメタデータ項目を保持するために、ネットワークストレージシステム116に関連して、またはネットワークストレージシステム116の一部として実行され得る。このために、このようなメタデータサービスは、例えば、メタデータ項目の作成、メタデータ項目の削除、メタデータ項目の読み出し、メタデータ項目の検索、および/または他の動作等の種々の動作をサポートし得る。また、メタデータサービスは、メタデータ項目の1つ以上の検索可能なインデックスを実装してもよい。
【0015】
ネットワークファイルシステムに格納されたデータにアクセスし得るホスト型アプリケーションに対応する種々のアプリケーションが提供され得る。このようなアプリケーションは、例えば、ウェエブベースのインターフェースを有し得、ウェブページまたは他の形式のネットワークコンテンツ等のネットワークページを供給して、ユーザインタラクションを容易にし得る。他のアプリケーションは、内部アプリケーションであってもよく、ウェブベースのインターフェースを持たなくてもよい。このようなアプリケーションの非限定的な例として、写真整理ツール、音楽ファイルオーガナイザおよび再生ツール、ワードプロセッサ、表計算、電子メールアプリケーション等が挙げられ得る。
【0016】
データストア113に格納されるデータには、例えば、ストレージアカウント133が含まれる。各ストレージアカウント133に関連付けられるのは、アカウント設定136、基本識別子139および潜在的に他の情報である。基本識別子139は、例えば、以下に記載するように、電子メールアドレス、一連の文字、または他の種類の識別子を含み得る。各ストレージアカウント133に関連付けられるのは、1つ以上のストレージバケツ153であり、ストレージバケツ153中に、以下に説明するように、ストレージアカウント133を保持するユーザの代わりに、種々のファイル156が格納される。
【0017】
ストレージアカウント133は、ストレージアカウント133が関連付けられるユーザに関する情報を含み得る。このような情報は、例えば、名前、住所、支払手段、および他の情報を含み得る。アカウント設定136は、パスワード、セキュリティ証明書、ファイル管理許可、ストレージ割り当ておよび限界、認定アクセスアプリケーション、請求情報、および/または他のデータ等の、所定のストレージアカウント133に関する種々の設定および他の機能性を特定および追跡するために用いられ得る。基本識別子139は、それぞれのストレージアカウント133の保持者に関連付けられる識別子である。このようなユーザは、アカウントの基本保持者であると見なされ得、その利用を制御することができる。
【0018】
クライアント106は、ネットワーク109に連結され得る複数のクライアントデバイスを表す。クライアント106は、例えば、コンピュータシステム等のプロセッサベースのシステムを含み得る。このようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、セットトップボックス、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、または同様の性能を有する他のデバイスの形式で、具体化され得る。クライアント106は、理解できるように、液晶ディスプレイ(LCD)、または他の種類のディスプレイデバイス等の、ディスプレイデバイス159を含み得る。
【0019】
クライアント106は、オペレーティングシステム163、ストレージ管理アプリケーション166、ならびに電子メールアプリケーション、インスタントメッセージアプリケーション、ブラウザ、ワードプロセッサ、表計算、描画アプリケーション、および/または他のアプリケーション等の他のアプリケーション169を実行するように構成され得る。
【0020】
携帯型メモリデバイス173は、クライアント106とデータ通信している。一例では、携帯型メモリデバイス173は、ユニバーサルシリアルバス(USB)コネクタまたは他のインターフェース等の適切なインターフェースを介して、クライアント106に連結され得る。一実施形態では、携帯型メモリデバイス173は、メモリスティックまたは同様のデバイスを含み得る。
【0021】
代替として、無線通信は、BlueTooth(商標)または他の適切な規格/プロトコル等の適切な無線規格/プロトコルによって、携帯型メモリデバイス173とクライアント106との間で確立されてもよい。
【0022】
以下の説明では、システムおよびその構成要素の概要が提供され、次に、その動作の説明が提供される。
【0023】
クライアント106に連結されるか、あるいはクライアント106とデータ通信する携帯型メモリデバイス173に関連して、クライアント106上で実行されるストレージ管理アプリケーション166は、コンピューティングデバイス103上のネットワークストレージシステム116によって、ファイル156のストレージを提供する。同時に、クライアント106の観点から、このようなファイル156のストレージは、携帯型メモリデバイス173上でクライアント106にとってローカルであるように思われる。このために、ストレージ管理アプリケーション166は、携帯型メモリデバイス173がファイル156のローカルストレージを提供するという感知を促進する、クライアント106内で実行されるアプリケーションを備える。これは、事例であるが、実際は、ファイル156のストレージは、ネットワーク109を介してクライアント106にアクセス可能であるネットワークストレージシステム116によって提供される。
【0024】
この点において、携帯型メモリデバイス173は、ネットワークストレージシステム116により格納されるファイル156のサブセットの中間ストレージのために用いられる。具体的には、一実施形態では、ストレージ管理アプリケーション166は、携帯型メモリデバイス173とクライアント106のオペレーティングシステム163との間に位置する。ストレージ管理アプリケーション166がまずクライアント106にインストールされると、ストレージ管理アプリケーション166は、オペレーティングシステム163内で設定を操作し、携帯型メモリデバイス173に格納される全てのファイルが実際にネットワークストレージシステム116によって遠隔格納されるときに、オペレーティングシステム163に、携帯型メモリデバイス173をローカルストレージデバイスとして感知させるようにする。代替として、ストレージ管理アプリケーション166は、携帯型メモリデバイス173から直接起動するように構成されてもよく、クライアント106にインストールされなくてもよい。本実施形態では、ストレージ管理アプリケーション166は、携帯型メモリデバイス173がクライアント106に連結されるか、あるいは最初にクライアント106とデータ通信させる度にインストールされてもよい。
【0025】
一実施形態では、ストレージ管理アプリケーション166は、携帯型メモリデバイス173上のローカルキャッシュに直近にアクセスされたファイルのみを格納するように構成される。このために、ネットワークストレージシステム116により格納されるファイル156のサブセットも、携帯型メモリデバイス173上に格納され、この場合、そのサブセットは、直近にアクセスされたファイルを含む。代替として、携帯型メモリデバイス173上に格納またはキャッシュするファイルは、他の基準に基づいて選択されてもよい。
【0026】
オペレーティングシステム163または他のアプリケーションがファイルを携帯型メモリデバイス173に格納しようとするとき、ストレージ管理アプリケーション166は、携帯型メモリデバイス173の受信点としての役割を果たし、ファイルがまだ携帯型メモリデバイス173上にない場合に、直近にアクセスされたファイルとしてファイルを携帯型メモリデバイス173上に格納する。携帯型メモリデバイス173上にファイルを格納する余地が十分無い場合、ストレージ管理アプリケーション166は、携帯型メモリデバイス173上に最初に保存されたファイルを削除して、最新のファイルのための余地を作り得る。
【0027】
加えて、ストレージ管理アプリケーション166は、ネットワークストレージシステム116に格納されるファイルを、ネットワーク109上で送信する。次に、ネットワークストレージシステム116は、ファイル156のうちの1つとして、ファイルを適切なストレージバケツ153に格納し、この場合、それぞれのストレージバケツ153は、クライアント106を操作するユーザのストレージアカウント133に関連付けられる。
【0028】
加えて、ストレージ管理アプリケーション166は、ネットワークストレージシステム116により格納されるファイル156の全てのローカルファイルディレクトリを、携帯型メモリデバイス173に保持する。これらのファイルのうちの一部は、直近にアクセスされたものまたは上述のいくつかの他の基準に基づくものである場合に、携帯型メモリデバイス173に位置付けられ得る。ローカルファイルディレクトリを携帯型メモリデバイス173上に保持することによって、クライアント106内のアプリケーション169は、携帯型メモリデバイス173およびネットワークストレージシステム116を介してアクセス可能なファイル156の全てを把握することができる。
【0029】
しかしながら、ストレージ管理アプリケーション166の動作を考慮すると、アプリケーションは、上述のように、このようなファイル156がネットワークストレージシステム116によって遠隔格納されていることを感知しない。所定のアプリケーション169が特定のファイル156を要求する場合、ストレージ管理アプリケーション166は、まず、このようなファイルが、携帯型メモリデバイス173に格納されたファイルのサブセットのうちの1つとして携帯型メモリデバイス173にローカルに格納されているか否かを確認する。ローカルに格納されているのであれば、ストレージ管理アプリケーション166は、要求元アプリケーション169に、携帯型メモリデバイス173からファイルを提供する。
【0030】
しかしながら、要求されたファイルが携帯型メモリデバイス173に格納されていない場合、ストレージ管理アプリケーション166は、ユーザのストレージアカウント133に関連付けられるそれぞれのファイル156について、要求をネットワークストレージシステム116に送信する。次に、ネットワークストレージシステム116は、それぞれのファイル156にアクセスし、ストレージ管理アプリケーション166にそのファイルを返送することによって応答する。ファイルを受信すると、ストレージ管理アプリケーション166は、ファイルを要求元アプリケーション169に提供し、また、要求されたファイル156を携帯型メモリデバイス173上に格納する。
【0031】
ファイルのローカルストレージのためのメモリ空間が携帯型メモリデバイス173に十分無い場合、携帯型メモリデバイス173上に最初に格納されたファイルのうちの1つ以上を削除して、さらなるメモリ空間を作ってもよい。このようなローカルに格納されたファイルの削除は、このようなファイルがネットワークストレージシステム116によってストレージバケツ153にも格納され、かつ上述と同様の方式で依然としてアクセス可能であることから、重大な結果とはならない。したがって、クライアント106で実行されるストレージ管理アプリケーション166は、遠隔コンピューティングデバイス103から、またはクライアント106に連結される携帯型メモリデバイス173から、ファイルへのアクセスを提供する。
【0032】
携帯型メモリデバイス173から、またはネットワークストレージシステム116を介して、ファイルがストレージ管理アプリケーション166によってアクセスされるとき、携帯型メモリデバイス173内のローカルファイルディレクトリは、アクセスの最新時間を示すように、かつファイルに関連して格納される任意の他のパラメータを更新するように、更新される。
【0033】
ユーザが携帯型メモリデバイス173を介してネットワークストレージシステム116にファイルを格納したいと仮定すると、それぞれのアプリケーション169は、書き込み要求をストレージ管理アプリケーション166に提供し得る。それに応じて、ストレージ管理アプリケーション166は、まず、ファイルをローカルに格納する余地が携帯型メモリデバイス173にあるか否かを決定する。余地がある場合、ファイルは、携帯型メモリデバイス173上に格納され、ローカルファイルディレクトリは、ファイル名で更新される。同一のファイルが前に格納されている場合、ローカルファイルディレクトリは、格納時間等を示すように更新される。ローカルに格納されているファイルのバージョンが、格納されるバージョンよりも古い場合、古いバージョンの代わりに新しいバージョンが携帯型メモリデバイス173に格納され得る。
【0034】
加えて、ストレージ管理アプリケーション166は、ユーザのストレージアカウント133に関連付けられるそれぞれのストレージバケツ153にファイル156のうちの1つとして格納するために、ファイルをネットワークストレージシステム116に送信する。この点において、ユーザは、ネットワークストレージシステム116を介して、クラウドストレージシステムまたは他の遠隔ストレージシステムにファイルを格納することができ、同時に、ファイルのこのようなストレージがクライアントにローカルであるという体裁をローカルクライアント106内に維持することができる。加えて、以下に記載するように、携帯型メモリデバイス173を介するファイル156のストレージに関連する他の機能性も存在してもよい。
【0035】
クライアント106のネットワーク109へのネットワーク接続が時々利用不可能であり得ることが理解されたい。ファイルがストレージ管理アプリケーション166によってクライアント106からコンピューティングデバイス103に送信され、かつクライアント106のネットワーク接続が何らかの理由で利用不可能である状況では、ストレージ管理アプリケーション166は、ネットワーク接続が今後利用可能になったときにネットワークストレージシステム116に後で格納するために、携帯型メモリデバイス173に格納されるそれぞれのファイルにフラグを付け得る。また、ストレージ管理アプリケーション166が、ネットワークストレージシステム116からファイルにアクセスするか、またはファイルをロードしたい場合で、かつネットワーク接続が利用不可能である場合、まず、ストレージ管理アプリケーション166は、ファイルがローカルに格納されるか否かを決定するために携帯型メモリデバイス173を調査する。格納されていない場合、ネットワーク接続が利用不可能であれば、ストレージ管理アプリケーション166は、要求元のプロセッサアプリケーションに、ファイルが利用不可能であることを返信し得る。
【0036】
代替実施形態では、携帯型メモリデバイス173は、ネットワーク109への、ひいてはネットワークストレージシステム116へのネットワーク接続を含んでもよい。例えば、携帯型メモリデバイス173は、ネットワーク109に対して無線性能または他の種類のデータ接続を含んでもよい。このような場合、ストレージ管理アプリケーション166は、携帯型メモリデバイス173のプロセッサ回路内で実行されてもよく、この場合、ネットワーク109へのクライアント106のネットワーク接続は、完全に回避される。
【0037】
図2を参照すると、種々の実施形態に従う携帯型メモリデバイス173の一例が示される。携帯型メモリデバイス173は、メモリ203を含み、メモリ203には、理解できるように、例えば、ソリッドステートメモリデバイスまたは他の種類のメモリが含まれてもよい。メモリ203内に格納されるのは、上述のように、ローカルファイル206のサブセットである。加えて、メモリ203に格納されるのは、ローカルファイルディレクトリ209である。ローカルファイルディレクトリ209は、ネットワークストレージシステム116(図1)により格納されるファイル156(図1)の全てのリストを含む。このようなファイル156のサブセットは、上述のように、メモリ203上にローカルファイル206として格納され得る。アプリケーション169(図1)が、開く等のために利用可能なファイルのリストを取得するために携帯型メモリデバイス173にアクセスするとき、ローカルファイルディレクトリ209におけるファイルのリストが提供され得る。
【0038】
加えて、ローカルファイルディレクトリ209は、ユーザによるアクセスのためにファイル156のリストに有益であり得るファイル156のヘッダまたはこれらのファイル156の部分からのデータを含み得る。例えば、ファイル156がMP3フォーマットの曲である場合、ユーザがその曲にアクセスしたいか否かを決定するために、ユーザが再生するその曲の一部分が、ローカルファイルディレクトリ209に格納され得る。代替として、メタデータ、画像のサムネイル、および他のデータ等の他の情報がローカルファイルディレクトリ209に含まれてもよい。一実施形態では、ファイルが携帯型メモリデバイス173にローカルに格納されているか、ネットワークストレージシステム116に格納されているか、またはその両方に格納されているかを示すフラグまたは他の値が、ローカルファイルディレクトリ209内の各ファイルリストに関連付けられてもよい。アクセスするファイルを選択するために、ローカルファイルディレクトリ209からのファイルのリストがユーザに提示されるとき、ファイルが携帯型メモリデバイス173、ネットワークストレージシステム116、またはその両方に格納されているかに関する指示が、各ファイルに関連して表示され得る。このような指示は、種々の記号、テキスト指示、または他の指示を含み得る。
【0039】
加えて、ストレージ管理アプリケーション166のコピーが、携帯型メモリデバイス173に格納され得る。一実施形態では、ストレージ管理アプリケーション166は、携帯型メモリデバイス173が最初にクライアント106に連結されるとき、または少なくともデータ通信が最初に携帯型メモリデバイス173とクライアント106との間で確立されるときに、クライアント106にインストールされる。このために、携帯型メモリデバイス173は、上述のようにストレージ管理アプリケーション166をインストールするために、クライアント106のプロセッサ回路によってアクセスされ得る適切な実行ファイルを含み得る。このようなインストールは、手動または自動で実施され得る。
【0040】
図3を参照すると、携帯型メモリデバイス173の別の実施形態が示され、本図面において、携帯型メモリデバイス173は、プロセッサ回路303および通信回路306を含む。プロセッサ回路303は、上述のようにストレージ管理アプリケーション166を実行するために用いられ、通信回路306は、適切なネットワーク109(図1)を介してネットワークストレージシステム116(図1)との通信を確立するために用いられる。一実施形態によると、通信回路306は、ネットワーク109内の適切な要素との無線通信を提供して、プロセッサ回路303とネットワークストレージシステム116との間の直接通信が、クライアント106を介するネットワーク109へのアクセスを必要とせずに確立され得るようにすることができる。加えて、ストレージ管理アプリケーション166の実行を、プロセッサ回路303によって部分的に、かつクライアント106のプロセッサ回路によって部分的に達成し得ることが可能である。
【0041】
次に、図4A、4B、4C、および4Dを参照すると、種々の実施形態に従う、ストレージ管理アプリケーション166の一部分の動作の一例を提供するフローチャートが示される。図4A、4B、4Cおよび4Dのフローチャートが、本明細書に記載のストレージ管理アプリケーション166の一部分の動作を実装するために用いられ得る多くの異なる機能性配置の単なる例を提供することが理解される。代替として、図4A、4B、4Cおよび4Dのフローチャートは、1つ以上の実施形態に従うクライアントコンピューティングデバイス106(図1)に実装される方法のステップの例を示すものとして考えられ得る。
【0042】
ボックス403から始めて、ストレージ管理アプリケーション166は、上述のように、クライアント106または携帯型メモリデバイス173(図1)内で起動される。ストレージ管理アプリケーション166がクライアント106上で実行される場合、ストレージ管理アプリケーション166は、必要な措置をとる際に任意のパラメータまたは設定を設定および/または上書きすることによって、携帯型メモリデバイス173のローカルストレージデバイスをシミュレーションするためにオペレーティングシステム163(図1)と対話して、携帯型メモリデバイス173に格納されるファイルが実際はネットワークストレージシステム116に格納されていることを実際に把握せずに、クライアント106が、携帯型メモリデバイス173がローカルストレージデバイスであることを感知するようにし得る。
【0043】
設定の必要な種々のパラメータには、例えば、理解できるように、ユーザのストレージアカウント133のそれぞれのストレージバケツ153で利用可能なストレージの最大量、および他のパラメータが含まれてもよい。また、パラメータには、任意の所定の時間に、それぞれのストレージバケツ153で利用可能なストレージの割合が含まれてもよい。その後、ボックス406において、ストレージ管理アプリケーション166は、一定のファイル156(図1)が実行のためにクライアント106のランダムアクセスメモリ内にロードされるか、あるいはアクセスされるという読み出し要求を、それぞれのアプリケーション169(図1)が提供したか否かを決定する。例えば、このようなファイルは、理解できるように、ワードプロセッサ文書、表計算、または他のこのような文書等の、実行可能なファイルまたはデータファイルを含み得る。このようなアプリケーション169が、アクセスされるファイルを特定するためには、ローカルファイルディレクトリ209(図2および図3)が、アクセス可能なファイルのリストをユーザに提供するように閲覧され得る。ユーザは、これらのファイルのうちの1つを選択することによって、ボックス406に関連する読み出し要求を本質的に生成することができる。
【0044】
ファイルがボックス406で決定されたようにロードされると仮定すると、ストレージ管理アプリケーション166は、図示するようにコネクタAに進む。そうでない場合は、ストレージ管理アプリケーション166は、ボックス409に進み、アプリケーション169が、ファイルを携帯型メモリデバイス173に、ひいてはネットワークストレージシステム116に書き込むことを要求したか否かを決定する。要求した場合、ストレージ管理アプリケーション166は、コネクタBに進む。そうでない場合、ストレージ管理アプリケーション166は、ボックス413に移動する。
【0045】
ボックス413において、上述のように、クライアント106のネットワーク接続または携帯型メモリデバイス173のネットワーク接続が利用不可能であることにより、ネットワークストレージシステム116にまだ格納されていない携帯型メモリデバイス173内に格納されている任意のタグ付きファイルが存在するか否かが決定される。タグ付きファイルが存在する場合、ストレージ管理アプリケーションは、ボックス416に進み、ネットワーク接続がアクティブであることにより確認可能であるように、ネットワークストレージシステム116が利用可能であるか否かを決定する。利用可能である場合、ストレージ管理アプリケーションは、コネクタCに進む。そうでない場合、ストレージ管理アプリケーション166は、図示するように、ボックス419に移動する。
【0046】
ボックス419において、所定のアプリケーション169がファイル156を削除することを要求したか否かが決定される。これが当てはまる場合、ストレージ管理アプリケーション166は、図示するように、コネクタDに進む。そうでない場合、ストレージ管理アプリケーション166は、図示するように、ボックス406に戻る。
【0047】
加えて、ネットワークストレージシステム116における、および携帯型メモリデバイス173のローカルメモリ上のファイルのストレージに関して実行される他の機能性が存在してもよく、上述の機能性および以下の文章で説明する機能性が単に例であることが理解されたい。
【0048】
次に図4Bを参照すると、上述のように、クライアント106のローカルアクセスメモリ内にファイルがロードされるという指示が存在するときに実行されるストレージ管理アプリケーション166の一部分が示される。コネクタAから始めて、ストレージ管理アプリケーション166は、ボックス423に進み、要求されたファイルが、ファイル206(図2図3)のうちの1つとしてローカルに格納されているか否かを決定する。ローカルに格納されている場合、ボックス426において、ファイルは、携帯型メモリデバイス173内のローカルメモリから読み出され、要求プロセスに提供され得る。その後、ストレージ管理アプリケーション166は、図示するように、ボックス406(図4A)に戻るコネクタRに進む。
【0049】
しかしながら、ファイルがファイル206の1つとしてローカルに格納されない場合、ストレージ管理アプリケーション166は、ボックス429に進み、上述のように、クライアント106を介して、または通信回路306(図3)を通して携帯型メモリデバイス173を介してネットワーク接続がアクティブであるか否かという事実によって、ネットワークストレージシステム116が利用可能であるか否かを決定する。ネットワークストレージシステム116が利用可能である場合、ストレージ管理アプリケーション166は、ボックス433に進む。そうでない場合、ストレージ管理アプリケーション166は、ボックス436に進む。
【0050】
ボックス433において、ストレージ管理アプリケーション166は、要求されたファイルについて、ネットワークストレージシステム116に要求を送信する。その後、ストレージ管理アプリケーション166は、要求されたファイルを含むネットワークストレージシステム116からの返信をボックス439において待機する。返信が既定のタイムアウト内に受信されない場合、またはファイルを含まないエラーを示す返信が受信される場合、ストレージ管理アプリケーション166は、ボックス436に戻る。ボックス436において、ストレージ管理アプリケーション166は、ファイルが利用不可能であるという返信を要求プロセスに送信する。その後、ストレージ管理アプリケーション166は、図示するように、コネクタRに進む。
【0051】
ボックス439において、要求されたファイルを含んだ返信がタイムアウト時間内に受信されたと仮定すると、ストレージ管理アプリケーション166は、ボックス443に進み、ファイルを携帯型メモリデバイス173内のローカルメモリに書き込み、ファイルを要求プロセスに提供する。また、ファイルは、上述のように、直近にアクセスされたものであれば、それぞれの携帯型メモリデバイス173のローカルメモリ203に書き込まれる。ファイルをローカルメモリ203に書き込む余地が十分無い場合、ローカルメモリ203に最初に格納されたファイルは、最新のアクセスファイルのストレージのために余地を作るために削除され得る。その後、ストレージ管理アプリケーション166は、図示するように、コネクタRに進む。
【0052】
図4Cを参照すると、上述のように、ファイルが携帯型メモリデバイス173およびネットワークストレージシステム116に書き込まれることが決定されるときに実装されるストレージ管理アプリケーション166の機能性の一部分が示される。
【0053】
ボックス453から始めて、ストレージ管理アプリケーション166は、携帯型メモリデバイス173およびネットワークストレージシステム116に書き込まれるファイルが、既に携帯型メモリデバイス173のメモリ203(図2図3)にローカルに格納されているか否かを決定する。前に格納されたバージョンに対してファイルが変更された場合、またはファイルが前に格納されていない場合、これは当てはまらない。これが当てはまる場合、ストレージ管理アプリケーション166は、ボックス456に進む。そうでない場合、ストレージ管理アプリケーション166は、ボックス459に移動する。
【0054】
ボックス459において、ストレージ管理アプリケーション166は、携帯型メモリデバイス173に関連付けられるメモリ203に格納される現在のファイルを書き込むメモリ空間が存在するか否かを決定する。存在しない場合、ストレージ管理アプリケーション166は、ボックス463に進み、現在のファイルを書き込む空間が存在するまで、最初に格納されたファイルをローカルメモリ203から削除する。その後、ストレージ管理アプリケーション166は、ボックス466に進む。
【0055】
ボックス459で決定されたように、ファイルをローカルメモリ203に書き込む空間が存在すると仮定すると、ストレージ管理アプリケーション166はまた、ボックス466に進み、そこで、ファイルがローカルメモリ203に書き込まれる。その後、ストレージ管理アプリケーション166は、ボックス456に進む。
【0056】
ボックス456において、ストレージ管理アプリケーション166がネットワークストレージシステム116と通信することを可能にするためにネットワークアクセスが利用可能であるか否かが決定される。利用不可能である場合、ボックス473において、ネットワークアクセスが利用可能になったときの遠隔ストレージのために、ローカルメモリ203においてメモリに書き込まれるファイルに、タグが付けられる。その後、ストレージ管理アプリケーション166は、コネクタRに進む。
【0057】
しかしながら、ボックス456で決定されたように遠隔ストレージがアクセス可能である場合、ストレージ管理アプリケーション166は、ボックス475に進む。ボックス475において、格納されるファイルが、既にネットワークストレージシステム116に格納されているか否かが決定される。前に格納されたバージョンに対してファイルが変更された場合、またはファイルが前に格納されていない場合、これは当てはまらない。これが当てはまる場合、ストレージ管理アプリケーション166は、ボックス476に進む。そうでない場合、ストレージ管理アプリケーション166は、ボックス479に移動する。
【0058】
ボックス476において、ストレージ管理アプリケーション166は、ファイルを格納しようと試みた最新の時間を示すように、ローカルファイルディレクトリ209(図2、3)を更新する。その後、ストレージ管理アプリケーション166は、コネクタRに進む。
【0059】
ボックス479に言及すると、ストレージ管理アプリケーション166は、それぞれのユーザのストレージアカウント133に関連してファイルを格納する要求とともに、それぞれのネットワーク接続を介して、ファイルまたはタグ付きファイルをネットワークストレージシステム116に送信する。その後、ボックス483において、ストレージ管理アプリケーション166は、ネットワークストレージシステム116によるファイルのストレージが成功したか否かを決定する。これは、例えば、ストレージが成功したことを示す確認をネットワークストレージシステム116から受信することを待機することによって、決定され得る。タイムアウトが発生すると仮定すると、またはボックス483でストレージが成功しなかったと仮定すると、ボックス486において、ストレージ管理アプリケーション166は、ファイルのストレージについてのエラーを記録し得、また、ストレージエラーを適宜ユーザに出力し得る。その後、ストレージ管理アプリケーション166は、図示するように、コネクタRに進む。
【0060】
しかしながら、ボックス483で決定したように、ネットワークストレージシステム116によるファイルのストレージが成功した場合、ストレージ管理アプリケーション166は、ボックス476に進み、ネットワークストレージシステム116より格納されたファイルを示すように、ローカルファイルディレクトリ209を更新する。その後、ストレージ管理アプリケーション166は、図示するように、コネクタRに進む。
【0061】
次に図4Dを参照すると、ボックス419で決定されたように、ファイルを削除する際のストレージ管理アプリケーション166の機能性の一部分が示される。コネクタDから進んで、ストレージ管理アプリケーション166は、ボックス493に進み、削除されるファイルが、携帯型メモリデバイス173のローカルメモリ203に格納されているか否かを判断する。格納されている場合、ボックス496において、ファイルのローカルに格納されるインスタンスが、メモリ203から削除される。その後、ストレージ管理アプリケーション166は、ボックス499に進む。
【0062】
ボックス493においてメモリ203に格納されるファイルのローカルインスタンスが存在しないことが判断されると仮定すると、ストレージ管理アプリケーション166はまた、ボックス499に進む。ボックス499において、ユーザのストレージアカウント133に関連付けられるそれぞれのストレージバケツ153からファイルの遠隔格納されるインスタンスを削除する要求が、ネットワークストレージシステム116に送信される。その後、ボックス503において、ストレージ管理アプリケーション166は、ネットワークストレージシステム116からの削除の確認の受信を待機する。このような確認が、既定のタイムアウト時間内に受信されない場合、エラーが生じ得る。
【0063】
確認が適当に受信されると仮定すると、ストレージ管理アプリケーション166は、ボックス506に進み、削除動作に従ってファイルをディレクトリから除去するようにローカルファイルディレクトリ209を更新する。その後、ストレージ管理アプリケーション166は、図示するように、コネクタRに進む。
【0064】
図5を参照すると、本開示のある実施形態に従う、クライアントコンピューティングデバイス106の一例の略ブロック図が示される。クライアントコンピューティングデバイス106は、少なくとも1つのプロセッサ回路を含み、プロセッサ回路は、例えば、プロセッサ603およびメモリ606を有し、その両方は、ローカルインターフェース609に連結される。このために、コンピューティングデバイス106は、例えば、少なくとも1つのサーバコンピュータまたは同様のデバイスを含み得る。ローカルインターフェース609は、理解できるように、例えば、付随するアドレス/制御バスを含むデータバスまたは他のバス構造を含み得る。
【0065】
メモリ606に格納されるのは、データと、プロセッサ603により実行可能ないくつかの構成要素との両方である。具体的には、メモリ606に格納され、かつプロセッサ603により実行可能であるのは、ストレージ管理アプリケーション166および潜在的に他のアプリケーション169である。加えて、オペレーティングシステム163は、メモリ606に格納され、かつプロセッサ603により実行可能であり得る。
【0066】
理解できるように、メモリ606に格納され、かつプロセッサ603により実行可能である他のアプリケーションが存在してもよいことが理解される。本明細書で説明する任意の構成要素が、ソフトウェアの形式で実装される場合、例えば、C、C++、C#、Objective C、Java(登録商標)、Javascript(登録商標)、Perl、PHP、Visual Basic、Python、Ruby、Delphi、Flash、または他のプログラミング言語等の多数のプログラミング言語のうちの任意の1つが用いられ得る。
【0067】
多数のソフトウェア構成要素は、メモリ606に格納され、プロセッサ603によって実行可能である。この点において、用語の「実行可能」は、プロセッサ603により最終的に起動可能である形式のプログラムファイルを意味する。実行可能なプログラムの例として、例えば、メモリ606のランダムアクセス部分にロード可能であり、かつプロセッサ603により起動可能なフォーマットで機械コードに変換可能なコンパイルされたプログラム、メモリ606のランダムアクセス部分にロード可能であり、かつプロセッサ603により起動可能なオブジェクトコード等の適切なフォーマットで表現され得るソースコード、またはプロセッサ603により実行されるようにメモリ606のランダムアクセス部分で命令を生成する別の実行可能なプログラムにより解釈され得るソースコード等が挙げられ得る。実行可能なプログラムは、例えば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)等の光ディスク、フロッピー(登録商標)ディスク、磁気テープ、または他のメモリ構成要素を含むメモリ606の任意の部分または構成要素に格納され得る。
【0068】
メモリ606は、揮発性メモリと不揮発性メモリとの両方およびデータストレージ構成要素を含むものとして本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ606は、例えば、ランダムアクセスアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および/または他のメモリ構成要素、あるいはこれらのメモリ構成要素のうちの任意の2つ以上の組み合わせを含み得る。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)、および他のこのようなデバイスを含み得る。ROMは、例えば、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、または他の同様のメモリデバイスを含み得る。
【0069】
プロセッサ603は、多数のプロセッサ603を表し得、メモリ606は、多数のメモリ606を表し得、それぞれが並行して処理回路を操作する。このような場合、ローカルインターフェース609は、多数のプロセッサ603のうちの任意の2つの間、任意のプロセッサ603とメモリ606のうちのいずれかとの間、またはメモリ606のうちの任意の2つの間等の通信を容易にする適切なネットワークであり得る。ローカルインターフェース609は、例えば、ロードバランシングの実施を含むこの通信を調整するように設計される追加のシステムを備えてもよい。プロセッサ603は、電気的構造またはいくつかの他の利用可能な構造を有してもよい。
【0070】
本明細書に記載するストレージ管理アプリケーション166および他の種々のシステムは、上述のように、汎用ハードウェアにより実行されるソフトウェアまたはコードで具体化され得、代替として、専用ハードウェアまたはソフトウェア/汎用ハードウェアと専用ハードウェアとの組み合わせで具体化されてもよい。専用ハードウェアで具体化される場合、各々は、多数の技術のうちの任意の1つまたはその組み合わせを用いる回路または状態機械として実装されることができる。これらの技術は、1つ以上のデータ信号の印可時に種々の論理機能を実装するために論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路、または他の構成要素等を含んでもよいが、これらに限定されない。このような技術は、概して、当業者により周知であることから、本明細書に詳細に記載しない。
【0071】
図4A、4B、4C、および4Dのフローチャートは、ストレージ管理アプリケーション166の部分の実装の機能性および動作を示す。ソフトウェアで具体化される場合、各ブロックは、特定の論理機能(複数可)を実装するために、プログラム命令を含むコードのモジュール、セグメント、または一部分を表し得る。プログラム命令は、プログラミング言語で書かれる人間が読める陳述を含むソースコードまたはコンピュータシステムまたは他のシステム内のプロセッサ603等の適切な実行システムにより認識可能な数値命令を含む機械コードの形式で具体化されてもよい。機械コードは、ソースコード等から変換されてもよい。ハードウェアで具体化する場合、各ブロックは、特定の論理機能(複数可)を実装するために、回路または多数の相互接続された回路を表し得る。
【0072】
図4A、4B、4C、および4Dのフローチャートは、具体的な実行順序を示すが、実行順序が、図示する順序と異なってもよいことが理解される。例えば、2つ以上のブロックの実行順序は、図示する順序を入れ替えてもよい。また、図4A、4B、4C、および4Dに連続して示される2つ以上のブロックは、同時にまたは部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、図4A、4B、4C、および4Dに示すブロックのうちの1つ以上をスキップまたは省略してもよい。加えて、有用性の向上、説明、性能測定、または問題解決の手掛かりの提供等の目的で、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、本明細書に記載する論理フローに加えてもよい。全てのこのような変形が、本開示の範囲内にあることが理解される。
【0073】
また、ソフトウェアまたはコードを備える、ストレージ管理アプリケーション166を含む、本明細書に記載の任意の論理またはアプリケーションは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ等の命令実行システムが使用する、またはそれに関連して使用する、任意の非一時的なコンピュータ可読媒体で具体化されることができる。この意味では、論理は、コンピュータ可読媒体から取得可能であり、かつ命令実行システムにより実行可能な命令および宣言を含む陳述を含み得る。本開示の文脈において、「コンピュータ可読媒体」は、命令実行システムが使用する、またはそれに関連して使用する、本明細書に記載の論理またはアプリケーションを包含、格納、または保持することができる任意の媒体であることができる。コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等の多数の物理媒体のうちの任意の1つを含むことができる。適切なコンピュータ可読媒体のより具体的な例として、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクが挙げられるだろうが、これらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であってもよい。加えて、コンピュータ可読媒体は、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、または他の種類のメモリデバイスであってもよい。
【0074】
付記
1.コンピューティングデバイスで実行可能なプログラムを具体化する非一時的なコンピュータ可読媒体であって、前記プログラムは、
コンピューティングシステムに連結される携帯型メモリデバイスが複数のファイルのローカルストレージを提供し、同時に、ネットワークを介して前記コンピューティングデバイスにアクセス可能であるネットワークストレージシステムにおける前記複数のファイルのストレージを提供するという感知を前記コンピューティングシステムで促進するコードであって、
前記携帯型メモリデバイス内の前記ネットワークストレージシステムに格納される前記ファイルのサブセットを格納するコードと、
要求プロセスから前記ファイルのうちの1つについて書き込み要求が取得されたときに、前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信するために、前記ネットワークが利用可能であるか否かを決定するコードと、
前記ネットワークが利用可能であるときに、前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信するコードと、
前記ネットワークが利用不可能であるときに、前記ファイルのうちの前記1つを前記携帯型メモリデバイスに格納するコードと、
前記利用不可能なネットワークが利用可能になったときに、前記ネットワークストレージシステムに送信されるように、前記携帯型メモリデバイスに格納された前記ファイルのうちの前記1つにフラグを付けるコードと、
を含む、コード
を含む、非一時的なコンピュータ可読媒体。
【0075】
2.促進する前記コードは、
要求プロセスから前記ファイルのうちの要求されたファイルについて読み出し要求が取得されたときに、前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されているか否かを決定するコードと、
前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されている場合に、前記ファイルのうちの前記要求されたファイルを前記携帯型メモリデバイスから前記要求プロセスに提供するコードと、
前記ネットワーク上で、前記ファイルのうちの前記要求されたファイルを前記ネットワークストレージシステムから取得し、前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されておらず、かつ前記ネットワークへの接続が利用可能である場合に、前記ファイルのうちの前記要求されたファイルを前記要求プロセスに提供するコードと、
前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されておらず、かつ前記ネットワークへの接続が利用不可能である場合に、前記ファイルのうちの前記要求されたファイルが利用不可能であることを示す返信を前記要求プロセスに提供するコードと、
をさらに含む、付記1に記載の非一時的なコンピュータ可読媒体。
【0076】
3.コンピューティングデバイスに連結するように構成される携帯型メモリデバイスと、
前記携帯型メモリデバイスに格納されるストレージ管理アプリケーションであって、プロセッサ回路により実行可能であり、
ネットワークストレージシステムにおけるストレージのために複数のファイルを前記ネットワークストレージシステムに送信する論理であって、前記ネットワークストレージシステムが、前記コンピューティングデバイスに対して遠隔にある、論理と、
前記ファイルのサブセットを前記携帯型メモリデバイス上にキャッシュする論理と、
ローカルファイルディレクトリを前記携帯型メモリデバイスに保持する論理であって、前記ローカルファイルディレクトリは、前記携帯型メモリデバイスにリンクされるアカウントに関連する前記ネットワークストレージシステムに格納された前記ファイルをリストする論理と、
を含む、ストレージ管理アプリケーションと、
を備える、システム。
【0077】
4.前記ストレージ管理アプリケーションは、ロード要求に応答して、前記ファイルのうちの1つが前記携帯型メモリデバイス上にキャッシュされた前記サブセットに含まれるか否かを決定する論理をさらに含む、付記3に記載のシステム。
【0078】
5.前記ストレージ管理アプリケーションは、書き込み要求に応答して、前記ファイルのうちの1つが前記携帯型メモリデバイス上にキャッシュされた前記サブセットに含まれるか否かを決定する論理をさらに含む、付記3に記載のシステム。
【0079】
6.前記ストレージ管理アプリケーションは、前記ネットワークストレージシステムへのネットワーク接続が利用可能である場合に、要求プロセスから前記ストレージ管理アプリケーションに提供される書き込み要求時に、前記ネットワークストレージシステムにおけるストレージのために、前記ファイルの各々を前記ネットワークストレージシステムに送信する、付記3に記載のシステム。
【0080】
7.前記ストレージ管理アプリケーションは、
要求プロセスから前記ストレージ管理アプリケーションに提供される書き込み要求に応答して、前記携帯型メモリデバイスにおける前記サブセットに前記ファイルのうちの1つを格納する論理と、
前記ネットワークストレージシステムへのネットワーク接続が利用不可能である場合に、前記ネットワークストレージシステムにおけるストレージのために前記ファイルのうちの前記1つにフラグを付ける論理と、
をさらに含み、
前記ネットワークストレージシステムにおけるストレージのために前記ファイルを前記ネットワークストレージシステムに送信する前記論理は、前記ネットワーク接続が利用可能になったときに、前記ネットワークストレージシステムにおけるストレージのために前記ファイルのうちの前記1つを前記ネットワークストレージシステムに送信するようにさらに構成される、
付記3に記載のシステム。
【0081】
8.前記ファイルの前記サブセットは、前記ファイルのうちの直近にアクセスされたファイルを含む、付記3に記載のシステム。
【0082】
9.前記ストレージ管理アプリケーションは、
前記ファイルのうちの前記1つが前記サブセットにない場合に、ネットワークアクセスが前記ネットワークストレージシステムに対して利用可能であるか否かを決定する論理と、
前記ネットワークアクセスが利用可能である場合に、前記ファイルの要求を前記ネットワークストレージシステムに送信する論理と、
をさらに含む、付記4に記載のシステム。
【0083】
10.前記プロセッサ回路は、前記携帯型メモリデバイスが連結されるコンピューティングデバイスに存在する、付記9に記載のシステム。
【0084】
11.インストールアプリケーションは、前記携帯型メモリデバイス上に格納され、前記インストールアプリケーションは、前記ストレージ管理アプリケーションを前記コンピューティングデバイスにインストールするために、前記コンピューティングデバイスで実行可能である、付記10に記載のシステム。
【0085】
12.前記ストレージ管理アプリケーションは、前記コンピューティングデバイスから遠隔にある前記ネットワークストレージシステムにおける前記ファイルのストレージを提供しながら、前記コンピューティングデバイス内のローカルストレージデバイスをシミュレーションするようにさらに構成される、付記11に記載のシステム。
【0086】
13.前記プロセッサ回路は、前記携帯型メモリデバイス内で具体化される、付記9に記載のシステム。
【0087】
14.前記携帯型メモリデバイスは、前記ネットワークストレージシステムへのネットワーク接続をさらに含む、付記13に記載のシステム。
【0088】
15.前記ネットワーク接続は、無線ネットワーク接続をさらに含む、付記14に記載のシステム。
【0089】
16.前記携帯型メモリデバイスは、メモリスティックをさらに含む、付記9に記載のシステム。
【0090】
17.携帯型メモリデバイスとコンピューティングシステムとの間にデータ通信リンクを確立するステップと、
前記携帯型メモリデバイスが複数のファイルのローカルストレージを提供し、同時に、ネットワークを介して前記コンピューティングデバイスにアクセス可能であるネットワークストレージシステムにおける前記複数のファイルのストレージを提供するという感知を促進するアプリケーションを前記コンピューティングシステムで実行するステップと、
前記ネットワークストレージシステムに格納される前記ファイルのサブセットの中間ストレージのために、前記携帯型メモリデバイスを使用するステップと、
を含む、方法。
【0091】
18.前記携帯型メモリデバイスが複数のファイルのローカルストレージを提供するという感知を促進する前記アプリケーションを前記コンピューティングシステムで実行する前記ステップは、前記コンピューティングシステムで実行されるオペレーティングシステムで少なくとも1つの設定を上書きするステップであって、前記少なくとも1つの設定は、前記携帯型メモリデバイスに関連付けられる、ステップをさらに含む、付記17に記載の方法。
【0092】
19.前記複数のファイルのうちの前記直近にアクセスされたファイルのサブセットを前記携帯型メモリデバイスに格納するステップをさらに含む、付記17に記載の方法。
【0093】
20.プロセスからの読み出し要求に応答して、前記ファイルのうちの要求されたファイルが、前記携帯型メモリデバイスに格納されているか否かを決定するステップと、
前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されておらず、かつ前記ネットワークへの接続が前記コンピューティングシステムに対して利用可能である場合に、前記ファイルのうちの前記要求されたファイルのコピーを前記ネットワークストレージシステムから取得することと、前記ファイルのうちの前記要求されたファイルの前記コピーを前記プロセスに提供するステップと、
をさらに含む、付記17に記載の方法。
【0094】
21.前記ファイルのうちの前記要求されたファイルが前記携帯型メモリデバイスに格納されておらず、かつ前記ネットワークへの前記接続が前記コンピューティングシステムに対して利用不可能中である場合に、前記ファイルのうちの前記要求されたファイルが利用不可能であることを示す返信を前記プロセスに提供するステップ、
をさらに含む、付記20に記載の方法。
【0095】
22.前記アプリケーションは、前記携帯型メモリデバイスに格納され、前記方法は、前記データ通信リンクが前記携帯型メモリデバイスと前記コンピューティングシステムとの間で最初に確立されるときに、前記アプリケーションを前記コンピューティングシステムにインストールするステップをさらに含む、付記17に記載の方法。
【0096】
本開示の上述の実施形態が、本開示の原理を明確に理解するために記述される実装の単なる可能な例であることを強調されたい。本開示の精神および原理から実質的に逸脱することなく、多くの変形および修正を上述の実施形態に加えてもよい。全てのこのような修正および変形は、本開示の範囲内で本明細書に含まれ、かつ以下の請求項によって保護されるように意図される。
【0097】
関連案件の相互参照
本出願は、2011年3月29日に出願された出願番号第13/074,325号の「LOCAL STORAGE LINKED TO NETWORKED STORAGE SYSTEM」と題する米国出願に基づく優先権および利益を主張し、この米国出願は、参照によりその全体が本出願に組み込まれる。
図1
図2
図3
図4A
図4B
図4C
図4D
図5