特集
» 2016年01月12日 07時00分 UPDATE

mruby適用最新事例:Web界から組み込みに向けられた刺客「mruby」はこう使われている (3/4)

[石井宏昌(NPO法人 軽量Rubyフォーラム),MONOist]

既存C言語資産との高い互換性 MIRACLE LINUX

 mrubyは組み込み開発への提案を基本に置いています。そのため、既存C言語資産を有効活用できる機能を用意しています。これはRubyにあったGemsというライブラリ取り込みの仕組みをmrubyのmrbgemsというかたちで実現しています。簡単な記述で既存C言語アプリをmrubyから呼び出したり組み込んだり、またはその逆でCアプリからmrubyアプリを呼び出すことも可能です。

mrubyブロック図 mrubyブロック図

 この機能を利用したのがMIRACLE LINUXのmrubyによる、監視システムの拡張機能です。

 MIRACLE LINUXはオープンソースの監視ツール「Zabbix」を元にした「MIRACLE ZBX」を開発していますが、この拡張機能としてmrubyアプリを呼び出す「mruby extension module in C」を開発しました。これにより書きやすいmrubyスクリプトを使って、MIRACLE ZBX Serverを操作することが可能です。(詳細な情報はMIRACLE LINUXのWebサイトで公開されています)

mruby extension module for monitoring system mruby extension module for monitoring system

津波被災農地に向けたセンサーネットワークの開発 有明高専

デジタルTDTセンサーとenziボード デジタルTDTセンサーとenziボード

 有明高専(有明工業高等専門学校)では、津波被災農地の塩濃度調査のためのセンサーネットワークを3年計画で研究しています。現在、プロトタイプを一般的なマイコン(Arduino)を利用して構築中で、並行してmrubyとmrubyが動作するマイコンボード「enzi」を用いたシステムの検証を行っています。

 水分と塩分濃度の測定にはデジタルTDT(Time Domain Transmissometry:時間領域透過法)センサー、通信にはZigbeeを用い、センサーそのものはSDI-12(Serial Data Interface 1200bps)で接続されています。

 このプロジェクトを率いる有明高専の石川洋平 准教授は「Rubyを用いることによってエンドデバイスからサーバサイドまで一貫した言語で開発できる」「mrubyでいったん作ったアプリはターゲットデバイスが変わっても動作させることが容易。将来的に、より低消費電力で動くデバイスへの実装が可能でプロトタイピングが無駄にならない」とmrubyに注目した理由を話しています。

 現在、佐賀大学の圃場での検証を行っており、次のステップとして、2016年には実地検証に入る予定です。 センサー接続、Zigbee接続には軽量Rubyフォーラムの会員企業であるSCSK九州がサポートしています。

mod_mruby

 mrubyコントリビュータである松本亮介氏が開発した、mrubyのスクリプト機能を使ってWebサーバ(Apache、nginx)の機能拡張を図ったものが「mod_mruby」です。

 mod_mrubyは「高速動作」「Apacheを停止することなく内部処理を変更可能」「リバースプロキシや複雑なリダイレクトをmrubyで柔軟に記述可能」といった特長を持ち、「軽量、高速、C言語への組み込みが得意、移植性が高い」「Rubyの記述で実装可能」といった観点からmrubyが採用されています。

Copyright © ITmedia, Inc. All Rights Reserved.