センサーデータの段階的な加工

本節では、一連のデータ収集と可視化が可能になった次の段階としてエッジ側でのデータ加工が必要な場合の設計について説明します。

Device Adapterによる0次加工

Device Adapterのプログラム内でデータを加工する事も出来ますが、Device Adapter内で生のデータを加工してしまう事で、生のデータに含まれる情報が失われる可能性があります。

Device AdapterはDevice と正常に接続できている間は、Deviceから採取できた生のデータをそのままICE Coreに送信する事を検討してください。例えば、Deviceから不正なデータを取得した場合や空のデータを取得した場合もその情報をそのままの表現でICE Coreに流し、不正なデータのフィルタはICE Coreやその先のEdge Applicationに任せるように設計します。

こうしておくことで、ICE Coreやそこにつながるアプリケーションによって、不正なデータの発生自体をDeviceの異常検知に利用する等の応用や発展が可能になります。

Node-REDフロー定義による1次加工

Node-REDのフロー定義によって、JavaScriptによるデータ加工処理を実装できます。単純な値の判定によるフィルタや加工であれば、無用なプロセス間通信も発生しないこの方法での実装を検討してください。

Edge Applicationによる1次加工

C/C++のプログラムによるデータ加工処理も実装することが出来ます。

既存の組込プログラム向けのライブラリやソフトウェア資産を活用する場合に有効です。

MessageRouterによる2次加工

エッジ内での加工だけでなく、バックエンド側でMongoDBにデータを格納する前にデータを加工する事も可能です。