elixir 登壇レポート

ElixirConf US 2021登壇報告: IoTシステムの開発における課題の解決を目論むElixir製のフレームワークPratipadについて発表しました

elixir 登壇レポート

こんにちは、あんちぽです。最近はNeos VRというメタヴァースプラットフォームにハマっていて、VR内でライブコーディングをしたりプレゼンをできるツールを作ったりしています。いよいよVR元年ですね。

今日はNeos VRの話ではなく、先日行われたElixirConf US 2021で登壇してきた話を簡単に紹介します。

ElixirConf US 2021について

ElixirConf USとは、プログラミング言語Elixirに関する話題を扱う技術カンファレンスです。今年は、オフラインとオンラインのダブル開催で、前者が10月12および13日、後者が10月14日および15日に行われました。そういう事情もあって、今年はキーノートを合わせて60名以上がトークをするという、大規模なイベントになりました。私は、オンライン開催の方で参加しました。

発表した内容の簡単な紹介

以下のスライドを用いて発表しました。

Pratipad: A Declarative Framework for Describing Bidirectional Dataflow in IoT Systems with Elixir - Speaker Deck

以下、スライドのさわりについて少し説明します。

昨今のエッジコンピューティングを前提としたIoTシステムは、デバイス・エッジ・クラウドの3層から構成されます。その構成そのものはいろんなメリットがあって行われているのですが、以下の3つの点で課題があると考えています。

  1. プログラミング言語や通信プロトコルの選択肢が多様である
  2. データの取得方式が多様かつデータフローが双方向性を持つ
  3. IoTシステムの全体を通じたデータフローの見通しが悪くなる

そこで、それらの課題を解決するべくPratipadというフレームワークを開発しました。Pratipadを用いて、上記の3つの課題にそれぞれ対応する解決策を与えられればと考えています。

  1. 3層を同一のプログラミング言語と通信プロトコルを用いて統合的に設計・実装できる手法
  2. 多様なデータ取得方式および双方向通信に対応し,使い分けられる基盤
  3. 3層からなるデータフローを一望のもとに把握できる記法

……というのはちょっと行儀良く整理した課題と解決策なのですが、個人的な願望としては、システムを構成するアクターたちが3層のレイヤのいずれの計算資源を基盤としていたとしても、Elixirの実行基盤であるErlangが提供する分散ネットワーク上のノードとしてできるだけ透過的にふるまえるようになるという未来が実現すると面白いなあと思っています。

というわけで、詳しい内容についてはスライドをご覧ください。また、後日発表の模様を録画した映像が公開される予定になっています。また、このトークは、IOTS2021というシンポジウムで採択されることとなった論文の扱う話題についての、技術的な側面における詳細について話すという内容になっています。より研究らしい内容については、シンポジウム後に公開する予定の論文と発表資料をご覧ください。

発表に至った経緯

2020年4月から、北陸先端科学技術大学院大学の博士前期課程に通う社会人学生をやっています。その辺りの経緯については、「北陸先端科学技術大学院大学先端科学技術研究科博士前期課程に入学しました」や「ある社会人学生の生活と意見(2020年版)」というブログポストに書いているので、もしご興味があればご覧ください。

研究テーマを決めあぐねていた昨年の11月、第7回WebSystemArchitecture研究会に参加した同僚が、そこで行われていた発表を見て「ElixirでIoTデバイスを開発できるNervesというプラットフォームが、あんちぽさんの興味に合いそう」と教えてくれました。それを見た瞬間、自分のやろうとしていたのはこういうことなのでは?とピンきて、そこからElixirとNervesにどハマりしました。

その年末の#NervesJP Advent Calendar 2020では記事を3本書いたり、今年に入ってからは情報処理学会の第207回ソフトウェア工学研究発表会でIoTアプリケーションの開発効率向上に関する手法の提案と実装について発表したり、Elixirコミュニティのミートアップに参加して何度か話をしたりなど、あれこれとやってきました。

そんなわけで博士前期課程の総決算としての修士論文に関する研究も、ElixirとIoTがらみでいこうということに決めて、そこからまたいろいろ紆余曲折があったものの、なんとか形になりそうなものができてきたのが、今回ElixirConf US 2021で話した内容(と、その元になったIOTS2021に投稿した論文)です。

また、ElixirConf US 2021のCFPに応募することになった直接のきっかけは、kokura.exの有志がプロポーザルを検討する会を行っているのを知ったからというのが大きいです。それを見るまでは応募しようとはあまり思っていなかったのですが、そういう集まりがあるならせっかくなのでチャレンジしてみるかと思ってやってみたところ、無事採択されて発表に至ったのでした。kokura.exの皆様、ありがとうございます。

おわりに

英語での登壇は、2013年にシンガポールで行われたRedDotRubyConf 2013以来で、8年ぶりでした。その間、少しは英語にきちんと向き合って上達していればよかったのですが、持ち前の不精によって特に変わるところもなく、相変わらず不如意な状況で臨まざるを得ませんでした。いつも思うことですが、やってみた後に「今度こそはちゃんとやろう……」という気持ちに、今はなっています。今度こそちゃんとできるといいですね……。

それはそれとして、ElixirConf US 2021がそうであったように、オンラインでの発表機会が増えたことはコロナ禍において進んだよいことのひとつではあると思います。そうでなければ、CFPに応募することもなかったかもしれないですし。もう少し時間はかかりそうですが、状況もきっと良い方向に進んでいくだろうので、今回いただいたきっかけをより大きく広げていけるよう、今後も積極的に活動していきたいと思います。