(57)【要約】  オーバーレイネットワークを介して通信するためのハッシュキーを用いる技術は、ターゲットコンピューティングデバイスの要求特性を示すハッシュとターゲットコンピューティングデバイスの他の要求特性を示す他のハッシュとを含むハッシュキーを受信するコンピューティングデバイスを備える。そのような技術はまた、ハッシュキーを解析してハッシュと他のハッシュとを取得する段階と、ハッシュを含むメッセージを他の複数のコンピューティングデバイスのグループに送信する段階と、そのグループのコンピューティングデバイスから、そのグループのコンピューティングデバイスが要求特性に一致する特性を含むことを示す応答メッセージを受信する段階と、そのグループのコンピューティングデバイスから応答メッセージを受信したことに応じて、第２ハッシュを含む他のメッセージをそのグループのコンピューティングデバイスに送信する段階と、を備えてもよい。
2016533693.tif 000002
【特許請求の範囲】
【請求項１】
オーバーレイネットワークを介して通信するコンピューティングデバイスであって、
（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュと前記ターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信し、
（ｉｉ）前記ハッシュキーを解析して前記第１ハッシュ及び前記第２ハッシュを取得し、
（ｉｉｉ）前記第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信し、
（ｉｖ）前記第１グループの第１コンピューティングデバイスから、前記第１コンピューティングデバイスが前記第１要求特性と一致する特性を含んでいることを示す応答メッセージを受信し、
（ｖ）前記第１コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第２ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する、ルーティングモジュール
を備えるコンピューティングデバイス。
【請求項２】
前記ルーティングモジュールは更に、前記第１グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第１メッセージを複数の他のコンピューティングデバイスの第２グループに送信する、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記ルーティングモジュールは更に、
（ｉ）前記第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較し、
（ｉｉ）前記第１ハッシュと前記ハッシュテーブルとの比較に基づいて前記第１グループを規定する、
請求項１に記載のコンピューティングデバイス。
【請求項４】
前記ルーティングモジュールは更に、前記第２ハッシュと、前記第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて前記第２メッセージを生成し、
前記第２メッセージを送信することは、前記第２ハッシュ及び前記第３ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信することを含む、
請求項１に記載のコンピューティングデバイス。
【請求項５】
前記第１コンピューティングデバイスによって実行される前記要求アクションは、前記第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
請求項４に記載のコンピューティングデバイス。
【請求項６】
前記第１要求特性または前記第２要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項１に記載のコンピューティングデバイス。
【請求項７】
前記ハッシュキーを受信することは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信することを含む、
請求項１から６の何れか一項に記載のコンピューティングデバイス。
【請求項８】
オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法であって、
コンピューティングデバイスが、（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュと、（ｉｉ）前記ターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信する段階と、
前記コンピューティングデバイスが、前記ハッシュキーを解析して前記第１ハッシュ及び前記第２ハッシュを取得する段階と、
前記コンピューティングデバイスが、前記第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信する段階と、
前記コンピューティングデバイスが、前記第１グループの第１コンピューティングデバイスから、前記第１コンピューティングデバイスが前記第１要求特性と一致する特性を含むことを示す応答メッセージを受信する段階と、
前記コンピューティングデバイスが、前記第１コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第２ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する段階と
を含む方法。
【請求項９】
前記コンピューティングデバイスが、前記第１グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第１メッセージを複数の他のコンピューティングデバイスの第２グループに送信する段階を更に含む、
請求項８に記載の方法。
【請求項１０】
前記コンピューティングデバイスが、前記第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較する段階と、前記コンピューティングデバイスが、前記第１ハッシュと前記ハッシュテーブルとの比較に基づいて前記第１グループを規定する段階とを更に含む、
請求項８に記載の方法。
【請求項１１】
前記コンピューティングデバイスが、前記第２ハッシュと、前記第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて前記第２メッセージを生成する段階を更に含み、
前記第２メッセージを送信する段階は、前記第２ハッシュ及び前記第３ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する段階を含む、
請求項８に記載の方法。
【請求項１２】
前記第１コンピューティングデバイスによって実行される前記要求アクションは、前記第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
請求項１１に記載の方法。
【請求項１３】
前記第１要求特性または前記第２要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項８に記載の方法。
【請求項１４】
前記ハッシュキーを受信する段階は、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信する段階を含む、
請求項８に記載の方法。
【請求項１５】
実行されることに応じて、コンピューティングデバイスが請求項８から１４の何れか一項に記載の方法を実行することになる複数の命令が格納される、１又は複数の機械可読媒体。
【請求項１６】
オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスであって、
（ｉ）他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信し、
（ｉｉ）前記ハッシュキーを解析して前記第１ハッシュを取得し、
（ｉｉｉ）前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含むかどうかを判断し、
（ｉｖ）前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含んでいると決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信する、ルーティングモジュール
を備えるコンピューティングデバイス。
【請求項１７】
（ｉ）前記他のコンピューティングデバイスから受信した前記メッセージが前記コンピューティングデバイスによって実行される要求アクションを含むかどうかを判断し、
（ｉｉ）前記メッセージを解析して、前記要求アクションを取得し、
（ｉｉｉ）前記要求アクションを実行する、コマンド管理モジュール
を更に備える、請求項１６に記載のコンピューティングデバイス。
【請求項１８】
前記他のコンピューティングデバイスから受信した前記メッセージが前記要求アクションを含むかどうかを判断することは、前記他のコンピューティングデバイスから受信した前記メッセージが、前記コンピューティングデバイスによって実行される前記要求アクションを示す第２ハッシュを含むかどうかを判断することを含む、
請求項１７に記載のコンピューティングデバイス。
【請求項１９】
前記コンピューティングデバイスによって実行される前記要求アクションは、前記コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む、
請求項１６に記載のコンピューティングデバイス。
【請求項２０】
前記他のコンピューティングデバイスによって要求される前記識別特性は、前記コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項１６に記載のコンピューティングデバイス。
【請求項２１】
前記他のコンピューティングデバイスから受信した前記メッセージは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する、請求項１６から２０の何れか一項に記載のコンピューティングデバイス。
【請求項２２】
オーバーレイネットワークを介する通信用のハッシュキーを生成するコンピューティングデバイスであって、
（ｉ）前記コンピューティングデバイスの複数の特性を決定し、
（ｉｉ）前記コンピューティングデバイス用のハッシュキーが生成されたかどうかを判断し、
（ｉｉｉ）ハッシュキーが前記コンピューティングデバイス用に生成されていないとの決定に応じて、前記コンピューティングデバイスの決定された前記複数の特性毎にハッシュを生成し、
（ｉｖ）前記コンピューティングデバイスの決定された前記複数の特性毎に生成された前記ハッシュに基づいて、ハッシュキーを生成し、
（ｖ）前記ハッシュキーを他のコンピューティングデバイスに送信する、キー生成モジュール
を備えるコンピューティングデバイス。
【請求項２３】
前記キー生成モジュールは更に、
（ｉ）前記コンピューティングデバイスの決定された前記複数の特性の１又は複数が変わったかどうかを判断し、
（ｉｉ）前記コンピューティングデバイスの決定された前記複数の特性の１又は複数が変わったとの決定に基づいて前記ハッシュキーをアップデートし、
（ｉｉｉ）前記アップデートされたハッシュキーを前記他のコンピューティングデバイスに送信する
請求項２２に記載のコンピューティングデバイス。
【請求項２４】
前記コンピューティングデバイスの決定された前記複数の特性は、前記コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項２２または２３に記載のコンピューティングデバイス。
【請求項２５】
コンピューティングデバイスによって実行されることに応じて、前記コンピューティングデバイスに、
他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信させ、
前記ハッシュキーを解析させて前記第１ハッシュを取得させ、
前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含むかどうかを判断させ、
前記コンピューティングデバイスが前記第１ハッシュによって示される前記識別特性と一致する特性を含むと決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信させる、複数の命令が格納される、
１又は複数の機械可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
「クラウド」コンピューティングとは、サービスとしてのコンピューティングリソースのプロビジョニングを指すのにしばしば用いられる用語であり、通常は、サービスが要求される場所から離れた場所で共にネットワーク接続される多数のコンピュータサーバによって行われる。クラウドデータセンタとは、典型的には、クラウドまたはクラウドの特定部分を構成するサーバの物理的構成を指す。例えば、サーバは、データセンタ内で、空間、グループ、組およびラックの中へと物理的に配置され得る。データセンタは、複数のサーバの１又は複数の空間を含み得る、１又は複数の「ゾーン」を備え得る。各空間は、複数のサーバの１又は複数の組を備え得、各組は、１又は複数のラックを含み得る。各ラックは、１又は複数の個別サーバノードを含み得る。ゾーン、空間、ラックおよび／または組の中のサーバは、電力、エネルギー、温度、加熱および／または他の要件を含み得るデータセンタ施設の物理的インフラ要件に基づいて、仮想グループの中へと配置され得る。
【０００２】
データセンタ内におけるそれ自体の物理的な場所に拘らず、サーバまたはそのリソースの一部は、セキュリティ、サービス品質、スループット、処理能力および／または他の基準など、実際の又は期待される使用要件に従って、（例えばデータセンタの異なる顧客による使用に対して）割り当てられ得る。一例として、１人の顧客のコンピューティングワークロードは、（データセンタの異なる組、ラック、グループ又は空間内に設置され得る）複数の物理的サーバ間で、又は、仮想化を用いる同じサーバ上での複数の処理の中で分割され得る。従って、仮想化のコンテキストにおいて、サーバは、ワークロード要件を満たすべく論理的にグループ化され得る。
【０００３】
データセンタ管理システムは、コンピュータソフトウェアを含み得、典型的には、データセンタにおけるサーバリソースを管理すべく用いられる。例えば、幾つかのデータセンタ管理システムは、顧客のワークロード要件を施設管理基準および／または他の要件と一致させようと試み、適宜、データセンタのサーバリソースを割り当てる。幾つかの場合において、スケジューリングは、例えば、個々のサーバが異なるハードウェア構成を有するゾーン、空間、グループ、組又はラックといった、複数のサーバの異種グループを含む物理的構成によって複雑化され得る。そのような複雑化は、多くのデータセンタが、コスト的な理由またはそれ以外の理由で、（例えば一度にグループ全体をアップグレードするよりもむしろ）必要な場合にのみサーバを置換する又はアップグレードするので、頻繁に発生し得る。追加的に、複数のサーバの異種グループと通信することは、サーバが、ワークロード要件に基づいて、動的にプロビジョニングされる、および／または、オフラインにされるデータセンタ内で複雑化され得る。例えば、多くのデータセンタ環境において、サーバは、典型的には、インターネットプロトコル（ＩＰ）アドレスおよび／またはメディアアクセスコントロール（ＭＡＣ）アドレスを用いて処理および管理される。そのような環境において、まだＩＰおよび／またはＭＡＣアドレスを用いてプロビジョニングされてないサーバは、データセンタ管理システムによって発見可能および／または管理可能ではないかもしれない。
【図面の簡単な説明】
【０００４】
本明細書で説明される複数の概念は、添付の図面において例として示されるのであって、限定として示されるのではない。説明を簡潔かつ明確にすべく、図面において示される要素は、必ずしも縮尺通りに描写されていない。適切とみなされる場合には、複数の参照符号は、複数の対応する又は類似の要素を示すべく、複数の図の間で繰り返されている。
【０００５】
【図１】オーバーレイネットワークを介して通信すべくハッシュキーを用いるシステムの、少なくとも１つの実施形態の簡略ブロック図である。
【０００６】
【図２】図１のシステムのオーバーレイネットワークを介して通信すべくハッシュキーを用いるコンピューティングデバイスの、少なくとも１つの実施形態の簡略ブロック図である。
【０００７】
【図３】図２のコンピューティングデバイスの環境の少なくとも１つの実施形態の簡略ブロック図である。
【０００８】
【図４】ローカルハッシュキーを生成およびアップデートすべく、図２のコンピューティングデバイスによって実行され得る方法の、少なくとも１つの実施形態の簡略フロー図である。
【０００９】
【図５】オーバーレイネットワークを介して複数のメッセージをルーティングすべく図２のコンピューティングデバイスによって用いられ得る、ハッシュキーの例示的な実施形態である。
【００１０】
【図６】オーバーレイネットワークを介して複数のメッセージをルーティングすべくハッシュキーを用いるための、図２のコンピューティングデバイスによって実行され得る方法の、少なくとも１つの実施形態の簡略フロー図である。
【００１１】
【図７】ハッシュキーを用いて、オーバーレイネットワークを介してメッセージを受信するための、図２のコンピューティングデバイスによって実行され得る方法の、少なくとも１つの実施形態の簡略フロー図である。
【発明を実施するための形態】
【００１２】
本開示の複数の概念は、様々な変更及び代替的な形態の対象たり得るものである一方で、それらの複数の具体的実施形態は、図面において例として示され、本明細書で詳細に説明されるだろう。しかしながら、本開示の複数の概念を開示される複数の特定形態に制限する意図は無く、それどころか、本開示及び添付の特許請求の範囲と相反しない全ての変更、均等物及び代替案を包含する意図であることを理解されるべきである。明細書における「一実施形態」、「実施形態」、「例示的な実施形態」等についての複数の言及は、説明される実施形態が特有の機能、構造または特性を含み得ることを示しているが、いずれの実施形態も、それら特有の機能、構造または特性を含んでもよく、又は、必ずしも含まなくてもよい。更に、そのような複数の表現は、必ずしも同じ実施形態について言及していない。更に、特有の機能、構造または特性が実施形態に関連して説明される場合、明示的に説明されているか否かに拘らず、他の複数の実施形態に関連してそのような特徴、構造または特性を達成することは、当業者の知識の範囲内であるとされる。追加的に、「Ａ、ＢおよびＣの少なくとも１つ」という形の一覧に含まれている複数のアイテムは、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、又は、（Ａ、ＢおよびＣ）を意味し得ることが理解されるべきである。同様に、「Ａ、ＢまたはＣの少なくとも１つ」という形で列挙されている複数のアイテムは、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、又は、（Ａ、ＢおよびＣ）を意味し得る。
【００１３】
開示される複数の実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア、又は、それらの任意の組み合わせにおいて実装されてもよい。開示される複数の実施形態はまた、１又は複数のプロセッサによって読み取られて実行され得る、一時的又は非一時的機械可読（例えばコンピュータ可読）記憶媒体によって伝達又は格納される複数の命令として実装されてもよい。機械可読記憶媒体は、情報を機械で読み取り可能な形で格納又は送信する、任意のストレージデバイス、メカニズム、又は、他の物理的構造として具現化されてもよい（例えば、揮発性若しくは非揮発性メモリ、メディアディスク、又は、他のメディアデバイス）。
【００１４】
図面において、幾つかの構造的又は方法的な特徴は、複数の特定の配置および／または順序で示され得る。しかしながら、そのような複数の特定の配置および／または順序が必要とされなくてもよいことが理解されるべきである。むしろ、幾つかの実施形態において、そのような複数の特徴は、例示的な図面で示されるものと異なる方法および／または順序で配置されてもよい。追加的に、特定の図面において構造的又は方法的な特徴を含ませることは、そのような特徴が全ての実施形態において必要とされることを示唆するつもりではなく、幾つかの実施形態においては含まれなくても良く、又は、他の複数の特徴と組み合わされてもよい。
【００１５】
ここで、図１を参照すると、例示的な実施形態において、オーバーレイネットワークを介して通信すべくハッシュキーを用いるシステム１００は、１又は複数のノード１１０を含む。１又は複数のノード１１０のそれぞれが、１又は複数のコンピューティングデバイスとして具現化されてもよく、以下の説明においてノード１１０および／またはコンピューティングデバイス１１０と称され得る。幾つかの実施形態において、複数のノード１１０（例えば、コンピューティングデバイス１２２―１２７、１３２―１３８、１４２―１４５、１５２―１５６）は、データセンタ施設の複数の物理的インフラ要件（例えば、場所、ラック、電力、エネルギー、温度、加熱および／または他の要件）、複数のワークロード要件（例えば、セキュリティ、サービス品質、スループット、処理能力、および／または、他の基準）、および／または、複数のデバイス特性又は機能（例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、性能測定基準、等）に基づいて、１又は複数のゾーン１２０、１３０、１４０、１５０の中へと配置されてもよい。追加的に、任意の数のノード１１０（例えばノード１２５―１２７）が、複数の同じ又は異なる要件に基づいて、特定のゾーン（例えばゾーン１２０）内の任意の数のグループ（例えば、グループ１１６）の中へと配置されてもよい。いずれにしても、複数のノード１１０の各々は、構造化オーバーレイネットワークを利用し、例えば、インターネット、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、又は、任意の他のタイプのネットワークなどの１又は複数の下層ネットワーク（図示せず）を介して、１又は複数の他のノード１１０と通信するように構成されてもよい。例示的な実施形態において、各ノード１１０は、分散ハッシュテーブルを利用して、１又は複数の他のノード１１０と共に位置し、これらと通信するように構成される。
【００１６】
構造化オーバーレイネットワークの複数の他のノード１１０と共に位置すること、および／または、これらと通信することを容易にすべく、各ノード１１０は、自身の複数の特性および／または複数の機能（例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等）を表わすパーソナルハッシュキーを生成してもよい。各ノード１１０は、自身のパーソナルハッシュキー、および／または、自身のパーソナルハッシュキーを含むハッシュテーブルを、同じグループ１１６内の、同じゾーン１２０、１３０、１４０、１５０内の、複数の他のグループ若しくはゾーン１２０、１３０、１４０、１５０内の、および／または、１又は複数の下層ネットワークに亘って、１又は複数の他のノード１１０に分散してもよい。幾つかの実施形態において、各ノード１１０は、自身の複数の特性および／または複数の機能に対する複数の変更を、継続して（又は基準間隔に従って）監視してもよい。そのような複数の実施形態において、複数のノード１１０は更に、それら自身の複数の特性および／または複数の機能の１又は複数が変わったと判断したことに応じて、それら自身の複数のパーソナルハッシュキーをアップデートするように構成されてもよい。そのようにして、各ノード１１０は、自身の個別的な複数の特性および／または複数の機能に基づいて、構造化オーバーレイネットワーク内でアドレス可能であってもよい。
【００１７】
幾つかの実施形態において、ノード１１０（例えばコンピューティングデバイス１２２）は、別のノード１１０（例えばコンピューティングデバイス１３２）からのメッセージを受信し、メッセージ内に含まれるハッシュキー（例えば図５に示されているハッシュキー５００）に基づいて、そのメッセージを１又は複数の他のノード１１０（例えばコンピューティングデバイス１２３―１２７）にルーティングしてもよい。以下でより詳細に説明されるように、ハッシュキー５００は、意図若しくはターゲットノード１１０、および／または、複数のノード１１０のグループの、１又は複数の特性および／または機能を示している。すなわち、メッセージ内に含まれるハッシュキー５００は、メッセージを対応する（例えば一致する）複数の特性および／または複数の機能を有する１又は複数のノード１１０にルーティングすることを容易にすべく用いられてもよい。
【００１８】
追加的に、幾つかの実施形態において、ノード１１０（例えばコンピューティングデバイス１３２）は、別のノード１１０（例えばコンピューティングデバイス１２２）から、ハッシュキー５００に加えて受信ノード１１０（例えばコンピューティングデバイス１３２）によって実行されるアクションを示す情報も含むメッセージを受信してもよい。そのような複数の実施形態において、受信ノード１１０（例えばコンピューティングデバイス１３２）は、それが、ハッシュキー５００によって示される１又は複数の特性および／または機能に対応する複数の特性および／または複数の機能を含んでいると判断したことに応じて、そのアクションを実行するように構成されてもよい。すなわち、それがメッセージに対する適切な宛先（例えば複数の意図したターゲットノードの１つ）であると判断したことに応じて、受信ノード１１０（例えばコンピューティングデバイス１３２）は、要求アクションを実行してもよい。
【００１９】
上記で説明した通り、複数のコンピューティングデバイス１１０の各々は、これらに限定されないが、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、スマートディスプレイデバイス、携帯電話、スマートフォン、タブレットコンピューティング消費デバイス、パーソナルデジタルアシスタント、消費者向け電子デバイス、スマートテレビおよび／または他のタイプのコンピューティングデバイスを含む、本明細書で説明される複数の機能を実行可能な任意のタイプの１又は複数のコンピューティングデバイスとして具現化されてもよい。図２に示されるように、システム１００の例示的なコンピューティングデバイス１１０（すなわちノード１１０）は、プロセッサ２１２、メモリ２１４、入力／出力（Ｉ／Ｏ）サブシステム２１６、通信回路２１８、及び、データストレージ２２０を含んでもよい。勿論、コンピューティングデバイス１１０は、複数の他の実施形態においては、サーバおよび／またはコンピュータ（例えば様々な入力／出力デバイス）内で一般に見られるような、他の又は追加の複数のコンポーネントを含んでもよい。追加的に、幾つかの実施形態において、複数の例示的なコンポーネントの１又は複数は、他のコンポーネントに組み込まれてもよく、又はそうでなければ、他のコンポーネントの一部であってもよい。例えば、メモリ２１４またはその複数の部分は、幾つかの実施形態において、プロセッサ２１２に組み込まれてもよい。
【００２０】
プロセッサ２１２は、本明細書で説明される複数の機能を実行可能な任意のタイプのプロセッサとして具現化されてもよい。例えば、プロセッサ２１２は、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ若しくは他のプロセッサ、又は、処理／制御回路として具現化されてもよい。同様に、メモリ２１４は、本明細書で説明される複数の機能を実行可能な、任意のタイプの揮発性若しくは非揮発性メモリまたはデータストレージとして具現化されてもよい。動作中、メモリ２１４は、複数のオペレーティングシステム、複数のアプリケーション、複数のプログラム、複数のライブラリおよび複数のドライバなどの、コンピューティングデバイス１１０の動作中に用いられる様々なデータおよびソフトウェアを格納してもよい。メモリ２１４は、コンピューティングデバイス１１０のプロセッサ２１２、メモリ２１４および複数の他のコンポーネントとの複数の入力／出力動作を容易にする回路および／または複数のコンポーネントとして具現化され得るＩ／Ｏサブシステム２１６を介して、プロセッサ２１２と通信可能に結合される。例えば、Ｉ／Ｏサブシステム２１６は、複数のメモリコントローラハブ、複数の入力／出力制御ハブ、複数のファームウェアデバイス、複数の通信リンク（すなわち、複数のポイントツーポイントリンク、複数のバスリンク、複数の有線、複数のケーブル、複数のライトガイド、複数のプリント回路基板トレース等）、および／または、複数の入力／出力動作を容易にする複数の他のコンポーネント並びにサブシステムとして具現化されてもよく、又はそうでなければこれらを含んでもよい。幾つかの実施形態において、Ｉ／Ｏサブシステム２１６は、システムオンチップ（ＳｏＣ）の一部を形成してもよく、コンピューティングデバイス１１０のプロセッサ２１２、メモリ２１４および複数の他のコンポーネントと共に、単一の集積回路チップに組み込まれてもよい。
【００２１】
コンピューティングデバイス１１０の通信回路２１８は、コンピューティングデバイス１１０と、１又は複数の他のコンピューティングデバイス１１０との間での複数の通信を可能にできる、任意のタイプの通信回路、デバイス、又は、それらの集合として具現化されてもよい。通信回路２１８は、任意の１又は複数の通信技術（例えば複数の無線又は有線通信）を用いるように構成され、そのような通信を達成すべく複数のプロトコル（例えば、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ（登録商標）、等）と関連付けられてもよい。以下でより詳細に説明されるように、システム１００の複数のコンピューティングデバイス１１０は、互いに通信すべく構造化オーバーレイネットワークを用いる。構造化オーバーレイネットワークは、１又は複数の下層ネットワーク（図示せず）を用いて確立されてもよい。１又は複数の下層ネットワークは、任意の数の様々な有線および／または無線通信ネットワークとして具現化されてもよい。例えば、複数の下層ネットワークの１又は複数は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、セルラーネットワーク、又は、インターネットのような公衆アクセス可能なグローバルネットワークとして具現化されてもよく、又はそうでなければこれらを含んでもよい。追加的に、複数の下層ネットワークの１又は複数は、複数のコンピューティングデバイス１１０間の複数の構造化オーバーレイ通信を容易にする、任意の数の追加のデバイスを含んでもよい。
【００２２】
データストレージ２２０は、例えば、複数のメモリデバイス並びに複数のメモリ回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、又は、他の複数のデータストレージデバイスなどの、データの短期間又は長期間保存用に構成された任意のタイプのデバイスまたは複数のデバイスとして具現化されてもよい。例示的な実施形態において、データストレージ２２０は、ハッシュキー２２４およびハッシュテーブル２２２を含んでもよい。以下でより詳細に説明されるように、ハッシュキー２２４は、コンピューティングデバイス１１０の複数の特性および／または複数の機能（例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等）を示す情報を含んでもよい。そのようにして、ハッシュキー２２４は、特定のコンピューティングデバイス１１０に対応する「パーソナル」又は「ローカル」ハッシュキー２２４として具現化されてもよい。幾つかの実施形態において、コンピューティングデバイス１１０の各特性および／または機能は、分離ハッシュとして具現化されてもよい。そのような複数の実施形態において、ハッシュキー２２４は、複数のハッシュの連結および／またはアグリゲーションから形成されてもよい。
【００２３】
ハッシュテーブル２２２は、特定のコンピューティングデバイス１１０が通信し得る任意の数の他のコンピューティングデバイス１１０（例えば複数の他のノード１１０）に対応する任意の数のハッシュ又はハッシュキーを含んでもよい。ハッシュテーブル２２２内に含まれる複数のハッシュおよび／または複数のハッシュキーは、複数の他のコンピューティングデバイス１１０から受信される複数のパーソナルハッシュキーとして具現化されてもよい。従って、例示的な実施形態において、ハッシュテーブル２２２は、複数の特定の特性および／または機能を、１又は複数のコンピューティングデバイス１１０（例えば複数のノード１１０）にマッピングする。追加的に、幾つかの実施形態において、ハッシュテーブル２２２はまた、ハッシュ毎、および／または、その中に含まれるハッシュキー毎に、ある値を含んでもよい。例えば、複数のコンピューティングデバイス１１０（すなわち複数のノード１１０）が下層ネットワーク（例えばＬＡＮ、ＷＡＮ、ＰＡＮ、等）を介して構造化オーバーレイネットワーク上で互いに通信するように構成されている複数の実施形態において、ハッシュテーブル２２２はまた、各対応するコンピューティングデバイス１１０に割り当てられた下層ネットワークアドレス（例えば、インターネットプロトコルアドレス、メディアアクセスプロトコルアドレス、等）を示す、ハッシュ毎および／またはハッシュキー毎に、ある値を含んでもよい。
【００２４】
ここで、図３を参照すると、使用する場合、複数のコンピューティングデバイス１１０（すなわち複数のノード１１０）の各々は、動作中に環境３００を確立する。例示的環境３００は、通信モジュール３０２、キー生成モジュール３０６、ルーティングモジュール３１０、及び、コマンド管理モジュール３１４を含み、それぞれがソフトウェア、ファームウェア、ハードウェア、又は、それらの組み合わせとして具現化されてもよい。記載の明瞭化のため図３には図示されていないが、コンピューティングデバイス１１０の各々が、コンピューティングデバイスで一般的に見られる複数の他のコンポーネント、複数のサブコンポーネント、複数のモジュールおよび複数のデバイスを含んでもよいことが理解されるべきである。追加的に、複数のコンピューティングデバイス１１０の各々は動作中に例示的環境３００を確立してもよいが、その例示的環境３００の以下の説明は、記載の明瞭化のため、コンピューティングデバイス１２２への具体的な言及と共に説明されることが理解されるべきである。
【００２５】
コンピューティングデバイス１２２の通信モジュール３０２は、コンピューティングデバイス１２２とシステム１００の他のコンピューティングデバイス１１０との、複数のコンポーネント又は複数のサブコンポーネント間における複数の通信を容易にする。例えば、幾つかの実施形態において、通信モジュール３０２は、構造化オーバーレイネットワークおよび／または下層ネットワークを通じて、複数の他のコンピューティングデバイス１１０から複数のメッセージを受信し、および／または、これらへと複数のメッセージを送信する。説明したように、幾つかの実施形態において、複数の他のコンピューティングデバイス１１０へと送信された、および／または、これらから受信された複数のメッセージは、コンピューティングデバイス１２２の複数の特性並びに／若しくは複数の機能を示すローカルハッシュキー２２４、他のコンピューティングデバイス１１０の複数の特性並びに／若しくは複数の機能を示すローカルハッシュキー２２４、ターゲット／宛先コンピューティングデバイス１１０の複数の特性並びに／若しくは複数の機能を示すハッシュキー５００（図５を参照）、および／または、ターゲット／宛先コンピューティングデバイス１１０によって実行される１又は複数のアクションを示す情報を含んでもよい。
【００２６】
キー生成モジュール３０６は、コンピューティングデバイス１２２用のハッシュキー２２４を生成するように構成されてもよい。生成されたハッシュキー２２４は、コンピューティングデバイス１２２の１又は複数の特性および／または機能（例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等）を示してもよい（すなわち、システム１００の異なる複数のコンピューティングデバイス１１０は、それら独自の複数の特定の特性／機能に基づいて異なる複数のハッシュキー２２４を生成してもよい）。幾つかの実施形態において、キー生成モジュール３０６は、コンピューティングデバイス１２２の特性および／または機能毎に分離ハッシュを生成してもよい。そのような複数の実施形態において、ハッシュキー２２４は、特性および／または機能毎に分離ハッシュの連結および／またはアグリゲーションとして具現化されてもよい。例えば、ハッシュキー２２４は、コンピューティングデバイス１２２のプロセッサのタイプを示すハッシュと、コンピューティングデバイス１２２が現在用いているメモリの量を示す他のハッシュとを含んでもよい。ハッシュキー２２４は、１つ、２つ又はそれより多くのハッシュを含んでもよく、それぞれがコンピューティングデバイス１２２の異なる特性および／または機能を示してもよいことが理解されるべきである。
【００２７】
追加的に、キー生成モジュール３０６は、コンピューティングデバイス１２２に対応するハッシュキー２２４をアップデートするように構成されてもよい。例えば、幾つかの実施形態において、コンピューティングデバイス１２２の１又は複数の特性および／または機能は、１又は複数のイベント（例えば、ワークロード増加／減少、ハードウェア／ソフトウェアアップグレード、ネットワーク輻輳、デバイス有用性／非有用性、等）の発生に応じて変化してもよい。そのような複数の実施形態において、キー生成モジュール３０６は、コンピューティングデバイス１２２の複数の特性および／または複数の機能の何れかの複数の変化を監視してそれに応答するキーアップデートモジュール３０８を含んでもよい。そのようにすべく、キーアップデートモジュール３０８は、継続的に、周期的に、および／または、応答的に、コンピューティングデバイス１２２の複数の特性および／または複数の機能を監視して、何れかが変わったのかどうかを判断するように構成されてもよい。例えば、キーアップデートモジュール３０８は、コンピューティングデバイス１２２の複数の特性および／または複数の機能の何れかが基準間隔に従って（例えば、１時間に一度、１日に一度、１週間に一度、等）変わったかどうかを判断するように構成されてもよい。どれだけの頻度で、キーアップデートモジュール３０８が、コンピューティングデバイス１２２の複数の特性および／または複数の機能の何れかが変わったのかどうかを判断するかに関わらず、キーアップデートモジュール３０８は、決定された複数の変化に少なくとも部分的に基づき、又はそうでなければその関数として、ハッシュキー２２４をアップデートしてもよい。ハッシュキー２２４が、共に連結され、および／または集約された複数のハッシュを含む複数の実施形態において、キーアップデートモジュール３０８は、変わった特性および／または機能に対応するそれらの複数のハッシュのみをアップデートするように構成されてもよい。キーアップデートモジュール３０８がハッシュキー２２４をアップデートするならば、アップデートされたハッシュキー２２４、および／または、アップデートされたハッシュキー２２４を含むハッシュテーブルは、複数の他のコンピューティングデバイス１１０に提供されてもよい。
【００２８】
ルーティングモジュール３１０は、システム１００の他のコンピューティングデバイス１１０からの複数のターゲットメッセージを受信するように構成される。例えば、コンピューティングデバイス１３２（又はシステム１００の他のコンピューティングデバイス１１０）は、ターゲットメッセージをコンピューティングデバイス１２２に送信してもよい。幾つかの実施形態において、コンピューティングデバイス１３２（又は他のコンピューティングデバイス１１０）から受信される複数のメッセージは、複数のターゲットメッセージ用のターゲット／宛先コンピューティングデバイス１１０の複数の特性および／または複数の機能を示すハッシュキー５００を含んでもよい。そのような複数の実施形態において、ルーティングモジュール３１０は、ハッシュキー５００によって示される複数の特性および／または複数の機能を用いて、１又は複数のメッセージを、同じ又は実質的に類似する複数の特性および／または複数の機能を有するターゲット／宛先コンピューティングデバイス１１０（複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６）にルーティングしてもよい。幾つかの実施形態において、コンピューティングデバイス１３２（又は他のコンピューティングデバイス１１０）から受信される複数のメッセージは、コンピューティングデバイス１３２（又は他のコンピューティングデバイス１１０）によって送信されるブロードキャスト又はマルチキャスト送信の一部として受信されてもよい。追加的に、幾つかの実施形態において、ハッシュキー５００および他のデータは、各メッセージの１又は複数のヘッダーフィールド内に埋め込まれてもよい。例えば、コンピューティングデバイス１３２が複数のメッセージをコンピューティングデバイス１２２とシステム１００の複数の他のコンピューティングデバイス１１０とにブロードキャスト又はマルチキャストする複数の実施形態において、ハッシュキー５００および他のデータの少なくとも一部は、各メッセージの１又は複数の予備ヘッダーフィールド（例えば、複数のマルチキャスト予備フィールド、等）内に埋め込まれてもよい。
【００２９】
ハッシュキー５００が１又は複数のハッシュの連結および／またはアグリゲーションとして具現化される複数の実施形態において、ルーティングモジュール３１０は、ハッシュキー５００を解析してその中に含まれる複数の個別ハッシュを取得するように構成されてもよい。そのようにすべく、ルーティングモジュール３１０は、ハッシュキー５００内で識別される特定数のストレージユニット（例えば、ニブル、ビット、バイト、等）、ハッシュキー５００内で識別される特定数の特性並びに／若しくは機能、および／または、ハッシュキー５００を複数のコンポーネントハッシュへとブレークダウン（例えば、解析、分離、分割、分裂、等）するのに好適な任意の他の処理に従って、ハッシュキー５００を解析してもよい。
【００３０】
コンピューティングデバイス１２２のルーティングモジュール３１０はまた、どのコンピューティングデバイス１１０が、コンピューティングデバイス１２２のハッシュキー５００およびローカルハッシュテーブル２２２に少なくとも部分的に基づき、又はそうでなければそれらの関数として、任意の受信メッセージをルーティングするかを決定するように構成されてもよい。そのようにすべく、ルーティングモジュール３１０は、ハッシュ分析モジュール３１２を含んでもよい。ハッシュ分析モジュール３１２は、ローカルハッシュテーブル２２２内に含まれる１又は複数のコンピューティングデバイス１１０の何れかが、ハッシュキー５００（又はその中に含まれる個別ハッシュ）によって示される複数の特性および／または複数の機能と一致する複数の特性および／または複数の機能を有するのかどうかを判断するコンピューティングデバイス１２２のローカルハッシュテーブル２２２を利用するように構成されてもよい。
【００３１】
コンピューティングデバイス１２２がハッシュキー５００を含むメッセージ用のターゲット／宛先コンピューティングデバイス１１０である複数の実施形態において、コマンド管理モジュール３１４は、そのメッセージがコンピューティングデバイス１２２によって実行されるアクションを示す情報も含むかどうかを判断するように構成される。例えば、幾つかの実施形態において、受信メッセージはまた、コンピューティングデバイス１２２に、サービス品質（ＱｏＳ）ポリシーを実行または再設定する（例えば、ストレージ又はメモリキャッシュサイズをセットする、電力状態を変化させる、複数のデータ送信を優先させる、データ処理を優先させる、等）ことを要求するコマンド又は命令を含んでもよい。勿論、要求アクションはまた、コンピューティングデバイス１２２によって実行される任意の他のタイプのアクション（例えば、情報要求に応答する、複数のコンポーネント又は複数のサービスを有効化／無効化する、等）を含んでもよいことが理解されるべきである。幾つかの実施形態において、アクション情報は、メッセージの１又は複数のヘッダーフィールド内に埋め込まれ得るコマンド又は命令を表わすハッシュとして具現化されてもよい。追加的に又は代替的に、アクション情報、メッセージのペイロード部分内に埋め込まれる実際のコマンド又は命令（例えば、疑似コード、命令識別子、認識可能命令、等）として具現化されてもよい。とにかく、メッセージがアクション情報を含む複数の実施形態において、コマンド管理モジュール３１４は、メッセージを解析して対応する命令又はコマンド情報を取得してもよい。要求アクションを示す情報を取得する際に、コマンド管理モジュール３１４は、要求アクションを実行するように、又はそうでなければその性能を引き起こすように構成されてもよい。
【００３２】
ここで、図４を参照すると、使用する場合、システム１００の複数のコンピューティングデバイス１１０の各々は、ハッシュキー２２４（例えば、「ローカル」又は「パーソナル」ハッシュキー２２４）を生成してアップデートする方法４００を実行してもよい。方法４００は、コンピューティングデバイス１１０が自身の複数の特性および／または複数の機能（例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、複数の性能測定基準、等）を決定および／または収集するブロック４０２で開始する。幾つかの実施形態において、コンピューティングデバイス１１０は、ソフトウェアエージェントを実行して自身の複数の電流特性および／または複数の機能を決定する。追加的に又は代替的に、コンピューティングデバイス１１０は、自身の複数の電流特性および／または複数の機能を示すデータを、複数の特性および／または複数の機能が関連する複数のコンポーネントから直接的に受信してもよい。
【００３３】
ブロック４０４において、コンピューティングデバイス１１０は、どのハッシュキー２２４が前に生成されたかどうかを判断する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス１１０は、ハッシュキー２２４がデータストレージ２２０に格納されているかどうかを判断する。ブロック４０４において、コンピューティングデバイス１１０が、ハッシュキー２２４は生成されていないと決定するならば、方法４００はブロック４０６に進む。しかしながら、ブロック４０４において、コンピューティングデバイス１１０が、ハッシュキー２２４は既に生成されたと決定するならば、方法４００はブロック４１２に進む。
【００３４】
ブロック４０６において、コンピューティングデバイス１１０は、コンピューティングデバイス１１０の特性および／または機能毎にハッシュを生成する。幾つかの実施形態において、コンピューティングデバイス１１０の特性および／または機能毎に生成されたハッシュは、複数の特定の特性および／または機能を示すデータとして具現化される。例えば、各ハッシュは、対応する特性および／または機能を表わす一連の記号（例えば、文字、数字、指標、又は、それらの任意の組み合わせ）であってもよい。そのような複数の実施形態において、コンピューティングデバイス１１０は、各特性および／または機能に対応するテキストラベル又は説明から各ハッシュを導いてもよい。複数の他の実施形態において、コンピューティングデバイス１１０の特性および／または機能を示すデータおよび／または複数のハッシュを生成する任意の他の処理も用いられてもよいことが理解されるべきである。
【００３５】
ブロック４０８において、自身の複数の特性および／または複数の機能の各々毎にハッシュを生成することより後に、コンピューティングデバイス１１０はその独自のハッシュキー２２４を生成する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス１１０は、複数のハッシュの各々を、単一のハッシュキー２２４へと連結、結合および／または集約する。これは、要求アクションの性能および／またはメッセージルーティング用に他のコンピューティングデバイス１１０（例えばコンピューティングデバイス１３２）によって後で解析されてもよい。
【００３６】
ブロック４１０において、ハッシュキー２２４を生成した後に、コンピューティングデバイス１１０は、自身のハッシュキー２２４を、システム１００の１又は複数の他のコンピューティングデバイス１１０に提供する。そうすることで、コンピューティングデバイス１１０のハッシュキー２２４は、複数の他のコンピューティングデバイス１１０の１又は複数のローカルハッシュテーブル２２２内に含まれてもよい。そのハッシュキー２２４を１又は複数の他のコンピューティングデバイス１１０に提供する際に、方法４００は、コンピューティングデバイス１１０がその複数の独自の特性および／または機能を判断および／または収集することを継続するブロック４０２に戻る。
【００３７】
ブロック４１２では、ハッシュキー２２４が前に生成されたと判断したことに応じて、コンピューティングデバイス１１０は、その複数の独自の特性および／または機能の何れかが変わったかどうかを判断する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス１１０は、自身の複数の電流特性および／または複数の機能と、既に存在するハッシュキー２２４を生成するのに用いられる複数の特性および／または複数の機能とを比較する。ブロック４１２において、コンピューティングデバイス１１０が、その複数の独自の特性および／または機能の１つも変わってないと決定するならば、方法４００は、コンピューティングデバイス１１０がその複数の独自の特性および／または機能を判断および／または収集することを継続するブロック４０２に戻る。しかしながら、コンピューティングデバイス１１０が、自身の複数の特性および／または複数の機能の１又は複数が変わったと決定するならば、方法はブロック４１４に進む。
【００３８】
ブロック４１４において、コンピューティングデバイス１１０は、変わったと判断された１又は複数の特性および／または機能に少なくとも部分的に基づき、自身のハッシュキー２２４をアップデートする。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス１１０は、変わった複数の特性および／または複数の機能毎に、新たな複数のハッシュを生成する。その後、コンピューティングデバイス１１０は、自身のハッシュキー２２４をアップデートして、アップデートされた（例えば新たに生成された）複数のハッシュを含ませる。幾つかの実施形態において、コンピューティングデバイス１１０は、前に生成されたハッシュキー２２４の複数の個別ハッシュをアップデートするよりもむしろ、新たなハッシュキー２２４を生成してもよい。
【００３９】
ブロック４１６において、自身のハッシュキー２２４をアップデートした後に、コンピューティングデバイス１１０は、自身のアップデートされたハッシュキー２２４を、システム１００の１又は複数の他のコンピューティングデバイス１１０に提供する。そうすることで、コンピューティングデバイス１１０のハッシュキー２２４は、他のコンピューティングデバイス１１０のローカルハッシュテーブル２２２内でアップデートされてもよい。自身のアップデートされたハッシュキー２２４を他のコンピューティングデバイス１１０に提供する際に、方法４００は、コンピューティングデバイス１１０が、その複数の独自の特性および／または機能を判断および／または収集することを継続するブロック４０２に戻る。
【００４０】
上記で説明した通り、幾つかの実施形態において、システム１００のコンピューティングデバイス１１０は、構造化オーバーレイネットワークを介して他のコンピューティングデバイス１１０からターゲットメッセージを受信してもよい。ターゲットメッセージは、ハッシュキー５００を含んでもよく、これは、メッセージをターゲット／宛先コンピューティングデバイス１１０にルーティングすることを容易にするのに用いられてもよい。幾つかの実施形態において、ハッシュキー５００またはその一部は、受信メッセージの１又は複数のヘッダーフィールド内に埋め込まれてもよい。そのように、ハッシュキー５００は、メッセージの１又は複数のヘッダーフィールド内に埋め込まれるべく、互換性のあるフォーマットであってもよい。
【００４１】
例示的ハッシュキー５００が図５に示されている。例示的ハッシュキー５００は、メッセージの実際のデータ５６０（例えばペイロード５６０）を優先する複数のヘッダーフィールド５０２を含んでもよい。例えば、図５に示されている例示的な実施形態において、ハッシュキー５００は、メッセージの複数のヘッダーフィールド５０２の１又は複数の中にあるハッシュキー５００の存在を示す、あるタイプのフィールド５１０を含む。ハッシュキー５００はまた、対応する多数の追加のヘッダーフィールド５３０内に含まれる複数の特性および／または複数の機能の数を示すオフセットフィールド５２０（例えば、「複数の性質の数」フィールド５２０）を含む。複数の追加のヘッダーフィールド５３０の各々は、ターゲット／宛先コンピューティングデバイス１１０の別の特性および／または機能を含んでもよい。例えば、例示的な複数の追加のヘッダーフィールド５３０は、プロセッサタイプフィールド５３１、ディスク（例えばストレージ）使用量フィールド５３２、メモリ使用量フィールド５３３、電力消費フィールド５３４、デバイス性能フィールド５３５、および／または、セキュリティレベルフィールド５３６を含む。勿論、複数の追加のヘッダーフィールド５３０はターゲット／宛先コンピューティングデバイス１１０の機能および／または特性（例えば、メモリ容量、電力状態、電力容量、記憶容量、有用性、セキュリティポリシー、等）を示す任意の他のタイプのフィールドを含んでもよいことが理解されるべきである。
【００４２】
幾つかの実施形態において、ハッシュキー５００はまた、上記で説明されたターゲット／宛先コンピューティングデバイス１１０によって実行されることを要求される１又は複数のコマンドを示す情報を含んでもよい。例えば、図５に例示的に示されているように、ハッシュキー５００は、あるアクションがターゲット／宛先コンピューティングデバイス１１０によって実行されることを示すアクションフィールド５４０（例えば、ＣＱｏＳフィールド５４０）を含んでもよい。そのような複数の実施形態において、ハッシュキー５００は更に、ターゲット／宛先コンピューティングデバイス１１０によって実行される特定の命令、コマンド、構成および／またはアクションを示すコマンドフィールド５５０（例えば性質フィールド５５０）を含んでもよい。勿論、幾つかの実施形態において、実行されるアクション、および／または、複数の特定の命令は、代わりに、メッセージのペイロード５６０（例えばデータ部分５６０）内に含まれてもよいことが理解されるべきである。追加的に、幾つかの実施形態において、図５に示されているものと実質的に同様のフォーマットもまた、複数のコンピューティングデバイス１１０の各々によって、これらの複数の個別ハッシュキー２２４を生成および／またはアップデートするのに用いられてもよいことが理解されるべきである。
【００４３】
ここで、図６を参照すると、システム１００のコンピューティングデバイス１１０がハッシュキー５００を含むメッセージを受信するならば、コンピューティングデバイス１１０は、ハッシュキー５００を用いて、オーバーレイネットワークを介してメッセージをルーティングする方法６００を実行してもよい。方法６００は、コンピューティングデバイス１１０が、ハッシュキー５００を含むメッセージがシステム１００の「ソース」コンピューティングデバイス１１０から受信されたかどうかを判断する、ブロック６０２で開始する。説明したように、ハッシュキー５００は、ターゲット／宛先コンピューティングデバイス１１０または複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６に対して各々が異なる要求特性および／または機能を示している、１又は複数のハッシュを含む。すなわち、ハッシュキー５００内の複数の個別ハッシュは、特定のコンピューティングデバイス１１０または複数のコンピューティングデバイス１１０のグループ１１６が、メッセージの意図した受信となるのに有するべき複数の特性および／または複数の機能を示す。ブロック６０２において、コンピューティングデバイス１１０がハッシュキー５００を含むメッセージを受信するならば、方法６００はブロック６０４に進む。しかしながら、ハッシュキー５００を含むメッセージが受信されていないならば、方法６００は、コンピューティングデバイス１１０が、ハッシュキー５００を含むメッセージが受信されたかどうかを判断するのを継続するブロック６０２に戻る。
【００４４】
ブロック６０４において、コンピューティングデバイス１１０は、ハッシュキー５００を解析して、ターゲット／宛先コンピューティングデバイス１１０の、又は、複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６の、複数の特性および／または複数の機能に対応する、複数の個別ハッシュ又はコンポーネントハッシュを取得する。例えば、メッセージが複数の（例えば２つ又はそれより多い）個別ハッシュを含むハッシュキー５００を有する複数の実施形態において、コンピューティングデバイス１１０は、ハッシュキー５００を解析して各々の個別ハッシュを取得する。
【００４５】
ブロック６０６において、コンピューティングデバイス１１０は、複数の個別ハッシュの１つを含む第１メッセージを、他のコンピューティングデバイス１１０に、又は、システム１００の他の複数のコンピューティングデバイスのグループ１１０に送信する。そのように、第１メッセージは、第１メッセージがハッシュキー５００の全体（例えば複数の個別ハッシュの全て）を含んでいないかもしれない「ソース」コンピューティングデバイス１１０から受信したオリジナルメッセージとは異なってもよい。コンピューティングデバイス１１０は、複数の他のコンピューティングデバイス１１０の何れが、又はそれらの複数のグループの何れが第１メッセージを送信するのかを決定する任意の好適な方法論を利用してもよい。例えば、幾つかの実施形態において、コンピューティングデバイス１１０は、第１メッセージをブロードキャストメッセージとして大多数の他のコンピューティングデバイス１１０に送信してもよい。追加的に又は代替的に、コンピューティングデバイス１１０は、第１メッセージをマルチキャストメッセージとして複数の他のコンピューティングデバイス１１０のグループ又はサブグループに送信してもよい。例えば、図１に戻って参照すると、コンピューティングデバイス１２２は、ハッシュキー５００を含むメッセージを受信すべきであり、コンピューティングデバイス１２２は、ハッシュキー５００を解析して複数の個別ハッシュを識別してもよく、複数の個別ハッシュの１つを含むメッセージを複数の他のコンピューティングデバイスのグループ１１６（すなわちコンピューティングデバイス１２５、１２６、１２７）に送信してもよい。コンピューティングデバイス１１０は、ハッシュテーブル２２２または他の方法論を用いて、他のコンピューティングデバイス１１０を、又は、複数の他のコンピューティングデバイス１１０の複数のグループを識別してもよい。例えば、図６に戻って参照すると、ブロック６０８において、コンピューティングデバイス１１０は、個別ハッシュと自身のローカルハッシュテーブル２２２とを比較してもよい。そのような複数の実施形態において、コンピューティングデバイス１１０は、個別ハッシュがハッシュテーブル２２２における１又は複数のハッシュと一致するとの判断に少なくとも部分的に基づき、又はそうでなければその関数として、第１メッセージが送信されるべきである、複数のコンピューティングデバイス１１０の１又は複数のグループ１１６を規定してもよい。
【００４６】
ブロック６１０において、コンピューティングデバイス１１０は、第１メッセージへの応答がグループ１１６の複数のコンピューティングデバイス１１０の１又は複数から受信されたかどうかを判断する。幾つかの実施形態において、グループ１１６の複数のコンピューティングデバイス１１０の１つから第１メッセージへの応答を受信することは、そのコンピューティングデバイス１１０が、第１ハッシュによって示される要求特性および／または機能と一致する特性および／または機能を有することを示している。ブロック６１０において、コンピューティングデバイス１１０が、第１メッセージへの１又は複数の応答メッセージはグループ１１６の複数のコンピューティングデバイス１１０の１又は複数から受信されたと決定するならば、方法６００はブロック６１２に進む。
【００４７】
ブロック６１２において、コンピューティングデバイス１１０は、ハッシュキー５００から取得された次の個別ハッシュ（例えば、第２ハッシュ）を含む第２メッセージを、第１メッセージへの応答が受信される元となったグループ１１６の複数のコンピューティングデバイス１１０の１又は複数に送信する。幾つかの実施形態において、ブロック６１４では、コンピューティングデバイス１１０はまた、次の個別ハッシュ（例えば第２ハッシュ）と、コンピューティングデバイス１１０のローカルハッシュテーブル２２２と比較してもよい。そのような複数の実施形態において、コンピューティングデバイス１１０は、次の個別ハッシュ（例えば第２ハッシュ）がハッシュテーブル２２２内の１又は複数のハッシュと一致するとの判断に少なくとも部分的に基づき、又はそうでなければその関数として、第２メッセージが送信されるべきである、グループ１１６内の複数のコンピューティングデバイス１１０の他のグループ（例えばサブグループ）を規定してもよい。幾つかの実施形態において、コンピューティングデバイス１１０によって規定される複数のコンピューティングデバイス１１０のサブグループは、第１メッセージへの応答が受信される元となったグループ１１６の複数のコンピューティングデバイス１１０の１又は複数を含んでもよいことが理解されるべきである。幾つかの実施形態において、ブロック６１６では、「ソース」コンピューティングデバイス１１０から受信されたオリジナルメッセージはまた、ターゲット／宛先コンピューティングデバイス１１０によって又は複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６によって実行されるべきアクションを示す情報を含んでもよい。例えば、元々の受信メッセージはまた、ターゲット／宛先コンピューティングデバイス１１０に、又は、複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６に、ローカルサービス品質（ＱｏＳ）ポリシーを実行又は再設定する（例えば、ストレージ又はメモリキャッシュサイズをセットする、電力状態を変化させる、複数のデータ送信を優先させる、データ処理を優先させる、等）ように要求するコマンドおよび／または命令を含んでもよい。幾つかの実施形態において、コマンドおよび／または命令は、実際のコマンドおよび／または命令として具現化されてもよく、又は、コマンドおよび／または命令を表わすハッシュとして具現化されてもよい。とにかく、オリジナルメッセージが、ターゲット／宛先コンピューティングデバイス１１０によって、又は、複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６によって実行されるアクションを示す情報を含む複数の実施形態において、コンピューティングデバイス１１０は、実行されるアクションを示す情報（例えば実際のコマンド又は命令および／またはハッシュされたコマンド又は命令）を取得して第２メッセージに付加してもよい。
【００４８】
ブロック６１０において、コンピューティングデバイス１１０が、第１メッセージへの１又は複数の応答メッセージが受信されていないと決定するならば、方法６００は、コンピューティングデバイス１１０が第１ハッシュを含む第１メッセージを複数のコンピューティングデバイス１１０の他のグループ（図示せず）に送信するブロック６１８に進む。続いて、方法６００は、コンピューティングデバイス１１０が、第１メッセージへの応答が他のグループの複数のコンピューティングデバイス１１０の１又は複数から受信されたかどうかを判断する、ブロック６１０に戻る。そうならば、方法６００は、コンピューティングデバイス１１０が、第２ハッシュを含む第２メッセージを、第１メッセージへの応答が受信される元となった他のグループの１又は複数のコンピューティングデバイス１１０に送信する、ブロック６１２に進む。
【００４９】
幾つかの実施形態において、第１および／または第２メッセージは、ブロードキャスト又はマルチキャストメッセージとして、複数のコンピューティングデバイス１１０の１又は複数に送信されてもよいことが理解されるべきである。追加的に又は代替的に、第１および／または第２メッセージは、ユニキャストメッセージとして、複数のコンピューティングデバイス１１０の１又は複数に送信されてもよい。とにかく、ハッシュキー５００または複数の個別コンポーネントハッシュは、第１および／または第２メッセージの１又は複数のヘッダーおよび／またはペイロードフィールド内に埋め込まれてもよい。例えば、幾つかの実施形態において、ハッシュキー５００または複数の個別コンポーネントハッシュは、第１および／または第２メッセージの１又は複数の予備ヘッダーフィールド（例えば複数のマルチキャスト予備フィールド、等）内に埋め込まれてもよい。  追加的に、コンピューティングデバイス１１０は、例示的な実施形態において、２つのメッセージ（例えば、第１および第２ハッシュを含む第１および第２メッセージ）をグループ１１６の１又は複数のコンピューティングデバイス１１０に送信するが、コンピューティングデバイス１１０は、複数の他の実施形態において、（例えば、省略符号６２０によって例示的に示されるような）２つのメッセージより多くをグループ１１６の１又は複数のコンピューティングデバイス１１０に送信してもよいことが理解されるべきである。
【００５０】
そのような複数の実施形態において、コンピューティングデバイス１１０はまた、受信したハッシュキー５００から取得される、ハッシュされた特性および／または機能毎に、メッセージを送信してもよい。
【００５１】
ここで図７を参照すると、システム１００のコンピューティングデバイス１１０が、オーバーレイネットワークを介してハッシュキーを含むメッセージを受信するならば、コンピューティングデバイス１１０は、コンピューティングデバイス１１０が受信メッセージのターゲット／宛先であるかどうかを判断する方法７００を実行してもよい。方法７００は、コンピューティングデバイス１１０が、ハッシュキー５００を含むメッセージがシステム１００の他のコンピューティングデバイス１１０から受信されたかどうかを判断するブロック７０２で開始する。説明したように、ハッシュキー５００は、各々が、ターゲット／宛先コンピューティングデバイス１１０または複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６の異なる要求特性および／または機能を示している、１又は複数のハッシュを含む。ブロック７０２において、コンピューティングデバイス１１０がハッシュキー５００を含むメッセージを受信するならば、方法７００はブロック７０４に進む。しかしながら、ハッシュキー５００を含むメッセージが受信されていないならば、方法７００は、コンピューティングデバイス１１０が、ハッシュキー５００を含むメッセージが受信されたかどうかを判断するのを継続するブロック７０２に戻る。
【００５２】
ブロック７０４において、コンピューティングデバイス１１０は、ハッシュキー５００を解析して、ターゲット／宛先コンピューティングデバイス１１０の（又は複数のターゲット／宛先コンピューティングデバイス１１０のグループ１１６の）要求特性および／または機能を表わすハッシュを取得する。方法７００は次に、ブロック７０６に進む。
【００５３】
ブロック７０６において、コンピューティングデバイス１１０は、ターゲット／宛先コンピューティングデバイス１１０の要求特性および／または機能を表わすハッシュを分析する。続いて、ブロック７０８において、コンピューティングデバイス１１０は、ハッシュによって示された要求特性および／または機能が、その複数の独自の特性および／または機能の１又は複数と一致するかどうかを判断してもよい。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス１１０は、ハッシュを、その独自の複数の電流特性および／または複数の機能と比較してもよい。追加的に又は代替的に、コンピューティングデバイス１１０は、要求特性および／または機能を表わすハッシュと、その複数の独自の特性および／または機能の１又は複数のハッシュと比較してもよい。ブロック７０８において、コンピューティングデバイス１１０が、ハッシュによって示された特性および／または機能が、その複数の独自の特性および／または機能の１つと一致すると決定するならば、方法７００はブロック７１０に進む。そのような複数の実施形態において、コンピューティングデバイス１１０は、それがターゲット／宛先コンピューティングデバイス１１０であると決定してもよい。しかしながら、コンピューティングデバイス１１０が代わりに、ハッシュによって示された特性および／または機能がその複数の独自の特性および／または機能の１つと一致しないと決定するならば、方法７００はブロック７０２に戻る。
【００５４】
ブロック７１０において、コンピューティングデバイス１１０は、システム１００の他のコンピューティングデバイス１１０から受信したメッセージが実行される要求アクションを示す情報（例えば実際のおよび／またはハッシュされたコマンド又は命令）を含むかどうかを判断する。ブロック７１０において、コンピューティングデバイス１１０が、受信メッセージが実行される要求アクションを示す情報を含まないと決定するならば、方法７００は、コンピューティングデバイス１１０が、ハッシュによって示された要求特性および／または機能と一致する１又は複数の特性および／または機能を含むことを示している他のコンピューティングデバイス１１０へと応答メッセージを送信するブロック７１２に進む。しかしながら、コンピューティングデバイス１１０が代わりに、受信メッセージが実行される要求アクションを示す情報を含むと決定するならば、方法７００はブロック７１４に進む。
【００５５】
ブロック７１４において、コンピューティングデバイス１１０は、受信メッセージを解析して、対応する命令又はコマンド情報を取得する。続いて、ブロック７１６において、コンピューティングデバイス１１０は、要求アクションを実行する。
【実施例】
【００５６】
本明細書で開示される複数の技術の複数の例示的な例が以下で提供される。複数の技術の実施形態は、以下で説明される任意の１又は複数の例、及び、それらの任意の組み合わせを含んでもよい。
【００５７】
例１は、オーバーレイネットワークを介して通信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュとターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信し、（ｉｉ）ハッシュキーを解析して第１ハッシュ及び第２ハッシュを取得し、（ｉｉｉ）第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信し、（ｉｖ）第１グループの第１コンピューティングデバイスから、第１コンピューティングデバイスが第１要求特性と一致する特性を含んでいることを示す応答メッセージを受信し、（ｖ）第１コンピューティングデバイスから応答メッセージを受信したことに応じて、第２ハッシュを含む第２メッセージを第１コンピューティングデバイスに送信する、ルーティングモジュールを備える。
【００５８】
例２は、例１の主題を含み、ルーティングモジュールは更に、第１グループの複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、第１メッセージを他の複数のコンピューティングデバイスの第２グループに送信する。例３は、例１および２の何れかの主題を含み、ルーティングモジュールは更に、（ｉ）第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較し、（ｉｉ）第１ハッシュとハッシュテーブルとの比較に基づいて第１グループを規定する。
【００５９】
例４は、例１―３の何れかの主題を含み、ルーティングモジュールは更に、第２ハッシュと、第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて第２メッセージを生成し、第２メッセージを送信することは、第２ハッシュ及び第３ハッシュを含む第２メッセージを第１コンピューティングデバイスに送信することを含む。
【００６０】
例５は、例１―４の何れかの主題を含み、第１コンピューティングデバイスによって実行される要求アクションは、第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む。
【００６１】
例６は、例１―５の何れかの主題を含み、第１要求特性または第２要求特性の少なくとも一方は、ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００６２】
例７は、例１―６の何れかの主題を含み、ハッシュキーを受信することは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信することを含む。
【００６３】
例８は、オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法を含み、当該方法は、コンピューティングデバイスが、（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュと、（ｉｉ）ターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信する段階と、コンピューティングデバイスが、ハッシュキーを解析して第１ハッシュ及び第２ハッシュを取得する段階と、コンピューティングデバイスが、第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信する段階と、コンピューティングデバイスが、第１グループの第１コンピューティングデバイスから、第１コンピューティングデバイスが第１要求特性と一致する特性を含むことを示す応答メッセージを受信する段階と、コンピューティングデバイスが、第１コンピューティングデバイスから応答メッセージを受信したことに応じて、第２ハッシュを含む第２メッセージを第１コンピューティングデバイスに送信する段階と、を含む。
【００６４】
例９は、例８の主題を含み、コンピューティングデバイスが、第１グループの複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、第１メッセージを複数の他のコンピューティングデバイスの第２グループに送信する段階を更に含む。例１０は、例８および９の何れかの主題を含み、コンピューティングデバイスが、第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較する段階と、コンピューティングデバイスが、第１ハッシュとハッシュテーブルとの比較に基づいて第１グループを規定する段階とを更に含む。
【００６５】
例１１は、例８―１０の何れかの主題を含み、コンピューティングデバイスが、第２ハッシュと、第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて第２メッセージを生成する段階を更に含み、第２メッセージを送信する段階は、第２ハッシュ及び第３ハッシュを含む第２メッセージを第１コンピューティングデバイスに送信する段階を含む。
【００６６】
例１２は、例８―１１の何れかの主題を含み、第１コンピューティングデバイスによって実行される要求アクションは、第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む。
【００６７】
例１３は、例８―１２の何れかの主題を含み、第１要求特性または第２要求特性の少なくとも一方は、ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００６８】
例１４は、例８―１３の何れかの主題を含み、ハッシュキーを受信する段階は、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信する段階を含む。
【００６９】
例１５は、１又は複数の機械可読媒体を含み、１又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例８―１４の何れかの方法を実行することになる複数の命令が格納される。
【００７０】
例１６は、オーバーレイネットワークを介して通信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例８―１４の何れかの方法を実行する手段を含む。
【００７１】
例１７は、オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、（ｉ）他のコンピューティングデバイスから、他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信し、（ｉｉ）ハッシュキーを解析して第１ハッシュを取得し、（ｉｉｉ）コンピューティングデバイスが、第１ハッシュによって示される識別特性と一致する特性を含むかどうかを判断し、（ｉｖ）コンピューティングデバイスが、第１ハッシュによって示される識別特性と一致する特性を含んでいると決定したことに応じて、応答メッセージを他のコンピューティングデバイスに送信する、ルーティングモジュールを備える。例１８は、例１７の主題を含み、（ｉ）他のコンピューティングデバイスから受信したメッセージがコンピューティングデバイスによって実行される要求アクションを含むかどうかを判断し、（ｉｉ）メッセージを解析して、要求アクションを取得し、（ｉｉｉ）要求アクションを実行する、コマンド管理モジュールを更に備える。
【００７２】
例１９は、例１７および１８の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージが要求アクションを含むかどうかを判断することは、他のコンピューティングデバイスから受信したメッセージが、コンピューティングデバイスによって実行される要求アクションを示す第２ハッシュを含むかどうかを判断することを含む。
【００７３】
例２０は、例１７―１９の何れかの主題を含み、コンピューティングデバイスによって実行される要求アクションは、コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む。
【００７４】
例２１は、例１７―２０の何れかの主題を含み、他のコンピューティングデバイスによって要求される識別特性は、コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００７５】
例２２は、例１７―２１の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する。
【００７６】
例２３は、オーバーレイネットワークを介してハッシュキーを受信する方法を含み、当該方法は、コンピューティングデバイスが、他のコンピューティングデバイスから、他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信する段階と、コンピューティングデバイスが、ハッシュキーを解析して、第１ハッシュを取得する段階と、コンピューティングデバイスが、コンピューティングデバイスが第１ハッシュによって示される識別特性と一致する特性を含むかどうかを判断する段階と、コンピューティングデバイスが、コンピューティングデバイスが第１ハッシュによって示される識別特性と一致する特性を含むと判断したことに応じて、応答メッセージを他のコンピューティングデバイスに送信する段階と、を含む。
【００７７】
例２４は、例２３の主題を含み、コンピューティングデバイスが、他のコンピューティングデバイスから受信されたメッセージがコンピューティングデバイスによって実行される要求アクションを含むかどうかを判断する段階と、コンピューティングデバイスが、メッセージを解析して要求アクションを取得する段階と、コンピューティングデバイスが、要求アクションを実行する段階と、を更に含む。例２５は、例２３および２４の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージが要求アクションを含むかどうかを判断する段階は、他のコンピューティングデバイスから受信したメッセージが、コンピューティングデバイスによって実行される要求アクションを示す第２ハッシュを含むかどうかを判断する段階を含む。
【００７８】
例２６は、例２３―２５の何れかの主題を含み、コンピューティングデバイスによって実行される要求アクションは、コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む。
【００７９】
例２７は、例２３―２６の何れかの主題を含み、他のコンピューティングデバイスによって要求される識別特性は、コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００８０】
例２８は、例２３―２７の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する。
【００８１】
例２９は、１又は複数の機械可読媒体を含み、１又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例２３―２８の何れかの方法を実行することになる複数の命令が格納される。
【００８２】
例３０は、オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例２３―２８の何れかの方法を実行する手段を含む。
【００８３】
例３１は、オーバーレイネットワークを介する通信用のハッシュキーを生成するコンピューティングデバイスを含み、当該コンピューティングデバイスは、（ｉ）コンピューティングデバイスの複数の特性を決定し、（ｉｉ）コンピューティングデバイス用のハッシュキーが生成されたかどうかを判断し、（ｉｉｉ）ハッシュキーがコンピューティングデバイス用に生成されていないとの決定に応じて、コンピューティングデバイスの決定された複数の特性毎にハッシュを生成し、（ｉｖ）コンピューティングデバイスの決定された複数の特性毎に生成されたハッシュに基づいて、ハッシュキーを生成し、（ｖ）ハッシュキーを他のコンピューティングデバイスに送信する、キー生成モジュールを備える。
【００８４】
例３２は、例３１の主題を含み、キー生成モジュールは更に、（ｉ）コンピューティングデバイスの決定された複数の特性の１又は複数が変わったかどうかを判断し、（ｉｉ）コンピューティングデバイスの決定された複数の特性の１又は複数が変わったとの決定に基づいてハッシュキーをアップデートし、（ｉｉｉ）アップデートされたハッシュキーを他のコンピューティングデバイスに送信する。例３３は、例３１および３２の何れかの主題を含み、コンピューティングデバイスの決定された複数の特性は、コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００８５】
例３４は、オーバーレイネットワークを介する通信用のハッシュキーを生成する方法を含み、当該方法は、コンピューティングデバイスが、コンピューティングデバイスの複数の特性を判断する段階と、コンピューティングデバイスが、ハッシュキーがコンピューティングデバイス用に生成されたかどうかを判断する段階と、コンピューティングデバイスが、ハッシュキーがコンピューティングデバイス用に生成されていないと判断したことに応じて、コンピューティングデバイスの決定された複数の特性毎にハッシュを生成する段階と、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性毎に生成されたハッシュに基づいてハッシュキーを生成する段階と、コンピューティングデバイスが、ハッシュキーを他のコンピューティングデバイスに送信する段階と、を含む。
【００８６】
例３５は、例３４の主題を含み、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性の１又は複数が変わったかどうかを判断する段階と、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性の１又は複数が変わったと判断したことに基づいてハッシュキーをアップデートする段階と、コンピューティングデバイスが、アップデートされたハッシュキーを他のコンピューティングデバイスに送信する段階と、を更に含む。
【００８７】
例３６は、例３４および３５の何れかの主題を含み、コンピューティングデバイスの決定された複数の特性は、コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む。
【００８８】
例３７は、１又は複数の機械可読媒体を含み、１又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例３４―３６の何れかの方法を実行することになる複数の命令が格納される。
【００８９】
例３８は、オーバーレイネットワークを介する通信用にハッシュキーを生成するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例３４―３６の何れかの方法を実行する手段を含む。
【図１】
2016533693.tif 000003
【図２】
2016533693.tif 000004
【図３】
2016533693.tif 000005
【図４】
2016533693.tif 000006
【図５】
2016533693.tif 000007
【図６】
2016533693.tif 000008
【図７】
2016533693.tif 000009
【手続補正書】
【提出日】平成28年3月25日(2016.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オーバーレイネットワークを介して通信するコンピューティングデバイスであって、
（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュと前記ターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信し、
（ｉｉ）前記ハッシュキーを解析して前記第１ハッシュ及び前記第２ハッシュを取得し、
（ｉｉｉ）前記第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信し、
（ｉｖ）前記第１グループの第１コンピューティングデバイスから、前記第１コンピューティングデバイスが前記第１要求特性と一致する特性を含んでいることを示す応答メッセージを受信し、
（ｖ）前記第１コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第２ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する、ルーティングモジュール
を備えるコンピューティングデバイス。
【請求項２】
前記ルーティングモジュールは更に、前記第１グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第１メッセージを複数の他のコンピューティングデバイスの第２グループに送信する、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記ルーティングモジュールは更に、
（ｉ）前記第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較し、
（ｉｉ）前記第１ハッシュと前記ハッシュテーブルとの比較に基づいて前記第１グループを規定する、
請求項１に記載のコンピューティングデバイス。
【請求項４】
前記ルーティングモジュールは更に、前記第２ハッシュと、前記第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて前記第２メッセージを生成し、
前記第２メッセージを送信することは、前記第２ハッシュ及び前記第３ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信することを含む、
請求項１に記載のコンピューティングデバイス。
【請求項５】
前記第１コンピューティングデバイスによって実行される前記要求アクションは、前記第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
請求項４に記載のコンピューティングデバイス。
【請求項６】
前記第１要求特性または前記第２要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項１に記載のコンピューティングデバイス。
【請求項７】
前記ハッシュキーを受信することは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信することを含む、
請求項１から６の何れか一項に記載のコンピューティングデバイス。
【請求項８】
オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法であって、
コンピューティングデバイスが、（ｉ）ターゲットコンピューティングデバイスの第１要求特性を示す第１ハッシュと、（ｉｉ）前記ターゲットコンピューティングデバイスの第２要求特性を示す第２ハッシュとを含むハッシュキーを受信する段階と、
前記コンピューティングデバイスが、前記ハッシュキーを解析して前記第１ハッシュ及び前記第２ハッシュを取得する段階と、
前記コンピューティングデバイスが、前記第１ハッシュを含む第１メッセージを複数の他のコンピューティングデバイスの第１グループに送信する段階と、
前記コンピューティングデバイスが、前記第１グループの第１コンピューティングデバイスから、前記第１コンピューティングデバイスが前記第１要求特性と一致する特性を含むことを示す応答メッセージを受信する段階と、
前記コンピューティングデバイスが、前記第１コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第２ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する段階と
を含む方法。
【請求項９】
前記コンピューティングデバイスが、前記第１グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第１メッセージを複数の他のコンピューティングデバイスの第２グループに送信する段階を更に含む、
請求項８に記載の方法。
【請求項１０】
前記コンピューティングデバイスが、前記第１ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較する段階と、前記コンピューティングデバイスが、前記第１ハッシュと前記ハッシュテーブルとの比較に基づいて前記第１グループを規定する段階とを更に含む、
請求項８に記載の方法。
【請求項１１】
前記コンピューティングデバイスが、前記第２ハッシュと、前記第１コンピューティングデバイスによって実行される要求アクションを示す第３ハッシュとに基づいて前記第２メッセージを生成する段階を更に含み、
前記第２メッセージを送信する段階は、前記第２ハッシュ及び前記第３ハッシュを含む第２メッセージを前記第１コンピューティングデバイスに送信する段階を含む、
請求項８に記載の方法。
【請求項１２】
前記第１コンピューティングデバイスによって実行される前記要求アクションは、前記第１コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
請求項１１に記載の方法。
【請求項１３】
前記第１要求特性または前記第２要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項８に記載の方法。
【請求項１４】
前記ハッシュキーを受信する段階は、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信する段階を含む、
請求項８に記載の方法。
【請求項１５】
コンピューティングデバイスに、請求項８から１４のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを格納する１又は複数の機械可読記録媒体。
【請求項１７】
オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスであって、
（ｉ）他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信し、
（ｉｉ）前記ハッシュキーを解析して前記第１ハッシュを取得し、
（ｉｉｉ）前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含むかどうかを判断し、
（ｉｖ）前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含んでいると決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信する、ルーティングモジュール
を備えるコンピューティングデバイス。
【請求項１８】
（ｉ）前記他のコンピューティングデバイスから受信した前記メッセージが前記コンピューティングデバイスによって実行される要求アクションを含むかどうかを判断し、
（ｉｉ）前記メッセージを解析して、前記要求アクションを取得し、
（ｉｉｉ）前記要求アクションを実行する、コマンド管理モジュール
を更に備える、請求項１７に記載のコンピューティングデバイス。
【請求項１９】
前記他のコンピューティングデバイスから受信した前記メッセージが前記要求アクションを含むかどうかを判断することは、前記他のコンピューティングデバイスから受信した前記メッセージが、前記コンピューティングデバイスによって実行される前記要求アクションを示す第２ハッシュを含むかどうかを判断することを含む、
請求項１８に記載のコンピューティングデバイス。
【請求項２０】
前記コンピューティングデバイスによって実行される前記要求アクションは、前記コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む、
請求項１７に記載のコンピューティングデバイス。
【請求項２１】
前記他のコンピューティングデバイスによって要求される前記識別特性は、前記コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項１７に記載のコンピューティングデバイス。
【請求項２２】
前記他のコンピューティングデバイスから受信した前記メッセージは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する、請求項１７から２１の何れか一項に記載のコンピューティングデバイス。
【請求項２３】
オーバーレイネットワークを介する通信用のハッシュキーを生成するコンピューティングデバイスであって、
（ｉ）前記コンピューティングデバイスの複数の特性を決定し、
（ｉｉ）前記コンピューティングデバイス用のハッシュキーが生成されたかどうかを判断し、
（ｉｉｉ）ハッシュキーが前記コンピューティングデバイス用に生成されていないとの決定に応じて、前記コンピューティングデバイスの決定された前記複数の特性毎にハッシュを生成し、
（ｉｖ）前記コンピューティングデバイスの決定された前記複数の特性毎に生成された前記ハッシュに基づいて、ハッシュキーを生成し、
（ｖ）前記ハッシュキーを他のコンピューティングデバイスに送信する、キー生成モジュール
を備えるコンピューティングデバイス。
【請求項２４】
前記キー生成モジュールは更に、
（ｉ）前記コンピューティングデバイスの決定された前記複数の特性の１又は複数が変わったかどうかを判断し、
（ｉｉ）前記コンピューティングデバイスの決定された前記複数の特性の１又は複数が変わったとの決定に基づいて前記ハッシュキーをアップデートし、
（ｉｉｉ）前記アップデートされたハッシュキーを前記他のコンピューティングデバイスに送信する
請求項２３に記載のコンピューティングデバイス。
【請求項２５】
前記コンピューティングデバイスの決定された前記複数の特性は、前記コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも１つを含む、
請求項２３または２４に記載のコンピューティングデバイス。
【請求項２６】
コンピューティングデバイスに、他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される識別特性を示す第１ハッシュを含むハッシュキーを有するメッセージを受信させる段階と、
前記ハッシュキーを解析させて前記第１ハッシュを取得させる段階と、
前記コンピューティングデバイスが、前記第１ハッシュによって示される前記識別特性と一致する特性を含むかどうかを判断させる段階と、
前記コンピューティングデバイスが前記第１ハッシュによって示される前記識別特性と一致する特性を含むと決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信させる段階と
を含む方法を実行させるためのプログラム。
【請求項２７】
請求項２６に記載のプログラムを格納する１又は複数の機械可読記録媒体。
【国際調査報告】
2016533693.tif 000010
2016533693.tif 000011