北九州市立大学 岡住 和樹(* 1), 酒匂 裕史(* 1), 山崎 進(* 2), 中武 繁寿(* 2), 藤本 悠介(* 2), 永原 正章(* 3)
- (* 1)北九州市立大学 国際環境工学研究科 情報工学専攻
- (* 2)北九州市立大学 国際環境工学部
- (* 3)北九州市立大学 環境技術研究所
IoTの発展により,組込み機器がインターネットに接続されることが当たり前の世の中となった。 そこで,機器の制御を RESTful API でおこなえないかを検証する。
RESTful API で機器の制御が行える場合,Webの規格上で機器の制御が行えるようになるため,参入障壁が下がりこれまで以上に機器のIoT化が進むのではないかと考えられる。
本発表の目的は,RESTful APIを介しIoT機器制御を行うというケースにおいて,技術的課題を明らかにするために実験計画を立てた。これについて,妥当性を議論したい。
IoTセンサー
から取得した情報を元にIoTアクチュエーター
の制御を行う。IoTセンサー
から取得した情報はサーバーを介し,IoTコントローラー
によって解析される。IoTコントローラー
によって解析された情報はサーバーへ送信される。IoTアクチュエーター
はIoTコントローラー
によって解析された情報をサーバーを介して取得し,制御される。
以下の図は,IoTセンサー
から取得された情報の流れについてのものである。
今回の検証では,サーバーを介してやり取りが行われている IoTセンサーから取得される情報
と IoTアクチュエーターを制御するための情報
の2種類についてRESTful APIで取り扱う。
また,各情報について更新は行わずに新規作成をしていく形とし,削除も行わないこととする。そのため,UpdateとDeleteに関しては取扱わない。
具体的には,以下のような流れとなる。
IoTセンサー
が取得した情報を情報A, IoTコントローラー
が解析した結果の情報B としている。
IoTセンサー → サーバー
IoTセンサー
はサーバーに情報AをPOST
サーバー → IoTコントローラー
IoTコントローラー
はサーバーから情報AをGET
サーバー ← IoTコントローラー
IoTコントローラー
はサーバーに情報BをPOST
サーバー → IoTアクチュエーター
IoTアクチュエーター
は情報BをGET
IoTアクチュエーター
は制御対象に要求される動作の周波数幅(帯域幅)の五倍〜十数倍で制御される必要がある。- 各情報の到達確実性を保証する必要がある。
今回の実験では,以下の計測をする必要があると考えている。
- IoTアクチュエーターから一定周期でリクエストを送った場合のサーバーへの到達時間の誤差を計測する。
- サーバーからIoTアクチュエーターへのレスポンスについても同様に,到達時間の誤差を計測する。
- IoTセンサーからPOSTされた情報を,IoTコントローラーがGETするまでのタイムラグを計測する。
- IoTコントローラーからPOSTされた情報を,IoTアクチュエーターがGETするまでのタイムラグを計測する。
- RESTful APIを介さないローカルでの実装についても同様に計測する。
今回の実装では,IoT機器制御をRESTful APIで行うことから,耐障害性と応答性の高さが重要となるため Elixir
を採用し,Webフレームワークとして Phoenix
を利用し実装を進めていこうと考えている。
- Phoenix 1.3.4 にてRESTful APIの実装を行う
- 初期実装
- JWT認証
- POSTデータ -> DBに保存
- GETデータ -> DBから取得
- DBのボトルネック解消案
- JWT認証
- POSTデータ -> DBに保存 & キャッシュ
- GETデータ -> キャッシュにデータが無い場合のみDBから取得
- Phoenix 1.4 へのアップデート
本研究の一部は,JST未来社会創造事業 JPMJMI17B4 の支援を受けた。 研究遂行にあたり多くの助言をいただいた北九州工業高等専門学校の滝本 隆先生に感謝する。
- [1] 萩原朋道,「ディジタル制御入門」,コロナ社,1999年 1.2節