ボッシュ ソフトウェア イノベーションズ
ソフトウェアイノベーション

IoTにおけるソフトウェア更新のマネジメント

18 Oct 2018 | 読了時間: 4分
Bosch ConnectedWorld Blogからの翻訳

このブログ記事の筆者はOlaf Weinmannです。筆者の紹介及び英語版のブログ記事は こちらです。

更新プロセス全般

更新プロセスをバックエンドの視点から見れば、ソフトウェア更新はドメインへの依存性が比較的小さいオペレーションだということがすぐ分かります。

1つの例として小さなエッジセンサーを考えてみましょう。そのようなセンサーの更新は単純なプロセスです。このプロセスに関係するのは、ソフトウェア更新用の製品をデバイスに送りつけることと、次にデバイスを限定する適切な仕組みを使ってインストールを行うことです。

もう1つの例は自動車の場合です。自動車は、複雑な依存関係を持つ多数の更新可能なECU(電子制御ユニット)で構成された、高度に複雑化したマシンであることは明らかです。しかし、多くの場合、バックエンドソフトウェアの更新を起動するのはそれほど複雑な操作ではありません。更新版を車にインストールするための複雑なロジックは、ソフトウェア更新パッケージに含まれているか、またはその車に用意されているソフトウェア更新のためのメカニズムの一部となっています。

結局のところ、ソフトウェアを更新するプロセスとは、デバイスといくつかのファイルを一緒に結合することです。重要なことは、このようなバックエンドでの更新が、高い信頼性とセキュリティが保証される方法で管理されなければならないということです。そして、これこそがまさに  ボッシュIoTロールアウト(英語)のようなサービスが力を発揮する部分なのです。

特に重要なのは、オープンであること

ソフトウェア更新システムは、 あらゆる種類の接続に対しオープン(英語)でなければなりません。これはボッシュIoTロールアウトのサービスを利用するようになって最初に学んだことです。そして、これこそボッシュIoTロールアウトが Direct Device Integration (DDI) API (英語)を既製の標準ソリューションとして提供している理由です。また、その他のプロトコルアダプターも Device Management Federation (DMF) API (英語)経由でのプラグインが可能です。これによりLWM2M、OMA-DM、TR-069等のソフトウェア更新プロセスに対応した標準化デバイス管理プロトコルが使えるようになりますが、またその一方、カスタムプロトコルを使うことも可能です。

ユースケースによっては、ソフトウェア更新を異種のデータモデル上で行うことが必要になることもあります。コネクテッドセンサーにはファームウェアが1つしかない場合もあるでしょうが、車の場合にはロールアウトを必要とする多くのファームウェアがあります。また、アプリストア的なシナリオも有効かもしれません。つまり、ビジネスケースの一部として、必要なオプション機能をデバイスに組み込みたい場合です。それはそれとして、ここで特に注意すべきことがあります。すなわち、ソフトウェア更新システムは、それ以外のIoTシステム全体に緊密に結合される必要があるということです。

「つまるところ、システムには拡張性と柔軟性が必要です」
Olaf Weinmann, ボッシュIoTロールアウト プロダクトオーナー

ベンダーの固定化を避けること

IoTシステム全体に深く組み込まれたソフトウェア更新サービスは、特定のサービスプロバイダへの依存につながります。このことには、明らかにリスクが伴います。ボッシュIoTロールアウトは、 オープンソースプロジェクトであるEclipse HawkBitをベースにしているだけでなく、HawkBitとの間で完全なAPIの互換性があります。これにより、お客様にとっての前述のリスクが軽減され、最小限になります。

IoTソフトウェア更新システムのコア機能

信頼できるIoTソフトウェア更新システムが持つべき、最も重要な機能は何でしょうか?ボッシュIoTロールアウトのサービスには、我々が最も重要な要素と考えているものがいくつか示されています。

Rollouts

その第一の機能として挙げられるのは、デバイスとソフトウェアのレポジトリです。ボッシュIoTロールアウトは、IoTシステムのソフトウェア更新に重点特化しています。すなわち、すべてを完備したアセット管理やデバイス管理のためのソリューションではありません。そのため、ソフトウェアに関係したデバイス情報のみを保持します。これには、ソフトウェア更新履歴、現在インストールされているバージョン、ボッシュIoTロールアウトからデバイスへのアクセス方法等が含まれています。デバイス表現にはユースケースに応じたその他のメタデータも付加できますが、これは必須ではありません。

2番目の要素は、製品コンテンツのデリバリーです。インストール先に応じて、製品を直接デバイスに送ることも、また AWS CloudFront (英語)のようなコンテンツデリバリーネットワークを経由して送ることも可能です。これにより、全世界的な規模での製品の出荷が可能になります。

3番目の機能は、この製品の心臓部となる、ソフトウェア更新とロールアウトのマネジメントです。これは一般に「キャンペーンマネジメント」とも呼ばれています。これにより、デバイスを個別に更新する必要がなくなり、そのような方法に代わる、大規模なソフトウェア更新のための組織化され管理された方法が得られます。

数百万個ものデバイスが関係するシナリオで全デバイスの更新を一度に行うようなことには誰も責任を負いたくありません。技術インフラ(データセンター)に関係した問題が発生する可能性があるだけでなく、エラーが発生するリスクもあります。より望ましいやり方としては、少数のデバイスから開始し、その成功を確認してから次の段階へと移行していく方法があります。そうすれば、ソフトウェアの問題が発生しても、全デバイスがその影響を受けることはなくなります。

また最後に1つ重要なこととして、更新の進捗を把握しセキュリティを確保するための、レポートと監視の機能が必要になります。

「デバイスが数百万個もあったら、全デバイスの更新を一度に行うことに、誰も責任を持ちたくはありません」
Olaf Weinmann, ボッシュIoTロールアウト プロダクトオーナー

幅広い分野で活用されるボッシュIoTロールアウト

既にお分かりのように、無線によるソフトウェア更新を行う場合は様々な側面からの考慮が必要です。単に機能面だけでなく、IoTシステム全体の多様性も考慮しなければなりません。クラウド対応のIoTソフトウェア更新システムは、様々な分野からの要求に応えることが必要です。ここでは、ボッシュIoTロールアウトの様々な応用分野を見てみましょう。

  • 自動車:従来、ソフトウェア更新は自動車修理工場での手作業で行われてきました。このような車を無線で接続してソフトウェア更新を行うようにすれば、更新プロセスを直接管理でき、クラウドソリューションによる自動制御が可能です。
  • コネクテッドインダストリーズ:生産環境に設けられたIoTゲートウェイや製造機械に組み込まれているソフトウェアは、ソフトウェアプロビジョニングサービスによる更新が可能です。これにより、手作業での更新作業が不要になります。クラウドベースのキャンペーンマネジメントソリューションを使うことで、勤務シフトの時間や生産スケジュールに合わせた更新が可能になります。
  • エネルギー:エネルギー供給事業者は、スマートメーターシステムに接続されている数百万もの世帯をうまく管理するため、ますますソフトウェア更新のためのツールやサービスに目を向けるようになっています。
  • 消費財:一般の商品に組み込まれているソフトウェアも、無線での更新が可能です。このような商品には消費者向け電子機器や、家庭電化製品、電動自転車、自動車のマルチメディアシステム等が含まれます。
  • 建築物:セキュリティカメラなど、セキュリティ関連機器のソフトウェア更新を管理・制御することができます。
  • 農業:農業分野のIoTソリューションでは、センサーやゲートウェイ、コントローラ等の定期的なフトウェア更新が可能です。



ボッシュIoTロールアウトをご自身で体験してください (英語)

IoTのソフトウェア更新とボッシュIoTロールアウトについて