(57)【特許請求の範囲】
【請求項１】
ネットワークを介して、複数のアプリケーションに対応するデータを送信するノード装置であって、
複数のセンサからのセンサデータを受信し、複数の前記センサの種別を判別するセンサ種別判別部と、
前記センサ種別判別部の判別結果に基づき、前記センサデータを種別に応じて蓄積するバッファリング部と、
要求される前記アプリケーションに対応した演算種類と演算起動条件に従い、前記バッファリング部に蓄積された前記センサデータに対する演算処理を実行する、複数の演算器を有する演算部と、
前記演算種類に対応し、前記演算器の起動順序を蓄積する演算ルートテーブルと、
前記演算ルートテーブルに基づき、前記演算種類に対応する前記演算器を順次起動する起動判定部と、
前記演算部の演算結果に基づき、前記演算結果の送信条件を判定する送信条件判定部と、
前記演算結果が、前記送信条件を満たすか否かを判定する判定演算を蓄積する送信条件比較テーブルを備え、
前記送信条件判定部は、前記送信条件比較テーブル基づき、前記演算結果の送信を判定する、
ことを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置であって、
前記アプリケーション毎の前記センサデータに対する演算種類と、当該演算種類を実行するための演算起動条件を蓄積する演算起動設定テーブルを更に備え、
前記起動判定部は、前記演算起動設定テーブルに基づき、前記バッファリング部に蓄積された前記センサデータ各々に対する演算起動を判定する、
ことを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置であって、
前記起動判定部は、前記演算結果に基づき、前記演算起動条件を変更する、
ことを特徴とするノード装置。
【請求項４】
請求項３に記載のノード装置であって、
前記ネットワークを介して管理ノードから、複数の前記テーブルの蓄積情報が配信された際、
前記演算部の演算を停止し、前記蓄積情報に基づき、複数の前記テーブルを更新する、
ことを特徴とするノード装置。
【請求項５】
請求項３に記載のノード装置であって、
前記ネットワークを介して管理ノードから、前記演算部の前記演算器のコンフィグレーションデータが配信された際、
前記センサからの前記センサデータの受信、及び前記演算部の演算を停止し、前記コンフィグレーションデータに基づく、再コンフィグレーションを実行する、
ことを特徴とするノード装置。
【請求項６】
請求項１に記載のノード装置であって、
前記演算部における演算結果に基づき、前記演算結果の送信先と送信データタイプを含む送信条件を蓄積する送信条件テーブルを更に備え、
前記送信条件判定部は、前記送信条件テーブルに基づき、前記送信先に前記送信データタイプに対応するデータを送信するよう制御する、
ことを特徴とするノード装置。
【請求項７】
請求項１に記載のノード装置であって、
複数の前記センサの種別、及び前記センサデータの取得と送出頻度を蓄積するセンサ管理テーブルと、
前記センサ管理テーブルに基づき、複数の前記センサの管理を行うセンサ管理部を更に備えた、
ことを特徴とするノード装置。
【請求項８】
複数のアプリケーションに対応するデータを送信するエントランスノード装置と、ネットワークを介して、前記エントランスノード装置に接続される管理ノード装置を含むノードシステムであって、
前記エントランスノード装置は、
複数のセンサからのセンサデータを受信し、複数の前記センサの種別を判別するセンサ種別判別部と、
前記センサ種別判別部の判別結果に基づき、前記センサデータを種別に応じて蓄積するバッファリング部と、
要求される前記アプリケーションに対応した演算種類と演算起動条件に従い、前記バッファリング部に蓄積された前記センサデータに対する演算処理を実行する、複数の演算器を有する演算部と、
前記演算種類に対応し、前記演算器の起動順序を蓄積する演算ルートテーブルと、
前記演算ルートテーブルに基づき、前記演算種類に対応する前記演算器を順次起動する起動判定部と、
前記演算部の演算結果に基づき、前記演算結果の送信条件を判定する送信条件判定部と、
前記演算結果が、前記送信条件を満たすか否かを判定する判定演算を蓄積する送信条件比較テーブルを備え、
前記送信条件判定部は、前記送信条件比較テーブル基づき、前記演算結果の送信を判定し、
前記管理ノード装置は、
前記エントランスノード装置から、前記演算結果を受信し、前記エントランスノード装置に対し、前記演算部のコンフィグレーションデータを配信する、
ことを特徴とするノードシステム。
【請求項９】
請求項８に記載のノードシステムであって、
前記管理ノード装置は、
前記エントランスノード装置の前記演算起動設定テーブルの蓄積情報を前記エントランスノード装置に配信する、
ことを特徴とするノードシステム。
【請求項１０】
ネットワークを介して、上位ノードと接続され、複数のセンサからのセンサデータを受信し、複数のアプリケーションに対応するデータを送信するノード装置における情報処理方法であって、
前記ノード装置は、
複数の前記センサからの前記センサデータに基づき、複数の前記センサの種別を判別し、
要求されたアプリケーションに対応した演算種類と演算起動条件に従い、種別が判別された前記センサからの前記センサデータ各々に対する演算処理を、前記演算種類に対応し、複数の演算器の起動順序を蓄積する演算ルートテーブルに基づき、複数の前記演算器を順次起動して実行し、
前記演算処理の演算結果が、送信条件を満たすか否かを判定する判定演算を蓄積する送信条件比較テーブルに従い、前記演算結果の送信条件を満たすか否か判定し、
判定された前記送信条件に応じて、前記演算結果を送信する、
ことを特徴とする情報処理方法。
【請求項１１】
請求項１０に記載の情報処理方法であって、
前記ノード装置は、
前記アプリケーション毎の、前記センサデータに対する演算種類と、当該演算種類を実行するための演算起動条件を蓄積する演算起動設定テーブルに基づき、蓄積された前記センサデータ各々に対する演算処理の起動を判定する、
ことを特徴とする情報処理方法。
【請求項１２】
請求項１１に記載の情報処理方法であって、
前記ノード装置は、
前記ネットワークを介して前記上位ノードから、前記演算起動設定テーブルの情報が配信された際、
前記演算処理を停止し、前記情報に基づき、前記演算起動設定テーブルを更新する、
ことを特徴とする情報処理方法。
【請求項１３】
請求項１０に記載の情報処理方法であって、
前記ノード装置は、
前記ネットワークを介して前記上位ノードから、前記演算処理を実行する前記演算器のコンフィグレーションデータが配信された際、
前記センサからの前記センサデータの受信、及び前記演算器の演算処理を停止し、前記コンフィグレーションデータに基づく、再コンフィグレーションを実行する、
ことを特徴とする情報処理方法。
【請求項１４】
請求項１０に記載の情報処理方法であって、
前記ノード装置は、
前記演算処理の演算結果に基づき、前記演算結果の送信先と送信データタイプに対応するデータを、前記ノード装置から外部に送信するよう制御する、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はノード装置に係り、特にネットワークの末端にて、複数種類のセンサ情報を効率良くフィルタリングする情報処理技術に関する。
【背景技術】
【０００２】
現在急速に普及しつつあるクラウドコンピューティングサービスは，センサ情報等の情報処理がネットワークを介した遠隔のデータセンタ上での集中処理にて実現されている。従って，ネットワーク通信による，応答遅延の増加，信頼性の低下，エネルギー効率の低下が問題となる。
【０００３】
そこで我々は，センサ情報等の情報処理がデータセンタの1点に集中することの問題点に着目し，センサ情報等の情報処理を可能な限り情報の発生源の近傍で処理することで，上記の問題を解決できると考え、検討を重ねてきた（非特許文献１、２参照）。
【０００４】
このような、センサ情報の集約技術としては、例えば、従来の遠方監視制御システムのセンサ端末装置が、センサ出力を処理した結果が所定の条件を満たしたときに、インターネットを介して管理コンピュータにその事象を通知する技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２５２６７０号公報
【非特許文献】
【０００６】
【非特許文献１】鹿野裕明他、「センサ情報高効率集約技術の提案と評価」、信学技報、vol. 109, no. 436, CS2009-81, pp. 47-52, 2010年3月
【非特許文献２】奥野通貴他、「次世代クラウドシステムに向けた分散情報通信処理アーキテクチャに関する検討」、信学技報、vol. 109, no. 448, NS2009-204, pp. 241-146, 2010年3月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
次世代のクラウド・コンピューティングでは，情報端末に加え多種多様なセンサがネットワークを介して接続され、センサからのリアルタイム情報とクラウド上の蓄積情報とを組み合わせた情報処理が必要となる。しかしながら，多量のセンサ情報がデータセンタに集中すると、ネットワークトラフィックの増加による応答時間や電力効率の劣化が問題となる。
【０００８】
非特許文献１、２では、ネットワーク上にてセンサ情報のフィルタリングや情報処理を分散して行うことで、高速応答，高信頼，省電力を実現するリフレクティブネットワークを提案し、リフレクティブネットワーク上のセンサとの接続境界に配置するエントランスノードにて，センサ情報のフィルタリングと結果の送出順制御を行うことで上位に送信するトラフィック量を低減するセンサ情報高効率集約技術を提案している。しかし、センサ情報高効率集約のための、エントランスノードの基本構造について開示はなされているが、その具体的な詳細構成と具体的な利用について開示されていない。また、特許文献１にあっては、センサ端末装置が、遠方監視制御という一つのアプリケーションのための、センサ情報の処理についての開示を行っているに過ぎない。
【０００９】
一方、クラウドコンピューティングサービスなどにおいては、ユーザからの種々の要求、複数のアプリケーションに対応した、エントランスノードにおける、センサ情報の高効率処理が課題となると予想される。
【００１０】
本発明の目的は、上記の課題を解決するため、ユーザからの種々の要求に対応し、複数のアプリケーションに必要なセンサ情報の集約処理を行うノード装置およびその処理方法を提供することにある。
【００１１】
また、本発明の他目的は、ネットワーク上に情報処理機構を分散して配置し，データセンタと連携しつつネットワーク上の位置や情報の性質によってネットワーク上にて最適な処理を行うリフレクティブネットワークシステムを提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するため、本発明においては、ネットワークを介して、複数のアプリケーションに対応するデータを送信するノード装置であって、複数のセンサからのセンサデータを受信し、複数のセンサの種別を判別するセンサ種別判別部と、センサ種別判別部の判別結果に基づき、センサデータを種別毎に蓄積するバッファリング部と、要求されるアプリケーションに対応した演算起動条件に従い、バッファリング部に蓄積されたセンサデータ各々に対する演算処理を実行する演算部と、演算部の演算結果に基づき、演算結果の送信条件を判定する送信条件判定部とを備えた構成のノード装置を提供する。
【００１３】
また、本発明においては、上記の目的を達成するため、ネットワークを介して上位ノードと接続され、複数のセンサからのセンサ情報を受信するノード装置における、複数のアプリケーションに対応した情報処理方法であって、ノード装置は、複数のセンサからのセンサデータを受信し、複数のセンサからのセンサデータの種別を判別し、判別されたセンサデータの、要求されたアプリケーション毎の演算起動条件に従い、センサデータ各々に対する演算処理を実行し、その演算処理の結果に基づき、演算結果の送信条件を判定し、判定結果に応じて、演算結果を送信する情報処理方法を提供する。
【００１４】
更に、上記の目的を達成するため、本発明の好適な態様においては、ネットワークを介して、ユーザに各種のサービスを提供する、複数のアプリケーションに対応するデータを送信するノード装置であって、複数のセンサからのセンサデータを受信し、複数のセンサの種別を判別するセンサ種別判別部と、センサ種別判別部の判別結果に基づき、センサデータを種別毎に蓄積するバッファリング部と、各アプリケーション毎の起動条件を蓄積する演算起動設定テーブルに基づき、要求されるアプリケーションに対応し、バッファリング部にバッファリングされたセンサデータに対する演算の起動を判定する起動判定部と、起動判定部の判定結果に基づき、センサデータ各々に対する演算処理を実行する演算部と、演算部の演算結果に基づき、演算結果の送信条件を判定する送信条件判定部とを備えた構成のノード装置を提供する。
【発明の効果】
【００１５】
本発明によれば、ユーザからの種々の要求に対応し、複数のアプリケーションに必要なセンサ情報の集約処理を、アプリケーション毎に高効率行うことが可能なノード装置およびその情報処理方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の各実施例が適用される、リフレクティブネットワークシステムの概要構成図である。
【図２】第１の実施例に係る、エントランスノードの機能構成例を示す図である。
【図３】第１の実施例に係る、エントランスノードの具体的ハードウェア構成例を示す図である。
【図４】第１の実施例に係る、エントランスノードの要部の詳細構成例を示す図である。
【図５】第１の実施例に係る、演算起動設定テーブルの一例を示す図である。
【図６】第１の実施例に係る、センサグループテーブルの一例を示す図である。
【図７】第１の実施例に係る、演算ルートテーブルの一例を示す図である。
【図８】第１の実施例に係る、送信条件テーブルの一例を示す図である。
【図９】第１の実施例に係る、送信条件比較テーブルの一例を示す図である。
【図１０】第１の実施例に係る、センサ管理テーブルの一例を示す図である。
【図１１】第１の実施例に係る、バッファ管理テーブルの一例を示す図である。
【図１２】第１の実施例に係る、各センサデータに対する処理フローを示すフロー図である。
【図１３】第１の実施例に係る、各種テーブルの更新処理を示すフロー図である。
【図１４】第１の実施例の応用例のアプリケーション利用システムを模式的に示す図である。
【図１５】第１の実施例の応用例に係る、温度センサ管理テーブルの一例を示す図である。
【図１６】第１の実施例の応用例に係る、バッファ管理テーブルの一例を示す図である。
【図１７】第１の実施例の応用例に係る、バッファIDに対応する領域メモリマップを示す図である。
【図１８】第１の実施例の応用例に係る、センサグループテーブルの一例を示す図である。
【図１９】第１の実施例の応用例に係る、演算起動設定テーブルの一例を示す図である。
【図２０】第１の実施例の応用例に係る、演算ルートテーブルの一例を示す図である。
【図２１】第１の実施例の応用例に係る、演算先指定テーブルの一例を示す図である。
【図２２】第１の実施例の応用例に係る、送信条件比較テーブルの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に従い説明する。なお、以下の説明において、各ノードやデータセンタを構成するサーバやコンピュータを構成する処理部である中央処理部(Central Processing Unit：CPU)が実行する各種のプログラムを、「プログラム」、「機能」、「部」等と呼ぶ場合がある。また、ネットワークに接続された、センサなどの複数の端末に接続され、センサ情報等の高効率集約を行うエントランスノード以外の、ネットワークに接続される各種ノード装置、データセンタ、更には管理ノード装置を上位ノードと呼ぶことを留意されたい。この上位ノードは、少なくとも処理部と記憶部と通信インタフェースを備えた通常のコンピュータ構成を有する。
【実施例１】
【００１８】
図１は、第１の実施例に係る、ネットワークシステムの構成概要を示す図である。
【００１９】
本実施例のネットワークシステムは，ネットワークの階層により，３種類のノードで構成される。まず，センサ１０１やアクチュエータ１０２などの制御機器，情報端末が接続されるネットワーク末端部に配置し，リアルタイム情報に対するデータのフィルタリングと集約などの一次処理を行うエントランスノード１０３がある。次に，ネットワーク１０５、１０７の中央部に配置し，エントランスノード１０３で集約された情報、或いは端末１０４からの情報をネットワーク１０５経由で受信し、それらの情報に対し，より高度な二次処理を行うインテリジェントノード１０６がある。情報処理や蓄積処理を実行するためのセンタノードであるデータセンタ１０８を経由せず、インテリジェントノード１０６にて情報処理が完了することが可能な場合には，インテリジェントノード１０６から直接、末端のアクチュエータ１０２などの制御機器等に応答ができるため，従来のデータセンタ１０８を経由した場合に比較し，より高速な応答時間を実現することが可能となる。また，このシステム中には、これらのノード１０３、１０６などの動作やネットワーク上の通信パスを管理する，管理ノード１０９がネットワーク１０７に接続されている。この管理ノードは、通常のコンピュータ構成を備え、上述したように、記憶部に記憶されたプログラムを実行する処理部と通信インタフェースを備え、この処理部が、後で説明するエントランスノード１０３等のコンフィグレーションデータや、各種のテーブルのデータ等の更新処理を行う。
【００２０】
なお、図１においては、エントランスノード１０３、インテリジェントノード１０６、データセンタ１０８、管理ノード１０９のそれぞれの処理・機能を、フィルタ処理１１０、情報処理・通信処理１１１、情報処理・蓄積処理１１２、運用管理１１３として図示した。
【００２１】
図２は、上述した本実施例のネットワークシステム中のエントランスノードの構成の一例を示した機能構成ブロック図である。
【００２２】
同図において、エントランスノード１０３は、無線通信などにより接続される複数のセンサ１０１やアクチュエータ１０３からのセンサデータ等を受信するセンサ種別判別部２０１を備える。このセンサ種別判別部２０１は、受信したセンサデータに基づきセンサ種別を判別する。センサデータバッファリング部２０２は、センサ種別判別部２０１における判別結果と、バッファ管理テーブル２０５に記憶された情報に基づき、受信したセンサデータを、センサ種別毎にバッファリングする。
【００２３】
また、エントランスノード１０３は、配下の複数のセンサ１０１等の管理を行うセンサ管理機能のためのセンサ管理部２０３とセンサ管理テーブル２０４とを備え、センサデータの取得条件、送信条件の設定を行う。同図において、点線の矢印は、センサ管理部２０３から各センサ１０１に伸びる制御バスを示している。
【００２４】
更に、エントランスノード１０３には、受信しバッファリングした各種のセンサデータに対する、後述する演算部における演算の起動を制御する演算起動機能のため、起動判定部２０６を備える。この起動判定部２０６は、後で詳述する演算ルートテーブル２０７、センサグループテーブル２０８、演算起動設定テーブル２０９の各種テーブルに蓄積されたデータに基づき、バッファリング部２０２のセンサデータに対する演算の起動、すなわち、起動のタイミング、起動する演算部の演算器２１１、２１２、２１３を制御する。演算部の入出力部分には、それぞれ、デマルチプレクサ２１０、マルチプレクサ２１４が設置され、起動判定部２０６からの点線で示した制御バス上の制御信号により、これらの演算部を構成する各要素を制御することにより、演算の起動を制御する。
【００２５】
また、エントランスノード１０３には、演算部における演算結果に対する送出制御機能がある。すなわち、演算結果やバッファリングしたセンサデータ自身、更にはイベント情報をネットワーク上の上位のノードへ送出するか否かを制御する機能である。この機能は、送信条件判定部２１５によって実現される。この機能の実現のため、送信条件判定部２１５には、後で詳述する送信条件比較テーブル２１６、送信条件テーブル２１７が接続されている。送信条件判定部２１５は、マルチプレクサ２１８を制御し、演算結果に基づき送信データの選択、廃棄を行う。
【００２６】
最後に、エントランスノード１０３は、演算結果により、特定のセンサデータに対する演算起動条件を変更する機能を有する。この機能により、演算の種類、起動するタイミングを変更することができる。これらは、送信条件判定部２１５からセンサ管理部２０３と起動判定部２０６に伸びる、点線で示した制御バス上の制御信号によって実現できる。
【００２７】
なお、後で詳述する各種テーブルの蓄積データは、インテリジェントノード１０６を介して、管理ノード１０９の処理部から書き換えすることができる。
【００２８】
以上纏めると、エントランスノード１０３には下記の機能を備えている。
・センサの管理機能（センサデータの取得・送出条件の設定）
・センサデータの取得と振り分け機能（センサ種別毎にバッファリング）
・センサデータに対する演算の起動機能（起動のタイミング、起動する演算器の制御）
・演算結果に対する送出制御機能（上位へ送出する・しない、演算結果 or バッファリングしたセンサデータ or イベント情報の送出）
・演算結果による、特定のセンサデータに対する演算起動条件（演算の種類、起動するタイミング）変更機能、である。
【００２９】
続いて、図３を用いて、本実施例における、エントランスノード１０３の具体的ハードウェア構成の一例を説明する。エントランスノード１０３のハードウェアは、センサ・アクチュエータ接続部３０１、フィルタリング処理部３０２、及び管理・制御部３０３、で構成する。センサ・アクチュエータ接続部３０１は、センサ１０１、アクチュエータ１０２との接続を行う部分であり、その内部にデジタル入出力部（Digital I/O）３０４、イーサネット（登録商標）コントローラ(Ethernet Controller)３０５、及びそれらを接続するバス３０６等を含んでいる。バス３０６には、例えば、PCI-ExpressなどのI/Oシリアルインタフェースを用いる。
【００３０】
フィルタリング処理部３０２には、二つのFPGA (Field Programmable Gate Array)３０７、３０８、プログラム処理を行う処理部として機能するCPU (Central Processing Unit)３０９、これらに接続され、記憶部として機能するPROM (Programmable Read Only Memory)３１０、３１２とSDRAM (Synchronous Dynamic Random Access Memory)３１１、３１３、３１４から構成される。なお、FPGA３０７、３０８とCPU３０９と間はバス３１５と、割り込み線３１６で接続されている。また、管理・制御部３０３は、バス３２０に接続されたEthernet Controller ３１９、CPU３１７、SDRAM３１８とから構成される。バス３２０も、例えば、PCI-ExpressなどのI/Oシリアルインタフェースを用いる。なお、CPU1 ３０９は、図２に示すCPU ２１９に対応するものである。
【００３１】
管理・制御部３０３は，管理ノード１０９やインテリジェントノード１１１からの指示の下，ステータス情報の管理，実行されるアプリケーションの管理，を行う。フィルタリング処理部３０２はフィルタリング処理を含むセンサ情報集約処理を行う。フィルタリング処理部３０２は、FPGA３０７、３０８の搭載により，接続するセンサや実行するアプリケーションによって対応するフィルタ処理を書き換えることで，高速かつ柔軟な処理を可能とする。本構成例では、２個のFPGAで構成しているが，これはフィルタリング機能の書き換えを動的に行う際，一方のFPGA動作を継続させておくことで，装置機能の停止を回避するためであり、２個に限定されないことは言うまでもない。
【００３２】
センサ・アクチュエータ接続部３０１は，上述のとおり、センサ１０１や制御機器を接続するイーサネット端子，Digital I/O端子，シリアル端子等の各種のインタフェースを搭載する。センサ１０１やアクチュエータ１０２の接続数を増加する場合は，フィルタリング処理部３０２を増設することで，フィルタリング処理の負荷分散を図ることが可能である。このエントランスノード１０３は、末端に多数配置することから，CPU３０９は組込み向けプロセッサを利用し，小型化・低電力化を狙う。
【００３３】
図４は、図３のエントランスノード１０３内のフィルタリング処理部３０２、特にそのFPGA３０７、３０８の内部構成の一例を示す図である。フィルタリング処理部３０２は，入力される各種センサデータに対し高速に各種フィルタ演算を行い，管理・制御部３０３のCPU0 ３１７に対し結果を通知する。また，各種センサ情報の優先度制御も行う。これらの演算制御を行うためのハードウェア論理を，フィルタリング処理部３０２が持つ２個のFPGA３０７、３０８上に実装する。
【００３４】
２個のFPGA３０７、３０８は，データ入出力インタフェース以外で同じ構成となっており，クロスバ４０２、４１１により、入出力インタフェースである、PCI-Express Root Complex ４０１、PCI-Express End Point ４１９、LVDS I/F(Low voltage differential signaling interface)４１０、SDRAM等の各種の外部メモリインタフェース４０６、４０８，４０９、４１５、４１７、４１８、フィルタリング演算を行う演算制御部４０３、４１３、及び起動判定部４０５、４１４とセンサ種別判定部４０７と送信条件判定部４１６の判定部等が相互に接続される。なお、これらの演算制御部４０３、４１３や、各種判定部４０５、４０７、４１４、４１６は、リコンフィギュラブル・デバイスとしての各々のFPGA３０７、３０８の機能論理として実現できることはいうまでもない。
【００３５】
FPGA３０７、３０８上の専用領域に保持された各種テーブル４０４、４１２は、図示を省略したラインにより、対応する各ブロックに接続される。これらの各種テーブルは、外部のSDRAM演算等のメモリに保存しても良いことは言うまでもない。センサ管理部２０３によるセンサ管理テーブル２０４を用いたセンサ管理機能は、CPU1 ３０９のソフトウェアで行う。各種テーブル４０４、４１２は、CPU0 ３１７、CPU1 ３０９からのアクセスにより更新が行われる。また、演算制御部４０３、４１３は、図２中の演算器２１１、２１２、２１３に対応する、複数のバッファ(Buffer)付きの演算ブロック４２１、４２２を備えている。また、SDRAM I/F ４０９、４１８は、DMAC(Direct Memory Access Controller)を内蔵している。
【００３６】
本実施例のエントランスノード１０３によれば、各種フィルタリング演算は演算ブロック４２１、４２２に実装される。各演算ブロック４２１、４２２に対し，各種インタフェースと各種メモリをクロスバ４０２、４１１で接続することで，データに対し複数の演算ブロック上で，任意の順序で任意の演算を実行することが可能な構成となっている。クロスバ４０２、４１１の設定は，各種テーブル４０４、４１２中の、センサ種別に対して演算パスを定義する演算ルートテーブル２０７上に保持される。演算ブロック４２１、４２２や各種インタフェースには識別子（ID）を割り振り，クロスバ４０２、４１１上を流れるデータに対して，行き先IDやデータの種別を表すIDで構成するヘッダ情報を付加することで，データパスの制御を行う。
【００３７】
また，図４に示すFPGA３０７、３０８による論理は、管理・制御部３０３のCPU0 ３１７とフィルタリング・フィードバック処理部３０２のCPU1 ３０９間の通信を行うためのインタフェースも提供する。すなわち、CPU0 ３１７から発行された命令やデータはPCI Express End Point ４１９を介してFPGA３０８上の図示を省略したFPGA３０７、３０８上のバッファ領域である通信用バッファに書き込まれ，割り込みによりCPU1 ３０９が通知を受けて当該通信バッファを読み込むことで，CPU0 317からCPU1 ３０９への通信を実現する。CPU1 ３０９からCPU0 ３１７の通信も，逆の手順で同様に行うことで実現する。なお、通信バッファは、外部のSDRAMを使って形成することもできることは言うまでもない。
【００３８】
なお，フィルタリング演算のアプリケーションデプロイは，演算ブロック４２１、４２２に対し，ユーザが定義する各種フィルタリング演算をプラグインし，FPGA３０７、３０８をリコンフィグレーションする形で実現する。
【００３９】
続いて、本実施例におけるエントランスノード１０３中の各種テーブルの具体例を図５〜図１１を用いて説明する。
【００４０】
図５は、図２に示した演算起動設定テーブル２０９の一例を示す図である。図５の演算起動設定テーブル５００は、複数のアプリケーション各々に対応する演算起動設定のデータを蓄積するテーブルであり、アプリケーションが必要とするセンサデータとフィルタリング演算を定義し、更に演算起動条件他を蓄積する基本テーブルである。図５のテーブル５００の横軸項目を以下順次説明する。
【００４１】
サービスID・・・アプリケーションが要求するセンサデータ、フィルタリング演算を定義するための一意のIDである。各サービスIDに対応するテーブルの各行は、複数のアプリケーション各々に対応している。
センサID・・・センサ１０１を指定する物理的なIDである。さらに、センサ管理テーブル２０４を引くことで、センサ１０１の種別や属性（データ取得・送信時間）を取得することができる。なお、演算起動設定テーブル５００の３行目に例示された”GR”はグループ指定されていることを示す。
センサグループID・・・対象センサが複数、グループ指定によりグループ化されていることを示す。この場合は、グループ化された各センサに対して、同じ演算を行う。
【００４２】
演算ID・・・演算の種類を指定するIDである。さらに、演算ルートテーブルを引くことによって、どの演算をどの順番で行うかを取得する。
起動タイプ・・・演算器３１１、２１２、２１３の起動を行うトリガ条件の種別を指定する。例えば、図５に示すように、「時間」か「データ数」を用いることができる。次に述べる起動条件で、対応する値を指定する。
起動条件・・・演算器を起動するトリガ条件を数値で指定する。例えば、時間の場合は１００[ms]毎に、データ個数では５０[個]のデータが到着したら演算器を起動する。
【００４３】
モード・・・起動タイミングまでに受信したデータをすべて各演算ブロックに送信する場合は”ACC”、起動タイミングで最新の受信データのみを送信する場合は”SMPL”を指定する。例えば、２秒おきに送出されるセンサデータに対し、６０秒毎でしか情報が必要でない場合は、間引いてしまう必要がある。このような場合に、この”SMPL”モードを利用する。
【００４４】
優先度・・・同じセンサを複数のアプリケーション、サービスで共有することも有り得るため、競合したときの優先度を規定する。
送信ID・・・演算の結果に対する処理を規定するIDである。さらに、後で説明する送信条件テーブル２１７を引く。
【００４５】
図６は、センサグループテーブル２０８の具体例を示す図である。同図において、センサグループテーブル６００は、図５の演算起動設定テーブル５００の横軸中のセンサグループIDに対応する、実体のセンサIDを定義するテーブルである。各行に例示するように、センサグループIDに対応して、種々のセンサの組み合わせがある。
【００４６】
図７は、演算ルートテーブル２０７の具体例を示す図である。本テーブル７００は、図５の演算起動設定テーブル５００中の演算IDに対してどの演算器、すなわち演算ブロックをどの順序で起動するかを示したテーブルである。同図において、演算ルートテーブル７００は、演算器、すなわち演算ブロックのIDを指定する。複数の演算IDで一つの演算器が共有されることもある。競合する場合は、その演算が終わるまで、他の演算は待たされる。そのため、演算ブロックバッファを設けている。なお、演算結果を送信条件判定部２１５に送る場合は、”OUT”を指定する。
【００４７】
例えば、図７に示すように、演算ID”1”では、まず、演算器”2”を起動し演算を実行し、その結果を演算器”4”に転送して実行することを示す。その後、送信条件判定部２１５に出力する。上述のとおり、各演算器はコンフィグレーションデータとして、管理ノード１０９の処理部からデータが配信可能である。
【００４８】
図８は、本実施例における送信条件テーブル２１７の一例を示す図である。この送信条件テーブル８００は、演算結果の送信先を示すと共に、送信条件IDと組み合わせて、演算結果の値に対する算術比較により、特定の条件のみに対してデータ送信を行う。
【００４９】
同図において、送信条件テーブル８００の横軸項目を順次説明する。
送信ID・・・送信を指定するIDである。
送信先・・・自CPUへ送信か、外部へ送信かを選択する。単純な比較による検出で無い場合は、そのままCPUへサービスIDと共に送信し、ソフトウェア処理にて送出条件を計算することもできる。
【００５０】
送信タイプ・・・送信対象とするデータを指定する。「演算結果」は演算器での計算結果を示す。「イベント」は送信条件が検出されたときに、対象となるサービスIDのみをイベントとして送出する。「バッファデータ」は演算対象となる元のセンサデータをそのまま送信する。
送信条件ID・・・送信判定を行うための条件を示す。
送信先IPアドレス・・・送信先のIPアドレスを指定する。
送信先ポート・・・送信先のポートを指定する。
【００５１】
図９は、本実施例における送信条件比較テーブル２１６の一例を示す図である。このテーブル９００は、演算結果に対して送信条件を満たすかを判定するための算術比較演算を定義するテーブルである。
【００５２】
同図において、送信条件比較テーブル９００の横軸項目を順次説明する。
送信条件ID・・・条件式を区別するためのIDである。
比較子・・・算術比較子を表す。同図において、LTは、”less than”, MTは”more than”, EQは”equal”, LTEは”less than or equal, NEQは”not equal”, MTEは”more than or equal”を示している。 
設定値・・・比較値を表す。
【００５３】
図１０は、本実施例におけるセンサ管理テーブル２０４の一例を示す図である。本テーブル１０００は、各センサの管理を行うテーブルである。また、センサデータの取得・送出条件も指定する。
【００５４】
同図において、センサ管理テーブル１０００の横軸項目を順次説明する。
センサID・・・各センサに対し、一意で指定されるIDである。 
センサ種別・・・各センサの機能を表す。
送出頻度・・・各センサにおけるデータの取得と送出の頻度を指定する。
【００５５】
センサ識別子・・・センサの識別IDを表す。IPセンサの場合は、IPアドレスを指定する。図２に示したDigital I/O等の場合は、対応するポート番号を指定する。
センサ状態・・・センサの休止を指定できる。
【００５６】
図１１は、バッファ管理テーブル２０５の一例を示す図である。本テーブル１１００は、バッファリングメモリ、リングバッファの管理に用いるテーブルである。センサデータに対するバッファリング領域を規定し、バッファされているデータの量とタイムスタンプを管理する。
【００５７】
同図において、バッファ管理テーブル１１００の横軸項目を順次説明する。
バッファID・・・バッファ識別IDを示す。 
サイズ・・・確保しているバッファ容量を示す。
先頭位置・・・対象バッファの先頭アドレスを示す。
末尾位置・・・対象バッファの末尾アドレスを示す。
【００５８】
単位データサイズ・・・センサ単発のデータのデータサイズを示す。
最新データポインタ・・・最新のデータを格納すべきポインタアドレスを示す。
最新データタイムスタンプ・・・格納されている最新データのタイムスタンプを表す。
末尾データタイムスタンプ・・・格納されている最古のデータのタイムスタンプを表す。
【００５９】
以上、本実施例におけるエントランスノード１０３における各種のテーブル内容の具体例を説明した。続いて、本実施例における、エントランスノード１０３における、各センサデータに対する処理と、各種テーブルの管理ノード１０９の処理部からの更新処理について、図１２、図１３を用いて説明する。
【００６０】
まず、図１２において、エントランスノード１０３で、ステップ１２００において、センサデータに対する処理が開始されると、センサデータの受信が行われ（ステップ１２０１、以下カッコ内「ステップ」省略）、センサ種別判別部２０１において、各センサデータのセンサID、サービスIDの判別が行われ（１２０２）、判別結果に基づき、センサデータバッファリング部２０２でセンサデータのバッファリングが行わる（１２０３）。そして、バッファリングされたセンサデータに対し、起動判定部２０６が、演算器起動条件の判定を行う（１２０４）。その結果、演算器起動でない場合（１２０５のＮ）は、センサデータの受信（１２０１）に戻る。
【００６１】
判定結果が演算器起動の場合（１２０５のＹ）は、演算ルートテーブル２０７に従い、選択された演算器２１１、２１２、２１３に基づき、センサデータに対し演算が実行される（１２０６）。最後に、送信条件判定部２１５において、演算結果に基づき、演算結果の送信を行うか否かの判定が行われる（１２０８）。その結果が否の場合（１２０８のＮ）は、結果を破棄し（１２１０）、その結果が要の場合（１２０８のＹ）は、送信条件テーブルに従い、結果を外部、又はCPU1 ３０９に送信される（１２０９）。
【００６２】
次に、図１３において、ステップ１３００において、管理ノード１０９の処理部による更新処理フローが開始すると、まず管理ノード１０９上にて、各種テーブル情報、FPGAコンフィグュレーション情報を入力し（１３０１）、対象のエントランスノードIDを指定し、インテリジェントノード１０６に転送する（１３０２）。インテリジェントノード１０６は、対象とするエントランスノード１０３に転送を行う。
【００６３】
各エントランスノード１０３は、それらの設定情報の受信を行う（１３０４）。そして、PFGAコンフィグュレーションが有るか否かをチェックし（１３０５）、その結果、無の場合（１３０５のＮ）は、バッファリングは継続しながら、演算機能の停止を行う（１３０６）。そして、各種テーブル情報に基づき、各種設定テーブルを更新し（１３０７）、演算機能の再開を行う（１３０８）。一方、有りの場合（１３０５のＹ）は、センサ受信・演算機能の停止し（１３０９）、FPGAの再コンフィグレーションを実行し（１３１０）、センサ受信・演算機能の再開を行う（１３１１）。
【００６４】
以上、実施例１のネットワークシステムの構成・機能について説明した。引き続き、図１４〜図２２を用いて、本実施例システムの応用例として、温度センサデータを用いる複数のアプリケーション利用システムへの応用例について説明する。
【００６５】
図１４は、温度センサを利用したアプリケーションの適用構成を模式的に示す図である。工場等の屋内スペース１４００に対し、温度センサ１４０１を5個（SNx； xはID、1〜5）配置する。また、当該屋内スペース１４００内に設置された、監視対象である機械装置（MC）１４０２に対しても温度センサ１４０１（SN0）を付加する。これらの温度センサ１４０１(SN0,1〜5)の出力は、無線ゲートウェイ(WGW)１４０３を経由して、上述したエントランスノード（EN）１０３に送られる。本応用システムにおけるエントランスノード（EN）１０３では、以下では、複数のアプリケーションとして、３個のユーザアプリケーションが動作する。
空調管理アプリケーション
当該スペースの空調管理を行うために、温度センサSN１〜５で30秒毎に温度を測定し、1分間分の各センサの全体平均を算出する。ネットワーク１０５を経由して、上位のインテリジェントノード１０６またはサーバへは1分間の当該スペースの平均値を送付し、その結果を用いて空調装置を制御する。
（２）機械装置保守監視アプリケーション
当該装置の異常傾向を温度から監視する。2秒毎に測定した温度を100点分（200秒間）蓄積し、100点分の温度分布を、予め定めた異常傾向パタンと比較し、その類似度を上位に送出する。計算は、注目点の前３点分を含めた計４点分のデータの平均値を当該の注目点データとする（ノイズ除去のための平滑化）。次に、各点の微分値を計算する。さらに、微分値の計算結果と予め定めた異常傾向パタンデータとの距離を求めることで、類似度を導出する。この平均値と微分計算は上述したエントランスノード３０２のFPGA1 ３０７、FPGA1 ３０８のハードで行い、距離計算はCPU1 ３０９で行う。
（３）機械装置異常監視アプリケーション
機械異常を温度判定で監視する。2秒毎に温度を測定し、一定以上の温度を検出した場合は、上位のインテリジェントノード３０６またはサーバに対しイベントを送出する。
【００６６】
これらのアプリケーションを動作させるための情報は、各テーブルに管理ノード１０９からインテリジェントノード１０６を介して、エントランスノード１０３に配信され、エントランスノード１０３の管理ソフトウェアにより、各テーブルが更新される。また、本アプリケーションで用いるFPGA上の演算ブロック４２１、４２２は、以下の3種類である。これらの演算ブロック向けの回路を含むFPGAコンフィグレーション情報は、同様に管理ノード１０９の処理部から配信される。このコンフィグレーション情報を用いてエントランスノード１０３の管理ソフトウェアがFPGAを書き換えることで、演算ブロックが実装される。
【００６７】
演算ブロックは以下の機能を持つ。
＊平均値算出（演算ブロックID＝0）
入力された複数個のデータの平均値を計算し、出力する。応用（１）空調管理に使用する。
＊フィルタ処理（演算ブロックID＝1）
平滑化フィルタであり、入力された各データと、ブロック内のバッファに保持されている前の3点のデータと当該入力データの計４点の平均値を計算し、その結果を出力する。複数の入力データに対し連続で計算し、結果を出力する。応用（２）機械装置保守監視に使用する。
＊微分値計算（演算ブロックID＝2）
（２）機械装置保守監視で出力した結果に対し、微分値（傾き）を計算して出力する。応用（２）機械装置保守監視に使用する。
【００６８】
図１５〜図２２に本応用例の温度センサデータ利用のアプリケーションシステムにおける、各種のテーブルの具体例を示した。図１５は、温度センサ管理テーブル１５００を、図１６はバッファ管理テーブル１６００を、図１８はセンサグループテーブル１８００を、図１９は演算起動設定テーブル１９００を、図２０は演算ルートテーブル２０００を、図２１は送信先指定テーブル２１００を、図２２は送信条件比較テーブルを示す。なお、図１７は、図１６のバッファIDに対応する領域のメモリマップを示す図である。
【００６９】
図１５の温度センサ管理テーブル１５００は、各センサの取得（送出）頻度を設定する。センサID=0(SN0)は、上述したように機械装置監視用であり2秒毎に取得する。センサID=1〜5(SN1〜SN5)は、空調管理の部屋温度測定用であり、10秒毎に取得する。
【００７０】
図１６のバッファ管理テーブル１６００は、各センサからのデータを保存する場所を示す。同図の横軸の、領域サイズは、各データの保存領域のサイズを示す。領域のアドレスは、先頭位置、末尾位置で指定される。バッファID0は温度センサSN0のデータを保持する領域であり、バッファID1〜5は温センサSN1〜5に対応する領域である。温度センサSN0は、温度センサSN1〜5の５倍の頻度でセンサデータが到着するため、ID0は5,120バイト、ID1〜5は1,024バイトとしている。
【００７１】
また、単位データサイズは、各センサからの1データのデータサイズであり、温度データは２バイトで表現される。最新のデータ格納ポインタは、最新データのアドレスを示す。タイムスタンプは、センサデータ取得開始時からの一意な時間IDを示している。
【００７２】
図１７に、バッファIDに対応する各領域のメモリマップ１７００を示した。
【００７３】
図１８のセンサグループテーブル１８００は、空調用に用いるセンサSN1〜SN5（センサID＝1〜5）はグループとして扱うことを示す。
【００７４】
図１９の演算起動設定テーブル１９００では、サービスIDが、応用（１）〜（３）に相当する。つまり、
ID0＝（１）空調管理
ID1＝（２）機械装置保守監視
ID2＝（３）機械装置異常監視
同図において、センサIDは、各サービスが用いるセンサを示す。サービスID0ではSN1〜5をグループとして扱う。センサグループIDは、グループ化するセンサの場合、センサグループテーブルのID(“0”)を指定する。演算IDは、演算ルートテーブルで指定する演算機能を指定する。ID0は、平均値計算、ID1は平滑化フィルタ＋微分値計算、ID2は演算なしスルーを示す。
【００７５】
起動条件は、演算を開始するタイミングを示す。サービスID0は60秒毎、ID1は300秒毎、ID2は1データ毎である。モードは、起動条件で設定された時間内に受信されたデータを、演算ブロックに送付するか、廃棄するかを指定する。”ACC”は、受信されたデータすべてを演算ブロックに送出、”SMPL”は、上述した通り、演算ブロックが起動されるタイミングで受信された最新のデータのみを送信する。
【００７６】
優先度は、数値が高いほうが優先である。ID2の異常監視が最優先のため“10”。次に、ID1の保守監視で“5”、ID0空調管理は優先度最低で“1”となる。送信IDは演算結果の送付先・条件を定義した送信条件テーブルを参照するためのIDを示している。
【００７７】
図２０の演算ルートテーブル２０００は、各アプリケーションで使用する演算ブロック（機能）を指定する。
【００７８】
同図において、演算ID0（空調管理）は、まず演算ブロック0を起動し入力されたデータ（5台分30秒毎のセンサデータ、60秒分）の平均値を計算、結果判定部に出力する。演算ID1（機械装置保守監視）では、まず入力データに対し演算ブロック1を起動し平滑化フィルタ演算を実行。次にその結果を演算ブロック2に転送し、微分値計算を実行。その後結果判定部に出力する。演算ID2（機械装置異常監視）では、演算ブロックへは転送せずに、そのまま結果判定部に出力する。
【００７９】
図２１の送信先指定テーブル２１００は、各サービスIDに対する演算結果の送信先を指定するテーブルである。
【００８０】
同図において、送信ID0（空調管理）では、演算結果を外部（指定IPアドレスとポート）に対し送信。送信の条件はAnyであり、結果の出力と同時に上位に送信する。送信ID1（機械装置保守監視）では、演算結果をCPU0に送信する。送信条件はAnyであり、結果の出力と同時にCPU0へ送信する。送信ID2（機械装置異常監視）では、演算結果を外部（指定IPアドレスとポート）に送信する。送信条件IDは0であり、送信条件比較テーブルを参照し、条件を満たす場合にイベント情報（異常状態情報）を上位に送信する。
【００８１】
図２２の送信条件比較テーブル２２００は、送信条件を定義するテーブルである。演算結果が50以上（More Than or Equal)の場合は、条件を満たす。つまり、50度以上で温度異常と判定する。
【産業上の利用可能性】
【００８２】
本発明はノード装置に係り、特にネットワークの末端にて、複数種類のセンサ情報を効率良くフィルタリングする情報処理技術として有用である。
【符号の説明】
【００８３】
１０１…センサ
１０２…アクチュエータ
１０３…エントランスノード
１０４…端末
１０５、１０７…ネットワーク
１０６…インテリジェントノード
１０８…データセンタ
１０９…管理ノード
１１０…フィルタ処理
１１１…情報処理・通信処理
１１２…情報処理・蓄積処理
１１３…運用管理
２０１…センサ種別判別部
２０２…センサデータバッファリング部
２０３…センサ管理部
２０４、１０００…センサ管理テーブル
２０５、１１００、１６００…バッファ管理テーブル
２０６…起動判定部
２０７、７００、２０００…演算ルートテーブル
２０８、６００、１８００…センサグループテーブル
２０９、５００、１９００…演算起動設定テーブル
２１０…デマルチプレクサ
２１１、２１２、２１３…演算器
２１４、２１８…マルチプレクサ
２１５…送信条件判定部
２１６、９００、２２００…送信条件比較テーブル
２１７、８００…送信条件テーブル
２１９、３０９、３１７…CPU
３０１…センサ・アクチュエータ接続部
３０２…フィルタリング処理部
３０３…管理・制御部
３０４…デジタル入出力部
３０５、３１９…イーサネットコントローラ
３０６、３１５、３２０…バス
３０７、３０８…FPGA
３１０、３１２…PROM
３１１、３１３、３１４、３１８…SDRAM
３１６…割り込み線
４０１、４１９…PCI Express
４０２，４１１…クロスバ
４０３、４１３…演算制御部
４０４、４１２…各種テーブル
４０５、４１４…起動判定部
４０６、４１５…CPU I/F
４０７…センサ種別判別部
４０８、４１７…ROM I/F
４０９、４１８…SDRAM I/F
４１０…LVDS I/F
４１６…送信条件判定部
１４００…屋内スペース
１４０１…温度センサ
１４０２…機械装置（MC）
１４０３…無線ゲートウェイ(WGW)
１５００…温度センサ管理テーブル
１７００…メモリマップ
２１００…送信先指定テーブル。
【図１】
0005583476.tif 000002
【図２】
0005583476.tif 000003
【図３】
0005583476.tif 000004
【図４】
0005583476.tif 000005
【図５】
0005583476.tif 000006
【図６】
0005583476.tif 000007
【図７】
0005583476.tif 000008
【図８】
0005583476.tif 000009
【図９】
0005583476.tif 000010
【図１０】
0005583476.tif 000011
【図１１】
0005583476.tif 000012
【図１２】
0005583476.tif 000013
【図１３】
0005583476.tif 000014
【図１４】
0005583476.tif 000015
【図１５】
0005583476.tif 000016
【図１６】
0005583476.tif 000017
【図１７】
0005583476.tif 000018
【図１８】
0005583476.tif 000019
【図１９】
0005583476.tif 000020
【図２０】
0005583476.tif 000021
【図２１】
0005583476.tif 000022
【図２２】
0005583476.tif 000023