日立製作所の「Lumada(ルマーダ)」は、製造業としてのノウハウをIT技術とシンクロさせた、欧米の製造業向けIoTである「Predix(米GE)」「MindSphere(独シーメンス)」らに対抗する国産IoTプラットフォームだ。日立がLumadaを国内外で戦えるようにするために取った戦略のひとつが、オープンソースのプログラミングツール「Node-RED」の採用だ。Node-REDの採用は、ユーザーオリエンテッドなIoT開発の起爆剤となりそうだ。
日立では、IoTを始めとするさまざまなユーザー企業向けソリューションをLumadaというプラットフォーム上で開発している。日立が蓄積してきたさまざまなノウハウが、Lumadaを介して横展開できるようになるのが理想だ。
では、あるユーザー向けに開発したソリューションを部品のように横展開するには、どうしたらよいのか。そのソリューションの処理手順をソフトウェアの形で蓄積していくため、処理手順のフローを記述できるものが必要となる。
従来の日立であれば、自社サービスの中核となるIoTプラットフォームのプログラミングツールともなれば、自社開発があたりまえだった。しかし、Lumadaが活躍するのは、巨大な社会インフラシステムや工場システムなど。現状、ゼロクリアで一から作り上げるようなシステムはほとんど存在しない。
多くの場合巨大なシステムの一部を開発して、他社が開発した既存のシステムとの連携が求められることになる。その場合、日立オリジナルの技術で開発しても効率が悪くなるだけだ。
世の中のディファクトになっているものを使った方が良いとの判断から、オープンソースとして公開されているもののなかから適したものを探すことにした。そこで目を付けたのがJavaScriptベースのNode-REDだった。
オープンソース化したNode-RED
Node-REDは、英国IBMのHursley研究所で開発されたUI(ユーザーインターフェース)、操作性に優れたプログラミングツールだ。オープンソースとして公開されており、IBMのPaaSであるBluemixだけでなく、サーバーサイドのJavaScriptであるNode.jsが動く環境であれば、AWSであろうがAzureであろうが、どのベンダーのPaaSでも利用できる。
なぜJavaScriptなのかというと、ずばり「技術者が集めやすいから」だ。日本では未だJava技術者が全盛だが、グローバルでは似て非なるものであるJavaScriptのポピュラリティが高く、海外の大規模開発ではこちらの方が集めやすいという事情がある。
Raspberry Pi標準のプログラミングツールとして採用されていることからもわかるように、Node-REDはクラウドだけでなくローカルのPCや組込みボードでもブラウザーさえあれば使える。
さらに、各種のセンサープロトコルに対応したプラグインも豊富に用意されている。そもそも、IBMのHursley研究所はIoTアプリケーションに適しているといわれるMQTTプロトコルを開発したところでもあり、IoTとの親和性は非常に高いといえる。
唯一、Node-REDがIBMという1社お抱えのオープンソースプロジェクトであったことがネックとなり全面採用に至っていなかったが、2016年10月にJavaScriptの非営利団体がLinux Foundation内に設立された。設立メンバーとして名を連ねたIBMがその団体にNode-REDを寄贈したことで、晴れてオープンソースコミュニティとなった。
日立の研究開発チームとしてはすでにNode-REDの評価や足りない機能の作り付け等は行っていたが、正式にコミュニティにLumadaへの採用を打診したところ快く迎え入れてくれた。そこで日立からも、これまで開発してきたNode-RED用の追加機能を公開することになった。
これまで日立の開発現場では作業手順書しか残っておらず、ソフトウェアの蓄積はできていなかった。極力Node-REDで記述することにし、ソフトウェア化できるところをNode-REDのソフトにしていくことで、ソリューションが蓄積される。それを部品化することで横展開しやすくなるというメリットも見えている。
Node-REDで記述された業務フロー図は、JSONフォーマットで出力できる。JSONで記述されたものをテキストでメール送信すると、受け手側がNode-REDの環境でそのテキストを展開すれば業務フロー図がそのまま再現できるので、業務フロー図の共有が楽に行えるようになる。
拡張機能としてデータ連携技術を開発
そんなNode-RED用の機能拡張として日立が2017年8月に発表したのが「Flow Connection Gateway」だ。これは、Node-REDで開発されたシステムと、JavaScript以外で書かれたプログラム間でのデータ連携を簡素化する技術だ。具体的には、他のシステムとの連携をAPI化して、そのAPIを統合管理する技術。接続先システムのAPIを指示すれば、細かいメッセージパッシングの設計を大幅に端折ることができる。
さらに日立は、Flow Connection Gatewayと容易にリンクするために、新たなノードである「External Link Node」を開発、パレットに追加した。例えば、日立の中でもKNIMEで開発したアナリティクスのプログラムやPentahoを使ったビッグデータプログラム、同社の人工知能「H」を使って動いているシステムなどが散在している。External Link Nodeを貼りつけて設定すれば、これらをNode-REDから呼び出すことができるようになる。
拡大画像表示
Flow Connection Gatewayは、以下の3つのニーズに応えることができる。
①他社が開発したクラウドの機能(Google Mapなど)を使いたい。
②エッジ側のシステムと現場システム(制御システムなど)、データセンターのクラウドシステム(Lumada)をスムーズにつなぎたい。
③様々な言語、ツールを使ったプログラム同士をスムーズにつなぎたい。
OT領域とIT領域が融合するIoTにおいて、Lumadaが果たす役割とは、OT領域で収集したデータを処理・解析して可視化することにある。Lumadaで可視化されたデータが、IT領域におけるアクションにつながる。Node-REDはまさしく、Lumadaにおける処理・解析、可視化で活用されるものだ。
拡大画像表示
このGUIベースのプログラミングツールであるNode-RED、1週間あれば自由に操作できるようになるという。近年、ユーザーとベンダーの「協創」が叫ばれ、様々なベンダーがブレインストーミングを行える協創空間を用意している。ホワイトボードや付箋を使って行うのも良いが、どうしても机上の空論に陥ってしまうことは避けられない。
ユーザーとベンダーがどちらもNode-REDを使いこなすことができれば、Node-REDでどんどん簡易システムを作成して、動かしてみることができる。ブレインストーミング用のモックアップシステムとしてNode-REDを使えば、性能要件や信頼性要件、非機能要件を、本番前に実際に動くシステムで試すことが可能となる。PoC(概念実証)の絶好のツールともなり得るようだ。
●Next:Node-REDによる開発はどれだけ簡単なのかを検証
会員登録(無料)が必要です
- 1
- 2
- 次へ >