Menderで始める組み込みOTA : 第0回 組み込み製品、IoTシステムに適したOTAとは?
OTAとは?
遠隔から無線通信を使ってソフトウェアを更新する仕組みをOTA(Over The Air update)と呼びます。
ソフトウェアを更新する目的は、不具合解消や機能の改善のように製品の保守はもちろんのこと、新サービスの展開といった新しい収益モデルの実現手段とも成り得るのです。
OTAが必要である理由
OTAはIoT機器のセキュリティの担保と保守の効率化(コスト削減)のために必須であることは 疑いの余地はないでしょう。更に、経済産業省発行の「IoTセキュリティガイドライン」においてもIoT機器のセキュリティ担保を目的としたソフトウェアのリモート更新機能の実装を強く推奨しており、OTAの需要の高まりを後押しています。
OTAの昨今(米テスラの話)
OTAの可能性を考える時、最初に米テスラの「ソフトウエアファースト」のビジネスモデルを思い浮かべます。
テスラは「車のハードウェアをそのままに、車の機能が向上する」を謳い文句に、日本においても 急速にユーザー数を延ばしています。
テスラのOTAは、製品の品質コントロールと販売促進にも活用されています。
例えば、テスラ車の魅力の一つである自動運転機能は、安全性を十分に確認できるまでの期間は機能に制限をかけ、安全が確認された後に制限を解除する方法を取っています。
購入者にはテスラ車の納品待ち時間が短縮されるとともに、将来の機能向上も約束されるのです。このような魅力的なビジネスモデルがテスラ車だけのものでは無さそうなことは想像に難くありません。
※2021年7月には、米国において高度運転支援ソフトのサブスクリプション(定額課金)サービスを開始しました。
また、ボルボ社が2021年秋に日本において新型EV車のサブスクリプションサービスを展開しており、サービスの目玉としてOTAによる機能拡張を挙げていることも注目されます。
OTAの運用シナリオ
OTAの運用シナリオとして、以下の2種類に集約することができると考えます。
シナリオ1.全デバイスで同じソフトウェアを更新
シナリオ2.グループ別に異なるソフトウェアを更新
全デバイスで同じソフトウェアを更新
グループ別に異なるソフトウェアを更新
OTAの仕組み
OTAの機能を構成する主要なシステムは以下の3つです。
- OTAサーバー(OTA管理システム)
- デバイス管理サーバー(OTA管理システム)
- OTAエージェント(IoT機器の組み込みソフトウェア)
IoTシステム向けのOTAに必要な機能を満たし、自社のIoTシステムに適したOTA管理システムをスクラッチ開発することは多くの費用と時間を要することが想定されるため、既存のソリューション(パッケージ製品やオープンソースプロジェクトなど)の利用を検討することになります。
しかしながら、実際に探してみるとIoTシステム向けのOTA管理システムにはデファクトスタンダードと呼べるようなものが存在せず、ソリューションの選定は困難を極めます。自力開発を諦めて開発を外部へ委託する場合、委託先を選定する側にもOTAに対する基本的な知見が必要であり、知見の獲得には相応の時間を要することが予想されます。
筆者の会社では昨年よりIoTに適したOTAソリューションを探していたのですが、実際のところ車載向けに特化されているOTAソリューションが多く、機能面や費用面でIoTシステムに適したものはなかなかありませんでした。その中にあって現在注目しているソリューションが「Mender」です。
Menderの概要
MenderはオープンソースベースのLinux向けOTA(Over the Air Update)ソリューションです。
ノルウェーのNorthern.tech社が開発しています。
日本ではtESCC Japan社が取扱しています。
Mender はノルウェー発のOSSであり、LinuxベースのIoTデバイスにOTAアップデート機能を追加する、クライアントサーバー型のアップデートソリューションです。サーバー側はdockerベースで実装されオンプレミスやクラウドで実行可能です。クライアント側は様々なLinuxプラットフォーム向けの移植例がコミュニティベースで公開されています。開発元はMenderのサーバーサイドをSaaSサービスとしても運営しており、ユーザーは月額使用料を支払うことで面倒なサーバー運営から解放されるオプションを選択可能です。
以下 Core features and benefits より
- Application updates
組み込みアプリケーションのアップデートが可能です。ダウンロード容量削減のためにLZMA圧縮を利用しています。
- System updates
A/Bアップデートを利用するRobustかつfailsafeなOSアップデートが実装可能です。
- State scripts
アップデートの各フェーズでクライアント側で実行可能なState scriptsをサポートしています。
- Update modules
組み込みモジュール(WiFiやBluetooth等)のファームウエアアップデートを可能にするproxyを実装可能です。
- Configure (追加オプション)
mennder-configure add-onモジュールを利用して、個別のデバイス設定をリモートから実行することができます。
- Troubleshoot (追加オプション)
mender-connect add-onモジュールを利用すると、以下のトラブルシュート用の機能が使用可能になります。
今後の予定
コードギアでは 「Menderで始める組み込みOTA」 のタイトルで以下のZenn記事を公開しています。
- 第0回 : 組み込み製品、IoTシステムに適したOTAとは? (本記事)
- 第1回 : Menderのご紹介
- 第2回 : Quickstart Part1 : mender.ioの試用アカウントを取得
- 第3回 : Quickstart Part2 : Raspberry Pi 3/4を接続
- 第4回 : Quickstart Part3 : アプリケーションを更新(その1)
- 第5回 : Quickstart Part4 : アプリケーションを更新(その2)
- 第6回 : Quickstart Part5 : OSアップデートを実行
- 第7回 : Quickstart Part6 : コンテナアップデートを実行
- 第8回 : Quickstart Part7 : リモートターミナル機能のご紹介
- 第9回 : 接続編1 : QEMUエミュレータを接続
- 第10回 : 接続編2 : Armadillo IoT G3を接続
- 第11回 : 接続編3 : Jetson AGX Orinを接続
これ以降の記事も準備中です。ご期待ください。
Discussion