開発ツール/プラットフォーム 開発ツール/プラットフォーム記事一覧へ

[技術解説]

「Node-RED」によるアプリケーション開発の流れ、事例、注意点[後編]

IoTに不可欠なアジャイル開発ツールの活用ポイント

2017年11月28日(火)處雅尋、中西数樹、西山博泰

IoTに取り組む際に必要なアジャイル型開発を可能にするオープンソースツール「Node-RED(ノードレッド)」。これを解説する後編では、一歩踏み込んで、IoTアプリケーション開発の流れとNode-REDの関係や利用事例について述べる。

 IoTに不可欠なアジャイル開発ツール「Node-RED」の特徴[前編]では、IoTシステム開発の問題と、Node-REDによって解決できることを示しました。後編ではNode-REDの機能や事例を紹介します。IoTアプリケーション開発におけるNode-REDの利用は、エッジデバイス、クラウド環境の2つに大きく分類できます。

 センサーからデータを収集したり1次加工したりするエッジデバイスは高機能化が進んでおり、Node-REDを動作させるリソースを備えたデバイスが多数存在します。Raspberry PiIntel IoT Gatewayがその例です。

 これらにNode-REDを搭載することで、データの収集処理を簡単に構築できます。Node-REDには初めからセンサー入力や通信のためのノードが用意されており、これらに画像解析などコミュニティ開発されているノードを加えて利用できるためです。

 クラウド環境では収集したデータの分析や可視化など、大量データの加工や知見の抽出、外部システムとの連携といった一連の処理をNode-REDで開発・実行できます。容易に推察できると思いますが、Node-REDにはこういった処理に欠かせないデータベースへのアクセスや分析、他のサービス連携などの機能を提供するノードが用意されています。

 このようなNode-REDプラットフォームを提供するクラウドサービスも、すでに複数存在します。Sense TecnicのFRED環境IBM Cloud、および筆者らが関わっている日立IoTプラットフォームLumadaなどです。前2者は、登録などが必要なものの試用が可能ですので、試しにアクセスして使ってみることをお勧めします(関連記事日立がLumadaのプログラミングツールに採用した「Node-RED」とは)。

Node-REDによるIoTシステムの実現

 このようにNode-REDはエッジデバイスでも、サーバー(クラウド)でも利用可能です。次にエッジデバイスとサーバーを連携したIoTアプリケーションをNode-REDで開発する具体的なイメージを説明しましょう。

 IoTシステムでは一般に、(1)データ取得と一時加工、(2)データ集約、(3)データ蓄積、(4)システム間連携、(5)可視化、(6)フィードバック、(7)サービス連携の7つの機能が必要とされます(図1)。Node-REDはこれらをサポートする機能を備えており、素早くアプリケーションを構築し、導入効果を確認しながらアジャイルに進化させることができます。

(図1)IoTシステムをNode-REDで開発する際のイメージ
拡大画像表示

(1) センサーデータ取得と一次加工処理
Raspberry Piなどのエッジデバイスは、GPIO(General-Purpose Input/Output)やシリアルポートといったインタフェースを備えており、ここに加速度センサーや温度センサーなどを接続します。Node-REDには、これらセンサーから情報を取得するノードが標準で用意されているため、データを取得する処理を簡単に記述できます。データ加工を行うノードを用いることで入力データに対して一次処理を行い、転送データ量を削減することも可能です。

(2) エッジからクラウドへのデータ集約
Node-REDには、「MQTT」や「WebSocket」といったデバイス通信プロトコルに対応したノードが標準で用意されています。これらのノードを用いることで、エッジデバイスで収集したデータを転送できます。受け側のクラウドサーバではMicrosoft AzureやIBM Cloudなどのノードが提供されており、主要な商用パブリッククラウドにデータを転送できます。

(3) データレイクへのデータ蓄積
Node-REDコミュニティから、主要なデータベースやオブジェクトストレージなどとの連携ノードが提供されています。これらを用いてエッジから転送されたデータを蓄積し、必要に応じて取り出す処理を記述できます。データベース用のノードを利用する際には、ノードをインストールするだけで、アクセスに必要なドライバなどのソフトウェアが自動的にインストールされますので、難しいことを意識する必要はありません。

(4) 既存システムとの連携
企業が運用する既存システム連携はどうでしょうか。Node-REDではシステム間の連携に用いられるREST APIにアクセスするノードが用意されています。企業内の既存システムがREST APIに対応していればという前提条件がありますが、これを満たせばシステム間の連携を実現できます。

(5) ダッシュボードによるデータの可視化
Node-REDで提供されているダッシュボード機能を用いることで、データレイクに蓄積したデータを容易に可視化できます。ダッシュボードではチャート、ボタンなど標準的な部品に加え、HTMLを記述できるノードが提供されています。これをD3など高機能な可視化ライブラリと組み合わせることで、高度な可視化を可能にしています。

(6) エッジデバイスへのフィードバック
サーバへのデータ転送で用いるMQTTやWebSocketの経路を逆向きに用いて、エッジデバイスの制御へフィードバックすることもできます。

(7) 外部サービス連携
コミュニティから提供されているノードを用いて、外部のサービスと連携させることができます。例えばRSSノードを用いてニュースデータの更新を契機に処理を開始したり、e-mailノードを用いてセンサデータの異常をメール通知させたりする処理を記述できます。その他にWatsonのような人工知能API、Predix Time SeriesのようなIoTシステムのサービスとの連携もできます。外部サービスにアクセスするノードが提供されていない場合は、REST APIやNode.jsのSDKが提供済みあれば、少ない工数でノードを開発できます。

●Next:世界中で活用が始まっているNode-REDの主な事例

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
関連キーワード

日立製作所 / Node-RED / Lumada / アジャイル

関連記事

トピックス

[Sponsored]

「Node-RED」によるアプリケーション開発の流れ、事例、注意点[後編]IoTに取り組む際に必要なアジャイル型開発を可能にするオープンソースツール「Node-RED(ノードレッド)」。これを解説する後編では、一歩踏み込んで、IoTアプリケーション開発の流れとNode-REDの関係や利用事例について述べる。

PAGE TOP