(57)【特許請求の範囲】
【請求項１】
方法であって、
連盟型連合コンピュータ・ネットワーク内でノードにおいて少なくとも１つの隣接ノードから少なくとも１つの情報要求パケットを受信すること、および
前記ノードによる、前記ノードにおいて情報の検索を行って、要求される情報が存在するかどうかを判定することを含み、
前記要求される情報が存在する場合、前記ノードは、
前記情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、前記確認応答を前記要求側ノードに返すようにルーティングし、
前記要求される情報を、ｍが、前記要求される情報を再構築するのに前記要求側ノードによって受信される必要があるパケットの数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングし、
前記ノードおよび前記要求側ノードに対するいずれの第三者も、前記第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、前記ノードと前記要求側ノードとの間の複数のパスを選択し、
前記ｍ個のパケットを、前記選択されたパスに分散させて送信する、方法。
【請求項２】
前記要求される情報が存在しない場合、前記ノードを所有する関係者のＩＤを含む前記ノードの識別情報を含めるように前記情報要求パケットのヘッダ情報を更新すること、および
前記情報要求を、前記情報要求パケットを送信した前記隣接ノード以外の他の少なくとも１つのノードに転送することをさらに含む、請求項１に記載の方法。
【請求項３】
パスに関して受信された各情報要求パケットのヘッダを調べて、前記ノードが前記パスに存在するかどうかを判定すること、および
前記ノードが前記パスに存在する場合、前記情報要求パケットを無視することをさらに含む、請求項１または２に記載の方法。
【請求項４】
パスに関して受信された各情報要求パケットのヘッダを調べて、前記情報要求パケットを送信した前記隣接ノード以外の第２の隣接ノードが前記パスに存在するかどうかを判定すること、および
前記第２の隣接ノードが前記パスに存在する場合、前記情報要求パケットを無視することをさらに含む、請求項１または２に記載の方法。
【請求項５】
前記ノードによる、前記情報要求パケットに関する停止パケットを受信すること、
前記ノードによる、前記情報要求パケットを前記送信することを停止すること、および
前記ノードによる、前記停止パケットを、前記停止パケットを送信した前記隣接ノード以外の隣接ノードに転送することをさらに含む、請求項１または２に記載の方法。
【請求項６】
前記ノードのメモリの中に受信された情報要求パケットのパスを記憶することをさらに含む、請求項１または２に記載の方法。
【請求項７】
前記ノードによる、前記ノードによって受信された前記情報要求パケットに関するパスの数をカウントすること、および
前記数がｎと等しいとき、前記ノードが、前記情報要求パケットが再び受信された場合、隣接ノードに前記情報要求パケットを前記送信することを停止することをさらに含む、請求項６に記載の方法。
【請求項８】
ｎ個のパスが、前記確認応答を送信した前記ノードによって収集されると、前記要求側ノードにレディ通知を送信することをさらに含む、請求項６に記載の方法。
【請求項９】
複数のパスを選択することは、
前記連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、
前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の第１のパスを選択すること、
前記第１のパス上に存在する各第三者に関して前記カウンタを、前記第１のパスを介して送信されるべきパケットの数だけ減らすこと、
前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の少なくとも１つの第２のパスを選択すること、および
前記少なくとも第２のパス上に存在する各第三者に関して前記カウンタを、前記少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む、請求項６に記載の方法。
【請求項１０】
前記第１のパス、および前記少なくとも１つの第２のパスは、最短のパスが前記第１のパスとして選択され、次に短いパスが前記第２のパスとして選択されるように、少なくとも前記パスの長さに基づいて選択される、請求項９に記載の方法。
【請求項１１】
要求される情報を包含するｍ個のパケットを送信するのに不十分な数のパスしか存在しない場合、前記ノードから前記要求側ノードに、前記要求される情報を送信することができないことに関して通知を送信することをさらに含む、請求項９に記載の方法。
【請求項１２】
ｎ個のパスを選択することは、
前記ノードと前記要求側ノードとの間の前記連盟型連合ネットワークのためのパスを取り出すことであって、前記パスは、リンク状態フラッディング・メッセージから導き出された前記連盟型連合ネットワークのためのトポロジに基づく、前記取り出すこと、
前記連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、
取り出されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の第１のパスを選択すること、
前記第１のパス上に存在する各第三者に関して前記カウンタを、前記第１のパスを介して送信されるべきパケットの数だけ減らすこと、
取り出されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の少なくとも１つの第２のパスを選択すること、および
前記少なくとも１つの第２のパス上に存在する各第三者に関して前記カウンタを、前記少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む
、請求項１または２に記載の方法。
【請求項１３】
前記第１のパス、および前記少なくとも１つの第２のパスは、最短のパスが前記第１のパスとして選択され、次に短いパスが前記第２のパスとして選択されるように、少なくとも前記パスの長さに基づいて選択される、請求項１２に記載の方法。
【請求項１４】
複数のパスを選択することは、
中央プロセッサによる、前記連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、
前記中央プロセッサによる、前記ノードにおける前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の第１のパスを選択すること、
前記中央プロセッサによる、前記第１のパス上に存在する各第三者に関して前記カウンタを、前記第１のパスを介して送信されるべきパケットの数だけ減らすこと、
前記中央プロセッサによる、前記ノードにおける前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記ノードと前記要求側ノードとの間の少なくとも１つの第２のパスを選択すること、および
前記中央プロセッサによる、前記少なくとも１つの第２のパス上に存在する各第三者に関して前記カウンタを、前記少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む、請求項６に記載の方法。
【請求項１５】
方法であって、
要求側ノードから、他の少なくとも２つの関係者によって所有される複数のノードを有する連盟型連合ネットワークの中に情報要求パケットを送信すること、
前記要求側ノードの少なくとも１つの隣接ノードによる、前記情報要求パケットを受信すること、
前記情報要求パケットを受信した前記隣接ノードを所有する関係者のＩＤを含む前記隣接ノードの識別情報を含めるように前記情報要求パケットのヘッダ情報を更新すること、
前記情報要求パケットを受信した前記隣接ノードから、前記隣接ノードと通信状態にある、前記要求側ノード以外のノードに前記情報要求パケットを送信すること、
受信側ノードにおいて少なくとも１つの隣接ノードから少なくとも１つの情報要求パケットを受信すること、
前記受信側ノードによる、前記受信側ノードにおいて情報の検索を行って、前記要求される情報が存在するかどうかを判定することを含み、
前記要求される情報が存在する場合、前記受信側ノードは、
前記情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、前記確認応答を前記要求側ノードに返すようにルーティングし、
前記要求される情報を、ｍが、前記要求される情報を再構築するのに前記要求側ノードによって受信される必要があるパケットの数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングし、
前記受信側ノードおよび前記要求側ノードに対するいずれの第三者も、前記第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、前記受信側ノードと前記要求側ノードとの間の複数のパスを選択し、
前記ｍ個のパケットを、前記選択されたパスに分散させて送信する、方法。
【請求項１６】
前記要求側ノードによる、前記連盟型連合ネットワークに関するネットワーク横断時間の２倍と等しい期間にわたって前記情報要求パケットに応答して送信された確認応答を収集すること、
前記要求側ノードによる、前記確認応答を送信したノードからのレディ・パケットを受信した後、前記要求側ノードに隣接する任意のノードに停止パケットを送信すること、
前記少なくとも１つの隣接ノードによる、前記情報要求パケットに関する停止パケットを受信すること、
前記隣接ノードによる、前記停止パケットを受信したことに応答して、前記情報要求パケットを前記送信することを停止すること、および
前記送信することを停止した前記隣接ノードにより、前記停止パケットを、前記停止パケットを送信した隣接ノード以外の各隣接ノードに転送することをさらに含む、請求項１５に記載の方法。
【請求項１７】
パスに関して受信された各情報要求パケットのヘッダを調べて、前記受信側ノード、または前記要求側ノードの前記隣接ノードが前記パスに存在するかどうか、あるいは前記情報要求パケットを送信した前記隣接ノード以外の第２の隣接ノードが前記パスに存在するかどうかを判定すること、および
前記判定が肯定的である場合、前記情報要求パケットを無視することをさらに含む、請
求項１５または１６に記載の方法。
【請求項１８】
前記受信側ノードのメモリの中に受信された情報要求パケットのパスを記憶することをさらに含み、
パスを選択することは、
前記連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、
前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記受信側ノードと前記要求側ノードとの間の第１のパスを選択すること、
前記第１のパス上に存在する各第三者に関して前記カウンタを、前記第１のパスを介して送信されるべきパケットの数だけ減らすこと、
前記情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、前記受信側ノードと前記要求側ノードとの間の少なくとも１つの第２のパスを選択すること、および
前記少なくとも１つの第２のパス上に存在する各第三者に関して前記カウンタを、前記少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む、請求項１５または１６に記載の方法。
【請求項１９】
前記第１のパス、および前記少なくとも１つの第２のパスは、最短のパスが前記第１のパスとして選択され、次に短いパスが前記第２のパスとして選択されるように、少なくとも前記パスの長さに基づいて選択される、請求項１８に記載の方法。
【請求項２０】
方法であって、
要求側ノードからの情報を求める要求を、他の少なくとも２つの関係者によって所有される複数のノードを有する連盟型連合ネットワーク内に送信すること、
前記要求側ノードによる、前記連盟型連合ネットワークに関するネットワーク横断時間の２倍と等しい期間にわたって前記情報要求に応答して送信された確認応答を収集すること、
前記要求側ノードによる、前記確認応答を送信したノードからのレディ・パケットを受信した後、前記要求側ノードに隣接する任意のノードに停止パケットを送信すること、
前記要求側ノードに確認応答を送信したノードによる、前記連盟型連合ネットワーク内の他のいずれの関係者も、異なるｋ−１個を超えるパケットを受信しないように、少なくともｋ個の線形ネットワーク・コーディングされたパケットを受信すること、および
前記少なくともｋ個の線形コーディングされたパケットから前記情報を再構築することを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
このＰＣＴ国際出願は、２０１３年５月６日、米国特許商標局に出願した米国特許出願第１３／８８７，８７３号の利益を主張するものである。
【０００２】
本発明は、契約第Ｗ９１１ＮＦ−０６−３−０００１号（米国陸軍）の下で政府支援を得て行われた。政府は、この発明にいくつかの権利を有する。
【０００３】
本発明は、情報要求クエリに応答して情報を提供する際に連盟型連合ネットワーク（Federatedcoalition network）においてプライバシを保護することに関する。より具体的な実施形態において、線形ネットワーク・コーディングが、情報を複数のパケットに変換するのに使用される。
【背景技術】
【０００４】
連盟型連合ネットワークは、異なる関係者によって所有されるノードによって形成される分散ネットワークである。連盟型連合ネットワークが使用される可能性がある場合の例には、多国籍軍の軍事任務、臨時の人道協力、および国際科学プロジェクトが含まれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１３／８８７，８７３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
各関係者は、共通の目的を進めるために他の関係者とのデータ共有を可能にすることを望む、独立したエンティティ、例えば、組織または企業を代表する。また、連盟型連合ネットワークは、ワイヤレス・ネットワークなどの信頼できないセグメントにわたるリンクを含み得る。
【課題を解決するための手段】
【０００７】
本発明は、少なくとも１つの実施形態において、連盟型コンピュータ・ネットワーク内のノードにおいて少なくとも１つの隣接ノードから少なくとも１つの情報要求パケットを受信すること、そのノードによる、そのノードにおいて情報の検索を行って、要求される情報が存在するかどうかを判定することを含み、要求される情報が存在する場合、次に、そのノードが、情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、その確認応答を要求側ノードに返すようにルーティングし、要求される情報を、ｍが、要求される情報を再構築するのに要求側ノードによって受信される必要があるパケットの数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングし、そのノードおよび要求側ノードに対するいずれの第三者も、その第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、そのノードと要求側ノードとの間の複数のパスを選択し、ｍ個のパケットを、それらの選択されたパスに分散させて送信する。さらなる実施形態において、この方法は、要求される情報が存在しない場合、そのノードを所有する関係者のＩＤを含むそのノードの識別情報を含めるように情報要求パケットのヘッダ情報を更新すること、およびその情報要求を、その情報要求パケットを送信した隣接ノード以外の他の少なくとも１つのノードに転送することをさらに含む。前述の実施形態のさらなる実施形態において、この方法は、パスに関して受信された各情報要求パケットのヘッダを調べて、そのノードがそのパスに存在するかどうか、または情報要求パケットを送信した隣接ノード以外の第２の隣接ノードがそのパスに存在するかどうか、あるいはその両方を判定し、そのノードがそのパスに存在する場合、その情報要求パケットを無視することをさらに含む。前述の実施形態のさらなる実施形態において、この方法は、そのノードによる、情報要求パケットに関する停止パケットを受信すること、そのノードによる、情報要求パケットを送信することを停止すること、およびそのノードによる、その停止パケットを、その停止要求を送信した隣接ノード以外の隣接ノードに転送することをさらに含む。
【０００８】
前述の実施形態のさらなる実施形態において、この方法は、そのノードのメモリの中に受信された情報要求パケットのパスを記憶することをさらに含む。さらなる実施形態において、この方法は、そのノードによる、そのノードによって受信された情報要求パケットに関するパスの数をカウントすること、およびその数がｎと等しいとき、そのノードが、その情報要求パケットが再び受信された場合、隣接ノードにその情報要求パケットを送信することを停止することをさらに含む。代替の実施形態において、この方法は、ｎ個のパスが、確認応答を送信したノードによって収集されると、要求側ノードにレディ（ready）通知を送信することをさらに含む。この段落のその他の実施形態のさらなる実施形態において、複数のパスを選択することは、連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、その情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の第１のパスを選択すること、第１のパス上に存在する各第三者に関してカウンタを、第１のパスを介して送信されるべきパケットの数だけ減らすこと、その情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の少なくとも１つの第２のパスを選択すること、およびその少なくとも１つの第２のパス上に存在する各第三者に関してカウンタを、その少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む。さらなる実施形態において、第１のパス、および少なくとも１つの第２のパスは、最短のパスが第１のパスとして選択され、次に短いパスが第２のパスとして選択されるように、少なくともパスの長さに基づいて選択される。前述の２つの実施形態のさらなる実施形態において、この方法は、要求される情報を包含するｍ個のパケットを送信するのに不十分な数のパスしか存在しない場合、そのノードから要求側ノードに、要求される情報を送信することができないことに関して通知を送信することをさらに含む。代替の実施形態において、複数のパスを選択することは、中央プロセッサによる、連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、中央プロセッサによる、そのノードにおける情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の第１のパスを選択すること、中央プロセッサによる、第１のパス上に存在する各第三者に関してカウンタを、第１のパスを介して送信されるべきパケットの数だけ減らすこと、中央プロセッサによる、そのノードにおける情報要求パケットに関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の少なくとも１つの第２のパスを選択すること、および中央プロセッサによる、その少なくとも１つの第２のパス上に存在する各第三者に関してカウンタを、その少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む。
【０００９】
前段に対する代替の実施形態において、ｎ個のパスを選択することは、そのノードと要求側ノードとの間の連盟型連合ネットワークのためのパスを取り出すことであって、それらのパスは、リンク状態フラッディング・メッセージから導き出された連盟型連合ネットワークのためのトポロジに基づく、取り出すこと、連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定すること、取り出されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の第１のパスを選択すること、第１のパス上に存在する各第三者に関してカウンタを、第１のパスを介して送信されるべきパケットの数だけ減らすこと、取り出されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の少なくとも１つの第２のパスを選択すること、およびその少なくとも１つの第２のパス上に存在する各第三者に関してカウンタを、その少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らすことを含む。さらなる実施形態において、第１のパス、および少なくとも１つの第２のパスは、最短のパスが第１のパスとして選択され、次に短いパスが第２のパスとして選択されるように、少なくともパスの長さに基づいて選択される。
【００１０】
本発明は、少なくとも１つの実施形態において、要求側ノードから、他の少なくとも２つの関係者によって所有される複数のノードを有する連盟型連合ネットワーク内に情報要求パケットを送信すること、要求側ノードの少なくとも１つの隣接ノードによる、情報要求パケットを受信すること、受信側ノードを所有する関係者のＩＤを含む情報要求を受信したノードの識別情報を含めるように情報要求パケットのヘッダ情報を更新すること、情報要求パケットを受信したノードから、そのノードと通信状態にある、要求側ノード以外のノードに情報要求パケットを送信すること、受信側ノードにおいて少なくとも１つの隣接ノードから（直接に、または間接的に）少なくとも１つの情報要求パケットを受信すること、受信側ノードによる、受信側ノードにおいて情報の検索を行って、要求される情報が存在するかどうかを判定することを含む方法を含み、要求される情報が存在する場合、受信側ノードは、情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、その確認応答を要求側ノードに返すようにルーティングし、要求される情報を、ｍが、要求される情報を再構築するのに要求側ノードによって受信される必要があるパケットの数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングし、受信側ノードおよび要求側ノードに対するいずれの第三者も、その第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、受信側ノードと要求側ノードとの間の複数のパスを選択し、ｍ個のパケットを、それらの選択されたパスに分散させて送信する。
【００１１】
本発明は、少なくとも１つの実施形態において、要求側ノードからの情報を求める要求を、他の少なくとも２つの関係者によって所有される複数のノードを有する連盟型連合ネットワーク内に送信すること、要求側ノードによる、連盟型連合ネットワークに関するネットワーク横断時間の２倍と等しい期間にわたって情報要求に応答して送信された確認応答を収集すること、要求側ノードによる、確認応答を送信したノードからのレディ・パケットを受信した後、要求側ノードに隣接する任意のノードに停止パケットを送信すること、要求側ノードに確認応答を送信したノードによる、連盟型連合ネットワーク内の他のいずれの関係者も、異なるｋ−１個を超えるパケットを受信しないように、少なくともｋ個の線形ネットワーク・コーディングされたパケットを受信すること、およびその少なくともｋ個の線形コーディングされたパケットから情報を再構築することを含む方法を含む。
【００１２】
本発明は、添付の図面を参照して説明される。図面において、同様の参照符号は、同一の、または機能上、類似した要素を示す。
【図面の簡単な説明】
【００１３】
【図１】本発明の少なくとも１つの実施形態による連盟型連合ネットワークの例を示す図である。
【図２】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおいて情報を要求するための方法を示す流れ図である。
【図３】図１に示される連盟型連合ネットワークを注釈とともに示す図である。
【図４】図１に示される連盟型連合ネットワークを注釈とともに示す図である。
【図５】図１に示される連盟型連合ネットワークを注釈とともに示す図である。
【図６】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおいて要求側ノードが情報を要求する方法を示す図である。
【図７】本発明の少なくとも１つの実施形態によるパスを選択するための方法を示す図である。
【図８】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおける要求側ノードのためのさらなる方法を示す図である。
【図９】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおいて情報要求を受信する受信側ノードのための方法を示す図である。
【図１０】本発明の少なくとも１つの実施形態によるパスを選択するための代替の方法を示す図である。
【図１１】本発明の少なくとも１つの実施形態による線形コーディングの使用の例を示す図である。
【図１２】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおける複数のパスにわたってパケットがどのように分散させられるかの例を示す図である。
【図１３】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおける複数のパスにわたってパケットがどのように分散させられるかの別の例を示す図である。
【図１４】本発明の少なくとも１つの実施形態による連盟型連合ネットワークにおける複数のパスにわたってパケットがどのように分散させられるかの別の例を示す図である。
【図１５】本発明の少なくとも１つの実施形態によるパスを選択するための別の方法を示す図である。
【図１６】本発明の少なくとも１つの実施形態によるパスを選択するための別の方法を示す図である。
【図１７】本発明の実施形態によるコンピュータ・プログラム製品を示す図である。
【図１８】本発明による少なくとも１つの実施形態の展開のための例示的な方法を示す図である。
【図１９】本発明による少なくとも１つの実施形態の統合のための例示的な方法を示す図である。
【図２０】本発明による少なくとも１つの実施形態のオンデマンド利用可能性のための例示的な方法を示す図である。
【発明を実施するための形態】
【００１４】
本発明の例示的な限定的でない実施形態が、後段で詳細に説明される。特定の構成が、明確な理解をもたらすように説明されるが、開示される構成は、単に例示のために与えられるに過ぎないことを理解されたい。本発明の趣旨および範囲を逸脱することなく、他の構成が使用されてもよいことが、当業者には認識されよう。
【００１５】
図１は、複数の関係者がネットワークの形成に参加し、任意の一時点でネットワーク内に存在する様々な数のノードを所有する連盟型連合ネットワーク（または連盟型コンピュータ・ネットワーク）の例を示す。連盟型連合ネットワークは、存在するノードの数、およびそれらのノード間の相互接続の点で様々な形態をとることが可能であり、このため、図１は、本発明による少なくとも１つの実施形態を説明するそのようなネットワークの例として使用されている。例示されるネットワークは、５（五）つの関係者（または所有者）、すなわち、Ａ、Ｂ、Ｃ、Ｄ、およびＥを含む。連盟型連合ネットワークにおけるノードは、ノードが情報交換のために協働する構造化されていないマルチホップ・オーバーレイ・ネットワークを形成する。各ノードは、データが、例えば、リレーショナル・データとして記憶され得る、少なくとも１つのストレージ・システム（例えば、コンピュータ、サーバ、ネットワーク・エリア・ストレージなど）上に記憶されたデータに対する接続をもたらす。少なくとも１つの実施形態において、そのデータのロケーションは、その他のノードには知られていない。
【００１６】
少なくとも１つの実施形態において、各関係者は、いずれのデータが他のいずれの関係者と共有され得るかについての個別のペアに関するポリシーを有する。このことの例が、関係者Ａと共有される関係者Ｂのデータが、ポリシーによって明示的に許されるのでない限り、関係者Ｃに可視であってはならないことである。そのような実施形態において、各関係者は、連盟型連合ネットワークに関するあらかじめ合意された規則に従い、メッセージを意図的に傍受することはしないが、その関係者が所有するノードを通過する情報は読み取るので、誠実ではあるが、好奇心が強い。各ノードは、例えば、互いに接続されたノードの間のネットワーク通信、および本開示で説明される例示的な方法を実行するソフトウェアを実行しているプロセッサを使用して連盟型連合ネットワークのために確立されたポリシーに従って動作する。
【００１７】
図２に示される少なくとも１つの実施形態において、互いに直接に隣接ノードではない２つのノード間の情報通信のプライバシを、例えば、図１に例示されるとおり、それらのノード間で利用可能な複数の通信パスが存在する場合に、保つための方法が提供される。ノード（または要求側ノード）が、連盟型連合ネットワークに情報を求めるクエリ（または要求）を送信することによって、連盟型連合ネットワーク内に存在する他のノードに記憶されている可能性がある情報を要求する（３０５）。例えば、図３に示されるとおり、ノード４１０が、情報を要求して、隣接ノード４１２、４１４、４１６のそれぞれに情報要求パケットを送信する。ノード４１０の代わりに、ノード４１０以外の例示される連盟型連合ネットワーク内の別のノードが要求側ノードとなることを妨げる制限は、全く存在しない。
【００１８】
要求側ノードの少なくとも１つの隣接ノードが、その情報要求パケットを受信する（３１０）。図４に示されるとおり、これらの中間ノードのそれぞれが、そのクエリ・パケットを、そのノードが受信したクエリの出所であるノード以外の隣接ノード（または受信側ノード）４２２、４２４、４２６、４２８に再ブロードキャストする。少なくとも１つのオプションの実施形態において、各ノードは、情報要求を受信したノードについての識別情報を、各クエリ・パケットのヘッダに追加する（３１５）。少なくとも１つのさらなる実施形態において、この識別情報は、受信側ノードを所有する関係者のＩＤと、情報要求を送信した少なくとも１つの隣接ノードのＩＤのうちの少なくともいずれかを含み、このＩＤは、さらなる実施形態において、情報要求パケットが要求側ノードからたどったパスに関するルーティング情報をもたらす。この再ブロードキャストは、受信側ノードが、自らが要求される情報を有する、または自らが２つのノードに接続されていない（このことの例が、図４で関係者Ｃによって所有されるノード４４８）と判定するのでない限り、ネットワークにわたって続けられる。
【００１９】
受信側ノードは、受信側ノードにおいてその情報の検索を行って、要求される情報がそのノードに存在するかどうかを判定する（３２５）。少なくとも１つの実施形態において、この検索は、受信側ノードと通信状態にあるストレージ・システム上に記憶されたリレーショナル・データベースの検索である。
【００２０】
図２に示されるとおり、少なくとも１つの実施形態において、要求される情報が存在する場合（３３０）、受信側ノードは、要求される情報を要求側ノードに提供する（３３５〜３５０）。少なくとも１つの実施形態において、要求される情報がないか調べることは、固有の情報要求ごとに１回、実行され、ノードは、将来、そのパケットが受信されるたびに、そのパケットを、調べることを実行することなしに転送する（停止パケットが受信されているのでない限り）。受信側ノードは、情報要求パケットの中に存在するヘッダ情報を使用して確認応答を要求側ノードに送信して、確認応答を、要求側ノードに返すようにルーティングする（３３５）。受信側ノードは、要求される情報を、ｍが、要求される情報を再構築するのに受信される必要があるパケットの最小数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングする（３４０）。少なくとも１つの実施形態において、受信側ノードは、その情報を、線形ネットワーク・コーディングを介してｍ個の符号化されたパケットを生成するのに使用されるｋ個の部分に分割する。受信側ノードは、受信側ノードおよび要求側ノードに対するいずれの第三者も、その第三者によって制御されるノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、受信側ノードと要求側ノードとの間の複数のパスを選択する（３４５）。受信側ノードは、ｍ個のパケットを、それらの選択されたパスに分散させて送信する（３５０）。少なくとも１つの実施形態において、選択されるパスの数は、ｎ以下であり、ｎは、少なくとも１つの実施形態において、受信側ノードが、受信側ノードのデータで応答するのに知る必要があるパスの最小数である。少なくとも１つの実施形態において、そのｍ個のパスは、それらのパスのうちのいくつかが他の少なくとも１つの選択されたパスと完全に重なり合って、または部分的に重なり合って選択される。少なくとも１つの実施形態においてｋ変数、ｍ変数、およびｎ変数は、連盟型連合ネットワークに関して事前設定される（または所定である）。代替の実施形態において、少なくとも１つの変数は、受信側ノードによって送信される確認応答の内容に基づいて、受信側ノードと要求側ノードとの間で場当たり的に設定される。例が、受信側ノードが、その変数の値を確認応答の中に含めることである。さらなる代替の実施形態において、少なくとも１つの変数は、連盟型連合ネットワークの確立、または既存のポリシーの一環として、２つの関係者間の通信に関して所定である。
【００２１】
少なくとも１つの実施形態において、要求される情報が存在しない場合、受信側ノードは、その情報要求パケットを、存在する場合、少なくとも１つの隣接ノードに転送する。さらなる実施形態において、要求される情報がそのノードに存在しない場合、そのノードは、そのノードを所有する関係者のＩＤを含むそのノードの識別情報と、そのノードに情報要求パケットを送信した少なくとも１つの隣接ノードの識別情報の少なくともいずれかを含めるように情報要求パケットのヘッダ情報を更新する。そのノードは、情報要求パケットを、少なくとも２つの隣接ノードが存在するものと想定して転送されている情報要求パケットを送信した隣接ノード以外の他の少なくとも１つのノードに転送する。
【００２２】
例示の目的で、図５を使用して、ノード４４２は、要求側ノード４１０によって送信された情報要求を満足させる情報を有する受信側ノードである。ノード４４２は、関係者Ｃによって所有される一方で、ノード４１０は、関係者Ａによって所有される。図５に点線（Ｃ−Ａ−Ｅ−Ｃ−Ｅ−Ａ）、短い破線（Ｃ−Ｄ−Ａ−Ｃ−Ａ）、および長い破線（Ｃ−Ｂ−Ｂ−Ａ−Ｃ−Ａ）によって表されるとおり、この２つのノードの間に少なくとも３つのパスが存在する。この例示の場合、ｋは２であり、ｍは３であり、ｎは３である。この３つのパスは、少なくとも１つの実施形態において、受信側ノードによって発見されるパスの最小数である、ｎ要件を満足させる。各パケットは、異なるパスに沿って送信され、関係者Ｂは、長い破線パス上にＢが所有するノードからの１つだけのパケットを見ることになり、関係者Ｄは、短い破線パス上にＤが所有するノードからの１つだけのパケットを見ることになり、関係者Ｅは、点線パス上にＥが所有するノードからの１つだけのパケットを見ることになる。このため、連盟型連合ネットワーク内の他の任意の１つの第三者によってせいぜいｋ−１（すなわち、２−１＝１）個のパケットしか見られないという要件が、満足させられる。少なくとも２つのパケットが、ノード４４２とノード４１０との間で連盟型連合ネットワークを通過するものと想定すると、ノード４１０は、それらのパケットを分解して、要求される情報を獲得することができる。
【００２３】
図６に示されるさらなる実施形態において、要求側ノード４１０が、情報要求に応答して送信された確認応答を収集する（または受信する）（６１０）。少なくとも１つの実施形態において、要求側ノード４１０は、連盟型連合ネットワークに関するネットワーク横断時間の２倍と等しい期間にわたって情報要求に応答して送信された確認応答を収集し、確認応答が全く受信されなかった場合、要求側ノード４１０は、要求される情報が連盟型連合ネットワーク内で入手可能でないと判定する。確認応答を送信した任意の１つまたは複数のノードからレディ・パケットを受信した後、要求側ノード４１０は、要求側ノード４１０に隣接する任意のノード４１２、４１４、４１６に停止パケットを送信する（６１５）。その少なくとも１つの隣接ノード（例えば、ノード４１２）が、情報要求に関する停止パケットを受信する（６２０）。その少なくとも１つの隣接ノードは、停止パケットを受信したことに応答して、元の情報要求を送信することを停止する（６２５）。その少なくとも１つの隣接ノードは、停止要求を送信した隣接ノード以外の任意の隣接ノードに停止パケットを転送する（６３０）（例えば、ノード４１２からノード４２２に、またはノード４１６からノード４２６、４２８に）。
【００２４】
さらなる実施形態において、各ノードは、そのノードが受信した情報要求パケットのパスのすべてをメモリの中に記憶する。ノードは、要求側ノードから現在のノードまで情報要求が通過したパスに関して、受信された各情報要求パケットのヘッダを調べる。少なくとも１つの実施形態において、そのパスが現在のノードを包含する場合、ループが存在し、現在のノードは、その情報要求パケットを無視する。少なくとも１つの実施形態において、そのパスが、その情報要求パケットを現在のノードに転送した隣接ノード以外の第２の隣接ノードを包含する場合、そのパスは、役立たないパスであり、現在のノードは、その情報要求パケットを無視する。さらなる実施形態において、前述の２つの実施形態の条件のいずれかが満たされた場合、現在のノードは、その情報要求パケットを無視する。その情報要求パケットが無視されないとき、現在のノードは、このパスをストレージに追加し、その情報要求パケットを、その情報要求パケットがヘッダの中で識別していない隣接ノードに転送する。
【００２５】
さらなる実施形態において、受信側ノードは、受信側ノードが受信した情報要求パケットのすべてのパスをメモリの中に記憶する。受信側ノードが、図７に示される少なくとも１つの実施形態において、その記憶されたパス情報を使用してパスを選択する。受信側ノードが、連盟型連合ネットワーク内に存在する各第三者に関してカウンタをｋ−１に設定する（７１０）。受信側ノードが、情報要求に関する記憶されたパスに少なくとも部分的に基づいて、受信側ノードと要求側ノードとの間の第１のパスを選択する（７１５）。受信側ノードが、第１のパス上に存在する各第三者に関してカウンタを、第１のパスを介して送信されるべきパケットの数だけ減らす（７２０）。受信側ノードが、その情報要求に関して記憶されているパスに少なくとも部分的に基づいて、受信側ノードと要求側ノードとの間の少なくとも第２のパスを選択する（７２５）。受信側ノードは、その少なくとも１つの第２のパス上に存在する各第三者に関してカウンタを、その少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らす（７３０）。少なくとも１つの実施形態において選択されるパスの数は、ｎである一方で、別の実施形態において、選択されるパスの数は、ｎ未満である。さらなる実施形態において、それらのパスは、最短のパスが第１のパスとして選択され、次に短いパスが第２のパスとして選択されるように、少なくともパスの長さに基づいて選択される。この段落における実施形態のさらなる実施形態において、第三者カウンタが０を下回ると、受信側ノードは、最後に選択されたパスに取って代わる異なるパスを選択する一方で、別の実施形態では、受信側ノードは、最後に選択されたパスだけでないパスを置き換える。代替の実施形態において、受信側ノードは、再帰的プロセスと連携して各第三者に関するカウンタを使用して、要求側ノードに到達するようにｍ個のパケットのそれぞれを送信するパスを選択する。
【００２６】
代替の実施形態において、それらのパケットは、各パケットがパスに割り当てられるまで、受信側ノードによってパスに割り当てられ、またはｉ番目のパケットに関してパスが全く利用可能でない場合、受信側ノードは、さかのぼって、（ｉ−１）番目のパケットに関するパス割当てを取り消す。受信側ノードは、（ｉ−１）番目のパケットを、割り当てられたセットから割り当てられていないセットに移動し、カウンタを１だけ増やし、前の割当て中に除去されたパスを戻す。受信側ノードは、受信側ノードのパスを、次に短いパスに割り当て直し、カウンタを更新し、それに相応してパスを移動する。少なくとも１つの実施形態において、受信側ノードは、実現可能なソリューションが見出されるまで選択プロセスを繰り返す、または割り当てられたパスにおいてさらにさかのぼる。受信側ノードが、それ以上さかのぼることができない場合、またはアルゴリズムが或る所定の時間内に終わらない場合、あるいはその両方の場合、受信側ノードは、失敗を宣言し、さらなる実施形態において、受信側ノードは、要求される情報が送信されないことを要求側ノードに通知する。
【００２７】
以上の説明に基づいて、少なくとも１つの実施形態において、連盟型連合ネットワーク内の個別のノードの動作は、前述した方法実施形態から抽出され得ることが当業者には理解されよう。後段の説明は、連盟型連合ネットワーク内の個々のノードの動作に関するさらなる実施形態を与える。
【００２８】
図８に示されるさらなる実施形態において、この方法は、連盟型連合ネットワークにおいて情報を要求すること、および受信することに関する要求側ノードの動作を含む。要求側ノードは、情報を求める要求を、他の少なくとも２つの関係者によって所有される複数のノードを有する連盟型連合ネットワークに送信する（８１０）。要求側ノードが、連盟型連合ネットワークに関するネットワーク横断時間の２倍と等しい期間にわたって情報要求に応答して送信された、連盟型連合ネットワーク内の別のノードが要求される情報を有することを表す確認応答を収集する（８１５）。少なくとも１つの実施形態において、応答期間内に確認応答が全く受信されなかった場合、要求側ノードは、要求される情報が連盟型連合ネットワーク内で入手可能でないことを知る。
【００２９】
要求側ノードが、確認応答をそれまでに送信している任意の１つまたは複数のノードからレディ・パケットを受信した後、要求側ノードに隣接する任意のノードに停止パケットを送信する（８２０）。代替の実施形態において、要求側ノードは、要求側ノードが、確認応答を送信したすべてのノードからレディ・パケットを受信するまで、待つ。
【００３０】
要求側ノードが、要求側ノードに確認応答を送信したノードから少なくともｋ個の線形ネットワーク・コーディングされたパケットを受信して、連盟型連合ネットワーク内の他のいずれの関係者も、異なるｋ−１個を超えるパケットを受信することがないようにする（８２５）。要求側ノードが、その少なくともｋ個の線形ネットワーク・コーディングされたパケットから情報を再構築する（８３０）。
【００３１】
図９は、要求側ノード以外の連盟型連合ネットワーク内のノードの動作の例示的な方法を示す。そのノードが、連盟型連合ネットワーク内の少なくとも１つの隣接ノードから少なくとも１つの情報要求を受信する（９１０）。図４におけるこのことの例が、ノード４２４がノード４１４から情報要求パケットを受信することである。そのノードが、そのノードにおいてその情報の検索を行って、要求される情報がそのノードに存在するかどうかを判定する（９１５）。少なくとも１つの実施形態において、この検索は、受信側ノードと通信状態にあるストレージ・システム上に記憶されたリレーショナル・データベースの検索である。
【００３２】
図９に示されるとおり、少なくとも１つの実施形態において、要求される情報が存在する場合（９２０）、（受信側）ノードが、要求される情報を要求側ノードに提供する（９２５〜９４０）。少なくとも１つの実施形態において、要求される情報がないか調べることは、固有の情報要求ごとに１回、実行され、ノードは、将来、そのパケットが受信されるたびに、そのパケットを、調べることを実行することなしに転送する（停止パケットが受信されているのでない限り）。そのノードが、情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、その確認応答を要求側ノードに返すようにルーティングする（９２５）。そのノードが、要求される情報を、ｍが、要求される情報を再構築するのに受信される必要があるパケットの最小数であるｋ以上である、ｍ個のパケットに線形ネットワーク・コーディングする（９３０）。少なくとも１つの実施形態において、そのノードが、その情報を、線形ネットワーク・コーディングを介してｍ個の符号化されたパケットを生成するのに使用されるｋ個の部分に分割する。そのノードが、そのノードおよび要求側ノードに対するいずれの第三者も、その第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように、そのノードと要求側ノードとの間の複数のパスを選択する（９３５）。そのノードが、ｍ個のパケットを、それらの選択されたパスに分散させて送信する（９４０）。少なくとも１つの実施形態において、選択されるパスの数は、選択されるパスの数は、ｎ以下であり、ｎは、少なくとも１つの実施形態において、受信側ノードが、受信側ノードのデータで応答できるには、知る必要があるパスの最小数である。少なくとも１つの実施形態において、そのｍ個のパスは、それらのパスのうちのいくつかが他の少なくとも１つの選択されたパスと完全に重なり合って、または部分的に重なり合って選択される。少なくとも１つの実施形態においてｋ変数、ｍ変数、およびｎ変数は、連盟型連合ネットワークに関して事前設定される（または所定である）。代替の実施形態において、少なくとも１つの変数は、受信側ノードによって送信される確認応答の内容に基づいて、受信側ノードと要求側ノードとの間で場当たり的に設定される。例が、受信側ノードが、その変数の値を確認応答の中に含めることである。さらなる代替の実施形態において、少なくとも１つの変数は、連盟型連合ネットワークの確立、または既存のポリシーの一環として、２つの関係者間の通信に関して所定である。
【００３３】
少なくとも１つの実施形態において、要求される情報が存在しない場合、受信側ノードは、その情報要求パケットを、存在する場合、少なくとも１つの隣接ノードに転送する（９４５）。さらなる実施形態において、要求される情報がそのノードに存在しない場合、そのノードは、そのノードを所有する関係者のＩＤを含むそのノードの識別情報と、そのノードに情報要求パケットを送信した少なくとも１つの隣接ノードの識別情報の少なくともいずれかを含めるように情報要求パケットのヘッダ情報を更新する。そのノードは、情報要求パケットを、少なくとも２つの隣接ノードが存在するものと想定して転送されている情報要求パケットを送信した隣接ノード以外の他の少なくとも１つのノードに転送する。
【００３４】
さらなる実施形態において、停止パケットが要求側ノードによって送信された場合、この方法は、そのノードによって実行されるべきステップをさらに含む。そのノードが、隣接ノードからその情報要求に関する停止パケットを受信する。そのノードは、その情報要求が再び受信された場合、他のノードにその情報要求パケットを送信することを停止する。そのノードは、その停止パケットを、少なくとも２つの隣接ノードが存在するものと想定して、そのノードに停止パケットを送信した隣接ノード以外の各隣接ノードに転送する。代替の実施形態において、停止パケットが２度目に受信された場合、そのノードは、その２番目の、つまり、後の停止パケットを無視する。
【００３５】
さらなる実施形態において、受信側ノードが、そのノードによって受信された情報要求に関するパスの数をカウントし、このことは、例えば、受信された情報要求パケットのパスがそのノードのメモリの中に記憶されるのと実質的に同時に行われても、記憶されるのに先立って行われても、記憶された後に行われてもよい。少なくとも１つの実施形態において、パスの数がｎであるとき、例えば、その情報要求パケットが再び受信された場合、そのノードは、その情報要求パケットを隣接ノードに送信することを停止し、またはカウンタがｎとなった情報要求パケットを送信しない。さらなる実施形態において、ノードが要求側ノードに確認応答を送信し、そのノードによってｎ個のパスが収集されると、受信側ノードが、レディ通知を要求側ノードに送信する。
【００３６】
受信側ノードが、要求側ノードにｍ個のパケットを送信するパスをどのように選択するかの例は、図７に示され、前段で説明される。図７に示される実施形態のさらなる実施形態において、要求される情報を包含する異なるｋ−１個を超えるパケットを見る第三者は存在しないが、要求される情報を送信するのに不十分な数のパスしか存在しないため、受信側ノードが要求される情報を送信することができない場合、受信側ノードが、要求側ノードに通知を送信する。
【００３７】
パスを選択するための代替の方法が、図１０に示される。受信側ノードが、受信側ノードと要求側ノードとの間の連盟型連合ネットワークのためのパスを取り出し、それらのパスは、リンク状態フラッディング・メッセージから導き出された連盟型連合ネットワークのためのトポロジに基づく。少なくとも１つの実施形態において、それらのパスは、連盟型連合ネットワーク上に存在するノードによってアクセス可能である中央データベースの中に記憶され、中央データベースは、連盟型連合ネットワークのトポロジを記憶する。少なくとも１つのさらなる実施形態において、中央データベースは、連盟型連合ネットワーク内のノードのうちの１つにおいて保持される。さらなる代替の実施形態において、各ノードが、そのノードに接続されたメモリまたはストレージ・デバイス、あるいはその両方の中に記憶されたそのノード独自のパス・データベースを保持する。
【００３８】
そのノードが、連盟型連合ネットワーク内に存在する他の各第三者に関してカウンタをｋ−１に設定する（１０１０）。そのノードが、情報要求に関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の第１のパスを選択する（１０１５）。そのノードが、第１のパス上に存在する各第三者に関してカウンタを、第１のパスを介して送信されるべきパケットの数だけ減らす（１０２０）。そのノードが、情報要求に関する記憶されたパスに少なくとも部分的に基づいて、そのノードと要求側ノードとの間の少なくとも１つの第２のパスを選択する（１０２５）。そのノードが、その少なくとも１つの第２のパス上に存在する各第三者に関してカウンタを、その少なくとも１つの第２のパスを介して送信されるべきパケットの数だけ減らす（１０３０）。少なくとも１つの実施形態において選択されるパスの数は、ｎである一方で、別の実施形態において、選択されるパスの数は、ｎ未満である。さらなる実施形態において、それらのパスは、少なくとも初期には、最短のパスが第１のパスとして選択され、次に短いパスが第２のパスとして選択されるように、少なくともパスの長さに基づいて選択される。この段落における実施形態のさらなる実施形態において、第三者カウンタが０を下回ると、そのノードは、最後に選択されたパスに取って代わる異なるパスを選択する一方で、別の実施形態では、そのノードは、最後に選択されたパスだけでないパスを置き換える。前述の実施形態のさらなる実施形態において、利用可能なパスがもはや存在しない場合、そのノードは、要求される情報が送信されないことを要求側ノードに通知し、そのノードは、そのノードと要求側ノードとの間の利用可能なパスに変化があるまで待つ必要があり、または異なる方法が使用される必要があり、あるいはその両方である。
【００３９】
前述の実施形態における受信側ノードに、受信側ノードから要求側ノードに情報パケットを送信するのに使用されるべきパスを選択させることの代替の実施形態において、中央プロセッサが、受信側ノードのためにパス、および各パスを介して送信すべきパケットの数の選択を行うのに使用される。さらなる実施形態において、中央プロセッサは、中央パス・データベースと通信状態にある。
【００４０】
カウンタを使用して、第三者によって所有されるノードを通過する異なるパケットの数を制限する前述の実施形態の代替の実施形態において、第三者に関するカウンタは、第三者と、受信側ノードを所有する関係者との間で、第三者およびその関係者のそれぞれのノードを通る情報の転送に関して、第三者が、第三者のノードを通過するパケットを盗聴することを制限するポリシーが整えられている場合、第三者に関するカウンタはなくされる。
【００４１】
パス選択の例が、長方形のボックスがパケットを表し、円がノードを表す図１１〜１４に関連して後段の説明で与えられる。パケットがパス上のノードを通る場合、そのパケットは、そのノードを所有する関係者によって観察される。少なくとも１つの実施形態において、ｍ個のパケットの総計の送信費用が最小限に抑えられることが可能である一方で、第三者のいずれも、ｋ−１個を超えるパケットを観察することができないように、合計ｎ個の発見されたパスから各パケットのためのパスが見出される。
【００４２】
図１１は、情報がａとｂに一緒に包含される線形ネットワーク・コーディングの例示を与える。送信元ノードｓが、ａとｂの異なるｍ個の独立した線形組合せを生成し、それらの組合せ（および係数）を異なるパス（すなわち、「ａ＋ｂ」、「ａ＋２ｂ」、および「ａ＋３ｂ」）上で送信する。宛先ノードｔが、ｍ個のコーディングされたパケットのうちのｋ個を収集する限り、宛先ノードｋは、ａおよびｂを回復する（または再構築する）ことができる。ｍ値およびｋ値は、少なくとも１つの実施形態において調整され得る。
【００４３】
図１２は、ｍ個のパケットがどのように、例示される４つの第三者Ａ、Ｂ、Ｃ、Ｄを有するｍ個のパスにわたって分散され得るかを示す。
【００４４】
図１３は、ｎ＝１０（３つのパスだけしか図示されないものの）、ｍ＝６、ｋ＝３であり、４つの第三者Ａ、Ｂ、Ｃ、Ｄが存在する例を示す。以下の表は、各関係者に関するカウンタを示す。初期カウンタは、ｋから１が引かれると、各第三者に関して２に設定される。最短のパスは、関係者ＡおよびＢがノードを所有する中央パスであり、したがって、ＡのカウンタおよびＢのカウンタは、そのパスをたどる２つのパケット（すなわち、パケット１および２）に関して２だけ減らされる。次に短いパスが、パケット３および４のために選択され、パケット３および４は、関係者Ｄによって所有されるノードを通過し、関係者Ｄのカウンタは、２だけ減らされる。次に短いパスが、パケット５および６のために選択され、パケット５および６は、関係者Ｃによって所有されるノードを通過し、関係者Ｃのカウンタは、２だけ減らされる。
【００４５】
【表１】
0006381635.tif 000002
ｋの値が４または５であった場合、最短パスに沿って送信された３つ、または４つのパケットが存在した可能性があり、残りのパケットは、関係者Ａ、Ｂ、およびＤのいずれも、それぞれ、異なる４つ、または５つのパケットを見ることを回避しながら、次に短いパスに沿って送信される。この変形形態は、同一の数のパケットがどのように、選択された経路のそれぞれを介して伝送されなくてもよいかの例である。さらなる実施形態において、パスのすべてが選択された後、各パスが、パスのセットから取り除かれて、残りのパスを介してｋ個のパケットが依然として送信されているかどうかが判定され、送信されていない場合、カウンタ要件を満足させながら、パスのセットを経由するパケットの数を調整する。
【００４６】
図１４は、ｎ＝５（３つのパスだけしか図示されないものの）、ｍ＝３、ｋ＝２であり、４つの第三者Ａ、Ｂ、Ｃ、Ｄが存在する例を示す。以下の表は、各関係者に関するカウンタを示す。初期カウンタは、ｋから１が引かれると、各第三者に関して１に設定される。最短のパスは、関係者ＡおよびＢがノードを所有する中央パスであり、したがって、ＡのカウンタおよびＢのカウンタは、そのパスをたどる１つだけのパケット（すなわち、パケット１）に関して１だけ減らされる。次に短いパスが、パケット２のために選択され、パケット２は、関係者Ｃによって所有されるノードを通過し、関係者Ｃのカウンタは、１だけ減らされる。
【００４７】
【表２】
0006381635.tif 000003
関係者Ｄによって所有されるノードのうちの１つが、代わりに関係者Ｃによって所有されていたとした場合、パケット３を送信するのに利用可能なパスが存在しないことになる。代替の実施形態において、この方法は、パケット１および２をそれでも送信することになる。というのは、両方のパケットがノードｔによって受信されたとすると、ノードｔは、ｋ個のパケットが受信されていることになるため、その２つのパケットから情報を再構築することができるからである。
【００４８】
図１５Ａおよび図１５Ｂは、受信側ノードから要求側ノードにｍ個のパケットを送信するために使用すべきパスを選択するように互いに連携して機能する２つの例示的なアルゴリズムを示す。
【００４９】
本発明の様々な実施形態の説明は、例示のために提示されてきたが、網羅的であることも、開示される実施形態に限定されることも意図していない。説明される実施形態の範囲および趣旨を逸脱することなく、多くの変形形態および変更形態が当業者には明白となろう。本明細書で使用される用語は、実施形態の原理、実際的な応用、または市場で見られる技術に優る技術的改良を最もよく説明するように、あるいは当業者が、本明細書で開示される実施形態を理解することを可能にするように選ばれている。
【００５０】
当業者には理解されるとおり、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、完全にハードウェア実施形態の形態をとることも、本明細書で「回路」、「モジュール」、または「システム」とすべて一般的に呼ばれるソフトウェア態様（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）とハードウェア態様を組み合わせた実施形態の形態をとることも可能である。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現化されている１つまたは複数のコンピュータ可読媒体において具現化されたコンピュータ・プログラム製品の形態をとってもよい。
【００５１】
１つまたは複数のコンピュータ可読媒体の任意の組合せが利用されることが可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であることが可能である。コンピュータ可読記憶媒体は、例えば、電子システム、電子装置、または電子デバイス、磁気システム、磁気装置、または磁気デバイス、光学システム、光学装置、または光学デバイス、電磁システム、電磁装置、または電磁デバイス、赤外線システム、赤外線装置、または赤外線デバイス、または半導体システム、半導体装置、または半導体デバイス、あるいは以上の任意の適切な組合せであり得るが、以上には限定されない。コンピュータ可読記憶媒体の１つまたは複数の具体的な例（網羅的でないリスト）には、以下、すなわち、１つまたは複数の結線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能なプログラマブル読取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または以上の任意の適切な組合せが含まれる。本明細書の脈絡で、コンピュータ可読記憶媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらに関連して使用するためのプログラムを包含する、または記憶することが可能な任意の実体のある媒体であり得る。
【００５２】
コンピュータ可読媒体上に具現化されたプログラム・コードは、ワイヤレス、有線、光ファイバ・ケーブル、ＲＦなど、または以上の任意の適切な組合せを含むが、以上には限定されない任意の適切な媒体を使用して送信され得る。
【００５３】
コンピュータ可読信号媒体には、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードが実現されている伝搬されるデータ信号が含まれる。そのような伝搬される信号は、電磁気、光、または電磁気と光の任意の適切な組合せを含む、様々な形態のいずれをとることも可能である。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらに関連して使用するためのプログラムを通信する、伝搬する、またはトランスポートすることができる任意のコンピュータ可読媒体であり得る。
【００５４】
本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または類似したプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれることが可能である。このプログラム・コードは、完全にユーザのコンピュータ上で実行されても、部分的にユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして実行されても、部分的には、ユーザのコンピュータ上で、部分的には、遠隔コンピュータ上で実行されても、または完全に遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。完全に遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されることが可能であり、あるいは接続は、外部のコンピュータに対して行われることが可能である（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）。
【００５５】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図、あるいはその両方を参照して前段で説明される。流れ図またはブロック図、あるいはその両方の各ブロック、ならびに流れ図またはブロック図、あるいはその両方のブロックの組合せは、コンピュータ・プログラム命令によって実施され得ることが理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに供給されて、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図、あるいはその両方のブロックまたは複数のブロックに明記される機能または動作を実施するための手段をもたらすようになることが可能である。
【００５６】
また、これらのコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスを、特定の様態で機能するように導くことができるコンピュータ可読媒体の中に記憶されていることも可能であり、したがって、そのコンピュータ可読媒体の中に記憶された命令が、流れ図またはブロック図、あるいはその両方のブロックまたは複数のブロックに明記される機能または動作を実施する命令を含む製造品をもたらす。
【００５７】
また、これらのコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、そのコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスの上で一連の動作上のステップが実行されるようにして、そのコンピュータまたは他のプログラマブル装置の上で実行される命令が、流れ図またはブロック図、あるいはその両方のブロックまたは複数のブロックに明記される機能または動作を実施するためのプロセスをもたらすようになることも可能である。
【００５８】
次に図１７を参照すると、本発明の少なくとも１つの実施形態を実施するための代表的なハードウェア環境が示されている。この概略図は、本発明の少なくとも１つの実施形態による情報処理／コンピュータ・システムのハードウェア構成を示す。このシステムは、少なくとも１つのプロセッサまたは中央処理装置（ＣＰＵ）１０を備える。ＣＰＵ１０は、システム・バス１２で、ランダム・アクセス・メモリ（ＲＡＭ）１４、読取り専用メモリ（ＲＯＭ）１６、および入出力（Ｉ／Ｏ）アダプタ１８などの様々なデバイスと互いに接続される。入出力アドレス１８は、ディスク・ユニットおよびテープ・ドライブ１３などの周辺デバイス、またはシステムによって読取り可能である他のプログラマブル記憶デバイスに接続され得る。システムは、プログラマブル記憶デバイス上の本発明の命令を読み取り、それらの命令に従って、本発明の少なくとも１つの実施形態の方法を実行することができる。システムは、キーボード１５、マウス１７、スピーカ２４、マイクロフォン２２、またはタッチスクリーン・デバイス（図示せず）などの他のユーザ・インターフェース・デバイス、あるいはそのすべてをバス１２に接続して、ユーザ入力を集めるユーザ・インターフェース・アダプタ１９をさらに含む。さらに、通信アダプタ２０が、バス１２をデータ処理ネットワーク２５に接続し、ディスプレイ・アダプタ２１が、バス１２を、例えば、モニタ、プリンタ、またはトランスミッタなどの出力デバイスとして実現され得るディスプレイ・デバイス２３に接続する。
【００５９】
連盟型連合ネットワークにおいて堅牢なプライバシ保護データ配信をもたらすためのプロセス・ソフトウェアは、ＣＤ、ＤＶＤなどの記憶媒体をロードすることを介してクライアント・コンピュータ、サーバ・コンピュータ、およびプロキシ・コンピュータに直接に手作業でロードすることによって展開され得るものと理解されるが、プロセス・ソフトウェアは、プロセス・ソフトウェアを中央サーバまたはグループの中央サーバに送信することによってコンピュータ・システムに自動的に、または半自動的に展開されることも可能である。その場合、プロセス・ソフトウェアは、プロセス・ソフトウェアを実行するクライアント・コンピュータにダウンロードされる。代替として、プロセス・ソフトウェアは、電子メールを介してクライアント・システムに直接に送信される。その場合、プロセス・ソフトウェアは、プロセス・ソフトウェアを切り離してディレクトリに入れるプログラムを実行する電子メール上のボタンによって切り離されてディレクトリに入れられる、またはディレクトリにロードされる。別の代替は、プロセス・ソフトウェアを、クライアント・コンピュータ・ハードドライブ上のディレクトリに直接に送ることである。プロキシ・サーバが存在する場合、プロセスは、プロキシ・サーバ・コードを選択し、いずれのコンピュータ上にプロキシ・サーバのコードを置くかを決定し、プロキシ・サーバ・コードを送信し、その後、そのプロキシ・コンピュータにプロキシ・サーバ・コードをインストールする。プロセス・ソフトウェアは、プロキシ・サーバに送信され、次に、プロキシ・サーバ上に記憶される。
【００６０】
図１８は、プロセス・ソフトウェアの展開のための方法（１００）を示す。最初にすることは、プロセス・ソフトウェアが実行された際に、サーバまたは複数のサーバの上に常駐するプログラムが存在するかどうかを判定することである（１０１）。存在する場合、それらの実行ファイルを包含するサーバが識別される（２０９）。そのサーバまたはそれらのサーバのためのプロセス・ソフトウェアは、ＦＴＰもしくは何らかの他のプロトコルを介してサーバのストレージに直接に、または共有されるファイル・システムの使用を介してコピーすることによって転送される（２１０）。次に、プロセス・ソフトウェアが、サーバにインストールされる（２１１）。
【００６１】
次に、プロセス・ソフトウェアが、ユーザに、サーバまたは複数のサーバの上のプロセス・ソフトウェアにアクセスさせることによってプロセス・ソフトウェアが展開されるべきかどうかの判定が行われる（１０２）。ユーザが、サーバ上のプロセス・ソフトウェアにアクセスすることになる場合、プロセス・ソフトウェアを記憶するサーバ・アドレスが識別される（１０３）。
【００６２】
プロキシ・サーバが構築されて（２００）、プロセス・ソフトウェアを記憶すべきかどうかの判定が行われる。プロキシ・サーバは、ウェブブラウザなどのクライアント・アプリケーションと本物のサーバとの間に配置されるサーバである。プロキシ・サーバは、本物のサーバに対するすべての要求をインターセプトして、プロキシ・サーバ自らがそれらの要求を満たすことができるかどうかを調べる。要求を満たすことができない場合、プロキシ・サーバは、その要求を本物のサーバに転送する。プロキシ・サーバの２つの主要な利点は、パフォーマンスを向上させること、および要求を選別することである。プロキシ・サーバが要求される場合、プロキシ・サーバがインストールされる（２０１）。プロセス・ソフトウェアは、ＦＴＰなどのプロトコルを介してサーバに送信される、またはファイル共有を介してソース・ファイルからサーバ・ファイルに直接にコピーされる（２０２）。別の実施形態は、プロセス・ソフトウェアを包含していたサーバにトランザクションを送信し、サーバにそのトランザクションを処理させ、次に、プロセス・ソフトウェアを受信して、サーバのファイル・システムにコピーすることである。プロセス・ソフトウェアがサーバに記憶されると、ユーザが、ユーザのクライアント・コンピュータを介して、サーバ上のプロセス・ソフトウェアにアクセスして、ユーザのクライアント・コンピュータ・ファイル・システムにコピーする（２０３）。別の実施形態は、サーバに、プロセス・ソフトウェアを各クライアントに自動的にコピーさせ、次に、各クライアント・コンピュータにおいてプロセス・ソフトウェアのためのインストール・プログラムを実行することである。ユーザが、ユーザのクライアント・コンピュータにプロセス・ソフトウェアをインストールするプログラムを実行し（２１２）、その後、プロセスを終了する（１０８）。
【００６３】
電子メールを介してユーザにプロセス・ソフトウェアを送信することによってプロセス・ソフトウェアが展開されるべきかどうかの判定が行われる（１０４）。プロセス・ソフトウェアが展開されるユーザのセットが、ユーザ・クライアント・コンピュータのアドレスと一緒に識別される（１０５）。プロセス・ソフトウェアが、電子メールを介してユーザのクライアント・コンピュータのそれぞれに送信される。次に、ユーザが、電子メールを受信し（２０５）、次に、電子メールからプロセス・ソフトウェアを切り離して、ユーザのクライアント・コンピュータのディレクトリに入れる（２０６）。ユーザが、ユーザのクライアント・コンピュータにプロセス・ソフトウェアをインストールし（２１２）、その後、プロセスを終了する（１０８）。
【００６４】
最後に、プロセス・ソフトウェアがユーザのクライアント・コンピュータ上のユーザ・ディレクトリに直接に送信されるかどうかの判定が行われる（１０６）。直接に送信される場合、ユーザ・ディレクトリが識別される（１０７）。プロセス・ソフトウェアは、ユーザのクライアント・コンピュータ・ディレクトリに直接に転送される（２０７）。このことは、ファイル・システム・ディレクトリを共有し、次に、送信者のファイル・システムから受信側ユーザのファイル・システムにコピーすること、または代替として、ファイル転送プロトコル（ＦＴＰ）などの転送プロトコルを使用することなどの、ただし、これらには限定されない、いくつかの様態で行われ得る。
【００６５】
ユーザが、プロセス・ソフトウェアをインストールに備えてクライアント・ファイル・システム上のディレクトリにアクセスする（２０８）。ユーザが、ユーザのクライアント・コンピュータにプロセス・ソフトウェアをインストールするプログラムを実行し（２１２）、その後、プロセスを終了する（１０８）。
【００６６】
連盟型連合ネットワークにおいて堅牢なプライバシ保護データ配信をもたらすための方法を有するプロセス・ソフトウェアは、アプリケーション、オペレーティング・システム、およびネットワーク・オペレーティング・システム・ソフトウェアと共存するようにプロセス・ソフトウェアを提供し、次に、プロセス・ソフトウェアを、プロセス・ソフトウェアが機能する環境におけるクライアントおよびサーバにインストールすることによって、クライアント環境、サーバ環境、およびネットワーク環境に組み込まれる。
【００６７】
最初のステップは、プロセス・ソフトウェアによって要求される、またはプロセス・ソフトウェアと連携して機能する、プロセス・ソフトウェアが展開されるネットワーク・オペレーティング・システムを含むクライアントおよびサーバの上のソフトウェアを識別することである。このソフトウェアには、ネットワーキング・フィーチャを追加することによって基本オペレーティング・システムを強化するソフトウェアであるネットワーク・オペレーティング・システムが含まれる。
【００６８】
次に、ソフトウェア・アプリケーションおよびバージョン番号が識別され、プロセス・ソフトウェアと一緒に機能することが試験されているソフトウェア・アプリケーションおよびバージョン番号のリストと比較される。欠落している、または正しいバージョンと合致しないソフトウェア・アプリケーションは、正しいバージョン番号でアップグレードされる。プロセス・ソフトウェアからソフトウェア・アプリケーションにパラメータを送るプログラム命令が調べられて、それらのパラメータ・リストが、プロセス・ソフトウェアによって要求されるパラメータ・リストと合致することが確実にされる。逆に、ソフトウェア・アプリケーションによってプロセス・ソフトウェアに送られたパラメータが調べられて、それらのパラメータが、プロセス・ソフトウェアによって要求されるパラメータと合致することが確実にされる。ネットワーク・オペレーティング・システムを含むクライアント・オペレーティング・システムおよびサーバ・オペレーティング・システムが識別されて、プロセス・ソフトウェアと一緒に機能することが試験されているオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアのリストと比較される。試験されたオペレーティング・システムおよびバージョン番号のリストと合致しないオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアは、要求されるレベルまでクライアントおよびサーバの上でアップグレードされる。
【００６９】
プロセス・ソフトウェアが展開されるべき場合に、ソフトウェアが、プロセス・ソフトウェアと一緒に機能することが試験されている正しいバージョン・レベルにあることを確実にした後、組込みは、クライアントおよびサーバにプロセス・ソフトウェアをインストールすることによって完了される。
【００７０】
図１９は、プロセス・ソフトウェアを組み込むための方法を示す（２２０）。最初にすることは、サーバまたは複数のサーバの上で実行されるプロセス・ソフトウェア・プログラムが存在するかどうかを判定することである（２２１）。存在しない場合、組込みは、２２７に進む。存在する場合、サーバ・アドレスが識別される（２２２）。それらのサーバが、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を、プロセス・ソフトウェアと一緒に機能することが試験されているそれらのソフトウェアのバージョン番号と一緒に含むソフトウェアを包含するかどうかを確かめるように、それらのサーバが調べられる（２２３）。また、それらのサーバが調べられて、プロセス・ソフトウェアによって要求されるソフトウェアで欠けているものがないかどうかも判定される（２２３）。
【００７１】
バージョン番号が、プロセス・ソフトウェアと一緒に試験されているＯＳ、アプリケーション、およびＮＯＳのバージョン番号と合致するかどうかの判定が行われる（２２４）。バージョンのすべてが合致し、要求されるソフトウェアで欠けているものがない場合、組込みは、２２７に進む。
【００７２】
バージョン番号のうちの１つまたは複数が合致しない場合、合致しないバージョンは、サーバまたは複数のサーバ上で正しいバージョンで更新される（２２５）。さらに、要求されるソフトウェアで欠けているものがある場合、そのソフトウェアが、サーバまたは複数のサーバ上で更新される（２２５）。サーバ組込みは、プロセス・ソフトウェアをインストールすることで完了する（２２６）。
【００７３】
２２１、２２４、または２２６に続いて、クライアント上で実行されるプロセス・ソフトウェアのプログラムが存在するかどうかが判定される（２２７）。クライアント上で実行されるプロセス・ソフトウェア・プログラムが存在しない場合、組込みは、２３０に進み、終了する。存在する場合、クライアント・アドレスが識別される（２２８）。
【００７４】
それらのクライアントが、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を、プロセス・ソフトウェアと一緒に試験されているそれらのソフトウェアのバージョン番号と一緒に含むソフトウェアを包含するかどうかを確かめるように、クライアントが調べられる（２２９）。また、それらのクライアントが調べられて、プロセス・ソフトウェアによって要求されるソフトウェアで欠けているものがないかどうかも判定される（２２９）。
【００７５】
バージョン番号が、プロセス・ソフトウェアと一緒に試験されているＯＳ、アプリケーション、およびＮＯＳのバージョン番号と合致するかどうかの判定が行われる（２３１）。バージョンのすべてが合致し、要求されるソフトウェアで欠けているものがない場合、組込みは、２３０に進み、終了する。
【００７６】
バージョン番号のうちの１つまたは複数が合致しない場合、合致しないバージョンは、クライアント上で正しいバージョンで更新される（２３２）。さらに、要求されるソフトウェアで欠けているものがある場合、そのソフトウェアが、クライアント上で更新される（２３２）。クライアント組込みは、クライアントにプロセス・ソフトウェアをインストールすることで完了する（２３３）。組込みは、２３０に進み、終了する。
【００７７】
連盟型連合ネットワークにおいて堅牢なプライバシ保護データ配信をもたらすためのプロセス・ソフトウェアは、共有され、複数の顧客に柔軟性のある、自動化された様態で同時にサービスを提供する。プロセス・ソフトウェアは、標準化され、ほとんどカスタマイズを要求せず、スケーラブルであり、利用時払い（pay-as-you-go）モデルでオンデマンドで能力を提供する。
【００７８】
プロセス・ソフトウェアは、１つまたは複数のサーバからアクセス可能な共有されるファイル・システム上に記憶され得る。プロセス・ソフトウェアは、アクセスされたサーバ上のＣＰＵユニットを使用するデータおよびサーバ処理要求を包含するトランザクションを介して実行される。ＣＰＵユニットは、サーバの中央プロセッサ上の分数、秒数、時間数などの時間の単位数である。さらに、アクセスされたサーバは、ＣＰＵユニットを要求する要求を他のサーバに行うことが可能である。ＣＰＵユニットは、使用量の１つの測定を表す例に過ぎない。使用量の他の測定には、ネットワーク帯域幅、メモリ使用量、パケット転送、完了したトランザクションなどが含まれるが、以上には限定されない。
【００７９】
複数の顧客が、同一のプロセス・ソフトウェア・アプリケーションを使用するが、顧客のトランザクションは、一意の顧客、およびその顧客のためのサービスのタイプを識別する、トランザクションに含められたパラメータで区別される。各顧客に関するサービスのために使用されたＣＰＵユニットおよび使用量の他の測定が、記録される。１つのサーバに対するトランザクションの数が、そのサーバのパフォーマンスに影響を及ぼしはじめる数に達すると、容量を増やすように、かつ作業負荷を分担するように他のサーバにアクセスが行われる。同様に、ネットワーク帯域幅、メモリ使用量、ストレージ使用量などの使用の他の測定が、パフォーマンスに影響を及ぼすように容量に近づくと、作業負荷を分担するようにさらなるネットワーク帯域幅、メモリ使用量、およびストレージなどが追加される。
【００８０】
各サービスおよび各顧客に関して使用された使用量の測定は、プロセス・ソフトウェアの共有された実行を提供するサーバのネットワーク内のどこであれ、処理された各サービスに関する顧客ごとの使用量の測定を合計する収集サーバに送信される。使用単位の合計された測定に、単位費用が周期的に掛けられて、結果の合計プロセス・ソフトウェア・アプリケーション・サービス費用が、顧客に送信され、またはサービス・プロバイダに後に支払い額の送金をする顧客によってアクセスされるウェブサイト上で示され、あるいはその両方が行われる。
【００８１】
別の実施形態において、サービス・プロバイダが、銀行または金融機関における顧客口座から直接に支払いを要求する。
【００８２】
別の実施形態において、サービス・プロバイダが、プロセス・ソフトウェア・アプリケーションを使用する顧客の顧客でもある場合、サービス・プロバイダに対して負う支払い額は、サービス・プロバイダが負う支払い額と照合されて、支払い額の振込みが最小限に抑えられる。
【００８３】
図２０は、オンデマンド・プロセスのための方法を示す（２４０）。一意の顧客識別子、要求されるサービス・タイプ、ならびにサービスのタイプをさらに指定するサービス・パラメータを包含するトランザクションが、作成される（２４１）。次に、そのトランザクションが、メイン・サーバに送信される（２４２）。オンデマンド環境において、メイン・サーバは、最初、唯一のサーバであることが可能であり、その後、容量が消費されるにつれ、他のサーバがオンデマンド環境に追加される。
【００８４】
オンデマンド環境におけるサーバ中央処理装置（ＣＰＵ）容量のクエリが行われる（２４３）。トランザクションのＣＰＵ要件が推定され、次に、オンデマンド環境におけるサーバの利用可能なＣＰＵ容量が、トランザクションＣＰＵ要件と比較されて、いずれかのサーバにおいてトランザクションを処理するのに十分なＣＰＵが利用可能であるかどうかが調べられる（２４４）。十分なサーバＣＰＵ利用可能容量が存在しない場合、さらなるサーバＣＰＵ容量がトランザクションを処理するように割り振られる（２４８）。既に十分な利用可能なＣＰＵ容量が存在していた場合、トランザクションは、選択されたサーバに送信される（２４５）。
【００８５】
トランザクションを実行する前に、残りのオンデマンド環境が調べられて、その環境が、トランザクションを処理するための十分な利用可能な容量を有するかどうかの判定が行われる。この環境容量は、ネットワーク帯域幅、プロセッサ・メモリ、ストレージなどの、ただし、以上には限定されないものから成る（２４６）。十分な利用可能な容量が存在しない場合、容量が、オンデマンド環境に追加される（２４７）。次に、トランザクションを処理するのに要求されるソフトウェアにアクセスが行われ、メモリにロードされ、その後、トランザクションが実行される（２４９）。
【００８６】
使用量測定が記録される（２５０）。使用量測定は、トランザクションを処理するのに使用されるオンデマンド環境における機能の部分から成る。ネットワーク帯域幅、プロセッサ・メモリ、ストレージ、およびＣＰＵサイクルなどの、ただし、以上には限定されない機能の使用量が、記録されるものである。それらの使用量は、合計され、単位費用が掛けられ、その後、要求側顧客に対する料金として記録される（２５１）。
【００８７】
顧客が、オンデマンド費用がウェブサイトに掲示されることを要求した場合（２５２）、それらの費用は、掲示される（２５３）。顧客が、オンデマンド費用が、電子メールを介して顧客アドレスに送信されることを要求した場合（２５４）、それらの費用は、送信される（２５５）。顧客が、オンデマンド費用が顧客口座から直接に支払われることを要求した場合、支払いは、顧客口座から直接に受け取られる（２５７）。最後のステップは、オンデマンド・プロセスを終了することである。
【００８８】
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施例のアーキテクチャ、機能、および動作を示す。これに関して、流れ図またはブロック図における各ブロックは、明記された論理機能を実施するための１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部分を表すことが可能である。また、一部の代替の実施例において、ブロックの中に記載される機能は、図に記載される順序を外れて実行されてもよいことにも留意されたい。関与する機能に依存して、例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、またはそれらのブロックが、ときとして、逆の順序で実行されてもよい。
【００８９】
本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、本発明を限定することは意図していない。本明細書で使用される「或る」および「その」という単数形は、文脈が明らかにそうでないことを示すのでない限り、複数形も含むことを意図している。基本語（root terms）である、「含む」または「有する」、あるいはその両方は、本明細書で使用される場合、記載される特徴、完全体（ｉｎｔｅｇｅｒｓ）、ステップ、動作、要素、または構成要素、あるいはそのすべてを明示するが、他の少なくとも１つの特徴、完全体、ステップ、動作、要素、構成要素、または以上のグループ、あるいはそのすべての存在または追加を除外しないことがさらに理解されよう。
【００９０】
添付の特許請求の範囲におけるすべての手段プラス機能要素（means plusfunction elements）の対応する構造、材料、動作、および均等物は、特に主張される他の主張される要素との組合せで機能を実行するための任意の構造または材料を含むことが意図される。本発明の説明は、例示および説明のために提示されているが、網羅的であることも、開示される形態における本発明に限定されることも意図していない。本発明の範囲および趣旨を逸脱することなく、多くの変形形態および変更形態が、当業者には明白となろう。実施形態は、本発明の原理、実際的な応用を最もうまく説明するため、および当業者が、企図される特定の用途に適した様々な変形とともに様々な実施形態に関して本発明を理解することを可能にするために選ばれ、説明されている。
【産業上の利用可能性】
【００９１】
連盟型連合ネットワーク内のノードにおいて情報を検索して、要求される情報が存在するかどうかを判定する方法を特徴とするシステムが、提供される。提供されるシステムおよび方法は、情報要求パケットの中に存在するヘッダ情報を使用して、要求側ノードに確認応答を送信して、その確認応答を要求側ノードに返すようにルーティングすること、および要求される情報をコーディングすることに特に適している。そのノードと要求側ノードとの間の複数のパスが、いずれの第三者も、その第三者によって制御される任意の１つまたは複数のノードを、異なるｋ−１個を超えるパケットが通過するようにさせることがないように選択される。
【図１】
0006381635.tif 000004
【図２】
0006381635.tif 000005
【図３】
0006381635.tif 000006
【図４】
0006381635.tif 000007
【図５】
0006381635.tif 000008
【図６】
0006381635.tif 000009
【図７】
0006381635.tif 000010
【図８】
0006381635.tif 000011
【図９】
0006381635.tif 000012
【図１０】
0006381635.tif 000013
【図１１】
0006381635.tif 000014
【図１２】
0006381635.tif 000015
【図１３】
0006381635.tif 000016
【図１４】
0006381635.tif 000017
【図１５】
0006381635.tif 000018
【図１６】
0006381635.tif 000019
【図１７】
0006381635.tif 000020
【図１８】
0006381635.tif 000021
【図１９】
0006381635.tif 000022
【図２０】
0006381635.tif 000023