説明

センサネットワークを操作するシステムおよび方法

センサノードネットワークにおいて、ホストセンサノードが低電力モードにあるときなどに、センサノードデータを処理するためにセンサエージェントが代替センサノードに転送され得るようにセンサノードを構成することによって、動作効率を向上することができる。ネットワークの処理ノードは、センサノードからリアルタイムのデータを取り出すように構成され得るが、リアルタイムのデータが入手可能でない場合は、処理ノードは、プロセッサノードのキャッシュから取り出されたキャッシュ済みデータまたは付近センサノードのデータに対して計算を実施することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数のリモートセンサからのデータを測定し処理するシステムおよび方法に関する。
【背景技術】
【0002】
組込みリアルタイム環境におけるエージェントベースの処理および推論は、応答性に関して、正確な現在のデータに依存する。ただし、頻繁なセンサ読取りまたはデータを求めるネットワーク要求は、エネルギーもしくは帯域幅コスト、RF干渉、ステルス要件、または他の理由により、望ましくない場合がある。解決するべき問題は、エージェント/アプリケーションによる、リアルタイムの応答性の必要性と、頻繁でないセンサ読取りまたはネットワーク要求を行う必要性とをどのようにしてバランスをとって、他のシステム要件を満たすかである。
【0003】
LEAP(Low Power Energy Aware Processing)は、組込み環境におけるエネルギー使用を監視し制御するための、典型的な既存ソリューションの例である。LEAPは、アプリケーションが、個々のノードにおけるエネルギー使用を監視し制御することを可能にする。ただし、リアルタイムの状況におけるエージェント/ノードの応答性の問題には対処しない。LEAPタイプのソリューションに伴うさらなる問題は、データがあまりにも古く、または入手不可能であるときは、時間を重視する状況では応答性がなくなることであり、エージェントに、エネルギー/帯域幅コストまたは他の問題を考慮せずに、センサ観察またはネットワーク要求を行わせてしまうことである。
【0004】
求められているのは、センサネットワークの動作を向上させるシステムおよび方法である。
【発明の概要】
【0005】
本開示の一態様では、測定を実施するように構成された少なくとも1つのセンサをそれぞれが備える複数のセンサノードを備えるシステムが提供され、前記複数のセンサノードの少なくとも第1のセンサノードは、第1のセンサノードのセンサの測定値を示すデータを少なくとも1つの第2のセンサノードに送信するように構成される。このシステムは、第1のセンサノードのセンサの測定値を示すデータを含むデータを複数のセンサノードから受信し、受信されたデータを使って計算を実施するように構成された少なくとも1つの処理ノードをさらに備える。処理ノードは、リアルタイムのデータが第1のセンサノードから入手可能かどうか判定し、入手可能でない場合は、第1のセンサノードのキャッシュ済みデータを取り出し、キャッシュ済みデータを使って計算を実施するようにも構成され得る。
【0006】
本開示の一態様では、センサノードネットワークにおいてデータを処理する方法が提供される。この方法は、少なくとも第1のセンサノード上で処理モードおよび非処理モードを確立すること、第1のセンサノードの少なくとも1つのセンサからのデータ測定値を記録すること、第1のセンサノードの処理モードを判定すること、第1のセンサノードが処理モードにある場合、第1のセンサノードにおいて少なくとも1つのデータ測定値を処理して結果を生成すること、ならびに第1のセンサノードが非処理モードにある場合、少なくとも1つのデータ測定値の処理を第2のセンサノードに転送し、第2のセンサノードにおいて少なくとも1つのデータ測定値を処理して、第2のセンサノードにおいて結果を生成することを含む。
【0007】
本開示の一態様では、第1のセンサノードのプロセッサによって実行するためのコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、こうした命令は、実行されると、プロセッサに、少なくとも1つのデータ測定値をセンサから受信させ、少なくとも1つのデータ測定値を、プロセッサに動作可能に関連づけられたメモリ中に格納させ、少なくとも1つのデータ測定値を含むデータメッセージを生成させ、データメッセージを、第1のセンサノードからリモートな少なくとも1つの第2のセンサノードの第2のセンサノードプロセッサまで伝達させる。
【図面の簡単な説明】
【0008】
【図1】センサノードネットワーク、処理ノードおよび外部システムを示す図である。
【図2】センサノードネットワーク上でデータを処理する方法を示す図である。
【図3】処理エージェントおよびセンサノードマネージャを含む処理ノードを示す図である。
【図4】処理ノード上でデータを処理する第1の方法を示す図である。
【図5】処理ノード上でデータを処理する第2の方法を示す図である。
【図6】センサノードを示す図である。
【図7】エージェントアーカイブパッケージの転送を示す図である。
【図8】ノード動作コントローラの動作を示す図である。
【図9】センサノード内でノードコマンドを処理するプロセスを示す図である。
【図10】センサノード内部のデータ獲得モジュールからのデータイベントを処理するプロセスを示す図である。
【図11】外部センサノードからのデータイベントを処理するプロセスを示す図である。
【図12】センサノード内部のセンサエージェントからの結果イベントを処理するプロセスを示す図である。
【図13】外部センサノードからの結果イベントを処理するプロセスを示す図である。
【図14】第1のセンサノードおよび第2のセンサノードのプロセッサおよびメモリを示す図である。
【図15】図14の第1のセンサノードのプロセッサ上で実行可能な命令セットを示す図である。
【図16】データイベントからの結果イベントを処理するプロセスを示す図である。
【発明を実施するための形態】
【0009】
ここで、例示の目的でのみ、具体的実施形態および添付の図面に対して参照を行う。
【0010】
本開示の実施形態によるシステムまたはネットワーク10を、図1に示す。システム10は、ネットワーク接続されたセンサノード12および少なくとも1つの処理ノード14からなる分散型エージェントベース処理環境を提供する。各センサノード12は、直接観察(センサ読取り/ネットワーク要求)により、または付近ノードからデータを受信することにより、エージェント16に関するデータを取得する。エージェントは、必要に応じて、センサノード12または処理ノード14上でホスティングされ得る。さらに、以下で詳細に説明するように、エージェント16は、センサノード12の間、ならびにセンサノード12と処理ノード14との間を移動可能であってもよい。処理ノード14は、結果要求を受信するために、外部システム18と通信することができ、結果要求に応答して、処理ノード14は、計算された結果を公開することになる。
【0011】
上述した問題に対する解決法では、エージェントは、既に入手可能であり得る、付近センサ/ノードからの情報を検討可能なように構成される。システムは、特にエネルギーに敏感なノードにおける、エネルギー/ネットワーク使用を削減するための分散処理をサポートするようにも構成される。ネットワーク10上でデータを処理する方法を、図2のフローチャート100に示す。ステップ101で、センサノードが、処理モードおよび非処理モードをもって確立され得る。処理モードは、フル電力モードなど、センサノードのセンサエージェントがセンサ測定データを処理することが可能な、どのモードでもよい。非処理モードは、センサノードがセンサ測定データを処理することが可能でない、低電力、スリープまたはステルスモードでもよい。センサ測定データが第1のセンサノードにおいて記録される(ステップ102)と、センサノードが処理モードにあるか、それとも非処理モードにあるかに関して判定が行われる(ステップ103)。センサノードが処理モードにある場合、データは、センサノード内部のセンサエージェントによって処理されて、結果を生成し得る(ステップ104)。センサノードが非処理モードにある場合、測定データの処理は、第2のセンサノードに転送されてもよく(ステップ105)、そうすることによって、第2のセンサノードにおいて結果が生成される(ステップ106)。
【0012】
様々な実施形態において、システム10は、以下のように構成され得る。
【0013】
‐センサノード12における直接観察により取得されたデータは、付近ノードに伝播され得る。
【0014】
‐センサノード上でのセンサエージェント処理は、陳腐化データ(stale data)を扱うことが可能である。
【0015】
‐センサノードからすべてのデータが入手可能なわけではないとき、処理ノード上での処理エージェント処理は、結果を生成することが可能である。
【0016】
‐処理ノードのデータが陳腐化(stale)していても、処理ノードからのリアルタイムの応答性が保証される。
【0017】
‐センサノードは、付近ノードからの問合せ/更新により間接的にデータを更新する。
【0018】
‐センサノードは、ローカルなセンサ観察またはネットワーク要求により、データを直接更新する。
【0019】
‐直接観察/要求により、データをいつ更新するかという判定は、エージェントによる最新の正確なデータの必要性とのバランスがとられたエネルギー/効率問題に基づく。
【0020】
‐センサノードは、エージェントの結果を付近ノードに複製することができる。
【0021】
‐センサエージェントは、処理を継続可能であることが必要な場合、センサノードの間を動くことができる。
【0022】
エネルギーおよびネットワーク効率を高めるために、センサノード12または処理ノード14上のエージェントは、不正確または陳腐化データであっても計算を実施し続けるように構成され得る。センサ読取り/ネットワーク要求をいつ行うかという判定は、センサ密度、観察頻度、時間に伴うセンサ読取り値の変化、トリガされた動作状態またはフェーズ、センサの信頼性、観察を実施するためのエネルギーコスト、およびネットワーク要求を介して受信された観察またはデータをブロードキャストするための帯域幅/エネルギーコストなど、様々な要因に基づいて計算される。センサノード上でのエージェントによる計算の結果は、他のセンサノードおよび/または、一または複数の処理ノードに伝播することができ、こうしたノードにおいて、処理エージェントは、データ集約/融合、高水準推論、および最終的な分析などの計算を実施することになる。処理ノードは、全体的システム状態と、応答性、ステルス、バッテリ寿命などの目標を最もよく達成するためのシステム要件とに基づいて、センサノードの挙動を制御する。
【0023】
一実施形態では、センサノード12上のエージェント16は、処理を実施するために異なるセンサノードに動かされてもよく、処理ノードにおいてキャッシュされ、後で再度活動化されてもよい。たとえば、ノードAが現在低電力モードで動作中であり、処理される必要があるセンサ/ネットワークデータを受信した場合、ノードA上のエージェントは、データを受け取り、既に高電力モードにあるノードBに移ればよい。または、ノードAが低電力で稼動中である場合、システムは、センサ読取り結果をノードAからノードBに送信すればよく、ノードBにおいてエージェントはデータを操作する。
【0024】
処理ノードの動作
処理ノード14の実施形態を、図3に示す。処理ノード14は、センサノード群の管理を担うが、ノード群のうち1つのセンサノード12を図3に示してある。処理ノード14内のセンサノードマネージャ31が、応答性、電力効率、エージェント結果の正確さ/信頼性、または他の要件の、判定されたシステム目標に基づいて、センサノード12を制御する。マネージャ31は、センサを可能/不能にし、データを伝播し、エージェント結果(通信規則)および動作状態(スリープ、警備、ブロードキャスト、警戒)を扱うなど、あらゆる挙動を制御するためのコマンドを、センサノード12上のノード動作コントローラ63(後で説明する)に送信する。
【0025】
処理ノード14は、処理エージェント32も操作する。センサノードエージェントからの結果は、処理エージェント32によってのみ操作される。処理エージェント32は、センサノードから受信されたセンサ結果イベント36に対して、データ集約、データ融合、および高水準推論などの計算を実施して、リアルタイムに作用され得るリアルタイムの知識を生じさせる。処理エージェント32によって生じた結果37は、センサノードマネージャ31に伝達され、マネージャ31は、この情報を使って、センサノードを動的に管理する。
【0026】
上述したように、処理ノード、および特に処理エージェントは、外部からのリアルタイムな結果要求を扱うように構成される。処理エージェントによる処理の実施形態を、図4のフローチャート200に示す。フローチャート200は、リアルタイムに結果を求める、処理ノード14への問合せに関する。ステップ201で、処理エージェントは、計算された結果を求める、外部からのリアルタイム要求を受信する。処理エージェントは、202で、計算された結果が入手可能かどうか調べる。計算された結果が入手可能な場合、計算された結果は、結果要求への応答として公開される(ステップ210)。ステップ202で、計算された結果が入手可能でない場合、処理エージェントは、203で、たとえばリアルタイムのデータを求めて各関連センサノードをポーリングすることによって、結果データが入手可能かどうか調べる。不十分なデータしか入手可能でない場合、たとえば、1つまたは複数のセンサノードが低電力モード、ステルスモードにあり、接触不可能である場合などは、処理エージェントは、204で、キャッシュ済みデータを調べて、どのようなリアルタイムデータが入手可能であるかを補足する。205で、キャッシュ済みデータが見つかり、使用可能である場合、206で、入手可能なリアルタイムのデータは、キャッシュ済みデータで補足される。キャッシュ済みデータが入手可能でない場合、207で、処理エージェントは、キャッシュ済みデータまたはリアルタイムのデータを求めて付近センサノードまたは他の処理ノードをポーリングし、こうしたデータは、ステップ208で、任意のリアルタイムデータに追加される。このように、求められるすべてのデータは、センサからの現在の更新、処理ノードのキャッシュ、または付近ノードのリアルタイムデータのいずれかから入手可能である。求められたデータがすべて入手可能になると、そのデータは209で処理され、結果は、たとえば、外部システムからの、計算された結果を求める要求に応答するメッセージとして処理結果イベントを送信することによって、210で公開される。
【0027】
上記例が示すように、処理エージェントは、センサノードからのリアルタイムのデータが入手可能でないときは、陳腐化データを使って機能することが可能である。図5は、どのように処理エージェント32がセンサノードからのデータをキャッシュするように構成されるかを示すフローチャート300を挙げる。ステップ301で、処理ノードは、センサノードから結果イベントを受信する。処理エージェントは、302で、結果イベントが有効かどうか判定する。結果が有効でない場合、結果イベントは308で破棄される。結果イベントは、有効である場合は303で保存される。結果イベントのデータは、304で処理され、305で格納される。処理結果は、306で関連センサノードマネージャに配送され得る。処理エージェントは次いで、満了した、または古くなった結果イベントを307で取り除く。プロセス300は通常、シャットダウンするまで連続動作する。処理された結果は、GUI、大容量記憶装置などに送信され得る。データ処理は、システム10の具体的な適用例および実装形態に依存するであろうし、データ集約、データ融合、複合イベント処理などを含み得る。処理中に使われるデータは、センサノードから導出されたデータに限定されるわけではなく、他のソースからのデータも含み得る。
【0028】
センサノードの動作
センサノード12の実施形態を、図6に示す。各センサノード12は、少なくとも1つのセンサ61を含み、一または複数のノードのセンサ61によって生じたデータを操作するようにプログラムされた、1つまたは複数のセンサエージェント62の動作をサポートする。センサ61は、熱、光、加速、音、化学物質の存在などのような、物理的刺激または信号を検出または測定し、測定データに変換する。各センサノード12は、少なくとも1つの他のセンサノードおよび/または処理ノードと通信可能なように構成される。ノード動作コントローラ63は、各センサノードの機能を制御する。コントローラ63は、センサ61を可能/不能にし、データを送信/受信し、それ以外には、低電力やスリープモードなどの非処理モードでいつ動作するかを含む、ノードの動作のすべての側面を管理する。
【0029】
図16は、センサノードの要素の間の関係をさらに示す。センサノード12上のセンサエージェント62は、データ獲得モジュール64からデータ41を受信する。データ獲得モジュール64は、外部データソース164から取得されたセンサ読取り値61、「付近」ノード、および/またはネットワーク要求163からのデータを受信する。「付近」という用語は、位置情報提供の用語において一般的に定義されるが、他のノードへのネットワークホップ、他のノードと通信するためのエネルギーコストなどの用語で定義されてもよい。データ獲得モジュール64は、新規データが入手可能なとき、センサエージェント62にデータイベント41を送信することによってエージェントに通知を行う。エージェントは、167で、現在のデータを求めて、データ獲得モジュール64に直接ポーリングし、または問い合わせることができる。データイベント41は、付近ノードまたは処理ノードに伝播してもよい。センサエージェント62は、データ獲得モジュール64からデータを受信すると、データを処理し、結果イベント42を生じさせる。センサエージェント62は、結果イベント42を、エージェントのノード上の結果イベントキャッシュ65に送信する。結果イベント42は、付近センサノード161または処理ノード14に伝播されてもよい。
【0030】
上述したように、各ノードは、センサ、処理、エージェント挙動、および通信を含む、ノードの動作を制御するノード動作コントローラ63を有する。ノード動作コントローラ63は、データイベント41および結果イベント42を、常駐センサエージェントによるキャッシュまたは処理のために、付近ノードに伝播すればよい。コントローラ63は、エネルギー節約の必要性、動作フェーズ、または処理ノードのセンサノードマネージャ31によって命じられた他の指示に基づいて、ノードのセンサエージェント62を別のノードに動かしてもよい。
【0031】
センサエージェント62は、動くようにとの通知を受信すると、処理を停止し、エージェントの現在の処理状態の「スナップショット」を表すエージェントアーカイブパッケージ43を作成する。エージェントアーカイブパッケージ43は、エージェントが別のノード上で処理を再開するのに必要なすべてのデータを含む。ノード動作コントローラ63は次いで、エージェントアーカイブパッケージ43を宛先ノードに送信する。エージェントアーカイブパッケージ43は、たとえばセンサエージェントが現在のノード上で動作不可能な場合、別のノードに処理が転送されるようにするための手段を提供する。センサエージェントは、現在のセンサノードが非処理(省電力)モードに切り換えられている最中であり、またはセンサエージェントが結果を送信するためにワイドエリアネットワークアクセスを必要とするが現在のセンサノードがワイドエリアネットワークアクセスをもっていないなど、いくつかの理由で動かされ得る。
【0032】
センサノードの間、ならびにセンサノードと処理ノードとの間のあらゆる通信は、各ノード内部のメッセージ経路指定モジュール66を使って実施される。メッセージ経路指定モジュール66は、エージェントおよびノードと通信するのに使われる。ネットワーク10内の各エージェントは、一意の識別子をもつ。ネットワーク10内の各ノードも、一意の識別子をもつ。各エージェントは、その「ホーム」ノードならびにその現在のノードの素性(identity)を知っている。各ノードは、付近ノードとの接続性状況について把握し続ける。メッセージ経路指定モジュール66は、この情報を使って、メッセージ経路指定テーブル67を構築する。モジュール66は、メッセージ経路指定テーブル67を使って、どのようにしてエージェントまたはノードにデータを送信するか判定する。メッセージ経路指定モジュール66は、特に以下のケースで使われ得る。
【0033】
‐別のノードとの間でデータイベント41を送信/受信する。
【0034】
‐別のノードとの間で結果イベント42を送信/受信する。
【0035】
‐別のノードとの間でエージェントアーカイブパッケージ43を送信/受信する。
【0036】
‐ノードコマンド44を受信する。
【0037】
‐メッセージの道程中の次のノードにメッセージをフォワードする。
【0038】
あるセンサノードから別のセンサノードに転送されるデータは通常、センサノードのセンサからのセンサ測定データから導出されたデータ、またはセンサ測定データを示すデータである。転送データは、未加工の測定データでもよく、センサエージェントなどによる、ある程度の処理を経たもの、したがって結果データからなるものでもよい。
【0039】
メッセージ経路指定モジュール66は、通信モジュール68を使って、1つまたは複数の接続ノードの通信モジュール68にデータを送信する。通信モジュール68は、メッセージの送信および受信の両方を行うように構成される。モジュール68は、例としてTCP/IP、UDP、HTTP、SOAPなどを含む、適切な任意の通信プロトコルを使ってデータを送信するのに、二地点間またはブロードキャスト通信を使うことができる。
【0040】
メッセージ経路指定モジュール66は、データ(データイベント41、結果イベント42またはエージェントアーカイブパッケージ43)を送信するとき、以下の情報でメッセージ45を構築する。
【0041】
‐一連のノード識別子からなる、メッセージ向けの道程。道程は、1つまたは複数のホップだけ離れたノードへの経路を格納するように構成されたメッセージ経路指定モジュール66を使って計算される。
【0042】
‐メッセージタイプ(データイベント、結果イベント、エージェントアーカイブパッケージ、データイベント要求、結果イベント要求)。
【0043】
‐メッセージの宛先ノード。
【0044】
‐メッセージの起点ノード。
【0045】
‐メッセージに関する、ノードに一意の識別子。
【0046】
‐何個の「ホップ」分だけ宛先ノードが離れているか、またはホップの数を示す所定の値が未知である。
【0047】
‐メッセージ内容。
【0048】
‐完全メッセージのバイトサイズ。
【0049】
他の情報がメッセージ中で提供されてもよいことが当業者には理解されよう。
【0050】
ノードの通信モジュール68は、メッセージを受信すると、メッセージがそのノードに向けられたものかどうか判定する。そのノードに向けられたものである場合は、メッセージをメッセージハンドラ69にディスパッチする。そのノードに向けられたものでない場合は、メッセージをメッセージ経路指定モジュール66にディスパッチし、モジュール66が、メッセージをフォワードするかどうか、またはどのようにしてフォワードするか判定する。
【0051】
センサエージェントを転送するプロセスを、図7のフローチャート400に示す。ステップ401で、センサノード12のノード動作コントローラ63が、付近センサノードからエージェントアーカイブパッケージ43を受信する。ノード動作コントローラ63が、ステップ402で、センサノード上に現在常駐するセンサエージェントがアクティブであると判定した場合、常駐センサエージェントは405で停止される。新規センサエージェントが次いで、センサノード上で初期化され(ステップ403)、ステップ404で開始される。新規センサエージェントは、開始されると、エージェントアーカイブパッケージ43のどの処理動作も続けることができる。さらに、センサエージェントは、動作し続け、その「ホーム」センサノードのセンサにあるリアルタイムのセンサデータから、またはセンサエージェントが転送された先のセンサノードのキャッシュに格納されているようなキャッシュ済みデータから結果イベントを生じさせることができる。
【0052】
処理ノード14のセンサノードマネージャ31の詳細なプロセスを、図8のフローチャート500に示す。ステップ501で、センサノードマネージャ31は、センサノード12から結果イベント42を受信する。センサノードマネージャ31は、結果イベントを使って、新たなシステム状態を502で判定する。503で判定されるように、新たなシステム状態が状況変化を求めない場合、プロセスはステップ501に戻り、次の結果イベント42を待ち受ける。そうでなければ、504で判定されるように、状況変化が活動の増大を表す場合、センサノードマネージャ31は、スリープ中のセンサノードを活動化するためのノードコマンド44を送信する。プロセスは次いで、ステップ501に戻り、次の結果イベントを待ち受ける。
【0053】
ノード動作コントローラ63が、プロセッサノード14からノードコマンド44を受信すると、ノードコマンドは、図9に示すフローチャート600の方法に従って処理され得る。ステップ601で、ノード動作コントローラ63は、ノードコマンド44を受信する。ノード動作コントローラ63は、ノードコマンド44がセンサコマンドであるかどうか判定し(ステップ602)、センサコマンドである場合、センサ61の状態をコマンドに従って変える(ステップ603)。ノード動作コントローラ63は、ノードコマンド44がセンサエージェントコマンドであるかどうか判定し(ステップ604)、センサエージェントコマンドである場合、センサエージェントを開始し、停止し、移動させ、またはそうでなければエージェントの状態をコマンドに従って変える(ステップ605)。ノード動作コントローラ63は、ノードコマンド44が通信規則コマンドであるかどうか判定し(ステップ606)、通信規則コマンドである場合、通信規則をデータイベントおよび/または結果イベント向けに更新する(ステップ607)。
【0054】
上述したように、ノード動作コントローラは、センサノード12上で様々なイベントを処理するように構成される。データイベントを処理する方法を、図10のフローチャート700に示す。ステップ701で、ノード動作コントローラ63は、データ獲得モジュール64からデータイベント41を受信する。ノード動作コントローラ63は、センサエージェント62がアクティブであるかどうか判定し(ステップ702)、アクティブである場合、データイベントをセンサエージェント62に渡す(ステップ703)。データイベントが1つまたは複数の他のノードに公開されるべきである場合(ステップ704)、データイベントメッセージが705で作成され、メッセージ経路指定テーブル67に渡される。
【0055】
図11は、プロセス700で作成されたメッセージなどのデータイベントメッセージが、通信モジュール68からノード動作コントローラ63によって受信されたときのプロセス800の実施形態を示す。データイベントメッセージは、ステップ801で通信モジュール68から受信される。ノードのセンサエージェント62が、ステップ802でアクティブであると判定された場合、データイベントは、処理のためにセンサエージェント62に渡され、次いで、プロセスは804で停止する。
【0056】
ノード動作コントローラは、センサエージェントから結果イベントを受信するように構成すればよく、その実施形態を、図12のプロセス900に示す。ステップ901で、ノード動作コントローラ63は、ノードのセンサエージェント62によって生成された結果イベント42を受信する。結果イベント42は、ステップ902で結果イベントキャッシュ65に格納される。ステップ903で、現ノードが低電力、スリープまたはステルスモードにある間に結果イベントが入手可能であるように、結果イベントが他のノードに公開されるべきであると判定された場合、結果イベントメッセージが904で作成され、905でメッセージ経路指定テーブルに渡される。ノード動作コントローラが、図13のプロセス1000のステップ1001に示すように、通信モジュール68経由で別のノードから結果イベントメッセージを受信した場合、ノード動作コントローラは、結果イベントキャッシュ65への結果イベントの格納に進んでよい(ステップ1002)。
【0057】
上述したプロセスの多くにおいて、データイベント41および結果イベント42は、他のノードに公開されて、それぞれのノードの結果イベントキャッシュ65に格納される。つまり、結果イベントキャッシュ65は、常駐ノードのデータイベント41および結果イベント42ならびに付近ノードから渡されたデータイベントおよび結果イベントを格納することができる。したがって、ノードが、たとえば低電力モード、スリープモード、ステルスモードにあることにより、または通信エラーにより利用不可能な場合、そのノードへのデータ要求は、付近ノードの結果イベントキャッシュから、比較的古い、すなわち「陳腐化」データを取り出すことによって補足され得る。
【0058】
上述したようなシステムは、産業プラント監視および制御、戦場監督、交通監督および制御、ならびにリモートセンサが使われ得る他の環境など、多くの状況で展開することができる。具体的な一例が、「スマート」地雷が展開される戦場環境である。各地雷は、1つまたは複数の受動センサが人員または車両の存在を検出するように装備された「センサノード」として作用する。各地雷は、そのセンサが周期的にアクティブになる節電モードで動作するように構成される。処理ノードも、地雷原の一部として展開される。アクティブな地雷のセンサが車両または人間の存在を検出すると、地雷は、付近の地雷に、また、付近の地雷を通して処理ノードにメッセージをブロードキャストする。処理ノードは、地雷からメッセージを受信し、必要な場合、現在アクティブでない地雷にあるセンサをリモート操作により活動化して、地雷原に入った車両/人間の数、密度、方向および速度を計算するのに必要な情報を取得する。センサの1つが応答しない場合、処理ノードは、そのセンサのキャッシュ済みデータを調べて、そのセンサが使用可能であるかどうか確かめればよい(たとえば、データは、最近キャッシュされ、または正常範囲にある、など)。キャッシュ済みデータが使用可能な場合、そのキャッシュ済みデータを使って、処理を続ける。そうでなければ、結果は、付近センサのデータに基づいて計算される。計算された情報に基づいて、処理ノードは、地雷に爆発するようシグナリングする。
【0059】
本システムの実施形態は、エージェント応答性の必要性、およびいつ、どれだけ頻繁にセンサ読取りまたはネットワーク要求が実施されるかを制御する必要性の両方に対処する。記載したシステム10の具体的利点は、以下を含む。
【0060】
エージェントを、「陳腐化」データで機能させて、リアルタイムに応答できるようにする。
【0061】
必要な場合は、異なるノードへのエージェントの移動をサポートして、動作を続けさせる。
【0062】
入力データおよびエージェント結果両方を、複数のノードに渡って複製して、システムの応答性および回復性を確実にする。
【0063】
ただ1つのノード上ではなく、ノードネットワークに渡って効率を最適化する。
【0064】
一実施形態では、センサノードは、それぞれ、図14に示すように、メモリ162に動作可能に関連づけられた第1のセンサノードプロセッサ161などのプロセッサを含み得る。メモリ162は、プロセッサ161上で実行可能な命令を格納することができる。さらに、メモリ162は、センサノードキャッシュの要素を提供し得る。第1のセンサノードプロセッサ161は、第2のセンサノードのプロセッサ171と通信することができ、プロセッサ171も、それ自体のメモリ172に動作可能に関連づけられ得る。第1のセンサノードプロセッサ161と第2のセンサノードプロセッサ171は通常、互いとはリモートであり、適切な通信リンク165を通して通信することができる。「リモート」という用語は、本明細書では、リモートプロセッサが、センサ読取りが行われるセンサノードから離れた何らかのセンサノードにあることを記述するのに使われ、したがって、データメッセージおよび/または結果メッセージの転送には、無線、赤外線または固定回線媒体などの媒体を介した通信が求められる。
【0065】
第1のセンサノードプロセッサ161上で実行され得る命令セット1100を、図15のフローチャートに示す。具体的には、実行されると、命令セット1100は、第1のセンサノードプロセッサに、センサから少なくとも1つのデータ測定値を受信させ(ステップ1101)、データ測定値をメモリ162中に格納させる(ステップ1102)。プロセッサ161は次いで、データ測定値を含むデータメッセージを生成し(ステップ1103)、データメッセージを第2のセンサノードプロセッサ171に伝達すればよい。命令セット1100は、測定データを処理するエージェントを実行する命令も含んでよく、結果を第2のセンサノードプロセッサ171に送信する。代替的または追加的に、命令セット1100は、第2のセンサノードプロセッサ171がエージェントを実行することができるように、エージェントを含むエージェントアーカイブパッケージを第2のセンサノードプロセッサ171に送信する命令を含み得る。代替的または追加的に、命令セット1100は、第2のセンサノードプロセッサ171または代替センサノードからエージェントアーカイブパッケージを受信し、エージェントアーカイブパッケージに入れて受信されたエージェントを第1のセンサノードプロセッサ161上で実行する命令を含み得る。
【0066】
本発明の実施形態を添付の図面に例示し、上記の説明に記載したが、本発明は、開示した実施形態に限定されず、添付の請求項によって説明され定義される本発明の精神から逸脱することなく、多数の再構成、修正形態、および代替形態が可能であることを理解されたい。たとえば、本発明で可能なことは、ブロック、モジュール、プロセッサまたはメモリの1つまたは複数によって、十分および/または部分的に実施することができる。また、こうした可能なことは、現在の方式でも分散方式でも、また、情報を提供し、かつ/または受信することが可能な任意の装置上で、または装置を介して実施することができる。さらに、ある特定のやり方で示したが、本発明の範囲から逸脱することなく、様々なモジュールまたはブロックは配置し直してよい。さらに、ある特定のやり方で示したが、本発明を遂行するため、追加の公知特徴を本発明に提供するため、および/または本発明をより効率的にするために、より多いまたはより少ないモジュールおよび接続を本発明で使用してもよい。また、様々なモジュールの間を送信される情報は、データネットワーク、インターネット、インターネットプロトコルネットワーク、無線ソース、および有線ソースの少なくとも1つにより、また、複数のプロトコルにより、モジュールの間で送信することができる。

【特許請求の範囲】
【請求項1】
測定を実施するように構成された少なくとも1つのセンサをそれぞれが備える複数のセンサノードであって、前記複数のセンサノードの少なくとも第1のセンサノードは、前記第1のセンサノードのセンサの測定値を示すデータを少なくとも1つの第2のセンサノードに送信するように構成される、複数のセンサノードと、
前記第1のセンサノードのセンサの測定値を示すデータを含むデータを複数のセンサノードから受信し、前記受信されたデータを使って計算を実施するように構成された少なくとも1つの処理ノードと
を備えるシステムであって、
前記処理ノードは、
リアルタイムのデータが前記第1のセンサノードから入手可能かどうか判定し、
リアルタイムのデータが前記第1のセンサノードから入手可能でない場合、前記第1のセンサノードのキャッシュ済みデータを取り出し、前記キャッシュ済みデータを使って前記計算を実施するように構成されていることを特徴とするシステム。
【請求項2】
前記処理ノードはキャッシュを備え、前記処理ノードは、前記第1のセンサノードからのデータをキャッシュし、前記キャッシュから第1のセンサノードデータを取り出すように構成されていることを特徴とする請求項1に記載のシステム。
【請求項3】
前記処理ノードは、前記少なくとも1つの第2のセンサノードのキャッシュから前記第1のセンサノードのデータを取り出すように構成されていることを特徴とする請求項1に記載のシステム。
【請求項4】
前記処理ノードは、前記第1のセンサノードのセンサの測定値を示す前記データを前記第1のセンサノードが送信する先である1つまたは複数のセンサノードを判定するセンサノードマネージャを備えることを特徴とする請求項3に記載のシステム。
【請求項5】
複数の前記センサノードは、そのそれぞれのセンサ測定データを、少なくとも1つの他のセンサノードに転送するように構成されていることを特徴とする請求項1に記載のシステム。
【請求項6】
前記第1のセンサノードは、そのそれぞれのセンサの前記測定データを処理して結果を生じさせるセンサエージェントを備え、前記第1のセンサノードのセンサの測定値を示す前記データは、前記結果を含むことを特徴とする請求項1に記載のシステム。
【請求項7】
前記処理ノードは、
少なくとも1つのセンサノードの動作可能状態を判定し、
前記少なくとも1つのセンサノードに、そのそれぞれのセンサエージェントおよびデータを、前記センサエージェントによる前記データの処理のために代替センサノードに転送するよう命令するように構成されていることを特徴とする請求項6に記載のシステム。
【請求項8】
前記処理ノードは、前記センサノードに、前記動作可能状態が低電力モード、スリープモードまたはステルスモードの少なくとも1つであると判定される場合は前記センサエージェントおよびデータを転送するよう命令することを特徴とする請求項7に記載のシステム。
【請求項9】
前記第1のセンサノードのセンサの測定値を示す前記データは、センサデータを含むことを特徴とする請求項1に記載のシステム。
【請求項10】
センサノードネットワークにおいてデータを処理する方法であって、
少なくとも第1のセンサノード上で処理モードおよび非処理モードを確立するステップと、
前記第1のセンサノードの少なくとも1つのセンサからのデータ測定値を記録するステップと、
前記第1のセンサノードの処理モードを判定するステップと、
前記第1のセンサノードが処理モードにある場合、前記第1のセンサノードにおいて前記少なくとも1つのデータ測定値を処理して、結果を生成するステップと、
前記第1のセンサノードが非処理モードにある場合、前記少なくとも1つのデータ測定値の前記処理を第2のセンサノードに転送し、前記第2のセンサノードにおいて前記少なくとも1つのデータ測定値を処理して、前記第2のセンサノードにおいて前記結果を生成するステップと
を含むことを特徴とする方法。
【請求項11】
前記第1のセンサノードで前記少なくとも1つのデータ測定値を処理することは、前記少なくとも1つのデータ測定値を処理するセンサエージェントを実行することを含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記少なくとも1つのデータ測定値の前記処理を前記第2のセンサノードに転送することは、前記センサエージェントおよび前記少なくとも1つのデータ測定値を前記第2のセンサノードに転送することを含むことを特徴とする請求項11に記載の方法。
【請求項13】
前記第2のセンサノードの常駐センサエージェントが前記第2のセンサノード上でアクティブかどうか判定するステップと、
前記常駐センサエージェントがアクティブな場合、前記常駐センサエージェントを停止するステップと
を含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記少なくとも1つのデータ測定値の前記処理を転送することは、前記第1のセンサノードを管理する処理ノードからのコマンドに応答して起こることを特徴とする請求項10に記載の方法。
【請求項15】
前記第2のセンサノード内で生成された前記結果を、前記処理ノードに送信するステップを含むことを特徴とする請求項14に記載の方法。
【請求項16】
前記少なくとも1つのデータ測定値を第2の格納ノードに送信するステップと、
前記少なくとも1つのデータ測定値を前記第2のセンサノードのキャッシュに格納するステップと
を含むことを特徴とする請求項10に記載の方法。
【請求項17】
第1のセンサノードのプロセッサによって実行するためのコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記命令は、実行されると、前記プロセッサに、
少なくとも1つのデータ測定値をセンサから受信させ、
前記少なくとも1つのデータ測定値を、前記プロセッサに動作可能に関連づけられたメモリ中に格納させ、
前記少なくとも1つのデータ測定値を含むデータメッセージを生成させ、
前記データメッセージを、前記第1のセンサノードからリモートな少なくとも1つの第2のセンサノードの第2のセンサノードプロセッサまで伝達させることを特徴とするコンピュータ可読媒体。
【請求項18】
前記第1のセンサノードの前記プロセッサによって実行するためのコンピュータ実行可能命令を含み、前記命令は、実行されると、前記プロセッサに、
前記少なくとも1つのデータ測定値を処理して結果を生じさせるためのエージェントを実行させ、
結果メッセージを生成させ、
前記結果メッセージを前記第2のセンサノードプロセッサまで送信させることを特徴とする請求項17に記載のコンピュータ可読媒体。
【請求項19】
前記第1のセンサノードの前記プロセッサによって実行するためのコンピュータ実行可能命令を含み、前記命令は、実行されると、前記プロセッサに、
前記エージェントおよび前記少なくとも1つのデータ測定値を含むエージェントアーカイブパッケージを生成させ、
前記エージェントアーカイブパッケージを前記第2のセンサノードプロセッサまで送信させることを特徴とする請求項18に記載のコンピュータ可読媒体。
【請求項20】
前記プロセッサによって実行するためのコンピュータ実行可能命令を含み、前記命令は、実行されると、前記プロセッサに、
前記プロセッサによって実行可能な少なくとも1つのエージェントおよび少なくとも1つのデータ測定値を含むエージェントアーカイブパッケージを第2のプロセッサから受信させ、
前記エージェントアーカイブパッケージの前記少なくとも1つのデータ測定値を処理するために前記少なくとも1つのエージェントを実行させることを特徴とする請求項17に記載のコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公表番号】特表2013−513296(P2013−513296A)
【公表日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2012−542025(P2012−542025)
【出願日】平成22年11月5日(2010.11.5)
【国際出願番号】PCT/US2010/055676
【国際公開番号】WO2011/068628
【国際公開日】平成23年6月9日(2011.6.9)
【出願人】(512146395)オソカド リモート リミテッド ライアビリティ カンパニー (6)
【Fターム(参考)】