株式会社富士通アドバンストエンジニアリング

IoTゲートウェイをRubyで実装

「ここちょいゲートウェイスターターキット」(以下本製品)(*1)は株式会社富士通アドバンストエンジニアリング(以下FAE)が開発したIoTシステム開発者向けツールである。

本製品を利用することで加速度、地磁気、温度、湿度、照度などを測定するセンシングデバイスと、センシングデバイスから寄せられる情報を集約する上位システムとを組み合わせたIoTプラットフォームを構築できる。

通常、センシングデバイスは多数同時に、様々な場所で、あるいは移動しながら運用される。これに対し、上位システムは一つないし少数で運用される。中には上位システムがクラウドに置かれるケースもあって、すべてのセンシングデバイスを上位システムと直接やり取りさせるのは難しいことが多い。

そのためセンシングデバイスから情報を受け取り、受け取った情報を上位システムに転送する「IoTゲートウェイ装置」が必要となる。

本製品ではIoTゲートウェイ装置としてLinuxベースのシステムを対象とする。センシングデバイスとのやり取りにはBluetooth Low Energy(以下BLE)を使用することを前提とし、装置上で動作するIoTゲートウェイアプリケーションと、同アプリケーションとやり取りできる上位システムにあたるアプリケーションを、それぞれRubyにより実装して提供する。

提供している機能はすべてOSSをベースとして実装されていて、サブシステムごとにプラグイン形態をとっている。センシングデバイスとしては「ここログ」(*2)「ちょいロガ」(*3)での動作検証をしているが、BLEを使用するその他のセンシングデバイスにも対応可能だ。また、新しいセンシングデバイスやゲートウェイ装置にも、各OSSの開発が進むこととあわせて容易に対応できる。

EXBOARDでの実績を継承

本製品の成り立ちには先行して開発された複数のプロダクトが関係している。そのうちの一つが「イベント運営支援ソリューションEXBOARD」(*4)である。EXBOARDはその名前の通り、展示会などのイベントを主な対象とするソリューションである。その基盤の一部としてのIoTゲートウェイにあたる部分は本製品と同じくRubyで実装されている。

本製品のIoTゲートウェイアプリケーションを開発するにあたっては、EXBOARDをはじめとした実績あるプロダクトの中から共通する部分を抽出し、汎用性を持つ構造に設計しなおした。その設計にマッチし、かつ、本製品に要求される柔軟性・拡張性にも対応できるミドルウェアとしてRuby製のFluentdを採用した。また、上位システムアプリケーションの基盤としては同じくRuby製のSinatraを採用した。

もともとFAEではハードウェア開発に取り組んでいるため、近年のweb技術の発展が見られるようになる前からLinuxをはじめとするOSSには関わってきた。「Rubyについても自主的な勉強会が開かれてきたこと、社内でのRuby推進の動きなどもあり、Rubyエンジニアが社内に多かったことがRuby採用の決め手になった面がある」(FAE)という。

本製品ではハードウェアに近い部分でのRubyの利用はないが、Rubyに関する取り組みの一つとして、組み込み分野での「mrubyや特にmruby/cに関心があり、UIに関する部分など、スクリプト言語に移行することでメンテナンス性を向上できるのではないか」(FAE)との期待があるそうだ。

IoT導入を加速するスターターキット

本製品で提供するアプリケーションはいずれもサンプル実装という位置付けである。しかしながら、要件にさえ合えばそのまま本番運用にも利用できる水準で実装されている。要件に合わない部分があったとしてもカスタマイズにより対応させることが可能で、そのための開発ドキュメントを併せて提供している。

設定ファイルの変更といった程度のカスタマイズで対応可能なケースも少なくはない。また、それ以上のカスタマイズをする場合でも、必要となるのはRubyスクリプトの編集あるいは追加のみで、システムの再コンパイルは不要だ。

IoTゲートウェイの分野では、アプリケーションを使用するためにゲートウェイ装置に合わせてコンパイルする必要がある。そのためには、IntelやARMなどのCPUアーキテクチャや、ゲートウェイ装置のOSに含まれるライブラリなどをコンパイル時のオプションとして指定しなくてはならないため、コンパイル作業は煩雑化しがちである。

本製品ではRubyなどのコンパイル作業を検証済構成に合わせてマニュアルとして手順化している。手順に従って操作するだけですぐにIoTゲートウェイの利用を開始できる。

従来、この種のシステムでは案件ごとに個別に開発を行うことが少なくなかった。組み込み開発を要するケースもあり、専門的な知見なしには高いハードルになりがちでもあった。その点、本製品にはRubyスクリプトの編集のみで高度なカスタマイズにも対応できるという強みがある。

実際にサービス・デザインの研究を主な業務としている、組み込み開発などに直接たずさわることの少ない企業で採用された実績もある。IoTを使って実現したいソリューションに向けて手軽に、かつ、着実に実装を進めることができるのは本製品の特長の一つと言える。

広がる利用シーン

さて、そんな本製品は様々な場面で活用されている。たとえば会議室の状況をモニタリングするシステムでは、ちょいロガを使って室内の気温、湿度、照度などを測定し、収集した情報をリアルタイムに参照できるシステムへと転送する。人感センサーから得た情報を組み合わせることもある。

富士通グループの「働き方改革」(*5)での取り組みの一つの中に、グループ企業のオフィスにある空き座席で勤務できるという制度がある。対象となる座席にはちょいロガや人感センサーが配置され、現在使用中かどうかがモニタリングされる。制度利用者は、近隣のオフィスの座席の利用状況をいつでも参照することができ、空き座席を選ぶことができる。

また、本製品の前身にあたるEXBOARDは位置測位の基盤的な実装であることから、セルフサービスの飲食店に導入された例もあるそうで、身近な生活の中でも活用されている。本製品としても「将来的にはEXBOARDに組み込むことをねらっている」(FAE)という。

IoTの利用の裾野が広がっていくにつれて、IoTの導入を考える人々の幅も広がってきている。しかし、大規模なシステムや高機能で複雑なシステムにはコストを含む様々な面でIoTの導入が難しい。さらにIoTの導入には組み込み分野やそれに近い領域での専門性の高い開発・運用の経験が求められる。このような状況のoTを手軽に始めたいという要望は今後ますます増えてくる。本製品はRubyが動く環境があれば導入でき、Rubyスクリプトを書くだけでカスタマイズが容易にできるため、今後注目されていくだろう。

(*1) http://www.fujitsu.com/jp/group/fae/products/software/middleware/gateway-starterkit/index.html

(*2) http://www.fdk.co.jp/cyber-j/pi_beacon.html

(*3) http://www.fdk.co.jp/cyber-j/pi_logger.html

(*4) http://www.fujitsu.com/jp/group/fae/innovation/location-platform/exboard/index.html

(*5) http://pr.fujitsu.com/jp/news/2017/02/28.html

【商標について】

記載されている製品名などの固有名詞は、各社の商標または登録商標です。