検索
特集

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

「Rubyの良さを組み込みに」を合言葉とする開発言語「mruby」は公開以来、着実な進歩を遂げ、さまざまな場面での利用も進んでいます。ここでは「Web界から組み込みに向けられた刺客」(まつもとゆきひろ氏)たる、mrubyの採用事例を紹介します。

Share
Tweet
LINE
Hatena

既存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.

ページトップに戻る