(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-07
(45)【発行日】2025-04-15
(54)【発明の名称】車両通信システム及び車載側システム
(51)【国際特許分類】
G06F 9/445 20180101AFI20250408BHJP
G06F 8/65 20180101ALI20250408BHJP
【FI】
G06F9/445
G06F8/65
(21)【出願番号】P 2023569141
(86)(22)【出願日】2022-11-07
(86)【国際出願番号】 JP2022041351
(87)【国際公開番号】W WO2023119909
(87)【国際公開日】2023-06-29
【審査請求日】2024-03-04
(31)【優先権主張番号】P 2021210817
(32)【優先日】2021-12-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】原田 雄三
(72)【発明者】
【氏名】吉見 英朗
(72)【発明者】
【氏名】小嶋 那央
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2011-148398(JP,A)
【文献】国際公開第2018/105609(WO,A1)
【文献】特開2006-293730(JP,A)
【文献】米国特許出願公開第2020/0073783(US,A1)
【文献】国際公開第2021/166617(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
車両に搭載される電子制御装置(52,53)に書込むデータを管理し、無線通信により更新データを前記車両に送信するための複数の機能をアプリケーションプログラムにより実行するもので、
一部の機能を実現するアプリケーションプログラムは、常にリソースが割り当てられて常駐型のプロセスとして実行されるサーバアーキテクチャを採用しており、
その他の機能のうち少なくとも一部を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式により前記アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、
前記コードの実行が完了すれば、前記アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用しており、
車両から車両構成情報を受信し、その車両に対するキャンペーン情報があるか否か判定するキャンペーン判定部(15)と、
前記キャンペーン情報があれば、前記車両に対するキャンペーン通知情報を生成するキャンペーン生成部(15)と、
前記キャンペーン情報の生成状態を管理するステータス管理部(12、20,41、43)と、
前記生成状態に応じて、前記キャンペーン通知情報を車両に配信するキャンペーン送信部(11)とを備え、
前記キャンペーン判定部、前記ステータス管理部及び前記キャンペーン生成部の機能を実現するアプリケーションプログラムが、前記サーバレスアーキテクチャを採用しているセンタ装置と、
前記電子制御装置を含み、前記センタ装置と無線通信を行なう車載側システムとで構成される車両通信システムにおいて、
前記車載側システムが、車両情報を含む第1リクエストを前記センタ装置に送信すると、
前記キャンペーン送信部は、前記リクエストに対応するジョブIDを含む中間レスポンスを前記車載側システムに送信し、
前記車載側システムは、前記中間レスポンスを受信すると、前記第1リクエストに対応した最終レスポンスの応答要求を、前記ジョブIDを付与した第2リクエストとして前記センタ装置に送信する車両通信システム。
【請求項2】
車両に搭載される電子制御装置(52,53)に書込むデータを管理し、無線通信により更新データを前記車両に送信するための複数の機能をアプリケーションプログラムにより実行するもので、
少なくとも一部の機能を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式により前記アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、
前記コードの実行が完了すれば、前記アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用しており、
車両から車両構成情報を受信し、その車両に対するキャンペーン情報があるか否か判定するキャンペーン判定部(15)と、
前記キャンペーン情報があれば、前記車両に対するキャンペーン通知情報を生成するキャンペーン生成部(15)と、
前記キャンペーン情報の生成状態を管理するステータス管理部(12、20,41、43)と、
前記生成状態に応じて、前記キャンペーン通知情報を車両に配信するキャンペーン送信部(11、20)とを備え、
前記キャンペーン判定部、前記ステータス管理部及び前記キャンペーン生成部の機能を実現するアプリケーションプログラムが、前記サーバレスアーキテクチャを採用しているセンタ装置と、
前記電子制御装置を含み、前記センタ装置と無線通信を行なう車載側システムとで構成される車両通信システムにおいて、
前記車載側システムが、車両情報を含む第1リクエストを前記センタ装置に送信すると、
前記キャンペーン送信部は、前記リクエストに対応するジョブIDを含む中間レスポンスを前記車載側システムに送信し、
前記車載側システムは、前記中間レスポンスを受信すると、前記第1リクエストに対応した最終レスポンスの応答要求を、前記ジョブIDを付与した第2リクエストとして前記センタ装置に送信する車両通信システム。
【請求項3】
前記車載側システムは、前記中間レスポンスを受信した後、所定時間が経過すると前記第2リクエストを前記センタ装置に送信する請求項1又は2記載の車両通信システム。
【請求項4】
前記キャンペーン送信部は、前記中間レスポンスに、前記第2リクエストの送信条件を含む付加情報を含ませて前記車載側システムに送信し、
前記車載側システムは、前記中間レスポンスを受信した後、前記送信条件を満たす状態になると前記第2リクエストを送信する請求項
1記載の車両通信システム。
【請求項5】
前記送信条件は、前記車載側システムが前記中間レスポンスを受信してから前記第2リクエストの送信までの待機時間であって、
前記車載側システムは、前記待機時間が経過すると前記第2リクエストを送信する請求項4記載の車両通信システム。
【請求項6】
前記送信条件は、前記第2リクエストの送信を許容するエリアの指定である請求項4記載の車両通信システム。
【請求項7】
前記車載側システムは、前記第1リクエストに、前記車両において収集した車両構成情報にハッシュ関数を適用して求めたハッシュ値を含ませる請求項
1記載の車両通信システム。
【請求項8】
前記キャンペーン送信部は、前記最終レスポンスとして、前記車両において収集された車両構成情報の全データの送信要求を含ませて前記車載側システムに送信し、
前記車載側システムは、前記送信要求に応じて、前記第2リクエストに前記全データを含ませる請求項7記載の車両通信システム。
【請求項9】
前記キャンペーン送信部は、前記キャンペーン判定部の判定結果に応じて、前記最終レスポンスとして、前記車両に対するキャンペーン情報あり、又はキャンペーン情報なしを示す情報を前記車載側システムに送信する請求項7記載の車両通信システム。
【請求項10】
前記キャンペーン判定部は、前記第1リクエストに対応する車両のID情報が、優先処理リストに登録されているか否かを判断し、前記優先処理リストに登録されていなければ、前記車両に対するキャンペーン情報があるか否かを判定することなく、前記最終レスポンスとして、キャンペーン情報なしを示す情報を、前記キャンペーン送信部を介して前記車載側システムに送信させる請求項9記載の車両通信システム。
【請求項11】
前記車載側システムは、車両の乗員が入力操作を行うユーザインターフェース部を備え、
前記ユーザインターフェース部において行われた入力操作に基づく処理が、前記センタ装置からの応答の受信を伴なうものである際に、前記応答の受信を待つことなく次のユーザインターフェース処理に進む請求項
1記載の車両通信システム。
【請求項12】
前記車載側システムは、車両の乗員が入力操作を行うユーザインターフェース部を備え、
前記ユーザインターフェース部において行われた入力操作に基づく処理が、前記センタ装置からの応答の受信を伴なうものである際に、前記応答を受信するか、又は所定時間が経過すると、次のユーザインターフェース処理に進む請求項
1記載の車両通信システム。
【請求項13】
車両に搭載される電子制御装置(52,53)に書込むデータを管理し、無線通信により更新データを前記車両に送信するための複数の機能をアプリケーションプログラムにより実行するもので、
一部の機能を実現するアプリケーションプログラムは、常にリソースが割り当てられて常駐型のプロセスとして実行されるサーバアーキテクチャを採用しており、
その他の機能のうち少なくとも一部を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式により前記アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、前記コードの実行が完了すれば、前記アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用しており、
車両から車両情報を受信し、その車両に対するキャンペーン情報があるか否か判定するキャンペーン判定部(15)と、
前記キャンペーン情報があれば、前記車両に対するキャンペーン通知情報を生成するキャンペーン生成部(15)と、
前記キャンペーン情報の生成状態を管理するステータス管理部(12、20,41、43)と、
前記生成状態に応じて、前記キャンペーン通知情報を車両に配信するキャンペーン送信部(11)と、を備え、
前記キャンペーン判定部、前記ステータス管理部及び前記キャンペーン生成部の機能を実現するアプリケーションプログラムが、前記サーバレスアーキテクチャを採用しているセンタ装置と無線通信を行なう、前記電子制御装置を含む車載側システムであって、
車両情報を含む第1リクエストを前記センタ装置に送信し、
前記センタ装置より、前記リクエストに対応するジョブIDを含む中間レスポンスを受信し、
前記中間レスポンスを受信すると、前記第1リクエストに対応した最終レスポンスの応答要求を、前記ジョブIDを付与した第2リクエストとして前記センタ装置に送信する車載側システム。
【請求項14】
車両に搭載される電子制御装置(52,53)に書込むデータを管理し、無線通信により更新データを前記車両に送信するための複数の機能をアプリケーションプログラムにより実行するもので、
少なくとも一部の機能を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式により前記アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、前記コードの実行が完了すれば、前記アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用しており、
車両から車両情報を受信し、その車両に対するキャンペーン情報があるか否か判定するキャンペーン判定部(15)と、
前記キャンペーン情報があれば、前記車両に対するキャンペーン通知情報を生成するキャンペーン生成部(15)と、
前記キャンペーン情報の生成状態を管理するステータス管理部(12、20,41、43)と、
前記生成状態に応じて、前記キャンペーン通知情報を車両に配信するキャンペーン送信部(11、20)と、を備え、
前記キャンペーン判定部、前記ステータス管理部及び前記キャンペーン生成部の機能を実現するアプリケーションプログラムが、前記サーバレスアーキテクチャを採用しているセンタ装置と無線通信を行なう、前記電子制御装置を含む車載側システムであって、
車両情報を含む第1リクエストを前記センタ装置に送信し、
前記センタ装置より、前記リクエストに対応するジョブIDを含む中間レスポンスを受信し、
前記中間レスポンスを受信すると、前記第1リクエストに対応した最終レスポンスの応答要求を、前記ジョブIDを付与した第2リクエストとして前記センタ装置に送信する車載側システム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2021年12月24日に出願された日本出願番号2021-210817号に基づくもので、ここにその記載内容を援用する。
【技術分野】
【0002】
本開示は、車両通信システム及び車載側システムに関する。
【背景技術】
【0003】
近年、運転支援機能や自動運転機能等の車両制御の多様化に伴い、車両の電子制御装置(以下、ECU(Electronic Control Unit)と称する)に搭載される車両制御や診断等のアプリプログラムの規模が増大している。また、機能改善等によるバージョンアップに伴い、ECUのアプリプログラムを書換える,所謂リプログを行う機会も増えつつある。一方、通信ネットワークの進展等に伴い、コネクッテッドカーの技術も普及している。このような事情から、例えば特許文献1には、サーバよりECUの更新プログラムをOTA(Over The Air)により車載装置に配信し、車両側で更新プログラムを書換える技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【0005】
特許文献1に開示されているセンタ装置を実際に構成しようとすると、例えば
図53に示すような構成となり、センタ装置を構成する各管理ブロック等は、一般にサーバを用いることを前提としたアーキテクチャにより実現されるもの、と想定される。尚、本願では、サーバを用いることを前提としてアプリケーションプログラムを実行させる環境又は構成を、「サーバアーキテクチャ」と称する。換言すれば、サーバアーキテクチャにおいては、アプリケーションプログラムには常にリソースが割り当てられており、当該プログラムは常駐型プロセスとして実行される。
【0006】
しかしながら、
図54に示すように、車両からセンタ装置が備えるサーバに対するアクセスは、日中に多くなり、夜間は少なくなると想定される。そのため、夜間にサーバを稼働させると、そのコストに無駄が多くなってしまう。
【0007】
また、法規的に、コネクッテッドカーに対応したセンタ装置は、各国毎に設置する必要がある。そのため、各国に対して同じ規模のシステムを構築すると、車両が少ない地域では、やはりサーバを稼働させるコストに無駄が多くなってしまう(
図55参照)。
【0008】
そこで、センタ装置側でアプリケーションプログラムを実行させる環境又は構成を、上記のサーバアーキテクチャに依らない、サーバレスアーキテクチャによって実現することを想定する。サーバレスアーキテクチャについては、「発明を実施するための形態」において詳述するが、オンデマンドでプログラムコードを実行するため、サーバを使用することなく、コンピューティングサービスを使用するものを言う。
【0009】
車両とセンタ装置との間で行われる通信は、基本的に、車両からのリクエストに応じた処理がセンタ装置で行われた後、車両にレスポンスを返す、といった流れになる。そして、サーバレスアーキテクチャを採用すると、処理が実行される毎にコンピューティングサービスにおける課金が発生する。したがって、課金の発生を如何にして抑制するか、ということが問題となる。また、車両とセンタ装置との間で行われる通信を効率的に行い、コンピューティングリソースの有効利用を図る必要がある。
【0010】
本開示は上記事情に鑑みてなされたものであり、その目的は、複数台の車両がセンタ装置と無線通信を行なう際に、サーバレスアーキテクチャの採用に伴い発生するコンピューティングリソースの消費を極力抑制できる車両通信システム及び車載側システムを提供することにある。
【0011】
請求項1又は2記載の車両通信システムによれば、センタ装置は、車両に搭載される電子制御装置に書込むデータを管理し、無線通信により更新データを前記車両に送信するための複数の機能をアプリケーションプログラムにより実行する。その際に、少なくとも一部の機能を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式により前記アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、コードの実行が完了すれば、アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用する。
【0012】
上述したように、車両からセンタ装置へのアクセスは時間帯によって多寡があると共に、車両の数自体も地域によって異なる。そして、少なくとも一部の機能を実現するアプリケーションプログラムにサーバレスアーキテクチャを採用すれば、車両からのアクセスが発生する毎に、リソースが動的に割り当てられてプログラムが起動され、コードの実行が完了すればリソースが開放されるようになる。したがって、常駐型のプロセスとして実行されるサーバアーキテクチャを採用する場合に比較して、コンピューティングリソースの消費を節約でき、結果としてインフラに掛かるランニングコストを低減させることができる。
【0013】
また、キャンペーン判定部は、車両から車両構成情報を受信し、その車両に対するキャンペーン情報があるか否か判定する。キャンペーン生成部は、キャンペーン情報があれば、前記車両に対するキャンペーン通知情報を生成する。ステータス管理部は、キャンペーン情報の生成状態を管理し、キャンペーン送信部は、前記生成状態に応じてキャンペーン通知情報を車両に配信する。そして、キャンペーン判定部、ステータス管理部及びキャンペーン生成部の機能を実現するアプリケーションプログラムがサーバレスアーキテクチャを採用している。
【0014】
例えば、コネクション管理を行う必要がある通信においても、ステータス管理部がキャンペーン情報の生成状態を管理するので、キャンペーン生成部及びキャンペーン送信部は、キャンペーン通知情報を車両に配信するまでの期間に稼働を継続する必要がなくなる。したがって、これらの機能をサーバレスアーキテクチャにより実現したことのメリットをより多く享受できる。
【0015】
そしてこの際に、車載側システムが、車両において収集した車両構成情報を含む第1リクエストをセンタ装置に送信すると、キャンペーン送信部は、そのリクエストに対応するジョブIDを含む中間レスポンスを車載側システムに送信する。また、車載側システムは、中間レスポンスを受信すると、第1リクエストに対応した最終レスポンスの応答要求を、ジョブIDを付与した第2リクエストとしてセンタ装置に送信する。
【0016】
すなわち、車載側システムは、センタ装置と通信を行なうに当たって、2回のリクエスト送信を行なえば良い。そして、センタ装置側では、それら2回のリクエスト送信の間に、要求された処理に対応したアプリケーションプログラムを起動して処理を実行させれば良い。これにより、サーバレスアーキテクチャを採用している外部のコンピュートサービスを利用する際においても、必要な処理を実行する期間だけ当該サービスを利用できるようになる。したがって、サービスの利用時間に応じて課金されるシステムであれば、センタ装置の運用コストを低減できる。
【図面の簡単な説明】
【0017】
本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
【
図1】
図1は、第1実施形態において、OTAセンタの構成を示す機能ブロック図であり、
【
図2】
図2は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図3】
図3は、車両側システムとOTAセンタとの間で行われる処理を概略的に示すフロー図であり、
【
図4A】
図4Aは、車両構成情報の受信からキャンペーン情報の送信までの処理を示すフローチャート(その1)であり、
【
図4B】
図4Bは、車両構成情報の受信からキャンペーン情報の送信までの処理を示すフローチャート(その2)であり、
【
図5A】
図5Aは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その1)であり、
【
図5B】
図5Bは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その2)であり、
【
図6】
図6は、クルマによるデータアクセスから、CDN配信部によるパッケージの配信までの処理を示すフローチャートであり、
【
図7】
図7は、ソフトウェア更新データの登録処理を示すフローチャートであり、
【
図8A】
図8Aは、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その1)であり、
【
図8B】
図8Bは、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その2)であり、
【
図9】
図9は、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その3)であり、
【
図10】
図10は、キューイングバッファ部においてデータを一定時間蓄積してから、次段のコンピュートサービス関数部に渡すことによる効果を説明する図であり、
【
図11】
図11は、サーバモデル及びサーバレスモデルそれぞれの処理形態を説明する図であり、
【
図12】
図12は、サーバモデル及びサーバレスモデルそれぞれのランニングコストを示す図であり、
【
図13】
図13は、第2実施形態において、OTAセンタの構成を示す機能ブロック図であり、
【
図14】
図14は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図15A】
図15Aは、車両構成情報の受信からジョブIDの送信とキャンペーン情報の生成までの処理を示すフローチャート(その1)であり、
【
図15B】
図15Bは、車両構成情報の受信からジョブIDの送信とキャンペーン情報の生成までの処理を示すフローチャート(その2)であり、
【
図16】
図16は、キャンペーン情報リクエストの受信から生成状況チェックと送信までの処理を示すフローチャート
【
図17A】
図17Aは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その1)であり、
【
図17B】
図17Bは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その2)であり、
【
図18】
図18は、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その3)であり、
【
図19A】
図19Aは、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その1)であり、
【
図19B】
図19Bは、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その2)であり、
【
図20】
図20は、案件情報の登録からパッケージの生成までの処理を示すフローチャート(その3)であり、
【
図21】
図21は、第3実施形態において、OTAセンタの構成を示す機能ブロック図であり、
【
図22】
図22は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図23】
図23は、車両構成情報の受信からジョブIDの送信とキャンペーン情報の生成までの処理を示すフローチャート
【
図24A】
図24Aは、キャンペーン情報リクエストの受信からキャンペーン情報の生成状況チェックと送信までの処理を示すフローチャート(その1)であり、
【
図24B】
図24Bは、キャンペーン情報リクエストの受信からキャンペーン情報の生成状況チェックと送信までの処理を示すフローチャート(その2)であり、
【
図25A】
図25Aは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その1)であり、
【
図25B】
図25Bは、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート(その2)であり、
【
図26A】
図26Aは、案件情報の登録リクエストの受信から登録情報のチェックと送信までの処理を示すフローチャート(その1)であり、
【
図26B】
図26Bは、案件情報の登録リクエストの受信から登録情報のチェックと送信までの処理を示すフローチャート(その2)であり、
【
図27】
図27は、第4実施形態において、第3実施形態において生じうる問題を説明する図であり、
【
図28】
図28は、OTAセンタの構成を示す機能ブロック図であり、
【
図29】
図29は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図30】
図30は、車両構成情報の受信からジョブIDの送信とキャンペーン情報の生成までの処理を示すフローチャート
【
図31】
図31は、第5実施形態において、OTAセンタの構成を示す機能ブロック図であり、
【
図32】
図32は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図33】
図33は、車両構成情報の受信からジョブIDの送信とキャンペーン情報の生成までの処理を示すフローチャート
【
図34】
図34は、キャンペーン情報の登録からCDN配信部への配信パッケージの登録までの処理を示すフローチャート
【
図35】
図35は、案件情報の登録からパッケージの生成までの処理を示すフローチャート
【
図36】
図36は、第6実施形態において、OTAセンタの構成を示す機能ブロック図であり、
【
図37】
図37は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図38A】
図38Aは、キャンペーン情報リクエストの受信からキャンペーン情報の生成状況チェックと送信までの処理を示すフローチャート(その1)であり、
【
図38B】
図38Bは、キャンペーン情報リクエストの受信からキャンペーン情報の生成状況チェックと送信までの処理を示すフローチャート(その2)であり、
【
図39】
図39は、クルマによるデータアクセスから、CDN配信部によるパッケージの配信までの処理を示すフローチャート
【
図40】
図40は、第7実施形態において、車両通信システムの構成を示す機能ブロック図であり、
【
図41】
図41は、OTAセンタの機能を、AWSを適用して実現した一例を示す図であり、
【
図42】
図42は、OTAマスタのダウンローダが備える各機能部を説明する図であり、
【
図43】
図43は、車両構成情報の送信からキャンペーン情報の受信までのOTAマスタ側の処理を示すフローチャートであり、
【
図44】
図44は、車両構成情報の全データの送信処理を示すフローチャートであり、
【
図45A】
図45Aは、車両構成情報の送信(リクエスト1)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その1)であり、
【
図45B】
図45Bは、車両構成情報の送信(リクエスト1)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その2)であり、
【
図45C】
図45Cは、車両構成情報の送信(リクエスト1)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その3)であり、
【
図46A】
図46Aは、車両構成情報の送信(リクエスト1)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その4)であり、
【
図46B】
図46Bは、車両構成情報の送信(リクエスト1)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その5)であり、
【
図47】
図47は、車両構成情報の送信(リクエスト2)からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャートであり、
【
図48A】
図48Aは、第8実施形態において、キャンペーンによるプログラム更新に関する承諾を順次行う際に、OTAセンタとOTAマスタとの間で行われる処理を示すフローチャート(その1)であり、
【
図48B】
図48Bは、キャンペーンによるプログラム更新に関する承諾を順次行う際に、OTAセンタとOTAマスタとの間で行われる処理を示すフローチャート(その2)であり、
【
図49A】
図49Aは、第9実施形態において、キャンペーンによるプログラム更新に関する承諾を順次行う際に、OTAセンタとOTAマスタとの間で行われる処理を示すフローチャート(その1)であり、
【
図49B】
図49Bは、キャンペーンによるプログラム更新に関する承諾を順次行う際に、OTAセンタとOTAマスタとの間で行われる処理を示すフローチャート(その2)であり、
【
図50】
図50は、第10実施形態において、プレミアム会員のVINリスト登録処理を示すフローチャートであり、
【
図51】
図51は、車両構成情報の送信からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その1)であり、
【
図52】
図52は、車両構成情報の送信からキャンペーン情報の送信までのOTAセンタ側の処理を示すフローチャート(その2)であり、
【
図53】
図53は、OTAセンタの機能を、主にサーバアーキテクチャを適用して構成した場合を想定した機能ブロック図であり、
【
図54】
図54は、コネクテッドカーサービスにおいて時間帯によるサーバアクセスの傾向を示す図であり、
【
図55】
図55は、各地域におけるクルマの販売台数の違いを示す図である。
【発明を実施するための形態】
【0018】
(第1実施形態)
【0019】
以下、第1実施形態について説明する。
図1に示すように、本実施形態のセンタ装置であるOTAセンタ1は、配信システム2及び共通システム3を備えている。共通システム3においては、車両であるクルマ31に配信するECUの更新プログラムやデータを含む配信パッケージが生成されて管理され、生成された配信パッケージは配信システム2を介して、無線通信により、すなわちOTAによってクルマ31に配信される。
【0020】
共通システム3がパッケージを生成する際には、外部のサーバシステムであるOEM(Original Equipment Manufacturer)バックオフィス4や、鍵管理センタ5との間で必要なデータの送受信が行われる。OEMバックオフィス4は、第1サーバ6~第4サーバ9等を備えている。これらのサーバ6~9は
図53に示すものと同様であり、それぞれ製造情報管理系、顧客管理系、テレマティクス契約、SMS(Short Message Service)配信用のシステムである。鍵管理センタ5は、OTAに使用する鍵の発行や管理を行うシステムである第5サーバ10を備えている。
【0021】
第1サーバ6~第5サーバ10では、前述したサーバアーキテクチャが採用されており、アプリケーションプログラムには常にリソースが割り当てられ、当該プログラムは常駐型プロセスとして実行される。
【0022】
配信システム2のAPI(Application Programming Interface)ゲートウェイ部(1)11は、クルマ31やOTA運用者34と無線通信を行う。APIゲートウェイ部11が受信したデータは、コンピュートサービス関数部(1)12、キューイングバッファ部13、コンピュートサービス関数部(2)14、コンピュートサービス処理部(1)15に順次転送される。コンピュートサービス関数部12は、データベース部(1)16にアクセスする。コンピュートサービス処理部15は、ファイルストレージ部18及びデータベース部(2)19にアクセスする。データベース部19には、プログラム更新が必要なクルマ31に対応したソフトウェアの更新情報であるキャンペーン情報が格納されている。APIゲートウェイ部11は、クルマ31、OTA運用者34、スマートフォン32、PC33などとの間でデータの入出力や指示と応答のやりとりをする。尚、APIゲートウェイ部11は、OTA運用者34又はPC33との間で有線通信を行っても良い。
【0023】
コンピュートサービス処理部15が出力したデータは、コンピュートサービス関数部(3)20を介してAPIゲートウェイ部11に出力される。CDN(Contents Delivery Network)配信部21は、ファイルストレージ部18にアクセスし、ファイルストレージ部18に格納されているデータをクルマ31にOTAにより配信する。CDN配信部21は、ネットワーク配信部の一例である。
【0024】
共通システム3のAPIゲートウェイ部(2)22は、配信システム2のコンピュートサービス処理部15、並びに共通システム3が備えるコンピュートサービス処理部(2)23及びコンピュートサービス関数部(4)24とデータの入出力を行う。コンピュートサービス処理部23は、データベース部(3)25及びファイルストレージ部(3)26にアクセスする。コンピュートサービス関数部24は、ファイルストレージ部26及びデータベース部(4)27にアクセスする。また、APIゲートウェイ部22は、OEMバックオフィス4及び鍵管理センタ5が備える各サーバ6~10にもアクセスする。APIゲートウェイ部22は、OEMバックオフィス4及び鍵管理センタ5が備える各サーバ6~10との間でデータの入出力や指示と応答のやりとりをする。
【0025】
以上の構成において、コンピュートサービス関数部12,14,20及び24、並びにコンピュートサービス処理部15及び23は、サーバレスアーキテクチャを採用している。「サーバレスアーキテクチャ」は、イベントの発生を契機として起動され、オンデマンド方式によりアプリケーションプログラムのコードの実行に対してリソースが自動的に割り当てられる。そして、コードの実行が完了すれば、割り当てられたリソースが自動的に開放されるように構成され、前述の「サーバアーキテクチャ」に対向した設計思想に基づいている。
【0026】
また、「サーバレスアーキテクチャ」は、イベントの発生を契機として起動され、アプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、コードの実行が完了すれば、割り当てられたリソースが開放される。尚、コードの実行が完了すれば、リソースが開放される。リソースの開放は、コードの実行完了後に直ちに開放しても良いし、実行完了後、所定時間、例えば10秒間待機した後に開放しても良い。
【0027】
ここで、サーバレスアーキテクチャを構成するための4つの原則を挙げると、
・オンデマンドでプログラムコードを実行するため、サーバを使用することなく、コンピューティングサービスを使用する。
・目的が1つだけの、ストレートな関数とする。
・プッシュベースのイベント駆動型パイプラインを構成する。
・より厚く強力なフロントエンドを構成する。
といったものになる。
【0028】
図2は、
図1に示すセンタ装置1を、AWS(Amazon Web Service)クラウドを利用して構成した場合の一例である。
・Amazon API Gateway:APIゲートウェイ部11、22に相当する。
・AWS Lambda :コンピュートサービス関数部12、20、24に相当する。
・Amazon Kinesis :キューイングバッファ部13に相当する。
・Elastic Load Balancing:コンピュートサービス関数部14に相当する。
・AWS Fargate :コンピュートサービス処理部15に相当する。
・Amazon S3 :ファイルストレージ部18及び26に相当する。
・Amazon Aurora :データベース部19、25及び27に相当する。
【0029】
尚、CDN77はCDN配信部21に相当するが、これはCDN77(株)が提供しているサービスである。これをAWSが提供しているAmazon CloudFrontサービスに置き換えてもよい。CDN77は世界中に分散配置されたキャッシュサーバである。また、AWS LambdaとAWS Fargateとは共にサーバーレスコンピューティングサービスであって、同等の機能を実現できる。よって、コンピュートサービス関数部14とコンピュートサービス処理部15とは、ブロック図としては何れかに集約しても良い。
【0030】
次に、本実施形態の作用について説明する。
図3に示すように、「車両構成情報同期」のフェーズでは、クルマ31において、例えば2週間毎に、イグニッションスイッチがONされたタイミングで車両構成情報がOTAセンタ1に送信される。車両構成情報は、車両に搭載されるECUのハードウェア及びソフトウェアに関する情報である。OTAセンタ1では、送信された車両構成情報を元に、ソフトウェアの更新について適用されるキャンペーン情報があるか否かをチェックする。そして、対応するキャンペーン情報がある場合には、そのキャンペーン情報をクルマ31に送信する。また、クルマ31により車両構成情報が送信された際に、当該情報を、OTAセンタ1側に保持されている前記クルマ31の車両構成情報と比較して、新しい方の情報に更新する処理を、車両構成情報の同期処理と称する。車両構成情報は車両情報の一例である。
【0031】
「キャンペーン承諾+DL承諾」のフェーズでは、キャンペーン情報を受信したクルマ31のドライバが、車載装置の画面に表示されたダウンロードを承諾するためのボタンを押下すると、CDN配信部21からプログラム更新用のデータパッケージがダウンロードされる。そのダウンロード中は、ダウンロード処理の進捗率がクルマ31からOTAセンタ1に通知される。
【0032】
ダウンロードが完了して「インストール承諾」となり、インストールが実行されると、そのインストール処理の進捗率がクルマ31からOTAセンタ1に通知される。インストール処理が完了して、クルマ31において「アクティベート実施」となり、アクティベートが完了すると、アクティベートの完了がOTAセンタ1に通知される。
尚、「キャンペーン承諾+DL承諾」と「インストール承諾」は、「キャンペーン承諾+DL承諾」の際に、「インストール承諾」も含めてドライバから承諾を得ても良い。
【0033】
以下、上記の各処理の詳細について説明する。
<車両構成情報の受信→キャンペーン情報の送信>
【0034】
図4に示すように、APIゲートウェイ部11が、クルマ31から車両構成情報のHTTPS(Hypertext Transfer Protocol Secure)リクエストを受信する(S1)。そのリクエスト内容は、例えばVIN(Vehicle Identification Number)と、各ECUのハードウェアIDと、各ECUのソフトウェアIDなどである。次に、APIゲートウェイ部11はコンピュートサービス関数部12を起動すると、受信した車両構成情報を当該関数部12に渡す(S2)。
【0035】
コンピュートサービス関数部12は、車両構成情報をキューイングバッファ部13に渡す(S3)。キューイングバッファ部13は、渡された車両構成情報を一定期間、例えば1秒又は数秒蓄積し、バッファリングする(S4)。ここで、コンピュートサービス関数部12は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S5)。尚、コンピュートサービス関数部12は、必要に応じて、APIゲートウェイ部11からTCPポート番号を受け取り、共有メモリに保存しても良い。
【0036】
上記の一定期間が経過すると(S5A)、キューイングバッファ部13は、コンピュートサービス関数部14を起動し、一定期間内に蓄積された車両構成情報をコンピュートサービス関数部14に渡す(S6)。キューイングバッファ部13は、アクセスバッファ制御部の一例である。コンピュートサービス関数部14は、渡された車両構成情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15のコンテナアプリを起動すると、車両構成情報をコンピュートサービス処理部15に渡す(S7)。
【0037】
ここで、コンテナとは、ホストOS上に論理的な区画としてのコンテナを作り、アプリケーションを動作させるのに必要なライブラリやプログラム等を1つにまとめたものである。OSのリソースを論理的に分離して、複数のコンテナで共有して使用する。コンテナにて実行されるアプリケーションを、コンテナアプリと称する。
【0038】
コンピュートサービス処理部15は、データベース部19にアクセスし、渡された車両構成情報に対応した、ソフトウェア更新情報であるキャンペーン情報が存在するか否かを判断する(S8)。キャンペーン情報が存在する場合、コンピュートサービス処理部15は、クルマ31に配信するキャンペーン情報を、データベース部19を参照して生成する(S9)。ここで、コンピュートサービス処理部15は、キャンペーン判定部及びキャンペーン生成部の一例である。また、コンピュートサービス関数部14は第1コンピュートサービス部に相当し、コンピュートサービス処理部15は第2コンピュートサービス部に相当する。
【0039】
コンピュートサービス処理部15は、コンピュートサービス関数部20を起動し、生成したキャンペーン情報を渡す(S10)。ここで、コンピュートサービス処理部15は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S11)。ステップS8において、キャンペーンがなければ、クルマ31に配信する「キャンペーンなし」を通知するキャンペーン情報を生成してから(S12)、ステップS10に移行する。
【0040】
コンピュートサービス関数部20は、渡されたキャンペーン情報を対応するクルマ31に配信するため、APIゲートウェイ部11に渡す。ここで、コンピュートサービス関数部20は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S14)。APIゲートウェイ部11は、クルマ31にキャンペーン情報を含むHTTPSレスポンスを送信する(S15)。APIゲートウェイ部11は、キャンペーン送信部の一例である。
【0041】
尚、上記の処理において、コンピュートサービス関数部20は、必要に応じて、コンピュートサービス関数部12が保存したTCPポート番号を共有メモリから取得し、そのTCPポート番号に対するHTTPSレスポンスを配信するように、APIゲートウェイ部11に要求するようにしても良い。
【0042】
<キャンペーン情報の登録→CDN配信部21への配信パッケージの登録>
【0043】
図5に示すように、OTA運用者34は、キャンペーン情報登録のHTTPSリクエストを送信する(S21)。APIゲートウェイ部11はコンピュートサービス関数部12を起動すると、受信したキャンペーン情報を渡す(S22)。
【0044】
コンピュートサービス関数部12は、キャンペーン情報をキューイングバッファ部13に渡す(S23)。キューイングバッファ部13は、渡されたキャンペーン情報を一定期間蓄積し、バッファリングする(S24)。ここで、コンピュートサービス関数部12は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S25)。コンピュートサービス関数部12は、キャンペーン登録部の一例であり、第5コンピュートサービス部に相当する。
【0045】
上記の一定期間が経過すると(S25A)、キューイングバッファ部13は、コンピュートサービス関数部14を起動し、一定期間内に蓄積されたキャンペーン情報をコンピュートサービス関数部14に渡す(S26)。コンピュートサービス関数部14は、渡されたキャンペーン情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15のコンテナアプリを起動すると、キャンペーン情報をコンピュートサービス処理部15に渡す(S27)。
【0046】
コンピュートサービス処理部15は、渡されたキャンペーン情報の中に含まれている対象車両と、更新対象のソフトウェアパッケージとの紐付けを行うため、データベース部19にキャンペーン情報を登録する(S28)。また、コンピュートサービス処理部15は、コンピュートサービス関数部20を起動し、キャンペーン情報の登録が完了した通知をAPIゲートウェイ部11に渡す(S30)。コンピュートサービス処理部15は、キャンペーン登録部の一例であり、第4コンピュートサービス部に相当する。
【0047】
次に、コンピュートサービス処理部15は、ファイルストレージ部18に、更新対象のソフトウェアパッケージとダウンロード用のURL情報とを格納する(S31)。ここで、コンピュートサービス処理部15は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S32)。そして、ファイルストレージ部18は、CDN配信部21のオリジンサーバとして動作する(S33)。コンピュートサービス処理部15は、パッケージ配信部の一例であり、第3コンピュートサービス部に相当する。
【0048】
<クルマからのデータアクセス→CDNから配信パッケージをクルマに送信>
【0049】
図6に示すように、クルマ31が、実際にはクルマ31に搭載されているDCM(Data Communication Module)及びセントラルECUからなるOTAマスタが、キャンペーン情報に含まれているダウンロードURL情報を元に、CDN配信部21にアクセスする(S41)。CDN配信部21は、クルマ31から要求されたソフトウェアパッケージを、自身のキャッシュメモリに保持しているか否かを判断する(S42)。キャッシュメモリに保持していれば、CDN配信部21は、クルマ31にソフトウェアパッケージを送信する(S43)。
【0050】
一方、要求されたソフトウェアパッケージをキャッシュメモリに保持していなければ、CDN配信部21は、オリジンサーバであるファイルストレージ部18に、上記のソフトウェアパッケージを要求する(S44)。すると、ファイルストレージ部18は、要求されたソフトウェアパッケージをCDN配信部21に送信する(S45)。CDN配信部21は、ファイルストレージ部18から受け取ったソフトウェアパッケージを、自身のキャッシュメモリに保持すると共に、クルマ31に送信する(S46)。
【0051】
<ソフトウェア更新データの登録>
図7に示すように、APIゲートウェイ部22は、OEMバックオフィス4の第1サーバ6から、ソフトウェア更新データ及びその関連情報の登録要求を、HTTPSリクエストとして受信する(S51)。APIゲートウェイ部22は、コンピュートサービス関数部24を起動して、ソフトウェア更新データ及び関連情報を渡す(S52)。コンピュートサービス関数部24は、ソフトウェア更新データ及び関連情報をファイルストレージ部26に格納する(S53)。
【0052】
コンピュートサービス関数部24は、ソフトウェア更新データ及び関連情報をどこに格納したのか参照できるように、データベース部27に格納されている検索テーブルを更新する(S54)。ここで、コンピュートサービス関数部24は、処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S55)。
【0053】
<案件情報の登録→パッケージの生成>
図8に示すように、OTA運用者34が、案件情報の登録を行うため、APIゲートウェイ部11に対して案件情報のHTTPSリクエストを送信する(S61)。案件情報は、ある配信パッケージを適用可能なECUのハードウェア情報やソフトウェア情報を纏めたものである。APIゲートウェイ部11は、コンピュートサービス関数部12を起動すると、受信した案件情報を当該関数部12に渡す(S62)。
【0054】
コンピュートサービス関数部12は、案件情報をキューイングバッファ部13に渡す(S63)。キューイングバッファ部13は、渡された案件情報を一定期間蓄積し、バッファリングする(S64)。コンピュートサービス関数部12は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S65)。尚、コンピュートサービス関数部12は、必要に応じて、APIゲートウェイ部11からTCPポート番号を受け取り、共有メモリに保存しておいても良い。
【0055】
上記の一定期間が経過すると、キューイングバッファ部13は、コンピュートサービス関数部14を起動し、一定期間内に蓄積された案件情報をコンピュートサービス関数部14に渡す(S66)。コンピュートサービス関数部14は、渡された案件情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15のコンテナアプリを起動すると、案件情報をコンピュートサービス処理部15に渡す(S67)。
【0056】
コンピュートサービス処理部15は、データベース部19にアクセスし、渡された案件情報に含まれているソフトウェア更新対象情報を元に、ソフトウェアパッケージを生成するため、コンピュートサービス処理部23のコンテナアプリを起動し、コンピュートサービス処理部23にソフトウェア更新対象情報を渡す(S68)。コンピュートサービス処理部15は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S70)。
【0057】
コンピュートサービス処理部23は、渡されたソフトウェア更新対象情報を元に、APIゲートウェイ部22に対して、ソフトウェア更新データ要求のHTTPSリクエストを送信する(S71)。APIゲートウェイ部22は、コンピュートサービス関数部24を起動し、ソフトウェア更新データ要求を渡す(S72)。コンピュートサービス関数部24は、データベース部27を参照し、ソフトウェア更新データが格納されているファイルストレージ部26のパス情報を取得する(S73)。
【0058】
コンピュートサービス関数部24は、取得したパス情報を元にファイルストレージ部26にアクセスし、ソフトウェア更新データを取得する(S74)。そして、取得したソフトウェア更新データをコンピュートサービス処理部23に送信するため、APIゲートウェイ部22に渡す(S75)。コンピュートサービス関数部24は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S76)。コンピュートサービス関数部24は、データ管理部の一例である。
【0059】
APIゲートウェイ部22は、コンピュートサービス処理部23に対して、ソフトウェア更新データを含んだソフトウェア更新応答のHTTPSレスポンスを送信する(S77)。コンピュートサービス処理部23は、データベース部25を参照して、対象車両のソフトウェアパッケージの構造を特定する(S78)。そして、ソフトウェア更新データを、特定したソフトウェアパッケージの構造に合致するように加工し、ソフトウェアパッケージを生成する(S79)。コンピュートサービス処理部23は、生成したソフトウェアパッケージをファイルストレージ部26に格納する(S80)。コンピュートサービス処理部23は、パッケージ生成部の一例である。
【0060】
コンピュートサービス処理部23は、ソフトウェアパッケージが格納されているファイルストレージ部26のパス情報をコンピュートサービス処理部15に送信するため、APIゲートウェイ部22に渡す(S81)。コンピュートサービス処理部23は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S82)。
【0061】
APIゲートウェイ部22は、コンピュートサービス処理部15を起動し、ソフトウェアパッケージのパス情報を渡す(S83)。コンピュートサービス処理部15は、渡されたソフトウェアパッケージのパス情報を案件情報と紐付けて、データベース部19に登録されている検索テーブルを更新する(S84)。コンピュートサービス処理部15は、コンピュートサービス関数部20を起動して、案件登録完了情報を渡す(S85)。コンピュートサービス処理部15は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S86)。
【0062】
コンピュートサービス関数部20は、渡された案件登録完了情報をOTA運用者34に返却するため、APIゲートウェイ部11に渡す(S87)。コンピュートサービス関数部20は処理を終了し、その処理を行うために占有していたCPUやメモリ等のリソースを開放する(S88)。APIゲートウェイ部11は、OTA運用者34に対して案件登録完了情報のHTTPSレスポンスを送信する(S89)。
【0063】
尚、上記の処理において、コンピュートサービス関数部20は、必要に応じて、コンピュートサービス関数部12が保存したTCPポート番号を共有メモリから取得し、そのTCPポート番号に対するHTTPSレスポンスを配信するように、APIゲートウェイ部11に要求するようにしても良い。
【0064】
次に、本実施形態の効果について説明する。
図10に示すように、キューイングバッファ部13においては、各クルマ31より送信される車両構成情報のストリームデータを一定量蓄積してから、次段のコンピュートサービス関数部14及びコンピュートサービス処理部15に渡すようになっている。上記の機能をAWS Fargateによって実現することを想定すると、処理の実行頻度を低減することによって、コンピューティングリソースの消費を節約できる。
【0065】
尚、
図10では各クルマ31より送信される車両構成情報をバッファリングする例を示したが、OTA運用者34がキャンペーン登録を行う際や案件情報登録を行う際も同様に、キューイングバッファ部13は一定量蓄積してから、次段のコンピュートサービス関数部14及びコンピュートサービス処理部15に渡すようになっている。
【0066】
また、
図11に示すように、従来のサーバモデルでは、アプリケーションプログラム及びサーバがリソースを占有した状態で常時稼働しており、1つのサーバで複数の処理を実行する。これに対して、本実施形態のように、サーバレスアーキテクチャを採用したモデルでは、各処理の要求が発生した際に対応するアプリケーションプログラムが起動され、処理が終了するとプログラムの実行は停止され、削除される。したがって、この時点で、処理に用いていたリソースは開放されることになる。
【0067】
その結果、
図12に示すように、従来のサーバモデルでは、実際に稼働したコストに比較して、サーバを常時稼働させることに伴う固定的なコストが余分にかかっている。また、サーバを予備的に冗長化すれば、さらにコストがかかってしまう。これに対して、本実施形態のようにサーバレスアーキテクチャを採用すれば、略実際に稼働したコストのみを負担するようになるから、インフラに掛かるランニングコストを大きく低減できる。
【0068】
以上のように本実施形態によれば、OTAセンタ1は、クルマ31に搭載される複数のECUに書込むデータを管理し、無線通信により更新データをクルマ31に送信するための複数の機能をアプリケーションプログラムにより実行する。その際に、少なくとも一部の機能を実現するアプリケーションプログラムは、イベントの発生を契機として起動され、オンデマンド方式によりアプリケーションプログラムのコードの実行に対してリソースが動的に割り当てられ、コードの実行が完了すれば、アプリケーションプログラムに割り当てられたリソースが開放されるサーバレスアーキテクチャを採用する。
【0069】
サーバレスアーキテクチャを採用したプログラムは、クルマ31からのアクセスが発生する毎に、リソースが動的に割り当てられてプログラムが起動され、コードの実行が完了すればリソースが開放されるようになる。したがって、常駐型のプロセスとして実行されるサーバアーキテクチャを採用する場合に比較して、インフラのコンピューティングリソースの消費を節約でき、結果としてインフラに掛かるランニングコストを低減できる。
【0070】
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。クルマ31とOTAセンタ1との間の通信を、コネクション型の通信であるTCP(Transmission Control Protocol)によって行うことを想定すると、送受信間においてコネクション管理を行う必要がある。
【0071】
先ず、コネクションを確立する際には、
・送信側から確立要求としてSYN(コネクションの確立要求)フラグが有効化されたTCPパケットを送信する。
・受信側はこれに対するACK(Acknowledge)と、同時に受信側からの接続確立要求としてTCPヘッダのSYNフラグを有効化して送信する。
・送信側が受信側からのSYNに対するACKパケットを送信する。
といったハンドシェイク処理が必要となる。
【0072】
そして、コネクションを切断する際には、
・送信側は最初にFIN(コネクション終了要求)を送信する。
・受信側はACKを送信し、続けてFINを送信する。
・送信側はFINを受信して最後のACKを送った後、一定時間待ってコネクションを終了する。
といったハンドシェイク処理が必要となる。
【0073】
第1実施形態の構成において、上述したコネクション管理を行うことを考慮すると、
図1に示すコンピュートサービス関数部12及び20を常に連動させる必要がある。また、コンピュートサービス関数部12及び20は、それぞれの後段の処理が完了して応答が返ってくるまでプロセスを稼働させておく必要があるため、サーバレスアーキテクチャを採用することによるメリットを最大限に享受できない。
【0074】
そこで、
図13に示すように、第2実施形態のOTAセンタ1Aでは、配信システム2Aにおいて、コンピュートサービス関数部12Aとコンピュートサービス処理部15Aとの間に、データベース部41を配置する。データベース部41には、コンピュートサービス関数部20Aもアクセス可能である。以上において、コンピュートサービス関数部12A、20A及びデータベース部41は、ステータス管理部の一例である。
【0075】
図14は、
図13に示す構成を、AWSクラウドを利用して構成した場合の一例である。コンピュートサービス関数部12Aに相当するAWS Lambdaとコンピュートサービス処理部15Aに相当するAWS Fargateとの間に、データベース部16A及び41に相当するAmazon Auroraを配置し、Amazon AuroraにおいてジョブIDを管理する。
【0076】
次に、第2実施形態の作用について説明する。
<車両構成情報の受信→ジョブIDの送信とキャンペーン情報の送信>
図15に示すように、先ず、ステップS1及びS2を実行するが、ステップS1におけるリクエストは「情報リクエスト1」となる。このリクエストは、1台のクルマ31からは例えば2週間毎又は月1回程度の発信があることを想定している。1台のクルマ31から月1回の頻度で情報リクエスト1があると仮定すると、1000万台のクルマ31からは、1秒当たり8リクエスト程度の発信となる。
【0077】
続いて、コンピュートサービス関数部12Aは新たなジョブIDを発行し、そのジョブIDが処理中;Processingであることをデータベース部41に登録する(S91)。尚、ジョブIDは情報リクエスト1ごとに発行される。そして、そのジョブIDをOTAセンタ1Aの外部であるクルマ31に返送するため、ジョブID情報をAPIゲートウェイ部11Aに渡す。ジョブID情報は、例えば「ジョブID No.=1」等である(S92)。すると、APIゲートウェイ部11Aはクルマ31に、ジョブID情報の情報リクエストに対するHTTPSレスポンスを送信する(S93)。
【0078】
コンピュートサービス関数部12Aは、クルマ31より受信した車両構成情報とジョブID情報をキューイングバッファ部13Aに渡す(S94)。キューイングバッファ部13Aは、渡された車両構成情報とジョブID情報を一定期間、例えば数秒間蓄積し、バッファリングする(S95)。
【0079】
ステップS5及びS5Aを実行すると、キューイングバッファ部13Aは、コンピュートサービス関数部14Aを起動し、一定期間内に蓄積された車両構成情報及びジョブID情報をコンピュートサービス関数部14Aに渡す(S96)。コンピュートサービス関数部14Aは、渡された車両構成情報及びジョブID情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15Aのコンテナアプリを起動すると、車両構成情報及びジョブID情報をコンピュートサービス処理部15Aに渡す(S97)。
【0080】
コンピュートサービス処理部15Aは、データベース部19Aにアクセスし、渡された車両構成情報及びジョブID情報に対応したキャンペーン情報が存在するか否かを判断する(S98)。ここから、キャンペーン情報の有無に応じてステップS9、S12を実行する。続くステップS99において、コンピュートサービス処理部15Aは、上記のジョブIDの処理が終了;Finishedしたこと、及び生成されたキャンペーン情報をデータベース部41に登録する。それから、ステップS11を実行すると、処理を終了する。
【0081】
<キャンペーン情報リクエストの受信→キャンペーン情報の生成状況チェックと
キャンペーン情報の送信>
図16に示すように、APIゲートウェイ部11Aは、クルマ31からキャンペーン情報のHTTPSリクエスト;情報リクエスト2を受信すると(S101)、コンピュートサービス関数部20Aを起動して、受信したキャンペーン情報リクエストを渡す(S102)。そのリクエストには、ジョブID番号が含まれている。コンピュートサービス関数部20Aは、データベース部41をチェックし、上記のジョブID番号の生成タスクのステータスが完了しているか否かを確認する(S103)。
【0082】
キャンペーン生成のタスクが完了済みであれば、コンピュートサービス関数部20Aは、生成されたキャンペーン情報をデータベース部41から取得して(S104)、APIゲートウェイ部11に渡す(S105)。ここで、コンピュートサービス関数部20Aは処理を終了し、占有していたCPUやメモリ等のリソースを開放する(S106)。APIゲートウェイ部11は、クルマ31にキャンペーン情報リクエストのHTTPSレスポンスを送信する(S107)。
【0083】
一方、キャンペーン生成のタスクが未完了であれば、コンピュートサービス関数部20Aは、キャンペーン情報の生成が未完であることを示すキャンペーン情報をAPIゲートウェイ部11Aに渡してから(S108)、ステップS106に移行する。
【0084】
<キャンペーン情報の登録(情報リクエスト1)→
CDN配信部21への配信パッケージの登録>
図17に示すように、ステップS21及びS22を実行すると(情報リクエスト1)、コンピュートサービス関数部12Aは、新たなジョブIDを発行し、そのジョブIDが処理中であることをデータベース部41に登録する(S111)。続いて、ジョブID番号をOTA運用者34に返却するため、ジョブID情報をAPIゲートウェイ部11Aに渡す(S112)。
【0085】
APIゲートウェイ部11Aは、OTA運用者34に対し、キャンペーン情報リクエストのHTTPSレスポンスを送信する(S113)。コンピュートサービス関数部12Aは、渡されたキャンペーン情報及びジョブID情報をキューイングバッファ部13Aに渡す(S114)。キューイングバッファ部13Aは、渡されたキャンペーン情報及びジョブID情報を一定期間蓄積し、バッファリングする(S115)。それから、ステップS25及びS25Aを実行する。
【0086】
キューイングバッファ部13Aは、コンピュートサービス関数部14Aを起動し、一定期間内に蓄積されたキャンペーン情報及びジョブID情報をコンピュートサービス関数部14Aに渡す(S116)。コンピュートサービス関数部14Aは、渡されたキャンペーン情報及びジョブID情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15Aのコンテナアプリを起動すると、キャンペーン情報をコンピュートサービス処理部15Aに渡す(S117)。
【0087】
コンピュートサービス処理部15Aは、渡されたキャンペーン情報及びジョブID情報の中に含まれている対象車両と、更新対象のソフトウェアパッケージとの紐付けを行うため、データベース部19Aにキャンペーン情報を登録する(S118)。次に、コンピュートサービス処理部15Aは、ステップS31、S119、S32及びS33を実行する。ステップS119において、コンピュートサービス処理部15Aは、上記のジョブIDの処理が終了したことをデータベース部41に登録する。
【0088】
<キャンペーン情報の登録(情報リクエスト2)→
CDN配信部21への配信パッケージの登録>
図18に示すように、APIゲートウェイ部11Aは、OTA運用者34からキャンペーン情報登録のHTTPSリクエストを受信すると(S121)、コンピュートサービス関数部20Aを起動して、受信した登録リクエスト;情報リクエスト2を渡す(S122)。コンピュートサービス関数部20Aは、データベース部41をチェックし、上記のジョブID番号の登録タスクのステータスが完了しているか否かを確認する(S123)。
【0089】
キャンペーン登録のタスクが完了済みであれば、コンピュートサービス関数部20Aは、登録完了を示す情報をAPIゲートウェイ部11Aに渡す(S124)。ここで、コンピュートサービス関数部20Aは処理を終了し、占有していたCPUやメモリ等のリソースを開放する(S125)。APIゲートウェイ部11Aは、 OTA運用者34にキャンペーン情報登録リクエストのHTTPSレスポンスを送信する(S126)。
【0090】
一方、キャンペーン登録のタスクが未完了であれば、コンピュートサービス関数部20Aは、キャンペーン情報の登録が未完了であることを示すキャンペーン情報をAPIゲートウェイ部11Aに渡してから(S127)、ステップS125に移行する。
【0091】
<案件情報(情報リクエスト1)→パッケージの生成>
図19に示すように、ステップS61及びS62を実行すると(情報リクエスト1)、コンピュートサービス関数部12は新たなジョブIDを発行し、そのジョブIDが処理中であることをデータベース部41に登録する(S131)。そして、そのジョブIDをOTA運用者34に返送するため、ジョブID情報をAPIゲートウェイ部11に渡す(S132)。すると、APIゲートウェイ部11はOTA運用者34に、案件情報の情報リクエストに対するHTTPSレスポンスを送信する(S133)。
【0092】
コンピュートサービス関数部12Aは、渡された案件情報とジョブID情報をキューイングバッファ部13Aに渡す(S134)。キューイングバッファ部13Aは、渡された案件情報とジョブID情報を一定期間、例えば数秒間蓄積し、バッファリングする(S135)。
【0093】
ステップS65及びS65Aを実行すると、キューイングバッファ部13Aは、コンピュートサービス関数部14Aを起動し、一定期間内に蓄積された案件情報及びジョブID情報をコンピュートサービス関数部14Aに渡す(S136)。コンピュートサービス関数部14Aは、渡された案件情報及びジョブID情報の内容の一部を解釈し、適切な処理を実行できるコンピュートサービス処理部15Aのコンテナアプリを起動すると、案件情報及びジョブID情報をコンピュートサービス処理部15Aに渡す(S137)。
【0094】
コンピュートサービス処理部15Aは、渡された案件情報に含まれているソフトウェア更新情報を元に、ソフトウェアパッケージを生成するため、コンピュートサービス処理部23のコンテナアプリを起動し、コンピュートサービス処理部23にソフトウェア更新対象情報を渡す(S138)。
【0095】
以降はステップS70~S86を実行するが、ステップS85に替えてステップS139を実行する。ステップS139において、コンピュートサービス処理部15Aは、ジョブIDの処理が終了したことをデータベース部41に登録する。
【0096】
<案件情報(情報リクエスト2)→パッケージの生成>
図20に示すように、APIゲートウェイ部11Aは、OTA運用者34から案件情報登録のHTTPSリクエスト;情報リクエスト2を受信すると(S141)、コンピュートサービス関数部20Aを起動し、受信した案件情報登録のリクエストを渡す(S142)。コンピュートサービス関数部20Aは、データベース部41をチェックし、上記のリクエストに付されているジョブID番号のタスクのステータスが完了しているか確認する(S143)。
【0097】
案件情報登録のタスクが完了済みであれば、コンピュートサービス関数部20Aは、案件情報登録完了の情報をAPIゲートウェイ部11Aに渡すと(S144)、処理を終了して占有していたリソースを開放する(S145)。それから、APIゲートウェイ部11Aは、OTA運用者34に対して案件情報登録リクエストのHTTPSレスポンスを送信する(S146)。一方、案件情報登録のタスクが未完了であれば、コンピュートサービス関数部20Aは、OTA運用者34に送信する案件情報登録未完了の情報をAPIゲートウェイ部11に渡してから(S147)ステップS145に移行する。
【0098】
以上のように第2実施形態によれば、コンピュートサービス関数部12A、20A及びデータベース部41により、クルマ31から受信したリクエストにジョブID情報を付与すると共に、そのリクエストに対応した処理が、処理中であるか完了したかを示すステータスを管理して、処理が完了したリクエストに対してクルマ31にレスポンスを返すようにした。これにより、コンピュートサービス関数部12A及び20Aは、リクエストに対応する処理が完了するまでの間に継続して起動させる必要がなくなるので、サーバレスアーキテクチャを採用したことによるメリットをより多く享受できるようになる。
【0099】
(第3実施形態)
第2実施形態の構成では、クルマ31とOTAセンタ1AのAPIゲートウェイ部11との間における通信トラフィックが増大するため、通信料の負担増加が懸念される。また、この構成では、クルマ31側又はOTAセンタ1A側に設計ミス等があると、クルマ31からの通信リトライが無限ループで発生し、OTAセンタ1Aが過負荷状態に陥るおそれがある。
【0100】
そこで、
図21に示すように、第3実施形態のOTAセンタ1Bでは、第2実施形態の構成にコンピュートサービス関数部42及び43を追加している。コンピュートサービス関数部43は、コンピュートサービス関数部42及びデータベース部41Bにアクセスし、コンピュートサービス関数部42は、APIゲートウェイ部11Bにアクセスする。データベース部41Bにおいて、ジョブID番号、ステータスと共にコネクションID番号を管理する。コンピュートサービス関数部20Bは、配信先管理部の一例である。
【0101】
図22は、
図21に示す構成を、AWSサービスを用いて構成した一例である。
・Amazon API Gateway:APIゲートウェイ部11Bに相当する。
・AWS Lambda :コンピュートサービス関数部12B、20B、42に相当する。
・AWS Fargate :コンピュートサービス処理部14B,15Bに相当する。
・Amazon Aurora :データベース部19B、25及び27に相当する。
・CloudWatch :コンピュートサービス関数部43に相当する。
【0102】
次に、第3実施形態の作用について説明する。
<車両構成情報の受信→ジョブIDの送信とキャンペーン情報の送信>
図23に示すように、ステップS1及びS2を実行すると、コンピュートサービス関数部12Bは新たなジョブIDを発行し、そのジョブIDが処理中であること、及びコネクションID番号をデータベース部41Bに登録する(S151)。以降は、第2実施形態と同様に、ステップS92~S11を実行する。コネクションID番号は、所謂TCPポート番号である。尚、APIゲートウェイ部11Bは、ジョブIDは記憶していないが、クルマ31との通信を行なった際のTCPポート番号であるコネクションID番号は記憶している。
【0103】
<キャンペーン情報リクエストの受信→キャンペーン情報の生成状況チェックと
キャンペーン情報の送信>
図24に示すように、APIゲートウェイ部11Bは、ステップS101を実行すると、コンピュートサービス関数部20Bを起動して、受信したキャンペーン情報リクエストを渡す(S152)。そのリクエストには、ジョブID番号と共にコネクションID情報が含まれている。コンピュートサービス関数部20Bは、データベース部41BをジョブID番号で検索し、該当したジョブID番号のテーブルにコネクション情報を登録する(S153)。それから、ステップS106を実行する。
【0104】
ステップS154~S160の処理は、周期的に、例えば数秒間毎に起動される。コンピュートサービス関数部43は、ある周期で定期的にデータベース部41Bをチェックし、新たにタスク完了したジョブID番号がないかを確認する(S154)。タスク完了したジョブID番号があれば、コンピュートサービス関数部43は、そのジョブID番号のコネクションID情報とキャンペーン情報とをデータベース部41Bから取得する(S155)。そして、取得したコネクションID情報及びキャンペーン情報をコンピュートサービス関数部42に渡すと(S156)、コンピュートサービス関数部43は、処理を終了し、占有していたリソースを開放する(S157)。
【0105】
続いて、コンピュートサービス関数部42は、コネクションID情報及びキャンペーン情報をAPIゲートウェイ部11Bに渡す(S159)。APIゲートウェイ部11Bは、コネクションID情報を元に、情報を返却すべきクルマ31を特定し、クルマ31にキャンペーン情報リクエストに対するHTTPSレスポンスを送信する(S160)。一方、ステップS154において、タスク完了したジョブID番号がなければ、ステップS157と同様の処理を行なってから(S158)処理を終了する。
【0106】
<キャンペーン情報(情報リクエスト2)の登録→
CDN配信部21への配信パッケージの登録>
情報リクエスト1については、第2実施形態と同様にステップS21~S33を実行する。尚、ステップS91では、コンピュートサービス関数部12Aは新たなジョブIDを発行し、そのジョブIDが処理中;Processingであること、及びコネクションID番号をデータベース部41に登録する。それから、
図25に示すように、APIゲートウェイ部11BはステップS121を実行すると、ステップS152,S153と同様の処理を実行した後(S161、S162)、ステップS125を実行する。ステップS163~S169の処理は、ステップS154~S160の処理と同様であるが、ステップS169におけるレスポンスの送信先は、OTA運用者34である。
【0107】
<クルマからのデータアクセス→CDNから配信パッケージをクルマに送信>
<ソフトウェア更新データの登録>
これらの処理は、第1実施形態と同様である。
<案件情報の登録とパッケージの生成>
この処理は、第2実施形態と同様である。
【0108】
<案件情報の登録リクエストの受信→案件情報の登録状況チェックと
案件登録情報(結果)の送信>
図26に示すように、ステップS171、S172の処理はステップS141、S142と同様であるが、コンピュートサービス関数部20Bに渡す情報には、コネクションID情報が含まれている。ステップS173~S181の処理は、
図24に示すステップS153~S160の処理を、キャンペーン情報に替えて案件情報について行うものである。
【0109】
以上のように第3実施形態によれば、コンピュートサービス関数部20Bは、クルマ31又はOTA運用者34よりジョブ番号が付与されたリクエストを受信すると、そのジョブ番号に紐付けされたコネクション番号を付与してデータベース部41Bに登録し、コンピュートサービス関数部42、43は、データベース部41を参照することで処理が完了したリクエストがあれば、そのリクエストのジョブ番号に対応したコネクション番号に基づいてレスポンスの送信先となるクルマ31又はOTA運用者34を特定し、特定されたクルマ31又はOTA運用者34にAPIゲートウェイ部11Bを介してレスポンスを送信するようにした。これにより、クルマ31又はOTA運用者34がAPIゲートウェイ部11Bに当該ジョブ番号の処理が完了しているかを確認するため、繰り返しリクエストを送信するといったプロセスが不要となり、第2実施形態で発生していた通信を減らせるため、クルマ31又はOTA運用者34とAPIゲートウェイ部11Bとの間の通信トラフィック量を削減できる。
【0110】
(第4実施形態)
ここで、第3実施形態の構成について、キューイングバッファ部13Bの後段に配置されるコンピュートサービス処理部15Bに相当するAWS Fagateの処理負荷を、オートスケーリングにより調整することを想定する。この場合、通常はECS(Elastic Container Service)のターゲット追跡スケーリングポリシーなどを利用して、ECSにおけるCloudWatchメトリクスとアラームとを利用してタスク数等を制御することになる。
【0111】
すると、CloudWatchメトリクスからアラーム発報までにどうしてもタイムラグが存在するため、数秒単位でのスケーリングが難しく、基本的には分単位オーダーでのスケーリングとなってしまう。そのため、AWS Fargateを単に適用するだけのサーバーレス化では、
図27に示すように、クルマ31からの通信トラフィックが突発的に急増した際に対応できない、という問題がある。
【0112】
そこで、
図28に示す第4実施形態のOTAセンタ1Cでは、配信システム2Cにおいて、第3実施形態の構成にコンピュートサービス関数部44を加えている。コンピュートサービス関数部14Cはコンピュートサービス関数部44にアクセスし、コンピュートサービス関数部44はコンピュートサービス処理部15Cにアクセスする。
【0113】
コンピュートサービス関数部44は、スケールアウトを能動的に実行する。コンピュートサービス処理部15Cに相当するAWS Fargateを高速にオートスケーリングさせるため、例えばStep Functionsを利用して、3秒毎に、データプレーンであるFargateタスクへのコネクション数を取得し、その結果に応じて、コントロールプレーンであるECSのタスク数の上限を引き上げる。これにより、コンピュートサービス処理部15Cの処理能力を調整する。コンピュートサービス関数部44は、処理能力調整部の一例である。
【0114】
図29は、
図28に示すセンタ装置1Cを、AWSクラウドを利用して構成した場合の一例である。
・Amazon API Gateway:APIゲートウェイ部11Cに相当する。
・AWS Lambda :コンピュートサービス関数部12C、20C、42C、
44に相当する。
・SQS :キューイングバッファ部13Cに相当する。
・AWS Step Functions:コンピュートサービス関数部14Cに相当する。
・Amazon Aurora :データベース部16C、41Cに相当する。
・CloudWatch :コンピュートサービス関数部43Cに相当する。
【0115】
次に、第4実施形態の作用について説明する。
<車両構成情報の受信→JOB_IDの送信とキャンペーン情報の生成>
図15に示す第2実施形態と同様に、ステップS1~S5Aを実行する。続いて、
図30に示すように、ステップS96と同様の処理を実行すると(S191)、コンピュートサービス関数部14Cは、コンピュートサービス関数部44を起動する(S192)。コンピュートサービス関数部44は、下記の(1)~(3)をチェックする(S192)。
・ コンピュートサービス処理部15Cにおけるコンテナアプリの起動数
・ 各コンテナアプリの処理負荷率
・ キューイングバッファ部13Cに滞留しているジョブIDの数
【0116】
続いて、コンピュートサービス関数部44は、以下の条件の何れかを満足しているかをチェックする(S194)。
・上記(1)の起動数が既定の閾値を超えている
・上記(2)の負荷率が既定の閾値を超えている
・上記(3)のジョブID数が既定の閾値を超えている
【0117】
何れかの条件で閾値を超えていれば、コンピュートサービス関数部44は、コンピュートサービス処理部15Cのコンテナアプリをスケールアウトさせるため、コンテナアプリを強制的に追加して起動する(S195)。
【0118】
次に、コンピュートサービス関数部14Cは、コンピュートサービス処理部15Cの起動させたコンテナアプリに車両構成情報とジョブIDとを渡す(S196)。それから、コンピュートサービス関数部14C及び44は、処理を終了して占有していたリソースを開放する(S197)。一方、ステップS194において、何れの条件でも閾値を超えていなければ、コンピュートサービス関数部14Cは、コンピュートサービス処理部15Cの既に起動済みであるコンテナアプリに車両構成情報とジョブIDとを渡してから(S198)ステップS197に移行する。以降は、
図15に示すステップS98~S11を実行する。
【0119】
以上のように第4実施形態によれば、コンピュートサービス関数部44は、クルマ31に対するキャンペーン通知情報を生成するコンピュートサービス処理部15Cの処理負荷と、クルマ31から受信した車両構成情報の数とを確認すると、コンピュートサービス処理部15Cの処理能力の増減要否を判断し、必要に応じて処理能力を増減させる。これにより、クルマ31又はOTA運用者34との間の通信トラフィック量が急増した場合にも対応が可能となる。
【0120】
(第5実施形態)
第5実施形態では、開発コストの最適化を図った構成を示す。
図31に示すように、第5実施形態のOTAセンタ1Dは、配信センタ2Dにおいて、第2実施形態の構成からキューイングバッファ部13及びコンピュートサービス関数部14を削除したものである。
【0121】
図32は、
図31に示すセンタ装置1Dを、AWSクラウドを利用して構成した場合の一例である。
・Amazon API Gateway:APIゲートウェイ部11Dに相当する。
・AWS Lambda :コンピュートサービス関数部20D、42Dに相当する。
・AWS Step Functions:コンピュートサービス関数部12Dに相当する。
・Dynamo DB :データベース部16D、41D及び
コンピュートサービス関数部43Dに相当する。
【0122】
次に、第5実施形態の作用について説明する。
<車両構成情報の受信→ジョブIDの送信とキャンペーン情報の送信>
図33に示すように、ステップS1~S93を実行すると、コンピュートサービス関数部12Dは、適切な処理を実行できるコンピュートサービス処理部15Dのコンテナアプリを起動して、コンピュートサービス処理部15Dに車両構成情報を渡す(S201)。それから、ステップS5~S11を実行する。
【0123】
<キャンペーン情報リクエストの受信→キャンペーン情報の生成状況チェックと
キャンペーン情報の送信>
これは、第3実施形態の
図24に示す処理と同様となる。
【0124】
<キャンペーン情報の登録→CDN配信部21Dへの配信パッケージの登録>
図34に示すように、ステップS21~S113を実行すると、コンピュートサービス関数部12Dは、適切な処理を実行できるコンピュートサービス処理部15Dのコンテナアプリを起動して、コンピュートサービス処理部15Dに車両構成情報を渡す(S202)。それから、ステップS25、S118、S31~S33を実行する。
【0125】
<キャンペーン情報の登録→CDN配信部21への配信パッケージの登録>
これは、第2実施形態の
図25に示す処理と同様になる。
<クルマからのデータアクセス→CDNから配信パッケージをクルマに送信>
これは、第1実施形態の
図6に示す処理と同様になる。
<ソフトウェア更新データの登録>
これは、第1実施形態の
図7に示す処理と同様になる。
【0126】
<案件情報の登録→パッケージの生成>
図35に示すように、第2実施形態の
図19と同様にステップS61~S133を実行すると、コンピュートサービス関数部12Dは、適切な処理を実行できるコンピュートサービス処理部15Dのコンテナアプリを起動して、コンピュートサービス処理部15Dに車両構成情報を渡す(S203)。それから、ステップS65、S138を実行すると、第2実施形態の
図19と同様に、S70~S86を実行する。
【0127】
<案件情報の登録リクエストの受信→案件情報の登録状況チェックと
案件登録情報(結果)の送信>
これは、第3実施形態の
図26に示す処理と同様になる。
【0128】
以上のように第5実施形態によればキューイングバッファ部13及びコンピュートサービス関数部14を削除することで、OTAセンタ1Dを低コストで構成できる。
【0129】
(第6実施形態)
第6実施形態では、セキュリティを強化するため、有効期限がある署名付きURLを使用する。この署名付きURLを用いると、ユーザがコンテンツへのアクセスを開始できる開始日時やアクセスできる日時又は期間を指定できると共に、コンテンツにアクセスできるユーザのIPアドレス又はIPアドレスの範囲を指定できる。上記の署名は、アクセス制御情報の一例である。
【0130】
例えば、OTAセンタは秘密鍵を用いて署名付きURLを作成してクルマに返すと、クルマ側では、その署名付きURLを使用してCDNからコンテンツのダウンロードやストリーミングを実行する。その際にCDNは、パブリックキー;公開鍵を使用して署名を検証し、ファイルにアクセスするための資格がユーザにあることを検証する。
【0131】
図36に示すように、第6実施形態のOTAセンタ1Eは、配信システム2Eにおいて、第2実施形態の構成にコンピュートサービス関数部45を追加したものである。コンピュートサービス関数部45は、コンピュートサービス処理部15Eにアクセスする。データベース部41Eでは、有効期限と署名付きURLが管理されている。
【0132】
図37は、
図36に示すセンタ装置1Eを、AWSクラウドを利用して構成した場合の一例である。
・Amazon API Gateway:APIゲートウェイ部11Eに相当する。
・AWS Lambda :コンピュートサービス関数部12E、14E,20E、
45に相当する。
・AWS Step Functions:コンピュートサービス関数部14Eに相当する。
・SQS :キューイングバッファ部13Eに相当する。
・Dynamo DB :データベース部16E,41E及び
コンピュートサービス関数部42Eに相当する。
【0133】
次に、第6実施形態の作用について説明する。
<車両構成情報の受信→ジョブIDの送信とキャンペーン情報の送信>
先ず、第3実施形態の
図23に示す処理と同様に、ステップS1~S5、ステップS92~S11を実行する。続けて、
図24に示す処理と同様に、ステップS101~S106を実行する。それから、
図38に示すように、ステップS154を実行すると、コンピュートサービス関数部43Eは、タスク完了したジョブID番号があれば、そのジョブID番号のコネクションID情報とキャンペーン情報、及び有効期限と署名付きURLをデータベース部41Eから取得する(S211)。そして、取得した上記の各情報をコンピュートサービス関数部42Eに渡すと(S212)、ステップS157を実行する。コンピュートサービス関数部42Eは、上記の各情報をAPIゲートウェイ部11Eに渡すと(S213)、ステップS160を実行する。
【0134】
ステップS214~S217の処理は、周期的に実行される。コンピュートサービス関数部45は、周期的にデータベース部41Eをチェックし、有効期限が切れている署名付きURLがないかを確認する(S214)。有効期限が切れている署名付きURLがあれば、その署名付きURLに新たな有効期限を付したものを生成して(S215)、データベース部41Eを更新する(S216)。それから、コンピュートサービス関数部45は処理を終了し、占有していたリソースを開放する(S217)。
【0135】
<キャンペーン情報の登録→CDN配信部21への配信パッケージの登録>
これは、第3実施形態と同様の処理となる。
【0136】
<クルマからのデータアクセス→CDNから配信パッケージをクルマに送信>
図39に示すように、クルマ31が、キャンペーン情報に含まれているダウンロードURL情報と有効期限及び署名付きURLを元に、CDN配信部21にアクセスする(S221)。CDN配信部21は、有効期限と署名付きURLの署名が正しいか否かを、公開鍵を使用して検証する(S222)。検証結果がOKであれば、CDN配信部21は、有効期限が切れていないか検証し(S223)、有効期限が切れていなければステップS42~S46を実行する。一方、有効期限が切れていれば、CDN配信部21は、クルマ31にエラーメッセージを送信する(S224)。
【0137】
<ソフトウェア更新データの登録>
<案件情報の登録→パッケージの生成>
<案件情報登録リクエストの受信→案件情報の生成状況チェックと案件情報の送信>
これらは、第3実施形態と同様の処理となる。
【0138】
以上のように第6実施形態によれば、キャンペーン情報に、ダウンロードURL情報と共に、有効期限及び署名付きURLを含め、OTAセンタ1E側で有効期限のチェックと署名の検証とを行うので、コンテンツへのアクセスを開始できる日時やアクセスできる日時を指定できると共に、コンテンツにアクセスできるユーザをCDN配信部21にて限定することができる。したがって、クルマ31との間で行う通信のセキュリティを向上させることができる。
尚、第1実施形態から第6実施形態では、OTA運用者34がAPIゲートウェイ部11にアクセスする場合や、OEMバックオフィス4からAPIゲートウェイ部22、鍵管理センタ5からAPIゲートウェイ部22にアクセスする場合は、サーバアーキテクチャを採用するプログラムにより処理しても良い。
【0139】
(第7実施形態)
第7実施形態は、OTAセンタ1等と無線通信を行う車載側システムの処理に係るものである。
図40及び
図41に示すように、クルマ31Aに搭載されている車載側システム51は、OTAマスタ52、ECU53(1)~53(3)、ユーザインターフェース部54等を備えている。OTAマスタ52は、ダウンローダ55及びインストーラ56を有している。ECU53は、マイコン57及びメモリ58等を有しており、ユーザインターフェース部54は、表示デバイス59を有している。
【0140】
なお、車両側システムは以下の構成でもよい。車両側システムは、DCMとセントラルECU(CGWとも呼ぶ)を備える。DCMとセントラルECUとは、バスを介してデータ通信可能に接続されている。バスは、イーサネットあるいはCAN(登録商標)バス、などである。
【0141】
OTAマスタ52の機能の一部又は全部が、セントラルECUにおいて実現されても良い。一例としては、DCMはCDN21やOTAセンター1Fなどの外部とデータ通信のみ行い、OTAマスタ52の機能の全てがセントラルECUにて実施されても良い。この場合、DCMは外部との無線通信を行うが、データをセントラルECUに転送する。あるいは、DCMは外部とデータ通信するのに加えて、OTAマスタ52のダウンローダ55として機能してもよい。ダウンローダ55の機能とは、例えば、車両構成情報の生成、メタデータ検証、パッケージ検証、キャンペーン情報の検証である。あるいは、OTAマスタ52の機能がDCMにおいて実現されてもよい。この場合、セントラルECUにはOTAマスタ52以外の機能が実装される。又は、DCMとセントラルECUが一体化していても良い。
【0142】
すなわち、DCMの機能の一部又は全体をセントラルECUが有する構成でも良いし、セントラルECUの機能の一部又は全体をDCMが有する構成でも良い。OTAマスタ52において、DCMとセントラルECUとの機能分担がどのように構成されていても良い。OTAマスタ52は、DCM及びセントラルECUの2つのECUから構成されても良いし、DCMの機能とセントラルECUの機能とを有する1つの統合ECUで構成されても良い。
【0143】
図41に示すOTAセンタ1Fでは、第7実施形態の要旨に係る機能部分のみをブロック化して示している。ダウンローダ55は、車両構成同期処理部60及びキャンペーン通知受信部61を備えている。
図42に示すように、車両構成同期処理部60は、ECU53等が出力する各種のデータを車両構成情報として収集すると、収集した情報のフルデータにハッシュ関数を適用して得られるダイジェスト情報を生成する。車両情報のダイジェスト情報は、情報リクエスト1;第1リクエストと共にOTAセンタ1Fに送信される。また、OTAセンタ1Fより、情報リクエスト1に対応したレスポンス応答;中間レスポンスを、ジョブID及び付加情報と共に受信する。
【0144】
付加情報には、車両側で処理を切り替えるためのパラメータ等が含まれており、そのパラメータを用いることで車両毎の処理やサービス毎の処理が行われる。また、付加情報には、後述するように、レスポンス応答を受信した時点から情報リクエスト2を送信するまでの送信条件である待機時間が含まれていても良い。
【0145】
キャンペーン通知受信部61は、上記の付加情報に基づき、又はクルマ31Aに予め設定されている待機時間が経過したことを判断すると、ジョブIDを付した情報リクエスト2;第2リクエストを送信することでOTAセンタ1Fにアクセスする。また、OTAセンタ1Fより、情報リクエスト2に対応したレスポンス応答;最終レスポンスを、キャンペーン情報と共に受信する。尚、レスポンス応答には、キャンペーンありとのキャンペーン情報、キャンペーンなしとのキャンペーン情報、フルデータの車両構成情報の送信要求、情報リクエスト1が処理完了前;言い換えると、処理中を含む。
【0146】
配信システム2Fには、サーバアーキテクチャを採用しているコンピュートサーバ部62が追加されている。コンピュートサーバ部62は、APIゲートウェイ部11F及びデータベース部41Fとの間でデータ転送を行う。尚、第7実施形態においてクルマ31Aに搭載されている車載側システム51は、第7実施形態以外の実施形態において説明されるOTAセンタ1に対しても適用可能である。
【0147】
次に、第7実施形態の作用について説明する。
<車両構成情報の送信→キャンペーン情報の受信;OTAマスタ側の処理>
図43に示すように、OTAマスタ52は、クルマ31Aのイグニッションスイッチがオンされた際に、OTAセンタ1Fと車両構成情報の同期処理を最後に実施した日から、一定期間が変化したか否か、又は車両構成情報が変化したか否かを判断する(S231)。何れかが変化すると、OTAマスタ52は、車両構成情報の同期処理に係るHTTPSリクエスト;情報リクエスト1をOTAセンタ1FのAPIゲートウェイ部11Fに送信する(S232)。又は、ステップS231として、OTAセンタ1Fからキャンペーンが或ることを示す通知を受信した場合にも、ステップSS232に進む。
【0148】
OTAマスタ52が、APIゲートウェイ部11Fから情報リクエスト1に対応したレスポンス応答をジョブID及び付加情報と共に受信すると(S233)、その付加情報に含まれている待機時間の経過待ちをする(S234)。待機時間が経過すると、OTAマスタ52は、APIゲートウェイ部11FにジョブIDを付与した情報リクエスト2を送信し、キャンペーン情報を含むレスポンス応答を求める(S235)。尚、待機時間については、付加情報によって与えられるものに限らず、車載側システム51に予め設定されていても良い。
【0149】
レスポンス応答を受信してそれが処理済みになると、キャンペーン情報の内容を判断する(S236,S237)。すなわち、更新対象となるキャンペーンが含まれているかや、車両構成情報のフルデータの送信が要求されているかなどを判断する。その内容に応じて、続くステップS238を経て分岐する。更新対象となるキャンペーンがあれば、先の実施形態と同様にダウンロード処理を行う(S239)。フルデータの送信要求があれば、車両構成情報の全データをOTAセンタ1Fに送信する(S240)。
【0150】
次に、フルデータの送信が要求されている場合について説明する。
図44に示すように、車両構成情報のフルデータを送信する際には、ステップS232におけるダイジェスト情報を、全データに替えてHTTPSリクエストを送信する(S241)。以降のステップS242~S248の処理は、ステップS233~S239の処理と同様である。尚、ステップS241が情報リクエスト1に、ステップS242が中間レスポンス応答に、ステップS244が情報リクエスト2に、ステップS245が最終レスポンス応答に、それぞれ対応する。
【0151】
<車両構成情報の送信→キャンペーン情報の送信;OTAセンタ側の処理>
図45に示すように、情報リクエスト1の受信に対応した処理において、OTAセンタ1FのAPIゲートウェイ部11Fは、クルマ31A、モバイル32又はPC33から、車両構成情報の同期に係るHTTPSリクエストを受信する(S251)。すると、APIゲートウェイ部11Fは、上記のリクエストに含まれているURI情報を元に、クルマ31A、モバイル32又はPC33の何れかに振り分けを行う(S252)。
【0152】
リクエストの送信元がクルマ31Aであれば、APIゲートウェイ部11Fは、コンピュートサービス関数部12Fを起動して、受信した車両構成情報を渡す(S253)。コンピュートサービス関数部12Fは、ジョブIDを発行し、当該IDのジョブが処理中であることをデータベース部41Fに登録すると(S255)、上記のジョブIDを付加情報と共にAPIゲートウェイ部11Fに渡す(S256)。APIゲートウェイ部11Fは、そのジョブID及び付加情報をクルマ31Aに渡す。これが中間レスポンス応答となる(S257)。
【0153】
次に、コンピュートサービス関数部12Fは、適切な処理を実行できるコンピュートサービス処理部15Fのコンテナアプリを起動して、車両構成情報を渡す(S258)。すると、コンピュートサービス関数部12Fは処理を終了し、占有していたリソースを開放する(S259)。続いて、コンピュートサービス処理部15Fは、受信した車両構成情報が、フルデータにハッシュ関数を適用して得られるハッシュ値;ダイジェスト値か、フルデータそのものかを判断する(S260、S261)。ダイジェスト値であれば、OTAセンタ1Fに登録されている値と一致するか否かを判断する(S262、S263)。
【0154】
双方の値が一致すれば、コンピュートサービス処理部15Fは、渡された車両構成情報とジョブID情報に対して、ソフトウェア更新情報であるキャンペーンが存在するか、データベース部19Fに格納されているキャンペーン情報を参照して判断する(S269)。対応するキャンペーン情報があれば、コンピュートサービス処理部15Fは、クルマ31Aに配信するキャンペーン情報を、データベース部19Fを参照して生成する(S270)。
【0155】
それから、コンピュートサービス処理部15Fは、そのジョブIDに対応する処理が終了したこと、及び生成されたキャンペーン情報をデータベース部19Fに登録する(S271)。すると、コンピュートサービス処理部15Fは処理を終了し、占有していたリソースを開放する(S272)。ステップS269において、対応するキャンペーン情報がなければ、コンピュートサービス処理部15Fは、対応するキャンペーン情報がないことを示すキャンペーン情報を生成して(S273)ステップS271に移行する。
【0156】
一方、ステップS263において、双方の値が不一致であれば、コンピュートサービス処理部15Fは、そのジョブIDに対応する処理が終了したこと、及びフルデータの車両構成情報を要求したことをデータベース部41Fに登録する(S264)。そして、ステップS272と同様の処理を行う(S265)。また、ステップS261において、受信した車両構成情報がフルデータであれば、OTAセンタ1Fに登録されている値と一致するか否かを判断する(S266、S267)。双方のデータが一致すれば、そのままステップS269に移行し、双方のデータが不一致であれば、OTAセンタ1F側の車両構成情報データベースを更新してから(S268)ステップS269に移行する。例えば、データベース部19Fが車両構成情報データベースに相当する。
【0157】
ステップS252において、リクエストの送信元がスマートフォン32又はPC33であれば、APIゲートウェイ部11Fは、コンピュートサーバ部62に受信した車両構成情報を渡す(S254)。それから、
図46に示すステップS274に移行するが、以降のステップS274~S288の処理は、ステップS255~S257、S260~S264、S266~S273(S272を除く)でコンピュートサービス処理部15Fが行った処理を、コンピュートサーバ部62が実行するものである。
尚、リクエストの送信元がスマートフォン32又はPC33の場合、スマートフォン32又はPC33は、クルマ31AのOTAマスタ52と通信することで車両構成情報のダイジェスト値及び車両構成情報のフルデータを予め取得し保存している。また、スマートフォン32又はPC33は、車両構成情報のフルデータを予め取得し保存している。また、ステップS251にて、スマートフォン32又はPC33が車両構成情報のフルデータをAPIゲートウェイ部11Fを送信する場合には、ステップS261では常にステップS266に移行する。
【0158】
<車両構成情報の送信→キャンペーン情報の送信;OTAセンタ側の処理>
図47に示すステップS291~S294の処理は、ステップS251~S254の処理を情報リクエスト2の受信に対応して行うものである。続くステップS295において、コンピュートサービス関数部20Fは、データベース部41Fをチェックし、当該ジョブIDのタスクのステータスが完了しているか否かを確認する。前記タスクが完了済みであれば、コンピュートサービス関数部20Fは、前記タスクの処理結果;キャンペーン情報をAPIゲートウェイ部11Fに渡す(S296)。尚、この時点でクルマ31Aに、車両構成情報のフルデータの送信を要求しても良い。すると、コンピュートサービス関数部20Fは処理を終了し、占有していたリソースを開放する(S297)。APIゲートウェイ部11Fは、HTTPSレスポンスをクルマ31Aに渡す(S298)。これが2回目のレスポンス応答となる。
【0159】
ステップS294に続くステップS300~S302の処理は、ステップS295~S298(S297を除く)でコンピュートサービス処理部20Fが行った処理を、コンピュートサーバ部62が実行するものである。尚、ステップS302において、APIゲートウェイ部11Fは、HTTPSレスポンスをスマートフォン32又はPC33に渡す。
【0160】
以上のように第7実施形態によれば、車載側システム51が、クルマ31Aにおいて収集した車両構成情報を含む情報リクエスト1をOTAセンタ1Fに送信すると、APIゲートウェイ部11Fは、そのリクエストに対応するジョブIDを含む中間のレスポンス応答を車載側システム51に送信する。また、車載側システム51は、上記のレスポンス応答を受信すると、情報リクエスト1に対応した最終レスポンスの応答要求を、ジョブIDを付与した情報リクエスト2としてOTAセンタ1Fに送信する。
【0161】
すなわち、車載側システム51は、OTAセンタ1Fと通信を行なうに当たって、2回の情報リクエスト送信を行なえば良い。そして、OTAセンタ1Fでは、それら2回のリクエスト送信の間に、要求された処理に対応したアプリケーションプログラムを起動して処理を実行させれば良い。これにより、サーバレスアーキテクチャを採用している外部のコンピュートサービスを利用する際においても、必要な処理を実行する期間だけ当該サービスを利用できるようになる。したがって、サービスの利用時間に応じて課金されるシステムであれば、OTAセンタ1Fの運用コストを低減できる。
【0162】
また、APIゲートウェイ部11Fは、中間のレスポンス応答に、情報リクエスト2の送信条件を含む付加情報を含ませて車載側システム51に送信する。車載側システム51は、上記のレスポンス応答を受信した後、前記送信条件を満たす状態になると情報リクエスト2を送信する。前記送信条件は、例えば、車載側システム51が中間レスポンス応答を受信してから情報リクエスト2の送信までの待機時間であり、車載側システム51は、その待機時間が経過すると情報リクエスト2を送信する。これにより、車載側システム51は、OTAセンタ1F側が要求された処理を実行するのに必要と判断した時間だけ、情報リクエスト2の送信を待機することができる。
尚、コンピュートサーバ部62を省略した構成も可能である。その場合、リクエストの送信元がモバイル32又はPC33であっても、コンピュートサービス関数部12Fが起動される。
【0163】
(第8実施形態)
図48に示す第8実施形態は、クルマ31Aに送信するキャンペーン情報がある場合において、クルマ31Aの乗員が、そのキャンペーンによるプログラム更新の承諾、ダウンロードの承諾、アクティベートの承諾を順次行うことを想定する。その際に、OTAセンタ1FとOTAマスタ52との間で行われる処理を示す。
【0164】
OTAマスタ52は、キャンペーンの内容を、ユーザインターフェース54の表示デバイス59に表示して、キャンペーン承諾ボタンの押下を乗員;ドライバに要求する(S311)。そして、ドライバによりキャンペーン承諾ボタンが押下されるまで待機する(S312)。当該承諾ボタンが押下されると、OTAマスタ52は、キャンペーン承諾の結果をOTAセンタ1Fに送信すると共に(S313)、OTAセンタ1Fからキャンペーン承諾のレスポンス応答を待ち受けして受信する(S314)。ステップS313、S315は並列処理となる。
【0165】
また、OTAマスタ52は、ステップS313を実行すると、ステップS314と同様にキャンペーン承諾のレスポンス応答を待ち受けするが(S315)、ここでは所定時間が経過すれば、実際に応答を受信していない状態でも次の処理に移行する。尚、所定時間が経過する前に応答を受信すれば、次の処理に移行する。以降の処理においても同様に、OTAセンタ1Fからの応答を待ち受けする場合、所定時間が経過する前に応答を受信すれば、次の処理に移行する。
【0166】
続くステップS316では、OTAマスタ52は、ダウンロード処理の所要時間等の内容を表示デバイス59に表示して、ダウンロード承諾ボタンの押下をドライバに要求する。そして、ドライバによりダウンロード承諾ボタンが押下されるまで待機し(S317)、当該承諾ボタンが押下されると、OTAマスタ52は、ダウンロード承諾の結果をOTAセンタ1Fに送信すると共に(S318)、OTAセンタ1Fからダウンロード承諾のレスポンス応答を待ち受けして受信する(S319)。ステップS318、S319も並列処理となる。
【0167】
また、OTAマスタ52は、ステップS318を実行すると、ステップS319と同様にダウンロード承諾のレスポンス応答を待ち受けするが(S320)、やはり所定時間が経過すれば、実際に応答を受信していない状態でも次の処理に移行する。続くステップS321で、OTAマスタ52は、キャンペーン情報に含まれているダウンロードURL情報を元にCDN配信部21Fにアクセスし、ソフトウェアパッケージをダウンロードする。そして、OTAマスタ52は、ダウンロード処理の進捗情報を表示デバイス59に表示してドライバに示すと共に、OTAセンタ1Fにも進捗情報を送信する(S322)。
【0168】
ダウンロード処理が完了すると、OTAマスタ52は、表示デバイス59にアクティベート承諾ボタンを表示させて、その押下をドライバに要求する(S323)。そして、ドライバによりアクティベート承諾ボタンが押下されるまで待機し(S324)、当該承諾ボタンが押下されると、OTAマスタ52は、アクティベート承諾の結果をOTAセンタ1Fに送信すると共に(S325)、OTAセンタ1Fからアクティベート承諾のレスポンス応答を待ち受けして受信する(S326)。ステップS325、S326も並列処理となる。
【0169】
OTAマスタ52は、ステップS325を実行すると、ステップS326と同様にアクティベート承諾のレスポンス応答を待ち受けするが(S325)、やはり所定時間が経過すれば、実際に応答を受信していない状態でも次の処理に移行する。続くステップS328において、OTAマスタ52は、アクティベートが実行可能な適切なタイミングでアクティベートを実行する。
【0170】
以上のように第8実施形態によれば、車載側システム51に、クルマ31Aの乗員が入力操作を行うユーザインターフェース部54を備える。そして、ユーザインターフェース部54において行われた入力操作に基づく処理が、OTAセンタ1Fからの応答の受信を伴なうものである際に、その応答を受信するか又は所定時間が経過すると、次のユーザインターフェース処理に進む。これにより、OTAセンタ1Fからの応答を受信するまでに比較的長い時間を要する際においても、乗員に、ユーザインターフェース処理の実行に遅滞が生じているように感じさせることを回避できる。
【0171】
(第9実施形態)
図49に示す第9実施形態は第8実施形態の変形であり、
図48に示す処理から、ステップS315、S320、S327が除かれている。したがって、それらの処理において所定時間の経過待ちをすることなく、直ちに次の処理に移行する。また。ステップS328を実行すると、OTAマスタ52は、各処理についてドライバによる承諾が得られているか否かを判断し(S329)、少なくとも1つの処理で承諾が得られていなければOTAセンタ1Fにエラー通知を行う(S330)。
【0172】
(第10実施形態)
第10実施形態は、第7実施形態の変形であり、クルマ31Aの一部のドライバを事前にプレミアム会員としてOTAセンタ1Fに登録しておくことで、プレミアム会員が行ったリクエストに対する処理を優先して行うケースを示す。
尚、プレミアム会員は現在の更新対象車両の一例であり、プレミアム会員のVINリストは現在の更新対象車両のVINリストの一例である。OTAセンタや配信システムへのアクセス集中を防ぐ目的で、更新対象車両の一部にのみキャンペーンありの情報を通知する。
【0173】
<プレミアム会員のVINリスト登録>
図50に示すように、OTAセンタ1Fは、プレミアム会員のVINリストをOEMバックオフィス4から受け取ると(S331)、そのリストをデータベース部41Fに登録する(S332)。プレミアム会員のVINリストは、優先処理リストの一例である。尚、OTAセンタ1Fはプレミアム会員のVINリストの代わりに、クルマ31Aのオーナー情報に基づいて優先処理リストを作成しても良い。プレミアム会員のVINリストは、ソフトウェア更新の対象車両のVINリストの一例である。
【0174】
OEMバックオフィス4で把握しているソフトウェア更新の対象車両のうちの一部;例えば、プレミアム会員を対象にしてソフトウェア更新を行うことが想定される。例えば、ソフトウェア更新の対象車両が1000万台ある場合、クルマ31AとOTAセンタ1Fとの通信負荷やOTAセンタ1Fでの処理負荷を考慮して、プレミアム会員に指定されているクルマ31Aのみを対象に、他車両より先にソフトウェア更新することが想定される。この場合、OEMバックオフィス4からOTAセンタ1Fには、プレミアム会員に指定されているクルマ31AのVINリストが登録される。非プレミアム会員については、この時点ではクルマ31A、スマートフォン32又はPC33から車両構成情報同期のHTTPSリスエストを送信しても、後述するステップS333又はS341にて、キャンペーン情報なしとして処理される。
【0175】
OEMバックオフィス4からOTAセンタ1Fに登録されるVINリストは、OEMバックオフィス4からのVINリストの更新、あるいは、OTAセンタ1Fからの要求により更新される。これにより当初はソフトウェア更新できなかった非プレミアム会員のクルマ31Aは、VINリストに登録されるようになりソフトウェア更新される。尚、OEMバックオフィス4からOTAセンタ1FにVINリストが登録されない場合や、ブランクのVINリストが登録された場合は、全てのクルマ31Aをプレミアム会員として扱い、車両構成情報同期、キャンペーンの確認等が行われるようにしても良い。
【0176】
<車両構成情報野送信→キャンペーン情報の送信;OTAセンタ側の処理>
リクエストの送信元がクルマ31Aであれば、次のように処理する。
第7実施形態と同様にステップS251~S255を実行すると、
図51に示すように、コンピュートサービス関数部12Fは、車両構成情報に含まれているVINがプレミアム会員のVINリストに含まれているか否かを判断する(S333)。当該リストに含まれていれば、ステップS256以降を実行する。VINは車両のID情報の一例である。
【0177】
VINリストに含まれていなければ、コンピュートサービス関数部12Fは、ジョブID及び付加情報をAPIゲートウェイ部11Fに渡すが、その付加情報には、以下の送信条件を含める(S334)。
・イグニッションスイッチがONされた際に、OTAセンタ1Fにリクエストを送信するタイミング。例えば、毎回、翌日、N日後、停止等とする。但し、OTAセンタ1Fからのプッシュ通知があれば、それに応じて送信しても良い。
・今回収集する車両構成情報を、OTAセンタ1Fに送信することの有無。
例えば付加情報により、次にOTAセンタ1Fにリクエストを送信する時を指定できる。また、次回のリクエストを送信時には車両構成情報を含めないように指示することもできる。ステップS335~S340の処理は、ステップS257~S272と同様である。
【0178】
また、リクエストの送信元がスマートフォン32又はPC33であれば、次のように処理する。
図52に示すように、ステップS274を実行すると、コンピュートサーバ部62は、ステップS333と同様の判断を行う(S341)。VINがプレミアム会員のVINリストに含まれていれば、ステップS275以降を実行する。VINリストに含まれていなければ、コンピュートサーバ部62は、ステップS334と同様の判断を行う(S342)。続くステップS343~S345は、ステップS335、S338、S339と同様の処理であり、S338、S339ではコンピュートサーバ部62が、コンピュートサービス関数部12Fに替わって実行する。
【0179】
以上のように第10実施形態によれば、コンピュートサービス関数部12Fは、情報リクエスト1に対応するクルマ31AのVINがプレミアム会員のVINリストに登録されていなければ、クルマ31Aに対するキャンペーン情報があるか否かを判定することなく、そのリクエストに対する最終レスポンスとして、キャンペーン情報なしを示す情報を、APIゲートウェイ部11Fを介して車載側システム51に送信させる。これにより、プレミアム会員として登録された一部のユーザに対し、優先的にキャンペーン情報を送信することができる。
【0180】
(第11実施形態)
上記の実施形態では、情報リクエスト1として、車両構成情報のHTTPSリクエスト、キャンペーン情報登録のHTTPSリクエスト、案件情報登録のための案件情報のHTTPSリクエストを説明したが、情報リクエスト1は、他の情報でも良い。情報リクエスト1は、例えば、VIN(Vehicle Identification Number)などの車両を識別する情報でも良い。例えば、情報リクエスト1として、クルマ31A、スマートフォン32又はPC33からVINがOTAセンタに送信されても良い。車両識別情報は車両情報の一例である。OTAセンタから情報リクエスト2に対するレスポンス応答として、例えば、クルマ31Aに送信されるキャンペーン情報を説明している。情報リクエスト2はOTAセンタがOTAマスタ52に要求する各種の指示でも良い。
【0181】
(その他の実施形態)
サーバレスアーキテクチャを採用するアプリケーションプログラムは、AWSを利用するものに限らず、その他のクラウドコンピューティングサービスを利用しても良い。
情報携帯端末は、スマートフォンやパーソナルコンピュータに限らない。
OTAセンタが通信先とする外部は、車両やOTA運用者に限らない。
アクセス制御情報は、有効期限及び署名付きURLに限らない。
送信条件は、情報リクエスト2の送信を許容するエリア、例えば駐車場等であっても良い。
【0182】
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0183】
各装置等が提供する手段および/または機能は、実体的なメモリ装置に記録されたソフトウェアおよびそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。例えば、制御装置がハードウェアである電子回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【0184】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。