(57)【要約】【課題】  柔軟な更新用ソフトウェアの配信制御を実現する。【解決手段】  車載ソフトウェア配信システム１は、複数の車両２０の車載システム（例えばエンジンＥＣＵ２４１）に対する同一機能のアップデートをキャンペーンで管理し、当該キャンペーンのソフトウェアを対象車両に遠隔で配信する車載ソフトウェア配信サーバ（テレマティクスセンタ１０）と、端末３０と、複数の車両２０のそれぞれに搭載されたソフトウェア更新装置２１０と、を備えて構成される。そしてテレマティクスセンタ１０では、キャンペーン管理部１１２が、キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとにキャンペーンに従属する複数のサブキャンペーンを作成し、ソフトウェア配信部（更新用ソフトウェア配信部１１３）が、それぞれのサブキャンペーンごとにソフトウェアを対象車両に遠隔で配信する。【選択図】図１
2019101706.tif 000002
【特許請求の範囲】
【請求項１】
複数の車両の車載システムに対する同一機能のアップデートを制御する車載ソフトウェア配信システムであって、
前記同一機能のアップデートをキャンペーンで管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバと、
前記車載ソフトウェア配信サーバに対する入出力を行う端末と、
前記複数の車両のそれぞれに搭載され、前記車載ソフトウェア配信サーバから配信された前記ソフトウェアをダウンロードし、対象の車載システムにインストールするソフトウェア更新装置と、
を備え、
前記車載ソフトウェア配信サーバは、
前記キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとに前記キャンペーンに従属する複数のサブキャンペーンを作成するキャンペーン管理部と、
それぞれの前記サブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信部と、
を有する
ことを特徴とする車載ソフトウェア配信システム。
【請求項２】
前記キャンペーン管理部によって作成される前記複数のサブキャンペーンには、
前記キャンペーンの対象車両のうち検証用の特定車両によるグループに検証用のソフトウェアを配信する第１のサブキャンペーンと、
前記キャンペーンの対象車両のうち前記特定車両以外の車両によるグループに前記サブキャンペーンに基づくソフトウェアを配信する第２のサブキャンペーンと、が含まれる
ことを特徴とする請求項１に記載の車載ソフトウェア配信システム。
【請求項３】
前記キャンペーン管理部は、前記キャンペーンに従属する前記第１のサブキャンペーンが成功した場合に、当該キャンペーンに従属する前記第２のサブキャンペーンを作成し、
前記ソフトウェア配信部は、前記第１のサブキャンペーンが成功した場合にのみ、前記第２のサブキャンペーンによる前記ソフトウェアの配信を行う
ことを特徴とする請求項２に記載の車載ソフトウェア配信システム。
【請求項４】
前記第１のサブキャンペーンによって前記検証用のソフトウェアが配信された前記特定車両において、前記ソフトウェア更新装置は、当該検証用のソフトウェアを対象の車載システムにインストールした後に、当該車載システムの記憶装置領域のハッシュ値を取得して前記車載ソフトウェア配信サーバに送信し、
前記第２のサブキャンペーンによって前記ソフトウェアが配信された前記対象車両において、前記ソフトウェア更新装置は、当該ソフトウェアを対象の車載システムにインストールした後に、当該車載システムの記憶装置領域のハッシュ値を取得して前記車載ソフトウェア配信サーバに送信し、
前記キャンペーン管理部は、前記第２のサブキャンペーンにおいて受信したハッシュ値が前記第１のサブキャンペーンにおいて受信したハッシュ値と一致した場合に、当該第２のサブキャンペーンが成功したと判断する
ことを特徴とする請求項３に記載の車載ソフトウェア配信システム。
【請求項５】
前記キャンペーン管理部は、
前記第２のサブキャンペーンの対象車両を所定の基準によってソートした結果に基づいて、当該第２のサブキャンペーンを複数に分割することができ、当該分割した第２のサブキャンペーンのそれぞれで異なるソフトウェアの配信開始タイミングを設定できる
ことを特徴とする請求項２に記載の車載ソフトウェア配信システム。
【請求項６】
前記キャンペーン管理部は、
前記第２のサブキャンペーンの対象車両を各対象車両の利用頻度が低い順にソートした結果に基づいて当該第２のサブキャンペーンを複数に分割し、当該分割した第２のサブキャンペーンのうち、前記利用頻度が低い対象車両を含むものほど、前記ソフトウェアの配信開始タイミングを早期に設定する
ことを特徴とする請求項５に記載の車載ソフトウェア配信システム。
【請求項７】
前記キャンペーン管理部は、
前記分割した複数の第２のサブキャンペーンの実行において、先に実行された何れかの前記第２のサブキャンペーンが終了した場合には、未実行の前記第２のサブキャンペーンにおける前記ソフトウェアの配信開始タイミングを前倒しする
ことを特徴とする請求項５に記載の車載ソフトウェア配信システム。
【請求項８】
前記キャンペーン管理部は、前記キャンペーンの対象車両を各対象車両のリージョンに基づいて前記グループに分類し、当該分類したグループごとに前記キャンペーンに従属する前記複数のサブキャンペーンを作成する
ことを特徴とする請求項１に記載の車載ソフトウェア配信システム。
【請求項９】
前記ソフトウェア更新装置は、自車両の現在の位置情報を取得する位置測位装置をさらに有し、
前記車載ソフトウェア配信サーバは、前記キャンペーンの対象車両の前記位置測位装置によって取得された位置情報に基づいて、各対象車両の流通時のリージョンを特定するジオコーディング処理部をさらに有し、
前記キャンペーン管理部は、前記ジオコーディング処理部によって特定された前記各対象車両の流通時のリージョンに基づいて前記キャンペーンの対象車両を前記グループに分類し、当該分類したグループごとに前記キャンペーンに従属する複数のサブキャンペーンを作成する
ことを特徴とする請求項８に記載の車載ソフトウェア配信システム。
【請求項１０】
複数の車両の車載システムに対する同一機能のアップデートをキャンペーンで管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバであって、
前記キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとに前記キャンペーンに従属する複数のサブキャンペーンを作成するキャンペーン管理部と、
それぞれの前記サブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信部と、
を備えることを特徴とする車載ソフトウェア配信サーバ。
【請求項１１】
前記キャンペーン管理部によって作成される前記複数のサブキャンペーンには、
前記キャンペーンの対象車両のうち検証用の特定車両によるグループに検証用のソフトウェアを配信する第１のサブキャンペーンと、
前記キャンペーンの対象車両のうち前記特定車両以外の車両によるグループに前記サブキャンペーンに基づくソフトウェアを配信する第２のサブキャンペーンと、が含まれる
ことを特徴とする請求項１０に記載の車載ソフトウェア配信サーバ。
【請求項１２】
前記キャンペーン管理部は、
前記第２のサブキャンペーンの対象車両を所定の基準によってソートした結果に基づいて、当該第２のサブキャンペーンを複数に分割することができ、当該分割した第２のサブキャンペーンのそれぞれで異なるソフトウェアの配信開始タイミングを設定できる
ことを特徴とする請求項１１に記載の車載ソフトウェア配信サーバ。
【請求項１３】
複数の車両の車載システムに対する同一機能のアップデートを制御する車載ソフトウェア配信システムによる車載ソフトウェア配信方法であって、
前記車載ソフトウェア配信システムは、
前記同一機能のアップデートをキャンペーンで管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバと、
前記車載ソフトウェア配信サーバに対する入出力を行う端末と、
前記複数の車両のそれぞれに搭載され、前記車載ソフトウェア配信サーバから配信された前記ソフトウェアをダウンロードし、対象の車載システムにインストールするソフトウェア更新装置と、
を有し、
前記車載ソフトウェア配信サーバが、前記キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとに前記キャンペーンに従属する複数のサブキャンペーンを作成するキャンペーン作成ステップと、
前記車載ソフトウェア配信サーバが、それぞれの前記サブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信ステップと、
を備えることを特徴とする車載ソフトウェア配信方法。
【請求項１４】
前記キャンペーン作成ステップによって作成される前記複数のサブキャンペーンには、
前記キャンペーンの対象車両のうち検証用の特定車両によるグループに検証用のソフトウェアを配信する第１のサブキャンペーンと、
前記キャンペーンの対象車両のうち前記特定車両以外の車両によるグループに前記サブキャンペーンに基づくソフトウェアを配信する第２のサブキャンペーンと、が含まれる
ことを特徴とする請求項１３に記載の車載ソフトウェア配信方法。
【請求項１５】
前記キャンペーン作成ステップにおいて、
前記車載ソフトウェア配信サーバが、前記第２のサブキャンペーンの対象車両を所定の基準によってソートした結果に基づいて、当該第２のサブキャンペーンを複数に分割し、当該分割した第２のサブキャンペーンのそれぞれに異なるソフトウェアの配信開始タイミングを設定する
ことを特徴とする請求項１４に記載の車載ソフトウェア配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ソフトウェア配信システム、車載ソフトウェア配信サーバ、及び車載ソフトウェア配信方法に関し、乗用車等の車両に搭載される機器に対して遠隔のソフトウェア更新を実現する車載ソフトウェア配信システム、車載ソフトウェア配信サーバ、及び車載ソフトウェア配信方法に適用して好適なものである。
【背景技術】
【０００２】
近年、運転支援機能や自動運転技術の進展により、自動車用の電子制御装置（ＥＣＵ：Electric Control Unit）に搭載されるソフトウェアの規模が増大している。また、ソフトウェアの規模の増大に伴い、ソフトウェア不具合に起因するリコールの回数、並びに１回のリコールあたりに対応が必要な車両台数も、増加する傾向にある。また、一方で、通信ネットワークの進展に伴い、自動車が無線でセンタシステム等とつながるコネクッテッドカーも普及の兆しを見せている。
【０００３】
このような状況のなか、従来携帯電話やテレビに使われていた無線による遠隔ソフト更新技術を自動車に適用し、自動車のＥＣＵソフトウェアを遠隔で更新する自動車向け遠隔ソフト更新技術へのニーズが高まっている。
【０００４】
例えば特許文献１には、ネットワークを介して車載ソフトウェアの更新を行う情報処理システムが開示されている。特許文献１に開示された情報処理システムでは、自動車ＥＣＵにおける更新用ソフトウェア適用後のメモリのハッシュ値をセンタに送信し、事前に登録された検証用のハッシュ値との比較を実施することによって、対象の自動車のＥＣＵにおけるソフトウェアの更新が正常に完了したか否かをセンタ側で確認することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５８６４５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、特許文献１に開示された情報処理システムでは、同一のＥＣＵＩＤ（ＥＣＵを一意に特定可能な識別子）を有するＥＣＵあるいは車両に対して、画一的に同一のソフトウェアを配信することが前提となる。しかし、実際のソフトウェア更新においては、検証用に特定車両にのみソフトウェアを配信するケースや、車両がある国や地域（リージョン）に応じて規制が異なることから一部のデータだけを変更したソフトウェアを配信するケース等がある。特許文献１に開示された情報処理システムでは、上記のように全ての自動車にソフトウェアを画一的に配信しない状況（同一のソフトウェアを一斉に配信しない状況）において、どのようにソフトウェア配信を制御するか明確ではないという問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、検証用に特定車両にのみソフトウェアを配信したり、リージョンに応じて異なるソフトウェアを配信したりする等、更新用ソフトウェアを画一的ではなく柔軟に配信する制御を実現可能な車載ソフトウェア配信システム、車載ソフトウェア配信サーバ、及び車載ソフトウェア配信方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明においては、複数の車両の車載システムに対する同一機能のアップデートを制御する車載ソフトウェア配信システムであって、同一機能のアップデートをキャンペーン（メインキャンペーン）で管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバ（テレマティクスセンタ）と、車載ソフトウェア配信サーバに対する入出力を行う端末と、複数の車両のそれぞれに搭載され、車載ソフトウェア配信サーバから配信されたソフトウェアをダウンロードし、対象の車載システムにインストールするソフトウェア更新装置と、を備える車載ソフトウェア配信システムが提供される。この車載ソフトウェア配信システムでは、車載ソフトウェア配信サーバが、キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとにキャンペーンに従属する複数のサブキャンペーン（例えば、テストキャンペーンや配信キャンペーン）を作成するキャンペーン管理部と、それぞれのサブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信部と、を有することを特徴とする。
【０００９】
また、かかる課題を解決するため本発明においては、複数の車両の車載システムに対する同一機能のアップデートをキャンペーン（メインキャンペーン）で管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバであって、キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとにキャンペーンに従属する複数のサブキャンペーン（例えば、テストキャンペーンや配信キャンペーン）を作成するキャンペーン管理部と、それぞれのサブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信部と、を備えることを特徴とする車載ソフトウェア配信サーバ（テレマティクスセンタ）が提供される。
【００１０】
また、かかる課題を解決するため本発明においては、複数の車両の車載システムに対する同一機能のアップデートを制御する車載ソフトウェア配信システムによる車載ソフトウェア配信方法が提供される。この車載ソフトウェア配信方法において、車載ソフトウェア配信システムは、同一機能のアップデートをキャンペーンで管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する車載ソフトウェア配信サーバと、車載ソフトウェア配信サーバに対する入出力を行う端末と、複数の車両のそれぞれに搭載され、車載ソフトウェア配信サーバから配信されたソフトウェアをダウンロードし、対象の車載システムにインストールするソフトウェア更新装置と、を有する。そしてこの車載ソフトウェア配信方法は、車載ソフトウェア配信サーバが、キャンペーンの対象車両を所定の基準に基づいてグループに分類し、当該分類したグループごとにキャンペーンに従属する複数のサブキャンペーンを作成するキャンペーン作成ステップと、車載ソフトウェア配信サーバが、それぞれのサブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信するソフトウェア配信ステップと、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、柔軟な更新用ソフトウェアの配信制御を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係る車載ソフトウェア配信システムの構成例を示す図である。
【図２】車両情報の具体例を示す図である。
【図３】車両構成情報の具体例を示す図である。
【図４】メインキャンペーン情報の具体例を示す図である。
【図５】テストキャンペーン情報の具体例を示す図である。
【図６】配信キャンペーン情報の具体例を示す図である。
【図７】更新進捗状況情報の具体例を示す図である。
【図８】メインキャンペーン情報及びテストキャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。
【図９】キャンペーン管理画面の一例を説明する図である。
【図１０】テストキャンペーンに基づく更新用ソフトウェアの検証処理の処理手順の一例を示すシーケンス図（その１）である。
【図１１】テストキャンペーンに基づく更新用ソフトウェアの検証処理の処理手順の一例を示すシーケンス図（その２）である。
【図１２】配信キャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。
【図１３】配信キャンペーンに基づく更新用ソフトウェアの配信処理の処理手順の一例を示すシーケンス図（その１）である。
【図１４】配信キャンペーンに基づく更新用ソフトウェアの配信処理の処理手順の一例を示すシーケンス図（その２）である。
【図１５】第２の実施の形態における配信キャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。
【図１６】配信キャンペーン作成画面の一例を説明する図である。
【図１７】配信開始日時変更処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
（１−１）車載ソフトウェア配信システム１の構成
図１は、本発明の第１の実施の形態に係る車載ソフトウェア配信システムの構成例を示す図である。図１に示す車載ソフトウェア配信システム１は、車両２０の位置情報を確認しながら車両２０にソフトウェアを配信するシステムであって、サーバであるテレマティクスセンタ１０と、車両２０に搭載されたソフトウェア更新装置２１０と、テレマティクスセンタ１０に対して入出力を行う端末３０とを備える。なお、図１に示したように、テレマティクスセンタ１０、ソフトウェア更新装置２１０、及び端末３０は、ネットワーク４０を介して互いに通信可能に接続される。
【００１５】
図１に示したように、テレマティクスセンタ１０は通信部１３０を介してネットワーク４０に接続され、ソフトウェア更新装置２１０は車両２０の通信部２２０を介してネットワーク４０に接続され、端末３０は通信部３４０を介してネットワーク４０に接続されている。この結果、テレマティクスセンタ１０、ソフトウェア更新装置２１０、及び端末３０は、ネットワーク４０を介して相互に通信可能に接続される。ネットワーク４０は、例えば、携帯電話網、インターネット網、無線ＬＡＮ（Local Area Network）等の近距離無線通信、あるいはそれらの組合せによって構成することができる。
【００１６】
なお、図１では、ソフトウェア更新装置２１０を搭載した車両２０が１台だけ示されているが、本実施の形態における構成はこれに限定されるものではなく、それぞれにソフトウェア更新装置２１０を搭載した複数台の車両２０が、ネットワーク４０を介してテレマティクスセンタ１０及び端末３０と通信可能に接続される構成であってもよい。また、テレマティクスセンタ１０と端末３０は同一の機器によって実現されてもよい。
【００１７】
（１−１−１）テレマティクスセンタ１０
テレマティクスセンタ１０は、サーバであって、ネットワーク４０を介して、端末３０からソフトウェア配信指示を受信し、車両２０に対してソフトウェアを配信する。テレマティクスセンタ１０は、中央演算処理装置１１０と、記憶装置１２０と、通信部１３０とを備える。
【００１８】
中央演算処理装置１１０は、例えばＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory）等から構成され、所定のプログラムを実行することによって、テレマティクスセンタ１０の各機能を実現する。中央演算処理装置１１０は、これらの機能別の構成として、車両管理部１１１、キャンペーン管理部１１２、更新用ソフトウェア配信部１１３、ジオコーディング処理部１１４、及び配信開始日時変更部１１５を備える。なお、配信開始日時変更部１１５は、本発明の第２の実施の形態に係る車載ソフトウェア配信システムが有する機能を実現するための構成である。
【００１９】
車両管理部１１１は、記憶装置１２０の車両ＤＢ１２１及び車両構成ＤＢ１２２に格納されている各情報を管理し、必要に応じて各情報の登録、変更、及び削除を行う。
【００２０】
キャンペーン管理部１１２は、記憶装置１２０のメインキャンペーンＤＢ１２３、テストキャンペーンＤＢ１２４、及び配信キャンペーンＤＢ１２５に格納されている各情報を管理し、端末３０からのソフトウェアの配信指示や、車両２０（ソフトウェア更新装置２１０）からのソフトウェアのインストール結果の通知等に応じて、各情報の登録、変更、及び削除を行う。
【００２１】
更新用ソフトウェア配信部１１３は、端末３０からの指示に応じて、車両２０にとって適切な更新用ソフトウェアを記憶装置１２０のソフトウェアＤＢ１２７から取り出し、通信部１３０及びネットワーク４０を介して車両２０に配信する。
【００２２】
ジオコーディング処理部１１４は、車両２０の位置測位装置２１６（詳細は後述する）によって取得された車両２０の位置情報（緯度情報及び経度情報）を受信し、記憶装置１２０の地図ＤＢ１２８を用いて当該位置情報から住所を特定することにより、車両２０がどの国や地域（リージョン）に位置しているかを認識する。
【００２３】
配信開始日時変更部１１５は、後述する第２の実施の形態で実現される機能のための構成であり、ソフトウェア配信の完遂状況に基づいて、記憶装置１２０の配信キャンペーンＤＢ１２５に格納されている各情報を変更する。
【００２４】
記憶装置１２０は、例えばＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ、またはＲＯＭ（Read Only Memory）等から構成される。記憶装置１２０には、中央演算処理装置１１０が実行するプログラムのほか、当該プログラムの実行に必要なデータ群等が格納される。
【００２５】
図１に示したように、記憶装置１２０に格納されるデータ群として、記憶装置１２０は、車両ＤＢ１２１、車両構成ＤＢ１２２、メインキャンペーンＤＢ１２３、テストキャンペーンＤＢ１２４、配信キャンペーンＤＢ１２５、更新進捗状況ＤＢ１２６、ソフトウェアＤＢ１２７、及び地図ＤＢ１２８等を備える。
【００２６】
なお、本説明において「キャンペーン」とは、あるＥＣＵの同一機能を更新するために配信しようとする更新用ソフトウェアに対して、配信先である１以上の車両２０の情報を紐付けして管理するための情報の単位を意味する。より詳しくは、新しく更新用ソフトウェアを配信してソフトウェアをアップデートしようとするとき、当該更新用ソフトウェアの全体的な配信を「メインキャンペーン」と称する。また、「メインキャンペーン」に従属する単位として、テスト（検証）用途に限定された特定の車両２０に対する更新用ソフトウェアの配信テストを「テストキャンペーン」と称する。さらに、「メインキャンペーン」及び「テストキャンペーン」に従属する単位として、「テストキャンペーン」による更新用ソフトウェアの配信テストの成功の結果をもって行われる、全世界に存在する車両２０への更新用ソフトウェアの配信を「配信キャンペーン」と称する。キャンペーンの具体例としては例えばリコール対応が挙げられ、キャンペーンによって、当該リコールの原因を解消するための更新用ソフトウェアが配信され、更新用ソフトウェアが対象のＥＣＵにインストールされることによって、機能のアップデートが行われる。
【００２７】
車両ＤＢ１２１は、１以上の車両２０のそれぞれ（各車両２０）について、車種、利用状況、及びソフトウェア配信時の制約条件となり得る情報等から構成される「車両情報」を蓄積する。「車両情報」は、後述する図２で具体例が示される。
【００２８】
車両構成ＤＢ１２２は、各車両２０について、搭載されているＥＣＵの種別、及びインストールされているソフトウェアのバージョンを管理するための情報等から構成される「車両構成情報」を蓄積する。「車両構成情報」は、後述する図３で具体例が示される。
【００２９】
メインキャンペーンＤＢ１２３は、メインキャンペーンにおいてソフトウェアのアップデート対象となるＥＣＵの種別、更新用ソフトウェアの配信時における制約条件、及び更新対象となる車両台数を管理するための情報等から構成される「メインキャンペーン情報」を蓄積する。「メインキャンペーン情報」は、後述する図４で具体例が示される。
【００３０】
テストキャンペーンＤＢ１２４は、上述したように、配信キャンペーンの前に、テスト用途に限定された特定の車両２０に対して行われる「テストキャンペーン」のために必要な情報から構成される「テストキャンペーン情報」を蓄積する。「テストキャンペーン情報」は、「メインキャンペーン情報」に従属する情報であり、後述する図５で具体例が示される。
【００３１】
配信キャンペーンＤＢ１２５は、上述したように、テストキャンペーンが成功した結果をもって全世界に存在する車両２０に対して行われる「配信キャンペーン」のために必要な情報から構成される「配信キャンペーン情報」を蓄積する。「配信キャンペーン情報」は、「メインキャンペーン情報」及び「テストキャンペーン情報」に従属する情報であり、後述する図６で具体例が示される。
【００３２】
更新進捗状況ＤＢ１２６は、各車両２０における更新用ソフトウェアのインストールの進捗状況を管理するための情報である「更新進捗状況情報」を蓄積する。「更新進捗状況情報」は、後述する図７で具体例が示される。
【００３３】
ソフトウェアＤＢ１２７は、車両２０に配信する更新用ソフトウェアを蓄積する。また、地図ＤＢ１２８は、車両２０が走行する国や地域の「地図データ」を蓄積する。地図データは、具体的には例えば、交差点、道路、国境等の情報が点や線などで表現される。
【００３４】
通信部１３０は、ネットワーク４０で用いられる通信規格に準拠したネットワークカード等から構成され、ネットワーク４０を介して、車両２０及び端末３０との間で、各種プロトコルに基づいてデータを送受信する。ネットワークカードは、有線ＬＡＮ等の有線通信や無線ＬＡＮ等の無線通信、あるいはその両方に必要な通信規格に準拠する。
【００３５】
（１−１−２）車両２０
車両２０は、ソフトウェア更新装置２１０と、通信部２２０と、ナビゲーション端末２３０と、各種ＥＣＵ（エンジンＥＣＵ２４１、自動運転ＥＣＵ２４２、…）とを備える。車両２０の各機器は、ＣＡＮ（Controller Area Network）等の車内ネットワークで接続される。
【００３６】
ソフトウェア更新装置２１０は、中央演算処理装置２１１と、記憶装置２１５と、位置測位装置２１６とを備える。
【００３７】
中央演算処理装置２１１は、例えばＣＰＵやＲＡＭ等から構成され、所定のプログラムを実行することによって、ソフトウェア更新装置２１０の各機能を実現する。中央演算処理装置２１１は、これらの機能別の構成として、キャンペーン確認部２１２、更新用ソフトウェア要求部２１３、及びＥＣＵソフトウェア更新部２１４を備える。
【００３８】
キャンペーン確認部２１２は、車両２０のエンジン始動をトリガとして、テレマティクスセンタ１０に問い合わせを行い、自車両のＥＣＵにソフトウェアアップデートを実施するためのキャンペーン情報がないかを確認する。
【００３９】
更新用ソフトウェア要求部２１３は、キャンペーン確認部２１２による確認の結果、自車両のＥＣＵを対象とするキャンペーンがあった場合に、テレマティクスセンタ１０に対して当該キャンペーンの更新用ソフトウェアを要求し、ダウンロードする。
【００４０】
ＥＣＵソフトウェア更新部２１４は、更新用ソフトウェア要求部２１３がダウンロードした更新用ソフトウェアを用いて、更新対象のＥＣＵをアップデートする。
【００４１】
記憶装置２１５は、例えばＨＤＤ、ＳＳＤ、フラッシュメモリ、またはＲＯＭ等から構成される。記憶装置２１５には、中央演算処理装置２１１が実行するプログラムのほか、当該プログラムの実行に必要なデータ群等が格納される。
【００４２】
位置測位装置２１６は、例えばＧＰＳ（Global Positioning System）センサ等で構成され、車両２０の現在位置を特定する位置情報（緯度情報及び経度情報）を取得する。
【００４３】
通信部２２０は、ネットワーク４０で用いられる通信規格に準拠したネットワークカード等から構成され、ネットワーク４０を介して、テレマティクスセンタ１０及び端末３０との間で、各種プロトコルに基づいてデータを送受信する。ネットワークカードは、例えば無線ＬＡＮ等の無線通信に準拠する。
【００４４】
ナビゲーション端末２３０は、車両２０の走行時に現在位置や目的地への経路案内を行うナビゲーション機能を有する一般的なカーナビゲーション装置で構成される。ナビゲーション端末２３０は、中央演算処理装置２３１と、記憶装置２３３と、入出力装置２３４とを備える。
【００４５】
中央演算処理装置２３１は、例えばＣＰＵやＲＡＭ等から構成され、所定の動作プログラムを実行することで、ナビゲーション端末２３０によるナビゲーション機能を実現する。中央演算処理装置２３１は、その機能構成として更新情報表示部２３２備える。更新情報表示部２３２は、ナビゲーション機能に基づく表示画面や、テレマティクスセンタ１０から送信された更新用ソフトウェアの情報に基づく表示画面を、入出力装置２３４に表示させる。
【００４６】
記憶装置２３３は、例えばＨＤＤ、ＳＳＤ、フラッシュメモリ、またはＲＯＭ等から構成される。記憶装置２３３には、中央演算処理装置２３１が実行するプログラムのほか、当該プログラムの実行に必要なデータ群等が格納される。
【００４７】
入出力装置２３４は、タッチパネル、キーボード、またはマウス等を組み合わせて構成され、ナビゲーション端末２３０やソフトウェア更新装置２１０に対する入力部及び出力部（表示部）として機能する。
【００４８】
なお、本実施の形態の車両２０において、ソフトウェア更新装置２１０とナビゲーション端末２３０は同一の機器によって実現されても良い。また、ナビゲーション端末２３０が車両２０に搭載された構成に限定されるものではなく、例えば、ナビゲーション端末２３０の代わりに、ナビゲーション端末２３０と同様の機能を発揮するスマートフォン等の携帯端末を用いるようにしてもよい。この場合、通信部２２０を携帯端末と通信可能な近傍に配置し、ソフトウェア更新装置２１０が例えばＯＢＤ（On Board Diagnostics）等のコネクタを用いることによって、ソフトウェア更新装置２１０が携帯端末と通信することが考えられる。
【００４９】
エンジンＥＣＵ２４１は、車両２０におけるエンジン動作を管理するＥＣＵである。自動運転ＥＣＵ２４２は、車両２０における自動運転の動作制御を管理するＥＣＵである。図１に示すように、これらのＥＣＵはバス型ＣＡＮネットワークに接続され、ソフトウェア更新装置２１０がこれらのバス型ネットワークのハブ機能を有する。
【００５０】
なお、図１では、各種ＥＣＵの一例としてエンジンＥＣＵ２４１と自動運転ＥＣＵ２４２を示したが、車両２０に搭載される各種ＥＣＵはこれらに限られるものではない。例えば、サスペンション制御用のＥＣＵや、電子ミラー制御用のＥＣＵ等、車両２０の制御や安全を支援する機能を有するＥＣＵが搭載されていてもよい。なお、これらのＥＣＵには、自身を動作させるためのソフトウェアがそれぞれ内蔵されている。このソフトウェアは、各ＥＣＵが有する記憶装置（不図示）にそれぞれ格納されており、各ＥＣＵが有する中央演算処理装置（不図示）によって実行される。以降の説明では、一例として、更新用ソフトウェアの配信によって自動運転ＥＣＵ２４２を更新する状況を想定しているが、本実施の形態において更新対象となるＥＣＵはこれに限定されない。
【００５１】
（１−１−３）端末３０
端末３０は、汎用的な計算機や、タブレットやスマートフォン等の携帯端末等であって、中央演算処理装置３１０と、記憶装置３２０と、入出力装置３３０と、通信部３４０とを備える。
【００５２】
中央演算処理装置３１０は、例えばＣＰＵやＲＡＭ等から構成され、所定の動作プログラムを実行することによって、端末３０の機能を実現する。中央演算処理装置３１０は、その機能構成として、キャンペーン情報入出力部３１１を備える。
【００５３】
キャンペーン情報入出力部３１１は、ユーザによる入出力装置３３０の操作に応じて、テレマティクスセンタ１０にキャンペーン情報を問い合わせ、受信したキャンペーン情報を入出力装置３３０に表示する。
【００５４】
記憶装置３２０は、例えばＨＤＤ、ＳＳＤ、フラッシュメモリ、またはＲＯＭ等から構成される。記憶装置３２０には、中央演算処理装置２１１が実行するプログラムのほか、当該プログラムの実行に必要なデータ群等が格納される。
【００５５】
入出力装置３３０は、タッチパネル、キーボード、またはマウス等を組み合わせて構成され、端末３０やテレマティクスセンタ１０に対する入力部及び出力部（表示部）として機能する。
【００５６】
通信部３４０は、ネットワーク４０で用いられる通信規格に準拠したネットワークカード等から構成され、ネットワーク４０を介して、テレマティクスセンタ１０との間で、各種プロトコルに基づいてデータを送受信する。ネットワークカードは、例えば無線ＬＡＮ等の無線通信に準拠する。
【００５７】
なお、前述したように、端末３０は、テレマティクスセンタ１０と同一の機器によって実現されてもよく、例えばテレマティクスセンタ１０が端末３０の機能を含んで構成される場合、テレマティクスセンタ１０が、端末３０の入出力装置３３０に相当する入出力装置を備え、さらに、中央演算処理装置１１０がキャンペーン情報入出力部３１１を備えるようにすればよい。
【００５８】
（１−２）各種データの構造
以下では、図１に示したテレマティクスセンタ１０の記憶装置１２０においてＤＢに格納される各種データの構造について具体例を挙げて説明する。なお、本具体例では、テーブル形式によるデータ構造を示すが、本実施の形態における各種データの構造はこれに限定されるものではない。
【００５９】
図２は、車両情報の具体例を示す図である。車両情報は、各車両２０についての車両本体のメタ情報であって、車両ＤＢ１２１に格納される。図２に示した車両情報１２１０は、ＶＩＮ１２１１、車種ＩＤ１２１２、最終停車位置１２１３、出荷時リージョン１２１４、所属リージョン１２１５、テスト車両フラグ１２１６、サイレントフラグ１２１７、利用頻度１２１８、及び更新日時１２１９を備えて構成されるテーブル形式のデータである。
【００６０】
ＶＩＮ１２１１は、車両２０を一意に特定可能な識別子（ＶＩＮ：Vehicle Identification Number）である。車種ＩＤ１２１２は、ＶＩＮ１２１１で特定される車両２０（当該レコードにおける対象車両２０）の車種を一意に特定可能な識別子である。最終停車位置１２１３は、対象車両２０が最後にエンジンＯＦＦとなったときの位置情報であって、緯度、経度の順で表記されている。
【００６１】
出荷時リージョン１２１４は、対象車両２０の出荷時のリージョンを示す情報であって、ＶＩＮ１２１１や車種ＩＤ１２１２に基づいて予め割り出される。また、所属リージョン１２１５は、対象車両２０の現在のリージョン（流通時のリージョン）を示す情報であって、ジオコーディング処理部１１４によって最終停車位置１２１３から割り出される。例えば、対象車両２０が米国（ＵＳ）で出荷された場合は、出荷時リージョン１２１４が「ＵＳ」となるが、その後に欧州（ＥＵ）に輸出されて現在に至る場合は、所属リージョン１２１５が「ＥＵ」となる。
【００６２】
テスト車両フラグ１２１６は、対象車両２０がテストキャンペーンの対象となり得るか否かを管理するための情報である。テストキャンペーンの対象となり得る場合は「Ｔｒｕｅ」と記録され、テストキャンペーンの対象となり得ない場合は「Ｆａｌｓｅ」と記録される。
【００６３】
サイレントフラグ１２１７は、対象車両２０のＥＣＵを更新する場合に、更新の実行をユーザに告知（通知）する「確認画面」の表示可否を判断するための情報である。サイレントフラグ１２１７が「Ｔｒｕｅ」の場合は、確認画面の表示が不要であることを意味するので、ソフトウェア更新の告知が行われない。サイレントフラグ１２１７が「Ｆａｌｓｅ」の場合は、確認画面の表示が必要であることを意味するので、ソフトウェア更新を告知する確認画面が所定の表示画面（例えばナビゲーション端末２３０の入出力装置２３４）に表示される。サイレントフラグ１２１７の設定については、対象車両２０の所有者がナビゲーション端末２３０の入出力装置２３４の操作によって事前に登録し、登録した情報がテレマティクスセンタ１０に通知される等が想定される。
【００６４】
利用頻度１２１８は、対象車両２０がどの程度の頻度でエンジンＯＮにされるか、すなわち対象車両２０が利用されている頻度を示す情報である。なお、対象車両２０におけるエンジンＯＮをテレマティクスセンタ１０側で認識する方法は、特に限定されない。例えば、エンジン始動を検知したことが車両２０からテレマティクスセンタ１０に通知されることによって認識できるようにしてもよいし、他にも例えば、エンジン始動の検知後に行われる車両２０からテレマティクスセンタ１０への通信（例えば、後述する図１３のステップＳ９０１の通信）に基づいて、テレマティクスセンタ１０が車両２０におけるエンジンＯＮを算出するようにしてもよい。
【００６５】
そして更新日時１２１９は、車両情報１２１０の当該レコードが更新された日時を示す情報である。
【００６６】
図３は、車両構成情報の具体例を示す図である。車両構成情報は、各車両２０が有するＥＣＵに関する情報であって、車両構成ＤＢ１２２に格納される。図３に示した車両構成情報１２２０は、ＶＩＮ１２２１、ＥＣＵ−ＩＤ１２２２、シリアルＩＤ１２２３、ソフトウェアバージョン１２２４、及び更新日時１２２５を備えて構成されるテーブル形式のデータである。
【００６７】
ＶＩＮ１２２１は、車両情報１２１０のＶＩＮ１２１１と共通のデータであり、対象車両２０を一意に特定可能な識別子である。
【００６８】
ＥＣＵ−ＩＤ１２２２は、対象車両２０に搭載されるＥＣＵの種別を一意に特定可能な識別子である。また、シリアルＩＤ１２２３は、対象車両２０に搭載されるＥＣＵを一意に特定可能な識別子である。例えば、図３のデータ行の１行目と３行目とを比較すると分かるように、ＥＣＵの種別（ＥＣＵ−ＩＤ１２２２）が同一であっても、それぞれのＥＣＵのシリアルＩＤ１２２３は異なる。また、ソフトウェアバージョン１２２４は、対象車両２０に搭載されるＥＣＵにインストールされたソフトウェアを一意に特定可能な識別子である。
【００６９】
そして更新日時１２２５は、車両構成情報１２２０の当該レコードが更新された日時を示す情報である。
【００７０】
図４は、メインキャンペーン情報の具体例を示す図である。前述したように、メインキャンペーン情報はメインキャンペーンＤＢ１２３に格納される。図４に示したメインキャンペーン情報１２３０は、メインキャンペーンＩＤ１２３１、ＥＣＵ−ＩＤ１２３２、クリティカルフラグ１２３３、更新対象台数１２３４、更新完了台数１２３５、及び更新日時１２３６を備えて構成されるテーブル形式のデータである。
【００７１】
メインキャンペーンＩＤ１２３１は、メインキャンペーン情報を一意に特定可能な識別子であり、本例では、ＩＤの一文字目に「Ｍ」が共通して付与されている。
【００７２】
ＥＣＵ−ＩＤ１２３２は、車両構成情報１２２０のＥＣＵ−ＩＤ１２２２と共通のデータであり、当該レコードのメインキャンペーンにおいてソフトウェアの更新対象とされるＥＣＵの種別（ＥＣＵ−ＩＤ）を示す情報である。
【００７３】
クリティカルフラグ１２３３は、当該レコードのメインキャンペーン情報の優先度を表す情報であって、車両２０のドライバによるソフトウェア更新の拒否が可能か否かを判断するための情報である。例えば、図４に示したように、クリティカルフラグ１２３３が「Ｔｒｕｅ」である場合は、ソフトウェア更新の緊急性（優先度）が高いキャンペーンであって、車両２０のドライバによるソフトウェア更新の拒否権がないことを意味する。一方、クリティカルフラグ１２３３が「Ｆａｌｓｅ」である場合は、ソフトウェア更新の緊急性（優先度）が比較的低いキャンペーンであって、車両２０のドライバによってソフトウェア更新（または、その更新タイミング）を拒否できることを意味する。
【００７４】
更新対象台数１２３４は、当該レコードのメインキャンペーン情報に従属する全ての配信キャンペーンにおける更新対象台数（図６に示す配信キャンペーン情報１２５０の更新対象台数１２５６に相当）の総和を示す情報である。また、更新完了台数１２３５は、当該レコードのメインキャンペーン情報に従属する全ての配信キャンペーンにおける更新完了台数（図６に示す配信キャンペーン情報１２５０の更新完了台数１２５７に相当）の総和を示す情報である。
【００７５】
そして更新日時１２３６は、メインキャンペーン情報１２３０の当該レコードが更新された日時を示す情報である。
【００７６】
図５は、テストキャンペーン情報の具体例を示す図である。前述したように、テストキャンペーン情報はテストキャンペーンＤＢ１２４に格納される。図５に示したテストキャンペーン情報１２４０は、テストキャンペーンＩＤ１２４１、引用元メインキャンペーンＩＤ１２４２、テスト車両ＶＩＮ１２４３、対象リージョン１２４４、更新ファイル名１２４５、適用バージョン１２４６、検証用ハッシュ値１２４７、及び更新日時１２４８を備えて構成されるテーブル形式のデータである。
【００７７】
テストキャンペーンＩＤ１２４１は、テストキャンペーン情報を一意に特定可能な識別子であり、本例では、ＩＤの一文字目に「Ｔ」が共通して付与されている。
【００７８】
引用元メインキャンペーンＩＤ１２４２は、メインキャンペーン情報１２３０のメインキャンペーンＩＤ１２３１と共通のデータであり、当該レコードのテストキャンペーン情報の引用元（従属先）であるメインキャンペーン情報を一意に特定可能な識別子である。
【００７９】
テスト車両ＶＩＮ１２４３は、車両情報１２１０のＶＩＮ１２１１や車両構成情報１２２０のＶＩＮ１２２１と共通のデータであり、当該レコードのテストキャンペーンがテストの実行時にソフトウェアを配信する車両２０（テスト車両）を特定するための情報である。
【００８０】
対象リージョン１２４４は、後述する更新ファイル名１２４５で指定される更新用ソフトウェアについて想定されている配布対象のリージョンを示す情報である。なお、対象リージョン１２４４（後述する対象リージョン１２５４も同様）に記録されるデータは、車両情報１２１０の所属リージョン１２１５と共通のデータであることが好ましい。
【００８１】
更新ファイル名１２４５は、当該レコードのテストキャンペーンが実行するテストにおいて配信する更新用ソフトウェアを一意に特定可能な識別子である。
【００８２】
適用バージョン１２４６は、車両構成情報１２２０のソフトウェアバージョン１２２４と共通のデータであり、更新ファイル名１２４５で特定される更新用ソフトウェアをインストールした後のバージョン情報である。
【００８３】
検証用ハッシュ値１２４７は、当該レコードのテストキャンペーンにおいて指定された車両２０（すなわち、テスト車両ＶＩＮ１２４３で特定されるテスト車両）が、更新対象ＥＣＵのソフトウェア更新終了後の記憶装置の領域全体に対して取得したハッシュ値を示す情報である。
【００８４】
そして更新日時１２４８は、テストキャンペーン情報１２４０の当該レコードが更新された日時を示す情報である。
【００８５】
図６は、配信キャンペーン情報の具体例を示す図である。前述したように、配信キャンペーン情報は配信キャンペーンＤＢ１２５に格納される。図６に示した配信キャンペーン情報１２５０は、配信キャンペーンＩＤ１２５１、引用元メインキャンペーンＩＤ１２５２、引用元テストキャンペーンＩＤ１２５３、対象リージョン１２５４、配信開始日時１２５５、更新対象台数１２５６、更新完了台数１２５７、及び更新日時１２５８を備えて構成されるテーブル形式のデータである。
【００８６】
配信キャンペーンＩＤ１２５１は、配信キャンペーン情報を一意に特定可能な識別子であり、本例では、ＩＤの一文字目に「Ｄ」が共通して付与されている。
【００８７】
引用元メインキャンペーンＩＤ１２５２は、メインキャンペーン情報１２３０のメインキャンペーンＩＤ１２３１と共通のデータであり、当該レコードの配信キャンペーン情報の引用元（従属先）であるメインキャンペーン情報を一意に特定可能な識別子である。また、引用元テストキャンペーンＩＤ１２５３は、テストキャンペーン情報１２４０のテストキャンペーンＩＤ１２４１と共通のデータであり、当該レコードの配信キャンペーン情報の引用元（従属先）であるテストキャンペーン情報を一意に特定可能な識別子である。
【００８８】
対象リージョン１２５４は、テストキャンペーン情報１２４０の対象リージョン１２４４と共通のデータであり、当該レコードの配信キャンペーン情報を作成する際に、引用元のテストキャンペーン情報１２４０の対象リージョン１２４４をコピーして格納される。
【００８９】
配信開始日時１２５５は、当該レコードの配信キャンペーン情報が有効となり、車両２０への更新用ソフトウェアの配信が許諾される日時を示す情報である。
【００９０】
更新対象台数１２５６は、当該レコードの配信キャンペーン情報が対象とする更新予定の車両２０の台数を示す情報である。また、更新完了台数１２５７は、当該レコードの配信キャンペーン情報が対象とする車両２０のうちソフトウェア更新が完了した台数を示す情報である。より具体的に言えば、更新完了台数１２５７は、後述する更新進捗状況情報１２６０の配信キャンペーンＩＤ１２６１が一致するレコードにおいてステータス１２６３が「更新完了」となった台数である（図７参照）。
【００９１】
そして更新日時１２５８は、配信キャンペーン情報１２５０の当該レコードが更新された日時を示す情報である。
【００９２】
なお、図４〜図６に例示したメインキャンペーン情報１２３０、テストキャンペーン情報１２４０、及び配信キャンペーン情報１２５０の各情報は、車載ソフトウェア配信システム１の管理者等によって、端末３０の入出力装置３３０を介して入力される。「車載ソフトウェア配信システム１の管理者等」とは、具体的には例えば、車載ソフトウェア配信システム１の運用者、車両２０の製造管理者、あるいは各ＥＣＵの製造管理者等が想定される。
【００９３】
図７は、更新進捗状況情報の具体例を示す図である。更新進捗状況情報は、配信キャンペーン単位で配信される更新用ソフトウェアの各車両２０におけるインストールの進捗状況を管理する情報であって、更新進捗状況ＤＢ１２６に格納される。図７に示した更新進捗状況情報１２６０は、配信キャンペーンＩＤ１２６１、ＶＩＮ１２６２、ステータス１２６３、及び更新日時１２６４を備えて構成されるテーブル形式のデータである。
【００９４】
配信キャンペーンＩＤ１２６１は、配信キャンペーン情報１２５０の配信キャンペーンＩＤ１２５１と共通のデータであり、配信キャンペーン情報を一意に特定可能な識別子である。また、ＶＩＮ１２６２は、車両情報１２１０のＶＩＮ１２１１等と共通のデータであり、当該レコードに対応する車両２０を一意に特定可能な識別子である。
【００９５】
ステータス１２６３は、当該レコードで指定された配信キャンペーンＩＤ１２６１の更新用ソフトウェアに対しての、ＶＩＮ１２６２で特定される車両２０における処理状況（進捗状況）を表す情報である。例えば図７の場合、ステータス１２６３が「更新完了」である場合は、車両２０において更新用ソフトウェアのインストールが完了したことを意味する。このとき、後述する更新日時１２６４には、「更新完了」が確認された日時（または、インストールが完了した日時でもよい）が記録される。また、ステータス１２６３が「ダウンロード完了」である場合は、車両２０において更新用ソフトウェアのダウンロードは完了したが、インストールは完了していないことを意味する。また、ステータス１２６３が「ユーザ許諾未取得」である場合は、車両２０において更新用ソフトウェアのインストールに対してユーザ（例えばドライバ）の許諾が得られていない状況であることを意味する。
【００９６】
そして更新日時１２６４は、更新進捗状況情報１２６０の当該レコードが更新された日時を示す情報である。例えば更新日時１２６４には、配信キャンペーンＩＤ１２６１（配信キャンペーンＩＤ１２５１）とＶＩＮ１２６２との組合せによるレコードが更新された日時が示される。
【００９７】
（１−３）キャンペーンの処理
本実施の形態に係る車載ソフトウェア配信システム１における各種のキャンペーン（メインキャンペーン、テストキャンペーン、配信キャンペーン）について、それぞれの作成や実行に関する処理について説明する。
【００９８】
（１−３−１）メインキャンペーン、テストキャンペーンの作成
図８は、メインキャンペーン情報及びテストキャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。図８に示す処理は、端末３０に搭載されている中央演算処理装置３１０のキャンペーン情報入出力部３１１と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０の車両管理部１１１及びキャンペーン管理部１１２とによって実行される。
【００９９】
まず、ステップＳ１０１において、キャンペーン情報入出力部３１１は、管理者による入出力装置３３０の操作に応じて、全ての車両情報１２１０、車両構成情報１２２０、及びキャンペーン情報（メインキャンペーン情報１２３０、テストキャンペーン情報１２４０、配信キャンペーン情報１２５０）をテレマティクスセンタ１０に問い合わせる。
【０１００】
ステップＳ１０１の問い合わせを受信したテレマティクスセンタ１０では、車両管理部１１１及びキャンペーン管理部１１２が、車両ＤＢ１２１、車両構成ＤＢ１２２、メインキャンペーンＤＢ１２３、テストキャンペーンＤＢ１２４、及び配信キャンペーンＤＢ１２５から、問い合わせ対象の各情報を検索し、抽出する（ステップＳ１１１）。そして、ステップＳ１１２において、車両管理部１１１及びキャンペーン管理部１１２は、Ｓ１１１で抽出した検索結果を端末３０に送信する。
【０１０１】
ステップＳ１１２で送信された検索結果を受信すると、キャンペーン情報入出力部３１１は、その検索結果を入出力装置３３０に表示する（ステップＳ１０２）。ステップＳ１０２における表示は「キャンペーン管理画面」として表示され、管理者は、キャンペーン管理画面を介して、各種のキャンペーン情報を作成（登録）したり登録済みのキャンペーン情報を修正したりすることができる。
【０１０２】
ここで、図９は、キャンペーン管理画面の一例を説明する図である。図９に示したように、キャンペーン管理画面３３１０は入出力装置３３０に表示される。図９に例示したキャンペーン管理画面３３１０は、現時点における各種のキャンペーン情報の詳細がツリー形式で可視化されている。具体的には、メインキャンペーンＩＤ「Ｍ０１２」が付された１つのメインキャンペーン情報の詳細が示され、さらに、当該メインキャンペーン情報に従属するテストキャンペーン情報として、テストキャンペーンＩＤ「Ｔ４５Ｍ０１２」または「Ｔ１３Ｍ０１２」が付された２つのテストキャンペーン情報の詳細と、配信キャンペーンＩＤ「Ｄ９８Ｍ０１２」または「Ｄ３３Ｍ０１２」が付された２つの配信キャンペーン情報の詳細とが示されている。なお、テストキャンペーン情報と配信キャンペーン情報との従属関係は、配信キャンペーン情報の詳細表示における「引用元テストキャンペーンＩＤ」を参照することによって識別可能となっている。
【０１０３】
また、図９に例示したキャンペーン管理画面３３１０には、管理者が選択可能なボタン３３１１〜３３１４が配置されている。
【０１０４】
ボタン３３１１は、メインキャンペーンを新規作成するときに選択される。具体的には、メインキャンペーンを新規作成する場合には、管理者によってボタン３３１１を選択する操作が行われることで、メインキャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、端末３０からテレマティクスセンタ１０に対してメインキャンペーン情報の作成が依頼される（後述する図８のステップＳ１０３）。
【０１０５】
また、ボタン３３１２は、配置箇所に紐付けされたメインキャンペーン情報を従属先としてテストキャンペーンを新規作成するときに選択される。具体的には、メインキャンペーンＩＤ「Ｍ０１２」のメインキャンペーンに従属するテストキャンペーンを新規作成する場合には、管理者によってボタン３３１２を選択する操作が行われることで、テストキャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、端末３０からテレマティクスセンタ１０に対してテストキャンペーン情報の作成が依頼される（後述する図８のステップＳ１０５）。
【０１０６】
また、ボタン３３１３，３３１４は、配置箇所に紐付けされたテストキャンペーンを従属先として配信キャンペーンを新規作成するときに選択される。具体的には、テストキャンペーンＩＤ「Ｔ４５Ｍ０１２」のテストキャンペーンに従属する配信キャンペーンを新規作成する場合には、管理者によってボタン３３１３を選択する操作が行われることで、配信キャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、端末３０からテレマティクスセンタ１０に対して配信キャンペーン情報の作成が依頼される（後述する図１２のステップＳ４０３）。
【０１０７】
なお、図９では図示を省略しているが、キャンペーン管理画面３３１０には、各キャンペーン情報の登録内容を修正するためのボタンが別に設けられていてもよい。
【０１０８】
メインキャンペーン情報及びテストキャンペーン情報の作成処理の説明に戻る。図８のステップＳ１０２でキャンペーン管理画面３３１０が表示された後、管理者が当画面においてボタン３３１１を選択する操作が行われると、メインキャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、キャンペーン情報入出力部３１１は、メインキャンペーン情報の作成をテレマティクスセンタ１０に依頼する（ステップＳ１０３）。
【０１０９】
ここで、メインキャンペーンを新規作成するために必要な所定の情報には、図４に例示したメインキャンペーン情報１２３０におけるＥＣＵ−ＩＤ１２３２及びクリティカルフラグ１２３３が含まれる。ＥＣＵ−１２３２については、車両構成情報１２２０から当該メインキャンペーンで更新対象とするＥＣＵのＥＣＵ−ＩＤ１２２２を選択すればよい。また、クリティカルフラグ１２３３については、当該メインキャンペーンの優先度に応じて選択すればよい。
【０１１０】
なお、本実施の形態においてキャンペーン管理画面を介してキャンペーン情報の新規作成を開始する場合の操作手順は、上述したように所定のボタンの選択に応じて別の入力画面が表示されることに限定されない。他の操作手順としては例えば、キャンペーン情報の新規作成を開始する場合に、必要とされる所定の情報（例えば、メインキャンペーンであればＥＣＵ−ＩＤ及びクリティカルフラグ）を入力したうえで、所定のボタン（例えば、ボタン３３１１）が選択されることによって、キャンペーン情報入出力部３１１がキャンペーン情報の作成をテレマティクスセンタ１０に依頼するようにしてもよい。なお、このような操作手順は、メインキャンペーン（ステップＳ１０３）だけでなく、テストキャンペーン（後述する図８のステップＳ１０５）や配信キャンペーン（後述する図１２のステップＳ４０３）の新規作成でも同様に適用可能である。
【０１１１】
ステップＳ１０３におけるメインキャンペーン情報の作成依頼を受信したキャンペーン管理部１１２は、ステップＳ１０３の入力情報に基づいて、メインキャンペーンＤＢ１２３に新しいメインキャンペーン情報１２３０のレコードを作成し、登録する（ステップＳ１１３）。そして、新規作成したメインキャンペーン情報１２３０の作成結果を端末３０に送信する（ステップＳ１１４）。
【０１１２】
そして、メインキャンペーン情報１２３０の作成結果を受信したキャンペーン情報入出力部３１１は、当該作成結果を入出力装置３３０に表示する（ステップＳ１０４）。このとき、ステップＳ１０３の入力情報を合わせて表示してもよい。
【０１１３】
次に、管理者は、キャンペーン管理画面を介して、ステップＳ１０４までの処理で登録されたメインキャンペーンに従属するテストキャンペーンを新規に作成することができる。具体的には例えば、管理者がキャンペーン管理画面においてボタン３３１２を選択する操作が行われると、テストキャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、キャンペーン情報入出力部３１１は、テストキャンペーン情報の作成をテレマティクスセンタ１０に依頼する（ステップＳ１０５）。
【０１１４】
ここで、テストキャンペーンを新規作成するために必要な所定の情報には、図５に例示したテストキャンペーン情報１２４０における引用元メインキャンペーンＩＤ１２４２、及びテスト車両ＶＩＮ１２４３が含まれる。引用元メインキャンペーンＩＤ１２４２については、ステップＳ１０４でテレマティクスセンタ１０から受信したメインキャンペーンＩＤ１２３１を用いることができる。また、テスト車両ＶＩＮ１２４３については、ステップＳ１０２で受信した検索結果のうちの車両情報１２１０におけるＶＩＮ１２１１から選択することができる。
【０１１５】
なお、ステップＳ１０５でテスト車両ＶＩＮ１２４３として選択可能なＶＩＮ１２１１は、当該ＶＩＮ１２１１に紐付けられた車両情報１２１０のレコードにおいてテスト車両フラグ１２１６が「Ｔｒｕｅ」であるものに限定する等、全ての車両２０から選択可能としない制約を設けることが好ましい。このようにテスト車両ＶＩＮ１２４３として選択可能な車両２０を制約することにより、テストキャンペーンにおけるテスト効率やテスト結果の信頼性を高めることに期待できる。
【０１１６】
そして、ステップＳ１０５におけるテストキャンペーン情報の作成依頼を受信したキャンペーン管理部１１２は、ステップＳ１０５の入力情報に基づいて、テストキャンペーンＤＢ１２４に新しいテストキャンペーン情報１２４０を作成し、登録する（ステップＳ１１５）。そして、新規作成したテストキャンペーン情報１２４０の作成結果を端末３０に送信する（ステップＳ１１６）。
【０１１７】
そして、テストキャンペーン情報１２４０の作成結果を受信したキャンペーン情報入出力部３１１は、当該作成結果を入出力装置３３０に表示する（ステップＳ１０６）。このとき、ステップＳ１０５の入力情報を合わせて表示してもよい。
【０１１８】
その後、管理者によって、ステップＳ１０６までの処理で登録されたテストキャンペーン情報１２４０にテスト用の更新用ソフトウェアを登録するための操作が行われると、キャンペーン情報入出力部３１１は、テストキャンペーンへの更新用ソフトウェアの登録をテレマティクスセンタ１０に依頼する（ステップＳ１０７）。
【０１１９】
具体的には例えば、管理者は、端末３０の記憶装置３２０から予め準備しておいた更新用ソフトウェアを抽出し、当該更新用ソフトウェアの対象リージョン、更新ファイル名、及び適用バージョン（それぞれ、図５に示したテストキャンペーン情報１２４０における対象リージョン１２４４、更新ファイル名１２４５、及び適用バージョン１２４６に対応する）を入力するとともに、テストキャンペーンへの更新用ソフトウェアの登録を指示する操作（例えば、キャンペーン管理画面における所定ボタンの選択等）を行う。そして、当該操作に基づいて、キャンペーン情報入出力部３１１は、入力された情報をテレマティクスセンタ１０に送信する。
【０１２０】
そして、ステップＳ１０７における更新用ソフトウェアの登録依頼を受信したキャンペーン管理部１１２は、ステップＳ１０７の入力情報に基づいて、テストキャンペーンＤＢ１２４に格納されたテストキャンペーン情報１２４０の対象レコードに、更新用ソフトウェアに関する情報（ソフトウェア情報）を登録する（ステップＳ１１７）。そして、ステップＳ１１７の登録が成功し、テストキャンペーンにおける更新用ソフトウェアの配信準備が完了した旨を、作成結果として端末３０に送信する（ステップＳ１１８）。
【０１２１】
最後に、更新用ソフトウェアの作成結果を受信したキャンペーン情報入出力部３１１は、当該作成結果を入出力装置３３０に表示する（ステップＳ１０８）。
【０１２２】
以上、図８に示した各ステップの処理が行われることによって、メインキャンペーン情報１２３０及びテストキャンペーン情報１２４０が作成され、テストキャンペーンにおけるテスト用の更新用ソフトウェアの配信準備が整う。
【０１２３】
（１−３−２）テストキャンペーンの実行
図１０及び図１１は、テストキャンペーンに基づく更新用ソフトウェアの検証処理の処理手順の一例を示すシーケンス図（その１，その２）である。このうち、図１０には、車両２０がテレマティクスセンタ１０から更新用ソフトウェアをダウンロードする処理が示される。また、図１１には、図１０に示したダウンロードの後、車両２０が更新用ソフトウェアを対象のＥＣＵにインストールし、その結果をテレマティクスセンタ１０に通知する処理が示される。
【０１２４】
以下では、図１０及び図１１を参照しながら、テストキャンペーンの実行の流れを説明する。なお、図１０及び図１１を参照した以下の説明では、車両２０は、図８のステップＳ１０５で指定されたテスト車両ＶＩＮ１２４３に相当する車両（すなわちテスト車両）であるとし、管理者による操作を伴う図８の処理が行われた後に、実際に、テストキャンペーンによって更新用ソフトウェアの検証作業が実施されるケースを想定しているとする。
【０１２５】
まず、図１０を参照しながら、テストキャンペーンに基づく更新用ソフトウェアのダウンロード処理を説明する。図１０に示した処理は、車両２０に搭載されているソフトウェア更新装置２１０のキャンペーン確認部２１２及び更新用ソフトウェア要求部２１３と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０のキャンペーン管理部１１２及び更新用ソフトウェア配信部１１３とによって実行される。
【０１２６】
図１０のステップＳ２０１において、車両２０のキャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン始動（ＯＮ状態）を検知する。エンジン始動を検知すると、キャンペーン確認部２１２は、当該車両２０のＶＩＮ（車両情報１２１０のＶＩＮ１２１１）についてキャンペーンの有無をテレマティクスセンタ１０に問い合わせる（ステップＳ２０２）。
【０１２７】
ステップＳ２０２の問い合わせを受けたテレマティクスセンタ１０では、キャンペーン管理部１１２が、受信したＶＩＮがテストキャンペーン情報１２４０のテスト車両ＶＩＮ１２４３に登録されているか否かを確認する（ステップＳ２１１）。そして、キャンペーン管理部１１２は、ステップＳ２１１の確認結果（検索結果）を車両２０に送信する（ステップＳ２１２）。ここでの検索結果としては、ステップＳ２１１において該当するレコードがあった場合は、当該レコードのテストキャンペーン情報１２４０を送信し、該当するレコードがなかった場合は、テストキャンペーン情報が登録されていない旨を送信する。
【０１２８】
テレマティクスセンタ１０からの検索結果を受信した車両２０では、キャンペーン確認部２１２が、検索結果にテストキャンペーン情報１２４０が含まれているかを確認し（ステップＳ２０４）、テストキャンペーン情報１２４０が含まれていない場合には（ステップＳ２０４のＮＯ）、ダウンロードする更新用ソフトウェアが存在しないことから、処理を終了する。一方、テストキャンペーン情報１２４０が含まれていた場合には（ステップＳ２０４のＹＥＳ）、更新用ソフトウェア要求部２１３が、当該テストキャンペーン情報１２４０の更新ファイル名１２４５で特定される更新用ソフトウェアの提供をテレマティクスセンタ１０に要求する（ステップＳ２０５）。
【０１２９】
そして、テレマティクスセンタ１０側では、ステップＳ２０５の要求を受信すると（ステップＳ２１３）、更新用ソフトウェア配信部１１３が、指定された更新ファイル名１２４５に基づいて、ソフトウェアＤＢ１２７から要求された更新用ソフトウェアを抽出し、車両２０に送信する（ステップＳ２１４）。
【０１３０】
ステップＳ２１４で送信された更新用ソフトウェアは、車両２０で受信されてダウンロードが開始され（ステップＳ２０６）、更新用ソフトウェア要求部２１３が、当該更新用ソフトウェアのダウンロードデータを記憶装置２１５に蓄積する（ステップＳ２０７）。そして、更新用ソフトウェアのダウンロードが完了すると、更新用ソフトウェア要求部２１３は、ダウンロード完了をテレマティクスセンタ１０に通知する（ステップＳ２０８）。
【０１３１】
そしてテレマティクスセンタ１０では、ステップＳ２０８のダウンロード完了通知を受信（受領）すると、キャンペーン管理部１１２が、対象のテストキャンペーン情報１２４０の検証用ハッシュ値１２４７に対して、ハッシュ値の代わりに、更新進捗状況情報１２６０のステータス１２６３と共通する情報（具体的には、「ダウンロード完了」に相当する情報）を一時的に格納する（ステップＳ２１５）。この処理によって、テストキャンペーンがダウンロード完了まで進捗したことをテストキャンペーン情報１２４０で管理することができる。
【０１３２】
その後、キャンペーン管理部１１２は、ダウンロードした更新用ソフトウェアのインストールの開始命令を車両２０に送信する（ステップＳ２１６）。
【０１３３】
そしてテレマティクスセンタ１０では、ステップＳ２１６のインストール開始命令を受信（受領）すると、キャンペーン確認部２１２は、エンジンが停止状態（ＯＦＦ状態）になるまで、更新用ソフトウェアのインストール開始を待機する待機状態に移行する（ステップＳ２０９）。キャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン停止を検知することができる。その後、エンジンが停止状態になると、図１１に示すようにインストール処理が開始される。
【０１３４】
次に、図１１を参照しながら、テストキャンペーンに基づく更新用ソフトウェアのインストール処理及び結果通知処理を説明する。図１１に示した処理は、車両２０に搭載されているソフトウェア更新装置２１０のキャンペーン確認部２１２及びＥＣＵソフトウェア更新部２１４と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０のキャンペーン管理部１１２とによって実行される。
【０１３５】
図１１のステップＳ３０１において、車両２０のキャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン停止（ＯＦＦ状態）を検知する。エンジン停止を検知すると、キャンペーン確認部２１２は、記憶装置２１５に更新用ソフトウェアが格納されているか、すなわちテストキャンペーン情報が存在するか否かを確認する（ステップＳ３０２）。
【０１３６】
ステップＳ３０２の確認においてテストキャンペーン情報が存在しない場合には（ステップＳ３０２のＮＯ）、インストールする更新用ソフトウェアが存在しないことから、処理を終了する。一方、テストキャンペーン情報が存在した場合には（ステップＳ３０２のＹＥＳ）、キャンペーン確認部２１２は、更新対象ＥＣＵのソフトウェアインストールの開始をテレマティクスセンタ１０に通知する（ステップＳ３０３）。
【０１３７】
ステップＳ３０３のインストール開始通知を受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、対象のテストキャンペーン情報１２４０の検証用ハッシュ値１２４７に対して、ハッシュ値の代わりに、更新進捗状況情報１２６０のステータス１２６３と共通する情報（具体的には、「インストール開始」に相当する情報）を一時的に格納する（ステップＳ３１１）。この処理によって、テストキャンペーンがインストール開始まで進捗したことをテストキャンペーン情報１２４０で管理することができる。
【０１３８】
そして、車両２０側では、ＥＣＵソフトウェア更新部２１４が、更新対象ＥＣＵのソフトウェアインストールを実行し、当該ＥＣＵの記憶装置を上書きする（ステップＳ３０４）。このとき、ＥＣＵソフトウェア更新部２１４は、更新対象ＥＣＵから更新の成否情報に加えて、当該ＥＣＵの記憶装置領域を１つのバイナリデータとみなして作成したハッシュ値を受け取る。そしてＥＣＵソフトウェア更新部２１４は、更新対象ＥＣＵから取得した更新の成否情報と、更新が成功した場合にはハッシュ値とを、テレマティクスセンタ１０に送信する（ステップＳ３０５）。
【０１３９】
そして、ステップＳ３０５で送信された更新の成否情報とハッシュ値とを受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、対象のテストキャンペーン情報１２４０の検証用ハッシュ値１２４７を当該ハッシュ値に更新する（ステップＳ３１２）。
【０１４０】
なお、車両２０におけるソフトウェア更新が失敗していた場合（更新の失敗情報を受信した場合）には、キャンペーン管理部１１２は、対象のテストキャンペーン情報１２４０の検証用ハッシュ値１２４７に、更新進捗状況情報１２６０のステータス１２６３と共通する情報（具体的には、「テストキャンペーン失敗」に相当する情報）を一時的に格納することによって、テストキャンペーンが失敗したことを管理する。このような場合には、管理者が再度、修正版の更新用ソフトウェアをテストキャンペーンに登録して（図８のステップＳ１０７参照）、図１０及び図１１の処理を再実行することが考えられる。そして、再実行の結果、ソフトウェア更新が成功した場合には、車両２０から更新の成否情報とともに送信されるハッシュ値を用いて、検証用ハッシュ値１２４７を更新すればよい。
【０１４１】
以上、図１０及び図１１に示した各ステップの処理が行われることによって、テストキャンペーンの実行が完了する。そして、テストキャンペーンにおけるテストが成功に終わった場合には、後述するように、配信キャンペーンの作成（図１２）を経て、配信キャンペーンの実行（図１３，図１４）が可能な状況となる。
【０１４２】
（１−３−３）配信キャンペーンの作成
図１２は、配信キャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。図１２に示す処理は、端末３０に搭載されている中央演算処理装置３１０のキャンペーン情報入出力部３１１と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０の車両管理部１１１及びキャンペーン管理部１１２とによって実行される。
【０１４３】
まず、ステップＳ４０１において、キャンペーン情報入出力部３１１は、管理者による入出力装置３３０の操作に応じて、全ての車両情報１２１０、車両構成情報１２２０、及びキャンペーン情報（メインキャンペーン情報１２３０、テストキャンペーン情報１２４０、配信キャンペーン情報１２５０）をテレマティクスセンタ１０に問い合わせる。
【０１４４】
ステップＳ４０１の問い合わせを受信したテレマティクスセンタ１０では、車両管理部１１１及びキャンペーン管理部１１２が、車両ＤＢ１２１、車両構成ＤＢ１２２、メインキャンペーンＤＢ１２３、テストキャンペーンＤＢ１２４、及び配信キャンペーンＤＢ１２５から、問い合わせ対象の各情報を検索し、抽出する（ステップＳ４１１）。そして、ステップＳ４１２において、車両管理部１１１及びキャンペーン管理部１１２は、Ｓ４１１で抽出した検索結果を端末３０に送信する。
【０１４５】
ステップＳ４１２で送信された検索結果を受信すると、キャンペーン情報入出力部３１１は、その検索結果を入出力装置３３０に表示する（ステップＳ４０２）。ステップＳ４０２における表示は、例えば図９に例示したキャンペーン管理画面３３１０のように表示される。図９を参照して前述したように、管理者は、キャンペーン管理画面３３１０を介して、各種のキャンペーン情報を作成（登録）したり登録済みのキャンペーン情報を修正したりすることができる。
【０１４６】
ステップＳ４０２においてキャンペーン管理画面３３１０が表示された後、管理者が当画面においてボタン３３１３（またはボタン３３１４）を選択する操作が行われると、配信キャンペーンを作成するために必要な所定の情報の入力画面が表示される。そして、管理者による上記所定の情報の入力が完了すると、入力情報に基づいて、キャンペーン情報入出力部３１１は、配信キャンペーン情報の作成をテレマティクスセンタ１０に依頼する（ステップＳ４０３）。
【０１４７】
ここで、配信キャンペーンを新規作成するために必要な所定の情報には、図６に例示した配信キャンペーン情報１２５０における引用元メインキャンペーンＩＤ１２５２、引用元テストキャンペーンＩＤ１２５３、対象リージョン１２５４、及び配信開始日時１２５５が含まれる。このうち、引用元テストキャンペーンＩＤ１２５３については、ステップＳ４０２で受信した検索結果から当該配信キャンペーンが従属するテストキャンペーンのテストキャンペーン情報１２４０を１つ選択し、そのテストキャンペーンＩＤ１２４１を選択すればよい。また、引用元メインキャンペーンＩＤ１２５２及び対象リージョン１２５４については、上記選択したテストキャンペーン情報１２４０の引用元メインキャンペーンＩＤ１２４２及び対象リージョン１２５４を引き当てればよい。そして、配信開始日時１２５５については、管理者が任意で設定すればよい。
【０１４８】
なお、図１２に示す配信キャンペーン情報の作成処理においては、ステップＳ４０３で配信キャンペーン情報の作成依頼が行われただけでは、配信キャンペーン情報は作成されず、テレマティクスセンタ１０における以降の処理（ステップＳ４１３〜Ｓ４１７）によって、配信キャンペーン作成前の最終確認用の情報が抽出される。
【０１４９】
ステップＳ４０３における配信キャンペーン情報の作成依頼を受信したキャンペーン管理部１１２は、ステップＳ４０３の入力情報に基づいて、まず、テストキャンペーンＤＢ１２４に格納されている引用元のテストキャンペーン情報１２４０を検索する（ステップＳ４１３）。さらにキャンペーン管理部１１２は、引用元のテストキャンペーン情報１２４０が存在し、かつ、当該レコードの検証用ハッシュ値１２４７にステータス（例えば、「ダウンロード完了」や「インストール開始」等に相当する情報）ではなくハッシュ値が格納（蓄積）されているかを確認する（ステップＳ４１４）。
【０１５０】
ステップＳ４１４において指定したテストキャンペーン情報１２４０にハッシュ値が蓄積されていない場合には（ステップＳ４１４のＮＯ）、テストキャンペーンにおける更新用ソフトウェアの検証が完了していないことを意味するので、キャンペーン管理部１１２は配信キャンペーン情報の作成を取り止め、その結果を作成結果として端末３０に送信する（ステップＳ４２０）。
【０１５１】
一方、ステップＳ４１４において指定したテストキャンペーン情報１２４０にハッシュ値が蓄積されていた場合には（ステップＳ４１４のＹＥＳ）、テストキャンペーンにおける更新用ソフトウェアの検証が正常に完了していることを意味するので、キャンペーン管理部１１２は、ステップＳ４１５の処理を行う。
【０１５２】
ステップＳ４１５では、キャンペーン管理部１１２は、テストキャンペーン情報１２４０から得られる引用元メインキャンペーンＩＤ１２４２を用いて、メインキャンペーンＤＢ１２３に格納されている引用元のメインキャンペーン情報１２３０を検索し、このメインキャンペーン情報１２３０からＥＣＵ−ＩＤ１２３２を抽出する。ステップＳ４１３で検索された引用元のテストキャンペーン情報１２４０とステップＳ４１５で検索された引用元のメインキャンペーン情報１２３０は、何れも新規作成しようとする配信キャンペーン情報が従属するキャンペーン情報である。
【０１５３】
次に、ステップＳ４１６において、キャンペーン管理部１１２は、車両ＤＢ１２１に格納されている車両情報１２１０及び車両構成ＤＢ１２２に格納されている車両構成情報１２２０を検索し、車両構成情報１２２０のＥＣＵ−ＩＤ１２２２が引用元のメインキャンペーン情報１２３０のＥＣＵ−ＩＤ１２３２と一致し、かつ、車両情報１２１０の所属リージョン１２１５が引用元のテストキャンペーン情報１２４０の対象リージョン１２４４と一致する車両のＶＩＮ１２１１（ＶＩＮ１２２１）を全て抽出する。
【０１５４】
ステップＳ４１６で抽出された車両のＶＩＮ１２１１（ＶＩＮ１２２１）は、配信キャンペーンの対象となる車両のＶＩＮに相当するため、キャンペーン管理部１１２は、これらをまとめた一覧（ＶＩＮ一覧）を端末３０に送信する（ステップＳ４１７）。
【０１５５】
そして、ＶＩＮ一覧を受信したキャンペーン情報入出力部３１１は、受信したＶＩＮ一覧を入出力装置３３０に表示する（ステップＳ４０４）。ステップＳ４０４の表示によって、配信キャンペーン作成前の最終確認用の情報が管理者に示される。これに対して管理者は、表示されたＶＩＮ一覧を確認し、配信キャンペーンの対象車両として問題がないと判断した場合に、配信キャンペーンの作成決定を通知するための所定の操作を行う。当該操作が行われると、キャンペーン情報入出力部３１１は、配信キャンペーンの作成決定通知をテレマティクスセンタ１０に送信する（ステップＳ４０５）。
【０１５６】
ステップＳ４０５による配信キャンペーンの作成決定通知を受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、ステップＳ４１３で受信した情報に基づいて、配信キャンペーンＤＢ１２５に新しい配信キャンペーン情報１２５０のレコードを作成する（ステップＳ４１８）。
【０１５７】
さらに、キャンペーン管理部１１２は、ステップＳ４１６で抽出したＶＩＮ一覧に基づいて、更新進捗状況ＤＢ１２６にそれぞれのＶＩＮで個別の更新進捗状況情報１２６０のレコードを作成することによって、配信キャンペーンの実行における進捗状況（ステータス）を対象とする車両２０の１台ごとに管理できるようにする（ステップＳ４１９）。またこのとき、対象の車両２０の総台数をメインキャンペーン情報１２３０の更新対象台数１２３４に記録し、更新完了台数１２３５には「０」を記録する。
【０１５８】
ステップＳ４１９の処理の完了後、キャンペーン管理部１１２は、新規作成した配信キャンペーン情報１２５０及び更新したメインキャンペーン情報１２３０に関する作成結果を端末３０に送信する（ステップＳ４２０）。
【０１５９】
そして、ステップＳ４２０で送信された作成結果を受信したテレマティクスセンタ１０では、キャンペーン情報入出力部３１１が、当該作成結果を入出力装置３３０に表示する（ステップＳ４０６）。
【０１６０】
以上、図１２に示した各ステップの処理が行われることによって、メインキャンペーン情報１２３０及びテストキャンペーン情報１２４０に従属する配信キャンペーン情報１２５０が作成され、配信キャンペーンにおける更新用ソフトウェアの配信準備が整う。
【０１６１】
（１−３−４）配信キャンペーンの実行
図１３及び図１４は、配信キャンペーンに基づく更新用ソフトウェアの配信処理の処理手順の一例を示すシーケンス図（その１，その２）である。このうち、図１３には、車両２０がテレマティクスセンタ１０から更新用ソフトウェアをダウンロードする処理が示される。また、図１４には、図１３に示したダウンロードの後、車両２０が更新用ソフトウェアを対象ＥＣＵにインストールし、その結果をテレマティクスセンタ１０に通知する処理が示される。
【０１６２】
以下では、図１３及び図１４を参照しながら、配信キャンペーンの実行の流れを説明する。
【０１６３】
まず、図１３を参照しながら、配信キャンペーンに基づく更新用ソフトウェアのダウンロード処理を説明する。図１３に示した処理は、車両２０に搭載されているソフトウェア更新装置２１０のキャンペーン確認部２１２及び更新用ソフトウェア要求部２１３と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０のキャンペーン管理部１１２、更新用ソフトウェア配信部１１３及びジオコーディング処理部１１４とによって実行される。
【０１６４】
図１３のステップＳ５０１において、車両２０のキャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン始動（ＯＮ状態）を検知する。エンジン始動を検知すると、キャンペーン確認部２１２は、当該車両２０のＶＩＮ（車両情報１２１０のＶＩＮ１２１１）について配信キャンペーンの有無（配信キャンペーンによるソフトウェアのアップデートの有無）をテレマティクスセンタ１０に問い合わせる（ステップＳ５０２）。またステップＳ５０２では、キャンペーン確認部２１２は、位置測位装置２１６を用いて車両２０の現在の位置情報を確認し、キャンペーン問い合わせとともにテレマティクスセンタ１０に送信する。
【０１６５】
ステップＳ５０２の問い合わせを受けたテレマティクスセンタ１０では、キャンペーン管理部１１２が、送信元の車両２０のＶＩＮを用いて車両情報１２１０を検索し、同じ値のＶＩＮ１２１１を有するレコードにおける最終停車位置１２１３を、受信した位置情報によって更新する（ステップＳ５１１）。さらにステップＳ５１１では、ジオコーディング処理部１１４が、地図ＤＢ１２８に格納されている地図データを用いて、受信した位置情報から住所を特定し、特定した住所が含まれるリージョンによって所属リージョン１２１５を更新する。
【０１６６】
そして、キャンペーン管理部１１２は、更新進捗状況情報１２６０を検索し、ＶＩＮ１２６２が送信元の車両２０のＶＩＮと一致するレコードが存在するか否かを確認する（ステップＳ５１２）。そして、キャンペーン管理部１１２は、ステップＳ５１２の確認結果（検索結果）を車両２０に送信する（ステップＳ５１３）。
【０１６７】
ここでステップＳ５１２の検索結果について詳しく説明すると、ステップＳ５１１において更新進捗状況情報１２６０に該当するレコード（ＶＩＮが一致するレコード）があった場合は、配信キャンペーン有りの検索結果として、キャンペーン管理部１１２は、当該レコードの配信キャンペーンＩＤ１２６１に対応する配信キャンペーン情報１２５０と、当該レコードのＶＩＮ１２６２に対応する車両情報１２１０に含まれるサイレントフラグ１２１７と、上記配信キャンペーン情報１２５０の引用元テストキャンペーンＩＤ１２５３に対応するテストキャンペーン情報１２４０に含まれる更新ファイル名１２４５と、上記配信キャンペーン情報１２５０の引用元メインキャンペーンＩＤ１２５２に対応するメインキャンペーン情報１２３０に含まれるクリティカルフラグ１２３３と、を検索結果として車両２０に送信する。一方、ステップＳ５１１において更新進捗状況情報１２６０に該当するレコード（ＶＩＮが一致するレコード）がなかった場合、キャンペーン管理部１１２は、配信キャンペーンがない旨の検索結果を送信する。
【０１６８】
なお、ステップＳ５１２の検索結果について、ステップＳ５１１において更新進捗状況情報１２６０にＶＩＮが一致するレコードがあったとしても、当該レコードに基づいて抽出される各キャンペーン情報におけるリージョン（テストキャンペーン情報１２４０の対象リージョン１２４４や配信キャンペーン情報１２５０の対象リージョン１２５４）が、送信元の車両２０のリージョン（車両情報１２１０の所属リージョン１２１５）と一致しない場合には、キャンペーン管理部１１２は、配信キャンペーンがない旨の検索結果を送信するようにすることが好ましい。
【０１６９】
テレマティクスセンタ１０からの検索結果を受信した車両２０では（ステップＳ５０３）、キャンペーン確認部２１２が、検索結果に配信キャンペーン情報１２５０が含まれているかを確認し（ステップＳ５０４）、配信キャンペーン情報１２５０が含まれていない場合には（ステップＳ５０４のＮＯ）、ダウンロードする更新用ソフトウェアが存在しないことから、処理を終了する。一方、配信キャンペーン情報１２５０が含まれていた場合には（ステップＳ５０４のＹＥＳ）、更新用ソフトウェア要求部２１３は、上記配信キャンペーン情報１２５０と合わせて受信したテストキャンペーン情報１２４０の更新ファイル名１２４５によって特定される更新用ソフトウェアの提供をテレマティクスセンタ１０に要求する（ステップＳ５０５）。
【０１７０】
そして、テレマティクスセンタ１０側では、ステップＳ５０５の要求を受信すると（ステップＳ５１４）、更新用ソフトウェア配信部１１３が、指定された更新ファイル名１２４５に基づいて、ソフトウェアＤＢ１２７から要求された更新用ソフトウェアを抽出し、車両２０に送信する（ステップＳ５１５）。
【０１７１】
ステップＳ５１５で送信された更新用ソフトウェアは、車両２０で受信されてダウンロードが開始され（ステップＳ５０６）、キャンペーン管理部１１２が、当該更新用ソフトウェアのダウンロードデータを記憶装置２１５に蓄積する（ステップＳ５０７）。そして、更新用ソフトウェアのダウンロードが完了すると、キャンペーン管理部１１２は、ダウンロード完了をテレマティクスセンタ１０に通知する（ステップＳ５０８）。
【０１７２】
そしてテレマティクスセンタ１０では、ステップＳ５０８のダウンロード完了通知を受信（受領）すると、キャンペーン管理部１１２が、更新進捗状況情報１２６０の該当するレコードのステータス１２６３に、配信キャンペーンがダウンロード完了まで進捗したことを登録する（ステップＳ５１６）。
【０１７３】
その後、キャンペーン管理部１１２は、ダウンロードした更新用ソフトウェアのインストールの開始命令を車両２０に送信する（ステップＳ５１７）。
【０１７４】
そしてテレマティクスセンタ１０では、ステップＳ５１６のインストール開始命令を受信（受領）すると、キャンペーン確認部２１２は、エンジンが停止状態（ＯＦＦ状態）になるまで、更新用ソフトウェアのインストール開始を待機する待機状態に移行する（ステップＳ５０９）。キャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン停止を検知することができる。その後、エンジンが停止状態になると、図１４に示すようにインストール処理が開始される。
【０１７５】
次に、図１４を参照しながら、配信キャンペーンに基づく更新用ソフトウェアのインストール処理及び結果通知処理を説明する。図１４に示した処理は、車両２０に搭載されているソフトウェア更新装置２１０のキャンペーン確認部２１２及びＥＣＵソフトウェア更新部２１４と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０のキャンペーン管理部１１２とによって実行される。
【０１７６】
図１４のステップＳ６０１において、車両２０のキャンペーン確認部２１２は、エンジンＥＣＵ２４１から得られる情報を用いてエンジン停止（ＯＦＦ状態）を検知する。エンジン停止を検知すると、キャンペーン確認部２１２は、記憶装置２１５に更新用ソフトウェアが格納されているか、すなわち配信キャンペーン情報が存在するか否かを確認する（ステップＳ６０２）。
【０１７７】
ステップＳ６０２の確認において配信キャンペーン情報が存在しない場合には（ステップＳ６０２のＮＯ）、インストールする更新用ソフトウェアが存在しないことから、今回のソフトウェア更新処理を終了し、最後に車両２０の位置測位装置２１６から現在の位置情報を取得して最終停車位置としてテレマティクスセンタ１０に送信する（ステップＳ６１１）。
【０１７８】
一方、ステップＳ６０２の確認において配信キャンペーン情報が存在した場合には（ステップＳ６０２のＹＥＳ）、キャンペーン確認部２１２は、配信キャンペーンに基づく更新用ソフトウェアのダウンロード処理のなかでテレマティクスセンタ１０から受信したサイレントフラグ１２１７（図１３のステップＳ５０３参照）が「Ｔｒｕｅ」であるか否かを確認する（ステップＳ６０３）。サイレントフラグ１２１７が「Ｔｒｕｅ」であった場合には（ステップＳ６０３のＹＥＳ）、ソフトウェア更新に対する車両２０のドライバへの告知は不要であると判断し、以降のステップＳ６０４〜Ｓ６０６の処理を行わずにステップＳ６０７に進む。一方、サイレントフラグ１２１７が「Ｆａｌｓｅ」であった場合には（ステップＳ６０３のＮＯ）、キャンペーン確認部２１２は、ソフトウェア更新に対する車両２０のドライバへの告知（これから更新用ソフトウェアのインストールを開始すること）をナビゲーション端末２３０の入出力装置２３４に表示させる（ステップＳ６０４）。
【０１７９】
次に、キャンペーン確認部２１２は、配信キャンペーンに基づく更新用ソフトウェアのダウンロード処理のなかでテレマティクスセンタ１０から受信したクリティカルフラグ１２３３（図１３のステップＳ５０３参照）が「Ｔｒｕｅ」であるか否かを確認する（ステップＳ６０５）。クリティカルフラグ１２３３が「Ｔｒｕｅ」であった場合には（ステップＳ６０５のＹＥＳ）、ソフトウェア更新の緊急性が高く、車両２０のドライバにソフトウェア更新の拒否権がないと判断し、ステップＳ６０６の処理を行わずにステップＳ６０７に進む。一方、クリティカルフラグ１２３３が「Ｆａｌｓｅ」であった場合には（ステップＳ６０５のＮＯ）、キャンペーン確認部２１２は、ソフトウェア更新を「これから実施する」か、または「後で実施する」かの選択肢をナビゲーション端末２３０の入出力装置２３４に表示させて、車両２０のドライバから更新用ソフトウェアのインストールに対する許諾を取得する（ステップＳ６０６）。
【０１８０】
ステップＳ６０６においてドライバが「後で実施する」ことを選択した場合は（ステップＳ６０６のＮＯ）、インストールの許諾を得られなかったため、車両２０における今回のソフトウェア更新処理を終了し、最後に車両２０の位置測位装置２１６から現在の位置情報を取得して最終停車位置としてテレマティクスセンタ１０に送信する（ステップＳ６１１）。この場合、次回のエンジン停止時に、改めて、ステップＳ６０６によるインストールの実行許諾が取得される。
【０１８１】
ステップＳ６０６においてドライバが「これから実施する」ことを選択した場合は（ステップＳ６０６のＹＥＳ）、キャンペーン確認部２１２は、更新対象ＥＣＵのソフトウェアインストールの開始をテレマティクスセンタ１０に通知する（ステップＳ６０７）。
【０１８２】
ステップＳ６０７のインストール開始通知を受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、更新進捗状況情報１２６０の該当するレコードのステータス１２６３に、配信キャンペーンがインストール開始まで進捗したことを登録する（ステップＳ６２１）。
【０１８３】
そして、車両２０側では、ＥＣＵソフトウェア更新部２１４が、更新対象ＥＣＵのソフトウェアインストールを実行し、当該ＥＣＵの記憶装置を上書きする（ステップＳ６０８）。このとき、ＥＣＵソフトウェア更新部２１４は、更新対象ＥＣＵから更新の成否情報に加えて、当該ＥＣＵの記憶装置領域を１つのバイナリデータとみなして作成したハッシュ値を受け取る。そしてＥＣＵソフトウェア更新部２１４は、更新対象ＥＣＵから取得した更新の成否情報と、更新が成功した場合にはハッシュ値とを、テレマティクスセンタ１０に送信する（ステップＳ６０９）。
【０１８４】
そして、ステップＳ６０９で送信された更新の成否情報とハッシュ値とを受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、更新進捗状況情報１２６０の該当するレコードのステータス１２６３に、配信キャンペーンがインストール完了まで進捗したことを登録する（ステップＳ６２２）。
【０１８５】
さらに、キャンペーン管理部１１２は、ステップＳ６２２で登録した更新進捗状況情報１２６０のレコードから配信キャンペーンＩＤ１２６１を抽出し、当該配信キャンペーンＩＤ１２６１に対応する配信キャンペーン情報１２５０から引用元テストキャンペーンＩＤ１２５３を抽出し、当該引用元テストキャンペーンＩＤ１２５３と同値のテストキャンペーンＩＤ１２４１を有するテストキャンペーン情報１２４０に含まれる検証用ハッシュ値１２４７を抽出する。そして、キャンペーン管理部１１２は、この抽出した検証用ハッシュ値１２４７と、ステップＳ６２２で車両２０から受信したハッシュ値とを比較する（ステップＳ６２３）。そして、キャンペーン管理部１１２は、ステップＳ６２３におけるハッシュ値の比較結果を車両２０に送信する（ステップＳ６２４）。
【０１８６】
そして、テレマティクスセンタ１０からのハッシュ値の比較結果を受信した車両２０では、キャンペーン確認部２１２が、当該比較結果に応じて車両２０の制御を実施する（ステップＳ６１０）。詳しく説明すると、２つのハッシュ値が同値であった場合には、配信キャンペーンの更新用ソフトウェアが、テストキャンペーンによる検証時と同じく正常にインストールされたことを意味するため、車両２０に対して特段の制御を実施しない。一方、２つのハッシュ値が同値ではなかった場合には、配信キャンペーンの更新用ソフトウェアが正常にインストールされていないことを意味するため、車両２０に対してインストール失敗時のために予め定められた所定の制御を実施する。具体的には例えば、更新用ソフトウェアのインストール（ステップＳ６０８）を再度開始したり、ナビゲーション端末２３０の入出力装置２３４に問い合わせ先の情報を表示したりする等が考えられる。これらインストール失敗時の所定の制御は上記例に限定されず、他にも例えば、車両２０のエンジンを停止させる等の制御を実施するようにしてもよい。
【０１８７】
ステップＳ６１０において車両２０で何れの制御が実施された場合も、その後、キャンペーン確認部２１２は、最後に車両２０の位置測位装置２１６から現在の位置情報を取得して最終停車位置としてテレマティクスセンタ１０に送信する（ステップＳ６１１）。
【０１８８】
そして、最終停車位置を受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、対象車両２０のＶＩＮ１２１１を有する車両情報１２１０のレコードを車両ＤＢ１２１から抽出し、受信した最終停車位置に基づいて、当該レコードにおける最終停車位置１２１３及び所属リージョン１２１５を更新する（ステップＳ６２５）。なお、所属リージョン１２１５の更新では、受信した最終停車位置に基づいて特定される現在のリージョンによって上書きされるが、このようなリージョンを特定する際、前述した図１３のステップＳ５１１の処理と同様に、ジオコーディング処理部１１４による処理が行われてもよい。
【０１８９】
なお、本実施の形態に係る車載ソフトウェア配信システム１において、図１４のステップＳ６２３で行われるハッシュ値の比較処理は、テレマティクスセンタ１０のキャンペーン管理部１１２ではなく、車両２０に搭載されたソフトウェア更新装置２１０によって実施されるようにしてもよい。その場合、図１３のステップＳ５１５で行われる処理において、テレマティクスセンタ１０は、更新用ソフトウェアを車両２０に送信する際に、当該更新用ソフトウェアのテストキャンペーンにおいて登録された検証用ハッシュ値１２４７を合わせて送信することになる。このように構成すると、更新用ソフトウェアが正常にインストールされたか否かを、インストール直後の車両２０の側で判断することができるため（テレマティクスセンタ１０に通信する必要がないため）、仮にインストールが正常に完了しなかった場合でも、速やかにリカバリ処理（例えば、再度のインストール開始）を行うことに期待できる。
【０１９０】
以上、図１３及び図１４に示した各ステップの処理が行われることによって、配信キャンペーンの実行が完了する。
【０１９１】
図１３及び図１４の処理は、配信キャンペーンによる対象車両２０のそれぞれに対して実行される。そしてそれぞれの対象車両２０において更新用ソフトウェアのインストールが進むと、配信キャンペーン情報１２５０の更新完了台数１２５７が更新されていく（更新日時１２５８も更新される）。そして最終的に、更新完了台数１２５７の値が更新対象台数１２５６と同値になると、配信キャンペーンの対象車両２０の全てで更新用ソフトウェアのインストールが正常に完了したことを意味するため、更新進捗状況情報１２６０のステータス１２６３に「更新完了」が登録される（更新日時１２６４も更新される）。
【０１９２】
以上に説明したように、本実施の形態に係る車載ソフトウェア配信システム１では、車載ソフトウェア配信サーバであるテレマティクスセンタ１０が、同一機能のアップデートをキャンペーン（メインキャンペーン）で管理し、当該キャンペーンに基づくソフトウェアを当該キャンペーンの対象車両に遠隔で配信する。より詳しくは、キャンペーン管理部１１２が、メインキャンペーンの対象車両を所定の基準（例えばテスト車両フラグ１２１６や所属リージョン１２１５等）に基づいてグループに分類し、当該分類したグループごとにキャンペーンに従属する複数のサブキャンペーン（テストキャンペーンや配信キャンペーン）を作成し、更新用ソフトウェア配信部１１３が、それぞれのサブキャンペーンごとに、当該サブキャンペーンに基づくソフトウェアを当該サブキャンペーンの対象車両に遠隔で配信することを特徴とする。このような車載ソフトウェア配信システム１によれば、配信キャンペーン（第２のサブキャンペーン）において対象車両２０に対して、一斉にまたは順次、更新用ソフトウェアの配信及びインストールを実行可能にするだけでなく、テストキャンペーン（第１のサブキャンペーン）において検証用の特定車両（テスト車両）にのみ更新用ソフトウェアを配信したり、車両２０の所属リージョンに応じて、適用バージョンや更新ファイル名が異なる更新用ソフトウェアを配信したりすることができるため、メインキャンペーンにおいて更新用ソフトウェアを画一的ではなく柔軟に配信する制御を実現することができる。
【０１９３】
また、本実施の形態に係る車載ソフトウェア配信システム１では、１つのメインキャンペーンにおいて、テストキャンペーンによる特定のテスト車両に対する検証用のソフトウェアの配信（及びインストール）が成功したときに（図１２のステップＳ４１４のＹＥＳ）、他の対象車両に向けての配信キャンペーンが作成され（図１２のステップＳ４１８）、テストキャンペーンが成功した場合にのみ配信キャンペーンが実行される。このような車載ソフトウェア配信システム１によれば、一般向けの配信キャンペーンを実行する前に、テストキャンペーンによって更新用ソフトウェアの配信（及びインストール）に対する実効性を確認することができるため、キャンペーンによる機能アップデートの安全性及び確実性を高めることができる。
【０１９４】
さらに、本実施の形態に係る車載ソフトウェア配信システム１では、テストキャンペーンにおいてソフトウェアインストール後の更新対象ＥＣＵから取得したハッシュ値と、配信キャンペーンにおいてソフトウェアインストール後の更新対象ＥＣＵから取得したハッシュ値とを比較し（図１４のステップＳ６２３）、両ハッシュ値が一致した場合に、配信キャンペーンが成功（更新用ソフトウェアの正常なインストール）と判断することにより、キャンペーンによる機能アップデートの安全性及び確実性をより向上させることができる。
【０１９５】
また、図９に例示したキャンペーン管理画面３３１０のように、本実施の形態に係る車載ソフトウェア配信システム１では、これらの各種キャンペーンの設定について、管理者による選択や修正が可能であることから、より柔軟なキャンペーンの設定及び実行が可能となる。
【０１９６】
（２）第２の実施の形態
本発明の第２の実施の形態について説明する。第２の実施の形態に係る車載ソフトウェア配信システムの構成例は、図１に例示した第１の実施の形態に係る車載ソフトウェア配信システム１と同等であるとし、第１の実施の形態と共通する構成や処理については、説明を省略する。
【０１９７】
第２の実施の形態は、テレマティクスセンタ１０に搭載された中央演算処理装置１１０における配信開始日時変更部１１５による処理が行われる点で、第１の実施の形態と異なる。そこで以下では、この配信開始日時変更部１１５による処理を中心に、第２の実施の形態に係る車載ソフトウェア配信システム１について説明する。
【０１９８】
（２−１）配信キャンペーンの作成
図１５は、第２の実施の形態における配信キャンペーン情報の作成処理の処理手順の一例を示すシーケンス図である。図１５に示す処理は、端末３０に搭載されている中央演算処理装置３１０のキャンペーン情報入出力部３１１と、テレマティクスセンタ１０に搭載されている中央演算処理装置１１０の車両管理部１１１、キャンペーン管理部１１２及び配信開始日時変更部１１５とによって実行される。
【０１９９】
なお、図１５において、配信キャンペーン情報の作成処理が開始されてから、端末３０によるステップＳ４０４の処理及びテレマティクスセンタ１０によるステップＳ４１７の処理が行われるまでは、第１の実施の形態において図１２を参照しながら説明した配信キャンペーン情報の作成処理の同ステップの処理と同じであるため、説明を省略する。
【０２００】
図１５によれば、ステップＳ４０４においてキャンペーン情報入出力部３１１がテレマティクスセンタ１０から受信したＶＩＮ一覧を入出力装置３３０に表示されることにより、配信キャンペーン作成前の最終確認用の情報が管理者に示される。これに対して管理者は、表示されたＶＩＮ一覧を確認し、配信キャンペーンの対象車両として問題がないと判断した場合に、「配信キャンペーンの作成決定を通知するための所定の操作」を行う。上記所定の操作には、例えば、対象となったＶＩＮを持つ車両群（ＶＩＮ一覧に示された、配信キャンペーンの全対象車両）のグループ分割数（Ｎ個）を指定する操作や、グループごとの更新用ソフトウェアの配信開始日時（配信開始日時情報）を設定する操作等が含まれる。「配信キャンペーンの作成決定を通知するための所定の操作」の具体例については、図１６を参照しながら、別途後述する。
【０２０１】
そして、管理者によって配信キャンペーンの作成決定を通知するための上記所定の操作が行われると、キャンペーン情報入出力部３１１は、当該操作に基づいて、対象となったＶＩＮを持つ車両群をＮ個のグループに分割し、グループごとに異なる配信開始日時情報を設定する（ステップＳ７０１）。
【０２０２】
なお、車両群をＮ個のグループに分割する方法としては、例えば、管理者が入出力装置３３０を操作して１台ずつグループを指定する方法が考えられる。他にも例えば、車両群のＶＩＮから車両情報１２１０を検索し、例えば利用頻度１２１８が低いほうから順にソートした結果を用いて、指定されたグループ数に分割する方法も考えられる。
【０２０３】
その後、キャンペーン情報入出力部３１１は、ステップＳ７０１で設定されたＮ個のグループのそれぞれグループについて、配信キャンペーンの作成決定通知をテレマティクスセンタ１０に送信する（ステップＳ７０２）。
【０２０４】
ステップＳ７０２による配信キャンペーンの作成決定通知を受信したテレマティクスセンタ１０では、キャンペーン管理部１１２が、ステップＳ４１３で受信した情報に基づいて、配信キャンペーンＤＢ１２５にＮ個の新しい配信キャンペーン情報１２５０を作成する（ステップＳ７１１）。
【０２０５】
さらに、キャンペーン管理部１１２は、ＶＩＮ一覧に基づいて、更新進捗状況ＤＢ１２６にそれぞれのＶＩＮで個別の更新進捗状況情報１２６０のレコードを作成することによって、配信キャンペーンの実行における進捗状況（ステータス）を対象とする車両２０の１台ごとに管理できるようにする（ステップＳ７１２）。またこのとき、対象の車両２０の総台数をメインキャンペーン情報１２３０の更新対象台数１２３４に記録し、更新完了台数１２３５には「０」を記録する。
【０２０６】
ステップＳ４１９の処理の完了後、キャンペーン管理部１１２は、新規作成した配信キャンペーン情報１２５０及び更新したメインキャンペーン情報１２３０に関する作成結果を端末３０に送信する（ステップＳ７１３）。
【０２０７】
そして、ステップＳ７１３で送信された作成結果を受信したテレマティクスセンタ１０では、キャンペーン情報入出力部３１１が、当該作成結果を入出力装置３３０に表示する（ステップＳ７０３）。
【０２０８】
以上、図１５に示した各ステップの処理が行われることによって、管理者の要望に応じて、対象の車両２０を複数グループに分割して配信キャンペーンを作成し、かつ、それぞれのグループ（配信キャンペーン）で異なる配信開始日時を設定することができる。
【０２０９】
次に、図１５に示した配信キャンペーン情報の作成処理における、「配信キャンペーンの作成決定を通知するための所定の操作」について、より詳しく説明する。
【０２１０】
図１６は、配信キャンペーン作成画面の一例を説明する図である。図１６に示した配信キャンペーン作成画面３３２０は、配信キャンペーンの新規作成時に管理者による所定の操作を受付可能に表示される画面であって、第１の実施の形態において図９に例示したキャンペーン管理画面３３１０と同様に入出力装置３３０に表示される。例えば、配信キャンペーン作成画面３３２０は、キャンペーン管理画面３３１０において配信キャンペーンを新規作成する操作が行われた場合に（具体的には、ボタン３３１３やボタン３３１４が選択された場合に）、入出力装置３３０に表示される。
【０２１１】
図１６の配信キャンペーン作成画面３３２０には、配信対象となる複数の車両２０に関する情報（例えば、ＶＩＮ一覧）がテーブルで表示される表示領域３３２１と、配信キャンペーンの分割数に関する情報が表示される表示領域３３２２と、第１番目に配信される配信キャンペーン（第１配信キャンペーン）の配信開始日時が表示される表示領域３３２３と、第２番目に配信される配信キャンペーン（第２配信キャンペーン）等における配信開始日時の間隔（配信開始間隔）が表示される表示領域３３２４と、表示領域３３２２〜３３２４の表示内容をそれぞれ修正（設定）するためのボタン３３２５〜３３２７と、配信キャンペーン作成画面３３２０の表示内容による配信キャンペーンの作成を決定する場合に選択されるボタン３３２８と、が配置されている。
【０２１２】
このうち、表示領域３３２１に表示されたテーブルは、配信対象となる複数の車両２０を所定の法則に従ってＮ個のグループに分割するためにソート可能なＶＩＮ一覧である。より具体的には、このテーブルは、対象車両２０のそれぞれについて（ＶＩＮ１２１１）、車両情報１２１０から車種ＩＤ１２１２、所属リージョン１２１５、利用頻度１２１８、及び更新日時１２１９が抽出されて表示されたものであり、各項目で昇順あるいは降順にソート可能とされている。図１６では、対象車両２０の利用頻度が少ない順にソートした例が表示されている。
【０２１３】
配信キャンペーン作成画面３３２０における、管理者による「配信キャンペーンの作成決定を通知するための所定の操作」としては、まず、表示領域３３２１においてソートが行われて、配信キャンペーンにおいて優先的にファイルを配信したい対象車両２０が表示領域３３２１において上位（上側）にくるように、管理者が所望する順番への並べ替えが行われる。
【０２１４】
そして、表示領域３３２１においてソートを行った後は、表示領域３３２２において、配信キャンペーンを何個生成するか、すなわち、配信対象となる車両群を何個のグループに分割するかを決定する（ボタン３３２５）。
【０２１５】
次に、表示領域３３２３において、分割したＮ個のグループのうち指定されたソートで最も順序が前にある第１グループについて、ファイルの配信開始日時を入力する。第１グループは最も優先的にファイルを配信したいグループである（第１配信キャンペーン）。その後、表示領域３３２４において、第１グループ以降のグループ（第２グループ等）について、第１グループへのファイル配信からどの程度遅延させてファイルを配信するかの配信開始間隔を入力する。
【０２１６】
上記のような表示領域３３２１〜３３２３に対する操作が「配信キャンペーンの作成決定を通知するための所定の操作」に相当し、これらの操作に基づいて、配信キャンペーンのグループ分割や各グループにおける配信開始日時の設定等が行われる（図１５のステップＳ７０１）。
【０２１７】
そして、上記の入力が全て完了した後に、ボタン３３２８が選択されると、管理者が指定した方法で、端末３０からテレマティクスセンタ１０に対してＮ個の配信キャンペーンの作成決定通知が送信される（図１５のステップＳ７０２）。
【０２１８】
具体的には、図１６の配信キャンペーン作成画面３３２０の表示内容によって車両群をグループ分けした場合には、利用頻度の少ない車両から順にグループが３つ生成され、最も利用頻度の少ないグループ（第１グループ）に対して、配信キャンペーンＤＢ１２５において、配信開始日時１２５５に「２０１７／１１／０１  ００：００：００」が設定された配信キャンペーン情報１２５０が新規作成される（第１配信キャンペーン）。次に利用頻度の少ないグループ（第２グループ）に対しては、配信開始日時１２５５に前述のグループの配信開始日時の１週間後である「２０１７／１１／０８  ００：００：００」が設定された配信キャンペーン情報１２５０が新規作成され（第２配信キャンペーン）、最も利用頻度の多いグループ（第３グループ）に対しては、配信開始日時１２５５に更に１週間後の「２０１７／１１／１５  ００：００：００」が設定された配信キャンペーン情報１２５０が新規作成される（第３配信キャンペーン）。これにより、対象車両２０のうち利用頻度が低い車両であるほど、配信開始日時が早期に設定されることになる。
【０２１９】
ここで、例えば第１の実施の形態で説明した配信キャンペーンにおいて、全ての対象車両２０に対して更新用ソフトウェアのファイルを一斉に配信するとした場合、配信開始直後に一斉に対象車両２０からのアクセスが集中することによってテレマティクスセンタ１０の負荷が急増する可能性がある。これに対して、上述した第２の実施の形態に係る車載ソフトウェア配信システム１では、配信キャンペーン（サブキャンペーン）の対象車両を所定の基準（例えば、利用頻度１２１８）によってソートした結果に基づいて、配信キャンペーンを複数のグループに分割することができ、分割した配信キャンペーンのそれぞれで、異なるソフトウェアの配信開始タイミング（配信開始日時）を設定することができる。このように構成されることにより、第２の実施の形態に係る車載ソフトウェア配信システム１では、テレマティクスセンタ１０の負荷を管理者の意図する態様で分散させ、かつ、利用頻度が低く更新機会が少ない対象車両２０に対して優先的に配信することで、不具合の修正を意図した更新用ファイルの配信を確実に実行させる効果に期待できる。特に、利用頻度が低い対象車両２０に対して優先的に配信することによって、メインキャンペーン全体におけるキャンペーン達成率（更新進捗率）の向上に期待することができる。
【０２２０】
また、表示領域３３２１に関して前述したように、第２の実施の形態における車両２０のソート方法は、利用頻度だけでなく、リージョンや車種等、様々なデータを利用することができる。これにより、第２の実施の形態に係る車載ソフトウェア配信システム１は、テレマティクスセンタ１０の負荷を抑えるために、特定車種のソフトウェアを優先的に更新するようにしたり、特定のリージョンに位置する車両のソフトウェアを優先的に更新したりすることができ、第１の実施の形態よりもさらに柔軟に、更新用ソフトウェアの配信制御を実現することができる。
【０２２１】
（２−２）配信開始日時の変更
上述したように、第２の実施の形態に係る車載ソフトウェア配信システム１では、複数のグループに分割した配信キャンペーンのそれぞれに異なる配信開始日時を設定できることにより、テレマティクスセンタ１０の負荷を抑制することができる。しかし、実際には、各配信キャンペーンが計画通りに進まないこともある。
【０２２２】
そこで第２の実施の形態に係る車載ソフトウェア配信システム１では、同一のメインキャンペーンに従属する他の配信キャンペーンの進捗状況に基づいて、配信開始日時変更部１１５が、配信キャンペーンにおける更新用ソフトウェアの配信開始日時を変更できるようにしている（配信開始日時変更処理）。
【０２２３】
図１７は、配信開始日時変更処理の処理手順の一例を示すフローチャートである。図１７に示す配信開始日時変更処理は、テレマティクスセンタ１０に搭載された中央演算処理装置１１０の配信開始日時変更部１１５によって実行される。
【０２２４】
図１７によれば、まず、配信開始日時変更部１１５は、メインキャンペーンＤＢ１２３に格納されているメインキャンペーン情報１２３０のレコードを１件抽出する（ステップＳ８０１）。
【０２２５】
そして、配信開始日時変更部１１５は、ステップＳ８０１で抽出したメインキャンペーン情報１２３０に従属する配信キャンペーン情報１２５０を、配信キャンペーンＤＢ１２５から全件抽出する（ステップＳ８０２）。
【０２２６】
次に、配信開始日時変更部１１５は、リージョンを１つ指定し（指定リージョン）、ステップＳ８０２で抽出した配信キャンペーン情報１２５０のうちから、対象リージョン１２５４が指定リージョンに一致する配信キャンペーン情報（同一リージョン配信キャンペーン群）を抽出する（ステップＳ８０３）。
【０２２７】
次に、配信開始日時変更部１１５は、同一リージョン配信キャンペーン群のうちから、配信開始日時１２５５が現在時刻よりも過去であるもの（同一リージョン過去配信キャンペーン群）を抽出する（ステップＳ８０４）。
【０２２８】
次に、配信開始日時変更部１１５は、同一リージョン過去配信キャンペーン群に含まれる配信キャンペーン情報１２５０のそれぞれから、更新対象台数１２５６及び更新完了台数１２５７を抽出し、各台数を積算する（ステップＳ８０５）。
【０２２９】
次に、配信開始日時変更部１１５は、ステップＳ８０５で算出した「更新完了台数の和」を「更新対象台数の和」で除して算出される「更新進捗率」が、所定の閾値（本例ではＰ％とする）以上であるか否か判定する（ステップＳ８０６）。なお、所定の閾値「Ｐ％」は、テレマティクスセンタ１０の管理者が設定することが想定される。具体的な値としては、固定値でもよく、初めて配信キャンペーンを生成した日時からの経過時間に応じて変化する等の変動値でもよい。
【０２３０】
ステップＳ８０６において更新進捗率がＰ％以上であった場合は（ステップＳ８０６のＹＥＳ）、管理者の想定よりもソフトウェア配信が順調に進んでいることを意味するため、ステップＳ８０７からの処理によって、未だ配信が開始されていない配信キャンペーンを前倒しして有効化する。
【０２３１】
具体的には、まず、ステップＳ８０３で抽出した同一リージョン配信キャンペーン群のうちから、配信開始日時１２５５が現在時刻よりも未来であり、かつ、現在時刻に最も近い配信キャンペーン情報を１件抽出する（ステップＳ８０７）。そして、ステップＳ８０７で抽出した配信キャンペーン情報の配信開始日時１２５５を現在時刻に変更するとともに、元の配信開始日時と現在時刻との差（「Ｄ秒」とする）を記憶する（ステップＳ８０８）。さらに、ステップＳ８０３で抽出した同一リージョン配信キャンペーン群のうちから、ステップＳ８０７では抽出されなかったが配信開始日時１２５５が現在時刻よりも未来である配信キャンペーン情報を全件抽出し、それらの配信開始日時１２５５を全て「Ｄ秒」早めたものに変更する（ステップＳ８０９）。
【０２３２】
以上、ステップＳ８０７〜Ｓ８０９の処理によって、同一リージョン配信キャンペーン群のうちの未だ配信開始日時が到来していない配信キャンペーンの全てについて、配信開始日時を「Ｄ秒」前倒しすることができる（前倒し処理）。その後、ステップＳ８１０の処理が行われる。なお、ステップＳ８０６において更新進捗率がＰ％未満であった場合は（ステップＳ８０６のＮＯ）、ソフトウェア配信が管理者の想定を超えた早さで進んでいるわけではなく、前倒しの必要はないと考えられるため、ステップＳ８０７〜Ｓ８０９の処理を行わずにステップＳ８１０の処理に進む。
【０２３３】
そしてステップＳ８１０では、配信開始日時変更部１１５は、ステップＳ８０２で抽出した配信キャンペーン情報１２５０に含まれる全ての対象リージョン１２５４について、指定リージョンに指定してステップＳ８０３〜Ｓ８０９の処理が行われたかを確認する。これはすなわち、上記全ての対象リージョンに対して前倒し処理が検討されたかを確認するものである。
【０２３４】
ステップＳ８１０において前倒し処理が検討されていない対象リージョンが残っていた場合には（ステップＳ８１０のＮＯ）、ステップＳ８０３に戻って、指定リージョンを変更して処理が繰り返される。一方、ステップＳ８１０において全ての対象リージョンに対して前倒し処理の検討が確認された場合は（ステップＳ８１０のＹＥＳ）、配信開始日時変更部１１５は処理を終了する。
【０２３５】
なお、図１７に例示した処理は、ステップＳ８０１で抽出した１つのメインキャンペーンに対して配信開始日時の変更を行う処理であったが、第２の実施の形態に係る車載ソフトウェア配信システム１では、テレマティクスセンタ１０がこの処理を定期的に繰り返すことによって、同じメインキャンペーンの情報を再度更新可能にしたり、他の全てのメインキャンペーンの配信開始日時を変更可能にしたりしてもよい。
【０２３６】
以上のように、第２の実施の形態に係る車載ソフトウェア配信システム１では、上述した配信開始日時変更処理が行われることによって、グループに分割された配信キャンペーンのうち、先に実行された何れかの配信キャンペーンが早期に終了した場合には、未実行の配信キャンペーンの実行（配信開始日時）を前倒しすることができる。かくして、第２の実施の形態に係る車載ソフトウェア配信システム１によれば、配信キャンペーンの実際の進捗状況に基づいて、テレマティクスセンタ１０に過剰な負荷をかけることなく、他の配信キャンペーンの配信開始日時を前倒しすることができ、第１の実施の形態に係る車載ソフトウェア配信システムよりもさらに柔軟な配信制御が実現可能となる。また、その結果、テレマティクスセンタ１０の負荷の増大を抑制するだけでなく、全体として早期にソフトウェア配信を完了する効果にも期待できる。
【０２３７】
なお、本発明は、上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。例えば、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０２３８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０２３９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０２４０】
１      車載ソフトウェア配信システム
１０    テレマティクスセンタ
２０    車両
３０    端末
４０    ネットワーク
１１０  中央演算処理装置
１１１  車両管理部
１１２  キャンペーン管理部
１１３  更新用ソフトウェア配信部
１１４  ジオコーディング処理部
１１５  配信開始日時変更部
１２０  記憶装置
１２１  車両ＤＢ
１２２  車両構成ＤＢ
１２３  メインキャンペーンＤＢ
１２４  テストキャンペーンＤＢ
１２５  配信キャンペーンＤＢ
１２６  更新進捗状況ＤＢ
１２７  ソフトウェアＤＢ
１２８  地図ＤＢ
１３０  通信部
２１０  ソフトウェア更新装置
２１１  中央演算処理装置
２１２  キャンペーン確認部
２１３  更新用ソフトウェア要求部
２１４  ＥＣＵソフトウェア更新部
２１５  記憶装置
２１６  位置測位装置
２２０  通信部
２３０  ナビゲーション端末
２３１  中央演算処理装置
２３２  更新情報表示部
２３３  記憶装置
２３４  入出力装置
２４１  エンジンＥＣＵ
２４２  自動運転ＥＣＵ
３１０  中央演算処理装置
３１１  キャンペーン情報入出力部
３２０  記憶装置
３３０  入出力装置
３４０  通信部
１２１０  車両情報
１２２０  車両構成情報
１２３０  メインキャンペーン情報
１２４０  テストキャンペーン情報
１２５０  配信キャンペーン情報
１２６０  更新進捗状況情報
【図１】
2019101706.tif 000003
【図２】
2019101706.tif 000004
【図３】
2019101706.tif 000005
【図４】
2019101706.tif 000006
【図５】
2019101706.tif 000007
【図６】
2019101706.tif 000008
【図７】
2019101706.tif 000009
【図８】
2019101706.tif 000010
【図９】
2019101706.tif 000011
【図１０】
2019101706.tif 000012
【図１１】
2019101706.tif 000013
【図１２】
2019101706.tif 000014
【図１３】
2019101706.tif 000015
【図１４】
2019101706.tif 000016
【図１５】
2019101706.tif 000017
【図１６】
2019101706.tif 000018
【図１７】
2019101706.tif 000019