(57)【特許請求の範囲】
【請求項１】
少なくとも１つのデータ項目を記憶する要求を送信元システムから受信するステップと、
前記少なくとも１つのデータ項目を分解するステップと、
前記送信元システムからの前記要求の受信に応じて、前記分解された少なくとも１つのデータ項目を、前記ネットワークにおけるどんな固定記憶媒体にも記憶せず、相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノード間で転送するステップであって、前記転送される少なくとも１つのデータ項目が、前記ネットワーク内でコンピュータシステムノードからコンピュータシステムノードに継続的にルーティングされ、前記少なくとも１つのデータ項目が、前記データを検索する要求に応じて、検索のために利用可能である、ステップと、
を含む方法であって、前記転送するステップが、
ネットワークトラフィック解析および利用可能なメモリのうち少なくとも１つを含む１つまたは複数の要因に基づいて、前記分解された少なくとも１つのデータ項目を受信するために利用可能なコンピュータシステムノードのアドレスを決定するステップと、
前記分解された少なくとも１つのデータ項目を転送するために前記送信元システム用の特定のコンピュータシステムノードのアドレスとともにメッセージを前記送信元システムに送信するステップと、
前記特定のコンピュータシステムノードにおいて前記分解された少なくとも１つのデータ項目の存在を検出するステップと、
前記分解された少なくとも１つのデータ項目を、どんな固定記憶媒体にも記憶せず、前記相互接続されたコンピュータシステムノードのネットワークにおける別のコンピュータシステムノードに転送するステップと、
を含み、
前記検索するステップが、
コンピュータシステムノードに入る前記分解された少なくとも１つのデータ項目を表すハッシュマークを用いて、前記データ要求を中央サーバにおいてマッチングするステップと、
前記分解された少なくとも１つのデータ項目を有すると予想されるコンピュータシステムノードにメッセージを送信することであって、前記メッセージが、前記分解された少なくとも１つのデータ項目を再構築して、前記再構築された少なくとも１つのデータ項目を前記送信元システムへ転送するように前記コンピュータシステムノードに命令するステップと、
前記再構築された少なくとも１つのデータ項目が前記送信元システムに転送されたという確認メッセージを前記中央サーバに送信するステップと、
を含む方法。
【請求項２】
前記相互接続されたコンピュータシステムノードのネットワークにおいて転送されている前記分解された少なくとも１つのデータ項目を検索する要求を前記送信元システムから受信するステップと、
前記少なくとも１つのデータ項目を検索する前記要求に応じて、前記分解された少なくとも１つのデータ項目をコンピュータシステムノードから検索するステップと、
前記検索された、分解された少なくとも１つのデータ項目から、前記少なくとも１つのデータ項目を再構築するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記分解された少なくとも１つのデータ項目のそれぞれがパケットである、請求項１に記載の方法。
【請求項４】
前記分解された少なくとも１つのデータ項目のそれぞれがファイルセグメントである、請求項１に記載の方法。
【請求項５】
少なくとも１つのデータ項目を記憶する要求を送信元システムから受信するステップと、
前記少なくとも１つのデータ項目を分解するステップと、
前記送信元システムからの前記要求の受信に応じて、前記分解された少なくとも１つのデータ項目を、前記ネットワークにおけるどんな固定記憶媒体にも記憶せず、相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノード間で転送するステップであって、前記転送される少なくとも１つのデータ項目が、前記ネットワーク内でコンピュータシステムノードからコンピュータシステムノードに継続的にルーティングされ、前記少なくとも１つのデータ項目が、前記データを検索する要求に応じて、検索のために利用可能である、ステップと、
を含む動作をデータ処理装置に実行させるための命令を含むコンピュータ可読媒体であって、前記転送するステップが、
ネットワークトラフィック解析および利用可能なメモリのうち少なくとも１つを含む１つまたは複数の要因に基づいて、前記分解された少なくとも１つのデータ項目を受信するために利用可能なコンピュータシステムノードのアドレスを決定するステップと、
前記分解された少なくとも１つのデータ項目を転送するために前記送信元システム用の特定のコンピュータシステムノードのアドレスとともにメッセージを前記送信元システムに送信するステップと、
前記特定のコンピュータシステムノードにおいて前記分解された少なくとも１つのデータ項目の存在を検出するステップと、
前記分解された少なくとも１つのデータ項目を、どんな固定記憶媒体にも記憶せず、前記相互接続されたコンピュータシステムノードのネットワークにおける別のコンピュータシステムノードに転送するステップと、
を含み、
前記検索するステップが、
コンピュータシステムノードに入る前記分解された少なくとも１つのデータ項目を表すハッシュマークを用いて、前記データ要求を中央サーバにおいてマッチングするステップと、
前記分解された少なくとも１つのデータ項目を有すると予想されるコンピュータシステムノードにメッセージを送信することであって、前記メッセージが、前記分解された少なくとも１つのデータ項目を再構築して、前記再構築された少なくとも１つのデータ項目を前記送信元システムへ転送するように前記コンピュータシステムノードに命令するステップと、
前記再構築された少なくとも１つのデータ項目が前記送信元システムに転送されたという確認メッセージを前記中央サーバに送信するステップと、
を含むコンピュータ可読媒体。
【請求項６】
前記動作が、
前記相互接続されたコンピュータシステムノードのネットワークにおいて転送されている前記分解された少なくとも１つのデータ項目を検索する要求を前記送信元システムから受信するステップと、
前記少なくとも１つのデータ項目を検索する前記要求に応じて、前記分解された少なくとも１つのデータ項目をコンピュータシステムノードから検索するステップと、
前記検索された、分解された少なくとも１つのデータ項目から、前記少なくとも１つのデータ項目を再構築するステップと、
をさらに含む、請求項５に記載のコンピュータ可読媒体。
【請求項７】
前記分解された少なくとも１つのデータ項目のそれぞれがパケットである、請求項５に記載のコンピュータ可読媒体。
【請求項８】
前記分解された少なくとも１つのデータ項目のそれぞれがファイルセグメントである、請求項５に記載のコンピュータ可読媒体。
【請求項９】
少なくとも１つのデータ項目を記憶する要求を送信元システムから受信するための手段と、
前記少なくとも１つのデータ項目を分解するための手段と、
前記分解された少なくとも１つのデータ項目を、前記ネットワークにおけるどんな固定記憶媒体にも記憶せず、相互接続されたコンピュータシステムノードのネットワークにおけるコンピュータシステムノード間で転送するための手段であって、前記転送される少なくとも１つのデータ項目が、前記ネットワーク内でコンピュータシステムノードからコンピュータシステムノードに継続的にルーティングされ、前記少なくとも１つのデータ項目が、前記データを検索する要求に応じて、検索のために利用可能である手段と、
を含む計算システムであって、前記転送するための手段が、
ネットワークトラフィック解析および利用可能なメモリのうち少なくとも１つを含む１つまたは複数の要因に基づいて、前記分解された少なくとも１つのデータ項目を受信するために利用可能なコンピュータシステムノードのアドレスを決定するための手段と、
前記分解された少なくとも１つのデータ項目を転送するために前記送信元システム用の特定のコンピュータシステムノードのアドレスとともにメッセージを前記送信元システムに送信するための手段と、
前記特定のコンピュータシステムノードにおいて前記分解された少なくとも１つのデータ項目の存在を検出するための手段と、
前記分解された少なくとも１つのデータ項目を、どんな固定記憶媒体にも記憶せず、前記相互接続されたコンピュータシステムノードのネットワークにおける別のコンピュータシステムノードに転送するための手段と、
コンピュータシステムノードに入る前記分解された少なくとも１つのデータ項目を表すハッシュマークを用いて、前記データ検索要求をマッチングするための手段と、
前記分解された少なくとも１つのデータ項目を有すると予想されるコンピュータシステムノードにメッセージを送信するための手段であって、前記メッセージが、前記分解された少なくとも１つのデータ項目を再構築して前記要求しているシステムへ転送するように前記コンピュータシステムノードに命令するための手段と、
前記再構築された少なくとも１つのデータ項目が前記要求しているシステムに転送されたという確認メッセージを受信するための手段と、
を含む計算システム。
【請求項１０】
前記分解された少なくとも１つのデータ項目のそれぞれがパケットである、請求項９に記載の計算システム。
【請求項１１】
前記分解された少なくとも１つのデータ項目のそれぞれがファイルセグメントである、請求項９に記載の計算システム。
【請求項１２】
前記相互接続されたコンピュータシステムノードのネットワークにおいて継続的に転送されている前記分解された少なくとも１つのデータ項目を検索する要求を前記送信元システムから受信するための手段と、
前記少なくとも１つのデータ項目を検索する前記要求に応じて、前記分解された少なくとも１つのデータ項目をコンピュータシステムノードから検索するための手段と、
前記検索された、分解された少なくとも１つのデータ項目から、前記少なくとも１つのデータ項目を再構築するための手段と、
をさらに含む、請求項９に記載の計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される少なくともいくつかの実施形態は、データ記憶に関し、特に、データ転送記憶における分解／再構築に関する。
【背景技術】
【０００２】
個人、組織、企業および政府が記憶しなければならないデータ量は、毎年増えている。単に要求に遅れずについていくことに加えて、組織は、他の記憶問題に直面する。オンライン上でのリアルタイムビジネスおよび政府への移行と共に、重要なデータを、ソフトウェアまたはハードウェア障害による損失またはアクセス不可能性から保護しなければならない。今日、多くのストレージ製品は、完全な障害保護を提供せず、データ損失または利用不可能性の危険にユーザをさらしている。例えば、今日市販されている多くのストレージソリューションは、プロセッサ障害などのいくつかの障害モードに対して保護を提供するが、しかしディスクドライブ障害などの他の障害に対しては提供しない。多くの組織が、そのデータ記憶システムにおけるコンポーネント障害ゆえのデータ損失またはデータ利用不可能性の危険にさらされている。
【０００３】
データ記憶市場は、典型的には、２つの主要な区分、すなわち直接接続ストレージ（ＤＡＳ）およびネットワークストレージに分割される。ＤＡＳには、サーバに直接接続されたディスクが含まれる。
【０００４】
ネットワークストレージにはディスクが含まれるが、これらのディスクは、特定のサーバではなくネットワークに接続され、さらに、そのネットワーク上の他の装置およびアプリケーションによってアクセスおよび共有することができる。ネットワークストレージは、典型的には、２つの区分、すなわちストレージエリアネットワーク（ＳＡＮ）およびネットワーク接続ストレージ（ＮＡＳ）に分割される。
【０００５】
ＳＡＮは、より大きなユーザネットワークのために、様々な種類のデータ記憶装置を関連データサーバと相互接続する高速な専用ネットワーク（またはサブネットワーク）である。典型的には、ＳＡＮは、企業用計算資源の全体的なネットワークの一部である。ストレージエリアネットワークは、通常、他の計算資源のすぐ近くに集められるが、しかしまた、ワイドエリア（ＷＡＮ）ネットワークキャリヤ技術を用いて、バックアップおよび保管記憶用に遠隔地に拡張してもよい。
【０００６】
ＮＡＳは、ネットワークのワークステーションユーザにアプリケーションを提供するローカルコンピュータに接続されるのではなく、それ自身のネットワークアドレスで設定されるハードディスクストレージである。記憶アクセスおよびその管理をローカルサーバから取り除くことによって、アプリケーションプログラミングおよびファイルの両方とも、より速くサービスすることができる。なぜなら、それらは、同じプロセッサ資源を求めて競合しないからである。ＮＡＳは、ローカルエリアネットワーク（典型的にはイーサネット（登録商標）ネットワーク）に接続され、かつＩＰアドレスを割り当てられる。ファイル要求は、メインサーバによってＮＡＳファイルサーバにマッピングされる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の全ては、１を超える点でアキレス腱になり得る１つの共通の特徴を共有する。すなわち、データが、ディスクドライブ、ＣＤドライブなどの物理的媒体に記憶されることである。
【０００８】
本発明は、データ転送記憶における分解／再構築のための、コンピュータプログラム製品を含む方法および装置を提供する。
【課題を解決するための手段】
【０００９】
一般に、一態様において、本発明は、データを記憶する要求を送信元システムから受信するステップと、データを分解するステップと、分解データをコンピュータメモリに送るステップと、分解データを、ネットワークにおけるどんな物理的記憶装置にも記憶せず、相互接続されたコンピュータシステムノードのネットワークにおける一コンピュータメモリから別のコンピュータメモリへ継続的に転送するステップと、を含む方法を特徴とする。継続的に転送するステップには、１つまたは複数の要因に基づいて、分解データを受信するために利用可能なノードのアドレスを決定するステップと、分解データを転送するために要求者用の特定のノードのアドレスを備えたメッセージを送信元システムに送信するステップと、特定のノードのメモリにおいて分解データの存在を検出するステップと、分解データを、どんな物理的記憶装置にも記憶せず、相互接続されたコンピュータシステムノードのネットワークにおけるノードの別のコンピュータメモリに転送するステップと、が含まれる。
【００１０】
別の態様において、本発明は、相互接続されたコンピュータシステムノードのグループを含むネットワークであって、各ノードが、要求しているシステムからの、データを記憶する要求に応じて、分解データを受信し、分解データを、どんな物理的記憶装置にも記憶せず、コンピュータメモリからコンピュータメモリに継続的に転送し、かつ要求しているシステムからの、データを検出する要求に応じて、コンピュータメモリからコンピュータメモリに継続的に転送されている分解データを検索し、各ノードが、さらに、そのメモリにおいて分解データの存在を検出し、タイムスタンプを施し、分解データを、ノードの利用可能性に従って、相互接続されたコンピュータシステムノードにおける別のノードのコンピュータメモリに転送するように構成されているネットワークを特徴とする。
【００１１】
本発明の１つまたは複数の実施の詳細は、添付の図面および以下の説明で述べる。本発明のさらなる特徴、態様および利点は、説明、図面および特許請求の範囲から明白になるであろう。
【００１２】
実施形態は、添付の図面の図において限定ではなく例として示され、図面における同様の参照符号は、同様の要素を示す。
【図面の簡単な説明】
【００１３】
【図１】例示的なシステムのブロック図である。
【図２】例示的なユーザシステムのブロック図である。
【図３】例示的なネットワークシステムのブロック図である。
【図４】プロセスの流れ図である。
【図５】プロセスの流れ図である。
【発明を実施するための形態】
【００１４】
データが結局はディスクドライブなどの物理的媒体に記憶される、過渡的な方法で（in a transient fashion）データ転送を用いるピアツーピアネットワークとは異なり、本発明は、継続的で冗長なデータ転送システムである。すなわち、データは、一ノードメモリから別のノードメモリにデータを継続的に転送することによって、記憶される。
【００１５】
図１に示すように、例示的なシステム１０には、ユーザシステム１２および多数のネットワークシステム１４、１６、１８、２０、２２が含まれる。ネットワークシステム１４、１６、１８、２０、２２のそれぞれは、システム１０におけるノードと見なすことができ、かつネットワークシステム１４など、１つのかかるネットワークシステムは、システム１０において制御位置を占めることができる中央サーバとして指定してもよい。ノード１４、１６、１８、２０、２２のそれぞれは、中央サーバ１４の直接制御下でプライベート制御ピアネットワークとして確立してもよい。ピアノードはまた、プライベートノードおよびパブリックノードの混合であってもよく、したがって、中央サーバ１４の直接的な物理的制御下になくてもよい。システム１０はまた、完全にパブリックであってもよく、この場合には、中央サーバ１４（または複数サーバ）は、ピアノードのいずれの直接的な所有権も直接的な物理的制御も有しない。
【００１６】
プライベート制御ネットワークとして、ユーザは、ピアノードへのフリーアクセスを有してもよく、または加入サービスもしくは他の取り決めを介して有料アクセスを有してもよい。混合環境、すなわちプライベートおよびパブリックノードの組み合わせを有するネットワークにおいて、中央サーバ１４は、データをプライベートネットワークまたはパブリックネットワークに転送すべきかどうかを命令することができる。一例において、中央サーバ１４は、データのタイプを識別し、識別されたタイプに従って、データをプライベートネットワークまたはパブリックネットワークに転送する。例えば、動画または音声ファイルを表すデータはパブリックネットワークに送信してもよく、一方で文書（例えば、Microsoft（登録商標）ワード文書）を表すデータは、プライベートネットワークに送信してもよい。
【００１７】
別の例において、中央サーバ１４は、ユーザが、ユーザ所有データをどこに転送すべきか、すなわちプライベートネットワークまたはパブリックネットワークに転送すべきかを選択できるようにする。
【００１８】
一例において、ノード１４、１６、１８、２０および２２は、プライベートネットワークと見なすことができる。プライベートネットワークにおいて、管理者は、ノードを制御し、どのノードが中央サーバであるかを指定してもよい。システム１０にはまた、１つまたは複数の追加ノードを含むことができる。例えばノード２４、２６および２８である。これらのノード２４、２６および２８は、管理者がほとんどまたは全く制御権を有しない１つまたは複数のパブリックネットワークの一部と見なしてもよい。
【００１９】
図２に示すように、ユーザシステム１２には、プロセッサ３０、メモリ３２、および入力／出力（Ｉ／Ｏ）装置３４を含むことができる。メモリ３２には、以下で詳細に説明するように、Linux、Apple（登録商標）ＯＳまたはWindows（登録商標）などのオペレーティングシステム（ＯＳ）３６、１つまたは複数のアプリケーションプロセス３８、および記憶プロセス１００を含むことができる。アプリケーションプロセス３８には、OpenOfficeまたはMicrosoft（登録商標）Officeなどのユーザ生産性ソフトウェアを含むことができる。Ｉ／Ｏ装置３４には、ユーザ４２に表示するためのグラフィカルユーザインタフェース（ＧＵＩ）４０を含むことができる。
【００２０】
図３に示すように、ネットワークシステム１４など、ネットワークシステムのそれぞれには、プロセッサ５０およびメモリ５２を含むことができる。メモリ５２には、以下で詳細に説明するように、Linux、Apple（登録商標）ＯＳまたはWindows（登録商標）などのＯＳ５４、およびデータ転送プロセス２００を含むことができる。
【００２１】
従来のシステムでは、アプリケーションプロセス３８は、データを記憶および検索する必要がある。これらの従来のシステムでは、データは、ローカルまたはリモートの物理的装置に記憶され、データのコピー（これらは、冗長性を提供するために用いられる）が、ローカルに、またはディスクドライブなどのリモートの物理的記憶装置に記憶される。いくつかのシステムでは、このデータは、異なる断片（pieces）またはパケットにセグメント化し、ローカルまたはリモートの物理的記憶媒体に記憶することができる。固定した物理的データ記憶装置の使用は、それがユーザ４２の要望であろうとなかろうと、コスト、メンテナンス、管理を追加し、データの、固定した物理的記録を生成する。
【００２２】
本発明は、データを記憶するための固定した物理的データ記憶装置を用いず、データ冗長性を提供するための物理的データ記憶装置を用いない。データを記憶する要求が、記憶プロセス１００から中央サーバ１４によって受信されると、データは、分解され、中央サーバ１４によってシステム１０におけるノードに送られ、次にそれは、ディスクドライブなどのどんな物理的記憶媒体にも記憶されることなく、ネットワークノードのそれぞれにおけるデータ転送プロセス２００によって、システム１０のノードメモリからノードメモリに継続的に転送される。転送された分解データは、システム１０における任意の一ノードのメモリに、非常に短い期間のみ常駐する。分解データ（および再構築データ）は、どんなネットワークノードのどんな物理的記憶媒体にも記憶されない。
【００２３】
上記のように、中央サーバ１４は、分解データを、プライベートネットワークおよびパブリックネットワーク、またはプライベートおよびパブリックネットワークの組み合わせに送ることができる。上記のように、要求者は、特定の一タイプのデータをプライベートネットワークに送り、一方で、別の特定のタイプのデータをパブリックネットワークに送るように中央サーバ１４に指示してもよい。パブリックネットワークに転送するために、要求者に加入料を支払うことを要求してもよい。中央サーバ１４はまた、転送されるデータを分解の前に解析し、例えば要求者のタイプまたは設定に依存して、データをプライベートまたはパブリックネットワークに送信することができる。
【００２４】
データを検索する要求が、記憶プロセス１００から中央サーバ１４によって受信されると、要求されたデータまたはデータのフラグメントまたはパケットが、システム１０においてノードメモリからノードメモリに転送されているが、検索され、必要に応じて再構築される。
【００２５】
このようにして転送されるデータは、上記のようにファイルフラグメントまたはパケットにセグメント化することができ、セグメントを転送することができる。セグメント化されたデータは、やはり、どんなネットワークノードのどんな物理的記憶媒体にも記憶されず、単に、一ノードのメモリから別のノードのメモリに転送されるだけである。
【００２６】
図４に示すように、記憶プロセス１００には、データを記憶または検索する要求を中央サーバ１４に送信すること（１０２）が含まれる。要求がデータ検索要求である場合には、記憶プロセス１００は、要求されたデータを構成するパケットまたはファイルフラグメントの再構築後に、ネットワークにおける中央サーバ１４またはノードから要求したデータを受信する。
【００２７】
中央サーバ１４への要求が、データ記憶要求である場合には、記憶プロセス１００は、ノードのアドレスを中央サーバ１４から受信する（１０４）。記憶プロセス１００は、データをパケットまたはファイルセグメントにフラグメント化し（１０５）、フラグメントまたはファイルセグメント（すなわち分解データ）を、受信されたアドレスが表すノードメモリに転送する（１０６）。
【００２８】
図５に示すように、データ転送プロセス２００には、データを記憶または検索する要求を受信すること（２０２）が含まれる。受信された要求がデータを記憶する要求である場合には、データ転送プロセス２００は、データをパケットまたはファイルセグメントに分解し（２０３）、メモリにデータを受信するために利用可能なノードのアドレスを決定する（２０４）。この決定（２０４）には、ネットワークをピングしてネットワークにおけるどのノードが利用可能であるかを決定すること、またはネットワークにおけるどのノードが最小トラフィックを有するかを決定すること、またはネットワークにおけるどのノードが最大の利用可能なメモリを有するかを決定すること、またはこれらもしくは他の要因の任意の組み合わせを含むことができる。
【００２９】
プロセス２００は、分解データを転送するために要求者用の特定のノードのアドレスを備えたメッセージをユーザシステムに送信する（２０６）。
【００３０】
プロセス２００は、ノードメモリにおける分解データの存在を検出する（２０８）。プロセス２００は、メモリにおける分解データをノードネットワークにおける別のノードに転送し（２１０）、引き続き分解データの検出（２０８）およびノードメモリからノードメモリへの分解データの転送（２１０）を繰り返す。分解データがいずれかのノードメモリに到達すると、プロセス２００は、タイムスタンプを分解データに添付する（２１２）。
【００３１】
転送すること（２１０）には、ネットワークにおけるノードをピングして、ネットワークにおけるどのノードが利用可能であるかを決定すること、またはネットワークにおけるどのノードが最小トラフィックを有するかを決定すること、またはネットワークにおけるどのノードが最大の利用可能なメモリを有するかを決定すること、またはこれらもしくは他の要因の任意の組み合わせを含むことができる。
【００３２】
１つの特定の例では、ノードへのエントリポイントにおいて、分解データは、ノードまたは中央サーバ１４またはユーザとの暗号化された「ハンドシェイク」を受ける。これは、公開−秘密鍵を用いることができる、カシミヤシステムなどの公開または秘密暗号システムとすることができる。カシミヤは、暗号化された転送経路およびメッセージペイロードを分離するが、これは、送信元が、宛先の一意の公開鍵を用いる単一公開鍵暗号化を各メッセージに対して実行する必要があるだけなので、性能を改善する。これには、対応する中継グループの全てのノードではなく、真の宛先ノードだけが、メッセージペイロードを復号化できるという利点がある。カシミヤは、宛先が、送信元の識別情報を知らずに匿名の応答メッセージを送信できる能力を提供する。これは、送信元が、転送経路と同じように応答経路を作り、かつそれを暗号化する場合と同じように行われる。
【００３３】
別の例では、他のルーティング方式が利用される。
【００３４】
受信された要求が、ノードメモリからノードメモリに継続的に転送されている分解データを検索する要求である場合には、データ転送プロセス２００は、暗号化ハンドシェイクを介して分解データがノードに入るとノードが「感づく」ことができるハッシュマークまたは他の一意の符号を用いて、中央サーバ１４においてマッチングする（２１４）。これは、ネットワークにおけるノードをピングすることによって行うことができる。プロセス２００は、分解データが恐らく現れるだろうと中央サーバ１４が信じるノードまたはノード状態へ、分解データを再構築（２１７）後にユーザに返すためのメッセージを、直接送信する（２１６）。中央サーバ１４が、それがピングするノード状態を絞ることができればできるほど、検索は、それだけ効率的になり、かつ中央サーバ１４と、分解データを転送できるノードとの間のトランザクションには必要でないノードへの不必要なメッセージトラフィックによる負荷がそれだけ少なくなる。
【００３５】
ひとたび正しいノードが、ノードメモリにおける分解データを転送するメッセージを受信すると、プロセス２００は、分解データを再構築し（２１７）、ノードメモリの再構築データを要求者に転送し（２１８）、かつ再構築データがユーザに送信されたという確認メッセージを転送する（２２０）。このルーティングメッセージは、中央サーバ１４に直接送信してもよく、またはネットワーク１０における他のノード（単複）またはスーパーノード（単複）を介して中央サーバ１４または複数サーバに伝達してもよい。要求した再構築データをユーザが受信すると、ユーザのアプリケーションは、要求した再構築データが受信されたことを中央サーバ１４に自動的にピングするように機能する。したがって、ネットワーク１０は、どんな物理的記憶媒体にデータをキャッシング、ダウンロードおよび／または記憶することもなく、データ記憶を行う。データ記憶および管理は、ノードメモリからノードメモリへのデータの絶え間ないルーティングを介して達成され、転送されるデータは、ネットワーク１０からユーザにデータが返されることをユーザが要求する場合にのみダウンロードされる。
【００３６】
性能に基づいて新しいノードおよびノード状態をネットワーク１０に追加するか、かつ／またはそこから削除してもよい。ユーザは、全てのノードへのアクセスを有してもよく、または中央サーバ（単複）によって、もしくはプライベート、パブリック、もしくはプライベート−パブリックネットワークの特定のアーキテクチャを介して、あるノードもしくは「ノード状態」にセグメント化してもよい。
【００３７】
個別ノード、ノード状態およびスーパーノードはまた、パブリックまたはプライベートネットワークにおけるエクストラネットピア、無線ネットワークピア、サテライトピアノード、Ｗｉ−Ｆｉピアノード、広帯域ネットワークなどであってもよい。ピアノードまたはユーザは、同じセキュリティシステムを用いる任意の有効なピアポイントからの、ネットワーク１０におけるルーティング参加者としてと同様に、無線ピアのための無線暗号化方式など、特定の正確な配備に適したカスタムソリューションなどとして用いてもよい。
【００３８】
プロセス２００において、リモートサーバ、ハードドライブまたは他の固定記憶媒体にデータをキャッシュまたは保持するのではなく、データは、ノードメモリからノードメモリに伝達され、ルーティングされ、転送される。データは、認可されたユーザがデータを要求するまでは決してダウンロードされない。システム上のユーザは、１人を超えるユーザがデータへのアクセス権を有するのを認可してもよい。
【００３９】
プロセス２００における主な目標は、データ記憶および管理システムであって、データが物理的記憶装置には決して固定されず、実際には、ネットワークにおけるノードメモリからノードメモリに継続的にルーティング／転送されているデータ記憶および管理システムを生成することである。また、データが転送されるノードの経路を中央サーバ１４によって変更して、システム容量を調整し、この特徴なしではデータ経路の可能性の増加によりネットワークのセキュリティを弱める可能性があるデータの冗長な経路を除去してもよい。
【００４０】
本発明は、次の利点の１つまたは複数を実現するように実施することができる。ネットワークは、キャッシングもダウンロードもなしに、データ記憶を行う。データ記憶および管理は、データの絶え間ないルーティングを介して達成される。
【００４１】
本発明の実施形態は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせにおいて実施することができる。本発明の実施形態は、例えばプログラム可能プロセッサ、１つのコンピュータもしくは多数のコンピュータなどのデータ処理装置によって実行するための、またはこれらの動作を制御するためのコンピュータプログラム製品として、すなわち、例えば機械可読記憶装置などの情報キャリアにおいて実体的に具体化されるコンピュータプログラムとして、実施することができる。コンピュータプログラムは、コンパイラ型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語で書くことができ、かつそれは、スタンドアローンプログラム、またはモジュール、コンポーネント、サブルーチンもしくはコンピュータ環境で使用するのに適した他の単位を含む任意の形態で配置することができる。コンピュータプログラムは、１つのサイトにおける１つのコンピュータもしくは多数のコンピュータ上で実行するように配置するか、または多数のサイトにわたって分散し通信ネットワークによって相互接続するように配置することができる。
【００４２】
本発明の実施形態の方法ステップは、入力データに作用して出力を生成することによって本発明の機能を実行するためにコンピュータプログラムを実行する１つまたは複数のプログラム可能プロセッサによって、実行することができる。方法ステップはまた、専用論理回路、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって実行することができ、かつ本発明の装置は、専用論理回路、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）として実現することができる。
【００４３】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータにおける任意の１つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための１つまたは複数のメモリ装置と、である。一般に、コンピュータはまた、データを記憶するための１つもしくは複数の大容量記憶装置、例えば磁気ディスク、光磁気ディスクもしくは光ディスクを含むか、またはこれらの大容量記憶装置からデータを受信するか、もしくはこれらにデータを転送するか、もしくは両方のために動作可能に結合される。コンピュータプログラム命令およびデータを具体化するのに適した情報キャリアには、例として半導体メモリ装置、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ素子と、磁気ディスク、例えば内部ハードディスクまたは取り外し可能ディスクと、光磁気ディスクと、ＣＤ  ＲＯＭおよびＤＶＤ−ＲＯＭディスクと、を含む不揮発性メモリの全ての形態が含まれる。プロセッサおよびメモリは、専用論理回路によって補足するか、または専用論理回路に組み込むことができる。
【００４４】
前述の説明が、本発明の範囲を限定するのではなく、例示するように意図され、本発明が、添付の特許請求の範囲によって定義されることを理解されたい。他の実施形態は、添付の特許請求の範囲の範囲内にある。
【図１】
0005298200.tif 000002
【図２】
0005298200.tif 000003
【図３】
0005298200.tif 000004
【図４】
0005298200.tif 000005
【図５】
0005298200.tif 000006