株式会社 日立製作所 泉 勝
はじめに
IDCなどのメディアや経済産業省の発表では、将来的なIT人材の不足が予想されており、誰もが開発者となれるようなローコード/ノーコードツールに注目が集まっています。
本稿では、ブラウザ上で図形を操作してプログラムを作成するNode-REDを紹介します。Node-REDはコーディングしなくてもプログラムを作成できるため、高校生を対象とした「プログラミング授業」などでも活用されています。
コーディングしなくてもプログラムが作れる
次がNode-REDのエディタの実際の画面です。目的に合わせてノードを組み合わせることでコーディングなしに高機能なプログラムを作ることができます。
-
画面左の「パレット」に、利用できる「ノード」が格納されています。ノードは、「Webサイトから情報を取ってくる」「メールを送信する」といった**”特定の機能”**を備えます。
-
選択したノードを画面中央の「ワークスペース」にドラッグ&ドロップで配置します。
-
連携させたい機能のノードと「ワイヤー」で繋げます。このノードを線で繋げた処理の流れを「フロー」と呼び、フローを作成するだけでプログラムが作成できます。
-
デプロイボタンをクリックすると、すぐにフローのプログラムを実行します。
Node-REDの特徴 -「迅速」「標準」「オープン」
Node-REDの特徴は、迅速、標準、オープンの3つのキーワードで表すことができます。
迅速な開発を実現するフローベースのプログラミング
ノードをワイヤーで結ぶプログラム表現は直感的であり、現場の技術者やスタッフなどプログラミングに精通していないユーザーでもIoTアプリケーションの作成や改変を迅速に行うことができます。フローベースプログラミングには、Node-REDの他にもApache NiFiやNoFloなどがあります。
IoT向けの標準技術を提供
Node-REDは、REST APIやMQTTプロトコル、WebSocketプロトコルなど、IoTに必要とされる標準的な技術をサポートしています。
Node.jsが動く環境であれば利用できるため、Raspberry PiなどのエッジデバイスにNode-REDを搭載することができます。またクラウド環境では、IBM Cloudや筆者が関わるLumadaでNode-REDをサポートしています。これらエッジデバイスとクラウド環境で同じ手法でアプリケーションを開発することができます。
オープンソースコミュニティ
Node-REDは、Linux Foundation (JS Foundation)に属するOSSです。Node-REDコミュニティでは2018年12月10日時点で1774個のノードが公開されています。センサー入力、通信、画像解析、SNS連携、データ分析、可視化など多種多様なノードを自由に活用できます。
Node-REDによるIoTシステムの実現
IoTシステムでは一般に、1) データ取得と一時加工、2) データ集約、3) フィードバック、4) 可視化、5) データ蓄積、6) システム間連携、7) サービス連携の7つの機能が必要とされます。Node-REDはこれらをサポートする機能を備えており、IoTシステムの開発を容易に進めることができます。
(1) センサーデータ取得と一次加工処理
(2) エッジからクラウドへのデータ集約
(3) エッジデバイスへのフィードバック
(4) ダッシュボードによるデータの可視化
(5) データレイクへのデータ蓄積
(6) 既存システムとの連携
(7) 外部サービス連携
#おわりに
本稿ではNode-REDが備える機能やその活用方法について紹介しました。着実に進化を続けるNode-REDを是非お試しください。