こんにちは、ペパボ研究所所長の栗林健太郎です。いろいろあって、社会人学生をやっています。詳しくは以下をどうぞ。
本エントリでは、情報処理学会の第207回SE研究発表会で研究報告を発表してきたので、簡単に報告したいとおもいます。
発表内容について
IoTデバイス内で動作するアプリケーションを開発するに際して、開発者が変更したコードをIoTデバイスへ送信・適用して動作確認することに時間がかかるのが、迅速な開発サイクルの妨げになっているでのはないか?そんな問題意識から、先行研究では十分には検討されてこなかった、IoTデバイス上で動作するアプリケーションのコードを動的に書き換える方式を、開発効率の向上という観点からあらためて整理・提案し、実装したものを実験によって評価しました。
詳細については、以下の予稿と発表資料をご覧いただければと思います。
研究報告予稿
予稿: 「IoT デバイス内アプリケーションの開発効率向上のために コードの変更を動的に適用する方式の提案と実装」
発表スライド
スライド: 「IoTデバイス内アプリケーションの開発効率向上のためにコードの変更を動的に適用する方式の提案と実装」
おわりに
本研究報告における実装は、プログラミング言語Elixirと、ElixirによってIoTデバイスを開発できるプラットフォームであるNervesを用いています。2021年11月に行われた第7回WebSystemArchitecture研究会におけるNervesに関する発表においてNervesを初めて知り、「これだ!」と感銘を覚えてのめり込み、こうして研究報告を発表するに至りました。出会いを与えてくれた皆様、共著者の皆様、ご助言くださったコミュニティの皆様に感謝いたします。引き続き、ElixirやNervesをからめた研究をしていくつもりです。
共著者からのコメント
共著者の力武健次です。以下、本研究発表の背景について説明します。
IoTデバイスの運用管理やソフトウェア更新は、回線やハードウェアの制約などで、大変難しい課題になっています。これらの課題を解決する上で、Erlang/OTPやElixirを組み込み機器に応用する試みは、2013年のErlang Factory SF Bay Areaでのハンズオンから続いていました。2021年の現在もNervesの他にGRiSPというErlang/OTPやElixirを直接起動できる組み込みボードなど各種研究開発が続けられています。
Erlang/OTPでは同じモジュールに対して新旧2種類のコードを共存させる仕組みがあり、この仕組みを使うことでコードの更新を円滑に行うことができます。実際にはモジュールや関数の相互依存などに注意が必要ですが、このコード更新機能はErlang/OTPの最初からの開発ターゲットであるEricssonの交換機や、分散データベースであるHibariやRiakなどのデバッグ等運用の現場で活用されてきた実績があります。ElixirはErlang/OTPの上に作られた言語システムであり、このコード更新機能を含めたErlang/OTPのすべての機能を使うことができます。
今後組み込み機器で使えるシステム資源の拡大に伴い、コード更新機能などの信頼性確保の仕組みがIoTの世界にも拡充されていくであろうと力武は考えています。信頼性を保ちつつシステムを動的に変更するための技術開発は、ペパボ研究所が掲げてきた「なめらかなシステム」の基礎となるものであり、今後も大いに発展する可能性のある分野といえるでしょう。
【PR】パートナー積極採用中!
ペパボ研究所では、新しいパートナーを求めています。詳細については、当研究所のトップページをご覧ください。