(57)【特許請求の範囲】
【請求項１】
ネットワーク上のマルチキャストトラフィックを減少するための方法であって：
制御要求を受信すること；
前記制御要求に関連する第１ランキング指標を、当該制御要求を受信したノードに関連する第２ランキング指標と比較すること；
前記第１ランキング指標が前記第２ランキング指標よりも低い場合に前記制御要求に対する第１応答を生成すること；
前記第１応答をキューに格納すること；
前記制御要求に応じて他のノードから送信された第１応答である第２応答を受信すること；および
前記第２応答を受信して、前記キューから前記第１応答を除去し、前記第１応答を送信しないこと
を含んでいる方法。
【請求項２】
前記第２応答を認証することをさらに含み、
前記第２応答が認証された場合に、前記キューから前記第１応答を除去し、他のノードに対して前記第１応答を送信しないことをさらに含んでいる、請求項１に記載の方法。
【請求項３】
前記キューに前記第１応答をランダムに格納することをさらに含んでいる、請求項１に記載の方法。
【請求項４】
前記キューから前記第１応答をランダムに選択することをさらに含んでいる、請求項１に記載の方法。
【請求項５】
前記第１応答を、ネットワーク上の他のノードにマルチキャストする、請求項１に記載の方法。
【請求項６】
前記第２応答が認証されない場合、前記第１応答を、ネットワーク上の他のノードにマルチキャストする、請求項５に記載の方法。
【請求項７】
データパケットが前記制御要求を含んでいるか否かを判断することをさらに含んでいる、請求項１に記載の方法。
【請求項８】
前記制御要求を、ネットワーク上の複数のノードにマルチキャストする、請求項１に記載の方法。
【請求項９】
前記第２応答を、ネットワーク上の複数のノードにマルチキャストする、請求項１に記載の方法。
【請求項１０】
データパケットが前記第２応答を含んでいるか否かを判断することをさらに含んでいる、請求項１に記載の方法。
【請求項１１】
ネットワーク上のマルチキャストトラフィックを減少するように構成されているコンピュータシステムであって：
プロセッサと；
プロセッサと電子通信するメモリと；
メモリに格納されている命令とを備えており、
命令は、
制御要求を受信すること；
前記制御要求に関連する第１ランキング指標を、当該制御要求を受信したノードに関連する第２ランキング指標と比較すること；
前記第１ランキング指標が、前記第２ランキング指標よりも低い場合に、前記制御要求に対する第１応答が生成されること；
前記第１応答をキューに格納すること；
前記制御要求に応じて他のノードから送信された第１応答である第２応答を受信すること；および
前記第２応答を受信して、前記キューから前記第１応答を除去し、前記第１応答を送信しないこと
である、コンピュータシステム。
【請求項１２】
認証される前記第２応答をさらに備え、
前記第２応答が認証された場合に、前記キューから除去され、他のノードに対して送信されない前記第１応答をさらに備えている請求項１１に記載のコンピュータシステム。
【請求項１３】
前記キューにランダムに格納される前記第１応答をさらに備えている、請求項１１に記載のコンピュータシステム。
【請求項１４】
前記キューからランダムに選択される前記第１応答をさらに備えている、請求項１１に記載のコンピュータシステム。
【請求項１５】
ネットワーク上のマルチキャストトラフィックを減少するための実行可能な命令を備えているコンピュータ読み込み可能媒体であって、
命令は：
制御要求を受信すること；
前記制御要求に関連する第１ランキング指標を、当該制御要求を受信したノードに関連する第２ランキング指標と比較すること；
前記第１ランキング指標が、前記第２ランキング指標よりも低い場合に、前記制御要求に対する第１応答を生成すること
前記第１応答をキューに格納すること；
前記制御要求に応じて他のノードから送信された第１応答である第２応答を受信すること；および
前記第２応答を受信して、前記キューから前記第１応答を除去し、前記第１応答を送信しないこと
である、コンピュータ読み込み可能媒体。
【請求項１６】
前記命令は、さらに、第２応答を認証することを含み、前記第２応答が認証された場合に、前記キューから前記第１応答を除去し、他のノードに対して前記第１応答を送信しないことをさらに含む、請求項１５に記載のコンピュータ読み込み可能媒体。
【請求項１７】
前記命令は、さらに、前記キュー内に前記第１応答をランダムに格納することを含む、請求項１５に記載のコンピュータ読み込み可能媒体。
【請求項１８】
前記命令は、さらに、前記キューから前記第１応答をランダムに選択することを含む、請求項１５に記載のコンピュータ読み込み可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータおよびコンピュータ関連技術に関する。より詳細には、本発明は、ネットワーク上のマルチキャストトラフィックを減少するためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータおよび通信技術は、急速に進歩し続けている。実際、コンピュータおよび通信技術は、人々の日常における多くの局面に関与している。例えば、今日、消費者によって使用されている多くのデバイスは、そのデバイス内に、小型のコンピュータを備えている。これらの小型のコンピュータは、様々なサイズ、および、様々な程度の精巧さを備えた形で提供されている。これらの小型のコンピュータは、１つのマイクロコントローラから、十分な機能を有する完全なコンピュータシステムまでの全てを含んでいる。例えば、これらの小型のコンピュータは、マイクロコントローラなどのワンチップのコンピュータ、コントローラなどのワンボードタイプのコンピュータ、ＩＢＭ−ＰＣ互換機などの一般的なデスクトップコンピュータなどであってよい。
【０００３】
コンピュータは、一般的に、コンピュータの心臓部に１つ以上のプロセッサを有している。プロセッサは、通常、異なる外部入力部および外部出力部に相互接続されており、さらに、特定のコンピュータあるいはデバイスを管理するように機能する。例えば、サーモスタット内のプロセッサは、温度設定を選択するために使用されるボタン、温度を変化させる加熱炉あるいは空気調節装置、および、現在の温度を読み取ってディスプレイに表示する温度センサに接続されていてよい。
【０００４】
多くの電化製品やデバイスなどは１つ以上の小型のコンピュータを含んでいる。例えば、サーモスタット、加熱炉、空気調節システム、冷蔵庫、電話、タイプライタ、自動車、自動販売機、および多くの異なるタイプの工業設備は、現在では、一般的に、小型のコンピュータすなわちプロセッサをそれらの内部に有している。コンピュータソフトウェアは、これらのコンピュータのプロセッサを駆動し、プロセッサに対して、特定のタスクを実行する方法を指示する。例えば、サーモスタット上で起動しているコンピュータソフトウェアは、特定の温度に達したときに空気調節装置の駆動を停止する一方、必要なときにヒータのスイッチを入れることができる。
【０００５】
デバイス、電化製品、ツールなどの一部をなしている前記したタイプの小型のコンピュータは、しばしば、組み込みデバイスあるいは組み込みシステムと称される（これらの用語「組み込みデバイス」および「組み込みシステム」は、本明細書では、互換的に使用される）。組み込みシステムは、通常、より大きいシステムの一部をなすコンピュータハードウェアおよびソフトウェアを称する。組み込みシステムは、キーボード、マウスおよび／またはモニタなどの一般的な入出力デバイスを有さないこともある。通常、各組み込みシステムの心臓部には、１つ以上のプロセッサがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
システムには、組み込みアプリケーションサーバなどの多数の組み込みデバイスを含むことができるものもある。アプリケーションサーバは、特定のソフトウェアアプリケーションを実行するために設けられているサーバコンピュータをコンピュータネットワーク上に含むことができる。一実施形態では、組み込みアプリケーションサーバは、アプリケーションを他のコンピュータデバイスに送達するためのソフトウェアエンジンである。複数のアプリケーションサーバに含まれている１つのアプリケーションサーバを、制御用のアプリケーションサーバとして設計することもできる。多数のアプリケーションサーバが、ネットワーク上の他のアプリケーションサーバに対する制御用のアプリケーションサーバとして自身を定めようと試みるときには、ネットワークトラフィックが大幅に増加する可能性がある。
【課題を解決するための手段】
【０００７】
前述の点を考慮すると、制御用のアプリケーションサーバの安全な発見の際のネットワーク上のマルチキャストトラフィックを減少するためのシステムおよび方法を改善することによって、利点を得ることができる。ネットワーク上のマルチキャストトラフィックを減少することを対象としたいくつかの例示的なシステムおよび方法が、本明細書に開示されている。
【０００８】
ネットワーク上のマルチキャストトラフィックを減少するための方法が記載されている。制御要求を受信する。制御要求に関連する第１ランキング指標を、制御要求を受信したノードに関連する第２ランキング指標と比較する。第１ランキング指標が、第２ランキング指標よりも低い場合に、制御要求に対する第１応答を生成する。第１応答をキュー内に格納する。制御要求に応じて他のノードから送信された第１応答である第２応答を受信する。第２応答を受信して、第１応答をキューから除去し、第１応答を送信しない。
【０００９】
一実施形態では、第２応答を認証し、第２応答が認証された場合に、キューから第１応答を除去し、他のノードに対して第１応答を送信しない。第１応答を、キュー内にランダムに格納することができる。第１応答を、キューからランダムに選択することができる。第１応答を、ネットワーク上の他のノードに対してマルチキャストすることができる。第２応答が認証されなかった場合に、第１応答を、ネットワーク上の他のノードに対してマルチキャストすることができる。
【００１０】
一実施形態では、データパケットが制御要求を含んでいるか否かについての判断を行う。制御要求を、ネットワーク上の複数のノードにマルチキャストすることができる。第２応答を、ネットワーク上の複数のノードにマルチキャストすることができる。データパケットが第２応答を含んでいるか否かについての判断を行う。
【００１１】
ネットワーク上のマルチキャストトラフィックを減少するように構成されているコンピュータシステムも記載されている。該コンピュータシステムは、プロセッサおよびプロセッサと電子通信するメモリを備えている。メモリ内には命令が格納されている。制御要求を受信する。制御要求に関連する第１ランキング指標を、制御要求を受信したノードに関連する第２ランキング指標と比較する。第１ランキング指標が、第２ランキング指標よりも低い場合に、制御要求に対する第１応答を生成する。第１応答をキュー内に格納する。制御要求に応じて他のノードから送信された第１応答である第２応答を受信する。第２応答を受信して、第１応答をキューから除去し、第１応答を送信しない。
【００１２】
ネットワーク上のマルチキャストトラフィックを減少するための実行可能な命令を備えているコンピュータ読み込み可能媒体も記載されている。制御要求を受信する。制御要求に関連する第１ランキング指標を、制御要求を受信したノードに関連する第２ランキング指標と比較する。第１ランキング指標が、第２ランキング指標よりも低い場合に、制御要求に対する第１応答を生成する。第１応答をキュー内に格納する。制御要求に応じて他のノードから送信された第１応答である第２応答を受信する。第２応答を受信して、第１応答をキューから除去し、第１応答を送信しない。
【００１３】
本発明の例示的な実施形態は、後述する説明および添付された請求項から、添付の図面と併用することによって完全に明らかになるはずである。これらの図面は、例示的な実施形態を示しているにすぎないこと、したがって、本発明の範囲を限定するものとはみなされるべきではないことを理解されたい。本発明の例示的な実施形態は、以下の添付図面を使用することによって、さらに具体的かつ詳細に説明されるはずである。
【図面の簡単な説明】
【００１４】
【図１】本システムおよび本方法を実施することができる環境の一実施形態を示す。
【図２】本システムおよび本方法とともに使用され得るノードの一実施形態を示すブロック図である。
【図３】データパケットを受信するノードの実施形態を示すブロック図である。
【図４】データパケットを受信するノードのさらなる実施形態を示すブロック図である。
【図５】ノード内に含まれるキューの実施形態を示すブロック図である。
【図６】制御要求に対する応答をキューから除去するか否かを決定する方法の一実施形態を示すフローチャートである。
【図７】制御ノードとして指定されるべき要求を送信する方法の一実施形態を示すフロー図である。
【図８】実施形態にしたがって構成された組み込みデバイスにおいて使用され得るハードウェアコンポーネントのブロック図である。
【発明を実施するための形態】
【００１５】
本発明を実行するための最良の形態
ここで、本発明の様々な実施形態を、図面を参照して説明する。これらの図面では、同一の部材あるいは機能的に類似の要素を同一の参照番号によって示している。これらの図面において概して説明かつ例示されている本発明の実施形態については、広範な異なる構成にアレンジおよび設計することができる。したがって、図面に示されているような本発明におけるいくつかの例示的な実施形態に関する以下の詳細な説明は、特許請求されている本発明の範囲を限定することを意図しておらず、本発明の実施形態を単に代表しているだけである。
【００１６】
「例示的な」という語は、本明細書では、もっぱら、「実施例、事例または実例として機能すること」を意味するものとして使用される。本明細書で「例示的」と示されているいかなる実施形態についても、他の実施形態よりも好ましい、または有利であると解釈する必要はない。
【００１７】
本明細書に開示されている実施形態における多くの機能は、コンピュータソフトウェア、電子ハードウェア、あるいはこれらの組み合わせとして実現され得る。このハードウェアおよびソフトウェアの互換性を明確に示すために、様々なコンポーネントをそれらの機能性の観点から概して説明する。このような機能性がハードウェアあるいはソフトウェアのいずれとして実現されるかは、特定のアプリケーション、および、システム全体に課されている設計の制約に依存する。当業者なら、記載の機能性を、各特定のアプリケーションに関して様々な手法で実現することができ、そのような実現の決定は、本発明の範囲からの逸脱をもたらすように解釈されるべきではない。
【００１８】
記載の機能性がコンピュータソフトウェアとして実現されている場合には、このようなソフトウェアは、メモリデバイス内に配置されている且つ／またはシステムバスあるいはネットワーク上を電気的な信号として伝送される任意のタイプのコンピュータ命令あるいはコンピュータ実行可能なコードを含むことができる。本明細書に記載されているコンポーネントに関連する機能性を実現するソフトウェアは、単一の命令、あるいは多くの命令を含むことができ、さらに、異なるプログラム間において、また、複数のメモリデバイスにわたって、複数の異なるコードセグメントに分散され得る。
【００１９】
本明細書で使用されている「（１つの）実施形態」、「実施形態」、「（複数の）実施形態」、「この実施形態」、「これらの実施形態」、「１つ以上の実施形態」、「いくつかの実施形態」、「特定の実施形態」、「一実施形態」、「他の実施形態」という用語、およびその他の類似の用語は、明確に特記しない限り、「開示の発明における１つ以上の（ただし、必ずしも全てではない）実施形態」を意味する。
【００２０】
「決定」という用語（およびその文法上での変化形）は、極めて幅広い意味で使用される。「決定」という用語は、広範な行為を包含している。したがって、「決定」は、計算、演算、処理、導出、探索、検索（例えば、表、データベースあるいは他のデータ構造における検索）、究明、およびこれらに類似する行為を含み得る。また、「決定」は、受信（例えば、情報の受信）、アクセス（例えば、メモリ内のデータへのアクセス）、およびこれらに類似の行為を含み得る。また、「決定」は、解決、選択、選出、制定およびこれらに類似の行為を含み得る。
【００２１】
「〜に基づく」という句は、明確に特記しない限り、「〜だけに基づく」ということを意味しない。すなわち、「〜に基づく」という句は、「〜だけに基づく」と「少なくとも〜に基づく」との双方を示している。
【００２２】
組み込みアプリケーションサーバを含むシステムは、ローカルエリアネットワーク（ＬＡＮ）上にある（類似した複数のアプリケーションサーバのうち）どの単一のアプリケーションサーバが類似した複数のアプリケーションサーバのグループに関する制御アプリケーションサーバとして機能することができるかを安全に発見するための方法を必要とする場合がある。一実施形態では、制御アプリケーションサーバは、他のアプリケーションサーバのそれぞれに対して、それが有効な制御アプリケーションサーバであるということを証明する必要がある。制御アプリケーションサーバとして認識されることを希望するアプリケーションサーバは、成功裏に攻撃される可能性がない方法でその有効性を証明する必要がある。これは、最終的な決定が、制御アプリケーションサーバであることを所望するか、またはＬＡＮ上に制御アプリケーションサーバが存在しないことを所望する、ネットワーク上の悪意のある実体によって影響される可能性がないことを意味する。このことは、ネットワーク上で送信される多くのデータパケットを必要とする場合がある（すなわち、Ｏ（ｎ２）／２）。これらのパケットの多くは重複するものであり、したがって、現在の多くの解決法では、ネットワーク上のトラフィックが非常に高くなっている。
【００２３】
組み込みアプリケーションサーバなどのノードは、一組の秘密を有することができる。これらの秘密は、ノード自体に対応していてよく、また、同様に、他の類似の組み込みアプリケーションサーバを含めた、ネットワーク上の他のノードに対応していてもよい。ノードが他のノードの秘密を含んでいる場合、第１ノードが、第２ノードに送信される安全なトラフィックを理解することを可能にする。この能力により、ノードが、他のノードを対象としたネットワークトラフィック上を「のぞき見る（ｓｎｏｏｐ）」ことを可能にする。この「のぞき見」により、ノードが、重複しているデータパケットをネットワーク上で送信することを回避することを可能にする。これらの重複データパケットは、ネットワークトラフィックを増加させる場合があり、したがって、重複パケットカウントの減は、ネットワークトラフィックを大幅に減少させ得る。例えば、ネットワークが１００の組み込みアプリケーションサーバを含む場合があると仮定する。これらのアプリケーションサーバは、制御アプリケーションサーバを決定するために、優先順位をつけられ得る。最も高い優先順位を有するアプリケーションサーバは、低い優先順位を有する他のアプリケーションサーバに対して、自身が制御アプリケーションサーバであるということを証明することができる。自身を証明するために、（１００＊１００）／２、すなわち５０００のデータパケットがネットワーク上を送信されることを要求され得る。これらのパケットの圧倒的多数は重複している場合があり、同じ効果を有し、このことは、ネットワーク上のトラフィックを劇的に増加させる。
【００２４】
図１は、本システムおよび本方法が実施され得る環境１００の一実施形態を示す。環境１００は、ネットワーク１３０上で相互通信する複数のノードを含み得る。本明細書で使用される「ネットワーク」という用語は、一連のノードが通信経路によって相互接続されるシステムを称する。ノードは、他のノードと通信する物理的なコンピュータデバイスである。ノードの具体的な挙動は、それが実行するアプリケーションあるいはソフトウェアによって決定される。ネットワークのノードで作動しているアプリケーションは、データがネットワーク上をどのように送信されるかについて規格化されたルールであるプロトコルを実現するソフトウェアモジュールを介して相互通信している。プロトコルには、データ伝送のタイミング、順序付け、およびエラーチェックを処理するものもある。他は、どのようにデータがフォーマットされているか、ならびにノードが交換するコマンドおよび応答をより多く処理する。ともに機能するプロトコルのセットはプロトコルスタックと呼ばれており、各プロトコルは、他のレイヤの最上部に設けられている、スタック内のレイヤとして機能する。プロトコルスタックにおける最上部レイヤはアプリケーションによって利用され、中間レイヤはノード間のデータのグループ（パケットおよびフレーム）の伝送を処理する。そして、底部レイヤは、データを伝送するネットワーク上のハードウェアを直接処理する。
【００２５】
物理ネットワークは、ある種の物理媒体（例えば、電気配線、光ファイバ、空気）によって接続されているノードから構成される。この物理接続は、リンクと称される場合もある。２つのノードに限定された物理ネットワークは、ポイント・ツー・ポイント（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ）と称される場合もある。一方、３つ以上のノードをサポートすることができる物理ネットワークは、多重アクセスと称される場合もある。多重アクセスネットワーク上の各ノードは、ネットワーク上で他のノードからそれを区別するために使用される物理アドレスを有している。
【００２６】
ノードの固有のグループを特定するために、論理ネットワークを、物理ネットワーク上に重ね合わせることができる。論理ネットワーク内の各ノードは、ノードの物理アドレスに対してプロトコルによってマップされている論理アドレスを有している。サブネットワークすなわちサブネットは、物理的あるいは論理的にネットワークの部分から独立しており、サブネット番号によって区別される場合がある。
【００２７】
大部分のプロトコルは論理ネットワークを処理する。これは、大部分の物理ネットワークの問題点が既に多くの明確な実現を有しており、新しい物理レイヤを規定することは求められていないからである。論理ネットワークは、また、物理ネットワークから隔離されているという利点を有しており、したがってより一般的に有用である。例えば、ＴＣＰ／ＩＰは、論理ネットワークの最上部に規定されている（ＩＰ）。ＩＰは、多くの物理ネットワーク（イーサネット、シリアル、ワイヤレスなど）で作動することができる。このことは、ある特定の物理ネットワークだけに関して規定されている場合に比して、ＴＣＰ／ＩＰをより包括的な解決法にする。
【００２８】
一実施形態では、ノードＧ１１４は、制御要求１２８をネットワーク１３０に接続されている他のノードに送信する。一実施形態では、制御要求１２８は、要求１２８を送信したノードを制御ノードとして認識するための要求を含んでいる。制御ノードは、１つ以上の観点において、他のノードを管理するノードである。制御ノードは、ネットワーク１３０上の各ノードからのデータや処理の流れを制御することができる。例えば、ネットワーク１３０上に多数のＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバが存在する場合、システムは、通常、１つの有効なＤＨＣＰサーバだけを望むはずである。これを達成するために、様々なＤＨＣＰサーバは単一の制御ノードすなわち制御ＤＨＣＰサーバになることを試みることができる。
【００２９】
あるノードが制御ノードになることを所望し得る他の状況は、セキュリティ・トークン・サーバである。一度に１つのセキュリティ・トークン・サーバ機能が存在する場所でしかシステムが正確に機能しない場合でも、システムは、セキュリティ・トークン・サーバとして機能することができる多数のノードを有し得る。この状況では、異なる潜在的なセキュリティトークン・サーバ・ノードは、どれがその役割を担うのかを決定することについて交渉する必要がある。さらに、セキュリティを維持するために、それに選ばれるセキュリティ・トークン・サーバが、サービスを実行するための信頼を得ており、そのための権限を認められていることが重要である。
【００３０】
示したノードは、パーソナルコンピュータ、ラップトップ、サーバなどの任意のタイプのコンピュータデバイスを含み得る。一実施形態では、ノードのそれぞれが組み込みデバイスであってよい。組み込みデバイスは、コンピュータが制御するデバイスによってコンピュータが内包されている特別な目的のデバイスであってよい。組み込みデバイスは、特別の要求を有するあらかじめ規定されたタスクを実行することができる。組み込みデバイスの例として、組み込みアプリケーションサーバ（ＡＳ）を挙げることができる。ＡＳは、特定のソフトウェアアプリケーションを実行するための専用のコンピュータネットワーク上のサーバコンピュータを含み得る。一実施形態では、組み込みアプリケーションサーバは、他のアプリケーションサーバなどの他のコンピュータデバイスに対してサービスを送達するソフトウェアエンジンである。
【００３１】
上記のように、ノードＧ１１４は、制御要求１２８を、ネットワーク１３０上のノードのそれぞれに送信することができる。制御要求１２８は、ネットワーク１３０上の複数のノードそれぞれがノードＧ１１４を制御ノードとして認識するための要求を含むことができる。ノードＡ〜Ｇ、１０２〜１１４をそれぞれ、特定のパラメータにしたがってランク付けすることができる。一実施形態では、アプリケーションサーバなどのノードは、該ノードの処理能力に基づいて、ランキングを受けることができる。一実施形態では、最も高い処理能力を有するノードは、最も高いランクを受けることができ、他のノードによって制御ノードとして指定され得る。制御ノードは、１つのノードから他のノードへのデータおよび処理の流れを制御することができる。他のパラメータによる他の手法によってノードをランク付けすることもできる。例えば、マシンあるいはデバイスの名前、作動しているプロセスの数、あるいは、マニュアルランキングなどによって、ＩＰアドレスにしたがってランク付けすることができる。
【００３２】
ノードＡ〜Ｆ、１０２〜１１２は、それぞれ、また、キュー１１６〜１２６を含むこともできる。ノードは、キューに制御要求１２８に対する応答を格納することができる。例えば、ノードＧ１１４は、ノードＡ〜Ｆ、１０２〜１１２に要求１２８を伝えることができる。一実施形態では、ノードＧ１１４は、ノード１０２〜１１２に要求１２８をマルチキャストする。ノードＡ〜Ｆ、１０２〜１１２は、要求１２８に対する応答を生成することができる。応答は、各ノードに対応するキュー内に格納され得る。応答は、それが他のいずれかのノードに送られるまでの期間、キュー内に格納される（これについては、後により完全に説明する）。一実施形態では、応答は、制御ノードとしてノードＧ１１４を指定することができるか否かを示すことができる。例えば、ノードＡ〜Ｆ１０２〜１１２のうちのいくつかは、ノードＧ１１４のランキングよりも高いランキングを含み得る。したがって、ノードＡ〜Ｆ１０２〜１１２のいくつかは、制御ノードの指定をノードＧ１１４に与えない応答を生成し得る。
【００３３】
一実施形態では、ノードＡ１０２は、ノードＧ１１４からマルチキャストされた制御要求１２８に応答して、ノードＡ１０２がより高いランキングを含んでいるためにノードＧ１１４を制御ノードとして指定することができないということを示すことができる。さらなる実施形態では、ノードＢ〜Ｆ１０４〜１１２は、これらのそれぞれがノードＧ１１４よりも高いランキングを含んでいるという理由で、同様の応答を生成することができる。ノードＢ〜Ｆ１０４〜１１２は、また、これらノードＢ〜Ｆ１０４〜１１２がノードＡ１０２とノードＧ１１４との間の通信（ノードＡ１０２から送信された応答を含む）の関与者となることを許可することができる重複特性を含み得る。例えば、ノードＡ１０２は、ノードＧ１１４への応答をマルチキャストすることができる。この重複特性のために、ノードＢ〜Ｆ１０４〜１１２もまた、ノードＡ１０２からノードＧ１１４に送信された応答を受信することができる。ノードＡ１０２から送信された応答を受信すると、ノードＢ〜Ｆ１０４〜１１２は、自らの応答を自らの各キュー１１８〜１２６から消去することができる。これは、ノードＡ１０２によって制御ノードとしてノードＧ１１４が指定されることができないということをノードＧ１１４が既に知らされているからである。
【００３４】
図２は、本システムおよび本方法とともに使用され得るノード２０２の一実施形態を示すブロック図である。ノード２０２は、任意のタイプのコンピュータデバイス（すなわち、パーソナルコンピュータ、ラップトップ、サーバなど）であり得る。一実施形態では、ノード２０２は、組み込みサーバであり得る。ノード２０２はデータ読取機２３２を含み得る。データ読取機２３２は、他のノードから送信されるデータパケットに含まれているデータを読み取ることができる。一実施形態では、データ読取機２３２は、パケットが制御要求１２８を含んでいるか否かを判断することができる。他の実施形態では、データ読取機２３２は、制御要求１２８への応答をパケットが含んでいるか否かを判断することができる。
【００３５】
ノード２０２は、応答生成器２３８も含み得る。この応答生成器２３８は、制御要求１２８に対する応答を生成することができる。例えば、応答生成器２３８は、制御ノードとして指定してもらうために制御要求１２８を送信したノードの要求を拒否するという応答を生成することができる。
【００３６】
ノード２０２は、さらに、応答生成器２３８によって生成された応答を格納するためのキュー２１６を生成するキュー生成器２４８を含むことができる。キュー２１６は、キュー２１６内に格納されているデータのリストを含むリスト２４２を含み得る。一実施形態では、リスト２４２は、応答生成器２３８によって生成された応答を含み得る。
【００３７】
ノード２０２は、さらに、認証器（ａｕｔｈｅｎｔｉｃａｔｏｒ）２４４を含み得る。この認証器２４４は、ノード２０２によって受信された各データパケットを認証する。認証器２４４は、ネットワーク１３０上の他のノードからパケットが送信される場合にパケットを認証する。例えば、ノードＧ１１４は、ノードＡ１０２に対してデータパケットを送信することができ、このパケットは、制御要求１２８を含むことができる。ノードＡ１０２は、そのパケットがノードＧ１１４から送信されたことを認証することができる認証器２４４を含むことができる。
【００３８】
ノードＡ１０２の応答生成器２３８は、制御要求１２８に対する応答を生成することができ、ノードＡ１０２はその応答をマルチキャストすることができる。ノードＢ〜Ｇ１０４〜１１４は、それぞれ、ノードＡ１０２から送信された応答を受信することができる。ノードＢ〜Ｇ１０４〜１１４は、それぞれ、ノードＡ１０２から送信された応答を認証できる認証器２４４を含むこともできる。一実施形態では、認証器２４４は、データパケットを認証するために追加パラメータを評価することができる。
【００３９】
ノード２０２は、さらに、データプレーサ２３４を含み得る。このデータプレーサ２３４は、応答生成器２３８によって生成された応答をキュー２１６内の特定の場所に格納することができる。コンパレータ２３６は、ノード２０２によって受信されて認証器２４４によって認証されたデータを、キュー２１６内に格納されているデータと比較することができる。例えば、コンパレータ２３６は、ネットワーク１３０上の他のノードから受信された応答を、キュー２１６内に従前から格納されている応答と比較することができる。データ除去器２４０は、キュー２１６に従前から格納されているデータを除去することができる。データセレクタ２４６は、リスト２４２において、キュー２１６から除去して他のノードに送信するべきデータを選択することができる。
【００４０】
ノード２０２は、ランキング指標２５２も含み得る。指標２５２は、ノード２０２のランキングを含んでいる。ノード２０２のランキングは、ノード２０２の処理能力によって、あるいは他のパラメータによって決定され得る。例えば、ノード２０２のランキングを、それが制御ノードとして既に機能しているか否かに基づいて調整することができる。ノード２０２は、さらに、他のノードに送信されるべきパケットを生成するデータパケット生成器２５０を含むことができる。一実施形態では、このデータパケット生成器２５０は、制御要求１２８を含むパケットを生成することができる。
【００４１】
図３は、データパケット３５４を受信するノードの実施形態を示すブロック図である。このノードは、データ読取機３３２、コンパレータ３３６、応答生成器３３８およびランキング指標Ａ３６０を含むノードＡ３０２であり得る。このデータ読取機３３２は、さらに、ランキング検出器３５８を含み得る。
【００４２】
一実施形態では、データパケット３５４をノードＡ３０２によって受信することができる。データパケット３５４は、ランキング指標３５６を含む制御要求３２８を含み得る。ランキング指標３５６は、制御要求３２８を送信したノードに関連するランキングを示すことができる。データ読取機３３２は、データパケット３５４が制御要求３２８を含んでいるか否かを判断することができる。一実施形態では、ランキング検出器３５８によって、データパケット３５４が制御要求３２８を含んでいるか否かをデータ読取機３３２が判断することを容易にし得る。
【００４３】
一実施形態では、コンパレータ３３６が、データパケット３５４に含まれるランキング指標３５６をランキング指標Ａ３６０と比較する。このランキング指標Ａ３６０は、ノードＡ３０２に関連するランキングを示す。コンパレータ３３６は、データパケット３５４に関連するランキングが、ノードＡ３０２に関連するランキングよりも高いか低いかを判断する。ランキング指標Ａ３６０が、データパケット３５４に含まれるランキング指標３５６よりも高いランキングをノードＡ３０２が有していることを示す場合、応答生成器３３８は、制御要求３２８に対する応答を生成することができる。一実施形態では、応答生成器３３８によって生成された応答は、「ノードＡ３０２のランキングが、制御要求３２８を送信したノードのランキングよりも高い」という理由で、ノードＡ３０２が、制御要求３２８を送信したノードを制御ノードとして認識しないことを示す。
【００４４】
図４は、データパケット４５４を受信するノードのさらなる実施形態を示すブロック図である。一実施形態では、ノードは、ノードＡ４０２であってよく、データ読取機４３２、コンパレータ４３６およびキューＡ４１６を含んでいてよい。一実施形態では、このデータ読取機４３２は、応答検出器４６４を含み得る。この応答検出器４６４は、データパケット４５４が制御要求応答４６２を含んでいるか否かをデータ読取機４３２が検出することを容易にし得る。この制御要求応答４６２は、他のノードによって生成された応答であってよい。例えば、ノードＧ１１４は、ノードＡ〜Ｆ１０２〜１１２に対して制御要求をマルチキャストすることができる。一実施形態では、ノードＧ１１４のランキングは、各ノード１０２〜１１２よりも低い。ノードＢ１０４は、制御要求応答４６２を生成することができ、制御要求応答４６２は、ノードＧ１１４に対して、「ノードＢ１０４が、ノードＧ１１４のランキングよりも高いランキングを有しているという理由で、ノードＧ１１４が、制御ノードとして指定されない」ということを示す。一実施形態では、ノードＢ１０４が、制御要求応答４６２をマルチキャストすることができ、これにより、ノードＡ４０２およびノードＣ〜Ｆ１０６〜１１２が、それぞれ、ノードＢ１０４からの応答４６２を含むデータパケット４５４を受信する。
【００４５】
ノードＡ４０２は、制御要求応答４６２を認証することができる認証器４４４を含み得る。一実施形態では、ノードＢ１０４がネットワーク１３０において有効なノードである場合、ノードＢ１０４から送信された制御要求応答４６２が認証され得る。さらなる実施形態では、他のパラメータによって認証器４４４は制御要求応答４６２を認証することができる。
【００４６】
コンパレータ４３６は、制御要求応答４６２を、ノードＡ４０２の応答生成器２３８によって従前に生成されてキューＡ４１６に格納されている制御要求応答と比較することができる。一実施形態では、ノードＡ４０２によって生成された応答を、キューＡ４１６内のリスト４４２に含めることができる。コンパレータ４３６が、受信された制御要求応答４６２がキューＡ４１６に格納されている応答と同様の効果を有していると判断すると、ノードＡ４０２は、従前に生成された応答を送信することなく、従前に生成された応答をキューＡ４１６のリスト４４２から除去することができる。一実施形態では、データ除去器２４０は、キューＡ４１６から応答を除去することができる。
【００４７】
図５は、ノード内に含まれるキューの実施形態を示すブロック図である。一実施形態では、キューＡ５１６がノードＡ１０２内に含まれており、キューＢ５１８がノードＢ１０４内に含まれている。
【００４８】
図示されているように、キューＡ５１６はネットワーク５３０上の他のノードへ伝送され得るデータを含むリストＡ５４２を含み得る。一実施形態では、ノードＡ１０２に含まれる応答生成器Ａ５３８は、上記のように制御要求１２８に対する応答Ａ５７０を生成することができる。応答生成器Ａ５３８は、ノードＡ１０２に関連するランキングが制御要求１２８を送信したノードに関連するランキングよりも高い場合に、応答Ａ５７０を生成することができる。
【００４９】
一実施形態では、データプレーサＡ５３４が、応答Ａ５７０をリストＡ５４２に置く。データプレーサＡ５３４は、応答Ａ５７０をリストＡ５４２にランダムに置くことを容易にするランダムプレーサ５６６を利用することができる。例えば、リストＡ５４２は、リストＡ５４２に既に置かれていてよいデータＡ５６８およびデータＢ５７２を含み得る。一実施形態では、ランダムプレーサ５６６は、データＡ５６８とデータＢ５７２との間に応答Ａ５７０を置く。
【００５０】
データセレクタＡ５４６は、ネットワーク５３０上の他のノードに送信されるべきアイテムをリストＡ５４２から選択することができる。ランダムセレクタ５７４は、「データセレクタＡ５４６がキューＡ５１６に格納されているアイテムをランダムに選択すること」を許可することができる。一実施形態では、データセレクタＡ５４６は、応答Ａ５７０をランダムに選択し、ネットワーク５３０に接続されている他のノードに対して応答Ａ５７０をマルチキャストすることができる。
【００５１】
ノードＢ１０４内に含まれ得るキューＢ５１８も示されている。キューＢは、応答生成器Ｂ５３９によって生成された応答Ｂ５７１を含むことができる。データプレーサＢ５３５は、応答Ｂ５７１をリストＢ５４３にランダムに置くためにランダムプレーサ５６６を利用する。リストＢ５４３は、データＣ５７６およびデータＤ５７８を含み得る。一実施形態では、データプレーサＢ５３５は、応答Ｂ５７１を、キューＡ５１６内の応答Ａ５７０とは異なる場所に置く。データセレクタＢ５４７は、ランダムセレクタ５７４を利用して、リストＢ５４３からランダムにアイテムを選択することができる。一実施形態では、データセレクタＢ５４７は、ネットワーク５３０上の他のノードにマルチキャストされるべきデータＣ５７６をランダムに選択する。一実施形態では、データプレーサＡ５３４およびデータプレーサＢ５３５は、それらの各キューに対して同時に応答ＡおよびＢ５７０、５７１をランダムに置く。同様に、データセレクタＡ５４６およびデータセレクタＢ５４７は、ネットワーク５３０上の他のノードに対して同時にマルチキャストするためのアイテムをリストＡおよびＢ５４２、５４３からランダムに選択することができる。したがって、ネットワーク５３０に接続された他のノードに応答Ｂ５７１がマルチキャストされる前に、応答Ａ５７０を、他のノード（ノードＢ１０４を含む）にマルチキャストすることができる。
【００５２】
図６は、制御要求に対する応答をキューから除去するか否かを決定する方法６００の一実施形態を示すフローチャートである。一実施形態では、方法６００をある一つのノードによって実現することができる。さらなる実施形態では、この方法６００を組み込みサーバによって実現することができる。
【００５３】
一実施形態では、制御要求１２８を受信することができる（６０２）。この制御要求１２８を、１つのノードから、ネットワーク１３０に接続された他の複数のノードにマルチキャストすることができる。制御要求１２８は、制御要求１２８を送信したノードに関連するランキングを示すランキング指標２５２を含むことができる。一実施形態では、制御要求１２８に含まれるランキング指標２５２は、制御要求１２８を受信したノードのランキング指標と比較される（６０４）。上記のように、コンピュータ２３６はランキング指標を比較（６０４）することができる。
【００５４】
制御要求１２８に関連するランキング指標が該要求を受信したノードに関連するランキング指標より大きいか、または等しい場合（６０６）は、方法６００は終了する。要求１２８に関連するランキング指標が、要求１２８を受信したノードに関連するランキング指標よりも小さい場合（６０６）、制御要求応答が生成される（６０８）。制御要求応答は、「制御要求１２８を送信したノードに関連するランキング指標が要求１２８を受信したノードに関連するランキング指標よりも小さいという理由で、制御要求１２８を送信したノードは、制御ノードとして指定されない」ということを示すことができる。
【００５５】
キューがまだない場合には、キューを生成する（６１０）ことができる。キューは、制御要求応答を一時的に格納する（６１２）ことができる。応答がキューに格納されている（６１２）間、方法６００は、ネットワーク１３０に接続されている他のノードから他の制御要求応答が受信されたか否かを判断する（６１４）。他の応答が受信されていない場合（６１４）、キューに格納されている制御要求応答を、ネットワーク１３０に接続されているノードに対してマルチキャストする（６２０）ことができる。他のノードからの応答が受信された場合（６１４）、方法６００は、その応答が認証されているか否かを判断する。一実施形態では、認証器２４４は、その応答を評価し、応答がネットワーク１３０上の認証されたノードから送信されたか否かを判断する。その応答が認証されない場合（６１６）、キューに格納されている制御要求応答が、ネットワーク１３０上のノードに対してマルチキャストされる（６２０）。他の応答が認証された場合（６１６）、従前からキューに格納されている制御要求応答がキューから除去される（６１８）。すなわち、キューに格納されている制御要求応答は、ネットワーク１３０内の他のノードに対してマルチキャストされない。
【００５６】
以下は、「複数のノードのうちどのノードが最も高いランキングを有するのか、したがって制御ノードであるか」の判断をサポートするために実現され得るシーケンスの一実施例を示している。以下は、また、「格納されている応答をキューから除去するか、あるいは、格納されている応答をネットワーク上の他のノードに対してマルチキャストするか」の判断の一実施例を示している。以下のシーケンスでは、ノードはアプリケーションサーバと称され、制御ノードは動作アプリケーションサーバと称されている。
【００５７】
ＲＡＮＫと記載される値は、以下、特定のアプリケーションサーバの能力を表す。最も高いＲＡＮＫを有するアプリケーションサーバは、動作アプリケーションサーバ（ａｃｔｉｎｇ  ａｐｐｌｉｃａｔｉｏｎ  ｓｅｒｖｅｒ：ＡＳ）であり得る。一実施形態では、最も小さい利得（１ビットの価値（ｗｏｒｔｈ））が動作ＡＳに与えられる。一実施形態では、この利得により、他の全ての量が同じである状況において、動作ＡＳが他のアプリケーションサーバに対する現存の制御を維持することを可能にする。
【００５８】
（１）以下が既知であると仮定する：（ａ）ＯＭＥ−ノードのＯＩＤ；（ｂ）一実施形態では、ＯＩＤ、ＯＷＩＬＤＣＡＲＤおよびＯＬＯＳＴに関する２つの特別な値が存在する。
【００５９】
（２）３つのプロトコル定数を規定することができる：（ａ）ＭＡＸ＿ＲＥＴＲＩＥＳ＝４；（ｂ）ＳＴＡＢＬＥ＿ＤＥＬＡＹ＝固定された、設定可能な、且つ、場合によっては設定されている秒数。共通の値は、数秒から１分以上までの間にあってよい；（ｃ）ＶＯＴＥ＿ＤＥＬＡＹ＿ＩＮＩＴＩＡＬ＝８。
【００６０】
（３）３つの変数を初期化し、維持する：（ａ）ＡＳ＝ＯＷＩＬＤＣＡＲＤ；（ｂ）ＶＯＴＥ＿ＤＥＬＡＹ＝ＶＯＴＥ＿ＤＥＬＡＹ＿ＩＮＩＴＩＡＬ；（ｃ）ＲＥＴＲＩＥＳ＝０；（ｄ）ＲＡＮＫ＝長時間にわたって維持され得る、このノードの相対優先度；（ｉ）現在のノードが動作ＡＳである場合、最も低いビットは１であり、そうでない場合０である；（ｉｉ）次の３ビットは、設定あるいは固定され得る優先度を示し、より大きい数字は、より高い優先度を示す；（ｉｉｉ）残りの（高次の）ビットは、設定されたセキュリティキーの数（あるいは、これに非常に近い数）を含むことができる；（ｉｖ）設定されたセキュリティキーの数を、ＡＳであるために少なくとも１であってよい。他のノードとの間で去来するトラフィックをノードが理解且つ認証することを可能にすることに関連して、上記のように、これらのセキュリティキーは同じである。
【００６１】
（４）以下を実行する。一実施形態では、ＲＥＴＲＩＥＳ＞ＭＡＸ＿ＲＥＴＲＩＥＳの後での応答を許可するために、いくらかの時間（ＳＴＡＢＬＥ＿ＤＥＬＡＹよりは短い）を与える必要がある：（ａ）ＲＥＴＲＩＥＳ＞ＭＡＸ＿ＲＥＴＲＩＥＳおよびＡＳ＝＝ＯＷＩＬＤＣＡＲＤである場合、ＡＳ＝ＯＭＥであり、ＡＳを有効にする；（ｂ）ＲＥＴＲＩＥＳ＞ＭＡＸ＿ＲＥＴＲＩＥＳおよびＡＳ＜＞ＯＷＩＬＤＣＡＲＤおよびＡＳ＜＞ＯＭＥである場合、ＡＳ＝ＯＷＩＬＤＣＡＲＤ、ＲＥＴＲＩＥＳ＝０、ＶＯＴＥ＿ＤＥＬＡＹ＝ＶＯＴＥ＿ＤＥＬＡＹ＿ＩＮＩＴＩＡＬである；（ｃ）キューが送信するパケットを含んでいる場合、少なくとも１つを送信することができる。送信されるパケットは、ランダムに選択することができる。一実施形態では、パケット間の遅延時間も、０ｍｓと４０ｍｓとの間でランダムに選択される。
【００６２】
（５）出力パケットを定期的に送信する。これらを、それぞれＭＡＸ＿ＲＥＴＲＩＥＳまでを１グループとして送信することができ、各グループは、ＳＴＡＢＬＥ＿ＤＥＬＡＹ秒によって分離される。各グループに関するパケット分離はランダムであってもよく、また、ＳＴＡＢＬＥ＿ＤＥＬＡＹ秒よりも短くてもよい。送信される各パケットは、以下を実行することを含んでいる：（ａ）ランダムな臨時のＮＭＥを決定し、覚える；（ｂ）ＡＳ＝＝ＯＬＯＳＴである場合、全てのノード、ＤＡＣＴＩＮＧ（ＯＭＥ，ＮＭＥ）に対して要求をマルチキャストする；（ｃ）ＡＳ＜＞ＯＭＥおよびＡＳ＜＞ＯＬＯＳＴおよびＡＳ＜＞ＯＷＩＬＤＣＡＲＤである場合、ノードＯＩＤ、ＤＡＣＴＩＮＧ（ＯＭＥ，ＮＭＥ）に対して要求をマルチキャストする。一実施形態では、要求をユニキャストすることもできる。（ｄ）ＡＳ＝＝ＯＭＥであれば、全てのノード、ＤＰＯＴＥＮＴＩＡＬ（ＯＭＥ，ＲＡＮＫ，ＮＭＥ）に対して要求をマルチキャストする；（ｅ）ＲＥＴＲＩＥＳ＋＝１。
【００６３】
（６）出力パケットを定期的に送信する。ＡＳ＝＝ＯＷＩＬＤＣＡＲＤ（投票中）である間にこれらを送信することができる。（ａ）ＡＳ＝＝ＯＷＩＬＤＣＡＲＤである場合、全てのノード、ＤＰＯＴＥＮＴＩＡＬ（ＯＭＥ，ＲＡＮＫ，ＮＭＥ）に対して要求をマルチキャストする；（ｂ）ＶＯＴＥ＿ＤＥＬＡＹ＝ＶＯＴＥ＿ＤＥＬＡＹ／２（整数計算）；（ｃ）ＲＥＴＲＩＥＳ＋＝１；（ｄ）この出力パケットを繰り返す前に、ＶＯＴＥ＿ＤＥＬＡＹ秒を遅らせる。
【００６４】
（７）次の、ＡＳに基づくＤＡＣＴＩＮＧ（ＯＲ，ＮＲ）要求に応答する；（ａ）ＯＭＥ＜＞ＡＳであれば、無視する；（ｂ）ＯＲに関するセキュリティキーがない場合、無視する（ワイルドカードキーはＯＫ）；（ｃ）そうでない場合には、ＲＡＣＴＩＮＧ（ＯＭＥ，ＯＲ，ＮＲ，ＳＫ（ＯＭＥ，ＯＲ，ＮＲ））を有する応答；（８）次の、ＡＳに基づくマルチキャストされたＤＰＯＴＥＮＴＩＡＬ（ＯＲ，ＲＡＮＫＲ，ＮＲ）要求に応答する；（ａ）ＯＲに関するセキュリティキーがない場合、無視する（ワイルドカードキーはＯＫ）；（ｂ）ＲＡＮＫＲ＞ＲＡＮＫである場合、無視する；（ｃ）ＲＡＮＫＲ＝＝ＲＡＮＫおよびＯＲ＜ＯＭＥである場合、無視する；（ｄ）ＡＳ＝＝ＯＭＥである場合、ノードＯＲに対して、ユニキャストされ得るＲＰＯＴＥＮＴＩＡＬ（ＯＭＥ，ＯＲ，ＲＡＮＫ，ＮＲ，ＳＫ（ＯＭＥ，ＯＲ，ＲＡＮＫ，ＮＲ））によって応答する；（ｅ）そうでない場合、全てのノード：ＲＰＯＴＥＮＴＩＡＬ（ＯＭＥ，ＯＲ，ＲＡＮＫ，ＮＲ，ＳＫ（ＯＭＥ，ＯＲ，ＲＡＮＫ，ＮＲ））に対して送信するための後続の応答をキューに入れる。パケットをキューに入れることができない場合（例えば、スペース制約によって）、この応答、あるいはキューに入っている応答の１つのいずれかをランダムに外す。キューに入っている応答を外す場合、一実施形態では、この応答がキューに入れられる。
【００６５】
（９）次の、ＡＳに基づくＲＡＣＴＩＮＧ（ＯＡＳ，ＯＲ，ＮＲ，ＳＫ（））応答を取り扱う；（ａ）ＳＫが有効でない場合、無視する；（ｂ）ＡＳ＝ＯＡＳ；（ｃ）ＲＥＴＲＩＥＳ＝０。
【００６６】
（１０）次の、ＡＳに基づくＲＰＯＴＥＮＴＩＡＬ（ＯＡＳ，ＯＲ，ＡＳＲＡＮＫ，ＮＲ，ＳＫ（））応答に応答する；（ａ）ＳＫが有効でない場合、無視する；（ｂ）ＯＲ＜＞ＯＭＥであり、パケットがマルチキャストされた場合；（ｉ）キューが同価値の応答（ＮＲによるＯＲに対する）を含んでいる場合、それをキューから外す；（ｃ）ＲＡＮＫ＜ＡＳＲＡＮＫあるいは（ＲＡＮＫ＝＝ＡＳＲＡＮＫおよびＯＡＳ＜ＯＭＥ）である場合；（ｉ）ＡＳ＝＝ＯＷＩＬＤＣＡＲＤである場合、ＲＥＴＲＩＥＳ＝０，ＡＳ＝ＯＬＯＳＴ；（ｉｉ）ＡＳ＝＝ＯＭＥである場合、ＲＥＴＲＩＥＳ＝０，ＡＳ＝ＯＬＯＳＴであり、ＡＳを停止する；（ｉｉｉ）ＡＳ＝＝ＯＡＳである場合、ＲＥＴＲＩＥＳ＝０；（ｄ）そうでない場合、パケットを無視する。
【００６７】
図７は、制御ノードとして指定される要求を送信する方法７００の一実施形態を示すフロー図である。方法７００は、ノードによって実現され得る。一実施形態では、制御要求は、複数のノードに対してマルチキャストされる（７０２）。要求は、ネットワーク１３０上にマルチキャストされ得る。要求を送信したノードが、それを制御ノードとして指定されないことを示す応答を受信した場合（７０４）、要求タイマーがリセットされる（７０６）。ノードに関連するランキングが、制御要求を受信したノードの１つのランキングよりも小さい場合、ノードは、制御ノードとしての認識を拒否する有効な応答を受信することができる。リセットタイマーは、「ノードが、複数のノードに対して、制御ノードとして指定されることを要求する制御要求を送信する頻度」を示すタイマーを含むことができる。ノードがネットワーク１３０に関する制御ノードとして既に動作しており、それが、制御ノードとしての認識を拒否する有効な応答を受信した場合には、それは、制御ノードとしての動作を直ちに停止させる必要がある（７１０）。
【００６８】
要求を送信したノードが、制御ノードとしての認識を拒否する他のノードからの応答を受信しない場合（７０４）、ノードのステータスを制御ノードに更新することができる（７０８）。ノードに関連するランキングが、制御要求を受信した複数のノードに関連するランキングよりも高い場合、制御要求に対する応答をノードが受信することができない。
【００６９】
一実施形態では、ノードが制御ノードである間、それが制御ノードのままでいるべきことを保証するために、方法７００を定期的に繰り返すことができる。他の実施形態では、ネットワーク１３０上の非制御ノードによって方法７００を繰り返すことができ、このノードは、現存の制御ノードが失墜すべき場合には、制御ノードとしての職務を引き継ぐことができる。
【００７０】
図８は、実施形態にしたがって構成された組み込みデバイス８０２において使用され得るハードウェアコンポーネントのブロック図である。中央処理装置（ＣＰＵ）８０４すなわちプロセッサを設けて組み込みデバイス８０２の操作を制御することができ、デバイス８０２は、バス８１０を介してＣＰＵ８０４に連結されている他のコンポーネントも含んでいる。ＣＰＵ８０４は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、あるいは、当該分野で既知の他のデバイスとして具体化され得る。ＣＰＵ８０４は、メモリ内に格納されているプログラムコードに基づいて、論理的かつ算術的な演算を実行する。特定の実施形態では、メモリ８０６は、ＣＰＵ８０４とともに含まれるオンボードメモリであってよい。例えば、マイクロコントローラは、多くの場合、一定量のオンボードメモリを含んでいる。
【００７１】
組み込みデバイス８０２は、ネットワークインターフェイス８０８も含み得る。ネットワークインターフェイス８０８は、組み込みデバイス８０２と、ネットワーク１３０に接続されている他のデバイスとの間の通信を容易にする。このネットワーク１３０は、ポケットベルネットワーク、セルラーネットワーク、グローバル通信ネットワーク、インターネット、コンピュータネットワーク、電話ネットワークなどであってよい。ネットワークインターフェイス８０８は、当該ネットワーク１３０に関する標準的なプロトコルにしたがって動作する。
【００７２】
組み込みデバイス８０２は、メモリ８０６も含み得る。メモリ８０６は、一時データを格納するために、ランダム・アクセス・メモリ（ＲＡＭ）を含み得る。これに代えて、あるいはこれに加えて、メモリ８０６は、更に不変データ（固定コードおよび構成データなど）を格納するために、リード・オンリー・メモリ（ＲＯＭ）を含み得る。メモリ８０６をハードディスクドライブなどの磁気記憶デバイスとして具体化することもできる。メモリ８０６は、電子情報を格納することができる任意のタイプの電子デバイスであってよい。
【００７３】
組み込みデバイス８０２は、他のデバイスとの通信を容易にする１つ以上の通信ポート８１２も含み得る。組み込みデバイス８０２は、キーボード、マウス、ジョイスティック、タッチスクリーン、モニタ、スピーカ、プリンタなどの入出力デバイス８１４も含み得る。
【００７４】
当然ながら、図８は、組み込みデバイス８０２の１つの可能な構成を示しているにすぎない。他の様々な構造およびコンポーネントが利用されることがある。
【００７５】
情報および信号は、任意の様々な異なる技術および技法を用いて表され得る。例えば、先の説明の中で言及され得たデータ、命令、コマンド、情報、信号、ビット、符号およびチップを、電圧、電流、電磁波、磁場または磁気粒子、光場または光学粒子、あるいは、これらの任意の組み合わせによって表すこともできる。
【００７６】
本明細書に開示されている実施形態に関連して記載した種々な具体的な論理ブロック、モジュール、回路、アルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、あるいは、これらの組み合わせとして実現され得る。このようなハードウェアおよびソフトウェアの互換性を明確に示すために、様々な具体的なコンポーネント、ブロック、モジュール、回路およびステップが、ここまで、これらの機能性の観点から概して説明されてきた。このような機能性がハードウェアあるいはソフトウェアとして実現されるか否かは、特定のアプリケーション、および、システム全体に課される設計制約に依存する。当業者であれば、記載の機能性を、特定のアプリケーションに関して様々な方法で実現することができる。しかしながら、このような実現の判断は、本発明の範囲からの逸脱をもたらすように解釈されてはならない。
【００７７】
本明細書に開示されている実施形態に関連して記載した様々な具体的な論理ブロック、モジュールおよび回路は、本明細書に記載された機能を実施するように設計された、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ信号（ＦＰＧＡ）あるいは他のプログラム可能な論理デバイス、離散ゲートあるいはトランジスタロジック、離散ハードウェアコンポーネント、あるいは、これらの任意の組み合わせを用いて実現あるいは実施され得る。汎用プロセッサはマイクロプロセッサであってよいが、別の構成では、プロセッサは、任意の常套プロセッサ、コントローラ、マイクロコントローラあるいはステートマシンであってよい。プロセッサは、コンピュータデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連結されている１つ以上のマイクロプロセッサ、あるいは、任意の他のこのような構成として実現され得る。
【００７８】
本明細書に開示されている実施形態に関連して記載した方法あるいはアルゴリズムのステップを、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、あるいは、これら２つの組み合わせにおいて直接に具体化することもできる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは、当該分野で既知である、任意の他の形態の記憶媒体に備えることができる。例示的な記憶媒体はプロセッサに連結されているため、プロセッサは、記憶媒体から情報を読み出すことができるとともに、記憶媒体に対して情報を書き込むことが可能になる。別の構成では、記憶媒体をプロセッサと一体化することもできる。プロセッサと記憶媒体とをＡＳＩＣに備えることもできる。ＡＳＩＣは、ユーザ端末に備えることができる。別の構成では、プロセッサと記憶媒体とを離散コンポーネントとしてユーザ端末に備えることができる。
【００７９】
本明細書に開示されている方法は、記載の方法を達成するための１つ以上のステップあるいは動作を備えている。方法のステップおよび／または動作を、本発明の範囲から逸脱することなく互いに置き換えることもできる。すなわち、実施形態の適当な操作に関して特定の順序のステップあるいは動作が要求されない限り、特定のステップおよび／または動作の順序および／または使用を、本発明の範囲から逸脱することなく改変することができる。
【００８０】
特定の実施形態および本発明の適用を例示かつ記載したが、本発明は、本明細書に開示された構成およびコンポーネントそのものに限定されないことを理解するべきである。本明細書に開示されている本発明の方法およびシステムの構成、操作および詳細において、本発明の精神および範囲とから逸脱することなく、当業者にとって明らかであろう様々な修飾、変更、変形を行うことができる。
【図１】
0004743323.tif 000002
【図２】
0004743323.tif 000003
【図３】
0004743323.tif 000004
【図４】
0004743323.tif 000005
【図５】
0004743323.tif 000006
【図６】
0004743323.tif 000007
【図７】
0004743323.tif 000008
【図８】
0004743323.tif 000009