(57)【特許請求の範囲】
【請求項１】
通信ネットワークの１つまたは複数の制御ノードにおいて実施される方法であって、
前記１つまたは複数の制御ノードを介して、前記通信ネットワークの複数のノードの動作上の情報を受信し、前記動作上の情報は、問題を抱えたノードの指示に関する情報を含み、前記問題を抱えたノードは、障害の可能性を有するが、まだ障害が生じていない前記通信ネットワークのノードを含むこと、
前記１つまたは複数の制御ノードを介して、問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて、復元プランを決定し、前記復元プランは、１つまたは複数の修復データパッケージに関連し、前記復元プランは、前記問題を抱えたノードを修復するように前記問題を抱えたノードによって実行されることが可能であること、
前記１つまたは複数の制御ノードを介して、前記復元プランに関連する最適配信条件を決定すること、および
前記１つまたは複数の制御ノードを介して、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された問題を抱えたノードに隣接する選定された問題を抱えていないノードに、前記選定された問題を抱えたノードの障害に先立って供給し、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを前記供給することは、前記決定された最適配信条件に少なくとも部分的に基づくことを備える方法。
【請求項２】
前記復元プランに関連する最適配信条件の前記決定は、前記１つまたは複数の修復データパッケージを供給する順序を編成するように、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項１に記載の方法。
【請求項３】
前記通信ネットワークに関連する動的ネットワーク条件データを受信することをさらに備え、
前記復元プランに関連する最適配信条件の前記決定は、前記動的ネットワーク条件データに少なくとも部分的に基づく請求項１に記載の方法。
【請求項４】
前記動的ネットワーク条件データは、ルーティングテーブルに関連付けられた観測されるホップカウント、観測されるマップ遅延時間、または既存のトラフィックからの観測される輻輳条件のうちの１つまたは複数に少なくとも部分的に基づく請求項３に記載の方法。
【請求項５】
前記通信ネットワークに関連する静的ネットワーク条件データを受信し、前記静的ネットワーク条件データは、ネットワークコストマップに少なくとも部分的に基づくことをさらに備え、
前記復元プランに関連する最適配信条件の前記決定は、前記動的ネットワーク条件データおよび前記静的ネットワーク条件データに少なくとも部分的に基づく請求項４に記載の方法。
【請求項６】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノード、および前記アプリケーションを冗長にサポートする第２のノードに関する動的ネットワーク条件データを含み、さらに前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションを冗長にサポートする前記第２のノードに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項３に記載の方法。
【請求項７】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノードに関連付けられたバッファステータスに関する動的ネットワーク条件データを含み、さらに前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションをサポートする前記第１のノードに関連付けられた前記バッファステータスに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項３に記載の方法。
【請求項８】
問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて点検プランを供給し、前記点検プランは、前記問題を抱えていないノードの少なくとも一部分の、前記問題を抱えたノードの少なくとも一部分を探査することを目的とする点検ノードとしての選択を含むこと、および
前記動的ネットワーク条件データに少なくとも部分的に基づいて、前記点検プランに関連する最適点検条件を決定することをさらに備える請求項３に記載の方法。
【請求項９】
通信ネットワークの１つまたは複数の制御ノードにおいて実施される方法であって、
前記１つまたは複数の制御ノードを介して、前記通信ネットワークの複数のノードの動作上の情報を受信し、前記動作上の情報は、問題を抱えたノードの指示に関する情報を含み、前記問題を抱えたノードは、障害の可能性を有するが、まだ障害が生じていないこと、
前記１つまたは複数の制御ノードを介して、問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて、復元プランを供給し、前記復元プランは、１つまたは複数の修復データパッケージに関連し、前記復元プランは、前記問題を抱えたノードを修復するように前記問題を抱えたノードによって実行されることが可能であること、
前記１つまたは複数の制御ノードを介して、前記通信ネットワークに関連する動的ネットワーク条件データを受信すること、および
前記１つまたは複数の制御ノードを介して、前記動的ネットワーク条件データに少なくとも部分的に基づいて、前記復元プランに関連する最適配信条件を決定することを備える方法。
【請求項１０】
前記復元プランに関連する最適配信条件の前記決定は、前記１つまたは複数の修復データパッケージの配信の順序を編成するように、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項９に記載の方法。
【請求項１１】
前記動的ネットワーク条件データは、ルーティングテーブルに関連付けられた観測されるホップカウント、観測されるマップ遅延時間、または既存のトラフィックからの観測される輻輳条件のうちの１つまたは複数に少なくとも部分的に基づく請求項９に記載の方法。
【請求項１２】
前記通信ネットワークに関連する静的ネットワーク条件データを受信し、前記静的ネットワーク条件データは、ネットワークコストマップに少なくとも部分的に基づくことをさらに備え、
前記復元プランに関連する最適配信条件の前記決定は、前記動的ネットワーク条件データおよび前記静的ネットワーク条件データに少なくとも部分的に基づく請求項９に記載の方法。
【請求項１３】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノード、および前記アプリケーションを冗長にサポートする第２のノードに関する動的ネットワーク条件データを含み、さらに前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションを冗長にサポートする前記第２のノードに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項９に記載の方法。
【請求項１４】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノードに関連付けられたバッファステータスに関する動的ネットワーク条件データを含み、さらに前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションをサポートする前記第１のノードに関連付けられた前記バッファステータスに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項９に記載の方法。
【請求項１５】
互いに通信するように構成された複数のノード
を備える通信ネットワークであって、
前記複数のノードのうちの少なくとも１つは、１つまたは複数の制御ノードを備え、前記１つまたは複数の制御ノードは、
前記１つまたは複数の制御ノードを介して、前記通信ネットワークの複数のノードの動作上の情報を受信し、前記動作上の情報は、問題を抱えたノードの指示に関する情報を含み、前記問題を抱えたノードは、障害の可能性を有するが、まだ障害が生じておらず、
前記１つまたは複数の制御ノードを介して、問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて、復元プランを決定し、前記復元プランは、１つまたは複数の修復データパッケージに関連し、前記復元プランは、前記問題を抱えたノードを修復するように前記問題を抱えたノードによって実行されることが可能であり、
前記１つまたは複数の制御ノードを介して、前記復元プランに関連する最適配信条件を決定し、さらに
前記１つまたは複数の制御ノードを介して、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された問題を抱えたノードに隣接する選定された問題を抱えていないノードに、前記選定された問題を抱えたノードの障害に先立って供給し、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを前記供給することは、前記決定された最適配信条件に少なくとも部分的に基づくように構成される通信ネットワーク。
【請求項１６】
前記復元プランに関連する最適配信条件の前記決定は、前記１つまたは複数の修復データパッケージの配信の順序を編成するように、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項１５に記載の通信ネットワーク。
【請求項１７】
前記複数のノードのうちの前記少なくとも１つは、さらに、
前記通信ネットワークに関連する動的ネットワーク条件データを受信し、前記動的ネットワーク条件データは、ルーティングテーブルに関連付けられた観測されるホップカウント、観測されるマップ遅延時間、または既存のトラフィックからの観測される輻輳条件のうちの１つまたは複数に少なくとも部分的に基づき、
前記通信ネットワークに関連する静的ネットワーク条件データを受信し、前記静的ネットワーク条件データは、ネットワークコストマップに少なくとも部分的に基づくように構成され、
前記復元プランに関連する最適配信条件の前記決定は、前記動的ネットワーク条件データおよび前記静的ネットワーク条件データに少なくとも部分的に基づく請求項１５に記載の通信ネットワーク。
【請求項１８】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノード、および前記アプリケーションを冗長にサポートする第２のノードに関する動的ネットワーク条件データを含み、前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションを冗長にサポートする前記第２のノードに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項１７に記載の通信ネットワーク。
【請求項１９】
前記動的ネットワーク条件データは、アプリケーションをサポートする第１のノードに関連付けられたバッファステータスに関する動的ネットワーク条件データを含み、前記復元プランに関連する最適配信条件の前記決定は、前記アプリケーションをサポートする前記第１のノードに関連付けられた前記バッファステータスに少なくとも部分的に基づいて、前記問題を抱えたノードに関連付けられた優先順位付けを調整することを含む請求項１７に記載の通信ネットワーク。
【請求項２０】
前記複数のノードのうちの前記少なくとも１つは、さらに、
問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて点検プランを供給し、前記点検プランは、前記問題を抱えていないノードの少なくとも一部分の、前記問題を抱えたノードの少なくとも一部分を探査することを目的とする点検ノードとしての選択を含み、
前記動的ネットワーク条件データに少なくとも部分的に基づいて、前記点検プランに関連する最適点検条件を決定するように構成される請求項１７に記載の通信ネットワーク。
【請求項２１】
通信ネットワークの１つまたは複数の制御ノードに関連付けられた複数のノードのうちの１つまたは複数で使用するための製品であって、
１つまたは複数のプロセッサによって実行されると、コンピューティングデバイスに、
前記１つまたは複数の制御ノードを介して、前記通信ネットワークの複数のノードの動作上の情報を受信し、前記動作上の情報は、問題を抱えたノードの指示に関する情報を含み、前記問題を抱えたノードは、障害の可能性を有するが、まだ障害が生じておらず、
前記１つまたは複数の制御ノードを介して、問題を抱えたノードの前記受信された指示に少なくとも部分的に基づいて、復元プランを決定し、前記復元プランは、１つまたは複数の修復データパッケージに関連し、前記復元プランは、前記問題を抱えたノードを修復するように前記問題を抱えたノードによって実行されることが可能であり、
前記１つまたは複数の制御ノードを介して、前記復元プランに関連する最適配信条件を決定し、
前記１つまたは複数の制御ノードを介して、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された問題を抱えたノードに隣接する選定された問題を抱えていないノードに、前記選定された問題を抱えたノードの障害に先立って供給し、前記１つまたは複数の修復データパッケージのうちの少なくとも１つを前記供給することは、前記決定された最適配信条件に少なくとも部分的に基づくこと
を動作させるマシン可読命令を格納する、一時的でない信号を担持する媒体
を備える製品。
【発明の詳細な説明】
【背景技術】
【０００１】
通信システムにおいて、自己回復システムが、障害が生じている、または障害が生じたノードを修復するのに利用され得る。自己回復システムは、センサネットワークで利用されてきた。同様に、自己回復システムは、ネットワークルーティングコストテーブルを含み得るアドホックネットワークフォーマットでも利用されてきた。しかし、そのような自己回復システムは、障害が生じている、または障害が生じたノードを修復するのに利用される際、変化するネットワーク条件を考慮に入れてこなかった可能性がある。
【発明の概要】
【０００２】
通信ネットワークの１つまたは複数の制御ノードにおいて実施される復元プランに関連する最適配信条件を決定するための一実装形態において、この１つまたは複数の制御ノードは、通信ネットワークの複数のノードの動作上の情報を受信することが可能である。この動作上の情報には、潜在的に問題を抱えたノードの指示（indication）に関する情報が含まれ得る。この１つまたは複数の制御ノードは、潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、復元プランを決定することが可能である。復元プランは、１つまたは複数の修復データパッケージに関連することが可能である。１つまたは複数の制御ノードは、復元プランに関連する最適配信条件を決定することが可能である。１つまたは複数の制御ノードは、１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された潜在的に問題を抱えたノードに隣接する選定された問題を抱えていないノードに、選定された潜在的に問題を抱えたノードの障害に先立って供給することが可能である。１つまたは複数のデータパッケージのうちの少なくとも１つのデータパッケージのそのような供給は、決定された最適配信条件に少なくとも部分的に基づくことが可能である。
【０００３】
通信ネットワークの１つまたは複数の制御ノードにおいて実施される復元プランに関連する最適配信条件を決定するための別の実装形態において、この１つまたは複数の制御ノードは、通信ネットワークの複数のノードの動作上の情報を受信することが可能である。この動作上の情報には、潜在的に問題を抱えたノードの指示に関する情報が含まれ得る。この１つまたは複数の制御ノードは、潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、復元プランを決定することが可能である。復元プランは、１つまたは複数の修復データパッケージに関連することが可能である。１つまたは複数の制御ノードは、通信ネットワークに関連する動的ネットワーク条件データを受信することが可能である。１つまたは複数の制御ノードは、この動的ネットワーク条件データに少なくとも部分的に基づいて、復元プランに関連する最適配信条件を決定することが可能である。
【０００４】
以上の概要は、単に例示的であり、全く限定することを意図するものではない。前述した例示的な態様、実装形態、および特徴に加えて、さらなる態様、実装形態、および特徴が、図面、および以下の詳細な説明を参照することによって明白となろう。
【図面の簡単な説明】
【０００５】
【図１】本開示の少なくとも一部の実装形態により構成された例示的な通信ネットワークを示す図である。
【図２】本開示の少なくとも一部の実装形態により構成された通信ネットワークに関連する最適配信条件を決定するための例示的なプロセスを示す図である。
【図３】本開示の少なくとも一部の実装形態により構成された通信ネットワークに関連する最適配信条件を決定するための別の例示的なプロセスを示す図である。
【図４】本開示の少なくとも一部の実装形態により構成された例示的なコンピュータプログラム製品を示す図である。
【図５】本開示の少なくとも一部の実装形態により構成されたコンピューティングデバイスの例示的な実装形態を示すブロック図である。
【発明を実施するための形態】
【０００６】
以下の説明は、特許請求される主題の徹底的な理解をもたらすように特定の詳細とともにさまざまな実施例を示す。特許請求される主題は、本明細書で開示される特定の詳細のいくつか、またはそれより多くを伴わずに実施されることも可能であることが、当業者には理解されよう。さらに、一部の状況において、よく知られた方法、手順、システム、構成要素、および／または回路は、特許請求される主題を不必要に不明瞭にすることを避けるために、詳細には説明されていない。
【０００７】
以下の詳細な説明において、本明細書の一部分を形成する添付の図面が参照される。それらの図面において、同様の符号は、文脈によってそうでないことが規定されない限り、通常、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明される例示的な実装形態は、限定することは意図していない。本明細書で提示される主題の趣旨も範囲も逸脱することなく、他の実装形態が利用されることが可能であり、さらに他の変更が行われることが可能である。本明細書で全体的に説明され、図で例示される本開示の態様は、すべて明示的に企図されるとともに、本開示の一部とされる、多種多様な異なる構成において構成され、置換され、組み合わされ、さらに設計されることが可能であることが容易に理解されよう。
【０００８】
本開示は、とりわけ、潜在的に問題を抱えたノードに対処する復元プランに関連する最適配信条件を決定することと関係する方法、装置、システム、および／またはコンピュータプログラム製品に関する。
【０００９】
以下に説明されるのは、修復戦略の設計および実施においてネットワークルーティングコストを使用するという概念である。一部の実施例において、固定帯域幅通信ネットワークにおいて頻繁な可能性のある修復展開の効果が考慮される。たとえば、より低い通信ネットワークストレス、およびより迅速な修復が、通信ネットワークにおける潜在的に問題を抱えたノードの自己修復のために設計された復元プランに関連するであろう速度およびリソース要求を考慮することに少なくとも部分的に基づいて、求められ得る。本明細書で説明される一部の戦略は、そのような復元プランを開発し、さらに／または最適化する際に動的な通信ネットワーク制限、および／または静的な通信ネットワーク制限を考慮して、自己回復が迅速に、さらに他のプロセスに与える影響をより小さくして行われるようにすることが可能である。
【００１０】
本明細書で使用される「通信ネットワーク」という用語は、互いに通信するために構成された複数のノードを含む任意の数の通信システムを指すことが可能である。たとえば、そのような通信ネットワークは、専用のインフラストラクチャなしに機能することができる固定帯域幅ワイヤレスのユビキタスコンピューティングタイプのネットワーク（たとえば、Ｚｉｇｂｅｅ（登録商標）タイプの通信ネットワークなど）であることが可能であり、ただし、通信ネットワークの他の例も企図される。たとえば、そのような通信ネットワークは、固定帯域幅を有さなくてもよく、ワイヤレスでなくてもよく（たとえば、電力線ネットワークまたは有線ネットワーク）、専用のインフラストラクチャを含んでもよく、さらに／またはユビキタスコンピューティングタイプのネットワークでなくてもよい。本明細書で使用される「ユビキタスコンピューティングタイプのネットワーク」とは、日常生活全体にわたっていくつかのさまざまなスケールで分布することが可能な、複数の小型の、さらに／または安価なノードを含み得る、メッシュタイプのネットワーク、アドホックネットワークなど、および／またはそのようなネットワークの組み合わせを含む任意の数の通信システムを指すことが可能である。
【００１１】
一例において、通信ネットワークが、いくつかの潜在的に問題を抱えたノード（たとえば、障害を生じた、または間もなく障害を生じる、または障害を生じる可能性が高いノード）と、復元プランとを有することが可能である。本明細書で使用される「復元プラン」という用語は、点検プラン（たとえば、１つまたは複数の点検ステップ）および／または修復プラン（たとえば、ノードにメモリ修復イメージなどの修復データパッケージをロードすること）を含み得る。一部の実施例において、復元プランに関連する最適配信条件は、通信ネットワーク内の進行中の機能を乱すことを最小限に抑える、そのような点検を実行するさまざまな方法、および／または修復データパッケージを配信するさまざまな方法のネットワークコストに少なくとも部分的に基づくことが可能である。
【００１２】
一部の実施例において、修復データパッケージは、間もなく障害を生じることが予期され得る潜在的に問題を抱えたノードの近くにあらかじめロードされ得る。さらに、または代替として、特定の潜在的に問題を抱えたノードに対する修復は、その特定の潜在的に問題を抱えたノードに関連するアプリケーション（たとえば、ユーザアプリケーションもしくはユーザプロセス、システムアプリケーションもしくはシステムプロセスなど）が、第２のノードによって冗長にサポートされている場合、および／またはバッファが、短い時間にわたってそのアプリケーションを維持して、より遅い修復配信を許すことが可能である場合、優先度を下げられることが可能である。
【００１３】
図１は、本開示の少なくとも一部の実装形態により構成された例示的な通信ネットワーク１００の図を示す。通信ネットワーク１００は、互いに通信するように構成されたノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６などの複数のノードを含み得る。個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６が、互いに通信するように構成される（たとえば結合される）ことが可能である。たとえば、個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６は、１対１の直接通信で、さらに／または１つまたは複数のインフラストラクチャデバイス（図示せず）経由の間接通信で、さらに／または個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６の１つまたは複数を経由して中継して通信するように構成される（たとえば、結合される）ことが可能である。個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６は、センサ（たとえば、Ｚｉｇｂｅｅ（登録商標）タイプのデバイス）、セル電話機、ＰＤＡ（携帯情報端末）、パーソナルメディアプレーヤデバイス、ワイヤレスウェブ閲覧デバイス、パーソナルヘッドセットデバイス、アプリケーション特有のデバイス、および／またはそれらに類するデバイス、および／またはそれらの組み合わせなどのポータブル（またはモバイル）電子デバイスを含み得る。後段でより詳細に説明されるとおり、個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６のそれぞれは、制御ノード（制御ノード１０２および１０４によって例示される）、または点検ノード（点検ノード１０６および１０８によって例示される）として指定されることが可能であり、さらに問題を抱えていないノード（問題を抱えていないノード１１０および１１２によって例示される）、または潜在的に問題を抱えたノード（潜在的に問題を抱えたノード１１４および１１６によって例示される）であると特定されることが可能である。
【００１４】
一部の実施例において、１つまたは複数の制御ノード１０２および／または１０４が、復元プランを含み得る自己回復戦略を実施するのに利用されることが可能である。そのような自己回復戦略は、単一の制御ノード（たとえば、制御ノード１０２または１０４）上で実施されることも、複数の制御ノード（たとえば、制御ノード１０２および１０４）上で実施するために任意の数のモジュール内に分散されることも可能である。前述したとおり、そのような復元プランは、点検プラン（たとえば、１つまたは複数の点検ステップ）および／または修復プラン（たとえば、メモリ修復イメージなどの修復データパッケージをノード上にロードすること）を含み得る。たとえば、制御ノード１０２および／または１０４が、個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６のうちの１つまたは複数を、復元プランのそのような点検プラン要素に少なくとも部分的に基づいて、通信ネットワーク１００を監視する点検ノード１０６および／または１０８として指定することが可能である。
【００１５】
一部の実施例において、点検ノード１０６および／または１０８は、通信ネットワーク１００を監視して、潜在的に問題を抱えたノード１１４および／または１１６の指示に関する情報を含む、通信ネットワーク１００に関連する動作上の情報を決定するように構成され得る。点検ノード１０６および／または１０８は、そのような動作上の情報を制御ノード１０２および／または１０４に通信するように構成され得る。
【００１６】
同様に、一部の実施例において、制御ノード１０２および／または１０４が、１つまたは複数の修復データパッケージに関連することが可能な復元プランの修復プランを決定することが可能である。たとえば、制御ノード１０２および／または１０４が、点検ノード１０６および／または１０８から通信された動作上の情報に少なくとも部分的に基づいて、そのような修復プランを決定することが可能である。そのような事例において、制御ノード１０２および／または１０４は、問題を抱えていないノード１１０および１１２と、潜在的に問題を抱えたノード１１４および１１６を区別するように構成され得る。
【００１７】
障害を生じた要素の検出のために何を点検すべきかを決定するためのアルゴリズムは、多くの一般的な事例に関して解決されており、機能を復元するのにいずれのノードが修復される必要があるかを決定するためのアルゴリズムも同様に解決されている。たとえば、そのような点検は、各ノード内の詳細を含み得る。そのような例示的な方法は、空いたメモリ（およびそのようなメモリの変化のレート）、バッファ、キャッシュコールなどを監視することを含み得る。いずれのノードを点検すべきか、さらに／または修復すべきかを決定することと関係する復元プラン（たとえば、点検プラン要素および／または修復プラン要素を含み得る復元プラン）の個々の要素を導き出すための、これらのアルゴリズムを、本明細書でさらに詳細に説明することはしない。いずれのノードを点検すべきか、さらに／または修復すべきかを決定することと関係する復元プランの個々の要素を導き出すためのそのようなアルゴリズムのいくつかの例には、たとえば、Ｓ．Ｓｒｉｎｉｖａｓ、「Ａ  ｐｏｌｙｎｏｍｉｎａｌ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｃｏｍｐｕｔｉｎｇ  ｔｈｅ  ｏｐｔｉｍａｌ  ｒｅｐａｉｒ  ｓｔｒａｔｅｇｙ  ｉｎ  ａ  ｓｙｓｔｅｍ  ｗｉｔｈ  ｉｎｄｅｐｅｎｄｅｎｔ  ｃｏｍｐｏｎｅｎｔ  ｆａｉｌｕｒｅｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｅｌｅｖｅｎｔｈ  Ａｎｎｕａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｕｎｃｅｒｔａｉｎｔｙ  ｉｎ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、Ｓａｎ  Ｆｒａｎｃｉｓｃｏ、ＣＡ、１９９５年、５１５〜５２２ページ、Ｍ．Ｍａｕｖｅ、Ａ．Ｗｉｄｍｅｒ、およびＨ．Ｈａｒｔｅｎｓｔｅｉｎ、「Ａ  ｓｕｒｖｅｙ  ｏｎ  ｐｏｓｉｔｉｏｎ−ｂａｓｅｄ  ｒｏｕｔｉｎｇ  ｉｎ  ｍｏｂｉｌｅ  ａｄ  ｈｏｃ  ｎｅｔｗｏｒｋｓ」、ＩＥＥＥ  ｎｅｔｗｏｒｋ  １５、ｎｏ．６（２００１年）：３０〜３９ページ、Ｐ．Ｃｏｒｋｅ他、「Ａｕｔｏｎｏｍｏｕｓ  ｄｅｐｌｏｙｍｅｎｔ  ａｎｄ  ｒｅｐａｉｒ  ｏｆ  ａ  ｓｅｎｓｏｒ  ｎｅｔｗｏｒｋ  ｕｓｉｎｇ  ａｎ  ｕｎｍａｎｎｅｄ  ａｅｒｉａｌ  ｖｅｈｉｃｌｅ」、２００４  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ、２００４年、Ｐｒｏｃｅｅｄｉｎｇｓ  ＩＣＲＡ’０４、ｖｏｌ．４、２００４年、Ｄ．Ｇｈｏｓｈ他、「Ｓｅｌｆ−ｈｅａｌｉｎｇ  ｓｙｓｔｅｍｓ−ｓｕｒｖｅｙ  ａｎｄ  ｓｙｎｔｈｅｓｉｓ」、Ｄｅｃｉｓｉｏｎ  ｓｕｐｐｏｒｔ  ｓｙｓｔｅｍｓ  ４２、ｎｏ．４（２００７年）、２１６４〜２１８５ページが含まれる。
【００１８】
図２は、本開示の少なくとも一部の実装形態により構成された例示的な通信ネットワークに関連する最適配信条件を決定するための例示的なプロセスを示す。プロセス２００、および本明細書で使用される他のプロセスが、ハードウェア、ソフトウェア、および／またはファームウェアによって実行され得る、処理ステップ、機能動作、イベント、および／または作用として説明され得るさまざまな機能ブロックまたは機能動作を示す。本開示に鑑みて、図２に示される機能ブロックの多数の代替が、さまざまな実装形態において実施されてもよいことが、当業者には認識されよう。たとえば、図２に示されるプロセス２００は、ブロックまたはアクションの１つの特定の順序を備えることが可能であるものの、これらのブロックまたはアクションが提示される順序は、特許請求される主題をいずれかの特定の順序に必ずしも限定するものではない。同様に、特許請求される主題の範囲を逸脱することなく、図２に示されない間に入るアクション、および／または図２に示されないさらなるアクションが、使用されることが可能であり、さらに／または図２に示されるアクションのいくつかが、なくされることが可能である。プロセス２００は、例示的な動作２０２、２０４、２０６、および／または２０８によって示される機能動作の１つまたは複数を含み得る。
【００１９】
図示されるとおり、プロセス２００が、通信ネットワーク１００（図１）に関連する最適配信条件を決定するために実施され得る。処理は、ブロック２０２、「通信ネットワークの複数のノードの動作上の情報を受信する」で始まることが可能であり、通信ネットワークの複数のノードに関連する動作上の情報が受信され得る。たとえば、通信ネットワークの１つまたは複数の制御ノードが、潜在的に問題を抱えたノードの指示に関する情報を含む動作上の情報を受信することが可能である。そのような潜在的に問題を抱えたノードは、外生的原因（たとえば、ウイルスなど）および／または内生的原因（たとえば、メモリ破損、競合条件、無効なポインタもしくはアドレス、来ないデータを待っていることなど）による劣悪な動作が疑われ得る。一部の実施例において、潜在的に問題を抱えたノードの指示に関する情報を含むそのような動作上の情報は、点検ノードのうちの１つまたは複数によって最初に検出されて、その後、制御ノードのうちの１つまたは複数に通信されることも可能である。たとえば、そのような動作上の情報は、潜在的に問題を抱えたノードの各ノードの相対的な健全性の指示（たとえば、障害の確率、障害までの推定される時間など）を提供することが可能である。
【００２０】
処理は、ブロック２０２からブロック２０４、「復元プランを決定する」に進むことが可能であり、復元プランが決定され得る。前述したとおり、そのような復元プランは、点検プラン（たとえば、１つまたは複数の点検ステップ）、および／または修復プラン（たとえば、ノードにメモリ修復イメージなどの修復データパッケージをロードすること）を含み得る。たとえば、通信ネットワークの１つまたは複数の制御ノードが、問題を抱えていないノードと潜在的に問題を抱えたノードを区別し、さらに潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、潜在的に問題を抱えたノードに関するそのような復元プランを決定することが可能である。たとえば、複数の制御ノードが利用され得る（たとえば、第１の制御ノードが、メモリ問題に気付き、メモリ問題を修復することが可能である一方で、別の制御ノードが、無効なアドレステーブルを修復することが可能である）。一部の実施例において、そのような復元プランは、１つまたは複数の修復データパッケージ（たとえば、メモリ修復イメージなど）を、潜在的に問題を抱えたノードに関連付けることが可能であり、これらの修復データパッケージは、潜在的に問題を抱えたノードを、そのようなノードが適切に機能することができるように修復するように構成され得る。前述したとおり、いずれのノードを点検すべきか、さらに／または修復すべきかを決定することと関係する復元プランの個々の要素を導き出すためのアルゴリズムは、多くの一般的な事例に関して解決されており（たとえば、点検プラン要素および／または修復プラン要素を含み得る復元プラン）、本明細書でさらに詳細に説明することはしない。
【００２１】
処理は、ブロック２０４からブロック２０６、「復元プランに関連する最適配信条件を決定する」に進むことが可能であり、復元プランに関連する最適配信条件が決定され得る。たとえば、通信ネットワークの１つまたは複数の制御ノードが、潜在的に問題を抱えたノードに関連する優先順位付けを調整して、１つまたは複数の修復データパッケージの供給の順序を編成することを含むが、そのような調整をすることには限定されない最適配信条件を決定することが可能である。そのような事例において、２つ以上の潜在的に問題を抱えたノードが、それらの潜在的に問題を抱えたノードの各ノードの相対的な健全性の指示をもたらし得る、関連する動作上の情報に少なくとも部分的に基づいて、そのような優先順位付けに関連付けられることが可能である。たとえば、そのような優先順位付けが、相対的に最も大きい問題を抱えた、潜在的に問題を抱えたノードを優先させていることが可能であるが、それらのノードの健全性を考慮することだけでは、最適配信条件を提供されない可能性がある。したがって、図３に関連して後段で述べる実施例において説明されるとおり、決定された最適配信条件を利用して、潜在的に問題を抱えたノードに関連付けられたそのような優先順位が調整され得る。
【００２２】
処理は、ブロック２０６からブロック２０８、「１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された潜在的に問題を抱えたノードに隣接する選定された問題を抱えていないノードに、選定された潜在的に問題を抱えたノードの障害に先立って供給する」に進むことが可能であり、修復データパッケージが、選定された潜在的に問題を抱えたノードに隣接する選定された問題を抱えていないノードに、選定された潜在的に問題を抱えたノードの障害に先立って供給され得る。たとえば、通信ネットワークの１つまたは複数の制御ノードが、決定された最適配信条件に少なくとも部分的に基づいて、１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された問題を抱えていないノードに、選定された潜在的に問題を抱えたノードの障害に先立って供給することが可能である。本明細書で使用される「隣接する」という用語は、必ずしも、物理的に隣接していること、および／またはネットワークホップが隣接していることを要求することなしに、選定された潜在的に問題を抱えたノードに対して、制御ノードと比べて、ネットワークトラフィックの点で、より近い選定された問題を抱えていないノードを指すことが可能である。たとえば、そのような「隣接していること」は、修復データパッケージの扱いおよび配信のための予備のリソースを考慮する基準、および／または、同様のタイプのノードがやはり、間もなく障害を生じ得るが、まだ検出されていない可能性がある場合、ダイバーシティを考慮する基準（たとえば、所与の複数のオプションが、問題を抱えたノードとは異なるタイプ（たとえば、ＯＳタイプ、チップセットタイプなど）のノードに修復データパッケージを配信するのに有利であり得る）に少なくとも部分的に基づくことが可能である。
【００２３】
いずれのノードが潜在的に問題を抱えているかの特定、およびこれらの潜在的に問題を抱えたノードに向けられた修復データパッケージの選択は、ブロック２０４に関連して前述した。動作において、たとえば、プロセス２００を実行する或る制御ノードが、修復を必要とするいくつかの潜在的に問題を抱えたノードにおける実際の障害より数秒前に、可能性の高い障害を検出することが可能である。たとえば、或る障害予測アルゴリズムが、或る時間枠内で障害の確率を生成することが可能であり、そのような確率の変化のレートが、障害までの時間の推定を改良するのに使用され得る。プロセス２００を実行する或る制御ノードが、ネットワーク条件データ（図３に関連して後段でより詳細に説明される）から、障害の時点で高い優先度で修復データパッケージを配信することが、通信ネットワーク上でさらなる問題を生じさせる可能性があることを認識することが可能であり、代わりに、修復を必要としている潜在的に問題を抱えたノードの近くの１つまたは複数の問題を抱えていないノード（たとえば、健全なノード）上に修復データパッケージのいくつか、またはすべてを供給して、修復が始動する際に、修復を必要としている潜在的に問題を抱えたノードが、通信ネットワークにストレスを与えることなしに、健全な近くの問題を抱えていないノードから修復データパッケージを迅速に受信するようにする最適配信条件を決定することが可能である。このことは、通信ネットワークの他の機能に相対的により小さい影響しか及ぼさずに、相対的により迅速な修復を許すことが可能である。
【００２４】
図３は、本開示の少なくとも一部の実装形態により構成された通信ネットワークに関連する最適配信条件を決定するための別の例示的なプロセスを示す。プロセス３００は、動作３０２、３０４、３０８、３１０、３１４、３１６、３２０、３２４、３２６、３２８、３３０、３３２、および／または３３４によって例示される動作の１つまたは複数を含み得る。
【００２５】
プロセス３００が、図２のプロセス２００の実施の１つまたは複数の例を与えることが可能である。図示されるとおり、プロセス３００は、通信ネットワーク１００に関連する最適配信条件を決定するために実施され得る。処理が、動作３０２、「ネットワークを監視する」で始まることが可能であり、通信ネットワーク１００のすべて、またはいくつかの部分が監視され得る。たとえば、点検ノード１０６および／または１０８が、個々のノードのパフォーマンスを監視することなどによって、通信ネットワーク１００のすべて、またはいくつかの部分を監視することが可能である。一部の実施例において、点検ノード１０６および／または１０８は、問題を抱えていないノード１１０および／または１１２、潜在的に問題を抱えたノード１１４および／または１１６、または通信ネットワーク１００の他のノードを監視することが可能である。そのような監視は、潜在的に問題を抱えたノードの指示に関する情報を含む動作上の情報を収集することが可能である。
【００２６】
処理は、動作３０２から動作３０４、「動作上の情報を受信する」に進むことが可能であり、通信ネットワーク１００の複数のノード（たとえば、潜在的に問題を抱えたノード１１４および／または１１６）に関連する動作上の情報が受信され得る。たとえば、通信ネットワーク１００の１つまたは複数の制御ノード１０２および／または１０４が、潜在的に問題を抱えたノードの指示に関する情報を含む動作上の情報を受信することが可能である。そのような潜在的に問題を抱えたノード１１４および／または１１６は、外生的原因（たとえば、ウイルスなど）および／または内生的原因（たとえば、来ないデータを待っていることなど）による劣悪な動作が疑われ得る。一部の実施例において、そのような動作上の情報（たとえば、潜在的に問題を抱えたノードの指示に関する情報）は、点検ノード１０６および／または１０８のうちの１つまたは複数によって最初に検出されて、その後、制御ノード１０２および／または１０４のうちの１つまたは複数に通信されることも可能である。
【００２７】
例示される実施例において、そのような動作上の情報は、制御ノード１０２および／または１０４の１つまたは複数に関連する自己修復モジュール３０６に通信され得る。自己修復モジュール３０６は、制御ノード１０２および／または１０４のうちの単一のノード上で実施されることも、複数の制御ノード１０２および／または１０４上で実施するために任意の数のモジュール内に分散されることも可能である。一部の実施例において、１つまたは複数の制御ノード１０２および／または１０４に関連する自己修復モジュール３０６は、復元プランを含み得る自己回復戦略を実施するのに利用され得る。
【００２８】
処理は、動作３０４から動作３０８、「復元プランを決定する」に進むことが可能であり、復元プランが決定され得る。たとえば、１つまたは複数の制御ノード１０２および／または１０４に関連する自己修復モジュール３０６が、潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、そのような復元プランを決定することが可能である。前述したとおり、そのような復元プランは、点検プラン（たとえば、１つまたは複数の点検ステップ）および／または修復プラン（たとえば、ノードにメモリ修復イメージなどの修復データパッケージをロードすること）を含み得る。
【００２９】
たとえば、制御ノード１０２および／または１０４に関連する自己修復モジュール３０６が、個々のノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および１１６のうちの１つまたは複数を、復元プランのそのような点検プラン要素に少なくとも部分的に基づいて、通信ネットワーク１００を監視する点検ノード１０６および／または１０８として指定することが可能である。
【００３０】
同様に、一部の実施例において、制御ノード１０２および／または１０４に関連する自己修復モジュール３０６が、１つまたは複数の修復データパッケージに関連することが可能な復元プランの修復プラン要素を決定することが可能である。一部の実施例において、そのような修復データパッケージは、潜在的に問題を抱えたノードを、そのようなノードが適切に機能することができるように修復するように構成され得るメモリ修復イメージなどを含み得る。たとえば、制御ノード１０２および／または１０４が、点検ノード１０６および／または１０８から通信された動作上の情報に少なくとも部分的に基づいて、修復プランを決定することが可能である。そのような事例において、制御ノード１０２および／または１０４は、問題を抱えていないノード１１０および１１２と、潜在的に問題を抱えたノード１１４および１１６を区別するように構成され得る。
【００３１】
処理は、動作３０８から動作３１０、「復元プランを受信する」に進むことが可能であり、復元プランが、自己修復モジュール３０６から配信オプティマイザモジュール３１２に転送され得る。たとえば、配信オプティマイザモジュール３１２は、制御ノード１０２および／または１０４の１つまたは複数に関連付けられて、自己修復モジュール３０６から復元プランを受信することが可能である。さらに、または代替として、動作上の情報のすべて、またはいくつかの部分が、配信オプティマイザモジュール３１２によって受信される復元プランに含められる、または関連付けられることも可能である。配信オプティマイザモジュール３１２は、制御ノード１０２および／または１０４のうちの単一のノード上で実施されることも、複数の制御ノード１０２および／または１０４上で実施するために任意の数のモジュール内に分散されることも可能である。さらに、または代替として、配信オプティマイザモジュール３１２と自己修復モジュール３０６は、別々のモジュールとして例示されるものの、配信オプティマイザモジュール３１２および自己修復モジュール３０６のさまざまな動作が、代わりに、１つまたは複数のモジュール内で組み合わされ、さらに／または再編成されてもよい。
【００３２】
さらに、または代替として、動作３１０、「復元プランを受信する」は、自己修復モジュール３０６から点検ノード１０６および／または１０８への復元プランの点検プラン部分のすべて、またはいくつかの部分の転送を含んでもよい。前述したとおり、動作３１０で説明される復元プランは、点検プランを含み得る。復元プランの点検プラン部分は、潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、供給されていることが可能である。そのような点検プランは、問題を抱えていないノード１１０および／または１１２の少なくとも一部分の、潜在的に問題を抱えたノード１１４および／または１１８の少なくとも一部分を探査することを目的とする点検ノード１０６および／または１０８としての選択を含み得る。後段でより詳細に説明されるとおり、動作３３０〜３３４に関して、復元プランの点検プラン部分は、決定された最適点検条件に基づいて変更され得る。
【００３３】
処理は、動作３１０から動作３１４、「動的ネットワーク条件データ」に進むことが可能であり、通信ネットワーク１００に関連する動的ネットワーク条件データが配信オプティマイザモジュール３１２によって受信され得る。たとえば、動的ネットワーク条件データが、配信オプティマイザモジュール３１２によって点検ノード１０６および／または１０８から受信され得る。さらに、または代替として、そのような動的ネットワーク条件データは、点検ノード１０６および／または１０８によって先に収集されることなしに、ノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および／または１１６のうちのいずれかから直接に受信されてもよい。本明細書で使用される「動的ネットワーク条件データ」という用語は、要求、輻輳など、および／またはそれらの組み合わせなどの、変化するネットワーク条件と関係する、観測されたデータが含まれることが可能である。たとえば、そのような動的ネットワーク条件データは、ルーティングテーブルに関連付けられた観測されるホップカウント、観測されるマップ遅延時間、既存のトラフィックからの観測される輻輳条件など、またはそれらの組み合わせに少なくとも部分的に基づくことが可能である。さらに、または代替として、動作３２０に関連して後段でより詳細に説明されるとおり、そのような動的ネットワーク条件データは、複数のノードの間のアプリケーションの冗長なサポートに関するデータ、および／またはそのようなアプリケーションをサポートするバッファステータスに関するデータを含み得る。
【００３４】
さらに、処理は、動作３１０から動作３１６、「静的ネットワーク条件データ」に進むことが可能であり、通信ネットワーク１００に関連する静的ネットワーク条件データが配信オプティマイザモジュール３１２によって受信され得る。たとえば、静的ネットワーク条件データが、配信オプティマイザモジュール３１２によってネットワークコストマップ（または通信ネットワーク１００に関連する非動的条件の他のリポジトリ）から受信され得る。本明細書で使用される「静的ネットワーク条件データ」という用語には、非動的ネットワーク条件と関係する事前に決定されたデータが含まれ得る。たとえば、そのような静的ネットワーク条件データは、帯域幅容量タイプのネットワークコストマップなどに少なくとも部分的に基づくことが可能である。
【００３５】
処理は、動作３１６から動作３２０、「最適配信条件を決定する」に進むことが可能であり、復元プランに関連する最適な配信条件が決定され得る。図示されるとおり、動作３２０は、動作３０２、動作３０４、動作３１０、動作３１４、および動作３１６の順序で行われた後に行われるものとして例示されるが、動作３０２、３０４、３１０、３１４、および／または３１６は、他の何らかの順序で行われてもよい。たとえば、復元プランは、さらなる試験アクション、または特定の監視アクション（たとえば、点検ノード１０６および／または１０８を介する監視）を求める要求を含み得る。そのような実施例において、復元プランは、たとえば、或る仮説を確認するようにさらなる試験データをまず求めることを含むことが可能である。
【００３６】
１つの実施例において、配信オプティマイザモジュール３１２は、動的ネットワーク条件データおよび／または静的ネットワーク条件データに少なくとも部分的に基づいて、１つまたは複数の修復データパッケージを供給する順序を編成するように、潜在的に問題を抱えたノード１１４および／または１１６に関連付けられた優先順位付けを調整することを含むが、そのように調整を行うことには限定されない最適配信条件を決定することが可能である。たとえば、そのような優先順位付けが、相対的に最も大きい問題を抱えた、潜在的に問題を抱えたノード１１４および／または１１６を優先させていることが可能であるが、それらのノードの健全性を考慮することだけでは、最適配信条件が提供されない可能性がある。したがって、決定された最適配信条件を利用して、動的ネットワーク条件データおよび／または静的ネットワーク条件データに少なくとも部分的に基づいて、潜在的に問題を抱えたノード１１４および／または１１６に関連付けられたそのような優先順位が調整され得る。
【００３７】
一部の実装形態において、動的ネットワーク条件データは、アプリケーションをサポートする第１のノード（ノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および／または１１６のいずれか）、およびそのアプリケーションを冗長にサポートする第２のノード（ノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および／または１１６の他のいずれか）に関するデータを含み得る。そのような事例において、復元プランに関連する最適配信条件の決定は、アプリケーションを冗長にサポートする第２のノードに少なくとも部分的に基づいて、潜在的に問題を抱えたノードに関連付けられた優先順位付けを調整することを含み得る。
【００３８】
さらに、または代替として、一部の実装形態において、動的ネットワーク条件データは、アプリケーションをサポートする第１のノード（ノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および／または１１６のいずれか）に関連付けられたバッファステータスに関するデータを含むことが可能であり、さらに復元プランに関連する最適配信条件の決定は、アプリケーションをサポートする第１のノードに関連付けられたバッファステータスに少なくとも部分的に基づいて、潜在的に問題を抱えたノードに関連付けられた優先順位付けを調整することを含む。
【００３９】
処理は、動作３２０から動作３２２、「最適配信条件を転送する」に進むことが可能であり、復元プランに関連する最適配信条件が、配信オプティマイザモジュール３１２から自己修復モジュール３０６に転送され得る。処理は、動作３２２から動作３２４、「修復データパッケージを供給する」に進むことが可能であり、１つまたは複数の修復データパッケージが、選定された問題を抱えたノード１１４および／または１１６に供給され得る。たとえば、１つまたは複数の制御ノード１０２および／または１０４が、決定された最適配信条件に少なくとも部分的に基づいて、１つまたは複数の修復データパッケージのうちの少なくとも１つを、選定された潜在的に問題を抱えたノード１１４および／または１１６に供給することが可能である。
【００４０】
さらに、または代替として、動作３２４に関連して、プロセス３００は、動作３２６、「修復データパッケージを事前供給する」に進むことが可能であり、修復データパッケージが、選定された潜在的に問題を抱えたノード１１４および／または１１６に隣接する選定された問題を抱えていないノード１１０および／または１１２に、選定された潜在的に問題を抱えたノード１１４および／または１１６の障害に先立って供給され得る。処理は、動作３２６から動作３２８、「修復データパッケージを転送する」に進むことが可能であり、選定された問題を抱えていないノード１１０および／または１１２が、事前供給されている修復データパッケージを、選定された潜在的に問題を抱えたノード１１４および／または１１６に転送することが可能である。たとえば、１つまたは複数の制御ノード１０２および／または１０４が、決定された最適配信条件に少なくとも部分的に基づいて、選定された潜在的に問題を抱えたノード１１４および／または１１６の障害に先立って、選定された問題を抱えていないノード１１０および／または１１２に１つまたは複数の修復データパッケージを供給することが可能である。一部の実施例において、選定された潜在的に問題を抱えたノード１１４および／または１１６への転送は、選定された潜在的に問題を抱えたノード１１４および／または１１６における障害、または障害の増大した確率によってトリガされ得る。たとえば、プロセス３００が、修復データパッケージを準備して、障害の所与の確率（たとえば、８パーセントの障害の可能性、１０パーセントの障害の可能性、または１パーセントの障害の可能性）を有する任意のノードの近くに分配し、その後、障害が生じた場合、または障害がより確か（たとえば、９０パーセントの障害の可能性）である場合に限って、選定された潜在的に問題を抱えたノード１１４および／または１１６への修復データパッケージの転送をトリガすることが可能である。一部の実例において、そのような事前供給される修復データパッケージは、使用されずに破棄され得るが、通信ネットワーク１００の利益は、必要とされ得る修復が、影響の小さいトラフィック速度を使用して事前供給されていることが可能であるという点で純利益であり得る。
【００４１】
動作において、たとえば、通信ネットワーク１００が、修復を必要とするいくつかの潜在的に問題を抱えたノード１１４および／または１１６における実際の障害より数秒前に、可能性の高い障害を検出していることが可能である。配信オプティマイザモジュール３１２が、動的ネットワーク条件データ３１４および／または静的ネットワーク条件データ３１６から、障害の時点で高い優先度で修復データパッケージを配信することが、通信ネットワーク１００上でさらなる問題を生じさせる可能性があることを認識することが可能であり、代わりに、配信オプティマイザモジュール３１２は、修復を必要としている潜在的に問題を抱えたノード１１４および／または１１６の近くの１つまたは複数の問題を抱えていないノード１１０および／または１１２（たとえば、健全なノード）上に修復データパッケージのいくつか、またはすべてを供給して、修復が始動する際に、修復を必要としている潜在的に問題を抱えたノード１１４および／または１１６が、通信ネットワーク１００にストレスを与えることなしに、健全な近くの問題を抱えていないノード１１０および／または１１２から修復データパッケージを迅速に受信するようにする最適配信条件３２０を決定することが可能である。このことは、通信ネットワーク１００の他の機能に相対的により小さい影響しか及ぼさずに、相対的により迅速な修復を許すことが可能である。
【００４２】
動作３２０〜３２８に加えて、または動作３２０〜３２８の代替として、プロセス３００は、動作３３０、「最適の点検条件を決定する」に進むことも可能であり、復元プランの点検プラン部分に関連する最適の点検条件が決定され得る。前述したとおり、動作３１０で説明される復元プランは、点検プランを含み得る。復元プランの点検プラン部分は、潜在的に問題を抱えたノードの受信された指示に少なくとも部分的に基づいて、供給されていることが可能である。そのような点検プランは、問題を抱えていないノード１１０および／または１１２の少なくとも一部分の、潜在的に問題を抱えたノード１１４および／または１１８の少なくとも一部分を探査することを目的とする点検ノード１０６および／または１０８としての選択を含み得る。動作３１０に関連して前述したとおり、復元プランの点検プラン部分のすべての、点検ノード１０６および／または１０８への転送が行われ得る。したがって、動作３３０〜３３４は、動作３２０〜３２８の後に行われるものとして例示されるが、動作３３０〜３３４は、動作３２０〜３２８と同時に、または動作３２０〜３２８に先立って行われてもよい（たとえば、動作３３０〜３３４が、動作３１０に関連する点検ノード１０６および／または１０８への点検プランのすべて、またはいくつかの部分の転送に取って代わってもよい）。
【００４３】
図示される実施例において、復元プランの点検プラン部分に関連する最適の点検条件が、動的ネットワーク条件データおよび／または静的ネットワーク条件データに少なくとも部分的に基づいて決定され得る。たとえば、問題を抱えていないノード１１０および／または１１２の少なくとも一部分の、潜在的に問題を抱えたノード１１４および／または１１８の少なくとも一部分を探査することを目的とする点検ノード１０６および／または１０８としての選択が、動的ネットワーク条件データ（たとえば、ルーティングテーブルに関連付けられた観測されるホップカウント、観測されるマップ遅延時間、既存のトラフィックからの観測される輻輳条件など、またはそれらの組み合わせ）に少なくとも部分的に基づくことが可能である。
【００４４】
処理は、動作３３０から動作３３２、「最適の点検条件を転送する」に進むことが可能であり、復元プランに関連する最適の点検条件が、配信オプティマイザモジュール３１２から自己修復モジュール３０６に転送され得る。処理は、動作３３２から動作３３４、「点検ノードの分布を変更する」に進むことが可能であり、点検ノード１０６および／または１０８の分布が、通信ネットワーク１００のノード（たとえば、ノード１０２、１０４、１０６、１０８、１１０、１１２、１１４、および／または１１６のいずれか）の間で変更され得る。変更された点検ノード１０６および／または１０８は、監視動作（動作３０２に関連して前述した）を実行することに進むことが可能である。たとえば、変更された点検ノード１０６および／または１０８が、復元プランの点検プラン要素に関連付けられた、決定された最適の点検条件に少なくとも部分的に基づいて、監視動作を実行することに進むことが可能である。たとえば、以前に観測された障害モードのより良好な認識を円滑にするさらなる変数が、点検ノード１０６および／または１０８を介して監視され得る。
【００４５】
図４は、本開示の少なくとも一部の実施例により構成された例示的なコンピュータプログラム製品４００を示す。プログラム製品４００は、信号を担持する媒体４０２を含み得る。信号を担持する媒体４０２は、１つまたは複数のプロセッサによって実行された場合、コンピューティングデバイスが、図２および／または図３に関連して前述した機能をもたらすことを動作上可能にし得る１つまたは複数のマシン可読命令４０４を含み得る。このため、たとえば、図１のシステムを参照すると、制御ノード１０２および／または１０４の１つまたは複数が、媒体４０２によって伝送される命令４０４に応答して、図２および／または図３に示されるアクションの１つまたは複数を行うことが可能である。
【００４６】
一部の実装形態において、信号を担持する媒体４０２は、ハードディスクドライブ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタルビデオディスク）、デジタルテープ、メモリなどの、ただし、それらには限定されないコンピュータ可読媒体４０６を包含することが可能である。一部の実装形態において、信号を担持する媒体４０２は、メモリ、Ｒ／Ｗ（読み取り／書き込み）ＣＤ、Ｒ／Ｗ  ＤＶＤなどの、ただし、それらには限定されない記録可能な媒体４０８を包含することが可能である。一部の実装形態において、信号を担持する媒体４０２は、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、ワイヤレス通信リンク、その他）などの、ただし、それらには限定されない通信媒体４１０を包含することが可能である。
【００４７】
図５は、本開示の少なくとも一部の実装形態により構成されたコンピューティングデバイス５００の例示的な実装形態を示すブロック図である。１つの例示的な構成５０１において、コンピューティングデバイス５００は、１つまたは複数のプロセッサ５１０と、システムメモリ５２０とを含み得る。メモリバス５３０が、プロセッサ５１０とシステムメモリ５２０の間で通信するために使用され得る。
【００４８】
所望される構成に依存して、プロセッサ５１０は、μＰ（マイクロプロセッサ）、μＣ（マイクロコントローラ）、ＤＳＰ（デジタルシグナルプロセッサ）、またはそれらの組み合わせを含むが、それらには限定されない任意のタイプであり得る。プロセッサ５１０は、レベル１キャッシュ５１１およびレベル２キャッシュ５１２などの１つまたは複数のレベルのキャッシングと、プロセッサコア５１３と、レジスタ５１４とを含み得る。プロセッサコア５１３は、ＡＬＵ（算術論理演算ユニット）、ＦＰＵ（浮動小数点演算装置）、ＤＳＰコア（デジタル信号処理コア）、およびそれらの任意の組み合わせを含み得る。また、メモリコントローラ５１５が、プロセッサ５１０と一緒に使用されることも可能であり、または一部の実装形態において、メモリコントローラ５１５は、プロセッサ５１０の内部部品であることも可能である。
【００４９】
所望される構成に依存して、システムメモリ５２０は、揮発性メモリ（ＲＡＭなどの）、不揮発性メモリ（ＲＯＭ、フラッシュメモリ、その他などの）、またはそれらの組み合わせを含むが、それらには限定されない任意のタイプであり得る。システムメモリ５２０は、オペレーティングシステム５１２と、１つまたは複数のアプリケーション５２２と、プログラムデータ５２４とを含み得る。アプリケーション５２２は、図２のプロセス２００、および／または図３のプロセス３００に関連して説明される機能ブロックおよび／または機能アクションを含め、本明細書で説明される機能を実行するように構成された通信ネットワーク内の最適配信条件アルゴリズム５２３を含み得る。プログラムデータ５２４は、最適配信条件アルゴリズム５２３で使用するためのデータ５２５、たとえば、静的ネットワーク条件に対応するデータなどを含み得る。一部の例示的な実装形態において、アプリケーション５２２は、オペレーティングシステム５２１上でプログラムデータ５２４を用いて動作して、本明細書で説明される、最適配信条件を決定する実装形態が提供され得るようにするように構成されることが可能である。たとえば、制御ノード１０２および／または１０４が、コンピューティングデバイス５００のすべて、または一部分を備えることが可能であり、さらに本明細書で説明される、最適配信条件を決定する実装形態が提供され得るようにアプリケーション５２２のすべて、または一部分を実行することができることが可能である。この基本的な構成が、破線５０１内の構成要素によって図５に示される。
【００５０】
コンピューティングデバイス５００は、基本的な構成５１０と要求される任意のデバイスおよびインターフェースの間の通信を円滑にするさらなるフィーチャもしくは機能、およびさらなるインターフェースを有することが可能である。たとえば、バス／インターフェースコントローラ５４０が、ストレージインターフェースバス５４１を介した、基本的な構成５０１と１つまたは複数のデータストレージデバイス５５０の間の通信を円滑にするのに使用され得る。データストレージデバイス５５０は、リムーバブルなストレージデバイス５５１、リムーバブルでないストレージデバイス５５２、またはリムーバブルなストレージデバイス５５１とリムーバブルでないストレージデバイス５５２の組み合わせであり得る。リムーバブルなストレージデバイス、およびリムーバブルでないストレージデバイスの例には、いくつかを挙げると、フレキシブルディスクドライブやＨＤＤ（ハードディスクドライブ）などの磁気ディスクデバイス、ＣＤ（コンパクトディスク）ドライブまたはＤＶＤ（デジタルバーサタイルディスク）ドライブなどの光ディスクドライブ、ＳＳＤ（ソリッドステートドライブ）、およびテープドライブが含まれる。例示的なコンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実施された揮発性媒体および不揮発性媒体、リムーバブルな媒体、およびリムーバブルでない媒体が含まれ得る。
【００５１】
システムメモリ５２０、リムーバブルなストレージ５５１、およびリムーバブルでないストレージ５５２はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタルバーサタイルディスク）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望される情報を格納するのに使用されることが可能であり、さらにコンピューティングデバイス５００によってアクセスされ得る他の任意の媒体を含むが、それらには限定されない。任意のそのようなコンピュータ記憶媒体が、デバイス５００の一部であり得る。
【００５２】
また、コンピューティングデバイス５００は、バス／インターフェースコントローラ５４０を介したさまざまなインターフェースデバイス（たとえば、出力インターフェース、周辺インターフェース、および通信インターフェース）からの基本的な構成５０１に対する通信を円滑にするためのインターフェースバス５４２を含むことも可能である。例示的な出力インターフェース５６０は、１つまたは複数のＡ／Ｖポート５６３を介してディスプレイまたはスピーカなどのさまざまな外部デバイスに通信するように構成され得るグラフィックス処理ユニット５６１およびオーディオ処理ユニット５６２を含み得る。例示的な周辺インターフェース５６０は、１つまたは複数のＩ／Ｏポート５７３を介して入力デバイス（たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、その他）または他の周辺デバイス（たとえば、プリンタ、スキャナ、その他）などの外部デバイスと通信するように構成され得るシリアルインターフェースコントローラ５７１またはパラレルインターフェースコントローラ５７２を含み得る。例示的な通信インターフェース５８０が、１つまたは複数の通信ポート５８２経由のネットワーク通信を介して他の１つまたは複数のコンピューティングデバイス５９０との通信を円滑にするように構成され得るネットワークコントローラ５８１を含む。通信接続が、通信媒体の一例である。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構におけるコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって実現されることが可能であり、任意の情報配信媒体を含み得る。「変調されたデータ信号」とは、情報を信号内に符号化するように信号の特性の１つまたは複数が設定されている、または変更されている信号であり得る。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、および音響、ＲＦ（無線周波数）、ＩＲ（赤外線）、または他のワイヤレス媒体などのワイヤレス媒体が含まれ得る。本明細書で使用されるコンピュータ可読媒体という用語は、記憶媒体と通信媒体をともに含み得る。
【００５３】
コンピューティングデバイス５００は、セル電話機、ＰＤＡ（携帯情報端末）、パーソナルメディアプレーヤデバイス、ワイヤレスウェブ閲覧デバイス、パーソナルヘッドセットデバイス、アプリケーション特有のデバイス、またはそれらの機能のいずれかを含むハイブリッドデバイスなどの小さいフォームファクタのポータブル（またはモバイル）電子デバイスの一部分として実施され得る。また、コンピューティングデバイス５００は、ラップトップコンピュータ構成と非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとして実施されることも可能である。さらに、コンピューティングデバイス５００は、ワイヤレス基地局、または他のワイヤレスのシステムもしくはデバイスの一部として実施されてもよい。
【００５４】
以下の詳細な説明のいくつかの部分は、コンピュータメモリなどのコンピューティングシステムメモリ内に格納されたデータビットまたはバイナリデジタル信号に対する操作のアルゴリズムまたは記号表現に関連して提示される。これらのアルゴリズム記述またはアルゴリズム表現は、データ処理分野の業者が、自らの作業の内容を他の当業者に伝えるのに使用する技術の例である。アルゴリズムとは、この場合、さらに一般的にも、所望される結果につながる自己矛盾のない一連の動作または類似した処理と考えられる。この文脈で、動作または処理は、物理的量の物理的操作を含む。通常、ただし、必然的にではなく、そのような量は、格納される、転送される、組み合わされる、比較される、またはそれ以外で操作されることが可能な電気信号または磁気信号の形態をとり得る。ときとして、主に、一般的な用法の理由で、そのような信号をビット、データ、値、要素、シンボル、文字、項、数、数字などと呼ぶことが好都合であることが判明している。しかし、これら、および類似した用語のすべては、適切な物理的量に関連付けられるべきであり、単に便利なラベルにすぎないことを理解されたい。特に明記しない限り、以下の説明から明白なとおり、「処理すること」、「算出すること」、「計算すること」、「決定すること」などの用語を利用する本明細書の説明は、コンピューティングデバイスのメモリ、レジスタ、または他の情報ストレージデバイス、情報伝送デバイス、もしくは情報表示デバイスの内部の物理的な電子的量または磁気的量として表されたデータを操作する、または変換するコンピューティングデバイスのアクションまたはプロセスを指すことが認識されよう。
【００５５】
特許請求される主題は、本明細書で使用される特定の実装形態に範囲を限定されない。たとえば、一部の実装形態は、たとえば、デバイス上、または複数のデバイスの組み合わせの上で動作するように使用されるなど、ハードウェアの形態であり得るのに対して、他の実装形態は、ソフトウェアおよび／またはファームウェアの形態であり得る。同様に、特許請求される主題は、この点で範囲を限定されないものの、一部の実装形態は、信号を担持する媒体、記憶媒体、および／または複数の記憶媒体などの１つまたは複数の製品を含み得る。たとえば、ＣＤ−ＲＯＭ、コンピュータディスク、フラッシュメモリなどの、この記憶媒体は、たとえば、コンピューティングシステム、コンピューティングプラットフォーム、または他のシステムなどのコンピューティングデバイスによって実行されると、たとえば、前述した実装形態のうちの１つなどの、特許請求される主題によるプロセッサの実行をもたらし得る命令が格納されていることが可能である。１つの可能性として、コンピューティングデバイスは、１つまたは複数の処理ユニットもしくはプロセッサと、ディスプレイなどの１つまたは複数の入出力デバイスと、キーボードおよび／またはマウスと、スタティックランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、フラッシュメモリ、および／またはハードドライブなどの１つまたは複数のメモリとを含み得る。
【００５６】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができるさまざまな達成手段があり（たとえば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアの何らかの組み合わせを選択することができる。
【００５７】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。１つの実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（たとえば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（たとえば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フレキシブルディスク、ハードディスクドライブ（ＨＤＤ）、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００５８】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（たとえば、位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
【００５９】
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００６０】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００６１】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、通常、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、通常、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、など���有するシステムを含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００６２】
本明細書において「或る実装形態」、「１つの実装形態」、「一部の実装形態」、または「他の実装形態」について述べていることは、１つまたは複数の実装形態に関連して説明される特定のフィーチャ、構造、または特徴が、少なくとも一部の実装形態に含まれ得るが、必ずしもすべての実装形態には含まれないことを意味する可能性がある。以上の説明において「或る実装形態」、「１つの実装形態」、または「一部の実装形態」がさまざまに現れることは、必ずしもすべて同一の実装形態を指しているとは限らない。
【００６３】
いくつかの例示的な技術が、さまざまな方法およびシステムを使用して本明細書で示され、説明されてきたが、特許請求される主題を逸脱することなく、他のさまざまな変形が行われることが可能であり、さらに均等形態が代用され得ることが当業者には理解されよう。さらに、本明細書で使用される中心的な概念を逸脱することなく、特許請求される主題の教示に特定の状況を適合させる多くの変形が行われることが可能である。したがって、特許請求される主題は、開示される特定の実施例に限定されず、そのような特許請求される主題は、添付の特許請求の範囲、および均等の範囲に含まれるすべての実装形態を含むことも可能であることが意図される。
【図１】
0005512899.tif 000002
【図２】
0005512899.tif 000003
【図３】
0005512899.tif 000004
【図４】
0005512899.tif 000005
【図５】
0005512899.tif 000006