(57)【特許請求の範囲】
【請求項１】
第１のセンサノードに対応する第１のセンサの測定値を示す測定データを受信し、前記第１のセンサノードからリアルタイムのデータが入手可能であることを判定することに応答して前記測定データを使用して計算を実施し、前記第１のセンサノードから前記リアルタイムのデータが入手可能ではないことを判定することに応答して前記第１のセンサノードから取り出されるキャッシュ済みデータを使用して前記計算を実施するように構成された処理エージェントと、
前記計算に応答して、前記第１のセンサノードを管理するように構成されたセンサノードマネージャであって、少なくとも１つのセンサノードの動作可能状態を判定し、前記少なくとも１つのセンサノードに、対応するセンサエージェントおよび対応するデータを代替センサノードに転送するよう命令するように構成されたセンサノードマネージャと、
を備える処理ノード。
【請求項２】
前記第１のセンサノードからの前記測定データをキャッシュするように構成されたキャッシュをさらに備える請求項１に記載の処理ノード。
【請求項３】
前記処理ノードは、さらに、少なくとも１つの第２のセンサノードのキャッシュから前記第１のセンサノードの前記測定データを取り出すように構成されたことを特徴とする請求項１に記載の処理ノード。
【請求項４】
前記センサノードマネージャは、さらに、前記第１のセンサノードに対応する、前記測定データを受信することが可能な他のセンサノードを識別するように構成されたことを特徴とする請求項３に記載の処理ノード。
【請求項５】
前記センサノードマネージャは、さらに、前記少なくとも１つのセンサノードの動作可能状態が低電力モード、スリープモード、またはステルスモードであることに応答して、前記少なくとも１つのセンサノードに、前記対応するセンサエージェントおよび前記対応するデータを転送するよう命令するように構成されたことを特徴とする請求項１に記載の処理ノード。
【請求項６】
イベントを測定することに応答して、センサデータを生成するように構成されたセンサと、
前記センサデータをキャッシュに格納するように構成されたセンサエージェントと、
前記センサエージェントに、前記キャッシュに格納される前記センサデータを備えるエージェントアーカイブパッケージを作成するよう指示するように構成された制御モジュールと、
を備えるセンサノード。
【請求項７】
前記センサエージェントに新規センサデータを通知するように構成された獲得モジュールをさらに備えることを特徴とする請求項６に記載のセンサノード。
【請求項８】
前記制御モジュールは、さらに、前記エージェントアーカイブパッケージおよび前記センサエージェントを宛先センサノードに転送するように構成されたことを特徴とする請求項７に記載のセンサノード。
【請求項９】
前記センサエージェント、前記センサエージェントと関連付けられたセンサノード、または少なくとも別のセンサエージェントと関連付けられた少なくとも別のセンサノードと通信するように構成されたメッセージ経路指定モジュールをさらに備えることを特徴とする請求項７に記載のセンサノード。
【請求項１０】
前記制御モジュールは、さらに、前記センサエージェントがアクティブであることを判定することに応答し、かつ、付近センサノードから前記エージェントアーカイブパッケージを受信することに応答して、前記センサエージェントを非活動化し、前記エージェントアーカイブパッケージに含まれる新規センサエージェントを初期化するように構成されたことを特徴とする請求項６に記載のセンサノード。
【請求項１１】
前記新規センサエージェントは、対応するホームセンサノードから、または前記キャッシュに格納される前記センサデータからのリアルタイムのセンサデータに応答して動作するように構成されたことを特徴とする請求項１０に記載のセンサノード。
【請求項１２】
センサを使用してイベントを測定することに応答して、センサデータを生成するステップと、
前記センサデータをキャッシュに格納するステップと、
前記センサエージェントに、前記キャッシュに格納される前記センサデータを備えるエージェントアーカイブパッケージを作成するよう指示するステップと、
を備える方法。
【請求項１３】
前記センサエージェントに新規センサデータを通知するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記エージェントアーカイブパッケージおよびセンサノードからの前記センサエージェントを宛先センサノードに転送するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１５】
前記センサエージェント、少なくとも別のセンサエージェントと関連付けられた少なくとも別のセンサノード、または前記少なくとも別のセンサノードと通信するために、前記センサノードにおいて、経路指定通信モジュールを使用するステップをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記センサエージェントがアクティブであることを判定することに応答し、かつ、付近センサノードから前記エージェントアーカイブパッケージを受信することに応答して、前記センサエージェントを非活動化するステップと、
前記エージェントアーカイブパッケージに含まれる新規センサエージェントを初期化するステップと、
をさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１７】
対応するホームセンサノードから、または前記キャッシュに格納される前記センサデータからのリアルタイムのセンサデータに応答して、前記新規センサエージェントを操作するステップをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
第１のセンサノードが動作を実行するように設定する、格納されるコンピュータ実行可能な命令を備えるコンピュータ可読記憶デバイスであって、前記動作は、
センサを使用してイベントを測定することに応答して、センサデータを生成するステップと、
前記センサデータをキャッシュに格納するステップと、
センサエージェントに、前記キャッシュに格納される前記センサデータを備えるエージェントアーカイブパッケージを作成するよう指示するステップと、
を備えることを特徴とするコンピュータ可読記憶デバイス。
【請求項１９】
前記第１のセンサノードが、前記センサエージェントに新規センサデータを通知するステップをさらに備える動作を実行するように構成されたことを特徴とする請求項１８に記載のコンピュータ可読記憶デバイス。
【請求項２０】
前記第１のセンサノードが、前記エージェントアーカイブパッケージおよびセンサノードからの前記センサエージェントを宛先センサノードに転送するステップをさらに備える動作を実行するように構成されたことを特徴とする請求項１８に記載のコンピュータ可読記憶デバイス。
【請求項２１】
前記第１のセンサノードが、前記センサエージェント、少なくとも別のセンサエージェントと関連付けられた少なくとも別のセンサノード、または前記少なくとも別のセンサノードと通信するために、前記センサノードにおいて、経路指定通信モジュールを使用するステップをさらに備える動作を実行するように構成されたことを特徴とする請求項２０に記載のコンピュータ可読記憶デバイス。
【請求項２２】
前記第１のセンサノードが、
前記センサエージェントがアクティブであることを判定することに応答し、かつ、付近センサノードから前記エージェントアーカイブパッケージを受信することに応答して、前記センサエージェントを非活動化するステップと、
前記エージェントアーカイブパッケージに含まれる新規センサエージェントを初期化するステップと、
をさらに備える動作を実行するように構成されたことを特徴とする請求項１８に記載のコンピュータ可読記憶デバイス。
【請求項２３】
前記第１のセンサノードが、対応するホームセンサノードから、または前記キャッシュに格納される前記センサデータからのリアルタイムのセンサデータに応答して、前記新規センサエージェントを操作するステップをさらに備える動作を実行するように構成されたことを特徴とする請求項２２に記載のコンピュータ可読記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のリモートセンサからのデータを測定し処理するシステムおよび方法に関する。
【背景技術】
【０００２】
組込みリアルタイム環境におけるエージェントベースの処理および推論は、応答性に関して、正確な現在のデータに依存する。ただし、頻繁なセンサ読取りまたはデータを求めるネットワーク要求は、エネルギーもしくは帯域幅コスト、ＲＦ干渉、ステルス要件、または他の理由により、望ましくない場合がある。解決するべき問題は、エージェント／アプリケーションによる、リアルタイムの応答性の必要性と、頻繁でないセンサ読取りまたはネットワーク要求を行う必要性とをどのようにしてバランスをとって、他のシステム要件を満たすかである。
【０００３】
ＬＥＡＰ（Ｌｏｗ  Ｐｏｗｅｒ  Ｅｎｅｒｇｙ  Ａｗａｒｅ  Ｐｒｏｃｅｓｓｉｎｇ）は、組込み環境におけるエネルギー使用を監視し制御するための、典型的な既存ソリューションの例である。ＬＥＡＰは、アプリケーションが、個々のノードにおけるエネルギー使用を監視し制御することを可能にする。ただし、リアルタイムの状況におけるエージェント／ノードの応答性の問題には対処しない。ＬＥＡＰタイプのソリューションに伴うさらなる問題は、データがあまりにも古く、または入手不可能であるときは、時間を重視する状況では応答性がなくなることであり、エージェントに、エネルギー／帯域幅コストまたは他の問題を考慮せずに、センサ観察またはネットワーク要求を行わせてしまうことである。
【０００４】
求められているのは、センサネットワークの動作を向上させるシステムおよび方法である。
【発明の概要】
【０００５】
本開示の一態様では、測定を実施するように構成された少なくとも１つのセンサをそれぞれが備える複数のセンサノードを備えるシステムが提供され、前記複数のセンサノードの少なくとも第１のセンサノードは、第１のセンサノードのセンサの測定値を示すデータを少なくとも１つの第２のセンサノードに送信するように構成される。このシステムは、第１のセンサノードのセンサの測定値を示すデータを含むデータを複数のセンサノードから受信し、受信されたデータを使って計算を実施するように構成された少なくとも１つの処理ノードをさらに備える。処理ノードは、リアルタイムのデータが第１のセンサノードから入手可能かどうか判定し、入手可能でない場合は、第１のセンサノードのキャッシュ済みデータを取り出し、キャッシュ済みデータを使って計算を実施するようにも構成され得る。
【０００６】
本開示の一態様では、センサノードネットワークにおいてデータを処理する方法が提供される。この方法は、少なくとも第１のセンサノード上で処理モードおよび非処理モードを確立すること、第１のセンサノードの少なくとも１つのセンサからのデータ測定値を記録すること、第１のセンサノードの処理モードを判定すること、第１のセンサノードが処理モードにある場合、第１のセンサノードにおいて少なくとも１つのデータ測定値を処理して結果を生成すること、ならびに第１のセンサノードが非処理モードにある場合、少なくとも１つのデータ測定値の処理を第２のセンサノードに転送し、第２のセンサノードにおいて少なくとも１つのデータ測定値を処理して、第２のセンサノードにおいて結果を生成することを含む。
【０００７】
本開示の一態様では、第１のセンサノードのプロセッサによって実行するためのコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、こうした命令は、実行されると、プロセッサに、少なくとも１つのデータ測定値をセンサから受信させ、少なくとも１つのデータ測定値を、プロセッサに動作可能に関連づけられたメモリ中に格納させ、少なくとも１つのデータ測定値を含むデータメッセージを生成させ、データメッセージを、第１のセンサノードからリモートな少なくとも１つの第２のセンサノードの第２のセンサノードプロセッサまで伝達させる。
【図面の簡単な説明】
【０００８】
【図１】センサノードネットワーク、処理ノードおよび外部システムを示す図である。
【図２】センサノードネットワーク上でデータを処理する方法を示す図である。
【図３】処理エージェントおよびセンサノードマネージャを含む処理ノードを示す図である。
【図４】処理ノード上でデータを処理する第１の方法を示す図である。
【図５】処理ノード上でデータを処理する第２の方法を示す図である。
【図６】センサノードを示す図である。
【図７】エージェントアーカイブパッケージの転送を示す図である。
【図８】ノード動作コントローラの動作を示す図である。
【図９】センサノード内でノードコマンドを処理するプロセスを示す図である。
【図１０】センサノード内部のデータ獲得モジュールからのデータイベントを処理するプロセスを示す図である。
【図１１】外部センサノードからのデータイベントを処理するプロセスを示す図である。
【図１２】センサノード内部のセンサエージェントからの結果イベントを処理するプロセスを示す図である。
【図１３】外部センサノードからの結果イベントを処理するプロセスを示す図である。
【図１４】第１のセンサノードおよび第２のセンサノードのプロセッサおよびメモリを示す図である。
【図１５】図１４の第１のセンサノードのプロセッサ上で実行可能な命令セットを示す図である。
【図１６】データイベントからの結果イベントを処理するプロセスを示す図である。
【発明を実施するための形態】
【０００９】
ここで、例示の目的でのみ、具体的実施形態および添付の図面に対して参照を行う。
【００１０】
本開示の実施形態によるシステムまたはネットワーク１０を、図１に示す。システム１０は、ネットワーク接続されたセンサノード１２および少なくとも１つの処理ノード１４からなる分散型エージェントベース処理環境を提供する。各センサノード１２は、直接観察（センサ読取り／ネットワーク要求）により、または付近ノードからデータを受信することにより、エージェント１６に関するデータを取得する。エージェントは、必要に応じて、センサノード１２または処理ノード１４上でホスティングされ得る。さらに、以下で詳細に説明するように、エージェント１６は、センサノード１２の間、ならびにセンサノード１２と処理ノード１４との間を移動可能であってもよい。処理ノード１４は、結果要求を受信するために、外部システム１８と通信することができ、結果要求に応答して、処理ノード１４は、計算された結果を公開することになる。
【００１１】
上述した問題に対する解決法では、エージェントは、既に入手可能であり得る、付近センサ／ノードからの情報を検討可能なように構成される。システムは、特にエネルギーに敏感なノードにおける、エネルギー／ネットワーク使用を削減するための分散処理をサポートするようにも構成される。ネットワーク１０上でデータを処理する方法を、図２のフローチャート１００に示す。ステップ１０１で、センサノードが、処理モードおよび非処理モードをもって確立され得る。処理モードは、フル電力モードなど、センサノードのセンサエージェントがセンサ測定データを処理することが可能な、どのモードでもよい。非処理モードは、センサノードがセンサ測定データを処理することが可能でない、低電力、スリープまたはステルスモードでもよい。センサ測定データが第１のセンサノードにおいて記録される（ステップ１０２）と、センサノードが処理モードにあるか、それとも非処理モードにあるかに関して判定が行われる（ステップ１０３）。センサノードが処理モードにある場合、データは、センサノード内部のセンサエージェントによって処理されて、結果を生成し得る（ステップ１０４）。センサノードが非処理モードにある場合、測定データの処理は、第２のセンサノードに転送されてもよく（ステップ１０５）、そうすることによって、第２のセンサノードにおいて結果が生成される（ステップ１０６）。
【００１２】
様々な実施形態において、システム１０は、以下のように構成され得る。
【００１３】
‐センサノード１２における直接観察により取得されたデータは、付近ノードに伝播され得る。
【００１４】
‐センサノード上でのセンサエージェント処理は、陳腐化データ（stale data）を扱うことが可能である。
【００１５】
‐センサノードからすべてのデータが入手可能なわけではないとき、処理ノード上での処理エージェント処理は、結果を生成することが可能である。
【００１６】
‐処理ノードのデータが陳腐化（stale）していても、処理ノードからのリアルタイムの応答性が保証される。
【００１７】
‐センサノードは、付近ノードからの問合せ／更新により間接的にデータを更新する。
【００１８】
‐センサノードは、ローカルなセンサ観察またはネットワーク要求により、データを直接更新する。
【００１９】
‐直接観察／要求により、データをいつ更新するかという判定は、エージェントによる最新の正確なデータの必要性とのバランスがとられたエネルギー／効率問題に基づく。
【００２０】
‐センサノードは、エージェントの結果を付近ノードに複製することができる。
【００２１】
‐センサエージェントは、処理を継続可能であることが必要な場合、センサノードの間を動くことができる。
【００２２】
エネルギーおよびネットワーク効率を高めるために、センサノード１２または処理ノード１４上のエージェントは、不正確または陳腐化データであっても計算を実施し続けるように構成され得る。センサ読取り／ネットワーク要求をいつ行うかという判定は、センサ密度、観察頻度、時間に伴うセンサ読取り値の変化、トリガされた動作状態またはフェーズ、センサの信頼性、観察を実施するためのエネルギーコスト、およびネットワーク要求を介して受信された観察またはデータをブロードキャストするための帯域幅／エネルギーコストなど、様々な要因に基づいて計算される。センサノード上でのエージェントによる計算の結果は、他のセンサノードおよび／または、一または複数の処理ノードに伝播することができ、こうしたノードにおいて、処理エージェントは、データ集約／融合、高水準推論、および最終的な分析などの計算を実施することになる。処理ノードは、全体的システム状態と、応答性、ステルス、バッテリ寿命などの目標を最もよく達成するためのシステム要件とに基づいて、センサノードの挙動を制御する。
【００２３】
一実施形態では、センサノード１２上のエージェント１６は、処理を実施するために異なるセンサノードに動かされてもよく、処理ノードにおいてキャッシュされ、後で再度活動化されてもよい。たとえば、ノードＡが現在低電力モードで動作中であり、処理される必要があるセンサ／ネットワークデータを受信した場合、ノードＡ上のエージェントは、データを受け取り、既に高電力モードにあるノードＢに移ればよい。または、ノードＡが低電力で稼動中である場合、システムは、センサ読取り結果をノードＡからノードＢに送信すればよく、ノードＢにおいてエージェントはデータを操作する。
【００２４】
処理ノードの動作
処理ノード１４の実施形態を、図３に示す。処理ノード１４は、センサノード群の管理を担うが、ノード群のうち１つのセンサノード１２を図３に示してある。処理ノード１４内のセンサノードマネージャ３１が、応答性、電力効率、エージェント結果の正確さ／信頼性、または他の要件の、判定されたシステム目標に基づいて、センサノード１２を制御する。マネージャ３１は、センサを可能／不能にし、データを伝播し、エージェント結果（通信規則）および動作状態（スリープ、警備、ブロードキャスト、警戒）を扱うなど、あらゆる挙動を制御するためのコマンドを、センサノード１２上のノード動作コントローラ６３（後で説明する）に送信する。
【００２５】
処理ノード１４は、処理エージェント３２も操作する。センサノードエージェントからの結果は、処理エージェント３２によってのみ操作される。処理エージェント３２は、センサノードから受信されたセンサ結果イベント３６に対して、データ集約、データ融合、および高水準推論などの計算を実施して、リアルタイムに作用され得るリアルタイムの知識を生じさせる。処理エージェント３２によって生じた結果３７は、センサノードマネージャ３１に伝達され、マネージャ３１は、この情報を使って、センサノードを動的に管理する。
【００２６】
上述したように、処理ノード、および特に処理エージェントは、外部からのリアルタイムな結果要求を扱うように構成される。処理エージェントによる処理の実施形態を、図４のフローチャート２００に示す。フローチャート２００は、リアルタイムに結果を求める、処理ノード１４への問合せに関する。ステップ２０１で、処理エージェントは、計算された結果を求める、外部からのリアルタイム要求を受信する。処理エージェントは、２０２で、計算された結果が入手可能かどうか調べる。計算された結果が入手可能な場合、計算された結果は、結果要求への応答として公開される（ステップ２１０）。ステップ２０２で、計算された結果が入手可能でない場合、処理エージェントは、２０３で、たとえばリアルタイムのデータを求めて各関連センサノードをポーリングすることによって、結果データが入手可能かどうか調べる。不十分なデータしか入手可能でない場合、たとえば、１つまたは複数のセンサノードが低電力モード、ステルスモードにあり、接触不可能である場合などは、処理エージェントは、２０４で、キャッシュ済みデータを調べて、どのようなリアルタイムデータが入手可能であるかを補足する。２０５で、キャッシュ済みデータが見つかり、使用可能である場合、２０６で、入手可能なリアルタイムのデータは、キャッシュ済みデータで補足される。キャッシュ済みデータが入手可能でない場合、２０７で、処理エージェントは、キャッシュ済みデータまたはリアルタイムのデータを求めて付近センサノードまたは他の処理ノードをポーリングし、こうしたデータは、ステップ２０８で、任意のリアルタイムデータに追加される。このように、求められるすべてのデータは、センサからの現在の更新、処理ノードのキャッシュ、または付近ノードのリアルタイムデータのいずれかから入手可能である。求められたデータがすべて入手可能になると、そのデータは２０９で処理され、結果は、たとえば、外部システムからの、計算された結果を求める要求に応答するメッセージとして処理結果イベントを送信することによって、２１０で公開される。
【００２７】
上記例が示すように、処理エージェントは、センサノードからのリアルタイムのデータが入手可能でないときは、陳腐化データを使って機能することが可能である。図５は、どのように処理エージェント３２がセンサノードからのデータをキャッシュするように構成されるかを示すフローチャート３００を挙げる。ステップ３０１で、処理ノードは、センサノードから結果イベントを受信する。処理エージェントは、３０２で、結果イベントが有効かどうか判定する。結果が有効でない場合、結果イベントは３０８で破棄される。結果イベントは、有効である場合は３０３で保存される。結果イベントのデータは、３０４で処理され、３０５で格納される。処理結果は、３０６で関連センサノードマネージャに配送され得る。処理エージェントは次いで、満了した、または古くなった結果イベントを３０７で取り除く。プロセス３００は通常、シャットダウンするまで連続動作する。処理された結果は、ＧＵＩ、大容量記憶装置などに送信され得る。データ処理は、システム１０の具体的な適用例および実装形態に依存するであろうし、データ集約、データ融合、複合イベント処理などを含み得る。処理中に使われるデータは、センサノードから導出されたデータに限定されるわけではなく、他のソースからのデータも含み得る。
【００２８】
センサノードの動作
センサノード１２の実施形態を、図６に示す。各センサノード１２は、少なくとも１つのセンサ６１を含み、一または複数のノードのセンサ６１によって生じたデータを操作するようにプログラムされた、１つまたは複数のセンサエージェント６２の動作をサポートする。センサ６１は、熱、光、加速、音、化学物質の存在などのような、物理的刺激または信号を検出または測定し、測定データに変換する。各センサノード１２は、少なくとも１つの他のセンサノードおよび／または処理ノードと通信可能なように構成される。ノード動作コントローラ６３は、各センサノードの機能を制御する。コントローラ６３は、センサ６１を可能／不能にし、データを送信／受信し、それ以外には、低電力やスリープモードなどの非処理モードでいつ動作するかを含む、ノードの動作のすべての側面を管理する。
【００２９】
図１６は、センサノードの要素の間の関係をさらに示す。センサノード１２上のセンサエージェント６２は、データ獲得モジュール６４からデータ４１を受信する。データ獲得モジュール６４は、外部データソース１６４から取得されたセンサ読取り値６１、「付近」ノード、および／またはネットワーク要求１６３からのデータを受信する。「付近」という用語は、位置情報提供の用語において一般的に定義されるが、他のノードへのネットワークホップ、他のノードと通信するためのエネルギーコストなどの用語で定義されてもよい。データ獲得モジュール６４は、新規データが入手可能なとき、センサエージェント６２にデータイベント４１を送信することによってエージェントに通知を行う。エージェントは、１６７で、現在のデータを求めて、データ獲得モジュール６４に直接ポーリングし、または問い合わせることができる。データイベント４１は、付近ノードまたは処理ノードに伝播してもよい。センサエージェント６２は、データ獲得モジュール６４からデータを受信すると、データを処理し、結果イベント４２を生じさせる。センサエージェント６２は、結果イベント４２を、エージェントのノード上の結果イベントキャッシュ６５に送信する。結果イベント４２は、付近センサノード１６１または処理ノード１４に伝播されてもよい。
【００３０】
上述したように、各ノードは、センサ、処理、エージェント挙動、および通信を含む、ノードの動作を制御するノード動作コントローラ６３を有する。ノード動作コントローラ６３は、データイベント４１および結果イベント４２を、常駐センサエージェントによるキャッシュまたは処理のために、付近ノードに伝播すればよい。コントローラ６３は、エネルギー節約の必要性、動作フェーズ、または処理ノードのセンサノードマネージャ３１によって命じられた他の指示に基づいて、ノードのセンサエージェント６２を別のノードに動かしてもよい。
【００３１】
センサエージェント６２は、動くようにとの通知を受信すると、処理を停止し、エージェントの現在の処理状態の「スナップショット」を表すエージェントアーカイブパッケージ４３を作成する。エージェントアーカイブパッケージ４３は、エージェントが別のノード上で処理を再開するのに必要なすべてのデータを含む。ノード動作コントローラ６３は次いで、エージェントアーカイブパッケージ４３を宛先ノードに送信する。エージェントアーカイブパッケージ４３は、たとえばセンサエージェントが現在のノード上で動作不可能な場合、別のノードに処理が転送されるようにするための手段を提供する。センサエージェントは、現在のセンサノードが非処理（省電力）モードに切り換えられている最中であり、またはセンサエージェントが結果を送信するためにワイドエリアネットワークアクセスを必要とするが現在のセンサノードがワイドエリアネットワークアクセスをもっていないなど、いくつかの理由で動かされ得る。
【００３２】
センサノードの間、ならびにセンサノードと処理ノードとの間のあらゆる通信は、各ノード内部のメッセージ経路指定モジュール６６を使って実施される。メッセージ経路指定モジュール６６は、エージェントおよびノードと通信するのに使われる。ネットワーク１０内の各エージェントは、一意の識別子をもつ。ネットワーク１０内の各ノードも、一意の識別子をもつ。各エージェントは、その「ホーム」ノードならびにその現在のノードの素性（identity）を知っている。各ノードは、付近ノードとの接続性状況について把握し続ける。メッセージ経路指定モジュール６６は、この情報を使って、メッセージ経路指定テーブル６７を構築する。モジュール６６は、メッセージ経路指定テーブル６７を使って、どのようにしてエージェントまたはノードにデータを送信するか判定する。メッセージ経路指定モジュール６６は、特に以下のケースで使われ得る。
【００３３】
‐別のノードとの間でデータイベント４１を送信／受信する。
【００３４】
‐別のノードとの間で結果イベント４２を送信／受信する。
【００３５】
‐別のノードとの間でエージェントアーカイブパッケージ４３を送信／受信する。
【００３６】
‐ノードコマンド４４を受信する。
【００３７】
‐メッセージの道程中の次のノードにメッセージをフォワードする。
【００３８】
あるセンサノードから別のセンサノードに転送されるデータは通常、センサノードのセンサからのセンサ測定データから導出されたデータ、またはセンサ測定データを示すデータである。転送データは、未加工の測定データでもよく、センサエージェントなどによる、ある程度の処理を経たもの、したがって結果データからなるものでもよい。
【００３９】
メッセージ経路指定モジュール６６は、通信モジュール６８を使って、１つまたは複数の接続ノードの通信モジュール６８にデータを送信する。通信モジュール６８は、メッセージの送信および受信の両方を行うように構成される。モジュール６８は、例としてＴＣＰ／ＩＰ、ＵＤＰ、ＨＴＴＰ、ＳＯＡＰなどを含む、適切な任意の通信プロトコルを使ってデータを送信するのに、二地点間またはブロードキャスト通信を使うことができる。
【００４０】
メッセージ経路指定モジュール６６は、データ（データイベント４１、結果イベント４２またはエージェントアーカイブパッケージ４３）を送信するとき、以下の情報でメッセージ４５を構築する。
【００４１】
‐一連のノード識別子からなる、メッセージ向けの道程。道程は、１つまたは複数のホップだけ離れたノードへの経路を格納するように構成されたメッセージ経路指定モジュール６６を使って計算される。
【００４２】
‐メッセージタイプ（データイベント、結果イベント、エージェントアーカイブパッケージ、データイベント要求、結果イベント要求）。
【００４３】
‐メッセージの宛先ノード。
【００４４】
‐メッセージの起点ノード。
【００４５】
‐メッセージに関する、ノードに一意の識別子。
【００４６】
‐何個の「ホップ」分だけ宛先ノードが離れているか、またはホップの数を示す所定の値が未知である。
【００４７】
‐メッセージ内容。
【００４８】
‐完全メッセージのバイトサイズ。
【００４９】
他の情報がメッセージ中で提供されてもよいことが当業者には理解されよう。
【００５０】
ノードの通信モジュール６８は、メッセージを受信すると、メッセージがそのノードに向けられたものかどうか判定する。そのノードに向けられたものである場合は、メッセージをメッセージハンドラ６９にディスパッチする。そのノードに向けられたものでない場合は、メッセージをメッセージ経路指定モジュール６６にディスパッチし、モジュール６６が、メッセージをフォワードするかどうか、またはどのようにしてフォワードするか判定する。
【００５１】
センサエージェントを転送するプロセスを、図７のフローチャート４００に示す。ステップ４０１で、センサノード１２のノード動作コントローラ６３が、付近センサノードからエージェントアーカイブパッケージ４３を受信する。ノード動作コントローラ６３が、ステップ４０２で、センサノード上に現在常駐するセンサエージェントがアクティブであると判定した場合、常駐センサエージェントは４０５で停止される。新規センサエージェントが次いで、センサノード上で初期化され（ステップ４０３）、ステップ４０４で開始される。新規センサエージェントは、開始されると、エージェントアーカイブパッケージ４３のどの処理動作も続けることができる。さらに、センサエージェントは、動作し続け、その「ホーム」センサノードのセンサにあるリアルタイムのセンサデータから、またはセンサエージェントが転送された先のセンサノードのキャッシュに格納されているようなキャッシュ済みデータから結果イベントを生じさせることができる。
【００５２】
処理ノード１４のセンサノードマネージャ３１の詳細なプロセスを、図８のフローチャート５００に示す。ステップ５０１で、センサノードマネージャ３１は、センサノード１２から結果イベント４２を受信する。センサノードマネージャ３１は、結果イベントを使って、新たなシステム状態を５０２で判定する。５０３で判定されるように、新たなシステム状態が状況変化を求めない場合、プロセスはステップ５０１に戻り、次の結果イベント４２を待ち受ける。そうでなければ、５０４で判定されるように、状況変化が活動の増大を表す場合、センサノードマネージャ３１は、スリープ中のセンサノードを活動化するためのノードコマンド４４を送信する。プロセスは次いで、ステップ５０１に戻り、次の結果イベントを待ち受ける。
【００５３】
ノード動作コントローラ６３が、プロセッサノード１４からノードコマンド４４を受信すると、ノードコマンドは、図９に示すフローチャート６００の方法に従って処理され得る。ステップ６０１で、ノード動作コントローラ６３は、ノードコマンド４４を受信する。ノード動作コントローラ６３は、ノードコマンド４４がセンサコマンドであるかどうか判定し（ステップ６０２）、センサコマンドである場合、センサ６１の状態をコマンドに従って変える（ステップ６０３）。ノード動作コントローラ６３は、ノードコマンド４４がセンサエージェントコマンドであるかどうか判定し（ステップ６０４）、センサエージェントコマンドである場合、センサエージェントを開始し、停止し、移動させ、またはそうでなければエージェントの状態をコマンドに従って変える（ステップ６０５）。ノード動作コントローラ６３は、ノードコマンド４４が通信規則コマンドであるかどうか判定し（ステップ６０６）、通信規則コマンドである場合、通信規則をデータイベントおよび／または結果イベント向けに更新する（ステップ６０７）。
【００５４】
上述したように、ノード動作コントローラは、センサノード１２上で様々なイベントを処理するように構成される。データイベントを処理する方法を、図１０のフローチャート７００に示す。ステップ７０１で、ノード動作コントローラ６３は、データ獲得モジュール６４からデータイベント４１を受信する。ノード動作コントローラ６３は、センサエージェント６２がアクティブであるかどうか判定し（ステップ７０２）、アクティブである場合、データイベントをセンサエージェント６２に渡す（ステップ７０３）。データイベントが１つまたは複数の他のノードに公開されるべきである場合（ステップ７０４）、データイベントメッセージが７０５で作成され、メッセージ経路指定テーブル６７に渡される。
【００５５】
図１１は、プロセス７００で作成されたメッセージなどのデータイベントメッセージが、通信モジュール６８からノード動作コントローラ６３によって受信されたときのプロセス８００の実施形態を示す。データイベントメッセージは、ステップ８０１で通信モジュール６８から受信される。ノードのセンサエージェント６２が、ステップ８０２でアクティブであると判定された場合、データイベントは、処理のためにセンサエージェント６２に渡され、次いで、プロセスは８０４で停止する。
【００５６】
ノード動作コントローラは、センサエージェントから結果イベントを受信するように構成すればよく、その実施形態を、図１２のプロセス９００に示す。ステップ９０１で、ノード動作コントローラ６３は、ノードのセンサエージェント６２によって生成された結果イベント４２を受信する。結果イベント４２は、ステップ９０２で結果イベントキャッシュ６５に格納される。ステップ９０３で、現ノードが低電力、スリープまたはステルスモードにある間に結果イベントが入手可能であるように、結果イベントが他のノードに公開されるべきであると判定された場合、結果イベントメッセージが９０４で作成され、９０５でメッセージ経路指定テーブルに渡される。ノード動作コントローラが、図１３のプロセス１０００のステップ１００１に示すように、通信モジュール６８経由で別のノードから結果イベントメッセージを受信した場合、ノード動作コントローラは、結果イベントキャッシュ６５への結果イベントの格納に進んでよい（ステップ１００２）。
【００５７】
上述したプロセスの多くにおいて、データイベント４１および結果イベント４２は、他のノードに公開されて、それぞれのノードの結果イベントキャッシュ６５に格納される。つまり、結果イベントキャッシュ６５は、常駐ノードのデータイベント４１および結果イベント４２ならびに付近ノードから渡されたデータイベントおよび結果イベントを格納することができる。したがって、ノードが、たとえば低電力モード、スリープモード、ステルスモードにあることにより、または通信エラーにより利用不可能な場合、そのノードへのデータ要求は、付近ノードの結果イベントキャッシュから、比較的古い、すなわち「陳腐化」データを取り出すことによって補足され得る。
【００５８】
上述したようなシステムは、産業プラント監視および制御、戦場監督、交通監督および制御、ならびにリモートセンサが使われ得る他の環境など、多くの状況で展開することができる。具体的な一例が、「スマート」地雷が展開される戦場環境である。各地雷は、１つまたは複数の受動センサが人員または車両の存在を検出するように装備された「センサノード」として作用する。各地雷は、そのセンサが周期的にアクティブになる節電モードで動作するように構成される。処理ノードも、地雷原の一部として展開される。アクティブな地雷のセンサが車両または人間の存在を検出すると、地雷は、付近の地雷に、また、付近の地雷を通して処理ノードにメッセージをブロードキャストする。処理ノードは、地雷からメッセージを受信し、必要な場合、現在アクティブでない地雷にあるセンサをリモート操作により活動化して、地雷原に入った車両／人間の数、密度、方向および速度を計算するのに必要な情報を取得する。センサの１つが応答しない場合、処理ノードは、そのセンサのキャッシュ済みデータを調べて、そのセンサが使用可能であるかどうか確かめればよい（たとえば、データは、最近キャッシュされ、または正常範囲にある、など）。キャッシュ済みデータが使用可能な場合、そのキャッシュ済みデータを使って、処理を続ける。そうでなければ、結果は、付近センサのデータに基づいて計算される。計算された情報に基づいて、処理ノードは、地雷に爆発するようシグナリングする。
【００５９】
本システムの実施形態は、エージェント応答性の必要性、およびいつ、どれだけ頻繁にセンサ読取りまたはネットワーク要求が実施されるかを制御する必要性の両方に対処する。記載したシステム１０の具体的利点は、以下を含む。
【００６０】
エージェントを、「陳腐化」データで機能させて、リアルタイムに応答できるようにする。
【００６１】
必要な場合は、異なるノードへのエージェントの移動をサポートして、動作を続けさせる。
【００６２】
入力データおよびエージェント結果両方を、複数のノードに渡って複製して、システムの応答性および回復性を確実にする。
【００６３】
ただ１つのノード上ではなく、ノードネットワークに渡って効率を最適化する。
【００６４】
一実施形態では、センサノードは、それぞれ、図１４に示すように、メモリ１６２に動作可能に関連づけられた第１のセンサノードプロセッサ１６１などのプロセッサを含み得る。メモリ１６２は、プロセッサ１６１上で実行可能な命令を格納することができる。さらに、メモリ１６２は、センサノードキャッシュの要素を提供し得る。第１のセンサノードプロセッサ１６１は、第２のセンサノードのプロセッサ１７１と通信することができ、プロセッサ１７１も、それ自体のメモリ１７２に動作可能に関連づけられ得る。第１のセンサノードプロセッサ１６１と第２のセンサノードプロセッサ１７１は通常、互いとはリモートであり、適切な通信リンク１６５を通して通信することができる。「リモート」という用語は、本明細書では、リモートプロセッサが、センサ読取りが行われるセンサノードから離れた何らかのセンサノードにあることを記述するのに使われ、したがって、データメッセージおよび／または結果メッセージの転送には、無線、赤外線または固定回線媒体などの媒体を介した通信が求められる。
【００６５】
第１のセンサノードプロセッサ１６１上で実行され得る命令セット１１００を、図１５のフローチャートに示す。具体的には、実行されると、命令セット１１００は、第１のセンサノードプロセッサに、センサから少なくとも１つのデータ測定値を受信させ（ステップ１１０１）、データ測定値をメモリ１６２中に格納させる（ステップ１１０２）。プロセッサ１６１は次いで、データ測定値を含むデータメッセージを生成し（ステップ１１０３）、データメッセージを第２のセンサノードプロセッサ１７１に伝達すればよい。命令セット１１００は、測定データを処理するエージェントを実行する命令も含んでよく、結果を第２のセンサノードプロセッサ１７１に送信する。代替的または追加的に、命令セット１１００は、第２のセンサノードプロセッサ１７１がエージェントを実行することができるように、エージェントを含むエージェントアーカイブパッケージを第２のセンサノードプロセッサ１７１に送信する命令を含み得る。代替的または追加的に、命令セット１１００は、第２のセンサノードプロセッサ１７１または代替センサノードからエージェントアーカイブパッケージを受信し、エージェントアーカイブパッケージに入れて受信されたエージェントを第１のセンサノードプロセッサ１６１上で実行する命令を含み得る。
【００６６】
本発明の実施形態を添付の図面に例示し、上記の説明に記載したが、本発明は、開示した実施形態に限定されず、添付の請求項によって説明され定義される本発明の精神から逸脱することなく、多数の再構成、修正形態、および代替形態が可能であることを理解されたい。たとえば、本発明で可能なことは、ブロック、モジュール、プロセッサまたはメモリの１つまたは複数によって、十分および／または部分的に実施することができる。また、こうした可能なことは、現在の方式でも分散方式でも、また、情報を提供し、かつ／または受信することが可能な任意の装置上で、または装置を介して実施することができる。さらに、ある特定のやり方で示したが、本発明の範囲から逸脱することなく、様々なモジュールまたはブロックは配置し直してよい。さらに、ある特定のやり方で示したが、本発明を遂行するため、追加の公知特徴を本発明に提供するため、および／または本発明をより効率的にするために、より多いまたはより少ないモジュールおよび接続を本発明で使用してもよい。また、様々なモジュールの間を送信される情報は、データネットワーク、インターネット、インターネットプロトコルネットワーク、無線ソース、および有線ソースの少なくとも１つにより、また、複数のプロトコルにより、モジュールの間で送信することができる。
【図１】
0005584308.tif 000002
【図２】
0005584308.tif 000003
【図３】
0005584308.tif 000004
【図４】
0005584308.tif 000005
【図５】
0005584308.tif 000006
【図６】
0005584308.tif 000007
【図７】
0005584308.tif 000008
【図８】
0005584308.tif 000009
【図９】
0005584308.tif 000010
【図１０】
0005584308.tif 000011
【図１１】
0005584308.tif 000012
【図１２】
0005584308.tif 000013
【図１３】
0005584308.tif 000014
【図１４】
0005584308.tif 000015
【図１５】
0005584308.tif 000016
【図１６】
0005584308.tif 000017