(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム
(51)【国際特許分類】
G06F 9/50 20060101AFI20231024BHJP
G06F 9/455 20180101ALI20231024BHJP
【FI】
G06F9/50 150D
G06F9/455 150
(21)【出願番号】P 2020191197
(22)【出願日】2020-11-17
【審査請求日】2022-05-24
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】古澤 徹
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2006-338264(JP,A)
【文献】特開2014-164568(JP,A)
【文献】米国特許出願公開第2020/0026546(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 9/455
G06F 9/48-9/50
H04B 7/26
(57)【特許請求の範囲】
【請求項1】
車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得する取得部と、
複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御
し、前記コンテナアプリケーションを実行させる前記装置とは異なる装置の各々の前記コンテナアプリケーションを停止させるように制御する制御部と、
を備える情報処理装置。
【請求項2】
前記制御部は、所定時間が経過する毎に、前記第1時間及び前記第2時間の各々を取得し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する、
請求項
1に記載の情報処理装置。
【請求項3】
前記制御部は、各装置に前記往復通信時間の要求をして各装置の前記往復通信時間を取得した後に、各装置の前記往復通信時間を用いて、前記第1時間及び前記第2時間を計算する、
請求項1
又は請求項2に記載の情報処理装置。
【請求項4】
車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得し、
複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御
し、前記コンテナアプリケーションを実行させる前記装置とは異なる装置の各々の前記コンテナアプリケーションを停止させるように制御する、
処理をコンピュータが実行する情報処理方法。
【請求項5】
車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得し、
複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御
し、前記コンテナアプリケーションを実行させる前記装置とは異なる装置の各々の前記コンテナアプリケーションを停止させるように制御する、
処理をコンピュータに実行させるための情報処理プログラム。
【請求項6】
車載機と、前記車載機との間で通信可能な複数のサーバとを含む情報処理システムであって、
前記車載機が、
前記車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を複数のサーバのうちのクラウドサーバへ出力し、
前記複数のサーバの各々が、
前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を前記クラウドサーバへ出力し、
前記クラウドサーバが、
前記車載機の前記第1時間と前記複数のサーバの各々についての前記第2時間とを取得し、
前記複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御
し、前記コンテナアプリケーションを実行させる前記装置とは異なる装置の各々の前記コンテナアプリケーションを停止させるように制御する、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システムに関する。
【背景技術】
【0002】
従来、コンテナ技術を用いてアプリケーションを管理する技術が知られている。
【0003】
特許文献1には、コンテナ技術を用いて車載機のアプリケーションを管理する技術が開示されている。具体的には、特許文献1には、車載OS(Operating System)上で稼働するコンテナ制御エージェントが、インターネット経由で取得したコンテナイメージを車載OS上でコンテナアプリケーションに展開して起動することが開示されている。
【0004】
また、特許文献2には、タスク定義に基づき、タスクを実行するために1つ又は複数のコンテナを稼働させるシステムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-66926号公報
【文献】特開2019-149192号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、車両向けのアプリケーションプログラム(以下、単に「アプリケーション」と称する。)はリアルタイム性が求められる場合がある。例えば、車両向けのアプリケーションの実行の開始から完了までに要する処理時間は所定時間以内であることが求められる場合がある。このため、車載機上においてアプリケーションが実行される場合は、アプリケーションの実行の開始から完了までに要する処理時間を考慮する必要がある。一方、外部のサーバ上においてアプリケーションが実行される場合には、車載機と外部サーバとの間の通信が発生するため、アプリケーションの処理時間だけではなく、車載機とサーバとの間の通信時間も加えた時間を考慮する必要がある。
【0007】
特許文献1には、インターネット経由で取得されたコンテナイメージが車載OS上でコンテナアプリケーションへ展開されて起動することが開示されているのみであり、コンテナアプリケーションの処理時間及び車両とサーバとの間の通信時間は考慮されていない。また、特許文献2には、タスク定義に基づきコンテナを稼働させるシステムが開示されているのみであって、特許文献1と同様に、コンテナアプリケーションの処理時間及び車両とサーバとの間の通信時間は考慮されていない。
【0008】
このため、上記特許文献1、2の従来技術は、コンテナアプリケーションの処理時間及び車両とサーバとの間の通信時間を考慮して、コンテナアプリケーションの処理結果を得る際に要する時間を短くすることができない、という課題がある。
【0009】
本発明は、コンテナアプリケーションの実行に要する処理時間及び車両とサーバとの間の往復通信に要する往復通信時間時間を考慮して、コンテナアプリケーションの処理結果を得る際に要する時間を短くすることを目的とする。
【課題を解決するための手段】
【0010】
第1態様の情報処理装置は、車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得する取得部と、複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する制御部と、を備える情報処理装置である。
【0011】
第2態様の情報処理装置の前記制御部は、前記コンテナアプリケーションを実行させる前記装置とは異なる装置の各々の前記コンテナアプリケーションを停止させるように制御する。
【0012】
第3態様の情報処理装置の前記制御部は、所定時間が経過する毎に、前記第1時間及び前記第2時間の各々を取得し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する。
【0013】
第4態様の情報処理装置の前記制御部は、各装置に前記往復通信時間の要求をして各装置の前記往復通信時間を取得した後に、各装置の前記往復通信時間を用いて、前記第1時間及び前記第2時間を計算する。
【0014】
第5態様の情報処理方法は、車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得し、複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する、処理をコンピュータが実行する情報処理方法である。
【0015】
第6態様の情報処理プログラムは、車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得すると共に、前記車載機との間で通信可能な複数のサーバの各々についての、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得し、複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する、処理をコンピュータに実行させるための情報処理プログラムである。
【0016】
第7態様の情報処理システムは、車載機と、前記車載機との間で通信可能な複数のサーバとを含む情報処理システムであって、前記車載機が、前記車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を複数のサーバのうちのクラウドサーバへ出力し、前記複数のサーバの各々が、前記サーバによって前記コンテナアプリケーションが実行された場合の処理時間と、前記車載機と前記サーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を前記クラウドサーバへ出力し、前記クラウドサーバが、前記車載機の前記第1時間と前記複数のサーバの各々についての前記第2時間とを取得し、前記複数のサーバの各々についての前記第2時間及び前記車載機の前記第1時間から最も短い時間を特定し、前記最も短い時間に対応する装置において前記コンテナアプリケーションを実行させるように制御する、情報処理システムである。
【発明の効果】
【0017】
以上説明したように本発明によれば、コンテナアプリケーションの実行に要する処理時間及び車両とサーバとの間の往復通信に要する往復通信時間時間を考慮して、コンテナアプリケーションの処理結果を得る際に要する時間を短くすることができる、という効果がある。
【図面の簡単な説明】
【0018】
【
図4】実施形態に係る情報処理システムの概略ブロック図である。
【
図5】実施形態に係る各装置のコンピュータの構成例を示す図である。
【
図6】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【
図7】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【
図8】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【
図9】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【
図10】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【
図11】実施形態に係る情報処理システムで行われるシーケンスの一例である。
【発明を実施するための形態】
【0019】
<実施形態>
【0020】
図1~
図3に、本実施形態を説明するための図を示す。
図1に示されるように、車両に搭載された車載機にコンテナが配置され、コンテナ化されたアプリケーションプログラム(以下、単に「コンテナアプリケーション」と称する。)が車載機において実行される場合を考える。この場合、車載機は、コンテナを実行するためのコンテナ実行基盤と、車載機のオペレーティングシステムを表す車載機OSと、ハードウエアとを備えている。コンテナ実行基盤と車載機OSとは、ソフトウエアによって実現される。コンテナアプリケーションが実行する処理としては、例えば、車載カメラによって撮像された画像に写る物体追跡を実行するような処理が挙げられる。
【0021】
コンテナアプリケーションが車載機において実行される場合、コンテナアプリケーションの処理結果を得る時間としては、コンテナアプリケーションの実行の開始から完了までに要する処理時間のみを考慮すればよい。しかし、車載機の計算資源は限られているため、例えば、他の計算処理も並行して行われる場合には、コンテナアプリケーションの処理時間は長くなることが予想される。
【0022】
また、車両の状態又は車両の周辺環境の影響により、車載機の処理速度が低下する場合がある。例えば、車両のバッテリー残量が少ない場合には、車載機が省電力モード等に切り替わることにより、車載機の処理速度が低下する場合もある。又は、車両が高気温環境下を走行しているときには、同様に、車載機の処理速度が低下する場合もある。
【0023】
このため、
図2に示されるように、クラウドサーバ又はエッジサーバにてコンテナアプリケーションを実行させることにより、上記の問題を解決することが考えられる。この場合、クラウドサーバ又はエッジサーバ(以下、単に「サーバ」とも称する。)は、車載機と同様に、コンテナ実行基盤、車載機OS、及びハードウエアを有しており、コンテナアプリケーションを実行可能なように構成されている。なお、エッジサーバと車載機との間の物理的距離は、クラウドサーバと車載機との間の距離よりも短い。このため、エッジサーバは、クラウドサーバよりもよりリアルタイムにデータを処理することが可能なように構成されている。
【0024】
サーバは、車載機に比べると計算能力が高く、コンテナアプリケーションの処理時間が短いといった利点がある。しかし、この場合には、車載機とサーバとの間において通信を行う必要があり、その通信により、処理結果を得るまでに時間を要する場合がある。例えば、車載機とサーバとの間の電波状況又はネットワークのトラフィック状況によって異なるものとなる。車載機とサーバとの間の電波状況又はネットワークのトラフィック状況によっては、車載機とサーバとの間の通信時間が長くなる可能性がある。そのため、コンテナアプリケーションをサーバにて実行させる場合には、車載機はその処理結果を即時に得ることができないといった事態も発生する。
【0025】
そこで、本実施形態の情報処理システムは、コンテナアプリケーションの処理結果が得られる時間が最も短くなるような装置にコンテナを配置し、その装置においてコンテナアプリケーションが実行されるように制御する。
【0026】
具体的には、本実施形態の情報処理システムは、コンテナアプリケーションの処理時間と、車載機とクラウドサーバ又はエッジサーバとの間の往復通信に要する往復通信時間(RTT : Round-Trip Time)とに基づいて、車載機、クラウドサーバ、及びエッジサーバの何れの環境においてコンテナアプリケーションを実行させるのが適切であるのか判定する。そして、本実施形態の情報処理システムは、コンテナアプリケーションの処理結果が最も速く得られる環境においてコンテナアプリケーションを実行させるように制御する。
【0027】
例えば、
図3に示されるような例を想定する。
図3に示されるように、コンテナアプリケーションAを車載機が実行した場合にはその処理時間は10msであり、コンテナアプリケーションAをクラウドサーバが実行した場合にはその処理時間は1msであり、車載機とクラウドサーバとの間の往復通信時間が30msである場合を想定する。この場合には、車載機がコンテナアプリケーションAを実行することによりその処理結果を得るときには10msを要するのに対し、クラウドサーバがコンテナアプリケーションAを実行することにより車載機がその処理結果を得るときには31msを要する。このため、この場合には、本実施形態の情報処理システムは、車載機にてコンテナアプリケーションAを実行させるように制御する。
【0028】
一方、
図3に示されるように、コンテナアプリケーションBを車載機が実行した場合にはその処理時間は100msであり、コンテナアプリケーションBをクラウドサーバが実行した場合にはその処理時間は10msであり、車載機とクラウドサーバとの間の往復通信時間が30msである場合を想定する。この場合には、車載機がコンテナアプリケーションBを実行することによりその処理結果を得るときには100msを要するのに対し、クラウドサーバがコンテナアプリケーションBを実行することにより車載機がその処理結果を得るときには40msを要する。このため、この場合には、本実施形態の情報処理システムは、クラウドサーバにてコンテナアプリケーションBを実行させるように制御する。これにより、車載機がコンテナアプリケーションの処理結果を得る際に要する時間を短くすることができる。
【0029】
なお、上述したように、コンテナアプリケーションの処理時間及び車載機とサーバとの間の往復通信時間は、車両が位置する場所又は時刻によって大きく変動する。このため、本実施形態の情報処理システムは、所定時間が経過する毎にこれらの時間を計測し、コンテナアプリケーションの処理結果が最も速く得られる環境においてコンテナアプリケーションを実行させるように制御する。
【0030】
以下、具体的に説明する。
【0031】
(情報処理システム)
【0032】
図4は、実施形態に係る情報処理システム10の機能構成の一例を示すブロック図である。情報処理システム10は、
図4に示されるように、車載機12と、情報処理装置の一例であるクラウドサーバ14と、複数のエッジサーバ16-1,16-2,・・・,16-Nとを備える。なお、以下では、複数のエッジサーバ16-1,16-2,・・・,16-Nのうちの何れか1つのエッジサーバを単に「エッジサーバ16」と称する。車載機12とクラウドサーバ14とエッジサーバ16とは、例えば、インターネット等のネットワーク18を介して接続される。
【0033】
(車載機)
【0034】
車載機12は、後述するクラウドサーバ14によるコンテナアプリケーションの実行の割り当てに応じて、コンテナアプリケーションを実行する。又は、車載機12は、クラウドサーバ14又はエッジサーバ16等の他の環境によって実行されたコンテナアプリケーションの処理結果を受信する。車載機12は、
図4に示されるように、送受信部120と、測定部122と、イメージ記憶部124と、制御部126とを備えている。
【0035】
送受信部120は、クラウドサーバ14又はエッジサーバ16との間においてデータの送受信を行う。
【0036】
測定部122は、クラウドサーバ14から出力された要求信号に応じて、車載機12においてコンテナアプリケーションを実行した場合の処理時間を測定する。
【0037】
イメージ記憶部124には、コンテナアプリケーションを実行するためのデータであるコンテナイメージが格納されている。コンテナイメージは、実行されているコンテナから生成されたイメージファイルであり、コンテナアプリケーションの実行に必要なデータが含まれている。
【0038】
制御部126は、クラウドサーバ14によるコンテナアプリケーションの実行の割り当てに応じて、イメージ記憶部144に格納されたコンテナイメージを読み出し、コンテナアプリケーションを実行する。
【0039】
(クラウドサーバ)
【0040】
クラウドサーバ14は、コンテナアプリケーションの実行を何れの環境にて実行させるのかを決定する。クラウドサーバ14は、
図4に示されるように、送受信部140と、測定部142と、取得部143と、イメージ記憶部144と、制御部146とを備えている。
【0041】
送受信部140は、車載機12又はエッジサーバ16との間においてデータの送受信を行う。
【0042】
測定部142は、クラウドサーバ14においてコンテナアプリケーションを実行した場合の処理時間を測定する。
【0043】
取得部143は、車載機12においてコンテナアプリケーションを実行した場合の処理時間を取得する。また、取得部143は、エッジサーバ16においてコンテナアプリケーションを実行した場合の処理時間を取得する。また、取得部143は、測定部142によって測定された、クラウドサーバ14においてコンテナアプリケーションを実行した場合の処理時間を取得する。
【0044】
車載機12においてコンテナアプリケーションが実行される場合には、コンテナアプリケーションの処理結果を他の機器から取得する必要はないため、他の機器との間における往復通信時間を考慮する必要はない。
【0045】
一方、クラウドサーバ14又はエッジサーバ16等のサーバにおいてコンテナアプリケーションが実行される場合には、車載機12は、ネットワーク18を介してその処理結果を取得する必要がある。このため、サーバにおいてコンテナアプリケーションが実行される場合には、車載機12とサーバとの間の往復通信時間を考慮する必要がある。
【0046】
そのため、取得部143は、車載機12においてコンテナアプリケーションが実行される場合には、車載機12においてコンテナアプリケーションを実行した場合の処理時間を第1時間として取得する。なお、第1時間は、車載機12によるコンテナアプリケーションの実行に関する品質指標でもある。
【0047】
一方、取得部143は、クラウドサーバ14又はエッジサーバ16等のサーバにおいてコンテナアプリケーションが実行される場合には、車載機12とサーバとの間の往復通信に要する往復通信時間と、当該サーバにてコンテナアプリケーションを実行した場合の処理時間との和を計算する。そして、取得部143は、複数のサーバの各々について、往復通信時間と処理時間との和を第2時間として取得する。第2時間は、クラウドサーバ14及びエッジサーバ16を含む複数のサーバの各々について設定される。なお、第2時間は、サーバによるコンテナアプリケーションの実行に関する品質指標でもある。
【0048】
イメージ記憶部144には、コンテナアプリケーションを実行するためのデータであるコンテナイメージが格納されている。
【0049】
制御部146は、車載機12、クラウドサーバ14、及びエッジサーバ16の何れにおいてコンテナアプリケーションを実行させるのかを決定する。そして、制御部146は、コンテナアプリケーションを実行すると決定された装置において、コンテナアプリケーションを実行させるように制御する。具体的には、制御部146は、取得部143により取得された第1時間及び複数のサーバの各々についての第2時間から最も短い時間を特定し、最も短い時間に対応する装置においてコンテナアプリケーションを実行させるように制御する。
【0050】
これにより、コンテナアプリケーションの処理結果を得る際に要する時間を短くすることができる。
【0051】
(エッジサーバ)
【0052】
エッジサーバ16は、クラウドサーバ14によるコンテナアプリケーションの実行の割り当てに応じて、コンテナアプリケーションを実行する。エッジサーバ16は、
図4に示されるように、送受信部160と、測定部162と、イメージ記憶部164と、制御部166とを備えている。
【0053】
送受信部160は、車載機12又はクラウドサーバ14との間においてデータの送受信を行う。
【0054】
測定部162は、クラウドサーバ14から出力された要求信号に応じて、エッジサーバ16においてコンテナアプリケーションを実行した場合の処理時間を測定する。
【0055】
イメージ記憶部164には、コンテナアプリケーションを実行するためのデータであるコンテナイメージが格納されている。
【0056】
制御部166は、クラウドサーバ14によるコンテナアプリケーションの実行の割り当てに応じて、イメージ記憶部164に格納されたコンテナイメージを読み出し、コンテナアプリケーションを実行する。
【0057】
車載機12、クラウドサーバ14、及びエッジサーバ16は、例えば、
図5に示すようなコンピュータ50によって実現することができる。車載機12、クラウドサーバ14、及びエッジサーバ16を実現するコンピュータ50は、Central Processing Unit(CPU)51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータは、入出力装置等(図示省略)が接続される入出力interface(I/F)54、及び記録媒体59に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータは、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
【0058】
記憶部53は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータを機能させるためのプログラムが記憶されている。CPU51は、プログラムを記憶部53から読み出してメモリ52に展開し、プログラムが有するプロセスを順次実行する。
【0059】
次に、実施形態の情報処理システム10の作用について説明する。
【0060】
情報処理システム10のクラウドサーバ14が、コンテナアプリケーションの実行を制御する処理の開始を表す指示信号を受け付けると、
図6~
図11に示されるシーケンスの実行が開始される。なお、コンテナアプリケーションが割り当てられた装置を、以下では「デプロイ環境」とも称する。
【0061】
本実施形態の情報処理システム10は、対象のコンテナアプリケーションが初期に実行される装置を表す初期デプロイ環境を選定した後に、その初期デプロイ環境においてコンテナアプリケーションを実行させる。そして、情報処理システム10は、初期デプロイ環境においてコンテナアプリケーションが実行された後、所定時間が経過する毎に、コンテナアプリケーションを実行させるデプロイ環境を表す再デプロイ環境を選定する。以下、具体的に説明する。
【0062】
図6~
図8は、初期デプロイ環境を選定する際に実行されるシーケンスである。
【0063】
ステップS100において、クラウドサーバ14の制御部146は、自身のイメージ記憶部144から対象のコンテナイメージを読み出し、コンテナアプリケーションを実行する。このとき、クラウドサーバ14の測定部142は、コンテナアプリケーションの実行が開始された時刻を取得する。そして、クラウドサーバ14の測定部142は、コンテナアプリケーションの実行が完了した際には、コンテナアプリケーションの処理が完了した時刻を取得する。
【0064】
ステップS102において、クラウドサーバ14の制御部146は、送受信部120を介して車載機12に対して要求信号を送信する。この要求信号は、応答信号の返送を要求する信号である。
【0065】
ステップS104において、車載機12の送受信部120は、上記ステップS102でクラウドサーバ14から送信された要求信号を受信し、要求信号に対する応答信号をクラウドサーバ14へ送信する。
【0066】
ステップS106において、クラウドサーバ14の送受信部140は、上記ステップS104で車載機12から送信された応答信号を受信する。
【0067】
また、ステップS106において、クラウドサーバ14の取得部143は、上記ステップS102で送信した要求信号の時刻と上記ステップS106で受信された応答信号の受信時刻とに基づいて、車載機12とクラウドサーバ14との間の往復通信に要する往復通信時間を取得する。また、ステップS106において、クラウドサーバ14の取得部143は、クラウドサーバ14の測定部142によって計測されたコンテナアプリケーションの開始時刻と完了時刻とに基づいて、コンテナアプリケーションの処理時間を取得する。
【0068】
そして、ステップS106において、クラウドサーバ14の取得部143は、車載機12とクラウドサーバ14との間の往復通信時間とコンテナアプリケーションの処理時間との和を計算することにより、クラウドサーバ14の第2時間を取得する。
【0069】
ステップS108において、クラウドサーバ14の制御部146は、送受信部120を介して車載機12に対して要求信号を送信する。この要求信号は、エッジサーバ16に対してコンテナアプリケーションの起動を要求する信号である。
【0070】
ステップS110において、エッジサーバ16の送受信部160は、上記ステップS108でクラウドサーバ14から送信された要求信号を受信する。また、エッジサーバ16の制御部166は、イメージ記憶部164から対象のコンテナアプリケーションのコンテナイメージを読み出し、コンテナアプリケーションを実行する。このとき、エッジサーバ16の測定部162は、コンテナアプリケーションの実行が開始された時刻を取得する。そして、エッジサーバ16の測定部162は、コンテナアプリケーションの実行が完了した際には、コンテナアプリケーションの処理が完了した時刻を取得する。
【0071】
ステップS112において、エッジサーバ16の送受信部160は、コンテナアプリケーションの起動が成功したことを表す通知をクラウドサーバ14へ送信する。
【0072】
ステップS114において、クラウドサーバ14の制御部146は、送受信部140を介してエッジサーバ16に対して要求信号を送信する。この要求信号は、エッジサーバ16の第2時間の計算を要求する信号である。
【0073】
ステップS116において、エッジサーバ16の制御部166は、送受信部160を介して車載機12に対して要求信号を送信する。この要求信号は、応答信号の返送を要求する信号である。
【0074】
ステップS118において、車載機12の送受信部120は、上記ステップS116でエッジサーバ16から送信された要求信号を受信し、要求信号に対する応答信号をエッジサーバ16へ送信する。
【0075】
ステップS120において、エッジサーバ16の送受信部160は、上記ステップS118で車載機12から送信された応答信号を受信する。
【0076】
また、ステップS120において、エッジサーバ16の制御部166は、上記ステップS116で送信した要求信号の時刻と上記ステップS120で受信された応答信号とに基づいて、車載機12とエッジサーバ16との間の往復通信時間を取得する。また、ステップS120において、エッジサーバ16の制御部166は、エッジサーバ16の測定部162によって計測されたコンテナアプリケーションの開始時刻と完了時刻とに基づいて、コンテナアプリケーションの処理時間を取得する。
【0077】
そして、ステップS120において、エッジサーバ16の制御部146は、車載機12とエッジサーバ16との間の往復通信時間と、コンテナアプリケーションの処理時間との和を計算することにより、エッジサーバ16の第2時間を取得する。
【0078】
ステップS122において、エッジサーバ16の制御部166は、送受信部160を介してクラウドサーバ14に対して第2時間を送信する。
【0079】
なお、
図6では、1台のエッジサーバのみしか図示されていないが、実際には、クラウドサーバ14は、複数のエッジサーバの各々についての第2時刻を取得する。
【0080】
次に
図7のステップS200において、クラウドサーバ14の制御部146は、送受信部140を介して車載機12に対して要求信号を送信する。この要求信号は、車載機12に対してコンテナアプリケーションの起動を要求する信号である。
【0081】
ステップS202において、車載機12の送受信部120は、上記ステップS200でクラウドサーバ14から送信された要求信号を受信する。また、車載機12の制御部126は、イメージ記憶部124から対象のコンテナアプリケーションのコンテナイメージを読み出し、コンテナアプリケーションを実行する。このとき、車載機12の測定部122は、コンテナアプリケーションの実行が開始された時刻を取得する。そして、車載機12の測定部122は、コンテナアプリケーションの実行が完了した際には、コンテナアプリケーションの処理が完了した時刻を取得する。
【0082】
ステップS204において、車載機12の送受信部120は、コンテナアプリケーションの起動が成功したことを表す通知をクラウドサーバ14へ送信する。
【0083】
ステップS206において、クラウドサーバ14の制御部146は、送受信部140を介して車載機12に対して要求信号を送信する。この要求信号は、車載機12の第1時間の取得を要求する信号である。
【0084】
ステップS208において、車載機12の制御部126は、車載機12の測定部122によって計測されたコンテナアプリケーションの開始時刻と完了時刻とに基づいて、コンテナアプリケーションの処理時間を表す第1時間を取得する。
【0085】
ステップS210において、車載機12の制御部126は、送受信部120を介してクラウドサーバ14に対して第1時間を送信する。
【0086】
ステップS212において、クラウドサーバ14の送受信部140は、車載機12から送信された第1時間を受信する。また、ステップS212において、クラウドサーバ14の制御部146は、車載機12の第1時間、複数のエッジサーバ16の各々についての第2時間、及びクラウドサーバ14の第2時間から最も短い時間を特定する。
【0087】
ステップS214において、クラウドサーバ14の制御部146は、上記ステップS212で特定された最も短い時間に対応する装置を初期デプロイ環境として選定する。そして、クラウドサーバ14の制御部146は、初期デプロイ環境においてコンテナアプリケーションを実行させるように制御する。具体的には、クラウドサーバ14の制御部146は、
図8に示すシーケンスを実行する。
【0088】
ステップS300において、クラウドサーバ14の制御部146は、送受信部140を介して初期デプロイ環境に対応する装置に対して要求信号を送信する。この要求信号は、コンテナアプリケーションの起動を要求する信号である。
【0089】
なお、初期デプロイ環境は、車載機12、エッジサーバ16、及びクラウドサーバ14のうちの何れか1つの装置である。初期デプロイ環境がクラウドサーバ14である場合には、クラウドサーバ14の制御部146は、要求信号を外部の装置へは送信せずに、自身のイメージ記憶部144からコンテナイメージを読み出し、コンテナアプリケーションを実行する。
【0090】
ステップS302において、初期デプロイ環境に対応する装置は、クラウドサーバ14から送信された要求信号を受信する。そして、ステップS302において、初期デプロイ環境に対応する装置は、自身のイメージ記憶部144からコンテナイメージを読み出し、コンテナアプリケーションを起動する。
【0091】
ステップS304において、初期デプロイ環境に対応する装置は、コンテナアプリケーションの起動が成功したことを表す通知をクラウドサーバ14へ送信する。
【0092】
次に、クラウドサーバ14の制御部146は、コンテナアプリケーションを実行させる初期デプロイ環境とは異なる装置の各々のコンテナアプリケーションを停止させるように制御する。
【0093】
具体的には、ステップS306において、クラウドサーバ14の制御部146は、送受信部140を介して初期デプロイ環境とは異なる他の装置(図では「その他環境」と表記)に対して要求信号を送信する。この要求信号は、コンテナアプリケーションの停止を要求する信号である。
【0094】
ステップS308において、初期デプロイ環境とは異なる他の装置は、クラウドサーバ14から送信された要求信号を受信する。そして、ステップS308において、初期デプロイ環境とは異なる他の装置は、コンテナアプリケーションを停止する。
【0095】
ステップS310において、初期デプロイ環境とは異なる他の装置は、コンテナアプリケーションを停止したことを表す通知をクラウドサーバ14へ送信する。
【0096】
このようにして、クラウドサーバ14は初期デプロイ環境を選定し、初期デプロイ環境においてコンテナアプリケーションが実行されるように制御する。
【0097】
次に、初期デプロイ環境の選定から所定時間が経過すると、
図9~
図11に示されるシーケンスの実行が開始される。具体的には、クラウドサーバ14は、所定時間が経過する毎に、車載機12の第1時間及び複数のサーバの各々についての第2時間を取得し、最も短い時間に対応する装置においてコンテナアプリケーションを実行させるように制御する。
【0098】
図9のステップS400において、クラウドサーバ14の制御部146は、送受信部140を介してデプロイ環境に対して要求信号を送信する。この要求信号は、デプロイ環境に対応する装置に対して、第1時間又は第2時間の計算を要求する信号である。
【0099】
ステップS402において、デプロイ環境に対応する装置は、上記ステップS400でクラウドサーバ14から送信された要求信号を受信する。そして、ステップS402において、デプロイ環境に対応する装置は、第1時間又は第2時間を取得する。なお、デプロイ環境が車載機12である場合には、第1時間が再度計測される。一方、デプロイ環境がエッジサーバ16である場合には、第2時間が再度計測される。
【0100】
ステップS404において、デプロイ環境に対応する装置は、上記ステップS402で計測された第1時間又は第2時間をクラウドサーバ14へ送信する。
【0101】
ステップS406において、クラウドサーバ14の送受信部120は、デプロイ環境に対応する装置から送信された、第1時間又は第2時間を受信する。そして、ステップS406において、クラウドサーバ14の制御部146は、デプロイ環境に対応する装置とは異なる装置にコンテナアプリケーションを実行させることを表す再デプロイが必要であるか否かを判定する。
【0102】
例えば、クラウドサーバ14の制御部146は、上記ステップS402で再計測された第1時間又は第2時間が所定の閾値以上である場合には、再デプロイが必要であると判定する。
【0103】
クラウドサーバ14により再デプロイが必要であると判定された場合、
図10~
図11に示されるシーケンスが実行される。
【0104】
ステップS500において、クラウドサーバ14の制御部146は、送受信部140を介してデプロイ環境とは異なる装置の各々に対して要求信号を送信する。この要求信号は、コンテナアプリケーションの起動を要求する信号である。
【0105】
ステップS502において、デプロイ環境とは異なる装置の各々は、上記ステップS500でクラウドサーバ14から送信された要求信号を受信する。そして、ステップS502において、デプロイ環境とは異なる装置の各々は、自身のイメージ記憶部からコンテナイメージを読み出し、コンテナアプリケーションを起動する。このとき、デプロイ環境とは異なる装置の各々の測定部は、コンテナアプリケーションの実行が開始された時刻を取得する。そして、測定部は、コンテナアプリケーションの実行が完了した際には、コンテナアプリケーションの処理が完了した時刻を取得する。
【0106】
ステップS504において、デプロイ環境とは異なる装置の各々は、コンテナアプリケーションの起動が成功したことを表す通知をクラウドサーバ14へ送信する。
【0107】
ステップS506において、クラウドサーバ14の制御部146は、送受信部140を介してデプロイ環境とは異なる装置の各々に対して要求信号を送信する。この要求信号は、第1時間又は第2時間の計算を要求する信号である。
【0108】
ステップS508において、デプロイ環境とは異なる装置の各々は、上記ステップS506でクラウドサーバ14から送信された要求信号を受信する。そして、ステップS508において、デプロイ環境とは異なる装置の各々は、第1時間又は第2時間計測する。
【0109】
ステップS510において、デプロイ環境とは異なる装置の各々は、上記ステップS502で計測された第1時間又は第2時間をクラウドサーバ14へ送信する。
【0110】
ステップS512において、クラウドサーバ14の送受信部140は、上記ステップS510で各装置から送信された第1時間又は第2時間を受信する。そして、ステップS512において、クラウドサーバ14の制御部146は、車載機12の第1時間、エッジサーバ16の各々についての第2時間、及びクラウドサーバ14の第2時間から最も短い時間を特定する。そして、ステップS512において、クラウドサーバ14の制御部146は、最も短い時間に対応する装置を再デプロイ環境として設定し、再デプロイ環境においてコンテナアプリケーションを実行させるように制御する。
【0111】
図11に示すステップS600において、クラウドサーバ14の制御部146は、送受信部140を介して再デプロイ環境に対応する装置に対して要求信号を送信する。この要求信号は、コンテナアプリケーションの起動を要求する信号である。
【0112】
ステップS602において、再デプロイ環境に対応する装置は、上記ステップS600でクラウドサーバ14から送信された要求信号を受信する。そして、ステップS602において、再デプロイ環境に対応する装置は、自身のイメージ記憶部からコンテナイメージを読み出し、コンテナアプリケーションを起動する。
【0113】
ステップS604において、再デプロイ環境に対応する装置は、コンテナアプリケーションの起動が成功したことを表す通知をクラウドサーバ14へ送信する。
【0114】
ステップS606において、クラウドサーバ14の制御部146は、送受信部140を介してデプロイ環境とは異なるその他の環境に対応する装置の各々に対して要求信号を送信する。この要求信号は、コンテナアプリケーシの停止を要求する信号である。
【0115】
ステップS608において、再デプロイ環境とは異なる他の装置は、クラウドサーバ14から送信された要求信号を受信する。そして、ステップS608において、再デプロイ環境とは異なる他の装置は、コンテナアプリケーションを停止する。
【0116】
ステップS610において、再デプロイ環境とは異なる他の装置は、コンテナアプリケーションを停止したことを表す通知をクラウドサーバ14へ送信する。
【0117】
以上説明したように、実施形態に係る情報処理システム10のクラウドサーバは、車載機によってコンテナアプリケーションが実行された場合の処理時間を表す第1時間を取得する。また、クラウドサーバは、クラウドサーバ及びエッジサーバを含む複数のサーバの各々についての、サーバによってコンテナアプリケーションが実行された場合の処理時間と、車載機とサーバとの間の往復通信に要する往復通信時間との和から算出される第2時間を取得する。そして、クラウドサーバは、複数のサーバの各々についての第2時間及び車載機の第1時間から最も短い時間を特定し、最も短い時間に対応する装置においてコンテナアプリケーションを実行させるように制御する。これにより、コンテナアプリケーションの実行に要する処理時間及び車両とサーバとの間の往復通信時間時間を考慮して、コンテナアプリケーションの処理結果を得る際に要する時間を短くすることができる。
【0118】
また、本実施形態のクラウドサーバは、所定時間が経過する毎に、車載機の第1時間及び複数のサーバの各々についての第2時間の各々を取得し、最も短い時間に対応する装置においてコンテナアプリケーションを実行させるように制御する。これにより、車載機とサーバとの間の往復通信時間及びコンテナアプリケーションの処理時間が外部環境に応じて変化する場合であっても、コンテナアプリケーションの処理結果を得る時間を短くしつつ、コンテナアプリケーションの実行を継続することができる。
【0119】
なお、上記の実施形態における各装置で行われる処理は、プログラムを実行することにより行われるソフトウエア処理として説明したが、ハードウエアで行う処理としてもよい。或いは、ソフトウエア及びハードウエアの双方を組み合わせた処理としてもよい。また、ROMに記憶されるプログラムは、各種記憶媒体に記憶して流通させるようにしてもよい。
【0120】
さらに、本発明は、上記に限定されるものでなく、上記以外にも、その主旨を逸脱しない範囲内において種々変形して実施可能であることは勿論である。
【0121】
例えば、上記実施形態では、クラウドサーバ14がコンテナアプリケーションを実行させる装置を決定する場合を例に説明したが、これに限定されるものではない。例えば、複数のエッジサーバ16のうちの何れか1つのエッジサーバが、上記実施形態のクラウドサーバ14の機能を有していてもよい。
【符号の説明】
【0122】
10 情報処理システム
12 車載機
14 クラウドサーバ
16 エッジサーバ
18 ネットワーク
50 コンピュータ
120 送受信部
122 測定部
124 イメージ記憶部
126 制御部
140 送受信部
142 測定部
143 取得部
144 イメージ記憶部
146 制御部
160 送受信部
162 測定部
164 イメージ記憶部
166 制御部