IoTアプリ開発に立ちふさがる壁
IoTアプリをざっくりととらえると「デバイスからデータを取得して処理するもの」と言える。ここには「デバイス」「データを取得」「処理」という3つの側面がある。「デバイス」は組み込み開発であり、「データ取得」はArduinoのような入出力ポートを備えた基板とプログラミング、「処理」にはクラウドが絡む。つまり、複数のテクノロジーを統合的に扱う必要があるということだ。
IoTアプリと、そうでないアプリの開発で大きく異なる点として、山崎氏は「データを取得するセンサーはネット上ではなく、リアルワールドにあります」と指摘。リアルワールドにあるということは多くの選択肢と不確定要素が存在するということであり、試行錯誤が必要となる。
例えば、センサーからデータを取得する際にも、まずセンサーを設置する位置はどこが最適か、あるいは距離を測る場合でもセンサー自体、赤外線がいいのか超音波がいいのか、さらに、データ取得の間隔はどの程度が適当なのか、何度も試してみないとわからない。現場の状況によって最適解が異なるのが実情だ。
一方、開発サイクルの観点では、データの収集から始まり、処理、蓄積、可視化、分析、検討のサイクルを回していくことになる。近年はDevOpsが主流のため、開発(計画、創出、検証、パッケージ化)と運用(リリース、構成管理、監視)の間を行き交うことになる。
こうした現状を踏まえ、山崎氏は「IoTアプリ開発では複数のテクノロジーを簡単に扱えて、開発と運用を行ったり来たりできてPDCAサイクルを素早く回せることが重要です」とポイントを語る。
そして、「SHARE MY FUN(私の楽しさを共有します)」ということで「Node-RED」を紹介した。Node-REDはフローベースのビジュアルプログラミングツールで、Webブラウザからフローを編集できる。ハードウェアデバイスやAPI、クラウドサービスなどを線で結んでいくため、IoTアプリ開発に使える。もともとはIBMが開発したものだが、JS Foundationに寄贈されたため、今はOSSとなっている。
Node-REDを使用するには、ローカルにインストールする方法と、アカウントを登録してクラウドサービスで使用する方法の2通りがある。前者はNode.js上に構築する。後者だと、現時点では「IBM Cloud」「アマゾン ウェブ サービス(AWS)」「Microsoft Azure」それから「enebular」が選べる。山崎氏のオススメはもちろんウフルが提供するenebular。Node-REDを拡張して、IoTの製品やサービス作りを包括的に支援するオーケストレーションサービスだ。
山崎氏はenebularが一番簡単にアカウント登録できるとし、その流れを披露した。まずは「enebular.com」にアクセスして「新規登録」をクリック。続いて入力フォームに氏名、メールアドレス、パスワードを入力し、プライバシーポリシーなどを確認して「sign up」ボタンをクリック。あとは届いたメールで確認を済ませれば登録完了となる。確認が済んだら「Go to Dashboard」で利用開始だ。