JP6667430B2 - ソフトウェア更新装置、ソフトウェア更新システム - Google Patents

ソフトウェア更新装置、ソフトウェア更新システム Download PDF

Info

Publication number
JP6667430B2
JP6667430B2 JP2016252787A JP2016252787A JP6667430B2 JP 6667430 B2 JP6667430 B2 JP 6667430B2 JP 2016252787 A JP2016252787 A JP 2016252787A JP 2016252787 A JP2016252787 A JP 2016252787A JP 6667430 B2 JP6667430 B2 JP 6667430B2
Authority
JP
Japan
Prior art keywords
update
software
trigger
unit
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016252787A
Other languages
English (en)
Other versions
JP2018106461A (ja
Inventor
恭一 中熊
恭一 中熊
秀敏 寺岡
秀敏 寺岡
友哉 尾崎
友哉 尾崎
浩 小高
浩 小高
祖父江 恒夫
恒夫 祖父江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Clarion Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Clarion Co Ltd filed Critical Clarion Co Ltd
Priority to JP2016252787A priority Critical patent/JP6667430B2/ja
Priority to PCT/JP2017/038792 priority patent/WO2018123242A1/ja
Priority to CN201780080696.5A priority patent/CN110114761B/zh
Priority to EP17886794.1A priority patent/EP3564822A4/en
Priority to US16/473,929 priority patent/US11645062B2/en
Publication of JP2018106461A publication Critical patent/JP2018106461A/ja
Application granted granted Critical
Publication of JP6667430B2 publication Critical patent/JP6667430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/02Registering or indicating driving, working, idle, or waiting time only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Description

本発明は、ソフトウェア更新装置、およびソフトウェア更新システムに関する。
近年は自動車の制御に電子制御装置(ECU:Electric Control Unit)が多用されている。ECUの動作を司るソフトウェアは、従来は整備士により更新されていたが、このソフトウェアを遠隔で更新するサービスへのニーズが高まっている。例えば、特許文献1には、組み込まれた前記所定のソフトウェアが更新された場合、更新された前記所定のソフトウェアのバージョンを前記通信部から前記他のネットワークデバイスに送信し、更に、前記他のネットワークデバイスからの要求に応じて、更新された前記所定のソフトウェアを前記他のネットワークデバイスに提供し、他方で、前記通信部が前記他のネットワークデバイスに組み込まれた前記所定のソフトウェアのバージョンを受信し、前記判定部が組み込むべき前記所定のソフトウェアの変更を判定した場合、前記他のネットワークデバイスから前記所定のソフトウェアを取得し、組み込まれている前記所定のソフトウェアに替えて、取得した前記所定のソフトウェアを組み込む制御部と、を備えるネットワークデバイスが開示されている。
特開2011−95950号公報
特許文献1に記載されている発明では、ソフトウェアの依存関係を満たしたままソフトウェアを更新することができない。
本発明の第1の態様によるソフトウェア更新装置は、1以上の他のソフトウェア更新装置及びサーバとネットワークを介して接続されるソフトウェア更新装置であって、前記サーバから更新用データを受信する受信部と、前記更新用データを用いてソフトウェアの更新を行う更新部と、前記他のソフトウェア更新装置と通信する通信部と、更新トリガの受信を含む前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、前記他のソフトウェア更新装置に前記更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、前記他のソフトウェア更新装置から前記更新トリガを受信する更新トリガ受信部と、前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備える
発明の第2の態様によるソフトウェア更新装置は、1以上の他のソフトウェア更新装置及びサーバとネットワークを介して接続されるソフトウェア更新装置であって、前記サーバから更新用データを受信する受信部と、前記更新用データを用いてソフトウェアの更新を行う更新部と、前記他のソフトウェア更新装置と通信する通信部と、前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、前記他のソフトウェア更新装置に更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備える。
本発明の第3の態様によるソフトウェア更新システムは、複数のソフトウェア更新装置およびサーバを含むソフトウェア更新システムであって、前記サーバは、ソフトウェアを更新するための更新用データを配信する配信部を備え、前記複数のソフトウェア更新装置は、前記サーバから前記更新用データを受信する受信部と、前記更新用データを用いて前記ソフトウェアの更新を行う更新部と、前記サーバおよび他のソフトウェア更新装置と通信する通信部と、更新トリガの受信を含む前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、前記他のソフトウェア更新装置に前記更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、前記他のソフトウェア更新装置から前記更新トリガを受信する更新トリガ受信部と、前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備える。
本発明によれば、ソフトウェアの依存関係を満たしたままソフトウェアを更新することができる。
第1の実施の形態におけるソフトウェア更新システムの構成、および機能ブロックを示す図 第1更新装置のハードウェア構成を示す図 サーバのハードウェア構成を示す図 第1クライアントツリーDBの構成を示す図 第2クライアントツリーDBの構成を示す図 サーバツリーDBの構成を示す図 第1クライアントツリーDBに含まれる更新契機の構成を示す図 第2クライアントツリーDBに含まれる更新契機の構成を示す図 第1クライアントツリーDBに含まれる通知情報の構成を示す図 第2クライアントツリーDBに含まれる通知情報の構成を示す図 ソフトウェア更新に係るシーケンス図の前半 ソフトウェア更新に係るシーケンス図の後半 HMIがユーザへ更新の可否を問い合わせる表示の一例を示す図 HMIがHMI制御部として動作する場合に、ユーザへ更新の可否を問い合わせる表示の一例を示す図 サーバから通知情報を受信した際の動作を表すフローチャート サーバから更新契機を受信した際の動作を表すフローチャート サーバから更新実行指示を受信した際の動作を表すフローチャート サーバからダウンロード実行指示を受信した際の動作を表すフローチャート 第2の実施の形態におけるソフトウェア更新システムの構成を示す図 第1ECUのハードウェア構成を示す図 第2の実施の形態における第1クライアントツリーDBの概略を示す図
―第1の実施の形態―
以下、図1〜図18を参照して、ソフトウェア更新システムSの第1の実施の形態を説明する。
図1は、第1の実施の形態におけるソフトウェア更新システムSの構成、および機能ブロックを示す図である。ソフトウェア更新システムSは、広域ネットワーク、たとえばインターネット5により相互に接続される車両1とサーバ2とを含む。
車両1は、第1更新装置10と、第2更新装置11と、LANネットワーク18とを備える。第1更新装置10は、LANネットワーク18を介して第2更新装置11と通信する。また、第1更新装置10および第2更新装置11は、サーバ2と通信する。第1更新装置10および第2更新装置11は同一のハードウェア構成を有し、同一の機能を有する。ただし第1更新装置10および第2更新装置1に格納されるデータおよび更新対象のソフトウェアが異なる。以下では主に第1更新装置10の構成について説明し、第2更新装置11については第1更新装置10との相違点を説明する。
本実施の形態では、第1更新装置10は第1更新装置10にインストールされているソフトウェア「ABC」を更新し、第2更新装置11は第2更新装置11にインストールされているソフトウェア「PQR」を更新する。ソフトウェア「ABC」やソフトウェア「PQR」は、OS上で動作する1つのプログラムでもよいし、複数のプログラム群であってもよい。また、カーネルなどOSの一部でもよいし、OS全体でもよい。
(第1更新装置の機能構成)
第1更新装置10は、更新管理部30と更新部31とHMI34と通信部33とを備える。更新部31は、サーバ2から受信する更新用データを用いて第1更新装置10内の不図示のソフトウェアを更新する。HMI34はヒューマンマシンインタフェース、すなわちユーザとのインタフェース部であり、ユーザへの音や映像を用いた情報の提示、およびユーザからの入力を受け付ける。ただしHMI34は、ユーザとの物理的なインタフェースを備えず、ユーザとのインタフェースを備える装置を制御するインタフェース制御部として機能してもよい。通信部33は、サーバ2、第2更新装置11、および車両1に備えられる不図示のECUと通信する。
更新管理部30は、第1制御部71と、第1クライアントツリーDB72と、更新データ取得部73と、更新開始判断部40と、更新契機受信部41と、通知情報受信部42と、更新完了検知部43と、更新トリガ受信部44と、更新トリガ通知部45と、イグニッション受信部46と、回線状態検知部47と、を備える。
第1制御部71は、更新管理部30の各構成要素に動作指令を出力する。第1クライアントツリーDB72は、第1更新装置10に関する情報が格納されたツリー状のデータベースである。第1クライアントツリーDB72の構成は後に図を用いて説明する。更新データ取得部73は、サーバ2から第1更新装置10のソフトウェアの更新に必要なデータである更新用データを取得して、後述するストレージに格納する。
更新開始判断部40は、更新契機受信部41が受信する後述する更新契機に基づき、更新部31がソフトウェアの更新を開始する状況にあると判定すると更新部31を動作させる。更新契機にはソフトウェアを更新する条件が記載されており、更新開始判断部40はこの条件を満たしているか否かを、後述する更新トリガの受信、および車両の状態などから判断する。
更新契機受信部41は、サーバ2から更新契機を受信する後述するストレージに格納する。通知情報受信部42は、サーバ2から後述する通知情報を受信して後述するストレージに格納する。更新完了検知部43は、更新部31によるソフトウェアの更新が完了したことを検知し、更新トリガ通知部45に伝達する。更新トリガ受信部44は、第1更新装置10および第2更新装置11が送信する更新トリガを受信する。すなわち本実施の形態では、第1更新装置10が自分自身に更新トリガを送信することもある。更新トリガ受信部44は、受信した更新トリガを後述するストレージに格納する。更新トリガ通知部45は、後述する通知情報の記載に基づき更新トリガを送信する。
イグニッション受信部46は、車両1のエンジンの稼働状態、またはイグニッションスイッチの設定状態を取得し、更新開始判断部40および更新トリガ通知部45に通知する。イグニッション受信部46は、所定時間ごとにその状態を通知してもよいし、状態に変化があった場合、たとえばイグニッションがオンやオフに操作された場合や、エンジンが停止した場合などに通知してもよい。
回線状態検知部47は、第1更新装置10のインターネット5への接続状態を取得し、更新開始判断部40および更新トリガ通知部45に通知する。回線状態検知部47は、所定時間ごとにその状態を通知してもよいし、状態に変化があった場合に通知してもよい。ただし回線状態検知部47は、インターネット5への接続可否に代えて、特定のURIへのアクセス可否を判断して通知してもよい。たとえば所定のオンラインサービスの提供に必要なリソースが格納されたURIへのアクセス可否を判断してもよい。
(第2更新装置の機能構成)
第2更新装置11は、その機能として、更新管理部80と、更新部81と、通信部83と、HMI84とを備える。更新管理部80、更新部81、通信部83、およびHMI84は、第1更新装置10の更新管理部30、更新部31、通信部33、およびHMI34にそれぞれ対応する。更新管理部80は、第2制御部91、および第2クライアントツリーDB92を含む。第2制御部91、および第2クライアントツリーDB92は、第1更新装置10の第1制御部71、および第1クライアントツリーDB72にそれぞれ対応する。図1では更新管理部80の構成として第2制御部91および第2クライアントツリーDB92のみを記載しているが、更新管理部80は更新管理部30が備える全ての機能を備える。各機能の説明は、第1更新装置10と同様なので省略する。
(サーバの機能構成)
サーバ2は、その機能として、サーバ制御部61と、サーバツリーDB62と、データ提供部63とを備える。
サーバ制御部61は、第1制御部71や第2制御部91と規定のメッセージをやり取りし、第1制御部71や第2制御部91によるソフトウェア更新の処理を実現する。具体的な処理および手順は後述する。
サーバ制御部61は、OMA(Open Mobile Alliance)において定義されるDM(Device Management)サーバであり、一方、第1制御部71および第2制御部91はOMAにおいて定義されるDMクライアントである。OMA DMとは、携帯電話のソフトウェア更新で使用される技術の一種であり、ツリー状のデータベースへのアクセスを介してサーバとクライアント間でソフトウェア更新に必要な情報をやりとりする仕組みである。データ提供部63は、サーバ制御部61からの動作指令、第1更新装置10からの要求、および第2更新装置11からの要求に基づきソフトウェア更新に必要な各種の情報を第1更新装置10、および第2更新装置11に提供する。ソフトウェア更新に必要な各種の情報とは、後述する更新契機、通知情報、および更新データである。これらの情報は、HTTPやFTPなどの通信プロトコルを用いて送信される。
(第1更新装置のハードウェア構成)
図2は、第1更新装置10のハードウェア構成を示す図である。第1更新装置10は、記憶部151と、CPU152と、ストレージ159と、WAN I/F154と、CAN I/F155と、LAN I/F157と、バス156と、HMI158とを備える。
CPU152は、第1更新装置10が扱う情報を制御し、記憶部151に保存されているソフトウェアの記述に従い動作する。記憶部151は、CPU152が扱う情報を一時的に保存し、バス156を介してデータをやり取りするメモリーである。ストレージ159は、ソフトウェアなどが保存される不揮発性の記憶装置であり、ファイルシステムを搭載するハードディスクやSSDなどであってもよいしファイルシステムを搭載しないフラッシュROMなどの記憶素子であってもよい。記憶部151、CPU152およびストレージ159は、図1の更新管理部30および更新部31に対応する。
WAN I/F154はインターネット5を介してサーバ2への情報を無線で送受信するインタフェースであり、様々な無線通信規格、たとえばLTE,3G,4G,IEEE802.16,IEEE802.11,赤外線などを用いることができる。CAN I/F155は、車両1で使用される専用のネットワークであるCAN(Controller Area Network)のインタフェースであり、車両1に搭載される不図示のECUから車両1に関する情報、たとえばイグニッションの状態などを取得する。LAN I/F157は、LANネットワーク18と接続するインタフェースである。WAN I/F154、CAN I/F155およびLAN I/F157は、図1の通信部33に対応する。HMI158は、液晶ディスプレイなどユーザへ情報を提示する装置、およびタッチパネルなどユーザからの入力を受け付ける装置から構成される。HMI158はCPU152の動作指令に基づきユーザへ情報を提示し、ユーザからの入力をCPU152に伝達する。HMI158は、図1のHMI34に対応する。
以上が第1更新装置10のハードウェア構成である。前述のとおり第2更新装置11は第1更新装置10と同一のハードウェア構成なので、説明を省略する。
(サーバのハードウェア構成)
図3は、サーバ2のハードウェア構成を示す図である。サーバ2は、記憶部180と、CPU181と、ストレージ183と、WAN I/F184と、バス182とから構成される。
サーバ2のCPU181は、サーバ2で扱う情報の出入りを制御し、記憶部180に保存されているソフトウェアの記述に従い動作する。記憶部180は、CPU181が扱う情報を一時的に保存し、バス182を介してデータをやり取りするメモリーである。ストレージ183は、第1更新装置10および第2更新装置11のソフトウェアを保存し、記憶部180に保持されている情報を電源切断後も保持する不揮発性の記憶装置である。ストレージ183は、ファイルシステムを搭載するハードディスクやSSDやホログラフドライブなどであってもよい。記憶部180、CPU181およびストレージ183は、図1のサーバ制御部61およびサーバツリーDB62に対応する。WAN I/F184はバス182を介して情報を無線で送受信するインタフェースであり、たとえばLTE,3G,4G,IEEE802.16,IEEE802.11,赤外線などを用いることができる。WAN I/F184は、図1のデータ提供部63に対応する。
(第1クライアントツリーDB)
図4は、第1更新装置10に備えられる第1クライアントツリーDB72の構成を示す図である。第1クライアントツリーDB72はツリー構造を有するデータベースであり、複数のノードから構成される。ノードは情報を包含できるが、ノードが包含する情報だけでなくノードの存在の有無やノードの名称が後述する制御に使われる場合もある。
第1クライアントツリーDB72におけるツリー構造の頂点はroot101であり、root101は配下に3つのノード、すなわちDevInfo102,DevDetail104,および1stSCM105を有する。DevInfo102は、車両1の識別子である1stVIN103のようなデバイスの特徴情報が配下に配置される。DevDetail104は車両の付属情報が配下に格納されるが図4ではDevDetail104の配下のノードは省略している。1stSCM105は、ソフトウェア更新で使用するノードを配下に持つ。以下では1stSCM105の配下のノードを詳しく説明する。1stSCM105は、配下にダウンロードに関するノードであるDownload106、およびソフトウェアを更新するためのノードであるInventory110を有する。
Download106はダウンロード対象であるパッケージを示すABCv2s107を配下に有する。このノード名はたとえば、「ABC」というソフトウェアのバージョン2の安定版(Stable)である「ABCv2s」というパッケージ名を意味する。なお第1更新装置10がダウンロード対象とするソフトウェアが他にもある場合は、Download106の配下にABCv2s107と並列に置かれる。
ABCv2s107は、パッケージのダウンロード先URLが格納されるPkgURL108、ダウンロードに関する状態が格納されるStatus109、動作指令を配下のノードとして有するOperation110を配下に有する。サーバ2の指令に基づきOperation110の配下にDownload111が配置されると、更新データ取得部73を動作してPkgURL108により示されるURLから「ABCv2s」というパッケージをダウンロードする。なおABCv2s107以下のノードはサーバ2からインターネット5を介して追加されたものである。
1stSCM105の配下にDownload106と並列に配置されるInventory110は、Delivered121およびDeployed130のノードを配下に有する。
Delivered121以下には、ダウンロードしたパッケージを用いてソフトウェアの更新を行うための情報が格納される。Delivered121は配下に、ダウンロードしたパッケージの名称を有するABCv2s122のノードを有する。ABCv2s122は、更新に関する状態が格納されるStatus123と、動作指令を配下のノードとして有するOperation124とを配下に有する。Operation124は、サーバ2の指令に基づき配置され、存在することが更新を実行する条件の1つであるInstall125と、更新を実行する付加的な条件を格納するExt126を配下に有する。Ext126の配下に存在する更新契機191には更新を実行する付加的な条件が格納される。すなわちInstall125というノードが存在し、更新契機191に格納されるすべての条件が満たされると、ダウンロード済みのパッケージである「ABCv2s」のインストール、すなわちソフトウェア「ABC」の更新が開始される。更新契機191の構成については後述する。
Deployed130以下には、ソフトウェアの現在の情報が格納される。Deployed130は配下に、ソフトウェアの名称を有するノード、すなわちABC131を有する。ABC131は配下に、入手可能な最新のバージョン番号が格納されるAvailableVersion132と、現在のバージョン番号が格納されるVersion133と、通知情報195を配下に有するExt137とを有する。通知情報195については後述する。
(第2クライアントツリーDB)
図5は、第2更新装置11に備えられる第2クライアントツリーDB92の構成を示す図である。第2クライアントツリーDB92はツリー構造を有するデータベースであり、複数のノードから構成される。第2クライアントツリーDB92の構成は、第1クライアントツリーDB72と概ね同じである。すなわち原則として、第1クライアントツリーDB72を構成する各ノードの符号の100の位を「1」から「2」に変更したものが第2クライアントツリーDB92の各ノードである。
ただし、第1更新装置10と第2更新装置11に備えられるソフトウェアは異なりバージョン番号も異なるとすると、たとえばDownload206の配下にはPQRv3s207が置かれる。このノード名は「PQR」というソフトウェアのバージョン3の安定版である「PQRv3s」というパッケージ名を意味する。また、ダウンロードしたパッケージを用いてソフトウェアの更新を行うための情報が格納されるDelivered221の配下には、ダウンロードするパッケージ名と同一の名称のPQRv3s222が置かれる。さらにソフトウェアの現在の情報が格納されるDeployed230の配下には、ソフトウェアの名称を有するノードであるPQR231が置かれる。
(サーバツリーDB)
図6は、サーバ2に備えられるサーバツリーDB62の構成を示す図である。サーバツリーDB62はツリー構造を有するデータベースであり、複数のノードから構成される。サーバツリーDB62には、複数の車両に搭載された複数の更新装置に関する情報が格納される。更新装置に関する情報は、それぞれの更新装置に備えられるデータベースの一部を通信を介して複製することにより得られる。すなわちサーバツリーDB62には、第1クライアントツリーDB72の一部のノードと、第2クライアントツリーDB92の一部のノードが含まれる。
サーバツリーDB62におけるツリー構造の頂点はroot1001であり、配下に各車両を示すノードである1stVIN1010、2ndVIN1020、・・を有する。これらのノードの配下には車両ごとの情報が格納される。1stVIN1010は配下に車両1の情報を格納するノードである、DevInfo1002、DevDetail1004、1stSCM1105、および2ndSCM1205を有する。
DevInfo1002以下のノードは、第1クライアントツリーDB72におけるDevInfo102以下のノード、および第2クライアントツリーDB92におけるDevInfo202以下のノードに対応する。DevDetail1004は、第1クライアントツリーDB72におけるDevDetail104、および第2クライアントツリーDB92におけるDevDetail204に相当する。1stSCM1105以下の各ノードは、第1クライアントツリーDB72における1stSCM105以下の各ノードに相当する。すなわちサーバツリーDB62における符号「11xx」は第1クライアントツリーDB72における符号「1xx」に相当する。2ndSCM1205以下の各ノードは、第2クライアントツリーDB92における2ndSCM205以下の各ノードに相当する。すなわちサーバツリーDB62における符号「12xx」は第2クライアントツリーDB92における符号「2xx」に相当する。
(更新契機)
第1クライアントツリーDB72に含まれる更新契機191、および第2クライアントツリーDB92に含まれる更新契機291を図7および図8を用いて説明する。前述のとおり更新契機には更新を実行する付加的な条件が格納される。更新契機191と更新契機291の構成は似ているので主に更新契機191を説明し、更新契機291は更新契機191との相違点を説明する。
図7に示すように、更新契機191は、配下に3つのノード、すなわち車両状態1911、第1更新装置1914A、および第2更新装置1914Bを有する。車両状態1911以下には全般的な更新の条件が格納され、第1更新装置1914A以下には第1更新装置10に関する更新の条件が格納され、第2更新装置1914B以下には第2更新装置11に関する更新の条件が格納される。ただし子ノードが存在しない場合は親ノードは省略してもよく、たとえば第1更新装置10に関する更新の条件がない場合は第1更新装置1914Aがなくてもよい。
車両状態1911は、IGN情報1912とユーザ許諾1913とを配下に有する。IGN情報1912は「オン」または「オフ」の値をとり、イグニッションが「オン」または「オフ」に操作されることが更新の条件の1つであることを示す。ユーザ許諾1913は、ユーザから更新の許諾を受けることが更新の条件の1つであることを示す。
第1更新装置1914Aは配下に直列に接続される3つのノードである、ABC1915A、Download1916A,およびVersion1917Aを有する。これらのノードは、第1更新装置10において「ABC」という名称のソフトウェアのVersion1917Aにより示されるバージョンが「ダウンロード」されることが更新の条件の1つであることを示す。
第2更新装置1914Bは配下に直列に接続される3つのノードである、PQR1915B、Install1916B,およびVersion1917Bを有する。これらのノードは、第2更新装置11において「PQR」という名称のソフトウェアのVersion1917Bにより示されるバージョンが「インストール」されることが更新の条件の1つであることを示す。
図7に示されていることをまとめると、更新契機191以下に格納される情報から、更新を実行する付加的な条件は、車両1のイグニッションが所定の状態であり、ユーザから許諾が得られ、ソフトウェア「ABC」の所定のバージョンが第1更新装置10でダウンロード済みであり、ソフトウェア「PQR」の所定のバージョンが第2更新装置11にインストールされていることである。図4に示したように更新契機191はABCv2s122の配下に存在するので、更新契機191は、ABCv2s122をインストールする付加的な条件、換言するとソフトウェア「ABC」をバージョン「2」に更新するための付加的な条件である。
図8に示すように、更新契機291は、配下に3つのノード、すなわち車両状態2911、第1更新装置2914A、および第2更新装置2914Bを有する。車両状態2911は、回線状態2912を配下に有する。回線状態2912は、インターネット5との接続が切断されたことが条件であることを示す。第1更新装置2914A、および第2更新装置2914Bの構成は、図7において説明した第1更新装置1914Aと同様なので省略する。
図8に示されていることをまとめると、更新契機291以下に格納される情報から、更新を実行する付加的な条件は、インターネット5との接続が切断され、ソフトウェア「ABC」の所定のバージョンが第1更新装置10でダウンロード済みであり、ソフトウェア「PQR」の所定のバージョンが第2更新装置11でダウンロード済みであることである。図5に示したように更新契機291はPQRv3s222の配下に存在するので、更新契機291は、PQRv3s222をインストールする付加的な条件、換言するとソフトウェア「PQR」をバージョン「3」に更新するための付加的な条件である。
(通知情報)
第1クライアントツリーDB72に含まれる通知情報195、および第2クライアントツリーDB92に含まれる通知情報295を図9および図10を用いて説明する。通知情報195には更新トリガ通知部45が更新トリガを送信する条件、送信先、および送信内容の情報が含まれる。
図9に示すように、通知情報195は、Download完了1951AとInstall完了1951Bの2つのノードを有する。Download完了1951A以下は、パッケージのダウンロード完了が条件となって通知される更新トリガに関する情報が格納される。Download完了1951Aは、配下に第1更新装置1952Aと第2更新装置1952Bを有する。ただし本実施の形態では、第1更新装置1952Aおよび第2更新装置1952Bはノードの名称自体に意味はない。
第1更新装置1952Aは配下に、宛先1953A、パッケージ1954A、Version1955Aの3つのノードを有する。宛先1953Aには更新トリガの送信先を示す情報、たとえば第1更新装置10のIPアドレスやループバックアドレス(127.0.0.1)が格納される。パッケージ1954Aは、更新トリガにパッケージの名称を含めることを示す。Version1955Aは、更新トリガに更新後のバージョン情報を含めることを示す。第2更新装置1952Bの構成は第1更新装置1952Aと同様である。
Install完了1951Bは配下に、インストール完了が条件となって通知される更新トリガに関する情報が格納される。ただし図9に示す例ではインストール完了が条件となる更新トリガが存在しないので配下にノードを有しない。
図9に示されていることをまとめると、パッケージ「ABCv2s」のダウンロードが完了すると、宛先1953Aおよび宛先1953Bに対してパッケージの名称とバージョンの情報を含む更新トリガを送信する。
図10に示すように、通知情報295には第2更新装置11の更新トリガ通知部が更新トリガを送信する条件、送信先、および送信内容の情報が含まれる。通知情報295は、通知情報195と比較すると、ノードの有無、およびノードに格納される値は異なるが、構成は通知情報195と同様なので構成の説明を省略する。
図10に示されていることをまとめると、次の2点が示されている。1点目はパッケージ「PQRv3s」のダウンロードが完了すると、宛先2953Aおよび宛先2953Bに対してダウンロードしたパッケージの名称とバージョンの情報を含む更新トリガを送信することである。2点目はパッケージ「PQRv3s」のインストールが完了すると、宛先2953Cに対してインストールしたパッケージの名称とバージョンの情報を含む更新トリガを送信することである。
(処理シーケンス)
サーバ2、第1更新装置10、および第2更新装置11におけるソフトウェア更新に係るメッセージのやり取りを図11〜図12のシーケンス図を用いて説明する。いずれのシーケンス図も図示上方から下方に向かって時間が経過しており、図11の下部から図12の上部に時間が連続している。なお図11ではサーバ2と第1更新装置10におけるメッセージのやり取りを詳細に説明し、図12ではサーバ2と第2更新装置11におけるメッセージのやり取りは簡略して記載する。
以下の説明するシーケンスが開始される時点では、第1更新装置10に備えられるソフトウェア「ABC」のバージョンは「1」であり、第2更新装置11に備えられるソフトウェア「PQR」のバージョンは「2」である。シーケンスが開始される時点では、第1クライアントツリーDB72は、Download106の配下にノードを有さず、Delivered121の配下にもノードを有しない。シーケンスが開始される時点では、第2クライアントツリーDB92は、Download206の配下にノードを有さず、Delivered221の配下にもノードを有しない。
始めに第1更新装置10の第1制御部71が、サーバ制御部61に車両を識別するVIN情報を送信する(S301)。これによりサーバ2は通信対象の車両が車両1であることを識別し、不図示のデータベースから車両1に備えられるソフトウェアの最新バージョンの情報を取得する。最新バージョンの情報とはたとえば、ソフトウェア「ABC」の最新バージョンが「2」であり、ソフトウェア「PQR」の最新バージョンが「3」であることである。次にサーバ制御部61は、取得した最新バージョンの情報およびバージョン情報取得要求を第1制御部71に送信する(S302)。
第1制御部71は、受信した最新バージョンの情報を第1クライアントツリーDB72に格納する(S350)。詳述すると、第1クライアントツリーDB72におけるDeployed130の配下のABC131の配下のAvailableVersion132のノードに「2」という値が格納される。なお、サーバ2から受信した最新バージョンの情報にはソフトウェア「PQR」の情報も含まれるが、第1クライアントツリーDB72にはソフトウェア「PQR」についての情報が格納されていないので、ソフトウェア「PQR」の情報は破棄される。続いて第1制御部71は、第1クライアントツリーDB72からDeployed130以下の全てのノードの情報を取得し(S351)、サーバ制御部61に送信する(S303)。
サーバ制御部61は、受信したDeployed130以下のノードの情報を、サーバツリーDB62に1stSCM1105のDeployed1130以下の情報として保存する。そして保存したDeployed1130以下のノードの情報に基づきソフトウェアの更新の要否を判断する。すなわちサーバ制御部61は、AvailableVersion1132とVersion1133を比較し、AvailableVersion1132の方が新しい場合に更新が必要であると判断する(S352)。
次にサーバ制御部61は、サーバ2に備えられるストレージ183から通知情報195およびソフトウェア更新情報を取得する(S361)。ソフトウェア更新情報とは、具体的には、図4のDownload106以下のノードであってDownload111を除くノードである。そしてサーバ制御部61は、ソフトウェア更新情報と通知情報195を第1制御部71に送信する(S304)。
第1制御部71は、受信した情報を第1クライアントツリーDB72に格納する。具体的には、通知情報195をExt137の配下に追加し(S362)、ソフトウェア更新情報を1stSCM105の配下にDownload106として追加する(S353)。そして、サーバ制御部61に更新情報を設定した旨の応答を返す(S305)。
サーバ制御部61は、第1更新装置10にABCv2s107というパッケージをダウンロードさせるために、第1制御部71にダウンロード実行指示を送信する(S308)。この指示は第1クライアントツリーDB72のOperation110の配下にDownload111を作成させるものである。第1制御部71は、第1クライアントツリーDB72のOperation110の配下にDownload111が作成されると、更新データ取得部73にダウンロードの実行を指示する(S356)。更新データ取得部73は、PkgURL108に記載されたURLから更新データを取得する。ここで、PkgURL108に記載されたURLがサーバ2の内部であるとすると、更新データ取得部73はデータ提供部63にABCv2sというパッケージを要求し(S309)、パッケージを取得する(S310)。更新データ取得部73は、パッケージの取得が完了すると第1制御部71にダウンロードが終了したことを通知する(S357)。ここで第1制御部71は、後述する更新トリガ通知送信処理を実行する(S368)。第1制御部71は、ダウンロードが終了したことをサーバ制御部61に送信する(S311)。
次にサーバ制御部61は、ソフトウェア更新を実行してもよいかをユーザに確認するためのソフトウェア更新許可要求メッセージを第1制御部71に送信する(S306)。第1制御部71は、HMI34にソフトウェアの更新許可を求めるメッセージを表示させる(S354)。HMI34は要求されたメッセージを表示し、ユーザからの応答を受け取って第1制御部71に返す(S355)。第1制御部71は、許可か不許可かの情報をサーバ制御部61に送信する(S307)。ただしここではユーザが許可したとして、以下は図12を参照して説明を続ける。
次にサーバ制御部61は、ストレージ183から更新契機1191を取得し(S360)、ソフトウェア更新の実行を指示するメッセージとともに第1制御部71に送信する(S314)。ただし更新契機1191はサーバツリーDB62から読みだされてもよい。
第1制御部71は、受信した更新契機を更新契機191として第1クライアントツリーDB72に保存し(S363)、ソフトウェア更新の実行を指示するメッセージに基づきOperation124の配下にノードInstall125を作成する。そして第1制御部71は、更新契機191を解釈して更新トリガを待ち(S365)、所定時間ごとに全ての更新トリガが揃っているかを判断する(S366)。ここでは、すべての更新トリガが揃っていないので更新トリガ待ち(S365)を継続する。具体的には、図7に示した更新契機191において第2更新装置11におけるソフトウェア「PQR」のバージョン「3」のインストール完了を示す更新トリガを待つ。
第2更新装置11による、VIN送信(S301A)から、更新契機291の第2クライアントツリーDB92への保存(S363A)までの処理は第1更新装置10によるS301〜S363の処理と同様である。更新契機291は図8に示したように回線状態2912がオフラインであり、第1更新装置10においてソフトウェア「ABC」のダウンロードが完了し、第2更新装置11においてソフトウェア「PQR」のダウンロードが完了することなので、S363Aが実行された時点で全ての条件が満たされている。そのため第2制御部91は、更新部81に更新開始の指令を送信し(S317)、更新部81にソフトウェア更新処理(S390)を実行させる。更新部81は更新処理が終了すると第2制御部91に通知する(S318)。第2制御部91は、更新処理が終了した旨の通知を受信すると、通知情報295に基づき更新トリガを送信する(S368、S369)。通知情報295は、図10に示すように宛先472に対して更新が完了したパッケージの名称とバージョン番号とを通知することを示している。そのため第2制御部91は、宛先472が第1更新装置10を示していることから、更新が完了したパッケージの名称である「PQRv3s」およびバージョン番号である「3」を含みインストールが完了したことを示す更新トリガを第1更新装置10に送信する。
更新トリガを受信した第1制御部71は、全ての更新トリガが揃っていると判断し(S366)て更新部31に更新開始させる(S317)。更新部31はソフトウェア更新処理390を実行し、更新処理が終了すると終了した旨の通知を第1制御部71に出力する(S318)。
以上説明した動作により、複数のソフトウェア更新装置が存在するシステムにおいて、ソフトウェア同士の依存関係を保持したままソフトウェアを更新することができる。
(画面表示)
図13は、図11のS354においてHMI34がユーザへ更新の可否を問い合わせるメッセージの一例を示す図である。図13に示す表示は、第1更新装置10が備えるHMI34に表示されている。図13に示す例では第1更新装置10はカーナビゲーション機能を兼ね備えており、カーナビゲーションに用いられるインタフェース画面に重畳して、更新の可否を問い合わせるメッセージが表示される。
図14は、HMI34がHMI制御部として動作する場合に、第1更新装置10以外の装置に表示されるユーザへ更新の可否を問い合わせるメッセージの一例を示す図である。図14に示す例では、ユーザの所持する携帯端末に表示される。
(フローチャート)
第1更新装置10がサーバ2から通知情報195、更新契機191、更新実行指示、およびダウンロード実行指示を受信した際の動作を図15〜図18を参照して説明する。以下に説明するフローチャートの各ステップの実行主体は、第1更新装置10のCPU152である。なお第2更新装置11も第1更新装置10と同様な処理を行う。
図15は、第1更新装置10がサーバ2から通知情報195を受信した際の処理を表すフローチャートである。ステップS2103では、CPU152は受信した通知情報195を格納する第1クライアントツリーDB72のノードを検索する。続くステップS2104では、CPU152は受信した通知情報195をステップS2103において特定したノードに保存し、図15に示す処理を終了する。
図16は、第1更新装置10がサーバ2から更新契機191を受信した際の処理を表すフローチャートである。ステップS2107では、CPU152は受信した更新契機191を格納する第1クライアントツリーDB72のノードを検索する。続くステップS2108では、CPU152は受信した更新契機191をステップS2107において特定したノードに保存し、図16に示す処理を終了する。
図17は、第1更新装置10がサーバ2から更新実行指示を受信した際の処理を表すフローチャートである。サーバ2から更新実行指示を受信することにより、前述のとおりInstall125ノードが作成され更新を実行する条件の一つが満たされるが、ここではInstall125ノードの作成についての説明は省略する。
ステップS2110では、CPU152は第1クライアントツリーDB72から更新契機191を取得する。CPU152は、続くステップS2111では更新トリガを待ち受けるとともに車両条件が満たされることを待機し、続くステップS2120では受信した更新トリガをストレージ159または記憶部151に保存する。続くステップS2112では、CPU152は更新契機191に記載されたすべての更新トリガが揃ったか、換言すると更新を実行する付加的な条件がすべて満たされたか否かを判断する。CPU152は、全ての更新トリガが揃ったと判断する場合はステップS2113に進み、1つでも満たされない条件があると判断する場合はステップS2111に戻る。
ステップS2113では、CPU152はソフトウェア更新処理を実行する。続くステップS2114では、CPU152は更新が完了したか否かを判断し、更新が完了したと判断するまでステップS2114に留まり、更新が完了したと判断するとステップS2115に進む。
ステップS2115では、CPU152は第1クライアントツリーDB72から通知情報195を読み込む。続くステップS2117では、通知情報195から更新が完了した際に通知すべき情報を抽出し、更新が完了した旨の通知、すなわち更新トリガを送信する。ただし通知情報195が図9に示す例の場合はInstall完了1951Bの配下にノードが存在しないため、本ステップを実行せずに図17に示す処理を終了する。続くステップS2118では、対象となるすべての宛先に更新トリガを送信したか否かを判断し、全ての対象に送信したと判断する場合は図17に示す処理を終了し、送信していない対象があると判断する場合はステップS2117に戻る。
図18は、第1更新装置10がサーバ2からダウンロード実行指示を受信した際の処理を表すフローチャートである。
ステップS2201では、CPU152は更新データ取得部73を用いて更新データを取得させる。ダウンロードは更新データ取得部73およびデータ提供部63との間で実行され、プロトコルはHTTPあるいはFTPなどのデータを転送することができるものであればどのようなプロトコルを用いてもよい。更新データの取得先は、第1クライアントツリーDB72にたとえばPkgURL108として格納されている。続くステップS2202では、CPU152は更新データのダウンロードが完了したか否かを判断する。この判断はたとえば、更新データ取得部73からダウンロード完了の通知を受けたか否かにより判断できる。ダウンロードが完了したとする場合はステップS2203に進み、ダウンロードが完了していないと判断する場合はステップS2202に留まる。
ステップS2203では、CPU152は第1クライアントツリーDB72から通知情報195を読み込む。続くステップS2204では、通知情報195からダウンロードが完了した際に通知すべき情報を抽出し、ダウンロードが完了した旨の通知、すなわち更新トリガを送信する。通知情報195が図9に示す例の場合は、2つの装置に更新トリガを送信し、その更新トリガにはダウンロードが完了したパッケージの名称とバージョンが含まれる。続くステップS2205では、対象となるすべての宛先に更新トリガを送信したか否かを判断し、全ての対象に送信したと判断する場合は図18に示す処理を終了し、送信していない対象があると判断する場合はステップS2204に戻る。
なお、第1更新装置10のインターネット5との接続の切断がステップS2110以降で発生したとしても、更新契機191および通知情報195は第1クライアントツリーDB72から取得できるので、ソフトウェアの更新に支障はない。この場合も更新契機191により定められた条件が満たされなければ更新が実行されないので、サーバ2との接続が切断されていても更新契機191を適切に設定することにより、ソフトウェア同士の依存関係を維持したままソフトウェアを更新することができる。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)ソフトウェア更新装置である第1更新装置10は、1以上のソフトウェア更新装置、すなわち第2更新装置11及びサーバ2とインターネット5を介して接続される。第1更新装置10は、サーバ2から更新用データを受信する更新データ取得部73と、更新用データを用いてソフトウェアの更新を行う更新部31と、他のソフトウェア更新装置と通信する通信部33と、更新トリガの受信を含むソフトウェアを更新する条件が記載された更新契機191をサーバ2から受信する更新契機受信部41と、他のソフトウェア更新装置に通知を行う条件を含む通知情報195をサーバ2から受信する通知情報受信部42と、通知情報195に基づき他のソフトウェア更新装置に更新トリガを送信する更新トリガ通知部45と、他のソフトウェア更新装置から更新トリガを受信する更新トリガ受信部44と、更新契機191に記述されているすべての条件が満たされたと判断すると更新部31にソフトウェアの更新を実行させる更新開始判断部40とを備える。
更新開始判断部40は、サーバ2から受信した更新契機191に記載された条件がすべて満たされるとソフトウェアの更新を実行させるので、ソフトウェアの依存関係を満たしたままソフトウェアを更新することができる。たとえば、第1更新装置10にインストールされるソフトウェア「ABC」と第2更新装置11にインストールされるソフトウェア「PQR」に依存関係がある場合に、適切に設定された更新契機191を用いることでソフトウェアの依存関係を満たしたままソフトウェアを更新することができる。すなわち図7に示したように、第2更新装置11に所定のバージョンのソフトウェア「PQR」がインストールされたことを条件として、第1更新装置10のソフトウェア「ABC」を更新させることができる。
また第1更新装置10は更新トリガ通知部45を備えるので、通知情報195に基づき他のソフトウェア更新装置に更新トリガを送信することができる。すなわち他のソフトウェア更新装置に更新トリガの受信に基づきソフトウェアを更新させることができる。さらに第1更新装置10は、サーバ2から更新契機191、通知情報195、および更新データを受信した後であれば、サーバ2との接続が切断されても受信済みの情報を用いてソフトウェアの更新を行うことができる。
(2)通知情報195には、ソフトウェアが更新されると更新トリガが送信されることが含まれる。更新トリガ通知部45は、更新部31がソフトウェアの更新を完了すると更新トリガを送信する。
そのため第1更新装置10は、他のソフトウェア更新装置に第1更新装置10におけるソフトウェアの更新を通知することができる。すなわちソフトウェアの依存関係を満たしたまま、他のソフトウェア更新装置にソフトウェアを更新させることができる。
(3)通知情報195には、更新データ取得部73が更新用データを受信すると更新トリガが送信されることが含まれる。更新トリガ通知部45は、更新データ取得部73が更新用データを受信すると更新トリガを送信する。
そのため第1更新装置10は、他の装置が更新データを受信済みであること、換言すると他の装置が更新を実行するための事前準備の少なくとも一部が完了していることを条件として更新を開始することができる。
(4)第1更新装置10は車両1に搭載される。更新契機191には車両1のイグニッションのオンまたはオフが含まれる。更新開始判断部40は、イグニッションのオンまたはオフを検知可能である。
イグニッションのオフを更新開始の条件とすることで、車両1の走行に係るソフトウェアを安全に更新することができる。また一般にユーザがイグニッションをオフに操作するとその後しばらくはユーザは車両1を使用しないので、長時間の処理を要する更新を実行してもユーザの妨げとならない。イグニッションのオンを更新開始の条件とすることで、ユーザがタイミングを選択可能なわかりやすい時に更新を実行できる。
(5)第1更新装置10はインターネット5に接続される車両1に搭載される。更新契機191にはインターネット5との接続の切断が含まれる。更新開始判断部40は接続の切断を検知可能である。
インターネット5との接続の切断を更新開始の条件とすることで、ソフトウェアの更新による可用性の低下を低減することができる。詳述すると以下のとおりである。すなわち、動作にインターネット5との接続が必要なソフトウェアは、インターネット5との接続が切断されている間は動作できない。またソフトウェアの更新を開始すると更新が終了するまではソフトウェアを使用できない。そこで、インターネット5との接続が切断されたことによりソフトウェアを使用できない時間に更新によりソフトウェアを使用できない時間を重複させることで、ソフトウェアの更新による可用性の低下を低減する。
(6)第1更新装置10は記憶部151およびストレージ159を備える。更新トリガ受信部44は受信した更新トリガを記憶部151またはストレージ159に記憶させる。更新開始判断部40は、記憶部151またはストレージ159に記憶されている更新トリガを含めて更新開始の判断を行う。
そのため、更新条件のそれぞれが異なるタイミングで成立した場合でも、更新を開始することができる。
(変形例1)
更新契機191には車両状態1911以下のノードが含まれなくてもよいし、車両状態1911の配下に異なるノードが配置されてもよい。たとえば時刻に関する条件や車両1のエンジンの状態に関する条件を表すノードが配置されてもよい。
(変形例2)
更新契機191には、第1更新装置10および第2更新装置11についての条件が格納されたが、いずれか一方についての条件のみが格納されてもよい。また1つの更新装置について2以上のソフトウェアに関する条件が格納されてもよいし、各ソフトウェアについて「Download」や「Install」以外の条件、たとえば削除されたことを示す「Remove」が設定されてもよい。
(変形例3)
通知情報195の配下には、Download完了1951AやInstall完了1951B以外のノードが存在してもよい。たとえば、イグニッションがオンになったことを示す「IGNオン」や、ユーザから更新の許諾が得られたことを示す「更新許諾」などのノードが通知情報195の配下に存在してもよい。すなわち更新トリガ通知部45が、イグニッションがオンにされた際やユーザから更新の許諾を得られた際に更新トリガを送信してもよい。この構成は、他の更新管理装置がイグニッションの情報やユーザの許諾の情報を直接得ることができない場合に有効である。
(変形例4)
第1の実施の形態では、第1クライアントツリーDB72、第2クライアントツリーDB92、およびサーバツリーDB62をツリー状のデータベース、すなわち階層型データベースとして表現したが、これらデータベースの形式はこれに限定されない。ネットワーク型データベースやリレーショナル型データベースなど他の形式であってもよい。
(変形例5)
第1更新装置10は、更新トリガの送信および受信を行ったが、更新トリガの送信のみを行い受信を行わなくてもよいし、更新トリガの受信のみを行い送信を行わなくてもよい。たとえば第1更新装置10が更新トリガの送信のみを行い受信を行わない場合は、第1更新装置10は更新トリガ受信部44を備えなくてよい。また第1更新装置10が更新トリガの受信のみを行い送信を行わない場合は、通知情報受信部42および更新トリガ通知部45を備えなくてよい。
本変形例によれば、以下のソフトウェア更新装置も本発明に含まれる。
(1)ソフトウェア更新装置は、1以上のソフトウェア更新装置及びサーバとネットワークを介して接続される。ソフトウェア更新装置は、サーバから更新用データを受信する受信部と、更新用データを用いてソフトウェアの更新を行う更新部と、他のソフトウェア更新装置と通信する通信部と、更新トリガの受信を含むソフトウェアを更新する条件が記載された更新契機をサーバから受信する更新契機受信部と、他のソフトウェア更新装置から更新トリガを受信する更新トリガ受信部と、更新契機に記述されているすべての条件が満たされたと判断すると更新部にソフトウェアの更新を実行させる更新開始判断部とを備える。
(2)ソフトウェア更新装置は、1以上のソフトウェア更新装置及びサーバとネットワークを介して接続される。ソフトウェア更新装置は、サーバから更新用データを受信する受信部と、更新用データを用いてソフトウェアの更新を行う更新部と、他のソフトウェア更新装置と通信する通信部と、ソフトウェアを更新する条件が記載された更新契機をサーバから受信する更新契機受信部と、他のソフトウェア更新装置に通知を行う条件を含む通知情報をサーバから受信する通知情報受信部と、通知情報に基づき他のソフトウェア更新装置に、受信することがソフトウェアを更新する条件の1つとなる更新トリガを送信する更新トリガ通知部と、更新契機に記述されているすべての条件が満たされたと判断すると更新部にソフトウェアの更新を実行させる更新開始判断部とを備える。
(変形例6)
第1更新装置10に格納される通知情報195には、宛先として第1更新装置10が記載されず、第1更新装置10から第1更新装置10への更新トリガが送信されなくてもよい。この場合は、更新トリガ通知部45や更新トリガ受信部44を介さずに、ダウンロードが完了した旨の情報が更新開始判断部40に伝達される。
―第2の実施の形態―
図19〜図21を参照して、ソフトウェア更新システムSの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、第1更新装置および第2更新装置が他の装置のソフトウェアを更新する点で、第1の実施の形態と異なる。
(システム構成)
図19は、第2の実施の形態におけるソフトウェア更新システムSの構成を示す図である。車両1は、第1更新装置10と、第2更新装置11と、LANネットワーク18と、第1ECU511と、第2ECU512と、第3ECU513と、第1CANネットワーク501と、第2CANネットワーク502とを備える。第1更新装置10、および第2更新装置11は、LANネットワーク18により接続される。第1更新装置10、第1ECU511、および第2ECU512は、第1CANネットワーク501により接続される。第2更新装置11、および第3ECU513は、第2CANネットワーク502により接続される。
第1ECU511にはソフトウェア「DEF」が備えられ、第2ECU512にはソフトウェア「GHI」が備えられ、第3ECU513にはソフトウェア「STU」が備えられる。第1更新装置10は、第1ECU511および第2ECU512のソフトウェアを更新する。第2更新装置11は、第3ECU513のソフトウェアを更新する。
(ECUのハードウェア構成)
第1ECU511、第2ECU512、および第3ECU513のハードウェア構成は同様なので、ここでは代表して第1ECU511のハードウェア構成を説明する。
図20は、第1ECU511のハードウェア構成を示す図である。第1ECU511は、記憶部170と、CPU171と、ストレージ173と、CAN I/F174と、バス172とを備える。
第1ECU511のCPU171は、第1ECU511で扱われる情報の出入りを制御し、ストレージ173に保存されているソフトウェアの記述に従い動作する。記憶部170は、CPU171が扱う情報を一時的に保存し、バス172を介してCPU171とデータをやり取りする。ストレージ173には、第1ECU511のソフトウェアが格納される不揮発性の記憶装置である。第1ECU511は、ストレージ173に保存されているソフトウェアで動作し、このソフトウェアを更新することにより第1ECU511の動作を変更することが可能である。CAN I/F174は、車両1で使用される専用のネットワークであるCAN用インタフェースであり、第1CANネットワーク501を介して第1更新装置10と通信する。このインタフェースを介してソフトウェアを受信し、ストレージ173に格納されているソフトウェアを書き換えることが可能である。
(第1クライアントツリーDB)
第2の実施の形態における第1クライアントツリーDB72は、第1の実施の形態における第1クライアントツリーDB72の構成において、「ABC」を「DEF」および「GHI」で置き換えたものである。
図21は、第2の実施の形態における第1クライアントツリーDB72の概略を示す図である。Download106の配下には、ダウンロードする2つのパッケージの情報が格納される、「DEFv2s」のノードと、「GHIv4s」のノードが置かれる。これと同様にDelivered121、およびDeployed130のノードの配下にも2つのソフトウェアの情報が格納される。すなわちDelivered121の配下には各ソフトウェアに対応する更新契機が配され、Deployed130の配下には各ソフトウェアに対応する通知情報が配される。
第2クライアントツリーDB92の構成は、第1の実施の形態における構成からソフトウェアおよびパッケージの名称を変更したものなので説明を省略する。
上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)第1更新装置10は第1ECU511および第2ECU512に接続され、更新部31は、第1ECU511および第2ECU512のソフトウェアを更新する。そのため、第1ECU511および第2ECU512がソフトウェアの更新に係る制御を実行できない場合でも第1更新装置10が第1ECU511および第2ECU512に代わって、ソフトウェアの依存関係を満たしたまま、第1ECU511および第2ECU512にソフトウェアを更新させることができる。
(第2の実施の形態の変形例)
第1更新装置10は、第1ECU511および第2ECU512のソフトウェアだけでなく、第1更新装置10のソフトウェアも更新してよい。また第2更新装置11は、第3ECU513のソフトウェアだけでなく、第2更新装置11のソフトウェアも更新してよい。
第1更新装置10のプログラムはストレージ159に格納されるとしたが、第1更新装置10が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと第1更新装置10が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウェア回路やFPGAにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1 … 車両
2 … サーバ
S … ソフトウェア更新システム
10 … 第1更新装置
11 … 第2更新装置
31 … 更新部
33 … 通信部
40 … 更新開始判断部
41 … 更新契機受信部
42 … 通知情報受信部
44 … 更新トリガ受信部
45 … 更新トリガ通知部
191 … 更新契機
195 … 通知情報
451 … 通知情報

Claims (9)

  1. 1以上の他のソフトウェア更新装置及びサーバとネットワークを介して接続されるソフトウェア更新装置であって、
    前記サーバから更新用データを受信する受信部と、
    前記更新用データを用いてソフトウェアの更新を行う更新部と、
    前記他のソフトウェア更新装置と通信する通信部と、
    更新トリガの受信を含む前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、
    前記他のソフトウェア更新装置に前記更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、
    前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、
    前記他のソフトウェア更新装置から前記更新トリガを受信する更新トリガ受信部と、
    前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備えるソフトウェア更新装置。
  2. 1以上の他のソフトウェア更新装置及びサーバとネットワークを介して接続されるソフトウェア更新装置であって、
    前記サーバから更新用データを受信する受信部と、
    前記更新用データを用いてソフトウェアの更新を行う更新部と、
    前記他のソフトウェア更新装置と通信する通信部と、
    前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、
    前記他のソフトウェア更新装置に更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、
    前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、
    前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備えるソフトウェア更新装置。
  3. 請求項1または請求項2に記載のソフトウェア更新装置であって、
    前記通知情報には、前記ソフトウェアが更新されると前記更新トリガが送信されることが含まれ、
    前記更新トリガ通知部は、前記更新部が前記ソフトウェアの更新を完了すると前記更新トリガを送信するソフトウェア更新装置。
  4. 請求項1または請求項2に記載のソフトウェア更新装置であって、
    前記通知情報には、前記受信部が前記更新用データを受信すると前記更新トリガが送信
    されることが含まれ、
    前記更新トリガ通知部は、前記受信部が前記更新用データを受信すると前記更新トリガを送信するソフトウェア更新装置。
  5. 請求項1または請求項2に記載のソフトウェア更新装置であって、
    前記ソフトウェア更新装置は車両に搭載され、
    前記更新契機には前記車両のイグニッションのオンまたはオフが含まれ、
    前記更新開始判断部は、前記イグニッションのオンまたはオフを検知可能なソフトウェア更新装置。
  6. 請求項1または請求項2に記載のソフトウェア更新装置であって、
    前記ソフトウェア更新装置はインターネットに接続される車両に搭載され、
    前記更新契機には前記インターネットとの接続の切断が含まれ、
    前記更新開始判断部は前記接続の切断を検知可能なソフトウェア更新装置。
  7. 請求項1に記載のソフトウェア更新装置であって、
    記憶部をさらに備え、
    前記更新トリガ受信部は受信した前記更新トリガを前記記憶部に記憶させ、
    前記更新開始判断部は、前記記憶部に記憶されている前記更新トリガを含めて更新開始の判断を行うソフトウェア更新装置。
  8. 請求項1または請求項2に記載のソフトウェア更新装置において、
    前記ソフトウェア更新装置は制御装置に接続され、
    前記更新部は、前記ソフトウェア更新装置のソフトウェア、および前記制御装置のソフトウェアの少なくとも一方を更新するソフトウェア更新装置。
  9. 複数のソフトウェア更新装置およびサーバを含むソフトウェア更新システムであって、
    前記サーバは、ソフトウェアを更新するための更新用データを配信する配信部を備え、
    前記複数のソフトウェア更新装置の各々は、
    前記サーバから前記更新用データを受信する受信部と、
    前記更新用データを用いて前記ソフトウェアの更新を行う更新部と、
    前記サーバおよび他のソフトウェア更新装置と通信する通信部と、
    更新トリガの受信を含む前記ソフトウェアを更新する条件が記載された更新契機を前記サーバから受信する更新契機受信部と、
    前記他のソフトウェア更新装置に前記更新トリガを送信する条件を含む通知情報を前記サーバから受信する通知情報受信部と、
    前記通知情報に基づき前記他のソフトウェア更新装置に前記更新トリガを送信する更新トリガ通知部と、
    前記他のソフトウェア更新装置から前記更新トリガを受信する更新トリガ受信部と、
    前記更新契機に記述されているすべての条件が満たされたと判断すると前記更新部に前記ソフトウェアの更新を実行させる更新開始判断部とを備えるソフトウェア更新システム。
JP2016252787A 2016-12-27 2016-12-27 ソフトウェア更新装置、ソフトウェア更新システム Active JP6667430B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016252787A JP6667430B2 (ja) 2016-12-27 2016-12-27 ソフトウェア更新装置、ソフトウェア更新システム
PCT/JP2017/038792 WO2018123242A1 (ja) 2016-12-27 2017-10-26 ソフトウェア更新装置、ソフトウェア更新システム
CN201780080696.5A CN110114761B (zh) 2016-12-27 2017-10-26 软件更新装置和软件更新系统
EP17886794.1A EP3564822A4 (en) 2016-12-27 2017-10-26 SOFTWARE UPDATE DEVICE AND SOFTWARE UPDATE SYSTEM
US16/473,929 US11645062B2 (en) 2016-12-27 2017-10-26 Software update device and software update system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016252787A JP6667430B2 (ja) 2016-12-27 2016-12-27 ソフトウェア更新装置、ソフトウェア更新システム

Publications (2)

Publication Number Publication Date
JP2018106461A JP2018106461A (ja) 2018-07-05
JP6667430B2 true JP6667430B2 (ja) 2020-03-18

Family

ID=62708219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016252787A Active JP6667430B2 (ja) 2016-12-27 2016-12-27 ソフトウェア更新装置、ソフトウェア更新システム

Country Status (5)

Country Link
US (1) US11645062B2 (ja)
EP (1) EP3564822A4 (ja)
JP (1) JP6667430B2 (ja)
CN (1) CN110114761B (ja)
WO (1) WO2018123242A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7003975B2 (ja) 2018-08-10 2022-01-21 株式会社デンソー 車両情報通信システム,センター装置及びセンター装置のメッセージ送信方法
CN114698390A (zh) * 2019-08-28 2022-07-01 株式会社电装 车辆用电子控制系统、车辆用主装置、基于配置信息的覆盖的改写指示方法以及基于配置信息的覆盖的改写指示程序
JP7392407B2 (ja) 2019-11-14 2023-12-06 株式会社デンソー センター装置、車両用電子制御システム、プログラム更新の進捗制御方法及びプログラム更新の進捗制御プログラム
CN113162959B (zh) * 2020-01-23 2023-06-30 华为技术有限公司 车载设备的升级方法和装置
JP7396216B2 (ja) * 2020-06-26 2023-12-12 トヨタ自動車株式会社 サーバ、更新管理方法、更新管理プログラム及びソフトウェア更新装置
KR20220001924A (ko) * 2020-06-30 2022-01-06 현대자동차주식회사 차량의 ecu 업데이트 제어 장치 및 그 방법
JP7380468B2 (ja) * 2020-07-20 2023-11-15 トヨタ自動車株式会社 ソフトウェア更新装置、更新制御方法、更新制御プログラム、サーバ、otaマスタ及びセンタ
US11513792B2 (en) * 2020-09-30 2022-11-29 Izuma Tech, Inc. Tracking history of firmware program updates
CN114461240B (zh) * 2021-06-30 2023-04-14 荣耀终端有限公司 软件升级方法、软件升级系统及电子设备
JP2023022405A (ja) * 2021-08-03 2023-02-15 トヨタ自動車株式会社 情報処理装置、情報処理方法、およびシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US7539686B2 (en) * 2004-03-12 2009-05-26 Microsoft Corporation Tag-based schema for distributing update metadata in an update distribution system
JP2006011647A (ja) * 2004-06-23 2006-01-12 Fujitsu Ten Ltd ソフトウェア管理装置
US20060106806A1 (en) * 2004-11-12 2006-05-18 Smith Micro Software, Inc. Software update for a plurality of mobile devices
US8214470B2 (en) * 2007-11-02 2012-07-03 Telefonaktiebolaget L M Ericsson (Publ) Upgrading software in radio base station nodes
ES2371995T3 (es) * 2007-12-13 2012-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Actualización del firmware de un dispositivo electrónico.
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
JP2011095950A (ja) 2009-10-29 2011-05-12 Seiko Epson Corp ネットワークデバイス、ネットワークデバイスシステムおよびネットワークデバイスのソフトウェア更新方法
US20120216183A1 (en) * 2011-02-23 2012-08-23 Amit Mahajan Firmware updation in electronic devices
JP5708940B2 (ja) * 2012-08-22 2015-04-30 トヨタ自動車株式会社 情報管理装置、情報通信システム
US9092300B2 (en) * 2013-04-18 2015-07-28 Ottr Products, Llc Peripheral device and method for updating firmware thereof
KR101619645B1 (ko) * 2014-11-20 2016-05-18 현대자동차주식회사 차량의 펌웨어 업데이트 시스템 및 방법
US9934020B2 (en) 2015-03-10 2018-04-03 International Business Machines Corporation Intelligent mobile application update
US9952851B2 (en) * 2015-03-10 2018-04-24 International Business Machines Corporation Intelligent mobile application update
US10042635B2 (en) 2015-06-16 2018-08-07 Lear Corporation Method for wireless remote updating vehicle software
US9703490B2 (en) * 2015-07-27 2017-07-11 Datrium, Inc. Coordinated upgrade of a cluster storage system

Also Published As

Publication number Publication date
CN110114761A (zh) 2019-08-09
US20190354363A1 (en) 2019-11-21
EP3564822A1 (en) 2019-11-06
WO2018123242A1 (ja) 2018-07-05
JP2018106461A (ja) 2018-07-05
CN110114761B (zh) 2023-04-28
EP3564822A4 (en) 2020-08-19
US11645062B2 (en) 2023-05-09

Similar Documents

Publication Publication Date Title
JP6667430B2 (ja) ソフトウェア更新装置、ソフトウェア更新システム
JP6754622B2 (ja) ソフトウェア更新装置およびソフトウェア更新システム
JP2011148398A (ja) 車両用プログラム更新システム
US9058182B2 (en) Management device for causing devices to update programs and computer readable media
US8817288B2 (en) Information processing system, management method, and storage medium for placing an application after an image forming apparatus has been arranged
US9635207B2 (en) Management system and information processing apparatus managing installation and settings of an application
CN103309694A (zh) 应用程序更新方法和装置
KR20150141149A (ko) 시스템, 인쇄 장치, 제어 방법 및 기록 매체
JP2012250370A (ja) 設定値管理装置及びその管理方法
KR20160061306A (ko) 펌웨어 가상화를 위한 방법 및 장치
JP2016035714A (ja) 情報処理装置、情報処理装置におけるプログラム管理方法、プログラム、およびシステム
JP5847457B2 (ja) 画像形成装置及びその処理方法
JPH1195989A (ja) プログラム更新方式
US9268553B2 (en) Management device for causing specific device to update programs and computer readable media
KR20120074321A (ko) 관리장치, 및 그 방법
JP2013003745A (ja) 設定値管理装置及び管理方法
JP2017157114A (ja) 情報処理システム、情報処理装置、画像処理装置、制御方法および拡張プログラム
JP7435100B2 (ja) プログラム更新システム及び車両管理サーバー
US11670117B2 (en) Vehicle and software update method
US9049180B2 (en) Method for providing a signal output on the basis of a main file and at least one secondary file, and motor vehicle
JP2006178881A (ja) ソフトウェア管理システム及びソフトウェア管理方法
JP2012203801A (ja) 通信システム、通信端末および版数変更方法
JP2004005124A (ja) ソフトウェア配布システム
JP6101333B2 (ja) 画像形成装置及びその制御方法、管理装置及びその制御方法、及びプログラム
CN108089868B (zh) 对智能设备上的项目进行升级的方法以及相关设备

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170315

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170921

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200225

R150 Certificate of patent or registration of utility model

Ref document number: 6667430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150