JP6202773B2 - オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるためのプログラム、及び、機械可読記録媒体 - Google Patents

オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるためのプログラム、及び、機械可読記録媒体 Download PDF

Info

Publication number
JP6202773B2
JP6202773B2 JP2016545723A JP2016545723A JP6202773B2 JP 6202773 B2 JP6202773 B2 JP 6202773B2 JP 2016545723 A JP2016545723 A JP 2016545723A JP 2016545723 A JP2016545723 A JP 2016545723A JP 6202773 B2 JP6202773 B2 JP 6202773B2
Authority
JP
Japan
Prior art keywords
computing device
hash
message
hash key
characteristic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016545723A
Other languages
English (en)
Other versions
JP2016533693A (ja
Inventor
ガングリ、ムリッティカ
エス、ディーパク
ジェイ. クマール、モハン
ジェイ. クマール、モハン
クリシィバス、ラマムアシィ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016533693A publication Critical patent/JP2016533693A/ja
Application granted granted Critical
Publication of JP6202773B2 publication Critical patent/JP6202773B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Description

「クラウド」コンピューティングとは、サービスとしてのコンピューティングリソースのプロビジョニングを指すのにしばしば用いられる用語であり、通常は、サービスが要求される場所から離れた場所で共にネットワーク接続される多数のコンピュータサーバによって行われる。クラウドデータセンタとは、典型的には、クラウドまたはクラウドの特定部分を構成するサーバの物理的構成を指す。例えば、サーバは、データセンタ内で、空間、グループ、組およびラックの中へと物理的に配置され得る。データセンタは、複数のサーバの1又は複数の空間を含み得る、1又は複数の「ゾーン」を備え得る。各空間は、複数のサーバの1又は複数の組を備え得、各組は、1又は複数のラックを含み得る。各ラックは、1又は複数の個別サーバノードを含み得る。ゾーン、空間、ラックおよび/または組の中のサーバは、電力、エネルギー、温度、加熱および/または他の要件を含み得るデータセンタ施設の物理的インフラ要件に基づいて、仮想グループの中へと配置され得る。
データセンタ内におけるそれ自体の物理的な場所に拘らず、サーバまたはそのリソースの一部は、セキュリティ、サービス品質、スループット、処理能力および/または他の基準など、実際の又は期待される使用要件に従って、(例えばデータセンタの異なる顧客による使用に対して)割り当てられ得る。一例として、1人の顧客のコンピューティングワークロードは、(データセンタの異なる組、ラック、グループ又は空間内に設置され得る)複数の物理的サーバ間で、又は、仮想化を用いる同じサーバ上での複数の処理の中で分割され得る。従って、仮想化のコンテキストにおいて、サーバは、ワークロード要件を満たすべく論理的にグループ化され得る。
データセンタ管理システムは、コンピュータソフトウェアを含み得、典型的には、データセンタにおけるサーバリソースを管理すべく用いられる。例えば、幾つかのデータセンタ管理システムは、顧客のワークロード要件を施設管理基準および/または他の要件と一致させようと試み、適宜、データセンタのサーバリソースを割り当てる。幾つかの場合において、スケジューリングは、例えば、個々のサーバが異なるハードウェア構成を有するゾーン、空間、グループ、組又はラックといった、複数のサーバの異種グループを含む物理的構成によって複雑化され得る。そのような複雑化は、多くのデータセンタが、コスト的な理由またはそれ以外の理由で、(例えば一度にグループ全体をアップグレードするよりもむしろ)必要な場合にのみサーバを置換する又はアップグレードするので、頻繁に発生し得る。追加的に、複数のサーバの異種グループと通信することは、サーバが、ワークロード要件に基づいて、動的にプロビジョニングされる、および/または、オフラインにされるデータセンタ内で複雑化され得る。例えば、多くのデータセンタ環境において、サーバは、典型的には、インターネットプロトコル(IP)アドレスおよび/またはメディアアクセスコントロール(MAC)アドレスを用いて処理および管理される。そのような環境において、まだIPおよび/またはMACアドレスを用いてプロビジョニングされてないサーバは、データセンタ管理システムによって発見可能および/または管理可能ではないかもしれない。
本明細書で説明される複数の概念は、添付の図面において例として示されるのであって、限定として示されるのではない。説明を簡潔かつ明確にすべく、図面において示される要素は、必ずしも縮尺通りに描写されていない。適切とみなされる場合には、複数の参照符号は、複数の対応する又は類似の要素を示すべく、複数の図の間で繰り返されている。
オーバーレイネットワークを介して通信すべくハッシュキーを用いるシステムの、少なくとも1つの実施形態の簡略ブロック図である。
図1のシステムのオーバーレイネットワークを介して通信すべくハッシュキーを用いるコンピューティングデバイスの、少なくとも1つの実施形態の簡略ブロック図である。
図2のコンピューティングデバイスの環境の少なくとも1つの実施形態の簡略ブロック図である。
ローカルハッシュキーを生成およびアップデートすべく、図2のコンピューティングデバイスによって実行され得る方法の、少なくとも1つの実施形態の簡略フロー図である。
オーバーレイネットワークを介して複数のメッセージをルーティングすべく図2のコンピューティングデバイスによって用いられ得る、ハッシュキーの例示的な実施形態である。
オーバーレイネットワークを介して複数のメッセージをルーティングすべくハッシュキーを用いるための、図2のコンピューティングデバイスによって実行され得る方法の、少なくとも1つの実施形態の簡略フロー図である。
ハッシュキーを用いて、オーバーレイネットワークを介してメッセージを受信するための、図2のコンピューティングデバイスによって実行され得る方法の、少なくとも1つの実施形態の簡略フロー図である。
本開示の複数の概念は、様々な変更及び代替的な形態の対象たり得るものである一方で、それらの複数の具体的実施形態は、図面において例として示され、本明細書で詳細に説明されるだろう。しかしながら、本開示の複数の概念を開示される複数の特定形態に制限する意図は無く、それどころか、本開示及び添付の特許請求の範囲と相反しない全ての変更、均等物及び代替案を包含する意図であることを理解されるべきである。明細書における「一実施形態」、「実施形態」、「例示的な実施形態」等についての複数の言及は、説明される実施形態が特有の機能、構造または特性を含み得ることを示しているが、いずれの実施形態も、それら特有の機能、構造または特性を含んでもよく、又は、必ずしも含まなくてもよい。更に、そのような複数の表現は、必ずしも同じ実施形態について言及していない。更に、特有の機能、構造または特性が実施形態に関連して説明される場合、明示的に説明されているか否かに拘らず、他の複数の実施形態に関連してそのような特徴、構造または特性を達成することは、当業者の知識の範囲内であるとされる。追加的に、「A、BおよびCの少なくとも1つ」という形の一覧に含まれている複数のアイテムは、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、又は、(A、BおよびC)を意味し得ることが理解されるべきである。同様に、「A、BまたはCの少なくとも1つ」という形で列挙されている複数のアイテムは、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、又は、(A、BおよびC)を意味し得る。
開示される複数の実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア、又は、それらの任意の組み合わせにおいて実装されてもよい。開示される複数の実施形態はまた、1又は複数のプロセッサによって読み取られて実行され得る、一時的又は非一時的機械可読(例えばコンピュータ可読)記憶媒体によって伝達又は格納される複数の命令として実装されてもよい。機械可読記憶媒体は、情報を機械で読み取り可能な形で格納又は送信する、任意のストレージデバイス、メカニズム、又は、他の物理的構造として具現化されてもよい(例えば、揮発性若しくは非揮発性メモリ、メディアディスク、又は、他のメディアデバイス)。
図面において、幾つかの構造的又は方法的な特徴は、複数の特定の配置および/または順序で示され得る。しかしながら、そのような複数の特定の配置および/または順序が必要とされなくてもよいことが理解されるべきである。むしろ、幾つかの実施形態において、そのような複数の特徴は、例示的な図面で示されるものと異なる方法および/または順序で配置されてもよい。追加的に、特定の図面において構造的又は方法的な特徴を含ませることは、そのような特徴が全ての実施形態において必要とされることを示唆するつもりではなく、幾つかの実施形態においては含まれなくても良く、又は、他の複数の特徴と組み合わされてもよい。
ここで、図1を参照すると、例示的な実施形態において、オーバーレイネットワークを介して通信すべくハッシュキーを用いるシステム100は、1又は複数のノード110を含む。1又は複数のノード110のそれぞれが、1又は複数のコンピューティングデバイスとして具現化されてもよく、以下の説明においてノード110および/またはコンピューティングデバイス110と称され得る。幾つかの実施形態において、複数のノード110(例えば、コンピューティングデバイス122―127、132―138、142―145、152―156)は、データセンタ施設の複数の物理的インフラ要件(例えば、場所、ラック、電力、エネルギー、温度、加熱および/または他の要件)、複数のワークロード要件(例えば、セキュリティ、サービス品質、スループット、処理能力、および/または、他の基準)、および/または、複数のデバイス特性又は機能(例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、性能測定基準、等)に基づいて、1又は複数のゾーン120、130、140、150の中へと配置されてもよい。追加的に、任意の数のノード110(例えばノード125―127)が、複数の同じ又は異なる要件に基づいて、特定のゾーン(例えばゾーン120)内の任意の数のグループ(例えば、グループ116)の中へと配置されてもよい。いずれにしても、複数のノード110の各々は、構造化オーバーレイネットワークを利用し、例えば、インターネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、又は、任意の他のタイプのネットワークなどの1又は複数の下層ネットワーク(図示せず)を介して、1又は複数の他のノード110と通信するように構成されてもよい。例示的な実施形態において、各ノード110は、分散ハッシュテーブルを利用して、1又は複数の他のノード110と共に位置し、これらと通信するように構成される。
構造化オーバーレイネットワークの複数の他のノード110と共に位置すること、および/または、これらと通信することを容易にすべく、各ノード110は、自身の複数の特性および/または複数の機能(例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等)を表わすパーソナルハッシュキーを生成してもよい。各ノード110は、自身のパーソナルハッシュキー、および/または、自身のパーソナルハッシュキーを含むハッシュテーブルを、同じグループ116内の、同じゾーン120、130、140、150内の、複数の他のグループ若しくはゾーン120、130、140、150内の、および/または、1又は複数の下層ネットワークに亘って、1又は複数の他のノード110に分散してもよい。幾つかの実施形態において、各ノード110は、自身の複数の特性および/または複数の機能に対する複数の変更を、継続して(又は基準間隔に従って)監視してもよい。そのような複数の実施形態において、複数のノード110は更に、それら自身の複数の特性および/または複数の機能の1又は複数が変わったと判断したことに応じて、それら自身の複数のパーソナルハッシュキーをアップデートするように構成されてもよい。そのようにして、各ノード110は、自身の個別的な複数の特性および/または複数の機能に基づいて、構造化オーバーレイネットワーク内でアドレス可能であってもよい。
幾つかの実施形態において、ノード110(例えばコンピューティングデバイス122)は、別のノード110(例えばコンピューティングデバイス132)からのメッセージを受信し、メッセージ内に含まれるハッシュキー(例えば図5に示されているハッシュキー500)に基づいて、そのメッセージを1又は複数の他のノード110(例えばコンピューティングデバイス123―127)にルーティングしてもよい。以下でより詳細に説明されるように、ハッシュキー500は、意図若しくはターゲットノード110、および/または、複数のノード110のグループの、1又は複数の特性および/または機能を示している。すなわち、メッセージ内に含まれるハッシュキー500は、メッセージを対応する(例えば一致する)複数の特性および/または複数の機能を有する1又は複数のノード110にルーティングすることを容易にすべく用いられてもよい。
追加的に、幾つかの実施形態において、ノード110(例えばコンピューティングデバイス132)は、別のノード110(例えばコンピューティングデバイス122)から、ハッシュキー500に加えて受信ノード110(例えばコンピューティングデバイス132)によって実行されるアクションを示す情報も含むメッセージを受信してもよい。そのような複数の実施形態において、受信ノード110(例えばコンピューティングデバイス132)は、それが、ハッシュキー500によって示される1又は複数の特性および/または機能に対応する複数の特性および/または複数の機能を含んでいると判断したことに応じて、そのアクションを実行するように構成されてもよい。すなわち、それがメッセージに対する適切な宛先(例えば複数の意図したターゲットノードの1つ)であると判断したことに応じて、受信ノード110(例えばコンピューティングデバイス132)は、要求アクションを実行してもよい。
上記で説明した通り、複数のコンピューティングデバイス110の各々は、これらに限定されないが、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、スマートディスプレイデバイス、携帯電話、スマートフォン、タブレットコンピューティング消費デバイス、パーソナルデジタルアシスタント、消費者向け電子デバイス、スマートテレビおよび/または他のタイプのコンピューティングデバイスを含む、本明細書で説明される複数の機能を実行可能な任意のタイプの1又は複数のコンピューティングデバイスとして具現化されてもよい。図2に示されるように、システム100の例示的なコンピューティングデバイス110(すなわちノード110)は、プロセッサ212、メモリ214、入力/出力(I/O)サブシステム216、通信回路218、及び、データストレージ220を含んでもよい。勿論、コンピューティングデバイス110は、複数の他の実施形態においては、サーバおよび/またはコンピュータ(例えば様々な入力/出力デバイス)内で一般に見られるような、他の又は追加の複数のコンポーネントを含んでもよい。追加的に、幾つかの実施形態において、複数の例示的なコンポーネントの1又は複数は、他のコンポーネントに組み込まれてもよく、又はそうでなければ、他のコンポーネントの一部であってもよい。例えば、メモリ214またはその複数の部分は、幾つかの実施形態において、プロセッサ212に組み込まれてもよい。
プロセッサ212は、本明細書で説明される複数の機能を実行可能な任意のタイプのプロセッサとして具現化されてもよい。例えば、プロセッサ212は、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ若しくは他のプロセッサ、又は、処理/制御回路として具現化されてもよい。同様に、メモリ214は、本明細書で説明される複数の機能を実行可能な、任意のタイプの揮発性若しくは非揮発性メモリまたはデータストレージとして具現化されてもよい。動作中、メモリ214は、複数のオペレーティングシステム、複数のアプリケーション、複数のプログラム、複数のライブラリおよび複数のドライバなどの、コンピューティングデバイス110の動作中に用いられる様々なデータおよびソフトウェアを格納してもよい。メモリ214は、コンピューティングデバイス110のプロセッサ212、メモリ214および複数の他のコンポーネントとの複数の入力/出力動作を容易にする回路および/または複数のコンポーネントとして具現化され得るI/Oサブシステム216を介して、プロセッサ212と通信可能に結合される。例えば、I/Oサブシステム216は、複数のメモリコントローラハブ、複数の入力/出力制御ハブ、複数のファームウェアデバイス、複数の通信リンク(すなわち、複数のポイントツーポイントリンク、複数のバスリンク、複数の有線、複数のケーブル、複数のライトガイド、複数のプリント回路基板トレース等)、および/または、複数の入力/出力動作を容易にする複数の他のコンポーネント並びにサブシステムとして具現化されてもよく、又はそうでなければこれらを含んでもよい。幾つかの実施形態において、I/Oサブシステム216は、システムオンチップ(SoC)の一部を形成してもよく、コンピューティングデバイス110のプロセッサ212、メモリ214および複数の他のコンポーネントと共に、単一の集積回路チップに組み込まれてもよい。
コンピューティングデバイス110の通信回路218は、コンピューティングデバイス110と、1又は複数の他のコンピューティングデバイス110との間での複数の通信を可能にできる、任意のタイプの通信回路、デバイス、又は、それらの集合として具現化されてもよい。通信回路218は、任意の1又は複数の通信技術(例えば複数の無線又は有線通信)を用いるように構成され、そのような通信を達成すべく複数のプロトコル(例えば、イーサネット(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)、等)と関連付けられてもよい。以下でより詳細に説明されるように、システム100の複数のコンピューティングデバイス110は、互いに通信すべく構造化オーバーレイネットワークを用いる。構造化オーバーレイネットワークは、1又は複数の下層ネットワーク(図示せず)を用いて確立されてもよい。1又は複数の下層ネットワークは、任意の数の様々な有線および/または無線通信ネットワークとして具現化されてもよい。例えば、複数の下層ネットワークの1又は複数は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、セルラーネットワーク、又は、インターネットのような公衆アクセス可能なグローバルネットワークとして具現化されてもよく、又はそうでなければこれらを含んでもよい。追加的に、複数の下層ネットワークの1又は複数は、複数のコンピューティングデバイス110間の複数の構造化オーバーレイ通信を容易にする、任意の数の追加のデバイスを含んでもよい。
データストレージ220は、例えば、複数のメモリデバイス並びに複数のメモリ回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、又は、他の複数のデータストレージデバイスなどの、データの短期間又は長期間保存用に構成された任意のタイプのデバイスまたは複数のデバイスとして具現化されてもよい。例示的な実施形態において、データストレージ220は、ハッシュキー224およびハッシュテーブル222を含んでもよい。以下でより詳細に説明されるように、ハッシュキー224は、コンピューティングデバイス110の複数の特性および/または複数の機能(例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等)を示す情報を含んでもよい。そのようにして、ハッシュキー224は、特定のコンピューティングデバイス110に対応する「パーソナル」又は「ローカル」ハッシュキー224として具現化されてもよい。幾つかの実施形態において、コンピューティングデバイス110の各特性および/または機能は、分離ハッシュとして具現化されてもよい。そのような複数の実施形態において、ハッシュキー224は、複数のハッシュの連結および/またはアグリゲーションから形成されてもよい。
ハッシュテーブル222は、特定のコンピューティングデバイス110が通信し得る任意の数の他のコンピューティングデバイス110(例えば複数の他のノード110)に対応する任意の数のハッシュ又はハッシュキーを含んでもよい。ハッシュテーブル222内に含まれる複数のハッシュおよび/または複数のハッシュキーは、複数の他のコンピューティングデバイス110から受信される複数のパーソナルハッシュキーとして具現化されてもよい。従って、例示的な実施形態において、ハッシュテーブル222は、複数の特定の特性および/または機能を、1又は複数のコンピューティングデバイス110(例えば複数のノード110)にマッピングする。追加的に、幾つかの実施形態において、ハッシュテーブル222はまた、ハッシュ毎、および/または、その中に含まれるハッシュキー毎に、ある値を含んでもよい。例えば、複数のコンピューティングデバイス110(すなわち複数のノード110)が下層ネットワーク(例えばLAN、WAN、PAN、等)を介して構造化オーバーレイネットワーク上で互いに通信するように構成されている複数の実施形態において、ハッシュテーブル222はまた、各対応するコンピューティングデバイス110に割り当てられた下層ネットワークアドレス(例えば、インターネットプロトコルアドレス、メディアアクセスプロトコルアドレス、等)を示す、ハッシュ毎および/またはハッシュキー毎に、ある値を含んでもよい。
ここで、図3を参照すると、使用する場合、複数のコンピューティングデバイス110(すなわち複数のノード110)の各々は、動作中に環境300を確立する。例示的環境300は、通信モジュール302、キー生成モジュール306、ルーティングモジュール310、及び、コマンド管理モジュール314を含み、それぞれがソフトウェア、ファームウェア、ハードウェア、又は、それらの組み合わせとして具現化されてもよい。記載の明瞭化のため図3には図示されていないが、コンピューティングデバイス110の各々が、コンピューティングデバイスで一般的に見られる複数の他のコンポーネント、複数のサブコンポーネント、複数のモジュールおよび複数のデバイスを含んでもよいことが理解されるべきである。追加的に、複数のコンピューティングデバイス110の各々は動作中に例示的環境300を確立してもよいが、その例示的環境300の以下の説明は、記載の明瞭化のため、コンピューティングデバイス122への具体的な言及と共に説明されることが理解されるべきである。
コンピューティングデバイス122の通信モジュール302は、コンピューティングデバイス122とシステム100の他のコンピューティングデバイス110との、複数のコンポーネント又は複数のサブコンポーネント間における複数の通信を容易にする。例えば、幾つかの実施形態において、通信モジュール302は、構造化オーバーレイネットワークおよび/または下層ネットワークを通じて、複数の他のコンピューティングデバイス110から複数のメッセージを受信し、および/または、これらへと複数のメッセージを送信する。説明したように、幾つかの実施形態において、複数の他のコンピューティングデバイス110へと送信された、および/または、これらから受信された複数のメッセージは、コンピューティングデバイス122の複数の特性並びに/若しくは複数の機能を示すローカルハッシュキー224、他のコンピューティングデバイス110の複数の特性並びに/若しくは複数の機能を示すローカルハッシュキー224、ターゲット/宛先コンピューティングデバイス110の複数の特性並びに/若しくは複数の機能を示すハッシュキー500(図5を参照)、および/または、ターゲット/宛先コンピューティングデバイス110によって実行される1又は複数のアクションを示す情報を含んでもよい。
キー生成モジュール306は、コンピューティングデバイス122用のハッシュキー224を生成するように構成されてもよい。生成されたハッシュキー224は、コンピューティングデバイス122の1又は複数の特性および/または機能(例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、性能測定基準、等)を示してもよい(すなわち、システム100の異なる複数のコンピューティングデバイス110は、それら独自の複数の特定の特性/機能に基づいて異なる複数のハッシュキー224を生成してもよい)。幾つかの実施形態において、キー生成モジュール306は、コンピューティングデバイス122の特性および/または機能毎に分離ハッシュを生成してもよい。そのような複数の実施形態において、ハッシュキー224は、特性および/または機能毎に分離ハッシュの連結および/またはアグリゲーションとして具現化されてもよい。例えば、ハッシュキー224は、コンピューティングデバイス122のプロセッサのタイプを示すハッシュと、コンピューティングデバイス122が現在用いているメモリの量を示す他のハッシュとを含んでもよい。ハッシュキー224は、1つ、2つ又はそれより多くのハッシュを含んでもよく、それぞれがコンピューティングデバイス122の異なる特性および/または機能を示してもよいことが理解されるべきである。
追加的に、キー生成モジュール306は、コンピューティングデバイス122に対応するハッシュキー224をアップデートするように構成されてもよい。例えば、幾つかの実施形態において、コンピューティングデバイス122の1又は複数の特性および/または機能は、1又は複数のイベント(例えば、ワークロード増加/減少、ハードウェア/ソフトウェアアップグレード、ネットワーク輻輳、デバイス有用性/非有用性、等)の発生に応じて変化してもよい。そのような複数の実施形態において、キー生成モジュール306は、コンピューティングデバイス122の複数の特性および/または複数の機能の何れかの複数の変化を監視してそれに応答するキーアップデートモジュール308を含んでもよい。そのようにすべく、キーアップデートモジュール308は、継続的に、周期的に、および/または、応答的に、コンピューティングデバイス122の複数の特性および/または複数の機能を監視して、何れかが変わったのかどうかを判断するように構成されてもよい。例えば、キーアップデートモジュール308は、コンピューティングデバイス122の複数の特性および/または複数の機能の何れかが基準間隔に従って(例えば、1時間に一度、1日に一度、1週間に一度、等)変わったかどうかを判断するように構成されてもよい。どれだけの頻度で、キーアップデートモジュール308が、コンピューティングデバイス122の複数の特性および/または複数の機能の何れかが変わったのかどうかを判断するかに関わらず、キーアップデートモジュール308は、決定された複数の変化に少なくとも部分的に基づき、又はそうでなければその関数として、ハッシュキー224をアップデートしてもよい。ハッシュキー224が、共に連結され、および/または集約された複数のハッシュを含む複数の実施形態において、キーアップデートモジュール308は、変わった特性および/または機能に対応するそれらの複数のハッシュのみをアップデートするように構成されてもよい。キーアップデートモジュール308がハッシュキー224をアップデートするならば、アップデートされたハッシュキー224、および/または、アップデートされたハッシュキー224を含むハッシュテーブルは、複数の他のコンピューティングデバイス110に提供されてもよい。
ルーティングモジュール310は、システム100の他のコンピューティングデバイス110からの複数のターゲットメッセージを受信するように構成される。例えば、コンピューティングデバイス132(又はシステム100の他のコンピューティングデバイス110)は、ターゲットメッセージをコンピューティングデバイス122に送信してもよい。幾つかの実施形態において、コンピューティングデバイス132(又は他のコンピューティングデバイス110)から受信される複数のメッセージは、複数のターゲットメッセージ用のターゲット/宛先コンピューティングデバイス110の複数の特性および/または複数の機能を示すハッシュキー500を含んでもよい。そのような複数の実施形態において、ルーティングモジュール310は、ハッシュキー500によって示される複数の特性および/または複数の機能を用いて、1又は複数のメッセージを、同じ又は実質的に類似する複数の特性および/または複数の機能を有するターゲット/宛先コンピューティングデバイス110(複数のターゲット/宛先コンピューティングデバイス110のグループ116)にルーティングしてもよい。幾つかの実施形態において、コンピューティングデバイス132(又は他のコンピューティングデバイス110)から受信される複数のメッセージは、コンピューティングデバイス132(又は他のコンピューティングデバイス110)によって送信されるブロードキャスト又はマルチキャスト送信の一部として受信されてもよい。追加的に、幾つかの実施形態において、ハッシュキー500および他のデータは、各メッセージの1又は複数のヘッダーフィールド内に埋め込まれてもよい。例えば、コンピューティングデバイス132が複数のメッセージをコンピューティングデバイス122とシステム100の複数の他のコンピューティングデバイス110とにブロードキャスト又はマルチキャストする複数の実施形態において、ハッシュキー500および他のデータの少なくとも一部は、各メッセージの1又は複数の予備ヘッダーフィールド(例えば、複数のマルチキャスト予備フィールド、等)内に埋め込まれてもよい。
ハッシュキー500が1又は複数のハッシュの連結および/またはアグリゲーションとして具現化される複数の実施形態において、ルーティングモジュール310は、ハッシュキー500を解析してその中に含まれる複数の個別ハッシュを取得するように構成されてもよい。そのようにすべく、ルーティングモジュール310は、ハッシュキー500内で識別される特定数のストレージユニット(例えば、ニブル、ビット、バイト、等)、ハッシュキー500内で識別される特定数の特性並びに/若しくは機能、および/または、ハッシュキー500を複数のコンポーネントハッシュへとブレークダウン(例えば、解析、分離、分割、分裂、等)するのに好適な任意の他の処理に従って、ハッシュキー500を解析してもよい。
コンピューティングデバイス122のルーティングモジュール310はまた、どのコンピューティングデバイス110が、コンピューティングデバイス122のハッシュキー500およびローカルハッシュテーブル222に少なくとも部分的に基づき、又はそうでなければそれらの関数として、任意の受信メッセージをルーティングするかを決定するように構成されてもよい。そのようにすべく、ルーティングモジュール310は、ハッシュ分析モジュール312を含んでもよい。ハッシュ分析モジュール312は、ローカルハッシュテーブル222内に含まれる1又は複数のコンピューティングデバイス110の何れかが、ハッシュキー500(又はその中に含まれる個別ハッシュ)によって示される複数の特性および/または複数の機能と一致する複数の特性および/または複数の機能を有するのかどうかを判断するコンピューティングデバイス122のローカルハッシュテーブル222を利用するように構成されてもよい。
コンピューティングデバイス122がハッシュキー500を含むメッセージ用のターゲット/宛先コンピューティングデバイス110である複数の実施形態において、コマンド管理モジュール314は、そのメッセージがコンピューティングデバイス122によって実行されるアクションを示す情報も含むかどうかを判断するように構成される。例えば、幾つかの実施形態において、受信メッセージはまた、コンピューティングデバイス122に、サービス品質(QoS)ポリシーを実行または再設定する(例えば、ストレージ又はメモリキャッシュサイズをセットする、電力状態を変化させる、複数のデータ送信を優先させる、データ処理を優先させる、等)ことを要求するコマンド又は命令を含んでもよい。勿論、要求アクションはまた、コンピューティングデバイス122によって実行される任意の他のタイプのアクション(例えば、情報要求に応答する、複数のコンポーネント又は複数のサービスを有効化/無効化する、等)を含んでもよいことが理解されるべきである。幾つかの実施形態において、アクション情報は、メッセージの1又は複数のヘッダーフィールド内に埋め込まれ得るコマンド又は命令を表わすハッシュとして具現化されてもよい。追加的に又は代替的に、アクション情報、メッセージのペイロード部分内に埋め込まれる実際のコマンド又は命令(例えば、疑似コード、命令識別子、認識可能命令、等)として具現化されてもよい。とにかく、メッセージがアクション情報を含む複数の実施形態において、コマンド管理モジュール314は、メッセージを解析して対応する命令又はコマンド情報を取得してもよい。要求アクションを示す情報を取得する際に、コマンド管理モジュール314は、要求アクションを実行するように、又はそうでなければその性能を引き起こすように構成されてもよい。
ここで、図4を参照すると、使用する場合、システム100の複数のコンピューティングデバイス110の各々は、ハッシュキー224(例えば、「ローカル」又は「パーソナル」ハッシュキー224)を生成してアップデートする方法400を実行してもよい。方法400は、コンピューティングデバイス110が自身の複数の特性および/または複数の機能(例えば、プロセッサタイプ、メモリ容量、メモリ使用量、電力状態、電力容量、電力消費、記憶容量、ストレージ使用量、有用性、セキュリティポリシー、セキュリティレベル、複数の性能測定基準、等)を決定および/または収集するブロック402で開始する。幾つかの実施形態において、コンピューティングデバイス110は、ソフトウェアエージェントを実行して自身の複数の電流特性および/または複数の機能を決定する。追加的に又は代替的に、コンピューティングデバイス110は、自身の複数の電流特性および/または複数の機能を示すデータを、複数の特性および/または複数の機能が関連する複数のコンポーネントから直接的に受信してもよい。
ブロック404において、コンピューティングデバイス110は、どのハッシュキー224が前に生成されたかどうかを判断する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス110は、ハッシュキー224がデータストレージ220に格納されているかどうかを判断する。ブロック404において、コンピューティングデバイス110が、ハッシュキー224は生成されていないと決定するならば、方法400はブロック406に進む。しかしながら、ブロック404において、コンピューティングデバイス110が、ハッシュキー224は既に生成されたと決定するならば、方法400はブロック412に進む。
ブロック406において、コンピューティングデバイス110は、コンピューティングデバイス110の特性および/または機能毎にハッシュを生成する。幾つかの実施形態において、コンピューティングデバイス110の特性および/または機能毎に生成されたハッシュは、複数の特定の特性および/または機能を示すデータとして具現化される。例えば、各ハッシュは、対応する特性および/または機能を表わす一連の記号(例えば、文字、数字、指標、又は、それらの任意の組み合わせ)であってもよい。そのような複数の実施形態において、コンピューティングデバイス110は、各特性および/または機能に対応するテキストラベル又は説明から各ハッシュを導いてもよい。複数の他の実施形態において、コンピューティングデバイス110の特性および/または機能を示すデータおよび/または複数のハッシュを生成する任意の他の処理も用いられてもよいことが理解されるべきである。
ブロック408において、自身の複数の特性および/または複数の機能の各々毎にハッシュを生成することより後に、コンピューティングデバイス110はその独自のハッシュキー224を生成する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス110は、複数のハッシュの各々を、単一のハッシュキー224へと連結、結合および/または集約する。これは、要求アクションの性能および/またはメッセージルーティング用に他のコンピューティングデバイス110(例えばコンピューティングデバイス132)によって後で解析されてもよい。
ブロック410において、ハッシュキー224を生成した後に、コンピューティングデバイス110は、自身のハッシュキー224を、システム100の1又は複数の他のコンピューティングデバイス110に提供する。そうすることで、コンピューティングデバイス110のハッシュキー224は、複数の他のコンピューティングデバイス110の1又は複数のローカルハッシュテーブル222内に含まれてもよい。そのハッシュキー224を1又は複数の他のコンピューティングデバイス110に提供する際に、方法400は、コンピューティングデバイス110がその複数の独自の特性および/または機能を判断および/または収集することを継続するブロック402に戻る。
ブロック412では、ハッシュキー224が前に生成されたと判断したことに応じて、コンピューティングデバイス110は、その複数の独自の特性および/または機能の何れかが変わったかどうかを判断する。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス110は、自身の複数の電流特性および/または複数の機能と、既に存在するハッシュキー224を生成するのに用いられる複数の特性および/または複数の機能とを比較する。ブロック412において、コンピューティングデバイス110が、その複数の独自の特性および/または機能の1つも変わってないと決定するならば、方法400は、コンピューティングデバイス110がその複数の独自の特性および/または機能を判断および/または収集することを継続するブロック402に戻る。しかしながら、コンピューティングデバイス110が、自身の複数の特性および/または複数の機能の1又は複数が変わったと決定するならば、方法はブロック414に進む。
ブロック414において、コンピューティングデバイス110は、変わったと判断された1又は複数の特性および/または機能に少なくとも部分的に基づき、自身のハッシュキー224をアップデートする。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス110は、変わった複数の特性および/または複数の機能毎に、新たな複数のハッシュを生成する。その後、コンピューティングデバイス110は、自身のハッシュキー224をアップデートして、アップデートされた(例えば新たに生成された)複数のハッシュを含ませる。幾つかの実施形態において、コンピューティングデバイス110は、前に生成されたハッシュキー224の複数の個別ハッシュをアップデートするよりもむしろ、新たなハッシュキー224を生成してもよい。
ブロック416において、自身のハッシュキー224をアップデートした後に、コンピューティングデバイス110は、自身のアップデートされたハッシュキー224を、システム100の1又は複数の他のコンピューティングデバイス110に提供する。そうすることで、コンピューティングデバイス110のハッシュキー224は、他のコンピューティングデバイス110のローカルハッシュテーブル222内でアップデートされてもよい。自身のアップデートされたハッシュキー224を他のコンピューティングデバイス110に提供する際に、方法400は、コンピューティングデバイス110が、その複数の独自の特性および/または機能を判断および/または収集することを継続するブロック402に戻る。
上記で説明した通り、幾つかの実施形態において、システム100のコンピューティングデバイス110は、構造化オーバーレイネットワークを介して他のコンピューティングデバイス110からターゲットメッセージを受信してもよい。ターゲットメッセージは、ハッシュキー500を含んでもよく、これは、メッセージをターゲット/宛先コンピューティングデバイス110にルーティングすることを容易にするのに用いられてもよい。幾つかの実施形態において、ハッシュキー500またはその一部は、受信メッセージの1又は複数のヘッダーフィールド内に埋め込まれてもよい。そのように、ハッシュキー500は、メッセージの1又は複数のヘッダーフィールド内に埋め込まれるべく、互換性のあるフォーマットであってもよい。
例示的ハッシュキー500が図5に示されている。例示的ハッシュキー500は、メッセージの実際のデータ560(例えばペイロード560)を優先する複数のヘッダーフィールド502を含んでもよい。例えば、図5に示されている例示的な実施形態において、ハッシュキー500は、メッセージの複数のヘッダーフィールド502の1又は複数の中にあるハッシュキー500の存在を示す、あるタイプのフィールド510を含む。ハッシュキー500はまた、対応する多数の追加のヘッダーフィールド530内に含まれる複数の特性および/または複数の機能の数を示すオフセットフィールド520(例えば、「複数の性質の数」フィールド520)を含む。複数の追加のヘッダーフィールド530の各々は、ターゲット/宛先コンピューティングデバイス110の別の特性および/または機能を含んでもよい。例えば、例示的な複数の追加のヘッダーフィールド530は、プロセッサタイプフィールド531、ディスク(例えばストレージ)使用量フィールド532、メモリ使用量フィールド533、電力消費フィールド534、デバイス性能フィールド535、および/または、セキュリティレベルフィールド536を含む。勿論、複数の追加のヘッダーフィールド530はターゲット/宛先コンピューティングデバイス110の機能および/または特性(例えば、メモリ容量、電力状態、電力容量、記憶容量、有用性、セキュリティポリシー、等)を示す任意の他のタイプのフィールドを含んでもよいことが理解されるべきである。
幾つかの実施形態において、ハッシュキー500はまた、上記で説明されたターゲット/宛先コンピューティングデバイス110によって実行されることを要求される1又は複数のコマンドを示す情報を含んでもよい。例えば、図5に例示的に示されているように、ハッシュキー500は、あるアクションがターゲット/宛先コンピューティングデバイス110によって実行されることを示すアクションフィールド540(例えば、CQoSフィールド540)を含んでもよい。そのような複数の実施形態において、ハッシュキー500は更に、ターゲット/宛先コンピューティングデバイス110によって実行される特定の命令、コマンド、構成および/またはアクションを示すコマンドフィールド550(例えば性質フィールド550)を含んでもよい。勿論、幾つかの実施形態において、実行されるアクション、および/または、複数の特定の命令は、代わりに、メッセージのペイロード560(例えばデータ部分560)内に含まれてもよいことが理解されるべきである。追加的に、幾つかの実施形態において、図5に示されているものと実質的に同様のフォーマットもまた、複数のコンピューティングデバイス110の各々によって、これらの複数の個別ハッシュキー224を生成および/またはアップデートするのに用いられてもよいことが理解されるべきである。
ここで、図6を参照すると、システム100のコンピューティングデバイス110がハッシュキー500を含むメッセージを受信するならば、コンピューティングデバイス110は、ハッシュキー500を用いて、オーバーレイネットワークを介してメッセージをルーティングする方法600を実行してもよい。方法600は、コンピューティングデバイス110が、ハッシュキー500を含むメッセージがシステム100の「ソース」コンピューティングデバイス110から受信されたかどうかを判断する、ブロック602で開始する。説明したように、ハッシュキー500は、ターゲット/宛先コンピューティングデバイス110または複数のターゲット/宛先コンピューティングデバイス110のグループ116に対して各々が異なる要求特性および/または機能を示している、1又は複数のハッシュを含む。すなわち、ハッシュキー500内の複数の個別ハッシュは、特定のコンピューティングデバイス110または複数のコンピューティングデバイス110のグループ116が、メッセージの意図した受信となるのに有するべき複数の特性および/または複数の機能を示す。ブロック602において、コンピューティングデバイス110がハッシュキー500を含むメッセージを受信するならば、方法600はブロック604に進む。しかしながら、ハッシュキー500を含むメッセージが受信されていないならば、方法600は、コンピューティングデバイス110が、ハッシュキー500を含むメッセージが受信されたかどうかを判断するのを継続するブロック602に戻る。
ブロック604において、コンピューティングデバイス110は、ハッシュキー500を解析して、ターゲット/宛先コンピューティングデバイス110の、又は、複数のターゲット/宛先コンピューティングデバイス110のグループ116の、複数の特性および/または複数の機能に対応する、複数の個別ハッシュ又はコンポーネントハッシュを取得する。例えば、メッセージが複数の(例えば2つ又はそれより多い)個別ハッシュを含むハッシュキー500を有する複数の実施形態において、コンピューティングデバイス110は、ハッシュキー500を解析して各々の個別ハッシュを取得する。
ブロック606において、コンピューティングデバイス110は、複数の個別ハッシュの1つを含む第1メッセージを、他のコンピューティングデバイス110に、又は、システム100の他の複数のコンピューティングデバイスのグループ110に送信する。そのように、第1メッセージは、第1メッセージがハッシュキー500の全体(例えば複数の個別ハッシュの全て)を含んでいないかもしれない「ソース」コンピューティングデバイス110から受信したオリジナルメッセージとは異なってもよい。コンピューティングデバイス110は、複数の他のコンピューティングデバイス110の何れが、又はそれらの複数のグループの何れが第1メッセージを送信するのかを決定する任意の好適な方法論を利用してもよい。例えば、幾つかの実施形態において、コンピューティングデバイス110は、第1メッセージをブロードキャストメッセージとして大多数の他のコンピューティングデバイス110に送信してもよい。追加的に又は代替的に、コンピューティングデバイス110は、第1メッセージをマルチキャストメッセージとして複数の他のコンピューティングデバイス110のグループ又はサブグループに送信してもよい。例えば、図1に戻って参照すると、コンピューティングデバイス122は、ハッシュキー500を含むメッセージを受信すべきであり、コンピューティングデバイス122は、ハッシュキー500を解析して複数の個別ハッシュを識別してもよく、複数の個別ハッシュの1つを含むメッセージを複数の他のコンピューティングデバイスのグループ116(すなわちコンピューティングデバイス125、126、127)に送信してもよい。コンピューティングデバイス110は、ハッシュテーブル222または他の方法論を用いて、他のコンピューティングデバイス110を、又は、複数の他のコンピューティングデバイス110の複数のグループを識別してもよい。例えば、図6に戻って参照すると、ブロック608において、コンピューティングデバイス110は、個別ハッシュと自身のローカルハッシュテーブル222とを比較してもよい。そのような複数の実施形態において、コンピューティングデバイス110は、個別ハッシュがハッシュテーブル222における1又は複数のハッシュと一致するとの判断に少なくとも部分的に基づき、又はそうでなければその関数として、第1メッセージが送信されるべきである、複数のコンピューティングデバイス110の1又は複数のグループ116を規定してもよい。
ブロック610において、コンピューティングデバイス110は、第1メッセージへの応答がグループ116の複数のコンピューティングデバイス110の1又は複数から受信されたかどうかを判断する。幾つかの実施形態において、グループ116の複数のコンピューティングデバイス110の1つから第1メッセージへの応答を受信することは、そのコンピューティングデバイス110が、第1ハッシュによって示される要求特性および/または機能と一致する特性および/または機能を有することを示している。ブロック610において、コンピューティングデバイス110が、第1メッセージへの1又は複数の応答メッセージはグループ116の複数のコンピューティングデバイス110の1又は複数から受信されたと決定するならば、方法600はブロック612に進む。
ブロック612において、コンピューティングデバイス110は、ハッシュキー500から取得された次の個別ハッシュ(例えば、第2ハッシュ)を含む第2メッセージを、第1メッセージへの応答が受信される元となったグループ116の複数のコンピューティングデバイス110の1又は複数に送信する。幾つかの実施形態において、ブロック614では、コンピューティングデバイス110はまた、次の個別ハッシュ(例えば第2ハッシュ)と、コンピューティングデバイス110のローカルハッシュテーブル222と比較してもよい。そのような複数の実施形態において、コンピューティングデバイス110は、次の個別ハッシュ(例えば第2ハッシュ)がハッシュテーブル222内の1又は複数のハッシュと一致するとの判断に少なくとも部分的に基づき、又はそうでなければその関数として、第2メッセージが送信されるべきである、グループ116内の複数のコンピューティングデバイス110の他のグループ(例えばサブグループ)を規定してもよい。幾つかの実施形態において、コンピューティングデバイス110によって規定される複数のコンピューティングデバイス110のサブグループは、第1メッセージへの応答が受信される元となったグループ116の複数のコンピューティングデバイス110の1又は複数を含んでもよいことが理解されるべきである。幾つかの実施形態において、ブロック616では、「ソース」コンピューティングデバイス110から受信されたオリジナルメッセージはまた、ターゲット/宛先コンピューティングデバイス110によって又は複数のターゲット/宛先コンピューティングデバイス110のグループ116によって実行されるべきアクションを示す情報を含んでもよい。例えば、元々の受信メッセージはまた、ターゲット/宛先コンピューティングデバイス110に、又は、複数のターゲット/宛先コンピューティングデバイス110のグループ116に、ローカルサービス品質(QoS)ポリシーを実行又は再設定する(例えば、ストレージ又はメモリキャッシュサイズをセットする、電力状態を変化させる、複数のデータ送信を優先させる、データ処理を優先させる、等)ように要求するコマンドおよび/または命令を含んでもよい。幾つかの実施形態において、コマンドおよび/または命令は、実際のコマンドおよび/または命令として具現化されてもよく、又は、コマンドおよび/または命令を表わすハッシュとして具現化されてもよい。とにかく、オリジナルメッセージが、ターゲット/宛先コンピューティングデバイス110によって、又は、複数のターゲット/宛先コンピューティングデバイス110のグループ116によって実行されるアクションを示す情報を含む複数の実施形態において、コンピューティングデバイス110は、実行されるアクションを示す情報(例えば実際のコマンド又は命令および/またはハッシュされたコマンド又は命令)を取得して第2メッセージに付加してもよい。
ブロック610において、コンピューティングデバイス110が、第1メッセージへの1又は複数の応答メッセージが受信されていないと決定するならば、方法600は、コンピューティングデバイス110が第1ハッシュを含む第1メッセージを複数のコンピューティングデバイス110の他のグループ(図示せず)に送信するブロック618に進む。続いて、方法600は、コンピューティングデバイス110が、第1メッセージへの応答が他のグループの複数のコンピューティングデバイス110の1又は複数から受信されたかどうかを判断する、ブロック610に戻る。そうならば、方法600は、コンピューティングデバイス110が、第2ハッシュを含む第2メッセージを、第1メッセージへの応答が受信される元となった他のグループの1又は複数のコンピューティングデバイス110に送信する、ブロック612に進む。
幾つかの実施形態において、第1および/または第2メッセージは、ブロードキャスト又はマルチキャストメッセージとして、複数のコンピューティングデバイス110の1又は複数に送信されてもよいことが理解されるべきである。追加的に又は代替的に、第1および/または第2メッセージは、ユニキャストメッセージとして、複数のコンピューティングデバイス110の1又は複数に送信されてもよい。とにかく、ハッシュキー500または複数の個別コンポーネントハッシュは、第1および/または第2メッセージの1又は複数のヘッダーおよび/またはペイロードフィールド内に埋め込まれてもよい。例えば、幾つかの実施形態において、ハッシュキー500または複数の個別コンポーネントハッシュは、第1および/または第2メッセージの1又は複数の予備ヘッダーフィールド(例えば複数のマルチキャスト予備フィールド、等)内に埋め込まれてもよい。 追加的に、コンピューティングデバイス110は、例示的な実施形態において、2つのメッセージ(例えば、第1および第2ハッシュを含む第1および第2メッセージ)をグループ116の1又は複数のコンピューティングデバイス110に送信するが、コンピューティングデバイス110は、複数の他の実施形態において、(例えば、省略符号620によって例示的に示されるような)2つのメッセージより多くをグループ116の1又は複数のコンピューティングデバイス110に送信してもよいことが理解されるべきである。
そのような複数の実施形態において、コンピューティングデバイス110はまた、受信したハッシュキー500から取得される、ハッシュされた特性および/または機能毎に、メッセージを送信してもよい。
ここで図7を参照すると、システム100のコンピューティングデバイス110が、オーバーレイネットワークを介してハッシュキーを含むメッセージを受信するならば、コンピューティングデバイス110は、コンピューティングデバイス110が受信メッセージのターゲット/宛先であるかどうかを判断する方法700を実行してもよい。方法700は、コンピューティングデバイス110が、ハッシュキー500を含むメッセージがシステム100の他のコンピューティングデバイス110から受信されたかどうかを判断するブロック702で開始する。説明したように、ハッシュキー500は、各々が、ターゲット/宛先コンピューティングデバイス110または複数のターゲット/宛先コンピューティングデバイス110のグループ116の異なる要求特性および/または機能を示している、1又は複数のハッシュを含む。ブロック702において、コンピューティングデバイス110がハッシュキー500を含むメッセージを受信するならば、方法700はブロック704に進む。しかしながら、ハッシュキー500を含むメッセージが受信されていないならば、方法700は、コンピューティングデバイス110が、ハッシュキー500を含むメッセージが受信されたかどうかを判断するのを継続するブロック702に戻る。
ブロック704において、コンピューティングデバイス110は、ハッシュキー500を解析して、ターゲット/宛先コンピューティングデバイス110の(又は複数のターゲット/宛先コンピューティングデバイス110のグループ116の)要求特性および/または機能を表わすハッシュを取得する。方法700は次に、ブロック706に進む。
ブロック706において、コンピューティングデバイス110は、ターゲット/宛先コンピューティングデバイス110の要求特性および/または機能を表わすハッシュを分析する。続いて、ブロック708において、コンピューティングデバイス110は、ハッシュによって示された要求特性および/または機能が、その複数の独自の特性および/または機能の1又は複数と一致するかどうかを判断してもよい。そのようにすべく、幾つかの実施形態において、コンピューティングデバイス110は、ハッシュを、その独自の複数の電流特性および/または複数の機能と比較してもよい。追加的に又は代替的に、コンピューティングデバイス110は、要求特性および/または機能を表わすハッシュと、その複数の独自の特性および/または機能の1又は複数のハッシュと比較してもよい。ブロック708において、コンピューティングデバイス110が、ハッシュによって示された特性および/または機能が、その複数の独自の特性および/または機能の1つと一致すると決定するならば、方法700はブロック710に進む。そのような複数の実施形態において、コンピューティングデバイス110は、それがターゲット/宛先コンピューティングデバイス110であると決定してもよい。しかしながら、コンピューティングデバイス110が代わりに、ハッシュによって示された特性および/または機能がその複数の独自の特性および/または機能の1つと一致しないと決定するならば、方法700はブロック702に戻る。
ブロック710において、コンピューティングデバイス110は、システム100の他のコンピューティングデバイス110から受信したメッセージが実行される要求アクションを示す情報(例えば実際のおよび/またはハッシュされたコマンド又は命令)を含むかどうかを判断する。ブロック710において、コンピューティングデバイス110が、受信メッセージが実行される要求アクションを示す情報を含まないと決定するならば、方法700は、コンピューティングデバイス110が、ハッシュによって示された要求特性および/または機能と一致する1又は複数の特性および/または機能を含むことを示している他のコンピューティングデバイス110へと応答メッセージを送信するブロック712に進む。しかしながら、コンピューティングデバイス110が代わりに、受信メッセージが実行される要求アクションを示す情報を含むと決定するならば、方法700はブロック714に進む。
ブロック714において、コンピューティングデバイス110は、受信メッセージを解析して、対応する命令又はコマンド情報を取得する。続いて、ブロック716において、コンピューティングデバイス110は、要求アクションを実行する。
本明細書で開示される複数の技術の複数の例示的な例が以下で提供される。複数の技術の実施形態は、以下で説明される任意の1又は複数の例、及び、それらの任意の組み合わせを含んでもよい。
例1は、オーバーレイネットワークを介して通信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、(i)ターゲットコンピューティングデバイスの第1要求特性を示す第1ハッシュとターゲットコンピューティングデバイスの第2要求特性を示す第2ハッシュとを含むハッシュキーを受信し、(ii)ハッシュキーを解析して第1ハッシュ及び第2ハッシュを取得し、(iii)第1ハッシュを含む第1メッセージを複数の他のコンピューティングデバイスの第1グループに送信し、(iv)第1グループの第1コンピューティングデバイスから、第1コンピューティングデバイスが第1要求特性と一致する特性を含んでいることを示す応答メッセージを受信し、(v)第1コンピューティングデバイスから応答メッセージを受信したことに応じて、第2ハッシュを含む第2メッセージを第1コンピューティングデバイスに送信する、ルーティングモジュールを備える。
例2は、例1の主題を含み、ルーティングモジュールは更に、第1グループの複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、第1メッセージを他の複数のコンピューティングデバイスの第2グループに送信する。例3は、例1および2の何れかの主題を含み、ルーティングモジュールは更に、(i)第1ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較し、(ii)第1ハッシュとハッシュテーブルとの比較に基づいて第1グループを規定する。
例4は、例1―3の何れかの主題を含み、ルーティングモジュールは更に、第2ハッシュと、第1コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュとに基づいて第2メッセージを生成し、第2メッセージを送信することは、第2ハッシュ及び第3ハッシュを含む第2メッセージを第1コンピューティングデバイスに送信することを含む。
例5は、例1―4の何れかの主題を含み、第1コンピューティングデバイスによって実行される要求アクションは、第1コンピューティングデバイスによって構成されるサービス品質ポリシーを含む。
例6は、例1―5の何れかの主題を含み、第1要求特性または第2要求特性の少なくとも一方は、ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例7は、例1―6の何れかの主題を含み、ハッシュキーを受信することは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信することを含む。
例8は、オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法を含み、当該方法は、コンピューティングデバイスが、(i)ターゲットコンピューティングデバイスの第1要求特性を示す第1ハッシュと、(ii)ターゲットコンピューティングデバイスの第2要求特性を示す第2ハッシュとを含むハッシュキーを受信する段階と、コンピューティングデバイスが、ハッシュキーを解析して第1ハッシュ及び第2ハッシュを取得する段階と、コンピューティングデバイスが、第1ハッシュを含む第1メッセージを複数の他のコンピューティングデバイスの第1グループに送信する段階と、コンピューティングデバイスが、第1グループの第1コンピューティングデバイスから、第1コンピューティングデバイスが第1要求特性と一致する特性を含むことを示す応答メッセージを受信する段階と、コンピューティングデバイスが、第1コンピューティングデバイスから応答メッセージを受信したことに応じて、第2ハッシュを含む第2メッセージを第1コンピューティングデバイスに送信する段階と、を含む。
例9は、例8の主題を含み、コンピューティングデバイスが、第1グループの複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、第1メッセージを複数の他のコンピューティングデバイスの第2グループに送信する段階を更に含む。例10は、例8および9の何れかの主題を含み、コンピューティングデバイスが、第1ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較する段階と、コンピューティングデバイスが、第1ハッシュとハッシュテーブルとの比較に基づいて第1グループを規定する段階とを更に含む。
例11は、例8―10の何れかの主題を含み、コンピューティングデバイスが、第2ハッシュと、第1コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュとに基づいて第2メッセージを生成する段階を更に含み、第2メッセージを送信する段階は、第2ハッシュ及び第3ハッシュを含む第2メッセージを第1コンピューティングデバイスに送信する段階を含む。
例12は、例8―11の何れかの主題を含み、第1コンピューティングデバイスによって実行される要求アクションは、第1コンピューティングデバイスによって構成されるサービス品質ポリシーを含む。
例13は、例8―12の何れかの主題を含み、第1要求特性または第2要求特性の少なくとも一方は、ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例14は、例8―13の何れかの主題を含み、ハッシュキーを受信する段階は、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信する段階を含む。
例15は、1又は複数の機械可読媒体を含み、1又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例8―14の何れかの方法を実行することになる複数の命令が格納される。
例16は、オーバーレイネットワークを介して通信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例8―14の何れかの方法を実行する手段を含む。
例17は、オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、(i)他のコンピューティングデバイスから、他のコンピューティングデバイスによって要求される識別特性を示す第1ハッシュを含むハッシュキーを有するメッセージを受信し、(ii)ハッシュキーを解析して第1ハッシュを取得し、(iii)コンピューティングデバイスが、第1ハッシュによって示される識別特性と一致する特性を含むかどうかを判断し、(iv)コンピューティングデバイスが、第1ハッシュによって示される識別特性と一致する特性を含んでいると決定したことに応じて、応答メッセージを他のコンピューティングデバイスに送信する、ルーティングモジュールを備える。例18は、例17の主題を含み、(i)他のコンピューティングデバイスから受信したメッセージがコンピューティングデバイスによって実行される要求アクションを含むかどうかを判断し、(ii)メッセージを解析して、要求アクションを取得し、(iii)要求アクションを実行する、コマンド管理モジュールを更に備える。
例19は、例17および18の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージが要求アクションを含むかどうかを判断することは、他のコンピューティングデバイスから受信したメッセージが、コンピューティングデバイスによって実行される要求アクションを示す第2ハッシュを含むかどうかを判断することを含む。
例20は、例17―19の何れかの主題を含み、コンピューティングデバイスによって実行される要求アクションは、コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む。
例21は、例17―20の何れかの主題を含み、他のコンピューティングデバイスによって要求される識別特性は、コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例22は、例17―21の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する。
例23は、オーバーレイネットワークを介してハッシュキーを受信する方法を含み、当該方法は、コンピューティングデバイスが、他のコンピューティングデバイスから、他のコンピューティングデバイスによって要求される識別特性を示す第1ハッシュを含むハッシュキーを有するメッセージを受信する段階と、コンピューティングデバイスが、ハッシュキーを解析して、第1ハッシュを取得する段階と、コンピューティングデバイスが、コンピューティングデバイスが第1ハッシュによって示される識別特性と一致する特性を含むかどうかを判断する段階と、コンピューティングデバイスが、コンピューティングデバイスが第1ハッシュによって示される識別特性と一致する特性を含むと判断したことに応じて、応答メッセージを他のコンピューティングデバイスに送信する段階と、を含む。
例24は、例23の主題を含み、コンピューティングデバイスが、他のコンピューティングデバイスから受信されたメッセージがコンピューティングデバイスによって実行される要求アクションを含むかどうかを判断する段階と、コンピューティングデバイスが、メッセージを解析して要求アクションを取得する段階と、コンピューティングデバイスが、要求アクションを実行する段階と、を更に含む。例25は、例23および24の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージが要求アクションを含むかどうかを判断する段階は、他のコンピューティングデバイスから受信したメッセージが、コンピューティングデバイスによって実行される要求アクションを示す第2ハッシュを含むかどうかを判断する段階を含む。
例26は、例23―25の何れかの主題を含み、コンピューティングデバイスによって実行される要求アクションは、コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む。
例27は、例23―26の何れかの主題を含み、他のコンピューティングデバイスによって要求される識別特性は、コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例28は、例23―27の何れかの主題を含み、他のコンピューティングデバイスから受信したメッセージは、ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する。
例29は、1又は複数の機械可読媒体を含み、1又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例23―28の何れかの方法を実行することになる複数の命令が格納される。
例30は、オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例23―28の何れかの方法を実行する手段を含む。
例31は、オーバーレイネットワークを介する通信用のハッシュキーを生成するコンピューティングデバイスを含み、当該コンピューティングデバイスは、(i)コンピューティングデバイスの複数の特性を決定し、(ii)コンピューティングデバイス用のハッシュキーが生成されたかどうかを判断し、(iii)ハッシュキーがコンピューティングデバイス用に生成されていないとの決定に応じて、コンピューティングデバイスの決定された複数の特性毎にハッシュを生成し、(iv)コンピューティングデバイスの決定された複数の特性毎に生成されたハッシュに基づいて、ハッシュキーを生成し、(v)ハッシュキーを他のコンピューティングデバイスに送信する、キー生成モジュールを備える。
例32は、例31の主題を含み、キー生成モジュールは更に、(i)コンピューティングデバイスの決定された複数の特性の1又は複数が変わったかどうかを判断し、(ii)コンピューティングデバイスの決定された複数の特性の1又は複数が変わったとの決定に基づいてハッシュキーをアップデートし、(iii)アップデートされたハッシュキーを他のコンピューティングデバイスに送信する。例33は、例31および32の何れかの主題を含み、コンピューティングデバイスの決定された複数の特性は、コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例34は、オーバーレイネットワークを介する通信用のハッシュキーを生成する方法を含み、当該方法は、コンピューティングデバイスが、コンピューティングデバイスの複数の特性を判断する段階と、コンピューティングデバイスが、ハッシュキーがコンピューティングデバイス用に生成されたかどうかを判断する段階と、コンピューティングデバイスが、ハッシュキーがコンピューティングデバイス用に生成されていないと判断したことに応じて、コンピューティングデバイスの決定された複数の特性毎にハッシュを生成する段階と、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性毎に生成されたハッシュに基づいてハッシュキーを生成する段階と、コンピューティングデバイスが、ハッシュキーを他のコンピューティングデバイスに送信する段階と、を含む。
例35は、例34の主題を含み、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性の1又は複数が変わったかどうかを判断する段階と、コンピューティングデバイスが、コンピューティングデバイスの決定された複数の特性の1又は複数が変わったと判断したことに基づいてハッシュキーをアップデートする段階と、コンピューティングデバイスが、アップデートされたハッシュキーを他のコンピューティングデバイスに送信する段階と、を更に含む。
例36は、例34および35の何れかの主題を含み、コンピューティングデバイスの決定された複数の特性は、コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む。
例37は、1又は複数の機械可読媒体を含み、1又は複数の機械可読媒体には、実行されることに応じて、コンピューティングデバイスが複数の例34―36の何れかの方法を実行することになる複数の命令が格納される。
例38は、オーバーレイネットワークを介する通信用にハッシュキーを生成するコンピューティングデバイスを含み、当該コンピューティングデバイスは、例34―36の何れかの方法を実行する手段を含む。

Claims (24)

  1. オーバーレイネットワークを介して通信するコンピューティングデバイスであって、
    (i)ターゲットコンピューティングデバイスの第1要求特性を示す第1ハッシュと前記ターゲットコンピューティングデバイスの第2要求特性を示す第2ハッシュとを含むハッシュキーを受信し、
    (ii)前記ハッシュキーを解析して前記第1ハッシュ及び前記第2ハッシュを取得し、
    (iii)前記第1ハッシュを含む第1メッセージを複数の他のコンピューティングデバイスの第1グループに送信し、
    (iv)前記第1グループの第1コンピューティングデバイスから、前記第1コンピューティングデバイスが前記第1要求特性と一致する特性を含んでいることを示す応答メッセージを受信し、
    (v)前記第1コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第2ハッシュを含む第2メッセージを前記第1コンピューティングデバイスに送信する、ルーティングモジュール
    を備えるコンピューティングデバイス。
  2. 前記ルーティングモジュールは更に、前記第1グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第1メッセージを複数の他のコンピューティングデバイスの第2グループに送信する、
    請求項1に記載のコンピューティングデバイス。
  3. 前記ルーティングモジュールは更に、
    (i)前記第1ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較し、
    (ii)前記第1ハッシュと前記ハッシュテーブルとの比較に基づいて前記第1グループを規定する、
    請求項1に記載のコンピューティングデバイス。
  4. 前記ルーティングモジュールは更に、前記第2ハッシュと、前記第1コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュとに基づいて前記第2メッセージを生成し、
    前記第2メッセージを送信することは、前記第2ハッシュ及び前記第3ハッシュを含む第2メッセージを前記第1コンピューティングデバイスに送信することを含む、
    請求項1に記載のコンピューティングデバイス。
  5. 前記第1コンピューティングデバイスによって実行される前記要求アクションは、前記第1コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
    請求項4に記載のコンピューティングデバイス。
  6. 前記第1要求特性または前記第2要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む、
    請求項1に記載のコンピューティングデバイス。
  7. 前記ハッシュキーを受信することは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信することを含む、
    請求項1から6の何れか一項に記載のコンピューティングデバイス。
  8. オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法であって、
    コンピューティングデバイスが、(i)ターゲットコンピューティングデバイスの第1要求特性を示す第1ハッシュと、(ii)前記ターゲットコンピューティングデバイスの第2要求特性を示す第2ハッシュとを含むハッシュキーを受信する段階と、
    前記コンピューティングデバイスが、前記ハッシュキーを解析して前記第1ハッシュ及び前記第2ハッシュを取得する段階と、
    前記コンピューティングデバイスが、前記第1ハッシュを含む第1メッセージを複数の他のコンピューティングデバイスの第1グループに送信する段階と、
    前記コンピューティングデバイスが、前記第1グループの第1コンピューティングデバイスから、前記第1コンピューティングデバイスが前記第1要求特性と一致する特性を含むことを示す応答メッセージを受信する段階と、
    前記コンピューティングデバイスが、前記第1コンピューティングデバイスから前記応答メッセージを受信したことに応じて、前記第2ハッシュを含む第2メッセージを前記第1コンピューティングデバイスに送信する段階と
    を含む方法。
  9. 前記コンピューティングデバイスが、前記第1グループの前記複数の他のコンピューティングデバイスの何れからも応答メッセージを受信していないことに応じて、前記第1メッセージを複数の他のコンピューティングデバイスの第2グループに送信する段階を更に含む、
    請求項8に記載の方法。
  10. 前記コンピューティングデバイスが、前記第1ハッシュを、複数の特性の複数のハッシュを複数のコンピューティングデバイスにマッピングするハッシュテーブルと比較する段階と、前記コンピューティングデバイスが、前記第1ハッシュと前記ハッシュテーブルとの比較に基づいて前記第1グループを規定する段階とを更に含む、
    請求項8に記載の方法。
  11. 前記コンピューティングデバイスが、前記第2ハッシュと、前記第1コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュとに基づいて前記第2メッセージを生成する段階を更に含み、
    前記第2メッセージを送信する段階は、前記第2ハッシュ及び前記第3ハッシュを含む第2メッセージを前記第1コンピューティングデバイスに送信する段階を含む、
    請求項8に記載の方法。
  12. 前記第1コンピューティングデバイスによって実行される前記要求アクションは、前記第1コンピューティングデバイスによって構成されるサービス品質ポリシーを含む、
    請求項11に記載の方法。
  13. 前記第1要求特性または前記第2要求特性の少なくとも一方は、前記ターゲットコンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む、
    請求項8に記載の方法。
  14. 前記ハッシュキーを受信する段階は、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有するメッセージを受信する段階を含む、
    請求項8に記載の方法。
  15. コンピューティングデバイスに、請求項8から14のいずれか一項に記載の方法を実行させるためのプログラム。
  16. 請求項15に記載のプログラムを格納する1又は複数の機械可読記録媒体。
  17. オーバーレイネットワークを介してハッシュキーを受信するコンピューティングデバイスであって、
    (i)他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される第1識別特性を示す第1ハッシュを含む第1ハッシュキーを有する第1メッセージを受信し、
    (ii)前記第1ハッシュキーを解析して前記第1ハッシュを取得し、
    (iii)前記コンピューティングデバイスが、前記第1ハッシュによって示される前記第1識別特性と一致する特性を含むかどうかを判断し、
    (iv)前記コンピューティングデバイスが、前記第1ハッシュによって示される前記第1識別特性と一致する特性を含んでいると決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信し、
    (v)前記他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される第2識別特性を示す第2ハッシュを含む第2ハッシュキーを有する第2メッセージを受信し、
    (vi)前記第2ハッシュキーを解析して前記第2ハッシュを取得し、
    (vii)前記コンピューティングデバイスが、前記第2ハッシュによって示される前記第2識別特性と一致する特性を含むかどうかを判断する、ルーティングモジュールと、
    (i)前記他のコンピューティングデバイスから受信した前記第2メッセージが、前記コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュを含むかどうかを判断し、
    (ii)前記第2メッセージを解析して、前記要求アクションを取得し、
    (iii)前記要求アクションを実行する、コマンド管理モジュールと
    を備えるコンピューティングデバイス。
  18. 前記コンピューティングデバイスによって実行される前記要求アクションは、前記コンピューティングデバイスにおけるサービス品質ポリシーを構成するアクションを含む、
    請求項17に記載のコンピューティングデバイス。
  19. 前記他のコンピューティングデバイスによって要求される前記識別特性は、前記コンピューティングデバイスの、要求されるプロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む、
    請求項17または18に記載のコンピューティングデバイス。
  20. 前記他のコンピューティングデバイスから受信した前記メッセージは、前記ハッシュキーの少なくとも一部が埋め込まれている複数のフィールドを含むヘッダー情報を有する、請求項17から19の何れか一項に記載のコンピューティングデバイス。
  21. オーバーレイネットワークを介する通信用のハッシュキーを生成するコンピューティングデバイスであって、
    (i)前記コンピューティングデバイスの複数の特性を決定し、
    (ii)前記コンピューティングデバイス用のハッシュキーが生成されたかどうかを判断し、
    (iii)ハッシュキーが前記コンピューティングデバイス用に生成されていないとの決定に応じて、前記コンピューティングデバイスの決定された前記複数の特性毎に個別ハッシュを生成し、
    (iv)前記コンピューティングデバイスの決定された前記複数の特性毎に生成された複数の前記個別ハッシュを連結して、ハッシュキーを生成し、
    (v)前記ハッシュキーを他のコンピューティングデバイスに送信する、キー生成モジュール
    を備え
    前記キー生成モジュールは更に、
    (vi)前記コンピューティングデバイスの決定された前記複数の特性の1又は複数が変わったかどうかを判断し、
    (vii)前記コンピューティングデバイスの決定された前記複数の特性の1又は複数が変わったとの決定に基づき、変わった特性に対応する個別ハッシュを選択的にアップデートすることで、前記ハッシュキーをアップデートし、
    (viii)前記アップデートされたハッシュキーを前記他のコンピューティングデバイスに送信する
    コンピューティングデバイス。
  22. 前記コンピューティングデバイスの決定された前記複数の特性は、前記コンピューティングデバイスの、プロセッサタイプ、ストレージ使用率、記憶容量、メモリ使用率、メモリ容量、電力使用率、電力容量、セキュリティレベル、性能レベル、又は、有用性の少なくとも1つを含む、
    請求項21に記載のコンピューティングデバイス。
  23. コンピューティングデバイスに、他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される第1識別特性を示す第1ハッシュを含む第1ハッシュキーを有する第1メッセージを受信させる段階と、
    前記第1ハッシュキーを解析させて前記第1ハッシュを取得させる段階と、
    前記コンピューティングデバイスが、前記第1ハッシュによって示される前記第1識別特性と一致する特性を含むかどうかを判断させる段階と、
    前記コンピューティングデバイスが前記第1ハッシュによって示される前記第1識別特性と一致する特性を含むと決定したことに応じて、応答メッセージを前記他のコンピューティングデバイスに送信させる段階と
    前記他のコンピューティングデバイスから、前記他のコンピューティングデバイスによって要求される第2識別特性を示す第2ハッシュを含む第2ハッシュキーを有する第2メッセージを受信させる段階と、
    前記第2ハッシュキーを解析させて前記第2ハッシュを取得させる段階と、
    前記コンピューティングデバイスが、前記第2ハッシュによって示される前記第2識別特性と一致する特性を含むかどうかを判断させる段階と、
    前記他のコンピューティングデバイスから受信した前記第2メッセージが、前記コンピューティングデバイスによって実行される要求アクションを示す第3ハッシュを含むかどうかを判断させる段階と、
    前記第2メッセージを解析させて前記要求アクションを取得させる段階と、
    前記要求アクションを実行させる段階と
    を含む方法を実行させるためのプログラム。
  24. 請求項23に記載のプログラムを格納する1又は複数の機械可読記録媒体。
JP2016545723A 2013-09-27 2013-09-27 オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるためのプログラム、及び、機械可読記録媒体 Active JP6202773B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062152 WO2015047291A1 (en) 2013-09-27 2013-09-27 Device capability addressable network

Publications (2)

Publication Number Publication Date
JP2016533693A JP2016533693A (ja) 2016-10-27
JP6202773B2 true JP6202773B2 (ja) 2017-09-27

Family

ID=52744194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016545723A Active JP6202773B2 (ja) 2013-09-27 2013-09-27 オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるためのプログラム、及び、機械可読記録媒体

Country Status (6)

Country Link
US (1) US20160248674A1 (ja)
JP (1) JP6202773B2 (ja)
KR (1) KR101814411B1 (ja)
CN (1) CN105556498B (ja)
DE (1) DE112013007294T5 (ja)
WO (1) WO2015047291A1 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020055287A (ko) * 2000-12-28 2002-07-08 구자홍 라우터 장치의 패킷 라우팅 방법
US7870218B2 (en) * 2003-04-09 2011-01-11 Nec Laboratories America, Inc. Peer-to-peer system and method with improved utilization
US20050015599A1 (en) * 2003-06-25 2005-01-20 Nokia, Inc. Two-phase hash value matching technique in message protection systems
WO2005041534A1 (en) * 2003-10-16 2005-05-06 Ntt Docomo, Inc. Mobile peer-to-peer networking
JP2006244223A (ja) * 2005-03-04 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> P2pコンテンツ転送方法
US20090046848A1 (en) * 2007-08-15 2009-02-19 Lockheed Martin Corporation Encryption management system
JP5060927B2 (ja) * 2007-11-28 2012-10-31 Kddi株式会社 情報検索方法、情報検索装置、情報検索応答装置及びコンピュータプログラム
US7870133B2 (en) * 2008-01-14 2011-01-11 Infosys Technologies Ltd. Method for semantic based storage and retrieval of information
US8817595B2 (en) 2008-02-13 2014-08-26 Telefonaktiebolaget L M Ericsson (Publ) Overlay network node and overlay networks
CN101262405B (zh) * 2008-04-11 2012-10-31 华南理工大学 基于网络处理器的高速安全虚拟专用网系统及其实现方法
US8108912B2 (en) * 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
US8850607B2 (en) * 2009-09-22 2014-09-30 Flexera Software Llc System and method for capacity licensing
US8539597B2 (en) 2010-09-16 2013-09-17 International Business Machines Corporation Securing sensitive data for cloud computing
US8479008B2 (en) 2010-12-15 2013-07-02 Microsoft Corporation Providing security services on the cloud

Also Published As

Publication number Publication date
JP2016533693A (ja) 2016-10-27
KR101814411B1 (ko) 2018-01-04
WO2015047291A1 (en) 2015-04-02
DE112013007294T5 (de) 2016-06-16
CN105556498B (zh) 2018-08-17
CN105556498A (zh) 2016-05-04
KR20160037207A (ko) 2016-04-05
US20160248674A1 (en) 2016-08-25

Similar Documents

Publication Publication Date Title
US10110671B2 (en) Method, system, and device for managing server hardware resources in a cloud scheduling environment
US20210365199A1 (en) Technologies for coordinating disaggregated accelerator device resources
CN109428922B (zh) 一种订阅发布方法及服务器
US10419311B2 (en) Template-based declarative and composable configuration of network functions
US20200136921A1 (en) Methods, system, articles of manufacture, and apparatus to manage telemetry data in an edge environment
US20170070567A1 (en) Load balancing apparatus and load balancing method
CN107800565B (zh) 巡检方法、装置、系统、计算机设备和存储介质
US11210308B2 (en) Metadata tables for time-series data management
US8984257B2 (en) Managing sensor and actuator data for a processor and service processor located on a common socket
US9130943B1 (en) Managing communications between client applications and application resources of on-premises and cloud computing nodes
US9270731B2 (en) Topic-based messaging using consumer address and pool
JP2008294717A (ja) 仮想ネットワーク構成方法及びネットワークシステム
US10200292B2 (en) Technologies for aligning network flows to processing resources
US10009235B2 (en) Messaging queue spinning engine
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
US20150212834A1 (en) Interoperation method of newtork device performed by computing device including cloud operating system in could environment
CN105281944B (zh) 网络协议地址的设定方法及服务管理系统
JP6202773B2 (ja) オーバーレイネットワークを介して通信すべくハッシュキーを用いる方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるためのプログラム、及び、機械可読記録媒体
JP2020095449A (ja) データ流通管理システム、データ流通管理支援装置およびデータ流通管理方法
US11838149B2 (en) Time division control of virtual local area network (vlan) to accommodate multiple virtual applications
CN113347040B (zh) 配置变更方法、装置及电子设备
CN112039942B (zh) 一种订阅发布方法及服务器
CN118433190A (zh) 负载均衡服务的配置方法、装置、设备、系统及存储介质
JP2015153299A (ja) 処理制御システム、処理制御方法、及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170828

R150 Certificate of patent or registration of utility model

Ref document number: 6202773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250