🤖

Menderで始める組み込みOTA : 第0回 組み込み製品、IoTシステムに適したOTAとは?

2022/04/28に公開

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つです。

  1. OTAサーバー(OTA管理システム)
  2. デバイス管理サーバー(OTA管理システム)
  3. OTAエージェント(IoT機器の組み込みソフトウェア)

OTAの仕組み

IoTシステム向けのOTAに必要な機能を満たし、自社のIoTシステムに適したOTA管理システムをスクラッチ開発することは多くの費用と時間を要することが想定されるため、既存のソリューション(パッケージ製品やオープンソースプロジェクトなど)の利用を検討することになります。
しかしながら、実際に探してみるとIoTシステム向けのOTA管理システムにはデファクトスタンダードと呼べるようなものが存在せず、ソリューションの選定は困難を極めます。自力開発を諦めて開発を外部へ委託する場合、委託先を選定する側にもOTAに対する基本的な知見が必要であり、知見の獲得には相応の時間を要することが予想されます。

筆者の会社では昨年よりIoTに適したOTAソリューションを探していたのですが、実際のところ車載向けに特化されているOTAソリューションが多く、機能面や費用面でIoTシステムに適したものはなかなかありませんでした。その中にあって現在注目しているソリューションが「Mender」です。

Menderの概要

MenderはオープンソースベースのLinux向けOTA(Over the Air Update)ソリューションです。

Mender is a secure, risk tolerant and efficient over-the-air update manager. Remotely manage and deploy software updates to your IoT devices at scale, worldwide.

ノルウェーの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記事を公開しています。

これ以降の記事も準備中です。ご期待ください。

Discussion