不具合時の現地対応人員・時間不足や
かさむ訪問費用などの課題を解決
システムのリモートアップデートで保守コストを削減!

これからは、ソフトウェアのアップデートによる機能アップや改善が当たり前の時代となります。
当社では、家電・OA機器・IoT機器・制御システムなどさまざまな場所に点在する機器の稼働を妨げることなく、安全かつ確実なプログラムのアップデートが実現できるよう、お客様の製品へのアップデート機能搭載を支援します。

リモートアップデートの必要性

このようなお悩みがございませんか?

  • メーカーのお悩み
    • 市場で不具合が発生した際にはお客様を訪問して対応する必要があり、時間も経費も膨大になる
    • 現場対応作業になるため、スケジュールの通りに進まないことも多く顧客満足度が下がる
  • 製品ユーザーのお悩み
    • メーカー保守の対応が完了するまで製品やサービスが利用できない状態が続くため困る
    • 修理や不具合対応に時間や手間を掛けたくない
    • 今の製品を交換せずに新しい機能やサービスを利用したい
    • セキュリティに不安がある製品は使いたくない

リモートアップデート機能搭載で解決されること

  • メーカーの解決
    • 不具合改修のためのお客様訪問数を減らすことができ、対応人員・時間・経費などのコストが抑えられる
    • 対応完了までの時間を短縮でき、顧客満足度の低下を防ぐだけでなく、新機能の提供なども含めて顧客満足度が向上する
  • 製品ユーザーの解決
    • ネットワーク経由で不具合の解消がされるため、製品やサービスが利用できない時間が短くて済む
    • メーカー担当者の来訪対応の時間が不要になるため、時間と手間が省ける
    • 既存機能の改善、新機能の追加などがネットワーク経由でアップデートされるため、今の製品を長く使える
    • セキュリティもネットワーク経由でアップデートされるため、セキュリティ面でも安心できる

リモートアップデートで
考慮するべきポイント

  • アップデートモジュールのダウンロードに通信料が発生するため
    更新頻度やファイルサイズによっては、
    通信料だけでなくアップデートに要する時間も検討が必要
  • マイコン等のハードウェアリソースの制約が厳しい環境では
    アップデートの実行は最小限のリソースで実施できることが必要
  • リモートアップデートの際のセキュリティ対策が必要
  • リモートアップデート中に電源が落とされた場合の対策が必要
    (製品が起動しなくなる可能性あり)

リモートアップデートの
手法と実装例

リモートアップデートの手法には、大きくは2種類あります。

  • ① 記憶領域を2バンク用意して切り替える方式
  • ② 専用ツール(フリー or 商用ソフト)を活用したアップデート

① 記憶領域を2バンク用意して切り替える方式

サーバー側実装概要

  • ① 新ファームウェアを生成
  • ② 新ファームウェアにセキュリティ対策を施す

ターゲット側実装概要

  • ① バンクAで動作中にAWSからファームウェア更新リクエストを受け取る(AWS→ターゲット)
  • ② ファームウェアをダウンロード(ターゲット→AWS)し
    バンクBに書き込み
  • ③ リブート
  • ④ ブートローダーにてバンクBのファームウェアを検証
  • ⑤ 検証で問題なければバンクBで起動
  • ⑥ バンクAの旧ファームウェアを削除
  • ④ にて、不正なファームウェアであった場合は、
    バンクAの元ファームウェアで起動を行う

② 専用ツール(フリー or 商用ソフト)を活用したアップデート
フリーソフト(bsdiff)を活用した事例

サーバー側実装概要

  • ① 旧ファームウェア(ver1)と新ファームウェア(ver2)の
    差分パッチを生成
  • ② 旧ファームウェア(ver2)と新ファームウェア(ver3)の
    差分パッチを生成
  • ③ 生成した全ての差分パッチを結合
  • ④ 結合した差分パッチにセキュリティ対策を施す

ターゲット側実装概要

  • ① サーバーより差分パッチをバンクAにダウンロード
  • ② ダウンロードした差分パッチのセキュリティを検証
  • ③ 結合された差分パッチから自Versionにマッチする
    差分パッチを抽出
    (ここではVer2→Ver3パッチ)
  • ④ 本体ストレージより旧ファームウェア(ver2)をバンクBに書き込み
  • ⑤ 抽出した差分パッチをバンクBのファームウェアに適用し、
    Ver3を作成
  • ⑥ バンクBの新ファームウェアVer3で起動

リモートアップデートの
配布モジュールの種類

リモートアップデートで配布するファームウェアは
「フルパッケージ」と「差分パッケージ」の2つに分類されます。

フルパッケージでの配布

内容

  • 機能追加・削減したソフトウェアをすべて組み込んだファームウェア

メリット

  • アップデートの実装が比較的容易

デメリット

  • システムが複雑化する中で容量が肥大化するため、
    リソース(メモリ、通信)の負荷が大きい

主な利用ケース

  • IoTデバイス(端末)等の小規模システム

差分パッケージでの配布

内容

  • 機能の追加・削減・変更等の修正差分パッチのみをパッケージしたファームウェア

メリット

  • 差分のみを抽出するため、リソース(メモリ、通信)の負荷を軽減できる
    またバイナリ差分のパッチを配布するため、ファームウェアの秘匿性が向上

デメリット

  • アップデートの機能を提供するうえで、「差分の抽出・適用・管理」※ と実現すべき内容が多いため、
    システム構築における開発コストがかかる
    ※ 実現手段としては、オープンソースソフトウェアを
    利用したシステム・商用ツールを利用したシステム

    2つが考えられる。

主な利用ケース

  • 航空や自動車等、ネットワークの帯域に制約があり、複雑な大規模システム

リモートアップデートの比較

2バンク切り替え方式

メリット 実装が比較的容易
デメリット メモリ容量が2倍必要、フルサイズで通信料が多くかかる

オープンソースソフトウェアを活用した方式

メリット 差分パッチのためサイズが小さく通信料が削減できる
デメリット パッチの展開に時間がかかる。実装が難しい。設計で工夫必要

商用ツールを活用した方式

メリット セキュリティが考慮されている、差分でサイズ小、通信料減、極小リソースにも対応
デメリット ライセンス費用が必要
 
リモートアップデート方式 アップデート
ファームウェアの種類
アップデート
時間
通信量 セキュ
リティ
対応難度 開発期間 費用 メモリ
容量
開発 ランタイム
2バンク切り替え方式 フルパッケージ × × × ×
オープンソースソフトウェアを
活用したアップデート方式
(xdelta/bsdiff等のバイナリ差分抽出ツール)
差分パッケージ × × ×
商用ツールを活用したアップデート方式
(RTPatch)
×

※ モジュールの暗号化等の仕組みを組み込むことで対策可能

差分抽出で効率アップデート

通信コストを削減

セキュリティ強化

高い秘匿性を確保

電源断対応

起動の安全性確保と
アップデートの再開

アップデート時の安全性向上

ファイルチェック機能で
事故を防止