(57)【特許請求の範囲】
【請求項１】
少なくとも１つのデータアイテムを記憶するためにリクエストをソースシステムから受信することと、
相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノードの間で前記少なくとも１つのデータアイテムを、前記ネットワークにおける二次記憶装置に記憶することなく、転送することと、を含む方法であって、前記転送された少なくとも１つのデータアイテムは前記ネットワークにおいてコンピュータシステムノードからコンピュータシステムノードへと継続的にルーティングされ、前記少なくとも１つのデータアイテムを取り出すリクエストが受信されると、取り出されることができ、前記転送することは、
前記１つ以上のデータアイテムの種類、ネットワークトラフィック解析、又は個別のノードの使用可能メモリの１つ以上に基づき、前記少なくとも１つのデータアイテムを受信することが可能なコンピュータシステムノードのアドレスを決定することと、
特定のコンピュータシステムノードの前記アドレスを有するメッセージを、前記ソースシステムに送信することと、
前記特定のコンピュータシステムノードにおける前記少なくとも１つのデータアイテムの存在を検出することと、
前記相互接続されたコンピュータシステムノードのネットワークにおける前記決定されたコンピュータシステムノードに前記少なくとも１つのデータアイテムを、前記二次記憶装置に記憶することなく、転送することを含む、
方法。
【請求項２】
それぞれのコンピュータシステムノードは、オフィス生産性スイートファイルデータの種類、音声ファイルデータの種類、視覚ファイルデータの種類、映像ファイルデータの種類、オブジェクト指向ファイルデータの種類又はデータベースファイルデータの種類を含む特定のデータの種類を取り扱うよう設計される、請求項１に記載の方法。
【請求項３】
ファイルのサイズ、ファイル使用頻度、ユーザ履歴、ユーザプリファランス、ユーザが支払うプレミアムのうちの１つ以上に基づき前記１つ以上のデータアイテムが転送されるコンピュータシステムノードの１つ以上の種類を決定することをさらに含む、請求項１に記載の方法。
【請求項４】
ユーザプリファランス、ファイル使用、ユーザが支払うプレミアムの１つ以上に基づきデータアイテムをより遅い又はより速いコンピュータシステムノードにシフトすることをさらに含む、請求項１に記載の方法。
【請求項５】
前記相互接続されたコンピュータシステムノードのネットワークが、１つ以上のプライベートコンピュータシステムノード及び１つ以上のパブリックコンピュータシステムノードを含む、請求項１に記載の方法。
【請求項６】
前記データアイテムの種類又はユーザプリファランスに基づき、前記プライベートコンピュータシステムノード又は前記パブリックコンピュータシステムノードの間で前記１つ以上のデータアイテムを選択的に転送することをさらに含む、請求項５に記載の方法。
【請求項７】
前記１つ以上のデータアイテムの種類を決定することと、
前記１つ以上のデータアイテムが第１の種類であるとの決定に応じて、前記少なくとも１つのデータアイテムをプライベートネットワークのコンピュータシステムノードの間で転送することと、
前記１つ以上のデータアイテムが第２の種類であるとの決定に応じて、前記少なくとも１つのデータアイテムをパブリックネットワークのコンピュータシステムノードの間で転送することと、
をさらに含む、請求項１に記載の方法。
【請求項８】
パブリックネットワーク又はプライベートネットワークにおける前記１つ以上のデータアイテムの記憶についてのユーザプリファランスを決定することと、
前記決定されたユーザプリファランスに従い、プライベートネットワーク又はパブリックネットワークのコンピュータシステムノードの間で前記少なくとも１つのデータアイテムを転送することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
ネットワークシステムにオペレーションを実行させるプログラムを記録したコンピュータ読み取り可能なコンピュータ可読媒体であって、前記オペレーションが、少なくとも１つのデータアイテムを記憶するリクエストをソースシステムから受信することと、  相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノードの間で、前記少なくとも１つのデータアイテムを転送することと、を含むコンピュータ可読媒体であって、前記転送された少なくとも１つのデータアイテムは、前記ネットワークにおける二次記憶装置に記憶されることがなく、前記転送された少なくとも１つのデータアイテムは、前記ネットワークにおいてコンピュータシステムノードからコンピュータシステムノードへと継続的に経由され、前記転送された少なくとも１つのデータアイテムは、前記少なくとも１つのデータアイテムを取り出すリクエストが受信された場合、取り出すことが可能であり、前記転送することは、    前記１つ以上のデータアイテムの種類、ネットワークトラフィック解析又は個別のノードの使用可能メモリの１つ以上に基づき、前記少なくとも１つのデータアイテムを受信することが可能なコンピュータシステムノードのアドレスを決定することと、    特定のコンピュータシステムノードの前記アドレスを有するメッセージを、前記ソースシステムに送信することと、    前記特定のコンピュータシステムノードにおける前記少なくとも１つのデータアイテムの存在を検出することと、    前記相互接続されたコンピュータシステムノードのネットワークにおける前記決定されたコンピュータシステムノードに前記少なくとも１つのデータアイテムを転送することを含み、前記転送された少なくとも１つのデータアイテムは前記二次記憶装置に記憶されることがない、コンピュータ可読媒体。
【請求項１０】
それぞれのコンピュータシステムノードは、オフィス生産性ファイルデータの種類、音声ファイルデータの種類、視覚ファイルデータの種類、映像ファイルデータの種類、オブジェクト指向ファイルデータの種類又はデータベースファイルデータの種類を含む特定のデータの種類を取り扱うよう設計される、請求項９に記載のコンピュータ可読媒体。
【請求項１１】
ファイルのサイズ、ファイル使用頻度、ユーザ履歴、ユーザプリファランス、ユーザが支払うプレミアムの１つ以上に基づき前記１つ以上のデータアイテムが転送されるコンピュータシステムノードの１つ以上の種類を決定することをさらに含む、請求項９に記載のコンピュータ可読媒体。
【請求項１２】
少なくとも１つのデータアイテムを記憶するリクエストをソースシステムから受信するための手段と、
相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノードの間で前記少なくとも１つのデータを転送するための手段と、を含むコンピュータシステムであって、前記転送された少なくとも１つのデータアイテムは前記ネットワーク内の二次記憶装置に記憶されることがなく、前記転送された少なくとも１つのデータアイテムは、前記ネットワークにおいてコンピュータシステムノードからコンピュータシステムノードへと継続的に経由され、前記少なくとも１つのデータアイテムは、前記少なくとも１つのデータアイテムを取り出すリクエストが受信されると、取り出されることができ、前記転送するための手段は、
前記１つ以上のデータアイテムの種類、ネットワークトラフィック解析、又は個別のノードの使用可能メモリの１つ以上に基づき、前記少なくとも１つのデータアイテムを受信することが可能なコンピュータシステムノードのアドレスを決定するための手段と、
特定のコンピュータシステムノードの前記アドレスを有するメッセージを、前記ソースシステムに送信するための手段と、
前記特定のコンピュータシステムノードにおける前記少なくとも１つのデータアイテムの存在を検出するための手段と、
前記相互接続されたコンピュータシステムノードのネットワークにおける前記決定されたコンピュータシステムノードに前記少なくとも１つのデータアイテムを転送するための手段と、を含み、前記転送された少なくとも１つのデータアイテムは前記二次記憶装置に記憶されることがない、コンピュータシステム。
【請求項１３】
個別のコンピュータシステムノードは、オフィス生産性スイートファイルデータの種類、音声ファイルデータの種類、視覚ファイルデータの種類、映像ファイルデータの種類、オブジェクト指向ファイルデータの種類又はデータベースファイルデータの種類を含む特定のデータの種類を取り扱うよう設計される、請求項１２に記載のコンピュータシステム。
【請求項１４】
ファイルのサイズ、ファイル使用頻度、ユーザ履歴、ユーザプリファランス、ユーザが支払うプレミアムの１つ以上に基づき前記１つ以上のデータアイテムが転送されるコンピュータシステムノードの１つ以上の種類を決定することをさらに含む、請求項１２に記載のコンピュータシステム。
【請求項１５】
ユーザプリファランス、ファイル使用、ユーザが支払うプレミアムの１つ以上に基づきデータアイテムをより遅い又はより速いコンピュータシステムノードにシフトすることをさらに含む、請求項１２に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[001]  本明細書に開示する少なくともいくつかの実施形態は、データストレージに関し、特に、選択的なデータ転送ストレージに関する。
【０００２】
[002]  個人、組織、企業及び政府機関が保存しなくてはならないデータの量は年々増え続けている。需要に応じ続けることに加え、組織はストレージについてのその他の困難に直面している。企業及び政府機関のオンライン、リアルタイムへの移行に伴い、重要なデータをソフトウェア又はハードウェアの故障による損失又はアクセス不能から保護しなくてはならない。現在では、多くのストレージ製品は、完全な故障保護を提供せず、ユーザをデータ損失及びデータ利用不能のリスクに曝している。例えば、現在市場に出ているストレージソリューションは、プロセッサ故障といった、いくつかの故障モードに対する保護は提供するが、ディスクドライブ故障などのその他の故障に対する保護は提供していない。多くの組織が、データストレージシステムにおける構成要素の故障によるデータ損失又はデータ利用不能のリスクに曝されている。
【０００３】
[003]  データストレージの市場は通常２つの主な区分、すなわち、ダイレクトアタッチドストレージ（ＤＡＳ）及びネットワークストレージに分けられる。ＤＡＳは、サーバに直接接続されたディスクを含む。
【０００４】
[004]  ネットワークストレージは、特定のサーバではなくネットワークに付加され、そのネットワーク上の他の装置及びアプリケーションによってアクセスされ共有されることができるディスクを含む。ネットワークストレージは、通常、２つの区分、すなわち、ストレージエリアネットワーク（ＳＡＮ）及びネットワーク接続ストレージ（ＮＡＳ）に分けられる。
【０００５】
[005]  ＳＡＮは、ユーザのより大きなネットワークに代わって、異なる種類のデータ記憶装置と、関連付けられたデータサーバとを相互接続する高速特殊目的ネットワーク（又はサブネットワーク）である。通常、ＳＡＮは、企業にとってコンピューティング資源の全体的なネットワークの一部である。ストレージエリアネットワークは、通常、他のコンピューティング資源の近傍でクラスタ化されるが、広域（ＷＡＮ）ネットワークキャリア技術を使用して、バックアップ及びアーカイブストレージのために遠隔位置まで拡張しうる。
【０００６】
[006]  ＮＡＳは、ネットワークのワークステーションのユーザにアプリケーションを提供するローカルコンピュータに付加されるのではなく、自らのネットワークのアドレスでセットアップされるハードディスクストレージである。ストレージアクセス及び管理をローカルサーバーから取り除くことで、アプリケーションプログラミング及びファイルの両方が同一のプロセッサ資源について競合しないため、これらはより早く提供されることができる。ＮＡＳは、ローカルエリアネットワーク（通常、イーサーネットネットワーク）に付加され、ＩＰアドレスが割り当てられる。ファイルリクエストは、メインサーバによってＮＡＳファイルサーバにマップされる。
【０００７】
[007]  上述の全ては、多様な態様でアキレス腱となりうる共通の特徴を有している。すなわち、ディスクドライブ、ＣＤドライブなどといった物理的媒体にデータが記憶されているという点である。
【発明の概要】
【０００８】
[008]  本発明は、選択的データ転送ストレージのための、コンピュータプログラム製品を含む方法及び装置を提供する。
【０００９】
[009]  通常、一態様では、本発明は、相互接続されたコンピュータシステムノードのネットワークであって、それぞれのコンピュータシステムノードが、データの種類、比較的高レベルの暗号化プロトコル、その他の因子、又はこれらの組合せ、及びソースシステムからのデータを記憶するリクエストの受信のうち１つに基づき、ポイントからポイントへとデータを転送するよう構成された、コンピュータシステムノードのネットワークを特徴とする。本方法はさらに、相互接続されたコンピュータノードのネットワーク内の物理的記憶装置に記憶することなく、ネットワーク内の１つのコンピュータメモリから別のコンピュータメモリへとデータを連続的に転送することを含む。連続的転送は、ポイントからポイントへと転送されるデータを受信することが可能なノードのアドレスを決定することと、リクエスタのためにデータを転送するよう特定のノードのアドレスを有するソースシステムにメッセージを送信することを含む。本方法はさらに、特定のノードのメモリにおけるデータの存在を検出することと、物理的記憶装置に記憶することなく、相互接続されたコンピュータシステムノードのネットワークにおけるノードの別のコンピュータメモリにデータを転送することを含む。
【００１０】
[0010]  以下の１つ以上の特徴もまた多様な実施形態に含まれる。ノードは、オフィス生産性スイートファイルデータの種類、音声ファイルデータの種類、視覚ファイルデータの種類、映像ファイルデータの種類、オブジェクト指向ファイルデータの種類又はデータベースファイルデータの種類を含む特定のデータの種類を取り扱うよう設計されることができる。因子は、ネットワークトラフィック解析及び使用可能メモリを含むことができる。本方法は、相互接続されたコンピュータシステムノードのネットワークにおいて連続的に転送されているデータを取り出すリクエストをソースシステムから受信すること及び、データを取り出すリクエストに応じてノードメモリからデータを取り出すことをさらに含むことができる。取り出すことは、ノードメモリに到達しているデータを表すハッシュマークを使用して、中央サーバにおいてデータリクエストの突合せを行うことと、メモリ内にデータを有すると予測されるノードに対して、メモリ内のデータをリクエスタに転送するようノードに命令するメッセージを送信することと、データがリクエスタに転送された旨の確認メッセージを中央サーバに送信することとを含むことができる。本方法はさらに、ファイルの種類によってノードの種類を分割することと、ファイルサイズによってノードの種類を決定することと、ファイルの使用頻度、ユーザ履歴又はこの組合せのうち１つによってノードの種類を決定することと、ユーザプリファランス、ユーザが支払うプレミアム又はこれらの組合せのうち１つによってノードの種類を決定することと、ユーザプリファランス、ファイル使用、ユーザが支払うプレミアム又はこれらの組合せの１つに基づきファイルをより遅い又はより速いノード状態にシフトすることとを含むことができる。
【００１１】
[0011]  別の態様では、本発明は、相互接続されたコンピュータシステムノードのネットワークのコンピュータメモリにおいデータを記憶し、取り出すためのコンピュータ可読媒体において実体的に具現化されるコンピュータプログラム製品を特徴とする。コンピュータシステムノードは、データをポイントからポイントへと転送するよう構成されることができる。コンピュータプログラム製品は、データ処理装置に、相互接続されたコンピュータシステムノードのネットワークと通信して、データを記憶するリクエストをソースシステムから受信させることができる。データ処理装置は、データの種類、比較的高レベルの暗号化プロトコル、その他の因子、又はこれらの組合せの１つに基づき、ネットワークにおける物理的記憶装置に記憶することなく、ネットワークにおける１つのコンピュータメモリから別のコンピュータメモリへとデータを連続的に転送させることができる。データの連続的転送は、ポイントからポイントへと転送されるデータを受信することが可能なノードのアドレスを決定することと、リクエスタのためにデータを転送するよう特定のノードのアドレスを有するソースシステムにメッセージを送信することと、特定のノードのメモリにおけるデータの存在を検出することと、物理的記憶装置に記憶することなく、相互接続されたコンピュータシステムノードのネットワークにおけるノードの別のコンピュータメモリにデータを転送することを含むことができる。
【００１２】
[0012]本発明の１つ以上の実施の詳細が、以下の添付の図面及び説明において記載される。本発明のさらなる特徴、態様及び利点は、説明、図面及びクレームから明らかとなろう。
【図面の簡単な説明】
【００１３】
[0013]  実施形態は、例示目的のめに説明されており、同様の参照符号が同様の要素を示す添付の図面における絵図に限定されない。
【００１４】
【図１】[0014]  図１は、例示的なネットワークのブロック図である。
【図２】[0015]  図２は、例示的なユーザシステムのブロック図である。
【図３】[0016]  図３は、例示的なネットワークシステムのブロック図である。
【図４】[0017]  図４は、プロセスのフロー図である。
【図５】[0018]  図５は、プロセスのフロー図である。
【発明を実施するための形態】
【００１５】
[0019]  本発明は、ディスクドライブなどの物理的媒体にデータが最終的に記憶されるように、一時的な態様でデータ転送を使用するピアツーピアネットワークとは異なり、データが１つのノードメモリから別のノードメモリへと連続的に転送されることによって記憶される、連続データ転送システムである。
【００１６】
[0020]  図１に示すとおり、例示的なネットワーク１０は、ユーザシステム１２及びシステム１４、１６、１８、２０、２２といった複数のネットワークシステムを含む。ネットワークシステム１４、１６、１８、２０、２２のそれぞれは、一実施形態では、ネットワーク１０におけるノードとみなされることができる。さらに、ネットワークシステム１４のようなネットワークシステムは、中央サーバとして指定され、ネットワーク１０における制御位置を引きつけるであろう。ノード１４、１６、１８、２０、２２のそれぞれは、中央サーバ１４の直接制御のもとプライベートに制御されたピア間のネットワークとして確立されうる。ネットワーク１０はまた、中央サーバ１４（又は複数のサーバ）が任意のノードの直接の所有権又は直接の物理的支配を有さない場合、完全にパブリックでありうる。あるいは、ノードは、プライベート及びパブリックのノードの混合であってもよく、それゆえ、中央サーバ１４の直接の物理的制御下にない。
【００１７】
[0021]  プライベートに制御されたネットワークとして、ユーザは、加入サービス又は他の契約を介してピアノードへの無料アクセス又は有料アクセスを有しうる。混合の環境、すなわち、プライベートとパブリックのノードの組合せを有するネットワークでは、中央サーバは、データがプライベートネットワーク又はパブリックネットワークのいずれに転送されるべきかを指示することができる。一例では、中央サーバ１４は、データの種類を特定し、特定した種類に応じてプライベートネットワーク又はパブリックネットワークにデータを転送する。例えば、映像又は音声を表すデータは、パブリックネットワークへと送信されることができ、一方、文書（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄ文書）を表すデータは、プライベートネットワークへと送信されうる。
【００１８】
[0022]  別の例では、中央サーバ１４は、ユーザが所有するデータをどこへ転送するか、すなわち、プライベートネットワーク又はパブリックネットワークへ転送するかをユーザに選択させる。
【００１９】
[0023]  一例では、ノード１４、１６、１８、２０及び２２は、プライベートネットワークとしてみなされうる。プライベートネットワークでは、管理者がノードを制御し、いずれのノードを中央サーバとするか決定しうる。システム１０はまた、管理者がわずかしか又は一切制御権を有さない１つ以上のパブリックネットワークの一部とみなされうる１つ以上の追加的なノードを含むこともできる。ノードがプライベート及びパブリックノードの混合であってもよいそのような実施形態では、プライベートノード、又はノード状態は、中央サーバによって依然として制御されることができることを理解されたい。しかしながら、そのような中央サーバは封鎖システムを実行するプライベートな所有者の制御下にありうる。
【００２０】
[0024]  図２に示すとおり、ユーザシステム１２は、プロセッサ３０、メモリ３２及び入力／出力（Ｉ／Ｏ）装置３４を含むことができる。メモリ３２は、一実施形態では、以下に詳述する、Ｌｉｎｕｘ、Ａｐｐｌｅ（登録商標）ＯＳ又はＷｉｎｄｏｗｓ（登録商標）などのオペレーティングシステム（ＯＳ）３６、１つ以上のアプリケーションプロセス３８及びストレージプロセス１００を含むことができる。本発明の一実施形態に従うと、アプリケーションプロセス３８は、ＯｐｅｎＯｆｆｉｃｅ又はＭｉｃｒｏｓｏｆｔ（登録商標）Ｏｆｆｉｃｅなどのユーザ生産性ソフトウェアを含むことができる。一方、Ｉ／Ｏ装置３４は、グラフィカルユーザインターフェース（ＧＵＩ）をユーザ４２への表示のために含むことができる。
【００２１】
[0025]  図３を参照すると、ネットワークシステム１４などのネットワークシステムのそれぞれは、プロセッサ５０及びメモリ５２を含むことができる。メモリ５２は、一実施形態では、Ｌｉｎｕｘ、Ａｐｐｌｅ（登録商標）ＯＳ又はＷｉｎｄｏｗｓ（登録商標）などのＯＳ５４を含むことができる。メモリ５２はさらに、以下に詳述する、データ転送プロセス２００を含むことができる。
【００２２】
[0026]  従来のシステムでは、アプリケーションプロセス３８は、データを記憶し、データを取り出す必要がある。これらの従来のシステムでは、データは、ローカル又は遠隔の物理的装置に記憶される。いくつかのシステムでは、このデータは、異なるピース又はパケットに分割され、ストレージの物理的媒体においてローカルに又は遠隔に記憶される。しかしながら、固定の物理的データ記憶装置を使用することは、ユーザ４２の望むところであろうとなかろうと、費用、維持、管理を増大させ、データの固定物理的記録を作成する。
【００２３】
[0027]  本発明は、従来のシステムとは違って、データを記憶するために固定物理的データストレージを使用しない。例えば、データを記憶するリクエストがストレージプロセス１００から中央サーバ１４によって受信されると、データは、ネットワーク１０にあるノードに誘導されることができ、データは、その後、ディスクドライブなどの物理的記憶装置媒体に記憶されることなく、ネットワークノード１４、１６、１８、２０、２２のそれぞれにあるデータ転送プロセス２００により、ネットワーク１０内のノードメモリからノードメモリへと連続的に転送される。転送されたデータは、ネットワーク１０内の任意のノード１４、１６、１８、２０、２２のメモリにはごくわずかな時間しか存在しない。データは、いかなるネットワークノードの物理的ストレージ媒体においても記憶されないことを理解されたい。
【００２４】
[0028]  さらに、データを記憶するリクエストが受信されると、その所有権及び／又はデータの種類が、中央サーバ１４によって管理される記憶内のエントリと照合されることができる。例えば、有料加入者によって所有されるデータは、ノードメモリからノードメモリ及び／又はオフィス生産性ファイルデータの種類、音声ファイルデータの種類、視覚ファイルデータの種類、映像ファイルデータの種類、オブジェクト指向ファイルデータの種類及び／又はデータベースファイルデータの種類のような特定のデータの種類へと転送されうる。それゆえ、データ転送は、所有権及び／又は種類に基づき選択的である。特定のユーザは、ノードメモリからノードメモリへとデータを転送させることができ、及び／又はデータの特定の種類は、ノードメモリからノードメモリへと転送されることができる。記憶内のエントリは、追加、修正又は削除することができ、これは、データをノードメモリからノードメモリへと選択的に転送することにより柔軟性を与えている。そのような記憶は、中央サーバ１４においてローカルに存在することでき、又は、ディスクドライブなどの物理的ストレージ媒体において記憶されることなくノードメモリからノードメモリへと転送されることができる。所有権及びファイルの種類に加え、評価可能なその他のデータパラメタは、ファイルサイズ、ファイル使用頻度、ユーザ履歴、ユーザプリファランス、及びユーザが支払うプレミアを含む。
【００２５】
[0029]  同様に、データを取り出すリクエストがストレージプロセス１００から中央サーバ１４によって受信されると、ネットワーク１０内のノードメモリからノードメモリへと転送されているリクエストされたデータが取り出される。
【００２６】
[0030]  この態様で転送されたデータは、分割されることができ、結果として得られるデータの部分は上に記述のとおり転送される。特に、分割されたデータは、いかなるネットワークノードの物理的ストレージ媒体において記憶されず、１つのノードのメモリから、別のノードのメモリに転送されているのみである。
【００２７】
[0031]  図４を参照すると、ストレージプロセス１００は、一実施形態では、データを記憶する又は取り出すリクエストをネットワークシステム１４といった中央サーバに送信すること（１０２）を含む。リクエストがデータ取り出しリクエストであるとき、ストレージプロセス１００は、リクエストされたデータを中央サーバ１４又はネットワーク上のノードから受信する。
【００２８】
[0032]  中央サーバ１４へのリクエストが、データ記憶リクエストであり、データの所有権及び／又は種類が記憶内の対応するエントリと一致する場合、ストレージプロセス１００は、中央サーバ１４からノードのアドレスを受信し（１０４）、受信したアドレスによって表されるノードメモリにデータを転送する（１０６）。
【００２９】
[0033]  図５に示すように、データ転送プロセス２００は、データを記憶する又は取り出すリクエストを受信する（２０２）ことを含む。受信したリクエストが、データを記憶するリクエストであるとき、データ転送プロセス２００は、データ所有権及び／又は種類が記憶内のエントリと一致するかどうか決定する（２０３）。データ所有権及び／又は種類がメモリ内のエントリと一致する場合、プロセス２００は、メモリ内にデータを受信することが可能なノードのアドレスを決定する（２０４）。この決定（２０４）は、ネットワークのピングを行うこと（pinging）及びネットワーク上のいずれのノードが使用可能であるか決定すること、又は、ネットワーク上のいずれのノードが最もトラフィックが少ないかを決定すること、又は、ネットワーク上のいずれのノードが最も大きい使用可能メモリを有するかを決定すること、若しくは、これらの又は他の因子の組合せを含むことができる。
【００３０】
[0034]  プロセス２００は、その後、リクエスタのためにデータを転送するよう特定のノードのアドレスを有するメッセージを、ユーザシステムに送信することができる（２０６）。
【００３１】
[0035]  プロセス２００は、次に、ノードメモリ内のデータの存在を検出する（２０８）。プロセス２００は、メモリ内のデータをノードのネットワーク上の別のノードに転送し（２１０）、データの検出（２０８）及びデータのノードメモリからノードメモリへの転送（２１０）を繰り返すことを継続する。データが任意のノードメモリに到達すると、プロセス２００は、データにタイムスタンプを押印する（２１２）。
【００３２】
[0036]  転送（２１０）は、一実施形態では、ネットワーク上のいずれのノードが使用可能であるか決定するためにネットワーク１０上のノードのピングを行うこと、又は、ネットワーク上のいずれのノードが最もトラフィックが少ないかを決定すること、又は、ネットワーク上のいずれのノードが最も大きい使用可能メモリを有するかを決定すること、若しくは、これらの又は他の因子の組合せを含むことができる。
【００３３】
[0037]  １つの特定の例では、ノードに到達する際、データは、ノード若しくは中央サーバ１４又はユーザと暗号化された「ハンドシェーク」が行われる。これは、パブリック-プライベートキーを使用することができるカシミヤシステム（the Cashmere system）などのパブリック又はプライベート暗号化システムでありうる。暗号化システムは、暗号化された転送パス及びメッセージペイロードを切り離し、これにより、ソースが目的地に一意的なパブリックキーを使用する各メッセージに単一のパブリックキー暗号化を実施しさえすればよいので、性能を向上させることになる。これには、対応するリレーグループ内のノードのそれぞれでなく、真の目的地ノードのみが、メッセージペイロードを復号化することができるという利点がある。暗号化システムは、目的地がソースの身元を知ることなく匿名の返信メッセージを送信することができるという能力を提供する。これは、転送パスと同様の態様でソースが、返信パスを作成し、それを復号化する場合と同様の態様でなされることができる。
【００３４】
[0038]  別の例では、他のルーティングスキームが使用されうる。上に挙げたルーティングスキームの任意の組合せも使用されてよい。
【００３５】
[0039]  受信したリクエストが、ノードメモリからノードメモリへと連続的に転送されているデータの取り出しであるとき、データ転送プロセス２００は、暗号化ハンドシェークを介してデータがノードに到達する際にノードによって「傍受される（sniffed）」ことができるハッシュマーク又は他の一意的なコードを使用して中央サーバ１４におい突合せを行う（２１４）。これは、ネットワーク１０内のノードのピングを行うことで生じることができる。プロセス２００は次いで、ノード又は中央サーバ１４がデータがありそうだと判断するノード状態に対して直接、データをユーザに返却するようメッセージを送信する（２１６）。中央サーバがピングを行うノード状態を限定するほど、取り出しはより効率的になり、中央サーバとデータを転送できるノードとの間のトランザクションに必要のないノードへの不要なメッセージトラフィックによる負荷を減らすことになる。
【００３６】
[0040]  的確なノードが、ノードメモリ内のデータをリクエスタに転送するメッセージを受信すると、プロセス２００は、ノードメモリにおいてデータをリクエスタへ転送し（２１８）、ユーザにデータが送信された旨の確認メッセージを転送する（２２０）。このルーティングメッセージは、中央サーバ１４に直接送信されてもよく、又は、中央サーバ１４又は複数のサーバに、ネットワーク10内の他のノード又はスーパーノードを介して受け渡してもよい。要求されたデータのユーザ受信により、ユーザのアプリケーションは、要求されたデータが受信されたことを確かめるために、中央サーバ１４のピングを自動的に行う。このように、ネットワーク１０は、物理的ストレージ媒体においてデータをキャッシュ、ダウンロード及び／又は記憶することなく、データストレージを作成する。データストレージ及び管理は、ノードメモリからノードメモリへの連続的なデータのルーティングによって達成されることができ、転送されたデータは、ユーザがデータをネットワーク１０からユーザに返却するよう要求したときにのみダウンロードされる。
【００３７】
［0041］  新しいノード又はノード状態は、性能に応じてネットワーク１０に追加及び／又は削除される。ユーザは、全てのノードにアクセス可能であるか、又は、中央サーバ（又は複数のサーバ）によって又はプライベート、パブリック又はプライベート-パブリックネットワークの特定のアーキテクチャを介して、特定のノード又は「ノード状態」に分割されうる。
【００３８】
［0042］  個別のノード、ノード状態、スーパーノードはまた、パブリック又はプライベートネットワーク内のエクストラネットピア、ワイヤレスネットワークピア、サテライトピアノード、Ｗｉ−Ｆｉピアノード、ブロードバンドネットワークなどでありうる。ピアノード又はユーザは、ワイヤレスピアのためのワイヤレス暗号化スキームといった、同様のセキュリティシステム及び厳格な特定の配置に好適なカスタムソリューションを採用する有効なピアポイントからネットワーク１０内のルーティング参加者として使用されうる。
【００３９】
［0043］  プロセス２００では、データは、リモートサーバ、ハードドライブ又は他の固定ストレージ媒体においてデータをキャッシュ又は保持されるのではなく、ノードメモリからノードメモリへと受け渡され、経由され、又は転送されることができる。転送されたデータは、許可されたユーザがデータの呼び出しを行わない限り、決してダウンロードされない。一実施形態では、システム上のユーザは、データへのアクセスを１人以上のユーザに許可しうる。
【００４０】
［0044］  プロセス２００における主要な目的は、データが物理的ストレージに決して固定されることなく、しかしネットワーク上のノードメモリからノードメモリへと連続的に経由／転送されるデータストレージ及び管理システムを作成することである。データが転送されるノードへのパスはまた、中央サーバ１４によってシステムの容量を調節するため、この特徴がなくてはデータパスの増加した確率によってネットワークのセキュリティを弱化させうる重複したデータパスを除去するために変更されることもできる。
【００４１】
［0045］  本発明は、以下の利点の１つ以上を実現するために実施されることができる。ネットワークは、キャッシュ又はダウンロードすることなく、データストレージを作成する。データストレージ及び管理は、データの継続的なルーティングによって達成される。
【００４２】
［0046］  本発明の実施形態は、デジタル電子回路、又はコンピュータハードウェア、ファームウェア、ソフトウェア又はこれらの組合せにおいて実施されることができる。本発明の実施形態は、コンピュータプログラム製品として、すなわち、例えばプログラム可能プロセッサ、コンピュータ又は複数のコンピュータなどのデータ処理装置によって実行されるため、又はこれらのオペレーションを制御するための、情報担体、例えば機械可読な記憶装置に具現化されるコンピュータプログラムとして実施できる。コンピュータプログラムは、コンパイルされた言語又は解釈された言語を含むプログラム言語の任意の形式で書き込まれることができ、スタンドアロンプログラム又は、モジュール、コンポーネント、サブルーティン若しくはコンピューティング環境での使用に好適なその他の装置としての形態を含む、任意の形態で配置されることができる。コンピュータプログラムは、１つのサイトにおいて又は複数のサイトにわたり配布され、コミュニケーションネットワークによって相互接続された１つのコンピュータ又は複数のコンピュータにおいて実行されるよう配置されることができる。
【００４３】
［0047］  本発明の実施形態の方法ステップは、入力データにおいて実行し、出力を作成することによって本発明の機能を実行するためのコンピュータプログラムを実行する１つ以上のプログラム可能なプロセッサによって実行されることができる。方法ステップはまた、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）といった特殊目的論理回路によって実行されることができ、本発明の装置は、これとして実施されることができる。
【００４４】
[0048]  コンピュータプログラムの実行のための好適なプロセッサは、例えば、汎用及び特殊目的マイクロプロセッサ、及び任意の種類のデジタルコンピュータの１つ以上のプロセッサを含む。一般に、プロセッサは、読み出しメモリ又はランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの主要な構成要素は、命令を実行するためのプロセッサ及び命令及びデータを記憶するための１つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば、磁気ディスク、光磁気ディスク又は光学ディスクなどの、データを記憶するための１つ以上の大量記憶装置を含み、これからデータを受信するか、これにデータを転送するか又はその両方を行うよう動作可能に結合される。コンピュータプログラム命令及びデータを具現化するために好適な情報担体は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス、例えば内部ハードディスク又は取り外し可能なディスクなどの磁気ディスク、光磁気ディスク及びＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクなどの半導体メモリデバイスを含む、全ての形態の非揮発性メモリを含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されるか又はこれにおいて組み込まれることができる。
【００４５】
[0049]  上述の記載は、添付のクレームによって画定される本発明の範囲を説明するよう意図されており、これを限定するようには意図されていない。他の実施形態は、以下のクレームの範囲内にある。
【図１】
0005526137.tif 000002
【図２】
0005526137.tif 000003
【図３】
0005526137.tif 000004
【図４】
0005526137.tif 000005
【図５】
0005526137.tif 000006