mrubyは組み込み開発への提案を基本に置いています。そのため、既存C言語資産を有効活用できる機能を用意しています。これはRubyにあったGemsというライブラリ取り込みの仕組みをmrubyのmrbgemsというかたちで実現しています。簡単な記述で既存C言語アプリをmrubyから呼び出したり組み込んだり、またはその逆でCアプリからmrubyアプリを呼び出すことも可能です。
この機能を利用したのがMIRACLE LINUXのmrubyによる、監視システムの拡張機能です。
MIRACLE LINUXはオープンソースの監視ツール「Zabbix」を元にした「MIRACLE ZBX」を開発していますが、この拡張機能としてmrubyアプリを呼び出す「mruby extension module in C」を開発しました。これにより書きやすいmrubyスクリプトを使って、MIRACLE ZBX Serverを操作することが可能です。(詳細な情報はMIRACLE LINUXのWebサイトで公開されています)
有明高専(有明工業高等専門学校)では、津波被災農地の塩濃度調査のためのセンサーネットワークを3年計画で研究しています。現在、プロトタイプを一般的なマイコン(Arduino)を利用して構築中で、並行してmrubyとmrubyが動作するマイコンボード「enzi」を用いたシステムの検証を行っています。
水分と塩分濃度の測定にはデジタルTDT(Time Domain Transmissometry:時間領域透過法)センサー、通信にはZigbeeを用い、センサーそのものはSDI-12(Serial Data Interface 1200bps)で接続されています。
このプロジェクトを率いる有明高専の石川洋平 准教授は「Rubyを用いることによってエンドデバイスからサーバサイドまで一貫した言語で開発できる」「mrubyでいったん作ったアプリはターゲットデバイスが変わっても動作させることが容易。将来的に、より低消費電力で動くデバイスへの実装が可能でプロトタイピングが無駄にならない」とmrubyに注目した理由を話しています。
現在、佐賀大学の圃場での検証を行っており、次のステップとして、2016年には実地検証に入る予定です。 センサー接続、Zigbee接続には軽量Rubyフォーラムの会員企業であるSCSK九州がサポートしています。
mrubyコントリビュータである松本亮介氏が開発した、mrubyのスクリプト機能を使ってWebサーバ(Apache、nginx)の機能拡張を図ったものが「mod_mruby」です。
mod_mrubyは「高速動作」「Apacheを停止することなく内部処理を変更可能」「リバースプロキシや複雑なリダイレクトをmrubyで柔軟に記述可能」といった特長を持ち、「軽量、高速、C言語への組み込みが得意、移植性が高い」「Rubyの記述で実装可能」といった観点からmrubyが採用されています。
Copyright © ITmedia, Inc. All Rights Reserved.