説明

ノード装置およびその処理方法

【課題】ユーザからの要求に対応し、複数のアプリケーションそれぞれに対応するセンサ情報の集約処理を行うエントランスノードを提供する。
【解決手段】エントランスノード103は、センサ管理部203で管理する、複数のセンサ101からセンサ情報が入力されると、センサ種別判別部201が、バッファ管理テーブル202を用いて、センサ種別に応じたデータバッファリングを行う。起動判定部206は、各アプリケーション毎の起動条件を蓄積する演算起動設定テーブル209用いて、要求されるアプリケーションに対応し、バッファリングされたセンサデータに対し、演算部211−213で必要な演算処理を実行させる。送信条件判定部215は、演演算結果等をCPU219や、外部装置に送信するか否かを判定し、判定結果に基づき、演算結果等をCPU219や上位のインテリジェントノード106等に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はノード装置に係り、特にネットワークの末端にて、複数種類のセンサ情報を効率良くフィルタリングする情報処理技術に関する。
【背景技術】
【0002】
現在急速に普及しつつあるクラウドコンピューティングサービスは,センサ情報等の情報処理がネットワークを介した遠隔のデータセンタ上での集中処理にて実現されている。従って,ネットワーク通信による,応答遅延の増加,信頼性の低下,エネルギー効率の低下が問題となる。
【0003】
そこで我々は,センサ情報等の情報処理がデータセンタの1点に集中することの問題点に着目し,センサ情報等の情報処理を可能な限り情報の発生源の近傍で処理することで,上記の問題を解決できると考え、検討を重ねてきた(非特許文献1、2参照)。
【0004】
このような、センサ情報の集約技術としては、例えば、従来の遠方監視制御システムのセンサ端末装置が、センサ出力を処理した結果が所定の条件を満たしたときに、インターネットを介して管理コンピュータにその事象を通知する技術がある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−252670号公報
【非特許文献】
【0006】
【非特許文献1】鹿野裕明他、「センサ情報高効率集約技術の提案と評価」、信学技報、vol. 109, no. 436, CS2009-81, pp. 47-52, 2010年3月
【非特許文献2】奥野通貴他、「次世代クラウドシステムに向けた分散情報通信処理アーキテクチャに関する検討」、信学技報、vol. 109, no. 448, NS2009-204, pp. 241-146, 2010年3月
【発明の概要】
【発明が解決しようとする課題】
【0007】
次世代のクラウド・コンピューティングでは,情報端末に加え多種多様なセンサがネットワークを介して接続され、センサからのリアルタイム情報とクラウド上の蓄積情報とを組み合わせた情報処理が必要となる。しかしながら,多量のセンサ情報がデータセンタに集中すると、ネットワークトラフィックの増加による応答時間や電力効率の劣化が問題となる。
【0008】
非特許文献1、2では、ネットワーク上にてセンサ情報のフィルタリングや情報処理を分散して行うことで、高速応答,高信頼,省電力を実現するリフレクティブネットワークを提案し、リフレクティブネットワーク上のセンサとの接続境界に配置するエントランスノードにて,センサ情報のフィルタリングと結果の送出順制御を行うことで上位に送信するトラフィック量を低減するセンサ情報高効率集約技術を提案している。しかし、センサ情報高効率集約のための、エントランスノードの基本構造について開示はなされているが、その具体的な詳細構成と具体的な利用について開示されていない。また、特許文献1にあっては、センサ端末装置が、遠方監視制御という一つのアプリケーションのための、センサ情報の処理についての開示を行っているに過ぎない。
【0009】
一方、クラウドコンピューティングサービスなどにおいては、ユーザからの種々の要求、複数のアプリケーションに対応した、エントランスノードにおける、センサ情報の高効率処理が課題となると予想される。
【0010】
本発明の目的は、上記の課題を解決するため、ユーザからの種々の要求に対応し、複数のアプリケーションに必要なセンサ情報の集約処理を行うノード装置およびその処理方法を提供することにある。
【0011】
また、本発明の他目的は、ネットワーク上に情報処理機構を分散して配置し,データセンタと連携しつつネットワーク上の位置や情報の性質によってネットワーク上にて最適な処理を行うリフレクティブネットワークシステムを提供することにある。
【課題を解決するための手段】
【0012】
上記の目的を達成するため、本発明においては、ネットワークを介して、複数のアプリケーションに対応するデータを送信するノード装置であって、複数のセンサからのセンサデータを受信し、複数のセンサの種別を判別するセンサ種別判別部と、センサ種別判別部の判別結果に基づき、センサデータを種別毎に蓄積するバッファリング部と、要求されるアプリケーションに対応した演算起動条件に従い、バッファリング部に蓄積されたセンサデータ各々に対する演算処理を実行する演算部と、演算部の演算結果に基づき、演算結果の送信条件を判定する送信条件判定部とを備えた構成のノード装置を提供する。
【0013】
また、本発明においては、上記の目的を達成するため、ネットワークを介して上位ノードと接続され、複数のセンサからのセンサ情報を受信するノード装置における、複数のアプリケーションに対応した情報処理方法であって、ノード装置は、複数のセンサからのセンサデータを受信し、複数のセンサからのセンサデータの種別を判別し、判別されたセンサデータの、要求されたアプリケーション毎の演算起動条件に従い、センサデータ各々に対する演算処理を実行し、その演算処理の結果に基づき、演算結果の送信条件を判定し、判定結果に応じて、演算結果を送信する情報処理方法を提供する。
【0014】
更に、上記の目的を達成するため、本発明の好適な態様においては、ネットワークを介して、ユーザに各種のサービスを提供する、複数のアプリケーションに対応するデータを送信するノード装置であって、複数のセンサからのセンサデータを受信し、複数のセンサの種別を判別するセンサ種別判別部と、センサ種別判別部の判別結果に基づき、センサデータを種別毎に蓄積するバッファリング部と、各アプリケーション毎の起動条件を蓄積する演算起動設定テーブルに基づき、要求されるアプリケーションに対応し、バッファリング部にバッファリングされたセンサデータに対する演算の起動を判定する起動判定部と、起動判定部の判定結果に基づき、センサデータ各々に対する演算処理を実行する演算部と、演算部の演算結果に基づき、演算結果の送信条件を判定する送信条件判定部とを備えた構成のノード装置を提供する。
【発明の効果】
【0015】
本発明によれば、ユーザからの種々の要求に対応し、複数のアプリケーションに必要なセンサ情報の集約処理を、アプリケーション毎に高効率行うことが可能なノード装置およびその情報処理方法を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の各実施例が適用される、リフレクティブネットワークシステムの概要構成図である。
【図2】第1の実施例に係る、エントランスノードの機能構成例を示す図である。
【図3】第1の実施例に係る、エントランスノードの具体的ハードウェア構成例を示す図である。
【図4】第1の実施例に係る、エントランスノードの要部の詳細構成例を示す図である。
【図5】第1の実施例に係る、演算起動設定テーブルの一例を示す図である。
【図6】第1の実施例に係る、センサグループテーブルの一例を示す図である。
【図7】第1の実施例に係る、演算ルートテーブルの一例を示す図である。
【図8】第1の実施例に係る、送信条件テーブルの一例を示す図である。
【図9】第1の実施例に係る、送信条件比較テーブルの一例を示す図である。
【図10】第1の実施例に係る、センサ管理テーブルの一例を示す図である。
【図11】第1の実施例に係る、バッファ管理テーブルの一例を示す図である。
【図12】第1の実施例に係る、各センサデータに対する処理フローを示すフロー図である。
【図13】第1の実施例に係る、各種テーブルの更新処理を示すフロー図である。
【図14】第1の実施例の応用例のアプリケーション利用システムを模式的に示す図である。
【図15】第1の実施例の応用例に係る、温度センサ管理テーブルの一例を示す図である。
【図16】第1の実施例の応用例に係る、バッファ管理テーブルの一例を示す図である。
【図17】第1の実施例の応用例に係る、バッファIDに対応する領域メモリマップを示す図である。
【図18】第1の実施例の応用例に係る、センサグループテーブルの一例を示す図である。
【図19】第1の実施例の応用例に係る、演算起動設定テーブルの一例を示す図である。
【図20】第1の実施例の応用例に係る、演算ルートテーブルの一例を示す図である。
【図21】第1の実施例の応用例に係る、演算先指定テーブルの一例を示す図である。
【図22】第1の実施例の応用例に係る、送信条件比較テーブルの一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態を図面に従い説明する。なお、以下の説明において、各ノードやデータセンタを構成するサーバやコンピュータを構成する処理部である中央処理部(Central Processing Unit:CPU)が実行する各種のプログラムを、「プログラム」、「機能」、「部」等と呼ぶ場合がある。また、ネットワークに接続された、センサなどの複数の端末に接続され、センサ情報等の高効率集約を行うエントランスノード以外の、ネットワークに接続される各種ノード装置、データセンタ、更には管理ノード装置を上位ノードと呼ぶことを留意されたい。この上位ノードは、少なくとも処理部と記憶部と通信インタフェースを備えた通常のコンピュータ構成を有する。
【実施例1】
【0018】
図1は、第1の実施例に係る、ネットワークシステムの構成概要を示す図である。
【0019】
本実施例のネットワークシステムは,ネットワークの階層により,3種類のノードで構成される。まず,センサ101やアクチュエータ102などの制御機器,情報端末が接続されるネットワーク末端部に配置し,リアルタイム情報に対するデータのフィルタリングと集約などの一次処理を行うエントランスノード103がある。次に,ネットワーク105、107の中央部に配置し,エントランスノード103で集約された情報、或いは端末104からの情報をネットワーク105経由で受信し、それらの情報に対し,より高度な二次処理を行うインテリジェントノード106がある。情報処理や蓄積処理を実行するためのセンタノードであるデータセンタ108を経由せず、インテリジェントノード106にて情報処理が完了することが可能な場合には,インテリジェントノード106から直接、末端のアクチュエータ102などの制御機器等に応答ができるため,従来のデータセンタ108を経由した場合に比較し,より高速な応答時間を実現することが可能となる。また,このシステム中には、これらのノード103、106などの動作やネットワーク上の通信パスを管理する,管理ノード109がネットワーク107に接続されている。この管理ノードは、通常のコンピュータ構成を備え、上述したように、記憶部に記憶されたプログラムを実行する処理部と通信インタフェースを備え、この処理部が、後で説明するエントランスノード103等のコンフィグレーションデータや、各種のテーブルのデータ等の更新処理を行う。
【0020】
なお、図1においては、エントランスノード103、インテリジェントノード106、データセンタ108、管理ノード109のそれぞれの処理・機能を、フィルタ処理110、情報処理・通信処理111、情報処理・蓄積処理112、運用管理113として図示した。
【0021】
図2は、上述した本実施例のネットワークシステム中のエントランスノードの構成の一例を示した機能構成ブロック図である。
【0022】
同図において、エントランスノード103は、無線通信などにより接続される複数のセンサ101やアクチュエータ103からのセンサデータ等を受信するセンサ種別判別部201を備える。このセンサ種別判別部201は、受信したセンサデータに基づきセンサ種別を判別する。センサデータバッファリング部202は、センサ種別判別部201における判別結果と、バッファ管理テーブル205に記憶された情報に基づき、受信したセンサデータを、センサ種別毎にバッファリングする。
【0023】
また、エントランスノード103は、配下の複数のセンサ101等の管理を行うセンサ管理機能のためのセンサ管理部203とセンサ管理テーブル204とを備え、センサデータの取得条件、送信条件の設定を行う。同図において、点線の矢印は、センサ管理部203から各センサ101に伸びる制御バスを示している。
【0024】
更に、エントランスノード103には、受信しバッファリングした各種のセンサデータに対する、後述する演算部における演算の起動を制御する演算起動機能のため、起動判定部206を備える。この起動判定部206は、後で詳述する演算ルートテーブル207、センサグループテーブル208、演算起動設定テーブル209の各種テーブルに蓄積されたデータに基づき、バッファリング部202のセンサデータに対する演算の起動、すなわち、起動のタイミング、起動する演算部の演算器211、212、213を制御する。演算部の入出力部分には、それぞれ、デマルチプレクサ210、マルチプレクサ214が設置され、起動判定部206からの点線で示した制御バス上の制御信号により、これらの演算部を構成する各要素を制御することにより、演算の起動を制御する。
【0025】
また、エントランスノード103には、演算部における演算結果に対する送出制御機能がある。すなわち、演算結果やバッファリングしたセンサデータ自身、更にはイベント情報をネットワーク上の上位のノードへ送出するか否かを制御する機能である。この機能は、送信条件判定部215によって実現される。この機能の実現のため、送信条件判定部215には、後で詳述する送信条件比較テーブル216、送信条件テーブル217が接続されている。送信条件判定部215は、マルチプレクサ218を制御し、演算結果に基づき送信データの選択、廃棄を行う。
【0026】
最後に、エントランスノード103は、演算結果により、特定のセンサデータに対する演算起動条件を変更する機能を有する。この機能により、演算の種類、起動するタイミングを変更することができる。これらは、送信条件判定部215からセンサ管理部203と起動判定部206に伸びる、点線で示した制御バス上の制御信号によって実現できる。
【0027】
なお、後で詳述する各種テーブルの蓄積データは、インテリジェントノード106を介して、管理ノード109の処理部から書き換えすることができる。
【0028】
以上纏めると、エントランスノード103には下記の機能を備えている。
・センサの管理機能(センサデータの取得・送出条件の設定)
・センサデータの取得と振り分け機能(センサ種別毎にバッファリング)
・センサデータに対する演算の起動機能(起動のタイミング、起動する演算器の制御)
・演算結果に対する送出制御機能(上位へ送出する・しない、演算結果 or バッファリングしたセンサデータ or イベント情報の送出)
・演算結果による、特定のセンサデータに対する演算起動条件(演算の種類、起動するタイミング)変更機能、である。
【0029】
続いて、図3を用いて、本実施例における、エントランスノード103の具体的ハードウェア構成の一例を説明する。エントランスノード103のハードウェアは、センサ・アクチュエータ接続部301、フィルタリング処理部302、及び管理・制御部303、で構成する。センサ・アクチュエータ接続部301は、センサ101、アクチュエータ102との接続を行う部分であり、その内部にデジタル入出力部(Digital I/O)304、イーサネット(登録商標)コントローラ(Ethernet Controller)305、及びそれらを接続するバス306等を含んでいる。バス306には、例えば、PCI-ExpressなどのI/Oシリアルインタフェースを用いる。
【0030】
フィルタリング処理部302には、二つのFPGA (Field Programmable Gate Array)307、308、プログラム処理を行う処理部として機能するCPU (Central Processing Unit)309、これらに接続され、記憶部として機能するPROM (Programmable Read Only Memory)310、312とSDRAM (Synchronous Dynamic Random Access Memory)311、313、314から構成される。なお、FPGA307、308とCPU309と間はバス315と、割り込み線316で接続されている。また、管理・制御部303は、バス320に接続されたEthernet Controller 319、CPU317、SDRAM318とから構成される。バス320も、例えば、PCI-ExpressなどのI/Oシリアルインタフェースを用いる。なお、CPU1 309は、図2に示すCPU 219に対応するものである。
【0031】
管理・制御部303は,管理ノード109やインテリジェントノード111からの指示の下,ステータス情報の管理,実行されるアプリケーションの管理,を行う。フィルタリング処理部302はフィルタリング処理を含むセンサ情報集約処理を行う。フィルタリング処理部302は、FPGA307、308の搭載により,接続するセンサや実行するアプリケーションによって対応するフィルタ処理を書き換えることで,高速かつ柔軟な処理を可能とする。本構成例では、2個のFPGAで構成しているが,これはフィルタリング機能の書き換えを動的に行う際,一方のFPGA動作を継続させておくことで,装置機能の停止を回避するためであり、2個に限定されないことは言うまでもない。
【0032】
センサ・アクチュエータ接続部301は,上述のとおり、センサ101や制御機器を接続するイーサネット端子,Digital I/O端子,シリアル端子等の各種のインタフェースを搭載する。センサ101やアクチュエータ102の接続数を増加する場合は,フィルタリング処理部302を増設することで,フィルタリング処理の負荷分散を図ることが可能である。このエントランスノード103は、末端に多数配置することから,CPU309は組込み向けプロセッサを利用し,小型化・低電力化を狙う。
【0033】
図4は、図3のエントランスノード103内のフィルタリング処理部302、特にそのFPGA307、308の内部構成の一例を示す図である。フィルタリング処理部302は,入力される各種センサデータに対し高速に各種フィルタ演算を行い,管理・制御部303のCPU0 317に対し結果を通知する。また,各種センサ情報の優先度制御も行う。これらの演算制御を行うためのハードウェア論理を,フィルタリング処理部302が持つ2個のFPGA307、308上に実装する。
【0034】
2個のFPGA307、308は,データ入出力インタフェース以外で同じ構成となっており,クロスバ402、411により、入出力インタフェースである、PCI-Express Root Complex 401、PCI-Express End Point 419、LVDS I/F(Low voltage differential signaling interface)410、SDRAM等の各種の外部メモリインタフェース406、408,409、415、417、418、フィルタリング演算を行う演算制御部403、413、及び起動判定部405、414とセンサ種別判定部407と送信条件判定部416の判定部等が相互に接続される。なお、これらの演算制御部403、413や、各種判定部405、407、414、416は、リコンフィギュラブル・デバイスとしての各々のFPGA307、308の機能論理として実現できることはいうまでもない。
【0035】
FPGA307、308上の専用領域に保持された各種テーブル404、412は、図示を省略したラインにより、対応する各ブロックに接続される。これらの各種テーブルは、外部のSDRAM演算等のメモリに保存しても良いことは言うまでもない。センサ管理部203によるセンサ管理テーブル204を用いたセンサ管理機能は、CPU1 309のソフトウェアで行う。各種テーブル404、412は、CPU0 317、CPU1 309からのアクセスにより更新が行われる。また、演算制御部403、413は、図2中の演算器211、212、213に対応する、複数のバッファ(Buffer)付きの演算ブロック421、422を備えている。また、SDRAM I/F 409、418は、DMAC(Direct Memory Access Controller)を内蔵している。
【0036】
本実施例のエントランスノード103によれば、各種フィルタリング演算は演算ブロック421、422に実装される。各演算ブロック421、422に対し,各種インタフェースと各種メモリをクロスバ402、411で接続することで,データに対し複数の演算ブロック上で,任意の順序で任意の演算を実行することが可能な構成となっている。クロスバ402、411の設定は,各種テーブル404、412中の、センサ種別に対して演算パスを定義する演算ルートテーブル207上に保持される。演算ブロック421、422や各種インタフェースには識別子(ID)を割り振り,クロスバ402、411上を流れるデータに対して,行き先IDやデータの種別を表すIDで構成するヘッダ情報を付加することで,データパスの制御を行う。
【0037】
また,図4に示すFPGA307、308による論理は、管理・制御部303のCPU0 317とフィルタリング・フィードバック処理部302のCPU1 309間の通信を行うためのインタフェースも提供する。すなわち、CPU0 317から発行された命令やデータはPCI Express End Point 419を介してFPGA308上の図示を省略したFPGA307、308上のバッファ領域である通信用バッファに書き込まれ,割り込みによりCPU1 309が通知を受けて当該通信バッファを読み込むことで,CPU0 317からCPU1 309への通信を実現する。CPU1 309からCPU0 317の通信も,逆の手順で同様に行うことで実現する。なお、通信バッファは、外部のSDRAMを使って形成することもできることは言うまでもない。
【0038】
なお,フィルタリング演算のアプリケーションデプロイは,演算ブロック421、422に対し,ユーザが定義する各種フィルタリング演算をプラグインし,FPGA307、308をリコンフィグレーションする形で実現する。
【0039】
続いて、本実施例におけるエントランスノード103中の各種テーブルの具体例を図5〜図11を用いて説明する。
【0040】
図5は、図2に示した演算起動設定テーブル209の一例を示す図である。図5の演算起動設定テーブル500は、複数のアプリケーション各々に対応する演算起動設定のデータを蓄積するテーブルであり、アプリケーションが必要とするセンサデータとフィルタリング演算を定義し、更に演算起動条件他を蓄積する基本テーブルである。図5のテーブル500の横軸項目を以下順次説明する。
【0041】
サービスID・・・アプリケーションが要求するセンサデータ、フィルタリング演算を定義するための一意のIDである。各サービスIDに対応するテーブルの各行は、複数のアプリケーション各々に対応している。
センサID・・・センサ101を指定する物理的なIDである。さらに、センサ管理テーブル204を引くことで、センサ101の種別や属性(データ取得・送信時間)を取得することができる。なお、演算起動設定テーブル500の3行目に例示された”GR”はグループ指定されていることを示す。
センサグループID・・・対象センサが複数、グループ指定によりグループ化されていることを示す。この場合は、グループ化された各センサに対して、同じ演算を行う。
【0042】
演算ID・・・演算の種類を指定するIDである。さらに、演算ルートテーブルを引くことによって、どの演算をどの順番で行うかを取得する。
起動タイプ・・・演算器311、212、213の起動を行うトリガ条件の種別を指定する。例えば、図5に示すように、「時間」か「データ数」を用いることができる。次に述べる起動条件で、対応する値を指定する。
起動条件・・・演算器を起動するトリガ条件を数値で指定する。例えば、時間の場合は100[ms]毎に、データ個数では50[個]のデータが到着したら演算器を起動する。
【0043】
モード・・・起動タイミングまでに受信したデータをすべて各演算ブロックに送信する場合は”ACC”、起動タイミングで最新の受信データのみを送信する場合は”SMPL”を指定する。例えば、2秒おきに送出されるセンサデータに対し、60秒毎でしか情報が必要でない場合は、間引いてしまう必要がある。このような場合に、この”SMPL”モードを利用する。
【0044】
優先度・・・同じセンサを複数のアプリケーション、サービスで共有することも有り得るため、競合したときの優先度を規定する。
送信ID・・・演算の結果に対する処理を規定するIDである。さらに、後で説明する送信条件テーブル217を引く。
【0045】
図6は、センサグループテーブル208の具体例を示す図である。同図において、センサグループテーブル600は、図5の演算起動設定テーブル500の横軸中のセンサグループIDに対応する、実体のセンサIDを定義するテーブルである。各行に例示するように、センサグループIDに対応して、種々のセンサの組み合わせがある。
【0046】
図7は、演算ルートテーブル207の具体例を示す図である。本テーブル700は、図5の演算起動設定テーブル500中の演算IDに対してどの演算器、すなわち演算ブロックをどの順序で起動するかを示したテーブルである。同図において、演算ルートテーブル700は、演算器、すなわち演算ブロックのIDを指定する。複数の演算IDで一つの演算器が共有されることもある。競合する場合は、その演算が終わるまで、他の演算は待たされる。そのため、演算ブロックバッファを設けている。なお、演算結果を送信条件判定部215に送る場合は、”OUT”を指定する。
【0047】
例えば、図7に示すように、演算ID”1”では、まず、演算器”2”を起動し演算を実行し、その結果を演算器”4”に転送して実行することを示す。その後、送信条件判定部215に出力する。上述のとおり、各演算器はコンフィグレーションデータとして、管理ノード109の処理部からデータが配信可能である。
【0048】
図8は、本実施例における送信条件テーブル217の一例を示す図である。この送信条件テーブル800は、演算結果の送信先を示すと共に、送信条件IDと組み合わせて、演算結果の値に対する算術比較により、特定の条件のみに対してデータ送信を行う。
【0049】
同図において、送信条件テーブル800の横軸項目を順次説明する。
送信ID・・・送信を指定するIDである。
送信先・・・自CPUへ送信か、外部へ送信かを選択する。単純な比較による検出で無い場合は、そのままCPUへサービスIDと共に送信し、ソフトウェア処理にて送出条件を計算することもできる。
【0050】
送信タイプ・・・送信対象とするデータを指定する。「演算結果」は演算器での計算結果を示す。「イベント」は送信条件が検出されたときに、対象となるサービスIDのみをイベントとして送出する。「バッファデータ」は演算対象となる元のセンサデータをそのまま送信する。
送信条件ID・・・送信判定を行うための条件を示す。
送信先IPアドレス・・・送信先のIPアドレスを指定する。
送信先ポート・・・送信先のポートを指定する。
【0051】
図9は、本実施例における送信条件比較テーブル216の一例を示す図である。このテーブル900は、演算結果に対して送信条件を満たすかを判定するための算術比較演算を定義するテーブルである。
【0052】
同図において、送信条件比較テーブル900の横軸項目を順次説明する。
送信条件ID・・・条件式を区別するためのIDである。
比較子・・・算術比較子を表す。同図において、LTは、”less than”, MTは”more than”, EQは”equal”, LTEは”less than or equal, NEQは”not equal”, MTEは”more than or equal”を示している。
設定値・・・比較値を表す。
【0053】
図10は、本実施例におけるセンサ管理テーブル204の一例を示す図である。本テーブル1000は、各センサの管理を行うテーブルである。また、センサデータの取得・送出条件も指定する。
【0054】
同図において、センサ管理テーブル1000の横軸項目を順次説明する。
センサID・・・各センサに対し、一意で指定されるIDである。
センサ種別・・・各センサの機能を表す。
送出頻度・・・各センサにおけるデータの取得と送出の頻度を指定する。
【0055】
センサ識別子・・・センサの識別IDを表す。IPセンサの場合は、IPアドレスを指定する。図2に示したDigital I/O等の場合は、対応するポート番号を指定する。
センサ状態・・・センサの休止を指定できる。
【0056】
図11は、バッファ管理テーブル205の一例を示す図である。本テーブル1100は、バッファリングメモリ、リングバッファの管理に用いるテーブルである。センサデータに対するバッファリング領域を規定し、バッファされているデータの量とタイムスタンプを管理する。
【0057】
同図において、バッファ管理テーブル1100の横軸項目を順次説明する。
バッファID・・・バッファ識別IDを示す。
サイズ・・・確保しているバッファ容量を示す。
先頭位置・・・対象バッファの先頭アドレスを示す。
末尾位置・・・対象バッファの末尾アドレスを示す。
【0058】
単位データサイズ・・・センサ単発のデータのデータサイズを示す。
最新データポインタ・・・最新のデータを格納すべきポインタアドレスを示す。
最新データタイムスタンプ・・・格納されている最新データのタイムスタンプを表す。
末尾データタイムスタンプ・・・格納されている最古のデータのタイムスタンプを表す。
【0059】
以上、本実施例におけるエントランスノード103における各種のテーブル内容の具体例を説明した。続いて、本実施例における、エントランスノード103における、各センサデータに対する処理と、各種テーブルの管理ノード109の処理部からの更新処理について、図12、図13を用いて説明する。
【0060】
まず、図12において、エントランスノード103で、ステップ1200において、センサデータに対する処理が開始されると、センサデータの受信が行われ(ステップ1201、以下カッコ内「ステップ」省略)、センサ種別判別部201において、各センサデータのセンサID、サービスIDの判別が行われ(1202)、判別結果に基づき、センサデータバッファリング部202でセンサデータのバッファリングが行わる(1203)。そして、バッファリングされたセンサデータに対し、起動判定部206が、演算器起動条件の判定を行う(1204)。その結果、演算器起動でない場合(1205のN)は、センサデータの受信(1201)に戻る。
【0061】
判定結果が演算器起動の場合(1205のY)は、演算ルートテーブル207に従い、選択された演算器211、212、213に基づき、センサデータに対し演算が実行される(1206)。最後に、送信条件判定部215において、演算結果に基づき、演算結果の送信を行うか否かの判定が行われる(1208)。その結果が否の場合(1208のN)は、結果を破棄し(1210)、その結果が要の場合(1208のY)は、送信条件テーブルに従い、結果を外部、又はCPU1 309に送信される(1209)。
【0062】
次に、図13において、ステップ1300において、管理ノード109の処理部による更新処理フローが開始すると、まず管理ノード109上にて、各種テーブル情報、FPGAコンフィグュレーション情報を入力し(1301)、対象のエントランスノードIDを指定し、インテリジェントノード106に転送する(1302)。インテリジェントノード106は、対象とするエントランスノード103に転送を行う。
【0063】
各エントランスノード103は、それらの設定情報の受信を行う(1304)。そして、PFGAコンフィグュレーションが有るか否かをチェックし(1305)、その結果、無の場合(1305のN)は、バッファリングは継続しながら、演算機能の停止を行う(1306)。そして、各種テーブル情報に基づき、各種設定テーブルを更新し(1307)、演算機能の再開を行う(1308)。一方、有りの場合(1305のY)は、センサ受信・演算機能の停止し(1309)、FPGAの再コンフィグレーションを実行し(1310)、センサ受信・演算機能の再開を行う(1311)。
【0064】
以上、実施例1のネットワークシステムの構成・機能について説明した。引き続き、図14〜図22を用いて、本実施例システムの応用例として、温度センサデータを用いる複数のアプリケーション利用システムへの応用例について説明する。
【0065】
図14は、温度センサを利用したアプリケーションの適用構成を模式的に示す図である。工場等の屋内スペース1400に対し、温度センサ1401を5個(SNx; xはID、1〜5)配置する。また、当該屋内スペース1400内に設置された、監視対象である機械装置(MC)1402に対しても温度センサ1401(SN0)を付加する。これらの温度センサ1401(SN0,1〜5)の出力は、無線ゲートウェイ(WGW)1403を経由して、上述したエントランスノード(EN)103に送られる。本応用システムにおけるエントランスノード(EN)103では、以下では、複数のアプリケーションとして、3個のユーザアプリケーションが動作する。
空調管理アプリケーション
当該スペースの空調管理を行うために、温度センサSN1〜5で30秒毎に温度を測定し、1分間分の各センサの全体平均を算出する。ネットワーク105を経由して、上位のインテリジェントノード106またはサーバへは1分間の当該スペースの平均値を送付し、その結果を用いて空調装置を制御する。
(2)機械装置保守監視アプリケーション
当該装置の異常傾向を温度から監視する。2秒毎に測定した温度を100点分(200秒間)蓄積し、100点分の温度分布を、予め定めた異常傾向パタンと比較し、その類似度を上位に送出する。計算は、注目点の前3点分を含めた計4点分のデータの平均値を当該の注目点データとする(ノイズ除去のための平滑化)。次に、各点の微分値を計算する。さらに、微分値の計算結果と予め定めた異常傾向パタンデータとの距離を求めることで、類似度を導出する。この平均値と微分計算は上述したエントランスノード302のFPGA1 307、FPGA1 308のハードで行い、距離計算はCPU1 309で行う。
(3)機械装置異常監視アプリケーション
機械異常を温度判定で監視する。2秒毎に温度を測定し、一定以上の温度を検出した場合は、上位のインテリジェントノード306またはサーバに対しイベントを送出する。
【0066】
これらのアプリケーションを動作させるための情報は、各テーブルに管理ノード109からインテリジェントノード106を介して、エントランスノード103に配信され、エントランスノード103の管理ソフトウェアにより、各テーブルが更新される。また、本アプリケーションで用いるFPGA上の演算ブロック421、422は、以下の3種類である。これらの演算ブロック向けの回路を含むFPGAコンフィグレーション情報は、同様に管理ノード109の処理部から配信される。このコンフィグレーション情報を用いてエントランスノード103の管理ソフトウェアがFPGAを書き換えることで、演算ブロックが実装される。
【0067】
演算ブロックは以下の機能を持つ。
*平均値算出(演算ブロックID=0)
入力された複数個のデータの平均値を計算し、出力する。応用(1)空調管理に使用する。
*フィルタ処理(演算ブロックID=1)
平滑化フィルタであり、入力された各データと、ブロック内のバッファに保持されている前の3点のデータと当該入力データの計4点の平均値を計算し、その結果を出力する。複数の入力データに対し連続で計算し、結果を出力する。応用(2)機械装置保守監視に使用する。
*微分値計算(演算ブロックID=2)
(2)機械装置保守監視で出力した結果に対し、微分値(傾き)を計算して出力する。応用(2)機械装置保守監視に使用する。
【0068】
図15〜図22に本応用例の温度センサデータ利用のアプリケーションシステムにおける、各種のテーブルの具体例を示した。図15は、温度センサ管理テーブル1500を、図16はバッファ管理テーブル1600を、図18はセンサグループテーブル1800を、図19は演算起動設定テーブル1900を、図20は演算ルートテーブル2000を、図21は送信先指定テーブル2100を、図22は送信条件比較テーブルを示す。なお、図17は、図16のバッファIDに対応する領域のメモリマップを示す図である。
【0069】
図15の温度センサ管理テーブル1500は、各センサの取得(送出)頻度を設定する。センサID=0(SN0)は、上述したように機械装置監視用であり2秒毎に取得する。センサID=1〜5(SN1〜SN5)は、空調管理の部屋温度測定用であり、10秒毎に取得する。
【0070】
図16のバッファ管理テーブル1600は、各センサからのデータを保存する場所を示す。同図の横軸の、領域サイズは、各データの保存領域のサイズを示す。領域のアドレスは、先頭位置、末尾位置で指定される。バッファID0は温度センサSN0のデータを保持する領域であり、バッファID1〜5は温センサSN1〜5に対応する領域である。温度センサSN0は、温度センサSN1〜5の5倍の頻度でセンサデータが到着するため、ID0は5,120バイト、ID1〜5は1,024バイトとしている。
【0071】
また、単位データサイズは、各センサからの1データのデータサイズであり、温度データは2バイトで表現される。最新のデータ格納ポインタは、最新データのアドレスを示す。タイムスタンプは、センサデータ取得開始時からの一意な時間IDを示している。
【0072】
図17に、バッファIDに対応する各領域のメモリマップ1700を示した。
【0073】
図18のセンサグループテーブル1800は、空調用に用いるセンサSN1〜SN5(センサID=1〜5)はグループとして扱うことを示す。
【0074】
図19の演算起動設定テーブル1900では、サービスIDが、応用(1)〜(3)に相当する。つまり、
ID0=(1)空調管理
ID1=(2)機械装置保守監視
ID2=(3)機械装置異常監視
同図において、センサIDは、各サービスが用いるセンサを示す。サービスID0ではSN1〜5をグループとして扱う。センサグループIDは、グループ化するセンサの場合、センサグループテーブルのID(“0”)を指定する。演算IDは、演算ルートテーブルで指定する演算機能を指定する。ID0は、平均値計算、ID1は平滑化フィルタ+微分値計算、ID2は演算なしスルーを示す。
【0075】
起動条件は、演算を開始するタイミングを示す。サービスID0は60秒毎、ID1は300秒毎、ID2は1データ毎である。モードは、起動条件で設定された時間内に受信されたデータを、演算ブロックに送付するか、廃棄するかを指定する。”ACC”は、受信されたデータすべてを演算ブロックに送出、”SMPL”は、上述した通り、演算ブロックが起動されるタイミングで受信された最新のデータのみを送信する。
【0076】
優先度は、数値が高いほうが優先である。ID2の異常監視が最優先のため“10”。次に、ID1の保守監視で“5”、ID0空調管理は優先度最低で“1”となる。送信IDは演算結果の送付先・条件を定義した送信条件テーブルを参照するためのIDを示している。
【0077】
図20の演算ルートテーブル2000は、各アプリケーションで使用する演算ブロック(機能)を指定する。
【0078】
同図において、演算ID0(空調管理)は、まず演算ブロック0を起動し入力されたデータ(5台分30秒毎のセンサデータ、60秒分)の平均値を計算、結果判定部に出力する。演算ID1(機械装置保守監視)では、まず入力データに対し演算ブロック1を起動し平滑化フィルタ演算を実行。次にその結果を演算ブロック2に転送し、微分値計算を実行。その後結果判定部に出力する。演算ID2(機械装置異常監視)では、演算ブロックへは転送せずに、そのまま結果判定部に出力する。
【0079】
図21の送信先指定テーブル2100は、各サービスIDに対する演算結果の送信先を指定するテーブルである。
【0080】
同図において、送信ID0(空調管理)では、演算結果を外部(指定IPアドレスとポート)に対し送信。送信の条件はAnyであり、結果の出力と同時に上位に送信する。送信ID1(機械装置保守監視)では、演算結果をCPU0に送信する。送信条件はAnyであり、結果の出力と同時にCPU0へ送信する。送信ID2(機械装置異常監視)では、演算結果を外部(指定IPアドレスとポート)に送信する。送信条件IDは0であり、送信条件比較テーブルを参照し、条件を満たす場合にイベント情報(異常状態情報)を上位に送信する。
【0081】
図22の送信条件比較テーブル2200は、送信条件を定義するテーブルである。演算結果が50以上(More Than or Equal)の場合は、条件を満たす。つまり、50度以上で温度異常と判定する。
【産業上の利用可能性】
【0082】
本発明はノード装置に係り、特にネットワークの末端にて、複数種類のセンサ情報を効率良くフィルタリングする情報処理技術として有用である。
【符号の説明】
【0083】
101…センサ
102…アクチュエータ
103…エントランスノード
104…端末
105、107…ネットワーク
106…インテリジェントノード
108…データセンタ
109…管理ノード
110…フィルタ処理
111…情報処理・通信処理
112…情報処理・蓄積処理
113…運用管理
201…センサ種別判別部
202…センサデータバッファリング部
203…センサ管理部
204、1000…センサ管理テーブル
205、1100、1600…バッファ管理テーブル
206…起動判定部
207、700、2000…演算ルートテーブル
208、600、1800…センサグループテーブル
209、500、1900…演算起動設定テーブル
210…デマルチプレクサ
211、212、213…演算器
214、218…マルチプレクサ
215…送信条件判定部
216、900、2200…送信条件比較テーブル
217、800…送信条件テーブル
219、309、317…CPU
301…センサ・アクチュエータ接続部
302…フィルタリング処理部
303…管理・制御部
304…デジタル入出力部
305、319…イーサネットコントローラ
306、315、320…バス
307、308…FPGA
310、312…PROM
311、313、314、318…SDRAM
316…割り込み線
401、419…PCI Express
402,411…クロスバ
403、413…演算制御部
404、412…各種テーブル
405、414…起動判定部
406、415…CPU I/F
407…センサ種別判別部
408、417…ROM I/F
409、418…SDRAM I/F
410…LVDS I/F
416…送信条件判定部
1400…屋内スペース
1401…温度センサ
1402…機械装置(MC)
1403…無線ゲートウェイ(WGW)
1500…温度センサ管理テーブル
1700…メモリマップ
2100…送信先指定テーブル。

【特許請求の範囲】
【請求項1】
ネットワークを介して、複数のアプリケーションに対応するデータを送信するノード装置であって、
複数のセンサからのセンサデータを受信し、複数の前記センサの種別を判別するセンサ種別判別部と、
前記センサ種別判別部の判別結果に基づき、前記センサデータを種別に応じて蓄積するバッファリング部と、
要求される前記アプリケーションに対応した演算起動条件に従い、前記バッファリング部に蓄積された前記センサデータに対する演算処理を実行する演算部と、
前記演算部の演算結果に基づき、前記演算結果の送信条件を判定する送信条件判定部を備えた、
ことを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置であって、
前記アプリケーション毎の前記センサデータに対する演算種類と、当該演算種類を実行するための起動条件を蓄積する演算起動設定テーブルと、
前記演算起動設定テーブルに基づき、前記バッファリング部に蓄積された前記センサデータ各々に対する演算起動を判定する起動判定部を備えた、
ことを特徴とするノード装置。
【請求項3】
請求項2に記載のノード装置であって、
前記演算部は、複数の演算器を備え、
前記演算種類に対応し、前記演算器の起動順序を蓄積した演算ルートテーブルを更に備え、
前記起動判定部は、演算ルートテーブルに基づき、前記演算種類に対応する前記演算器を順次起動する、
ことを特徴とするノード装置。
【請求項4】
請求項3に記載のノード装置であって、
前記ネットワークを介して管理ノードから、複数の前記テーブルの蓄積情報が配信された際、
前記演算部の演算を停止し、前記蓄積情報に基づき、複数の前記テーブルを更新する、
ことを特徴とするノード装置。
【請求項5】
請求項3に記載のノード装置であって、
前記ネットワークを介して管理ノードから、前記演算部の前記演算器のコンフィグレーションデータが配信された際、
前記センサからの前記センサデータの受信、及び前記演算部の演算を停止し、前記コンフィグレーションデータに基づく、再コンフィグレーションを実行する、
ことを特徴とするノード装置。
【請求項6】
請求項1に記載のノード装置であって、
前記演算部における演算結果に基づき、前記演算結果の送信先と送信データタイプを含む送信条件を蓄積する送信条件テーブルを備え、
前記送信条件判定部は、前記送信条件テーブルに基づき、前記送信先に前記送信データタイプに対応するデータを送信するよう制御する、
ことを特徴とするノード装置。
【請求項7】
請求項6に記載のノード装置であって、
前記演算結果が、前記送信条件テーブルに蓄積された前記送信条件を満たすか否かを判定する判定演算を蓄積する送信条件比較テーブルを更に備え、
前記送信条件判定部は、前記条件比較テーブル基づき、前記演算結果の送信を判定する、
ことを特徴とするノード装置。
【請求項8】
請求項1に記載のノード装置であって、
複数の前記センサの種別、及び前記センサデータの取得と送出頻度を蓄積するセンサ管理テーブルと、
前記センサ管理テーブルに基づき、複数の前記センサの管理を行うセンサ管理部を備えた、
ことを特徴とするノード装置。
【請求項9】
ネットワークを介して、複数のアプリケーションに対応するデータを送信するエントランスノード装置と接続される管理ノード装置であって、
処理部と記憶部を備え、
前記処理部は、
複数のセンサからのセンサデータを受信し、前記センサの種別を判別するセンサ種別判別部と、演算起動設定テーブルに蓄積した、前記アプリケーションに対応した演算起動条件に従い、前記センサデータに対する演算処理を演算部で実行し、送信条件に従い演算結果を外部に送信する前記エントランスノード装置に対し、
前記演算部のコンフィグレーションデータを配信する、
ことを特徴とする管理ノード装置。
【請求項10】
請求項9に記載の管理ノード装置であって、
前記処理部は、
前記エントランスノード装置の前記演算起動設定テーブルの蓄積情報を前記エントランスノード装置に配信する、
ことを特徴とする管理ノード装置。
【請求項11】
ネットワークを介して、上位ノードと接続され、複数のセンサからのセンサ情報を受信するノード装置における情報処理方法であって、
前記ノード装置は、
複数の前記センサからのセンサデータを受信し、複数の前記センサの種別を判別し、
要求されたアプリケーション毎の演算起動条件に従い、種別が判別された前記センサからの前記センサデータ各々に対する演算処理を実行し、
前記演算処理の結果に基づき、前記演算結果の送信条件を判定し、
前記判定結果に応じて、前記演算結果を送信する、
ことを特徴とする情報処理方法。
【請求項12】
請求項11に記載の情報処理方法であって、
前記ノード装置は、
前記アプリケーション毎の、前記センサデータに対する演算種類と、当該演算種類を実行するための起動条件を蓄積する演算起動設定テーブルに基づき、蓄積された前記センサデータ各々に対する演算処理の起動を判定する、
ことを特徴とする情報処理方法。
【請求項13】
請求項12に記載の情報処理方法であって、
前記ノード装置は、
前記ネットワークを介して前記上位ノードから、前記演算起動設定テーブルの情報が配信された際、
前記演算処理を停止し、前記情報に基づき、前記演算起動テーブルを更新する、
ことを特徴とする情報処理方法。
【請求項14】
請求項11に記載の情報処理方法であって、
前記ノード装置は、
前記ネットワークを介して前記上位ノードから、前記演算処理を実行する演算器のコンフィグレーションデータが配信された際、
前記センサからの前記センサデータの受信、及び前記演算器の演算処理を停止し、前記コンフィグレーションデータに基づく、再コンフィグレーションを実行する、
ことを特徴とする情報処理方法。
【請求項15】
請求項11に記載の情報処理方法であって、
前記ノード装置は、
前記演算処理の演算結果に基づき、前記演算結果の送信先と送信データタイプに対応するデータを、前記ノード装置から外部に送信するよう制御する、
ことを特徴とする情報処理方法。

【図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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2011−244406(P2011−244406A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−117416(P2010−117416)
【出願日】平成22年5月21日(2010.5.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】