IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立オートモティブシステムズ株式会社の特許一覧

<>
  • 特開-ソフトウェア更新装置及びシステム 図1
  • 特開-ソフトウェア更新装置及びシステム 図2
  • 特開-ソフトウェア更新装置及びシステム 図3
  • 特開-ソフトウェア更新装置及びシステム 図4
  • 特開-ソフトウェア更新装置及びシステム 図5
  • 特開-ソフトウェア更新装置及びシステム 図6
  • 特開-ソフトウェア更新装置及びシステム 図7
  • 特開-ソフトウェア更新装置及びシステム 図8
  • 特開-ソフトウェア更新装置及びシステム 図9
  • 特開-ソフトウェア更新装置及びシステム 図10
  • 特開-ソフトウェア更新装置及びシステム 図11
  • 特開-ソフトウェア更新装置及びシステム 図12
  • 特開-ソフトウェア更新装置及びシステム 図13
  • 特開-ソフトウェア更新装置及びシステム 図14
  • 特開-ソフトウェア更新装置及びシステム 図15
  • 特開-ソフトウェア更新装置及びシステム 図16
  • 特開-ソフトウェア更新装置及びシステム 図17
  • 特開-ソフトウェア更新装置及びシステム 図18
  • 特開-ソフトウェア更新装置及びシステム 図19
  • 特開-ソフトウェア更新装置及びシステム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024131791
(43)【公開日】2024-09-30
(54)【発明の名称】ソフトウェア更新装置及びシステム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20240920BHJP
   B60R 16/02 20060101ALI20240920BHJP
【FI】
G06F8/65
B60R16/02 660U
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023042256
(22)【出願日】2023-03-16
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】ロペス ハイロ
(72)【発明者】
【氏名】堀田 勇樹
(72)【発明者】
【氏名】片岡 幹雄
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA47
5B376DA28
5B376FA13
5B376GA07
(57)【要約】
【課題】ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識可能なソフトウェア更新装置及びシステムを提供する。
【解決手段】ソフトウェア更新装置は、アプリケーションのデータバージョンを変更する際にアプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を記憶する記憶部と、アプリケーションの変更の要求に適合する変換機能を取得する変換機能取得部と、受信した変換機能を用いて、アプリケーションのデータ形式を所望のデータ形式へ変換するデータ変換部と、を備え、データ変換部は、アプリケーション変更時に変換機能の有無に応じてアプリケーションのユーザデータに対する処理を変更する。
【選択図】図2
【特許請求の範囲】
【請求項1】
アプリケーションのデータバージョンを変更する際に前記アプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を記憶する記憶部と、
前記アプリケーションの前記変更の要求に適合する前記変換機能を取得する変換機能取得部と、
受信した前記変換機能を用いて、前記アプリケーションの前記データ形式を所望のデータ形式へ変換するデータ変換部と、を備え、
前記データ変換部は、前記アプリケーションの変更時に前記変換機能の有無に応じて前記アプリケーションの前記ユーザデータに対する処理を変更する、
ことを特徴とするソフトウェア更新装置。
【請求項2】
請求項1に記載のソフトウェア更新装置であって、
前記アプリケーションに前記変更を適用した後、前記アプリケーションのデータバージョンをロールバックするロールバック管理部をさらに備え、
前記データ変換部は、前記ロールバックにおいて前記アプリケーションのデータ形式を前記所望のデータ形式に変換する、
ことを特徴とするソフトウェア更新装置。
【請求項3】
請求項2に記載のソフトウェア更新装置であって、
前記データ変換部は、前記変換機能が存在するとき、前記変換機能により前記ユーザデータの前記データ形式を変換し、前記変換機能が存在しないとき、前記ユーザデータのデータ形式を変換せず前記アプリケーションの無効化および前記ロールバックの停止を行う、または、ユーザの許可に基づき前記ユーザデータを削除し前記ロールバックを実行する、
ことを特徴とするソフトウェア更新装置。
【請求項4】
アプリケーションのデータバージョンを変更する際に前記アプリケーションのデータ形式を変換する変換機能を記憶する記憶部と、
前記アプリケーションの前記変更の要求に適合する前記変換機能を取得するデータ変換部と、を備え、
前記データ変換部は、前記データ形式を所望のデータ形式へ変換する前記変換機能の有無に応じて前記アプリケーションが搭載された電子装置への前記変換機能の送信の要否を決定する、
ことを特徴とするソフトウェア更新装置。
【請求項5】
請求項4に記載のソフトウェア更新装置であって、
前記変換機能が存在しないとき、前記アプリケーションのユーザデータの損失に関する情報を出力する通知部をさらに備える、
ことを特徴とするソフトウェア更新装置。
【請求項6】
請求項4に記載のソフトウェア更新装置であって、
前記変換機能が存在しないとき、前記アプリケーションを変更せずに該アプリケーションを無効化する無効化部をさらに備える、
ことを特徴とするソフトウェア更新装置。
【請求項7】
請求項6に記載のソフトウェア更新装置であって、
前記無効化部は、前記変換機能の有無に関わらず、ユーザの選択によって前記アプリケーションの無効化の要否を決定する、
ことを特徴とするソフトウェア更新装置。
【請求項8】
請求項4に記載のソフトウェア更新装置であって、
前記記憶部は、前記アプリケーションの更新データを配信するサーバから受信した過去に使用した変換機能を保持し、
前記データ変換部は、前記アプリケーションの前記変更に必要な変換機能を示す更新可能なテーブルを有する、
ことを特徴とするソフトウェア更新装置。
【請求項9】
請求項8に記載のソフトウェア更新装置であって、
前記データ変換部は、前記変換機能を取得できないとき、前記サーバに前記変換機能の送信を要求する、
ことを特徴とするソフトウェア更新装置。
【請求項10】
サーバと少なくとも一つの車載装置を備えるソフトウェア更新システムであって、
前記サーバは、前記車載装置に搭載されたアプリケーションのデータバージョンを変更する際に前記アプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を含む更新パッケージを前記車載装置に配信し、
前記少なくとも一つの車載装置は、
前記サーバから受信した前記変換機能を記憶する記憶部と、
前記アプリケーションの前記変更の要求に適合する前記変換機能を取得する変換機能取得部と、
前記変換機能取得部から前記変換機能を取得し、前記データ形式を所望のデータ形式へ変換するデータ変換部と、
前記アプリケーションに前記変更を適用した後、前記アプリケーションのデータバージョンをロールバックするロールバック管理部と、を備え、
前記データ変換部は、前記ロールバックにおいて前記アプリケーションのユーザデータも含めて前記データ形式を前記所望のデータ形式に変換し、前記アプリケーションの変更時に前記変換機能の有無に応じて前記ユーザデータに対する処理を変更する、
ことを特徴とするソフトウェア更新システム。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ターゲットシステムのライフサイクル中に行われるソフトウェア変更にかかわらず、ユーザアプリケーションデータがターゲットシステム上で継続的に有用であることをコンポーネントが保証することが可能なソフトウェア更新装置及びシステムに関する。
【背景技術】
【0002】
ソフトウェアは、消費者や車両提供者毎にパーソナライズされた拡張機能を提供するために、従来の機能安全領域でますます多用されている。これらの機能は、ユーザが生成したアプリケーションデータを使用することでますます活用されている。自動車分野では、ここ数年、自動運転支援システム(AD:Autonomous Driving System)と同様に、アダプティブクルーズコントロール(ACC:Adaptive Cruise Control)、自動緊急ブレーキ(AES:Automatic Emergency Steering)、自動駐車(AP:Automatic Parking)、及び先進運転支援システム(ADAS:Advanced Driving Assistant System)等のソフトウェアベースの機能をより適切にパーソナライズするために、ユーザアプリケーションデータの使用が増加している。
【0003】
これらの機能が導入されている車両は増加し続けており、自動車メーカーが競合他社との差別化を図る必要性から、特定のユーザが慣れ親しんだパーソナライズされたユーザエクスペリエンスを継続的かつシームレスに維持または改善する必要がある。ユーザアプリケーションデータの長期的なメンテナンスは、パーソナライズされたユーザエクスペリエンスを実現する上で大きな役割を果たすことになる。
【0004】
多くの機能安全分野では、安全要件はほぼ確立されており、ソフトウェアの複雑化が進んでも容易に検査できる。しかし、ソフトウェア関連のエラーは製品の販売後に発見され、その都度修正される。自動車分野では、ソフトウェア関連のエラーは多くの車両の主要な機能に直接影響を及ぼし、自動車供給者のサービス停止を引き起こし、ユーザ経験の質を低下させる可能性を高める。この点に関して、2019年に生じた車両のリコールの半数がソフトウェアベースの欠陥に関係していた。
【0005】
4Gおよび5G携帯電話技術によるユビキタス接続の台頭、および多くの家庭でのWi-Fi(登録商標)と組み合わせたより高い帯域幅のインターネットの使用の増加により、Firmware Over The Air(FOTA)およびSoftware Over the Air(SOTA)によるソフトウェアの更新が可能になった。そして、これらの更新メカニズムにより、デバイスの製造元は、デバイスを製造元に返送することなくソフトウェアを更新することが可能になった。この技術は、主に次の2つの理由から、自動車分野において非常に重要である。
【0006】
まず、FOTA/SOTAソリューションでは、ほとんどの機能がソフトウェア対応であるため、ユーザは最新の機能を利用できる。次に、ユーザはFOTA/SOTAソリューションを使用して最新の修正プログラムを取得し、車両が正しく機能するように修正することが可能である。これらを実行するための唯一の要件は、インターネットに接続可能なことである。特に自動車分野では、あらゆる種類のソフトウェア更新は、従来、ユーザが自動車販売店などの場所に物理的に行くことによって行われてきた。これは、製造業者にとってロジスティクス上の負担であり、消費者のユーザエクスペリエンスにとっても懸念事項であった。
【0007】
FOTA/SOTA技術を使用している場合でも、複雑なソフトウェアが実装されたデバイスの更新時にソフトウェア関連のエラーが発生する可能性がある。このような場合、更新対象のソフトウェアは複雑であるため、問題の解決に数週間かかる場合がある。特に、更新されるデバイスが政府機関によって規制される車両である自動車分野の場合、更新を実行するための認証と許可が必要であり、最終ユーザが更新を完了するためにさらなる時間を要する。
【0008】
これらの特定のケースでは、ユーザエクスペリエンスに重点を置いた解決方法は、既知の安全でセキュアなアプリケーションバージョンにロールバックすることである。しかしながら自動車分野では、パーソナライズされたユーザエクスペリエンスがますます重要になっているため、アプリケーションをロールバックするだけでは十分ではなく、ユーザアプリケーションデータも維持され、可能な限り使用可能であることを保証する必要がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010-287055号公報
【特許文献2】特開2005-332301号公報
【特許文献3】特開2005-309548号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識可能なソフトウェア更新装置及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記の課題を解決するために、本発明に係るソフトウェア更新装置は、アプリケーションのデータバージョンを変更する際にアプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を記憶する記憶部と、アプリケーションの変更の要求に適合する変換機能を取得する変換機能取得部と、受信した変換機能を用いて、アプリケーションのデータ形式を所望のデータ形式へ変換するデータ変換部と、を備え、データ変換部は、アプリケーション変更時に変換機能の有無に応じてアプリケーションのユーザデータに対する処理を変更する。
【発明の効果】
【0012】
本発明によれば、ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識可能なソフトウェア更新装置及びシステムを提供することが可能になる。
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0013】
図1】本発明に係るソフトウェア更新装置が適用されるソフトウェア更新システムの全体構成を示す概略ブロック図。
図2】ターゲットシステムV1000の構成を示す機能ブロック図。
図3】データ変換管理ユニットXYZ300の構成を示す機能ブロック図。
図4】データ変換ユニットXYZ320の構成を示す機能ブロック図。
図5】OTAセンターC1000の構成を示す機能ブロック図。
図6】ロールバック用の画面I1200を提示するインフォテインメントシステムI1000の構成を示す機能ブロック図。
図7】更新用の画面I1300を提示するインフォテインメントシステムI1000の構成を示す機能ブロック図。
図8】置換用の画面I1400を提示するインフォテインメントシステムI1000の構成を示す機能ブロック図。
図9】ソフトウェアユニットUX000の構成を示す機能ブロック図。
図10】通知N1000の構成を示す機能ブロック図。
図11】ソフトウェア更新装置が実行する処理を示すフローチャート。
図12】ソフトウェア保存部を更新する処理を示すフローチャート。
図13】ターゲットデバイスによる通知処理を示すフローチャート。
図14】更新のデータ変換処理を示すフローチャート。
図15】アプリケーションデータの更新処理を示すフローチャート。
図16】アプリケーションデータの変換処理を示すフローチャート。
図17】アプリケーションの無効化処理を示すフローチャート。
図18】データ変換管理ユニットのエントリが有効である場合のアプリケーション変換処理を示すフローチャート。
図19】データ変換が失敗した場合のロールバック処理を示すフローチャート。
図20】アプリケーションのロールバック/置換中のアプリケーションデータ変換処理を示すフローチャート。
【発明を実施するための形態】
【0014】
[実施例1]
以下に、本発明の一実施例について図面を用いて説明する。図1は、本発明の一実施例に係るソフトウェア更新装置が適用されるソフトウェア更新システム全体の構成要素を示す図である。ソフトウェア更新システムは、ターゲットシステムV1000、これと所定の通信システムを介して接続されるOTAセンターC1000(図5に詳述)を有する。OTAセンターC1000は通知N1000(図10に詳述)を介して必要なソフトウェアをターゲットシステムV1000に転送可能である。図2に詳述されるターゲットシステムV1000は、特定の機能を実行するために、別個のデバイスである場合もある情報処理ユニットで構成される任意のシステムである。
【0015】
図2は、ターゲットシステムV1000の構成を示すブロック図である。ターゲットシステムV1000は、それぞれが独自のソフトウェアを持つ複数のデバイスで構成できるシステムである。ターゲットシステムV1000は、ユーザとシステム間とのインターフェイスを提供するインフォテインメントシステムI1000、ソフトウェアの変更、ユーザアプリケーションのデータ変換、システムのロールバック機能を提供するソフトウェア更新装置E1000、およびターゲットシステムV1000によって提供される機能を実装する任意の数のECU EX000によって構成される。
【0016】
インフォテインメントシステムI1000は、図6にブロック図として示されている。システムは、ターゲットシステムV1000内のコンポーネントと通信するための内部ネットワークユニットI1100、外部デバイスと通信するためのネットワークユニットI1300、およびユーザに情報を表示し、ユーザから情報を受け取るためのユーザインターフェイスとしての画面によって構成される。ソフトウェアユニットの変更のタイプに応じて、画面上に表示される情報が変わる。図6はソフトウェアユニットのロールバックの例として画面I1200を示し、図7はソフトウェアユニットの更新の例として画面I1300を示し、図8はソフトウェアユニットの置換の例として画面I1400を示している。
【0017】
ソフトウェア更新装置E1000の構成を図2に示す。ソフトウェア更新装置E1000は、ターゲットシステムV1000の外部のネットワークアクセスを許可するネットワークユニットE11000、ターゲットシステムV1000内のネットワークアクセスを許可する内部ネットワークユニットE12000、ターゲットシステムV1000内のソフトウェアユニットの変更を担う更新制御ユニットE14000、初期ソフトウェアユニット管理ユニットE15000、およびロールバック管理ユニットE16000を有する。初期ソフトウェアユニット管理ユニットE15000は、ターゲットシステムV1000内にインストールされているソフトウェアユニットと、それが実行されているECU EX000の追跡を担当する。
【0018】
初期ソフトウェアユニット管理ユニットE15000はさらに、ソフトウェアユニット保存部E15200を有する。この保存部には、ターゲットシステムV1000のライフサイクルの後半で使用される可能性のあるソフトウェアユニットE153XXと、ターゲットシステムV1000のライフサイクル中に使用される可能性のあるあらゆる形式のファイルが格納される。ロールバック管理ユニットE16000は、通知N1000の処理を担当する。このユニットは、通知N1000を直接処理する通知管理ユニットE16100と、初期ソフトウェアユニット管理ユニットE15000およびECU EX000固有のソフトウェア管理ユニットEX200と連携して特定のアプリケーションEX40Yを無効にしたい場合に信号を送信する場所を決定するアプリケーション無効化ユニットE16200を有する。このユニットには、特定のアプリケーションEX40Yで使用されるユーザアプリケーションデータの変換に関する情報の維持を担当するデータ変換管理ユニットE16300も含まれる。
【0019】
図3にデータ変換管理ユニットの詳細を示す。データ変換管理ユニットXYZ300は、アプリケーションデータ変換管理テーブルXYZ310を有する。このテーブルは、特定のアプリケーションEX40Yで使用されるユーザアプリケーションデータの変換を許可するために必要な情報を示している。このテーブルは、アプリケーション名XYZ311(ECU EX000内の特定のバイナリを識別する固有の名前)、バイナリの作成者が指定したバージョンであるバージョンXYZ312、バイナリによって格納されたユーザアプリケーションデータの作成者が指定したバージョンであるアプリケーションデータバージョンXYZ313、アプリケーション名XYZ311が変換される宛先の固有の名前である変換宛先アプリケーション名XYZ314、変換された宛先のバージョンである変換宛先アプリケーションバージョンXYZ315、アプリケーション名XYZ311が変換される宛先バイナリに対して作成者が指定したバージョンである変換宛先データバージョンXYZ316、ユーザアプリケーションデータの物理的な変換を可能にする関数の固有の名前である変換関数XYZ317、および変換関数XYZ317にアクセスできる位置を通知するURI(Uniform Resource Identifier)である変換関数ロケーションXYZ318から構成される。
【0020】
バイナリバージョンの違いにより、ユーザアプリケーションデータの変換が必要になる場合があるため、変換宛先アプリケーション名XYZ314がアプリケーション名XYZ311と同じである可能性がある。同様に、異なるバイナリが同一のユーザアプリケーションデータを使用する可能性があるため、バージョンXYZ312と変換宛先データバージョンXYZ316も同一になり得る。変換関数ロケーションXYZ318は、その実装に制限はない。この情報は、ユーザアプリケーションのデータ変換を完了できる別のツール、バイナリ、またはAPIにつながる可能性がある。データ変換管理ユニットE16300には、図4に示す、データ変換リソースユニットXYZ321とコンポーネントを介して特定のシステムでユーザアプリケーションのデータ変換を実行できるかどうかを判断するためにリソースを追跡するデータ変換ユニットXYZ320及びデータ変換実行ユニットXYZ322を介して、特定のシステムでユーザアプリケーションのデータ変換を実行することを担当する構成要素も含まれる。データ変換ユニットXYZ320には、システム内のアプリケーションEX40Yによって使用されているユーザアプリケーションデータを追跡するテーブルであるデータロケーションユニットXYZ323も含まれる。
【0021】
ECU EX000は、ソフトウェアユニットUX000を介してインストールされた、ターゲットシステムV1000の機能を実装する任意の数のアプリケーションEX40Y、ECU EX000上のソフトウェアユニットUX000を追跡するソフトウェア管理ユニットEX200、およびターゲットシステムV1000内の構成要素間を接続するネットワークユニットEX100から構成される。ECU EX000には、ソフトウェア更新装置E1000にあるコンポーネントを模倣するローカルデータ変換ユニットEX300を含めることもできる。
【0022】
OTAセンターC1000の詳細を図5に示す。OTAセンターC1000には、ターゲットシステムV1000上のソフトウェアインストールを変更するために必要な情報と認証が含まれる。OTAセンターC1000は、ターゲットシステムV1000と通信してシステムを変更するための情報を提供するために使用されるネットワークユニットC1100、ターゲットシステムV1000上のソフトウェアを変更するために使用されるソフトウェアユニットUX000を格納するために使用されるソフトウェアユニット保存部C1200、ターゲットシステムV1000の情報を維持するために使用されるターゲットシステム管理部C13000、必要な通知N1000およびソフトウェアユニットUX000をターゲットシステムV1000に送信するソフトウェアユニット配布部C1400、通知N1000を作成する通知ユニットC1500、及び特定のアプリケーションEX40Yで使用されるユーザアプリケーションデータの変換に関する情報の維持を担当するデータ変換管理ユニットC1600から構成される。
【0023】
ターゲットシステム管理部C13000は、ターゲットシステムC13X00のリストによって構成される。各エントリには、システムID C13X10、ターゲットシステムV1000の一意の識別子、システムソフトウェア情報C13X20、及びターゲットシステムV1000およびその論理的または物理的な内部コンポーネント内で使用されているソフトウェアユニットに関する詳細情報に関する情報が含まれる。
【0024】
通知N1000の詳細を図10に示す。通知N1000は、ターゲットシステムV1000がシステムのソフトウェア変更要求を正しく処理できるように、OTAセンターC1000からターゲットシステムV1000に情報を送信するために使用されるフォーマットである。具体的には、通知N1000は、ソフトウェアユニットUX000をターゲットシステムV1000の初期ソフトウェアユニット管理ユニットE15000およびリンクされたソフトウェア管理ユニットEX200に転送して処理する。通知N1000は、送信される通知のタイプを決定する通知タイプN1100、通知を認証するためにターゲットシステムV1000によって使用される認証情報N1300、および通知にリンクされたソフトウェアユニットUX000であるユニットN1500で構成される。
【0025】
ソフトウェアユニットUX000は、ターゲットシステムV1000にインストールされたソフトウェアを変更するために必要な情報を送信するために、ソフトウェアユニット保存部および通知N1000で使用されるフォーマットである。このフォーマットに従って、ターゲットシステムV1000内でユーザアプリケーションのデータ変換を追跡できるコンポーネントを作成する。本発明では、ソフトウェアユニットUX000が図9に示されている。
【0026】
ソフトウェアユニットUX000には、ソフトウェアの一般名であるアプリケーション名UX100、バイナリおよびソースコードへの通常の変更を通知するために使用されるバージョニングスキームであるバージョンUX200、ターゲットシステムV1000内の指定されたバイナリを置き換えるために使用されるバイナリデータを実質的に含むバイナリデータUX300、ユーザアプリケーションデータが収集および保存される方法に対する通常の変更を通知するために使用されるバージョニングスキームであるアプリケーションデータバージョンUX400、ソフトウェアユニット内においてデータ変換を行うべきであることを通知するフラグである変換試行部UX500、関連するソフトウェアユニットを無効にする必要があることを通知するフラグである無効化部UX600、およびユーザアプリケーションのデータ変換に関連する情報を含む0個以上のデータ変換部UXY00が含まれる。
【0027】
データ変換部UX700には、ユーザアプリケーションデータが変換された後に使用される共通アプリケーション名を決定する変換アプリケーション名UX710、共通アプリケーション名のバージョンを決定する変換アプリケーションバージョンUX720、現在のデータが変換されるアプリケーションデータバージョンである変換データバージョンUX730、ユーザアプリケーションデータ変換を許可する関数の一般名である変換関数UX740及びデータ変換を可能にする関数へのアクセスを与えるURIである変換関数ロケーションUX750を含む。
【0028】
通知N1000で使用されているソフトウェアユニットの場合、バイナリデータUX300は、通知タイプN1100がその使用を要求する場合にのみ含まれる。これはそのデータ含有はデータ伝送の際の不必要なコストをもたらしうるからである。フラグである変換試行部UX500および無効化部UX600も、通知タイプN1100がその使用を要求した場合にのみ使用される。データ変換部UXY00を使用する場合、アプリケーション名UX100、バージョンUX200、およびアプリケーションデータバージョンUX400が含まれている必要がある。
【0029】
実施例1において、特定のソフトウェアユニットが修正を必要とするという通知N1000を取得するOTAセンターC1000が実行する処理を図11に示す。必要な通信技術を使用して、通知はOTAセンターC1000、具体的には通知ユニットC1500によって受信される(ステップS1000)。この時点で、通知ユニットC1500は、通知タイプN1100が更新(ステップS1100)、置換(ステップS1200)、またはロールバック(ステップS1300)のうちいずれかであるかを判断する。通知タイプN1100が更新または置換であった場合にはOTAセンターC1000は、そのソフトウェアユニット保存部C1200を更新しなければならない。通知タイプN1100がロールバックの場合には、ソフトウェアユニット保存部C1200の更新はスキップされる。
【0030】
ソフトウェアユニット保存部C1200の更新には、図12に示すフローが使用される。通知N1000内のソフトウェアユニットUX000は、通知ユニットC1500によって抽出され、ソフトウェアユニット保存部C1200に転送される(ステップS1410)。ソフトウェアユニット保存部C1200では、ソフトウェアユニットUX000のアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400、変換試行部UX500、無効化部UX600、および使用可能なデータ変換部UXY00が抽出され、抽出された情報は、ソフトウェアユニット保存部C1200で既に利用可能な情報と比較するために使用される(ステップS1420)。
【0031】
ステップS1420でソフトウェアユニットUX000のバージョンUX200が見つからない場合、すなわちステップS1430で“No”の場合には、ソフトウェアユニットUX000がソフトウェアユニット保存部C1200に格納される(ステップS1440)。ソフトウェアユニットUX000のアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400、およびデータ変換部UXY00に関する情報は、そのような情報がアプリケーションデータ変換管理テーブルXYZ310に既にあるかどうかのチェックに使用される(ステップS1450)。テーブルXYZ310に情報がない場合には、後で使用するために情報がテーブルに追加される(ステップS1460)。
【0032】
図11のフローチャート中通知タイプN1100がロールバックである場合には、OTAセンターC1000のターゲットシステム管理部C13000が内部構造を検索し、ユニットN1500で見つかったソフトウェアユニットを使用するシステムを見つけることによってシステムソフトウェア情報C13X20を取得する。この検索から、OTAセンターC1000は、通知N1000が配布されなければならないターゲットシステムC13X00のリストを取得する(ステップS1500)。
【0033】
この情報はソフトウェアユニット配布部C1400に渡される。ソフトウェアユニット配布部C1400はリストを使用して必要な通知N1000、特に通知ユニットN1500で使用されるソフトウェアユニットを作成する。これは、各ターゲットシステムV1000が、特定の変更に必要な追加のソフトウェアユニットまたは追加の認証を行うために異なる構成を持つ可能性があるためである(ステップS1600)。通知N1000が作成されると、OTAセンターC1000のネットワークユニットC1100を介して対応するターゲットシステムC13X00に通知N1000が送信される(ステップS1700)。
【0034】
ステップS1700において通知N1000が対象のターゲットシステムV1000に到達すると、図13のフローチャートに移行する。ネットワークユニットE11000は、ターゲットシステムV1000に対する通知N1000を受信する(ステップS1800)。次に、通知N1000はロールバック管理ユニットE16000の通知管理ユニットE16100に渡され、どのような手続きが必要かが判断される(ステップS1900)。
【0035】
続いて、再び通知タイプN1100の種類が判断されるが、これが更新であった場合(ステップS2000で“Yes”)は実施例2として後述する。通知N1000の通知タイプN1100がロールバックまたは置換であった場合(ステップS2500またはS2700で“Yes”)、フローは図20へと移行する(ステップS2600)。
【0036】
図20においてまず通知管理ユニットE16100は、ソフトウェアユニットN15XXを初期ソフトウェアユニット管理ユニットE15000に転送し、ターゲットシステムV1000内で同じアプリケーション名UX100を持つソフトウェアユニットのリストを抽出する(ステップS2601)。
【0037】
さらに、ソフトウェアユニットN15XXのバージョンUX200と同じになるようにフィルタリングしてリストを絞り込む(ステップS2602)。OTAセンターC1000または通知N1000がユーザアプリケーションのデータ変換を望まない可能性があり、これが、変換試行部UX500が有効になっているか否かチェックされる理由である。変換試行部UX500が有効でない場合、ユーザアプリケーションデータ変換はスキップされる(ステップS2603)。変換試行部UX500が有効である場合、リスト内のソフトウェアユニットS1に移行され(ステップS2604)、無効か否かがチェックされる(ステップS2605)。
【0038】
S1が無効の場合、実現するユーザアプリケーションデータ変換はない。S1が無効でない場合、各ソフトウェアユニットのアプリケーションデータバージョンUX400は、ソフトウェアユニットN15XXのアプリケーションデータバージョンUX400と同じか否かチェックされる(ステップS2606)。アプリケーションデータバージョンUX400に変更が見られない、すなわち同じ場合(ステップS2606で“Yes”)、実行するユーザアプリケーションデータ変換せず、リスト内の次のソフトウェアユニットを確認する(ステップS2609)。
【0039】
アプリケーションデータバージョンUX400の不一致が見られる場合(ステップS2606で“No”)、リストのソフトウェアユニットのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400、ソフトウェアユニットN15XXの変換宛先アプリケーション名XYZ314、変換宛先アプリケーションバージョンXYZ315、及び変換宛先データバージョンXYZ316をアプリケーション名XYZ311、バージョンXYZ312、アプリケーションデータバージョンXYZ313、変換宛先アプリケーション名XYZ314、変換宛先アプリケーションバージョンXYZ315、及び変換宛先データバージョンXYZ316にマッピングするアプリケーションデータ変換管理テーブルXYZ310のエントリをチェックする(ステップS2607)。エントリが存在する場合、動作フローは図15に続く(ステップS2608)。エントリが存在しない場合、動作フローは図18に続く(ステップS2610)。
【0040】
図15の動作フローは、ステップS2607で見つかったアプリケーションデータ変換管理テーブルXYZ310のエントリを取得することから始まる(ステップS2009)。次に、データ変換管理ユニットXYZ300は、更新制御ユニットE14000から、アプリケーションデータ変換管理テーブルXYZ310エントリ内のアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400にリンクされたECU EX000を読み出す(ステップS2010)。ターゲットECU EX000を検出すると、データ変換管理ユニットXYZ300は、後で使用するために変換関数XYZ317と変換関数ロケーションXYZ318を抽出する(ステップS2011)。
【0041】
この時点で、利用可能な任意の手段を使用して、ローカルのデータ変換リソースユニットXYZ321は、ECU EX000のデータ変換リソースユニットEX310から情報を更新し(ステップS2012)、ECU EX000が変換関数XYZ317を実行するために使用可能なリソースを持っているかどうかを判断できるようにする(ステップS2013)。本発明は、この判断のためのリソースのタイプまたは方法を限定しない。
【0042】
データ変換管理ユニットXYZ300は、ECU EX000が変換関数XYZ317を実行可能である(リソースを有する)と判断した場合、ECU EX000のデータ変換ユニットXYZ320との単一エントリリストを作成する(ステップS2014)。データ変換管理ユニットXYZ300が、ECU EX000が変換関数XYZ317を実行できない(リソースを有さない)と判断した場合、コンポーネントは、情報を取得できる、接続されているすべてのデータ変換ユニットXYZ320を有するリストを作成する。
【0043】
本発明は、ユーザアプリケーションデータ変換を実行するための他の可能な候補を取得するためのリソースまたは方法を限定しない。ユーザアプリケーションのデータ変換を実行できるコンポーネントのリストには、ターゲットシステムV1000内の他のECU EX000、ソフトウェア更新装置E1000自体、OTAセンターC1000、またはターゲットシステムV1000に接続され、データ変換ユニットXYZ320のデータを持っているその他のシステムを含めることが可能である(ステップS2016)。実行がどこで行われるかに関係なく、作成されたリストは、図16に続く操作フローで使用される(ステップS2015)。
【0044】
図16のフローにおいて、作成したリスト内のデータ変換ユニットXYZ320(DC)をチェックし(ステップS2017)、無効でないことを確認する(ステップS2018)。リストが無効の場合(ステップS2018で“Yes”)、データ変換管理ユニットE16300には、データ変換を行うことができなかったことが通知される(ステップS2028)。データ変換失敗後に利用可能なオプションは、図19の動作フローによって処理される(ステップS2029)。
【0045】
リストが無効でない場合(ステップS2018で“No”)は、潜在的なデータ変換ユニットXYZ320の候補が変換関数XYZ317を実行するためのリソースを持っていることを確認する必要がある(ステップS2019)。現在選択されているデータ変換ユニットXYZ320にリソースがない場合、フローはリスト内の次のデータ変換ユニットXYZ320に進む(ステップS2027)。このように、変換関数XYZ317を正しく実行できるデータ変換ユニットXYZ320がリストに存在しない場合、データ変換は失敗となり、フローは前述のステップS2028に進む。
【0046】
選択したデータ変換ユニットXYZ320が変換関数XYZ317を実行するためのリソースを持っていることが確認された場合(ステップS2019で“Yes”)、ネットワークユニットEX100を介して、ユーザアプリケーションデータの元の所有者であるECU EX000は、利用可能な手段を問わず、参照されたアプリケーションデータ変換管理テーブルXYZ310エントリ内のアプリケーション名E2331およびバージョンE2332に関連付けられたデータロケーションE2334にある情報を選択されたデータ変換ユニットUX320へ転送する(ステップS2020)。
【0047】
本発明は、この情報を送信するために利用される方法に関して制限を有しない。選択されたデータ変換ユニットUX320は、この情報を受信し、変換関数ロケーションXYZ318から変換関数XYZ317を読み出す(ステップS2021)。変換関数XYZ317の取得方法に制限はない。指定されたユーザアプリケーションデータを変換するために必要な情報を備えた、選択されたデータ変換ユニットXYZ320は、システムがデータ変換を実行できる状態になるまで待機する(ステップS2022)。
【0048】
この手順により、ユーザアプリケーションデータの変換に必要なリソースがターゲットシステムV1000またはそのコンポーネントの機能を妨げないようにすることを保証する。このステップの状態を定義する方法に制限はない。所望の状態になったら、認証情報N1200を検証する(ステップS2023)。
【0049】
認証情報N1200の検証は、ユーザアプリケーションのデータ変換とその後のバイナリ変更が確実に行われるようにすることを保証するための方法である。この検証の実装方法に制限はない。認証情報N1200が検証されると、選択されたデータ変換ユニットXYZ320は変換関数XYZ317を実行し、アプリケーション名E2331のアプリケーションデータバージョンE2333情報を、データロケーションE2334から、選択されたアプリケーションデータ変換管理テーブルXYZ310エントリの変換宛先データバージョンXYZ316に変換する(ステップS2024)。実行が完了すると、ユーザアプリケーションデータの最終検証が実行される(ステップS2025)。結果が成功である場合、変換されたデータは対象のECU EX000に戻される(ステップS2026)。結果が失敗である場合、処理フローは、他のデータ変換ユニットXYZ320を検証し続ける(ステップS2027)。
【0050】
図20において、ユーザアプリケーションデータが特定のソフトウェアユニット用に正常に変換されると、初期ソフトウェアユニット管理ユニットE15000は、処理するソフトウェアユニットがなくなるまで、ステップS2605からS2609を使用して、リスト内の他のソフトウェアユニットを処理し続ける。これにより、動作フローは図13のステップS2200に進む。
【0051】
ステップS2200は、このステップの更新がターゲットシステムV1000上で実現されることを考慮すると、前述のソフトウェアユニット保存部の更新と同一の動作である。ソフトウェアユニット保存部を更新すると、システムは再び認証情報N1200を検証して、次のステップであるシステム上のバイナリの実際の修正が実行許可を有することを保証する(ステップS2300)。認証情報N1200が利用不可能な場合(ステップS2300で“No”)、運用フローは終了する。認証情報N1200が利用可能である要件を満たす場合(ステップS2300で“Yes”)、動作フローは図17に続く(ステップS2400)。
【0052】
図17の動作フローは、初期ソフトウェアユニット管理ユニットE15000が、ソフトウェアユニットが利用されているECU EX000のリストを決定し、そのリストを更新制御ユニットE14000に転送することから始まる(ステップS2401)。ユーザアプリケーションのデータ変換段階で起こった事象によっては、特定のソフトウェアユニットを無効にする必要が生じる可能性がある。このチェックは、ステップS2402で実現される。無効にする必要がない場合(ステップS2402で“No”)、更新制御ユニットE14000は、ソフトウェアユニットN15XXおよびECU EX000のリストを取得し、内部ネットワークユニットE12000を介してリストの各要素に情報を転送する(ステップS2403)。対象ECU EX000は、ネットワークユニットEX100を介して、ソフトウェアユニットをソフトウェア管理ユニットEX200に渡す(ステップS2404)。
【0053】
ECU EX000は、ソフトウェアの修正を許可しない状態にある可能性があるため、修正を許可する状態になるまで待機する必要がある場合がある(ステップS2405)。所望の状態に達すると、ソフトウェアユニットN15XXからの関連するバイナリデータUX300の実際の置き換えをECU EX000上で行うことができる(ステップS2406)。修正が完了すると、ソフトウェア管理ユニットEX200は、ネットワークユニットEX100を介して更新制御ユニットE14000に処理結果を送信し(ステップS2407)、更新制御ユニットE14000は、通知管理ユニットE16100に処理結果を通知する(ステップS2408)。着信要求を処理するコンポーネントであった通知管理ユニットE16100は、その後、そのネットワークユニットE11000を介して処理結果を指定された送信者に報告し(ステップS2409)、処理フローを終了する。
【0054】
再び図20のフローに戻る。ユーザアプリケーションデータ変換の試行中、ステップS2607で、アプリケーションデータ変換管理テーブルXYZ310が、ロールバックが必要なソフトウェアユニットに対して利用できない可能性がある。この場合、操作フローは図18に続く(ステップS2610)。
【0055】
フローにおいて、OTAセンターC1000などの外部情報保存部に接続するためのOver the Air(OTA)機能が必要である(ステップS2050)。これは、ターゲットシステムV1000が何らかの理由でユーザアプリケーションデータ変換の処理を続行するために必要な情報を持っていないことが既に判明しているためである。OTA機能が利用できない場合、操作フローは図19に続く(ステップS2055)。OTA機能が利用可能な場合、通知N1000で受信したターゲットソフトウェアユニットのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400、およびソフトウェアユニットN15XXのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400はOTAクライアントE13000に転送される(ステップS2051)。
【0056】
情報は、ネットワークユニットE11000を介してOTAセンターC1000に送信され、そこで情報は、OTAセンターのデータ変換管理ユニットC1600のアプリケーションデータ変換管理テーブルXYZ310をチェックするために使用され(ステップS2052)、さらに一致するエントリがあるかどうかを検索される(ステップS2053)。
【0057】
OTAセンターC1000のアプリケーションデータ変換管理テーブルXYZ310にエントリがある場合、その情報は、データ変換部UXY00情報が更新され、変換試行部UX500が有効に設定された、新しく作成された通知N1000に配置される(ステップS2054)。これには、OTAセンターC1000およびターゲットシステムV1000によって通知N1000が再度処理される必要があり、すなわち図11のフローを再び通過する(ステップS2055)。
【0058】
OTA機能が利用できない場合(ステップS2050で“No”)、またはポーリングに選択されたOTAセンターC1000に、対象のソフトウェアユニットのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400、およびソフトウェアユニットN15XXのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400の組み合わせに対するアプリケーションデータ変換管理テーブルXYZ310がない場合(ステップS2053で“No”)、処理フローは図19へと移行する(ステップS2056)。
【0059】
図19に示すフローでは、データ変換管理ユニットE16300は、ロールバック管理ユニットE16000にユーザアプリのデータ変換失敗を通知する必要がある(ステップS3001)。この時点でユーザアプリケーションデータ変換は失敗したが、ロールバックが必要なため、ロールバック管理ユニットE16000はアプリケーションデータ変換管理テーブルXYZ310内の利用可能な情報を再コンパイルし、そして、テーブルのアプリケーション名XYZ311およびバージョンXYZ312と一致するアプリケーション名E2331およびバージョンE2332を有するアプリケーションデータ変換管理テーブルXYZ310エントリから、変換宛先アプリケーション名XYZ314及び変換宛先アプリケーションバージョンXYZ315の情報に一致するソフトウェアユニットのリストを取得する(ステップS3002)。
【0060】
通常の処理では、エントリとその情報がユーザアプリケーションのデータ変換へと導く。ただし、この処理フローでは、これらのエントリは、ユーザアプリケーションのデータ変換が実現できない場合でも使用され得る、選択されたロールバックターゲットをも示してしまう。次いで、リストは通知管理ユニットE16100によって、内部ネットワークユニットE12000を介してインフォテインメントシステムI1000に送信され(ステップS3003)、エンドユーザは、ユーザアプリケーションデータを変換できない場合に何をすべきかを選択する。ユーザアプリケーションデータに使用されるバックアップ戦略に応じて、利用可能なオプションは異なり得る。
【0061】
本実施例においては当初の通知タイプN1100がロールバックであったため、ステップS3008で“Yes”となり、一連のオプションが画面I1200(図6参照)に表示される(ステップS3009)。影響を受けるソフトウェアユニットは画面I1210に表示され、I1220の選択肢には、選択したロールバックを、以前にバックアップされたデータを使用していずれのデータも使用せずに使用すること、または現在のソフトウェアユニットがシステム内で実行されていないことがロールバック手順で重要であるため、ソフトウェアユニットを無効にするオプションを含めることができるが、これらに限定されない。オプションはユーザによって選択され(ステップS3010)、システムを変更するために必要な情報を有する通知N1000が作成される(ステップS3007)。ソフトウェアユニットを無効にする場合、無効化部UX600が有効に設定される。
【0062】
ユーザアプリケーションのデータ変換を試行せずにソフトウェアユニットを使用する場合、変換試行部UX500は有効に設定される。バックアップされた情報が利用される場合、データ変換ユニットは、任意の方法を使用して、ソフトウェアユニットとその特定のバージョンに関連するバックアップされた情報を取得する。修正された通知N1000は、リンク21を介して図13のステップS2300に送り返され、そこで認証情報N1200が再度検証される。
【0063】
処理フローの最終結果に関係なく、エンドユーザはユーザアプリケーションデータがどのように処理されたかを認識し、ターゲットシステムV1000は、システムプロバイダによる安全及びセキュリティに関する承認を得て、ユーザが所望する構成になっている。
【0064】
[実施例2]
続いて本発明の実施例2に係るソフトウェア更新システムについて説明する。前述のように、実施例2において通知N1000はアップグレードの通知タイプN1100を有する(図13のステップS2000において“Yes”)。この場合、いずれのバイナリが変更される前に、システムがユーザアプリケーションデータ変換の実行及び検証を行う必要がある。これは図14へと移行する処理である(ステップS2100)。
【0065】
図14のフローにおいて、通知管理ユニットE16100は、ソフトウェアユニットN15XXを初期ソフトウェアユニット管理ユニットE15000に転送し、ターゲットシステムV1000内で同じアプリケーション名UX100を持つソフトウェアユニットのリストを抽出する(ステップS2101)。これは、ターゲットシステムV1000内において複数のシステムがソフトウェアユニットを実行している可能性があるためである。そしてリスト内のバージョンUX200を、ソフトウェアユニットN15XXのバージョンUX200より下位にフィルタリングすることにより、リストをさらに絞り込む(ステップS2102)。
【0066】
OTAセンターC1000または通知N1000がユーザアプリケーションのデータ変換を望まない可能性があり、これが、変換試行部UX500が有効になっているか否かチェックされる理由である(ステップS2103)。変換試行部UX500が有効でない場合、ユーザアプリケーションデータ変換はスキップされる(ステップS2103で“No”)。有効であれば、リストがチェックされ(ステップS2104)、リストが無効でないか否かチェックされる(ステップS2105)。リストが無効の場合、実現するユーザアプリケーションデータ変換はない。リストが無効でない場合、各ソフトウェアユニットのアプリケーションデータバージョンUX400がソフトウェアユニットN15XXのアプリケーションデータバージョンUX400に対してチェックされる(ステップS2106)。
【0067】
アプリケーションデータバージョンUX400に変更が見られない場合、実行するユーザアプリケーションデータ変換はなく、リスト内の次のソフトウェアユニットを確認する(ステップS2109)。アプリケーションデータバージョンUX400の不一致が見られる場合、ソフトウェアユニットN15XXのアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400およびソフトウェアユニットS1のアプリケーション名UX100、バージョンUX200、アプリケーションデータバージョンUX400をアプリケーション名XYZ311、バージョンXYZ312、アプリケーションデータバージョンXYZ313、変換宛先アプリケーション名XYZ314、変換宛先アプリケーションバージョンXYZ315、変換宛先データバージョンXYZ316にマッピングするアプリケーションデータ変換管理テーブルXYZ310のエントリのチェックが実行される(ステップS2107)。エントリが存在する場合、フローは図15に移行する(ステップS2108)。エントリが存在しない場合、動作フローは図18に移行する(ステップS2110)。図15および図18のフローは、実施例1と同様の処理を実行するフローである。
【0068】
本実施例においては、ユーザアプリケーションデータ変換失敗の場合、図19のステップS3004に移行する。このステップで“Yes”の場合、一連のオプションが画面I1300(図7参照)上に提示される(ステップS3005)。影響を受けるソフトウェアユニットはインジケータI1310に表示される。I1320の選択肢には、更新が行われ、すべてのデータが失われることを受け入れること、または更新を停止することが含まれるが、これらに限定されない。ユーザアプリケーションデータが失われることをユーザが受け入れる場合、通知N1000の変換試行部UX500は無効に設定され、変更された通知N1000はリンク21(ステップS3007)を介して図13のステップS2300に戻され、そこで認証が行われる。このステップにおいては通知の処理を続行するために、認証情報N1200が再度検証される。更新が中止された場合、通知管理ユニットE16100に試行の結果が通知され、システムは通知N1000が通知される前と同じように処理を続行する。ユーザアプリケーションのデータ変換に関係なく、更新が必ず必要な場合、実施例1のように、特定のソフトウェアユニットを無効にするオプションを含めることも可能である。
【0069】
[実施例3]
続いて本発明の実施例3に係るソフトウェア更新システムについて説明する。実施例3では、通知N1000の通知タイプN1100は置換である(図13のステップS2700で“Yes”)。処理フローは、ロールバックのときと同様に図20に従う。本実施例が前述の実施例と異なる点は、図14のステップS2108において、アプリケーションデータ変換管理テーブルXYZ310内において検索する変換宛先アプリケーション名XYZ314が、アプリケーション名XYZ311とは異なることである。このエントリの存在により、アプリケーションプロバイダのシームレスな変更が可能になると同時に、ユーザアプリケーションデータを中心に据えることができ、ユーザの情報が継続的に利用されるかどうかをユーザに知らせることが可能になる。本実施例の他の処理フローは、実施例1に見られる処理フローから逸脱しない範囲で同様に行われる。
【0070】
本実施例においては、ユーザアプリケーションデータ変換失敗の場合、置換の失敗は図19のステップS3011へと移行する。このステップで“Yes”の場合、一連のオプションが画面I1400(図8参照)上に提示される(ステップS3012)。
【0071】
図8を参照すると、影響を受けるソフトウェアユニットは画面I1410上に表示される。選択肢I1420には、置換が行われ、すべてのデータが失われることを受け入れること、または置換を停止することが含まれるが、これらに限定されない。ユーザアプリケーションデータが失われることをユーザが受け入れる場合、通知N1000の変換試行部UX500は無効に設定され、変更された通知N1000はリンク21(ステップS3007)を介して図13のステップS2300に戻され、通知の処理を続行するために、認証情報N1200が再度検証される。置換が停止された場合、通知管理ユニットE16100に試行の結果が通知され、システムは通知N1000が通知される前と同じように処理を続行する。
【0072】
以上で説明した本発明の実施例によれば、以下の作用効果を奏する。
(1)本発明に係るソフトウェア更新装置は、アプリケーションのデータバージョンを変更する際にアプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を記憶する記憶部と、アプリケーションの変更の要求に適合する変換機能を取得する変換機能取得部と、受信した変換機能を用いて、アプリケーションのデータ形式を所望のデータ形式へ変換するデータ変換部と、を備え、データ変換部は、アプリケーション変更時に変換機能の有無に応じてアプリケーションのユーザデータに対する処理を変更する。
【0073】
上記構成により、ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識することが可能になる。
【0074】
(2)アプリケーションに変更を適用した後、アプリケーションのデータバージョンをロールバックするロールバック管理部をさらに備え、データ変換部は、ロールバックにおいてアプリケーションのデータ形式を所望のデータ形式に変換する。これにより、ロールバックの際にデータが削除されてしまうことを防止できる。
【0075】
(3)データ変換部は、変換機能が存在するとき、変換機能によりユーザデータのデータ形式を変換し、変換機能が存在しないとき、ユーザデータのデータ形式を変換せずアプリケーションの無効化およびロールバックの停止を行う、または、ユーザの許可に基づきユーザデータを削除しロールバックを実行する。これにより、変換機能の有無によってデータの取り扱い方法を変更することが可能になり、柔軟な対応が期待できる。
【0076】
(4)また、本発明の他の実施例に係るソフトウェア更新装置は、アプリケーションのデータバージョンを変更する際にアプリケーションのデータ形式を変換する変換機能を記憶する記憶部と、アプリケーションの変更の要求に適合する変換機能を取得するデータ変換部と、を備え、データ変換部は、データ形式を所望のデータ形式へ変換する変換機能の有無に応じてアプリケーションが搭載された電子装置への変換機能の送信の要否を決定する。
【0077】
上記構成により、(1)と同様に、ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識することが可能になる。
【0078】
(5)変換機能が存在しないとき、アプリケーションのユーザデータの損失に関する情報を出力する通知部をさらに備える。これにより、ユーザにその後の処理を選択させることが可能になる。
【0079】
(6)変換機能が存在しないとき、アプリケーションを変更せずに該アプリケーションを無効化する無効化部をさらに備える。これにより、無効化すべきアプリケーションを確実に無効化することが可能になる。
【0080】
(7)無効化部は、変換機能の有無に関わらず、ユーザの選択によってアプリケーションの無効化の要否を決定する。これにより、アプリケーションの無効化はユーザが選択することになり、例えば後で更新する可能性のあるアプリケーションは無効化させずに保存しておく等の対応が可能になる。
【0081】
(8)記憶部は、アプリケーションの更新データを配信するサーバから受信した過去に使用した変換機能を保持し、データ変換部は、アプリケーションの変更に必要な変換機能を示す更新可能なテーブルを有する。これにより、上述した機能を容易かつ迅速に発揮することが可能になる。
【0082】
(9)データ変換部は、変換機能を取得できないとき、サーバに変換機能の送信を要求する。これにより、変換機能の未受信によるアプリケーションの変換忘れを防止することが可能になる。
【0083】
(10)さらに本発明の他の実施例に係るソフトウェア更新システムは、サーバと少なくとも一つの車載装置を備えるソフトウェア更新システムであって、サーバは、車載装置に搭載されたアプリケーションのデータバージョンを変更する際にアプリケーションのユーザデータを含むデータのデータ形式を変換する変換機能を含む更新パッケージを車載装置に配信し、少なくとも一つの車載装置は、サーバから受信した変換機能を記憶する記憶部と、アプリケーションの変更の要求に適合する変換機能を取得する変換機能取得部と、データ変換部から変換機能を取得し、データ形式を所望のデータ形式へ変換するデータ変換部と、アプリケーションに変更を適用した後、アプリケーションのデータバージョンをロールバックするロールバック管理部と、を備え、データ変換部は、ロールバックにおいてアプリケーションのユーザデータも含めてデータ形式を所望のデータ形式に変換し、アプリケーション変更時に変換機能の有無に応じてユーザデータに対する処理を変更する。
【0084】
上記構成により、(1)と同様に、ターゲットシステムのソフトウェアユニットを別のユニットに変更する際に、ユーザアプリケーションデータを維持できるようにするか、少なくともソフトウェアユニットの変更後にデータが失われる可能性があることを認識することが可能になる。
【0085】
なお、本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。例えば、上記の実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備える態様に限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、削除したり、他の構成を追加・置換したりすることが可能である。
【符号の説明】
【0086】
C1000 OTAセンター(ソフトウェア管理システム)、C1200 ソフトウェアユニット保存部(記憶部)、C1500 通知ユニット(通知部)、E16000 ロールバック管理ユニット(ロールバック管理部)、EX000 ECU(車載装置)、UX500 変換試行部(変換機能取得部)、UX600 無効化部、UX700 データ変換部、UX740 変換関数(変換機能)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20