(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023076556
(43)【公開日】2023-06-01
(54)【発明の名称】移動体管理装置
(51)【国際特許分類】
G08G 1/00 20060101AFI20230525BHJP
G16Y 40/20 20200101ALI20230525BHJP
G16Y 20/20 20200101ALI20230525BHJP
G16Y 10/40 20200101ALI20230525BHJP
【FI】
G08G1/00 A
G16Y40/20
G16Y20/20
G16Y10/40
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2023049572
(22)【出願日】2023-03-27
(62)【分割の表示】P 2020563244の分割
【原出願日】2019-12-23
(31)【優先権主張番号】P 2018246488
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000005016
【氏名又は名称】パイオニア株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(72)【発明者】
【氏名】片多 啓二
(72)【発明者】
【氏名】幸田 健志
(57)【要約】
【課題】実行を指示した処理に対する車両の状態に関する統計データを好適に取得することが可能な移動体管理装置を提供する。
【解決手段】ビークルクラウドサーバ30は、複数の車両の車載端末20が正常にジョブリクエストJR2を受信できたことを示す受信結果であるアップロードデータUD2を受信し、アップロードデータUD2に基づき、ジョブリクエストJR2を正常に受信できた車両数であるインアクティブ車両数を計数する。また、ビークルクラウドサーバ30は、ジョブのアクティブ遷移回数が1回以上となるアップロードデータUD2を受信し、当該アップロードデータUD2を送信した車両数及び延べ車両数を表すアクティプ車両数及びアクティブ延べ車両数を計数する。そして、ビークルクラウドサーバ30は、インアクティブ車両数、アクティプ車両数、アクティブ延べ車両数の情報を含むアップロードデータUD1をサービスクラウドサーバ40へ送信する。
【選択図】
図17
【特許請求の範囲】
【請求項1】
複数の移動体に対して情報管理装置からの要求信号に基づく指令情報を送信する第1送信部と、
前記指令情報を正常に受信できた移動体の数を計数する第1計数部と、
前記指令情報に対する応答情報を受信する受信部と、
前記応答情報に基づき、前記応答情報を送信した移動体の数を計数する第2計数部と、
前記正常に受信できた移動体の数と、前記応答情報を送信した移動体の数とに関する移
動体数情報と、のうち少なくとも一方を前記情報管理装置に送信する第2送信部と、
を備えることを特徴とする移動体管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ収集における状態管理の技術に関する。
【背景技術】
【0002】
従来から、車両に設置されたセンサの情報をサーバ装置において収集する技術が知られている。例えば、特許文献1には、車両等の移動体に設置されたセンサの出力に基づいて部分地図の変化点を検出した場合に、当該変化点に関する変化点情報をサーバ装置に送信する運転支援装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両に関する種々のサービスを提供する会社がそれぞれサーバを運営することで、車両に対してアップロードすべきデータを指定し、車両を管理するサーバ(車両管理サーバ)を介して、サービス提供に必要な車両に関する様々な情報を収集することが今後想定される。このようなシステムでは、車両は、指示されたデータを所定の実行条件を満たすときにアップロードすることをジョブとして認識し、当該ジョブを上述の実行条件が満たされたときに実行することが求められる。
【0005】
一方、サービス会社のサーバが生成したデータ収集依頼は、車両に配信される保証はなく、車両管理サーバが高負荷である場合や、収集条件を満たす車両がなくデータ収集依頼を配信すべき車両が存在しない場合などでは、車両に配信されない。また、車両側が高負荷となり車両からデータ収集依頼が削除された場合などでは、データ収集依頼は車両により適切に実行されない。以上を勘案した場合、データ収集依頼の有効性やコスト効率、収集データの信頼性などを的確に把握するには、各車両に実行を指示した処理の状態を適切に管理する必要がある。
【0006】
本発明は、上記のような課題を解決するためになされたものであり、移動体に実行を指示した処理の状態に関する統計データを好適に取得することが可能な移動体管理装置を提供することを主な目的とする。
【課題を解決するための手段】
【0007】
請求項に記載の発明は、移動体管理装置であって、複数の移動体に対して情報管理装置からの要求信号に基づく指令情報を送信する第1送信部と、前記指令情報を正常に受信できた移動体の数を計数する第1計数部と、前記指令情報に対する応答情報を受信する受信部と、前記応答情報に基づき、前記応答情報を送信した移動体の数を計数する第2計数部と、前記正常に受信できた移動体の数と、前記応答情報を送信した移動体の数とに関する移動体数情報と、のうち少なくとも一方を前記情報管理装置に送信する第2送信部と、
を備える。
【図面の簡単な説明】
【0008】
【
図1】第1実施例に係るジョブ配信システムの概略構成を示す。
【
図2】車載端末と、ビークルクラウドサーバと、サービスクラウドサーバとの間のデータの流れを概略的に示した図である。
【
図3】車載端末の内部構成を示すブロック図である。
【
図4】ジョブに対する車載端末の状態遷移を概略的に示した図である。
【
図5】ビークルクラウドサーバ及びサービスクラウドサーバの内部構成を示すブロック図である。
【
図6】ジョブリクエストのデータ構造の一例である。
【
図8】車載端末がジョブリクエストに基づきビークルクラウドサーバに対して送信するアップロードデータのデータ構造の一例である。
【
図9】ビークルクラウドサーバがジョブリクエストに基づきサービスクラウドサーバに対して送信するアップロードデータのデータ構造の一例である。
【
図10】有効な状態管理フラグが含まれるジョブリクエストを受信した場合に車載端末が実行する処理手順を示すフローチャートである。
【
図11】有効な状態管理フラグを含むジョブリクエストを受信したビークルクラウドサーバが実行する処理手順を示すフローチャートを示す。
【
図12】適用例におけるジョブ配信システムの構成例を示す。
【
図14】第2実施例に係る車載端末の内部構成を示すブロック図である。
【
図15】第2実施例に係るアップロードデータのデータ構造の一例である。
【
図16】有効な状態管理フラグが含まれるジョブリクエストを受信した場合に第2実施例に係る車載端末が実行する処理手順を示すフローチャートである。
【
図17】有効な状態管理フラグを含むジョブリクエストを受信した第2実施例に係るビークルクラウドサーバが実行する処理手順を示すフローチャートを示す。
【
図18】第3実施例に係るアップロードデータのデータ構造の一例である。
【
図19】第3実施例に係るビークルクラウドサーバの内部構成を概略的に示した図である。
【
図20】有効な状態管理フラグを含むジョブリクエストを受信した第3実施例に係る車載端末が実行する処理手順を示すフローチャートである。
【
図21】有効な状態管理フラグを含むジョブリクエストを受信した第3実施例に係るビークルクラウドサーバが実行する処理手順を示すフローチャートを示す。
【発明を実施するための形態】
【0009】
1つの好適な実施形態は、移動体管理装置であって、情報管理装置が発した要求信号を受信する第1受信部と、前記要求信号に応じた指令情報を生成する生成部と、複数の移動体に対して前記指令情報を送信する第1送信部と、前記複数の移動体が正常に前記指令情報を受信できたことを示す受信結果を受信する第2受信部と、前記受信結果に基づき、前記指令情報を正常に受信できた移動体の数を計数する第1計数部と、前記指令情報に対する応答情報を受信する第3受信部と、前記応答情報に基づき、前記応答情報を送信した移動体の数を計数する第2計数部と、前記正常に受信できた移動体の数と、前記応答情報を送信した移動体の数とに関する移動体数情報を、前記情報管理装置に送信する第2送信部と、を備える。「移動体の数」は、延べ数であってもよい。この態様により、移動体管理装置は、要求信号に基づく指令情報を正常に受信した移動体の数と、指令情報に対する応答情報を送信した移動体の数とに関する移動体数情報を、情報管理装置に好適に供給することができる。
【0010】
上記移動体管理装置の一態様では、前記指令情報は、前記移動体が前記指令情報の示す指令を実行する条件を示す条件情報を含み、前記応答情報は、前記条件が満たされたか否かに応じて前記指令情報が取り得る状態に関する情報を含む。この態様により、移動体管理装置は、条件情報が示す条件が満たされたか否かに応じて指令情報が取り得る状態に関する情報を、移動体ごとに取得することができるため、上述した移動体の数を的確に計数することができる。
【0011】
上記移動体管理装置の他の一態様では、前記第1送信部は、前記指令情報と、前記前記指令情報が取り得る状態に関する情報の送信を指示するフラグ情報と、を前記複数の移動体に送信する。この態様により、移動体管理装置は、指令情報が取り得る状態に関する情報を、移動体から好適に収集することができる。
【0012】
上記移動体管理装置の他の一態様では、前記指令情報が取り得る状態は、前記条件が満たされた場合に前記指令が実行される状態である実行状態と前記条件が満たされない場合に前記指令が実行されない状態である非実行状態と、含み、前記第2送信部は、前記移動体数情報として、前記正常に受信できた移動体の数に対する前記指令情報が前記実行状態報となった移動体の数の割合を示す情報を前記情報管理装置に送信する。この態様により、要求信号の有効性やコスト効率の判定に必要な情報を好適に情報管理装置に供給することができる。
【0013】
上記移動体管理装置の他の一態様では、前記移動体管理装置は、前記第1送信部が前記指令情報を送信した移動体の識別情報と、当該指令情報が示す指令の識別情報と、を関連付けて記憶する記憶部を更に備える。この態様により、移動体管理装置は、送信した指令情報ごとに、指令情報の送信先となる移動体の数を好適に保持することができる。
【0014】
上記移動体管理装置の他の一態様では、前記受信結果は、前記指令情報が正常に受け付けられなかったことを示すフェール情報を含む。この態様により、移動体管理装置は、指令情報を正常に受け付けた移動体の数を的確に計数することができる。
【0015】
さらに別の好適な実施形態では、移動体管理装置が実行する制御方法であって、情報管理装置が発した要求信号を受信する第1受信工程と、前記要求信号に応じた指令情報を生成する生成工程と、複数の移動体に対して前記指令情報を送信する第1送信工程と、前記複数の移動体が正常に前記指令情報を受信できたことを示す受信結果を受信する第2受信工程と、前記受信結果に基づき、前記指令情報を正常に受信できた移動体の数を計数する第1計数工程と、前記指令情報に対する応答情報を受信する第3受信工程と、前記応答情報に基づき、前記応答情報を送信した移動体の数を計数する第2計数工程と、前記正常に受信できた移動体の数と、前記応答情報を送信した移動体の数とに関する移動体数情報を、前記情報管理装置に送信する第2送信工程と、を有する。移動体管理装置は、この制御方法を実行することで、要求信号に基づく指令情報を正常に受信した移動体の数と、指令情報に対する応答情報を送信した移動体の数とに関する移動体数情報を、情報管理装置に好適に供給することができる。
【0016】
さらに別の好適な実施形態は、上記記載の制御方法を、コンピュータにより実行させるプログラムである。コンピュータは、このプログラムを実行することで、処理情報を送信した端末装置の数を、処理情報が示す処理の内容ごとに、好適に把握することができる。好適には、上記プログラムは、記憶媒体に記憶される。
【実施例0017】
以下、図面を参照して本発明の好適な第1~第3実施例について説明する。
<第1実施例>
(1)
全体構成
図1は、第1実施例に係るジョブ配信システムの概略構成を示す。ジョブ配信システムは、車両のセンサが生成した種々の情報を収集するためのシステムであり、車両Vと、ビークル(VEHICLE)クラウドサーバ30と、サービスクラウドサーバ40とを備える。
【0018】
車両Vには、車載端末20が搭載されている。車載端末20は、車両Vの状態又は周辺環境に関する情報を取得するための種々のセンサと接続し、所定の処理を行う情報処理装置である。車載端末20は、これらのセンサの出力に基づき、サービスクラウドサーバ40から依頼された処理(単に「ジョブ」とも呼ぶ。)を実行する。本実施例では、ジョブは、主に、サービスクラウドサーバ40から指定された特定の車両Vの状態又は周辺環境に関する情報をセンサにより取得してサービスクラウドサーバ40にアップロードする処理を指す。車両V及び車載端末20は、「移動体」の一例である。また、車載端末20は、「端末装置」の一例である。尚、「移動体」は車両V及び車載端末20に限られず、自転車、車椅子、ドローン、船舶等の移動体であってもよい。
【0019】
ビークルクラウドサーバ30は、ビークルクラウドを構成するサーバ装置である。ビークルクラウドとは、例えば、ユーザに提供された車両(例えば自動運転車)を管理し、車両から各種の情報を収集する情報収集会社が運営するクラウドである。情報収集会社は、自動車メーカー自身がその役割を担ってもよく、また、自動車メーカーによって直接、または間接的に運営されてもよい。例えば、自動車メーカーとしてA社、B社、C社の3社が存在する場合、A社が運営する情報収集会社、B社が運営する情報収集会社、C社が運営する情報収集会社が個別に存在し、各情報収集会社は運営する自動車メーカーが製造した車両から各種の情報を収集する。あるいは、D社、E社、F社などの複数の自動車メーカーが共同で委託/運営する形態でもよい。ビークルクラウドサーバ30は、「移動体管理装置」の一例である。
【0020】
サービスクラウドサーバ40は、サービスクラウドを構成するサーバ装置である。サービスクラウドとは、例えば、車両に関するサービスを提供するサービス提供会社が運営するクラウドである。サービス提供会社としては、保険に関するサービスを提供する保険会社、地図に関するサービスを提供する地図サービス会社、駐車場に関するサービスを提供する駐車場サービス会社、経路探索に関するサービスを提供する経路探索サービス会社などが挙げられる。サービスクラウドサーバ40は、目的に応じて、車載端末20に実行させるジョブを指示する情報(「ジョブリクエスト」とも呼ぶ。)を生成し、ビークルクラウドサーバ30を介して車載端末20に配信する。サービスクラウドサーバ40は、「情報管理装置」の一例である。
【0021】
車両Vに搭載されている車載端末20と、ビークルクラウドサーバ30と、サービスクラウドサーバ40とは、ネットワーク5を通じて有線又は無線により通信が可能である。本実施例では、車載端末20と、ビークルクラウドサーバ30と、サービスクラウドサーバ40とは、サービスクラウドサーバ40が生成したジョブリクエストの授受、及び、ジョブリクエストに応じて車載端末20が生成したデータ(「アップロードデータ」とも呼ぶ。)の授受を行う。
【0022】
なお、
図1に示すジョブ配信システムの構成は一例であり、本発明が適用可能な構成はこれに限定されない。例えば、サービスクラウドとして、ジョブリクエストを生成するサービスクラウド(第1サービスクラウド)と、第1サービスクラウドに所定の情報の収集を依頼するサービスクラウド(第2サービスクラウド)とが存在してもよい。この場合、例えば、第1サービスクラウドは、第2サービスクラウドの依頼内容に応じてジョブリクエストを生成し、かつ、ジョブリクエストの送信先のビークルクラウドから受信したアップロードデータに基づいて、第2サービスクラウドが求める情報を第2サービスクラウドに送信する。
【0023】
図2は、車載端末20と、ビークルクラウドサーバ30と、サービスクラウドサーバ40との間のデータの流れを概略的に示した図である。
【0024】
図2に示すように、サービスクラウドサーバ40は、生成したジョブリクエスト「JR1」をビークルクラウドサーバ30に送信し、ビークルクラウドサーバ30は、サービスクラウドサーバ40から受信したジョブリクエストJR1に基づき生成したジョブリクエスト「JR2」を、車載端末20に送信する。なお、ジョブリクエストJR1には、ジョブを実行すべき車両を示す車両IDやドライバIDなどを含めることが可能となっており、サービスクラウドサーバ40は、必要に応じて、送信対象とする車両IDやドライバIDをジョブリクエストJR1に含める。これにより、ビークルクラウドサーバ30は、対応する車両の車載端末20に対してジョブリクエストJR2を送信する。
【0025】
ジョブリクエストJR2を受信した車載端末20は、ジョブリクエストJR2において指定されたデータをセンサより収集し、収集したデータをアップロードデータ「UD2」としてビークルクラウドサーバ30に送信する。ビークルクラウドサーバ30は、車載端末20からアップロードデータUD2を受信した場合、受信したアップロードデータUD2に基づきアップロードデータ「UD1」を生成し、生成したアップロードデータUD1を依頼元のサービスクラウドサーバ40へ送信する。ジョブリクエストJR1、JR2及びアップロードデータUD1、UD2のデータ構造については、「(5)データ構造」のセクションにて詳しく説明する。サービスクラウドサーバ40がビークルクラウドサーバ30へ送信するジョブリクエストJR1は、「要求信号」の一例であり、ビークルクラウドサーバ30から車載端末20に送信するジョブリクエストJR2は、「送信情報」の一例であり、アップロードデータUD2は、「受信結果」の一例である。
【0026】
(2)
車載端末の構成
図3は、車載端末20の内部構成を示すブロック図である。図示のように、車載端末20は、主に、通信部21と、記憶部22と、入力部23と、制御部24と、インターフェース25と、出力部26とを有する。車載端末20内の各要素は、バスライン29を介して相互に接続されている。また、インターフェース25は、センサ部27と接続されている。
【0027】
通信部21は、制御部24の制御に基づき、アップロードデータをビークルクラウドサーバ30へ送信したり、地
図DBを更新するための地図データをビークルクラウドサーバ30から受信したりする。また、通信部21は、車両を制御するための信号を車両に送信する処理、車両の状態に関する信号を車両から受信する処理を行ってもよい。
【0028】
記憶部22は、制御部24が実行するプログラムや、制御部24が所定の処理を実行する為に必要な情報を記憶する。記憶部22は、不揮発性メモリ(内部ストレージ)を含んでいる。本実施例では、記憶部22は、地
図DBと、センサデータキャッシュと、車両属性情報と、通信部21によりビークルクラウドサーバ30から受信したジョブリクエストJR2と、状態カウント情報と、を記憶する。
【0029】
地
図DBは、例えば、道路データ、施設データ、及び、道路周辺の地物データなどを含むデータベースである。道路データには、経路探索用の車道/車線ネットワークデータ、道路形状データ、交通法規データなどが含まれる。地物データは、道路標識等の看板や停止線等の道路標示、センターライン等の道路区画線や道路沿いの構造物等の情報を含む。また、地物データは、自車位置推定に用いるための地物の高精度な点群情報などを含んでもよい。その他、地
図DBには、位置推定に必要な種々のデータが記憶されてもよい。
【0030】
センサデータキャッシュは、センサ部27の出力データを一時的に保持するキャッシュメモリである。車両属性情報は、車両の種別、車両ID、車両長さ、車幅、車高などの車両サイズ、車両の燃料タイプなど、車載端末20を搭載した車両Vの属性に関する情報を示す。
【0031】
状態カウント情報は、ジョブリクエストJR2により依頼されたジョブが有効な期間における当該ジョブの状態ごとの累積の遷移回数を示す情報である。状態カウント情報は、例えば、ジョブが取り得る状態ごとに、当該状態への遷移回数が関連付けられた情報である。制御部24は、上述の状態の遷移を検知する毎に、状態カウント情報を更新する。ジョブの状態遷移については、
図4を用いて後述する。状態カウント情報は、「計数情報」の一例である。
【0032】
入力部23は、ユーザが操作するためのボタン、タッチパネル、リモートコントローラ、音声入力装置等であり、例えば、経路探索のための目的地を指定する入力、自動運転のオン及びオフを指定する入力などを受け付け、生成した入力信号を制御部24へ供給する。出力部26は、例えば、制御部24の制御に基づき出力を行うディスプレイやスピーカ等である。
【0033】
インターフェース25は、センサ部27の出力データを制御部24やセンサデータキャッシュに供給するためのインターフェース動作を行う。センサ部27は、ライダやカメラなどの車両の周辺環境を認識するための複数の外界センサと、GPS受信機、ジャイロセンサ、ポジションセンサ、3軸センサなどの内界センサを含む。ライダは、外界に存在する物体までの距離を離散的に測定し、当該物体の表面を3次元の点群として認識し、点群データを生成する。カメラは、車両から撮影した画像データを生成する。ポジションセンサは、各外界センサの位置を検出するために設けられ、3軸センサは、各外界センサの姿勢を検出するために設けられている。なお、センサ部27は、
図3に示した外界センサ及び内界センサ以外の任意の外界センサ及び内界センサを有してもよい。例えば、センサ部27は、外界センサとして、超音波センサ、赤外線センサ、マイクなどを含んでもよい。
【0034】
制御部24は、1または複数のプラットフォーム上で所定のプログラムを実行するCPUなどを含み、車載端末20の全体を制御する。制御部24は、機能的には、位置推定部と、オブジェクト検出部と、アップロードデータ生成部とを含む。制御部24は、プログラムを実行するコンピュータとして機能する。制御部24は、「生成部」及びプログラムを実行するコンピュータの一例であり、通信部21及び制御部24は、「受信部」及び「送信部」の一例である。
【0035】
位置推定部は、センサデータキャッシュに保持されているセンサ部27の出力データ及び地
図DBに基づき、自車位置(車両の姿勢も含む)を推定する。位置推定部は、種々の位置推定方法を実行可能となっている。位置推定部は、例えば、GPS受信機及びジャイロセンサ等の自立測位センサの出力に基づくデッドレコニング(自律航法)による自車位置推定方法、自律航法に地
図DBの道路データなどをさらに照合する処理(マップマッチング)を行う自車位置推定方法、周囲に存在する所定のオブジェクト(ランドマーク)を基準としてライダやカメラなどの外界センサの出力データと地
図DBの地物情報が示すランドマークの位置情報とに基づく自車位置推定方法などを実行する。そして、位置推定部は、現在実行可能な位置推定方法の中から最も高い推定精度となる位置推定方法を実行し、実行した位置推定方法に基づき得られた自車位置等を示した自車位置情報を、アップロードデータ生成部へ供給する。
【0036】
オブジェクト検出部は、センサ部27が出力する点群情報、画像データ、音声データ等に基づき、所定のオブジェクトを検出する。この場合、例えば、オブジェクト検出部は、位置推定部が推定した自車位置に基づき、センサ部27により検出したオブジェクトに対応する地物データを地
図DBから抽出する。そして、オブジェクト検出部は、例えば、センサ部27により検出したオブジェクトの位置及び形状等と、地
図DBから抽出した地物データが示すオブジェクトの位置及び形状等とに違いがある場合、又は、地
図DBに該当する地物データが存在しない場合などに、センサ部27により検出したオブジェクトに関する情報を、アップロードデータ生成部へ供給する。
【0037】
アップロードデータ生成部は、位置推定部から供給される自車位置情報、オブジェクト検出部から供給されるオブジェクトデータ、及びセンサデータキャッシュから供給されるセンサ部27の出力データなどに基づき、アップロードデータUD2を生成する。本実施例では、アップロードデータ生成部は、記憶部22に記憶されたジョブリクエストJR2が指定する条件を満たすときに同データが指定するデータをアップロードデータUD2に含め、通信部21によりビークルクラウドサーバ30へアップロードデータUD2を送信する。
【0038】
ここで、ジョブリクエストJR2が示すジョブの状態(単に「ジョブ状態」とも呼ぶ。)の遷移について説明する。
【0039】
図4は、ジョブ状態の遷移を概略的に示した図である。
図4には、ジョブリクエストJR2が示すジョブの実行条件を満たさないジョブ状態であるインアクティブ状態(非実行状態)と、ジョブの実行条件を満たすジョブ状態であるアクティブ状態(実行状態)と、例外的な場合に遷移するフェール(Failed)とが記されている。
【0040】
ここで、車載端末20は、ジョブリクエストJR2を受信した場合には、所定の認証処理を行い、ジョブリクエストJR2を受け付けることが適切であるか否かを判定する。例えば、車載端末20は、認証処理として、ジョブリクエストJR2において指定された車両ID又は/及びドライバIDが車両Vの車両ID又は/及び車両VのドライバのドライバIDとが一致するか否か判定する。
【0041】
そして、認証処理が成功した場合には、ジョブはインアクティブ状態に自動的に遷移する。その後、ジョブリクエストJR2が示すジョブの実行条件を満たすと判断した場合には、当該ジョブはアクティブ状態に遷移し、アクティブ状態に遷移後に上述の実行条件を満たさないと判断した場合には、当該ジョブはインアクティブ状態に遷移する。
【0042】
一方、認証処理が失敗した場合には、ジョブはフェールに移行する。そして、車載端末20は、この場合、フェールとなった旨のアップロードデータUD2をビークルクラウドサーバ30へ送信する。なお、所定の例外が発生した場合には、ジョブをアクティブ状態又はインアクティブ状態からフェールに移行してもよい。そして、車載端末20は、ジョブの有効期限等が終了した場合又はフェールになった場合などにジョブを終了し、ジョブリクエストJR2を記憶部22から削除する。フェールとなった旨のアップロードデータUD2は、「フェール情報」の一例である。
【0043】
(3)
ビークルクラウドサーバの構成
次に、ビークルクラウドサーバ30について詳しく説明する。
図5(A)はビークルクラウドサーバ30の内部構成を示すブロック図である。図示のように、ビークルクラウドサーバ30は、通信部31と、記憶部32と、制御部33とを備える。ビークルクラウドサーバ30内の各要素は、バスライン39を介して相互に接続されている。
【0044】
通信部31は、制御部33の制御に基づき、車両Vの車載端末20及びサービスクラウドサーバ40と通信する。具体的には、通信部31は、サービスクラウドサーバ40からジョブリクエストJR1を受信したり、当該ジョブリクエストJR1に基づき生成されたジョブリクエストJR2を車載端末20へ送信したりする。また、通信部31は、車載端末20からアップロードデータUD2を受信したり、当該アップロードデータUD2に基づき生成したアップロードデータUD1をサービスクラウドサーバ40へ送信したりする。
【0045】
記憶部32は、ROM、RAMなどを含み、ビークルクラウドサーバ30が実行する各種の処理のためのプログラムが記憶されている。また、記憶部32は、各種の処理が実行される際の作業メモリとしても使用される。また、記憶部32は、車両情報と、送信履歴情報Ihとを記憶している。車両情報は、ビークルクラウドが管理する車両に関する情報である。車両情報は、例えば、車両ごとに、車両ID又は/及びドライバIDと、対応する車両の車載端末20へデータを送信するための通信アドレス情報と、車両が利用しているサービスに関する情報とを対応付けたテーブル情報である。送信履歴情報Ihは、ジョブリクエストJR2を各車両の車載端末20に送信した履歴を示すテーブルであり、詳細なデータ構造については後述する。
【0046】
また、記憶部32は、ビークルクラウドサーバ30がサービスクラウドサーバ40から受信したジョブリクエストJR1、及び、ビークルクラウドサーバ30が車載端末20から取得したアップロードデータUD2の履歴データをさらに記憶してもよい。この場合、例えば、記憶部32には、各車載端末20から受信したアップロードデータUD2が、車載端末20を搭載している車両Vの車両IDや受信時刻などと関連付けて記憶される。同様に、記憶部32には、サービスクラウドサーバ40から受信したジョブリクエストJR1が、送信元のサービスクラウドサーバ40を特定する情報及び受信時刻などと関連付けて記憶されてもよい。
【0047】
制御部33は、CPUなどのコンピュータにより構成され、ビークルクラウドサーバ30の全体を制御する。具体的には、制御部33は、記憶部32に記憶された各種のプログラムを実行することにより、各種の処理を行う。制御部33は、「生成部」、「計数部」、「第1計数部」、「第2計数部」の一例である。また、通信部31及び制御部33は、「第1受信部」、「第1送信部」、「第2受信部」、「第3受信部」、「第2送信部」の一例である。
【0048】
(4)
サービスクラウドサーバの構成
次に、サービスクラウドサーバ40について詳しく説明する。
図5(B)はサービスクラウドサーバ40の内部構成を示すブロック図である。図示のように、サービスクラウドサーバ40は、通信部41と、記憶部42と、制御部43とを備える。サービスクラウドサーバ40内の各要素は、バスライン49を介して相互に接続されている。
【0049】
通信部41は、制御部43の制御に基づき、ビークルクラウドサーバ30と通信する。具体的には、通信部41は、後述する提供情報に該当する情報をビークルクラウドサーバ30から受信する。
【0050】
記憶部42は、不揮発性メモリであるROM及び揮発性メモリであるRAMなどを含み、サービスクラウドサーバ40が実行する各種の処理のためのプログラムが記憶されている。また、記憶部42は、各種の処理が実行される際の作業メモリとしても使用される。また、記憶部42は、サービスクラウドサーバ40がビークルクラウドサーバ30に対して送信したジョブリクエストJR1、及び、サービスクラウドサーバ40がビークルクラウドサーバ30から取得したアップロードデータUD1の履歴を記憶してもよい。この場合、例えば、ジョブリクエストJR1及びアップロードデータUD1は、送信先又は送信元のビークルクラウドサーバ30を特定する情報及び送受信時刻などと関連付けられて記憶部42に記憶される。
【0051】
制御部43は、CPUなどのコンピュータにより構成され、サービスクラウドサーバ40の全体を制御する。具体的には、制御部43は、記憶部42に記憶された各種のプログラムを実行することにより、各種の処理を行う。
【0052】
(5)
データ構造
次に、各種データのデータ構造について説明する。以後では、ジョブリクエストJR1とジョブリクエストJR2とを区別しない場合には、単に「ジョブリクエスト」と表記し、アップロードデータUD1とアップロードデータUD2とを区別しない場合には、単に「アップロードデータ」と表記する。
(5-1)
ジョブリクエスト
図6は、ジョブリクエストのデータ構造の一例である。図示のように、ジョブリクエストは、「バージョン情報」と、「リクエスト識別情報」と、「属性情報」と、「データ収集条件情報」と、「状態管理フラグ」と、「収集データ指定情報」とを含む。
【0053】
「バージョン情報」は、ジョブリクエストを規定した仕様のバージョン等を識別する情報である。「属性情報」は、対象のジョブリクエストの取り扱いを規定した情報である。
【0054】
「リクエスト識別情報」は、サービスクラウドサーバ40が生成するジョブリクエストJR1に固有の識別情報である。サービスクラウドサーバ40は、ジョブリクエストJR1を生成する度に、ユニークなリクエスト識別情報を生成してジョブリクエストJR1に含める。なお、ジョブリクエストJR2の「リクエスト識別情報」は、ジョブリクエストJR1の「リクエスト識別情報」と同一であってもよく、異なっていてもよい。後者の場合、ビークルクラウドサーバ30は、車載端末20に送信するジョブリクエストJR2ごとに固有の識別情報をジョブリクエストJR2の「リクエスト識別情報」として設定する。この場合、例えば、ビークルクラウドサーバ30は、ジョブリクエストJR1の「リクエスト識別情報」と当該ジョブリクエストJR1に基づき生成したジョブリクエストJR2の「リクエスト識別情報」とを対応付けるテーブル等を記憶しておく。本実施例において、ジョブリクエストJR1の「リクエスト識別情報」は、ジョブを識別する情報(ジョブID)として用いられる。
【0055】
「データ収集条件情報」は、データを収集する条件を示す情報である。例えば、「データ収集条件情報」は、車載端末20がアップロードデータUD2を生成する地理的条件、アップロードデータUD2を生成する時間的条件、イベント、車両Vの車両ID、又は/及び車両Vの運転者のドライバIDを示す情報である。ここで、上述のアップロードデータUD2を生成する地理的条件とは、例えば、アップロードデータUD2を生成する道路又はエリアを指定する条件であり、アップロードデータUD2を生成する時間的条件とは、例えば、アップロードデータUD2を生成する時間帯やインターバルなど、時間的な制約を指定する条件である。また、イベントとは、アップロードデータUD2を生成する契機となるイベント等を示し、例えば、所定度合以上の衝撃(即ち事故)の発生や急ブレーキの発生などが上述のイベントとして指定される。データ収集条件情報は、「条件情報」の一例である。
【0056】
「収集データ指定情報」は、データ収集条件情報が示すジョブの実行条件を満たす場合にアップロードデータとして含めるべき収集データを指定する情報である。収集データ指定情報は、例えば、車両の加減速に関する情報、車速に関する情報、車両の走行軌跡(即ち時系列での自車位置・姿勢)の情報、出発地及び目的地の情報、事故発生前後所定時間におけるカメラの撮影情報などである。データ収集条件情報及び収集データ指定情報として指定される内容は、ジョブリクエストを生成するサービスクラウドサーバ40が運営するサービス会社によって夫々任意に設定される。データ収集条件情報及び収集データ指定情報は、「指令情報」の一例である。
【0057】
「状態管理フラグ」は、状態カウント情報のアップロードの要否を指定するフラグ(「状態管理フラグFs」とも呼ぶ。)である。例えば、状態管理フラグFsは、無効であることを示す「0」または有効であることを示す「1」のいずれかの値となり、1(有効)である場合には、状態カウント情報のアップロードが必要であることを示し、0(無効)である場合には、状態カウント情報のアップロードが不要であることを示す。状態管理フラグFsは、フラグ情報の一例である。なお、状態管理フラグFsは、ジョブリクエスト内の単独のフィールドに設けられる代わりに、データ収集条件情報、属性情報又は収集データ指定情報のいずれかのフィールドに含まれてもよい。
【0058】
ここで、サービスクラウドサーバ40からビークルクラウドサーバ30に送信されるジョブリクエストJR1に、有効な状態管理フラグFsが含まれる場合には、ビークルクラウドサーバ30は、ジョブリクエストJR1が示すジョブに対し、ジョブ状態に関する車両数の集計を行う。そして、ビークルクラウドサーバ30は、その集計結果をアップロードデータUD1としてサービスクラウドサーバ40に送信する。上述の集計結果を含むアップロードデータUD1のデータ構造については、
図9を参照して後述する。
【0059】
また、ビークルクラウドサーバ30から各車載端末20に送信されるジョブリクエストJR2に、有効な状態管理フラグFsが含まれる場合には、車載端末20は、ビークルクラウドサーバ30が上述のジョブ状態に関する車両数の集計に必要な情報を生成する。そして、車載端末20は、生成した情報をアップロードデータUD2に含めてビークルクラウドサーバ30に送信する。車載端末20が送信するアップロードデータUD2のデータ構造については、
図8を参照して後述する。
【0060】
なお、ジョブリクエストは、
図6に示した情報以外の任意の情報を含んでもよい。例えば、ジョブリクエストには、ジョブリクエストの生成元であるサービスクラウドサーバ40又はビークルクラウドサーバ30へアップロードデータを送信するための送信先を指定したアドレス情報などが含まれてもよい。他の例では、ジョブリクエストには、リクエスト識別情報とは別に、ジョブを識別するためのジョブIDが含まれてもよい。例えば、サービスクラウドサーバ40が同一内容のジョブを示すジョブリクエストJR1を複数のビークルクラウドサーバ30に送信する場合には、各ジョブリクエストJR1には、ジョブリクエストJR1ごとに異なるリクエスト識別情報と、全てのジョブリクエストJR1で共通のジョブIDとが含まれてもよい。
【0061】
(5-2)
送信履歴情報
図7は、送信履歴情報Ihのデータ構造の一例である。送信履歴情報Ihは、ジョブリクエストJR2の送信履歴に相当し、
図7の例では、「車両ID」と、「ジョブID」とを少なくとも含んでいる。
【0062】
「車両ID」は、送信履歴情報Ihを保持するビークルクラウドサーバ30がジョブリクエストJR2を送信した送信先の車載端末20に対応する車両IDである。「ジョブID」は、車載端末20へ送信したジョブリクエストJR2により依頼したジョブの識別情報である。例えば、ビークルクラウドサーバ30は、送信履歴情報Ihの「ジョブID」として、ジョブリクエストJR2の生成に用いたジョブリクエストJR1のリクエスト識別情報を記録してもよい。
【0063】
ビークルクラウドサーバ30は、ジョブリクエストJR2を車載端末20に送信するごとに、自身が保持する送信履歴情報Ihに、車両ID及びジョブIDを関連付けたレコードを追加する。なお、送信履歴情報Ihには、車両ID及びジョブID以外の任意の項目を含んでもよい。例えば、送信履歴情報Ihには、車載端末20へ送信したジョブリクエストJR2を生成するのに用いたジョブリクエストJR1の生成元のサービスクラウドの識別情報がさらに含まれてもよい。この識別情報は、サービスクラウドを識別するための任意の情報(例えば通信アドレス等)であってもよい。
【0064】
また、ビークルクラウドサーバ30は、ジョブリクエストJR2を正常に受け付けることができなかったこと(即ちフェールとなったこと)を示すアップロードデータUD2を車載端末20から受信した場合には、対応するレコードを送信履歴情報Ihから削除する。即ち、ビークルクラウドサーバ30は、この場合、アップロードデータUD2の送信元の車載端末20に対応する車両IDと、フェールとなったジョブを示すジョブIDと含むレコードを、送信履歴情報Ihから削除する。これにより、送信履歴情報Ihには、ジョブリクエストJR2が正常に受け取った車載端末20の車両IDとジョブリクエストJR2により指示されたジョブに対応するジョブIDとの組み合わせを示すレコードのみが記録されることになる。
【0065】
ここで、
図7に示す送信履歴情報Ihの用途について説明する。ビークルクラウドサーバ30は、送信履歴情報Ihを参照することで、インアクティブになった車両数(「インアクティブ車両数」とも呼ぶ。)を好適に算出することが可能である。
【0066】
具体的には、ビークルクラウドサーバ30は、受信したジョブリクエストJR1に対応するジョブIDが記録された送信履歴情報Ihのレコード数を、ジョブリクエストJR2を送信した車両数として計算する。ここで、
図4に示したように、ジョブ状態は、認証処理が成功した場合には自動的にインアクティブ状態となるため、車載端末20において認証処理が成功したジョブリクエストJR2が示すジョブは、必ずインアクティブ状態となる。なお、認証処理が失敗してフェールとなった場合には、フェールとなった旨を示すアップロードデータUD2がビークルクラウドサーバ30に送信され、ビークルクラウドサーバ30によって対応するレコードが送信履歴情報Ihから削除される。よって、ビークルクラウドサーバ30は、送信履歴情報Ihを参照し、ジョブごとにジョブリクエストJR2を送信した車両数をカウントすることで、当該ジョブが認証されて受け入れられた車両の数(インアクティブ車両数)をジョブごとに好適に特定することができる。なお、後述するように、特定したインアクティブ車両数の情報は、アップロードデータUD1に含めてサービスクラウドサーバ40に送信される。
【0067】
(5-3)アップロードデータ
次に、アップロードデータUD1、UD2のそれぞれのデータ構造について具体的に説明する。
【0068】
図8は、車載端末20がジョブリクエストJR2に基づきビークルクラウドサーバ30に対して送信するアップロードデータUD2のデータ構造の一例である。図示のように、アップロードデータUD2は、「バージョン情報」と、「リクエスト識別情報」と、「収集データ」と、「状態カウント情報」とを含む。
【0069】
「バージョン情報」は、アップロードデータUD2を規定した仕様のバージョン等を識別する情報である。この「バージョン情報」には、例えば、先に受信したジョブリクエストJR2に含まれる「バージョン情報」と同一内容が指定される。「リクエスト識別情報」は、先に受信したジョブリクエストJR2のリクエスト識別情報を示す。
【0070】
「収集データ」は、先に受信したジョブリクエストJR2に基づき車載端末20が収集したデータであり、依頼されたジョブの実行結果に相当する。この収集データは、先に受信したジョブリクエストJR2の「収集データ指定情報」により指定されたデータである。収集データは、「応答情報」の一例である。
【0071】
「状態カウント情報」は、先に受信したジョブリクエストJR2に基づき車載端末20が記憶部22に記憶した状態カウント情報であり、「アクティブ遷移回数」と、「インアクティブ遷移回数」とを含む。「アクティブ遷移回数」は、先に受信したジョブリクエストJR2により依頼されたジョブの有効期間においてジョブがアクティブ状態へ遷移した回数(即ちアクティブ状態になった回数)を示す。「インアクティブ遷移回数」は、先に受信したジョブリクエストJR2により依頼されたジョブの有効期間においてジョブがインアクティブ状態へ遷移した回数(即ちインアクティブ状態になった回数)を示す。状態カウント情報は、「回数情報」の一例である。
【0072】
ここで、状態カウント情報の生成方法について補足説明する。
【0073】
車載端末20は、先に受信したジョブリクエストJR2に有効な状態管理フラグFsが含まれる場合に、対象のジョブに対するアクティブ状態及びインアクティブ状態の各遷移回数のカウントを開始し、これらの遷移回数の情報を状態カウント情報として記憶部22に記憶する。そして、車載端末20は、状態カウント情報を、対象のジョブに対するジョブ状態の変更がある度に更新する。そして、車載端末20は、アップロードデータUD2の生成時に、記憶部22に記憶した状態カウント情報をアップロードデータUD2に含める。
【0074】
図9は、ビークルクラウドサーバ30がジョブリクエストJR1に基づきサービスクラウドサーバ40に対して送信するアップロードデータUD1のデータ構造の一例である。図示のように、アップロードデータUD2は、「バージョン情報」と、「リクエスト識別情報」と、「収集データ」と、「インアクティブ車両数」と、「アクティブ車両数」と、「アクティブ延べ車両数」と、「データ収集車両数」とを含む。
【0075】
「バージョン情報」は、アップロードデータUD1を規定した仕様のバージョン等を識別する情報である。この「バージョン情報」には、例えば、先に受信したジョブリクエストJR1に含まれる「バージョン情報」と同一内容が指定される。「リクエスト識別情報」は、先に受信したジョブリクエストJR1のリクエスト識別情報を示す。
【0076】
「収集データ」は、ジョブリクエストJR1により依頼されたジョブの実行結果に相当し、ジョブリクエストJR1の「収集データ指定情報」により指定されたデータである。ビークルクラウドサーバ30は、ジョブリクエストJR1に基づき生成したジョブリクエストJR2を複数の車載端末20へ送信し、その応答であるアップロードデータUD2を各車載端末20から受信することで、「収集データ」としてアップロードデータUD1に含めるデータを収集する。この場合、ビークルクラウドサーバ30は、各車載端末20から受信したアップロードデータUD2に含まれる収集データをそのまま抽出したデータを「収集データ」としてアップロードデータUD1に含めてもよく、各アップロードデータUD2に含まれる収集データに対して所定の統計処理を行うことで算出した統計データを「収集データ」としてアップロードデータUD1に含めてもよい。
【0077】
「インアクティブ車両数」は、ジョブリクエストJR1により依頼されたジョブの状態がインアクティブ状態となった車両数である。本実施例では、第1の例では、ビークルクラウドサーバ30は、送信履歴情報Ihを参照することで、ジョブリクエストJR1により依頼されたジョブに対するインアクティブ車両数を算出する。具体的には、ビークルクラウドサーバ30は、送信履歴情報Ihに記録されたレコードのうち、ジョブリクエストJR1により依頼されたジョブの識別情報(例えばリクエスト識別情報)が「ジョブID」として記録されたレコードの数を、インアクティブ車両数として算出する。上述したように、ジョブリクエストJR2を受信した車載端末20において、ジョブリクエストJR2の認証が成功した場合、ジョブリクエストJR2により依頼されたジョブの状態は必ずインアクティブ状態となり、かつ、ジョブリクエストJR2の認証が失敗した場合には、当該ジョブリクエストJR2の送信履歴に相当する送信履歴情報Ihのレコードはビークルクラウドサーバ30により削除される。よって、ビークルクラウドサーバ30は、送信履歴情報Ihを参照することで、ジョブリクエストJR1により依頼されたジョブに対するインアクティブ車両数を好適に算出することができる。第2の例では、ビークルクラウドサーバ30は、アップロードデータUD2に含まれる状態カウント情報に基づき算出する。この場合、ビークルクラウドサーバ30は、上述の状態カウント情報が示すインアクティブ遷移回数が1回以上となるアップロードデータUD2の送信元の車載端末20の数を、当該ジョブに対するインアクティブ車両数として算出する。
【0078】
「アクティブ車両数」は、ジョブリクエストJR1により依頼されたジョブの状態がアクティブ状態となった車両数である。本実施例では、ビークルクラウドサーバ30は、ジョブリクエストJR1に基づき生成したジョブリクエストJR2の応答として各車載端末20から受信したアップロードデータUD2の状態カウント情報が示すアクティブ遷移回数を参照することで、ジョブリクエストJR1により依頼されたジョブに対するアクティブ車両数を算出する。具体的には、ビークルクラウドサーバ30は、当該ジョブのアクティブ遷移回数が1回以上となるアップロードデータUD2を送信した車載端末20の数を、当該ジョブのアクティブ車両数として算出する。このように、ビークルクラウドサーバ30は、ジョブリクエストJR2の送信先となる車載端末20から受信したアップロードデータUD2に含まれる状態カウント情報が示すアクティブ遷移回数を参照することで、ジョブリクエストJR2により依頼されたジョブに対するアクティブ車両数を好適に算出することができる。
【0079】
「アクティブ延べ車両数」は、ジョブリクエストJR1により依頼されたジョブの状態がアクティブ状態となった延べ車両数である。本実施例では、ビークルクラウドサーバ30は、ジョブリクエストJR1に基づき生成したジョブリクエストJR2の応答として各車載端末20から受信したアップロードデータUD2に含まれる状態カウント情報が示すアクティブ遷移回数を積算することで、ジョブリクエストJR1により依頼されたジョブに対するアクティブ延べ車両数を算出する。このように、ビークルクラウドサーバ30は、ジョブリクエストJR2の送信先となる車載端末20から受信したアップロードデータUD2に含まれる状態カウント情報が示すアクティブ遷移回数を参照することで、ジョブリクエストJR2により依頼されたジョブに対するアクティブ延べ車両数を好適に算出することができる。インアクティブ車両数、アクティブ車両数、及びアクティブ延べ車両数は、「移動体数情報」の一例である。
【0080】
「データ収集車両数」は、ジョブリクエストJR1により依頼されたジョブに対して収集データをアップロードした車両数である。本実施例では、ビークルクラウドサーバ30は、ジョブリクエストJR1に基づき生成したジョブリクエストJR2の応答として各車載端末20から受信したアップロードデータUD2のうち、収集データが含まれていたアップロードデータUD2の送信元の車両数を、データ収集車両数として算出する。
【0081】
次に、アップロードデータUD1の用途について補足説明する。
【0082】
ジョブリクエストJR1の応答として
図9に示すようなデータ構造を有するアップロードデータUD1を受信したサービスクラウドサーバ40は、アップロードデータUD1に含まれる各車両数の統計に基づき、返信された収集データの信頼性の判定、データ収集依頼の有効性やコスト効率の判定などを行うことができる。
【0083】
例えば、サービスクラウドサーバ40は、インアクティブ車両数に対するアクティブ車両数又は/及びデータ収集車両数の割合を示す割合情報を生成することで、ジョブリクエストJR1に基づくデータ収集依頼の有効性やコスト効率を示す指標を好適に算出することができる。例えば、サービスクラウドサーバ40は、上述の割合情報が示す割合が高いほど、データ収集依頼の有効性やコスト効率が高いと判定することができる。また、サービスクラウドサーバ40は、アクティブ車両数、アクティブ延べ車両数、データ収集車両数などを参照することで、ビークルクラウドサーバ30から受信したアップロードデータUD1に含まれる収集データの信頼性を好適に判定することができる。例えば、サービスクラウドサーバ40は、アクティブ車両数、アクティブ延べ車両数、及びデータ収集車両数が高いほど、ビークルクラウドサーバ30から受信した収集データの信頼性が高いと判定することができる。
【0084】
なお、アップロードデータUD1のデータ構造例は、
図9に示すものに限定されない。例えば、アップロードデータUD1には、インアクティブ状態となった車両の延べ数を示すインアクティブ延べ車両数が含まれてもよい。この場合、ビークルクラウドサーバ30は、各車載端末20から受信したアップロードデータUD1に含まれる状態カウント情報が示すインアクティブ遷移回数を積算することで、上述のインアクティブ延べ車両数を決定する。
【0085】
(6)
処理フロー
次に、有効な状態管理フラグFsを含むジョブリクエストJR1及びジョブリクエストJR2が生成された場合に車載端末20及びビークルクラウドサーバ30が実行する処理について、
図10及び
図11のフローチャートを参照して具体的に説明する。
【0086】
(6-1)
車載端末の処理
図10は、有効な状態管理フラグFsが含まれるジョブリクエストJR2を受信した場合に車載端末20が実行する処理手順を示すフローチャートである。車載端末20は、
図10に示すフローチャートの処理を繰り返し実行する。
【0087】
まず、車載端末20は、ビークルクラウドサーバ30から有効な状態管理フラグFsを含むジョブリクエストJR2を受信する(ステップS101)。そして、車載端末20は、ジョブリクエストJR2に対して所定の認証処理を行い、受信したジョブリクエストJR2を認証できたか否か判定する(ステップS102)。
【0088】
そして、車載端末20は、受信したジョブリクエストJR2の認証処理が成功した場合(ステップS102;Yes)、ジョブリクエストJR2に有効な状態管理フラグFsが含まれていることから、ジョブリクエストJR2に対する状態カウント情報を生成する(ステップS103)。ここで、ジョブリクエストJR2の認証処理が成功した場合、車載端末20は、ジョブ状態が自動的にインアクティブ状態となるため、アクティブ遷移回数を0、インアクティブ遷移回数を1とした状態カウント情報を生成する。
【0089】
一方、車載端末20は、受信したジョブリクエストJR2の認証処理が失敗した場合(ステップS102;No)、認証が失敗した旨(即ちフェールとなった旨)のアップロードデータUD2をビークルクラウドサーバ30へ送信する(ステップS110)。
【0090】
ステップS103で状態カウント情報の生成後、車載端末20は、受信したジョブリクエストJR2に含まれる「データ収集条件情報」が示すジョブの実行条件を満たすか否か判定する(ステップS104)。そして、車載端末20は、ジョブの実行条件を満たすと判定した場合(ステップS104;Yes)、センサ部27が出力するデータを用いて、ジョブリクエストJR2に含まれる「収集データ指定情報」により指定されたデータの収集を行う(ステップS105)。この場合、ジョブのジョブ状態は、アクティブ状態となる。一方、車載端末20は、ジョブの実行条件を満たさないと判定した場合(ステップS104;No)、ステップS105の処理を行うことなくステップS106へ移行する。この場合、ジョブのジョブ状態は、インアクティブ状態となる。
【0091】
次に、車載端末20は、ジョブ状態の遷移の有無に応じて状態カウント情報を更新する(ステップS106)。具体的には、車載端末20は、ステップS104の判定処理に基づきジョブがインアクティブ状態からアクティブ状態へ遷移したと判定した場合には、当該ジョブに対するアクティブ遷移回数を1だけ増加させるように状態カウント情報を更新する。一方、車載端末20は、ステップS104の判定処理に基づきジョブがアクティブ状態からインアクティブ状態へ遷移したと判定した場合には、当該ジョブに対するインアクティブ遷移回数を1だけ増加させるように状態カウント情報を更新する。
【0092】
次に、車載端末20は、アップロードデータUD2の送信タイミングであるか否か判定する(ステップS107)。アップロードデータUD2の送信タイミングは、種々の規則により定められてもよい。例えば、車載端末20は、ジョブの有効期限の終了時に1度限りアップロードデータUD2を送信するものであってもよく、ステップS105でデータ収集を行った都度アップロードデータUD2を送信するものであってもよく、所定時間間隔ごとにアップロードデータUD2を送信するものであってもよい。具体的なアップロードデータUD2の送信タイミングは、例えば、ビークルクラウドサーバ30から受信したジョブリクエストJR2に含まれるデータ収集条件情報により指定されたタイミングに設定される。
【0093】
そして、車載端末20は、アップロードデータUD2の送信タイミングである場合(ステップS107;Yes)、ステップS105で収集した収集データ及びインアクティブ遷移回数とアクティブ遷移回数とを示す状態カウント情報を含むアップロードデータUD2(
図8参照)をビークルクラウドサーバ30へ送信する(ステップS108)。なお、車載端末20は、アップロードデータUD2を複数タイミングで送信する態様では、最後の送信タイミングで送信するアップロードデータUD2にのみ状態カウント情報を含めてもよい。また、車載端末20は、ジョブの有効期間における最終的なアクティブ遷移回数及びインアクティブ遷移回数をアップロードデータUD2に含めるため、少なくともジョブの有効期限の終了時点での状態カウント情報を含むアップロードデータUD2をビークルクラウドサーバ30に送信してもよい。この場合のアップロードデータUD2には、収集データが含まれなくともよい。即ち、この場合、車載端末20は、収集データと状態カウント情報との送信タイミングを必ずしも一致させなくともよい。
【0094】
次に、車載端末20は、ジョブが終了したか否か判定する(ステップS109)。例えば、受信したジョブリクエストJR2に含まれる「データ収集条件情報」にジョブの有効期限が示されている場合には、当該ジョブの有効期限が徒過したか否か判定する。そして、車載端末20は、ジョブが終了したと判定した場合(ステップS109;Yes)、フローチャートの処理を終了する。一方、車載端末20は、アップロードデータUD2の送信タイミングではないと判定した場合(ステップS107;No)、または、ジョブが終了していないと判定した場合(ステップS109;No)、ステップS104へ処理を戻す。
【0095】
(6-2)
ビークルクラウドサーバの処理
図11は、有効な状態管理フラグFsを含むジョブリクエストJR1を受信したビークルクラウドサーバ30が実行する処理手順を示すフローチャートを示す。
【0096】
まず、ビークルクラウドサーバ30は、有効な状態管理フラグFsを含むジョブリクエストJR1をサービスクラウドサーバ40から受信する(ステップS201)。そして、ビークルクラウドサーバ30は、記憶部32に記憶された車両情報を参照し、ビークルクラウドサーバ30が管理する車両の車載端末20に対して、ジョブリクエストJR1に基づき生成したジョブリクエストJR2を送信する(ステップS202)。
【0097】
その後、ビークルクラウドサーバ30は、ジョブリクエストJR2の送信先である車載端末20からアップロードデータUD2を受信し、記憶部32に記憶する(ステップS203)。そして、ビークルクラウドサーバ30は、予め定めたアップロードデータUD2の収集期間が終了するまで(ステップS204;No)、ステップS203においてアップロードデータUD2の受信及び記憶を繰り返し行う。これにより、ビークルクラウドサーバ30は、複数の車両の車載端末20から供給されるアップロードデータUD2を記憶する。
【0098】
また、フローチャートに図示しない態様として、例えば、ある程度リアルタイム性が要求される情報などについては、ビークルクラウドサーバ30は、アップロードデータUD2の収集期間内において、定期的、あるいは断続的に受信したアップロードデータUD2を記憶部32に蓄積することなく、そのままサービスクラウドサーバ40にアップロードデータUD1として逐次送信するようにしてもよい。この場合、ビークルクラウドサーバ30は、アップロードデータUD2の収集期間終了後に、後述するステップS205で集計した状態カウント情報のみをサービスクラウドサーバ40に送信する。
【0099】
そして、ビークルクラウドサーバ30は、アップロードデータUD2の収集期間が終了したと判定した場合(ステップS204;Yes)、インアクティブ車両数、アクティブ車両数、アクティブ延べ車両数、データ収集車両数等の集計を行う(ステップS205)。例えば、ビークルクラウドサーバ30は、アクティブ車両数及びアクティブ延べ車両数については、ステップS203で受信及び記憶したアップロードデータUD2に含まれる状態カウント情報が示すアクティブ遷移回数に基づき算出する。また、ビークルクラウドサーバ30は、インアクティブ車両数については、送信履歴情報Ih又は状態カウント情報が示すインアクティブ遷移回数のいずれかに基づき算出し、データ収集車両数については、収集データを含むアップロードデータUD2の送信元の車載端末20を数えることで算出する。なお、ビークルクラウドサーバ30は、同一の車載端末20から同一のジョブに関するアップロードデータUD2を複数回受信していた場合には、最後に受信したアップロードデータUD2に含まれる状態カウント情報に基づき、上述の集計を行うとよい。
【0100】
次に、ビークルクラウドサーバ30は、ステップS205での集計結果を含むアップロードデータUD1(
図9参照)を、ジョブリクエストJR1の要求元であるサービスクラウドサーバ40へ送信する(ステップS206)。その後、ジョブリクエストJR1を生成したサービスクラウドサーバ40は、ビークルクラウドサーバ30からアップロードデータUD1を受信する。この場合、サービスクラウドサーバ40は、受信したアップロードデータUD1に基づき、返信された収集データの信頼性の判定、データ収集依頼の有効性やコスト効率の判定などを行う。
【0101】
(7)適用例
次に、本実施例の適用例について説明する。ここでは、市町村などの自治体が、街づくり・道路利用解析の一環として、渋滞情報や道路利用状況を詳細に把握するためにジョブ配信システムを利用する例について説明する。
【0102】
図12は、本適用例におけるジョブ配信システムの構成例を示す。
図12に示すジョブ配信システムは、地図会社が運営する第1サービスクラウドサーバ40Aと、自治体が運営する第1サービスクラウドサーバ40Aと、タクシー会社が運営するビークルクラウドサーバ30と、車載端末20が搭載されたタクシー車両Vとを有する。ここで、第1サービスクラウドサーバ40Aは、実施例のサービスクラウドサーバ40として機能し、第2サービスクラウドサーバ40Bは、第1サービスクラウドサーバ40Aが収集したデータを第1サービスクラウドサーバ40Aから受信するものとする。
【0103】
自治体には2つの鉄道の駅(A駅とB駅)があり、各駅前の通りが渋滞するので、駅前通りの拡充を必要とし、計画的に駅前通りを拡充するため、渋滞データを取得する。タクシー車両Vは、2つの鉄道駅の駅前通りを頻繁に走る車両であり、合計80台存在する。また、各駅には、タクシープールが存在する。
【0104】
図13は、A駅の駅前通りを示した俯瞰図である。図示のように、A駅付近には、基幹道路50と、基幹道路50から分岐した駅前道路51と、駅前道路51に合流可能なタクシープール52と、が存在する。駅前道路51には、タクシープール52へつながる交差点53と、基幹道路50への入り口となる交差点54とが存在する。
【0105】
ここで、第1サービスクラウドサーバ40Aは、
図6に示す「収集データ指定情報」として、タクシープール52から出て交差点53から交差点54までの駅前道路51を通過する際の走行時間と滞留(停止)時間、及び、交差点54からタクシープール52に入るまでの走行時間と滞留時間を指定したジョブリクエストJR1を生成する。このジョブリクエストJR1には、次の月曜日から日曜日までの1週間をジョブの有効期限と定め、かつ、朝6時から夜7時までをジョブの実行時間帯と定めた「データ収集条件情報」(
図6参照)をさらに含める。そして、第1サービスクラウドサーバ40Aは、ジョブリクエストJR1の応答としてビークルクラウドサーバ30から受信するアップロードデータUD1に基づき、10分間隔に区切られた各時間帯の平均走行時間及び平均滞留時間の算出を行う。そして、第1サービスクラウドサーバ40Aは、算出した平均走行時間及び平均滞留時間をアップロードデータとして第2サービスクラウドサーバ40Bに送信する。この場合、第2サービスクラウドサーバ40Bは、第1サービスクラウドサーバ40Aから受信したアップロードデータに基づき、渋滞情報の内容を吟味する。また、第1サービスクラウドサーバ40Aは、B駅に関しても同様に、ビークルクラウドサーバ30から受信するアップロードデータUD1に基づき、駅前道路に関する平均走行時間及び平均滞留時間の算出を行い、第2サービスクラウドサーバ40Bへその算出結果を含むアップロードデータを送信する。
【0106】
このような場合において、第1サービスクラウドサーバ40Aは、有効な状態管理フラグFsをジョブリクエストJR1に含めることで、ジョブ状態等に関する車両数の統計データをビークルクラウドサーバ30からアップロードデータUD1により受信し、第2サービスクラウドサーバ40Bに供給する。これにより、第2サービスクラウドサーバ40Bは、各駅前の渋滞情報の内容を吟味する際に、ジョブ状態等に関する車両数の統計データを考慮することができるため、渋滞情報の的確な検討を行うことができる。また、測定車両数がない又は非常に少ない(即ちアクティブ車両数が非常に少ない)時間帯については、ひどい渋滞のためにタクシーの駅前道路への流入がない時間帯、又は、タクシーの需要がない時間帯(即ち多くのタクシー車両Vがタクシープールで待機した時間帯)だった可能性があると推測することも可能となる。自治体は、収集データ及び上述の車両数の統計データに基づき、タクシー会社等と必要に応じて協議を行い、渋滞情報の取得条件と解析方法などについて調整を行う。
【0107】
<第2実施例>
第2実施例に係る車載端末20は、各ジョブ状態への遷移回数を示す状態カウント情報をビークルクラウドサーバ30へ送信する代わりに、ジョブ状態の遷移に関する履歴情報(「状態履歴情報」とも呼ぶ。)をビークルクラウドサーバ30へ送信する。以後では、ビークルクラウドサーバ30及びサービスクラウドサーバ40の構成、ジョブリクエストJR1、JR2のデータ構造、アップロードデータUD1のデータ構造等については、第1実施例と同一であるため、その説明を省略する。
【0108】
図14は、第2実施例に係る車載端末20の内部構成を示すブロック図である。図示のように、車載端末20の記憶部22は、状態履歴情報を記憶している。状態履歴情報は、ジョブリクエストJR2により依頼されたジョブが有効な期間における当該ジョブの状態遷移の履歴情報である。状態履歴情報は、例えば、ジョブが遷移した状態と、遷移した時刻とを、依頼されたジョブごとに(例えばリクエスト識別情報ごとに)関連付けたテーブル情報である。車載端末20は、有効な状態管理フラグFsが先に受信したジョブリクエストJR2に含まれる場合に、対象のジョブに対するジョブ状態の遷移を状態履歴情報として記憶部22に記憶する。
【0109】
図15は、第2実施例に係るアップロードデータUD2のデータ構造の一例である。
図15に示すように、第2実施例に係るアップロードデータUD2は、状態カウント情報に代えて、「状態履歴情報」を含んでいる。車載端末20は、有効な状態管理フラグFsが対応するジョブリクエストJR2に含まれていた場合に、当該ジョブリクエストJR2により依頼されたジョブの実行結果である収集データと共に、当該ジョブに対応する状態履歴情報を、アップロードデータUD2に含めてビークルクラウドサーバ30に送信する。これにより、アップロードデータUD2を受信したビークルクラウドサーバ30は、状態履歴情報を参照することで、アップロードデータUD2の送信元の車載端末20のインアクティブ遷移回数及びアクティブ遷移回数を好適に算出することが可能となる。状態履歴情報は、「計数情報」の一例である。
【0110】
図16は、有効な状態管理フラグFsが含まれるジョブリクエストJR2を受信した場合に第2実施例に係る車載端末20が実行する処理手順を示すフローチャートである。車載端末20は、
図16に示すフローチャートの処理を繰り返し実行する。
【0111】
車載端末20は、ビークルクラウドサーバ30から有効な状態管理フラグFsを含むジョブリクエストJR2を受信し(ステップS301)、受信したジョブリクエストJR2の認証処理が成功した場合(ステップS302;Yes)、ジョブリクエストJR2により依頼されたジョブに対する状態履歴情報を生成する(ステップS303)。この場合、ジョブ状態が自動的にインアクティブ状態となるため、車載端末20は、インアクティブ状態への遷移を記録した状態履歴情報を生成する。
【0112】
そして、車載端末20は、受信したジョブリクエストJR2に含まれる「データ収集条件情報」が示すジョブの実行条件を満たす場合(ステップS304;Yes)、センサ部27が出力するデータを用いて、ジョブリクエストJR2に含まれる「収集データ指定情報」により指定されたデータの収集を行う(ステップS305)。この場合、ジョブのジョブ状態は、アクティブ状態となる。一方、車載端末20は、ジョブの実行条件を満たさないと判定した場合(ステップS304;No)、ステップS305の処理を行うことなくステップS306へ移行する。この場合、ジョブのジョブ状態は、インアクティブ状態となる。
【0113】
次に、車載端末20は、ジョブ状態の遷移の有無に応じて状態履歴情報を更新する(ステップS306)。具体的には、車載端末20は、状態履歴情報が示す最新のジョブ状態と比較し、現在のジョブ状態がインアクティブ状態からアクティブ状態へ遷移していると判定した場合には、アクティブ状態への遷移を示すレコードを、対象のジョブに対する状態履歴情報に追加し、アクティブ状態からインアクティブ状態へ遷移していると判定した場合には、インアクティブ状態への遷移を示すレコードを、対象のジョブに対する状態履歴情報に追加する。
【0114】
その後、第1実施例と同様に、車載端末20は、アップロードデータUD2の送信タイミングである場合(ステップS307;Yes)、ステップS305で収集した収集データ及び状態履歴情報を含むアップロードデータUD2(
図15参照)をビークルクラウドサーバ30へ送信する(ステップS308)。また、車載端末20は、ジョブが終了したと判定した場合(ステップS309;Yes)、フローチャートの処理を終了する。一方、アップロードデータUD2の送信タイミングでない場合(ステップS307;No)、又は、ジョブが終了していない場合(ステップS309;No)、ステップS304へ処理を戻す。
【0115】
図17は、有効な状態管理フラグFsを含むジョブリクエストJR1を受信した第2実施例に係るビークルクラウドサーバ30が実行する処理手順を示すフローチャートを示す。
【0116】
まず、ビークルクラウドサーバ30は、有効な状態管理フラグFsを含むジョブリクエストJR1をサービスクラウドサーバ40から受信する(ステップS401)。そして、ビークルクラウドサーバ30は、記憶部32に記憶された車両情報を参照し、ビークルクラウドサーバ30が管理する車両の車載端末20に対して、ジョブリクエストJR1に基づき生成したジョブリクエストJR2を送信する(ステップS402)。
【0117】
その後、ビークルクラウドサーバ30は、状態履歴情報を含むアップロードデータUD2を車載端末20から受信し、記憶部32に記憶する(ステップS403)。そして、ビークルクラウドサーバ30は、予め定めたアップロードデータUD2の収集期間が終了するまで(ステップS404;No)、ステップS403においてアップロードデータUD2の受信及び記憶を繰り返し行う。
【0118】
そして、ビークルクラウドサーバ30は、アップロードデータUD2の収集期間が終了したと判定した場合(ステップS404;Yes)、ステップS403で受信及び記憶したアップロードデータUD2に含まれる状態履歴情報に基づき、車両ごとのアクティブ遷移回数などを算出する(ステップS405)。この場合、ビークルクラウドサーバ30は、アクティブ遷移回数に加えて、インアクティブ遷移回数などについても状態履歴情報に基づき算出してもよい。なお、ビークルクラウドサーバ30は、同一の車載端末20から同一のジョブに関するアップロードデータUD2を複数回受信していた場合には、最後に受信したアップロードデータUD2に含まれる状態履歴情報に基づき、上述の算出を行うとよい。
【0119】
そして、ビークルクラウドサーバ30は、インアクティブ車両数、アクティブ車両数、アクティブ延べ車両数、データ収集車両数等の集計を行う(ステップS406)。例えば、ビークルクラウドサーバ30は、アクティブ車両数及びアクティブ延べ車両数については、ステップS405で算出した車両ごとのアクティブ遷移回数に基づき算出する。また、ビークルクラウドサーバ30は、インアクティブ車両数については、送信履歴情報Ih又はステップS405で算出したインアクティブ遷移回数のいずれかに基づき算出し、データ収集車両数については、収集データを含むアップロードデータUD2の送信元の車載端末20を数えることで算出する。
【0120】
次に、ビークルクラウドサーバ30は、ステップS405での集計結果を含むアップロードデータUD1(
図9参照)を、ジョブリクエストJR1の要求元であるサービスクラウドサーバ40へ送信する(ステップS407)。その後、ジョブリクエストJR1を生成したサービスクラウドサーバ40は、ビークルクラウドサーバ30からアップロードデータUD1を受信する。この場合、サービスクラウドサーバ40は、受信したアップロードデータUD1に基づき、返信された収集データの信頼性の判定、データ収集依頼の有効性やコスト効率の判定などを行う。
【0121】
<第3実施例>
第3実施例に係る車載端末20は、状態カウント情報又は状態履歴情報に代えて、現在のジョブ状態を示す情報(単に「状態情報」とも呼ぶ。)をビークルクラウドサーバ30へ送信する。以後では、サービスクラウドサーバ40の構成、ジョブリクエストJR1、JR2のデータ構造、アップロードデータUD1のデータ構造等については、第1及び第2実施例と同一であるため、その説明を省略する。
【0122】
図18は、第3実施例に係るアップロードデータUD2のデータ構造の一例である。
図18に示すように、第3実施例に係るアップロードデータUD2は、第1実施例の状態カウント情報又は第2実施例の状態履歴情報に代えて、「状態情報」を含んでいる。
【0123】
車載端末20は、有効な状態管理フラグFsがジョブリクエストJR2に含まれていた場合に、当該ジョブリクエストJR2により依頼されたジョブの実行結果である収集データと共に、当該ジョブに対応する現在のジョブ状態を示す状態情報を、アップロードデータUD2に含めてビークルクラウドサーバ30に送信する。この場合、車載端末20は、ビークルクラウドサーバ30から受信したジョブリクエストJR2に含まれるデータ収集条件情報により指定された時間間隔によりアップロードデータUD2をビークルクラウドサーバ30へ送信する。なお、この場合のアップロードデータUD2の送信タイミングは、ジョブごとに定められてもよく、複数のジョブで一律であってもよい。状態情報は、「計数情報」の一例である。
【0124】
図19は、第3実施例に係るビークルクラウドサーバ30の内部構成を概略的に示した図である。
図19に示すように、ビークルクラウドサーバ30は、状態履歴情報を記憶部32に記憶している。ここで、ビークルクラウドサーバ30は、例えば、状態履歴情報を、車載端末20から受信するアップロードデータUD2に含まれる状態情報に基づき、ジョブごと及び車両IDごとに生成する。この場合、例えば、状態履歴情報は、リクエスト識別情報及び車両IDごとに、状態情報が示すジョブ状態と、状態情報の受信時刻又は生成時刻とを関連付けた情報である。ビークルクラウドサーバ30は、このような状態履歴情報を保持することで、第1実施例及び第2実施例と同様、インアクティブ車両数、アクティブ車両数、アクティブ延べ車両数、データ収集車両数等の集計を好適に行うことができる。
【0125】
図20は、有効な状態管理フラグFsが含まれるジョブリクエストJR2を受信した場合に第3実施例に係る車載端末20が実行する処理手順を示すフローチャートである。車載端末20は、
図20に示すフローチャートの処理を繰り返し実行する。
【0126】
車載端末20は、ビークルクラウドサーバ30から有効な状態管理フラグFsを含むジョブリクエストJR2を受信し(ステップS501)、受信したジョブリクエストJR2の認証処理が成功した場合(ステップS502;Yes)、受信したジョブリクエストJR2が示すジョブの実行条件を満たすか否か判定する(ステップS503)。そして、ジョブの実行条件を満たす場合(ステップS503;Yes)、センサ部27が出力するデータを用いて、ジョブリクエストJR2により指定されたデータの収集を行う(ステップS504)。一方、車載端末20は、ジョブの実行条件を満たさないと判定した場合(ステップS503;No)、ステップS504の処理を行うことなくステップS505へ移行する。
【0127】
次に、車載端末20は、アップロードデータUD2の送信タイミングであるか否か判定する(ステップS505)。この場合のアップロードデータUD2の送信タイミングは、ジョブごとに定められてもよく、複数のジョブで一律であってもよい。そして、車載端末20は、アップロードデータUD2の送信タイミングである場合(ステップS505;Yes)、現在のジョブ状態を示す状態情報を生成する(ステップS505)。具体的には、車載端末20は、ジョブの実行条件を満たしていない場合には、当該ジョブがインアクティブ状態であることを示す状態情報を生成し、ジョブの実行条件を満たしている場合には、当該ジョブがアクティブ状態であることを示す状態情報を生成する。
【0128】
そして、車載端末20は、ステップS506で生成した状態情報と、ステップS504で収集した収集データとを含むアップロードデータUD2をビークルクラウドサーバ30に送信する(ステップS507)。そして、車載端末20は、ジョブを終了すべきと判定した場合(ステップS508;Yes)、フローチャートの処理を終了する。
【0129】
一方、車載端末20は、アップロードデータUD2の送信タイミングでない場合(ステップS505;No)、又は、ジョブが終了していない場合(ステップS508;No)、ステップS503へ処理を戻す。これにより、車載端末20は、ステップS503~ステップS507の処理を、ジョブの有効期限が終了するまで繰り返し実行する。
【0130】
図21は、有効な状態管理フラグFsを含むジョブリクエストJR1を受信した第3実施例に係るビークルクラウドサーバ30が実行する処理手順を示すフローチャートを示す。
【0131】
まず、ビークルクラウドサーバ30は、有効な状態管理フラグFsを含むジョブリクエストJR1をサービスクラウドサーバ40から受信する(ステップS601)。そして、ビークルクラウドサーバ30は、記憶部32に記憶された車両情報を参照し、ビークルクラウドサーバ30が管理する車両の車載端末20に対して、ジョブリクエストJR1に基づき生成したジョブリクエストJR2を送信する(ステップS602)。
【0132】
その後、ビークルクラウドサーバ30は、状態情報を含むアップロードデータUD2を車載端末20から受信し、記憶部32に記憶する(ステップS603)。そして、ビークルクラウドサーバ30は、受信したアップロードデータUD2が示すジョブ及び車両IDに対応する状態履歴情報を更新する(ステップS604)。例えば、ビークルクラウドサーバ30は、対象の状態履歴情報に対し、受信したアップロードデータUD2の状態情報が示すジョブ状態と、時刻情報とを含むレコードを追加する。そして、ビークルクラウドサーバ30は、予め定めたアップロードデータUD2の収集期間が終了するまで(ステップS605;No)、ステップS603及びステップS604を繰り返し行う。
【0133】
そして、ビークルクラウドサーバ30は、アップロードデータUD2の収集期間が終了したと判定した場合(ステップS605;Yes)、記憶部32に記憶した状態履歴情報に基づき、車両ごとのアクティブ遷移回数などを算出する(ステップS606)。この場合、ビークルクラウドサーバ30は、アクティブ遷移回数に加えて、インアクティブ遷移回数などについても状態履歴情報に基づき算出してもよい。
【0134】
そして、ビークルクラウドサーバ30は、インアクティブ車両数、アクティブ車両数、アクティブ延べ車両数、データ収集車両数等の集計を行う(ステップS607)。例えば、ビークルクラウドサーバ30は、アクティブ車両数及びアクティブ延べ車両数については、ステップS605で算出した車両ごとのアクティブ遷移回数に基づき算出する。また、ビークルクラウドサーバ30は、インアクティブ車両数については、送信履歴情報Ih又はステップS605で算出したインアクティブ遷移回数のいずれかに基づき算出し、データ収集車両数については、収集データを含むアップロードデータUD2の送信元の車載端末20を数えることで算出する。
【0135】
次に、ビークルクラウドサーバ30は、ステップS605での集計結果を含むアップロードデータUD1(
図9参照)を、ジョブリクエストJR1の要求元であるサービスクラウドサーバ40へ送信する(ステップS608)。その後、ジョブリクエストJR1を生成したサービスクラウドサーバ40は、ビークルクラウドサーバ30からアップロードデータUD1を受信する。この場合、サービスクラウドサーバ40は、受信したアップロードデータUD1に基づき、返信された収集データの信頼性の判定、データ収集依頼の有効性やコスト効率の判定などを行う。
【0136】
以上説明したように、ビークルクラウドサーバ30は、サービスクラウドサーバ40が発したジョブリクエストJR1を受信し、複数の車両の車載端末20に対してジョブリクエストJR1に応じたジョブリクエストJR2を送信する。また、ビークルクラウドサーバ30は、複数の車両の車載端末20が正常にジョブリクエストJR2を受信できたことを示す受信結果であるアップロードデータUD2を受信し、アップロードデータUD2に基づき、ジョブリクエストJR2を正常に受信できた車両数であるインアクティブ車両数を計数する。また、ビークルクラウドサーバ30は、ジョブのアクティブ遷移回数が1回以上となるアップロードデータUD2を受信し、当該アップロードデータUD2を送信した車両数及び延べ車両数を表すアクティプ車両数及びアクティブ延べ車両数を計数する。そして、ビークルクラウドサーバ30は、インアクティブ車両数、アクティプ車両数、アクティブ延べ車両数の情報を含むアップロードデータUD1をサービスクラウドサーバ40へ送信する。
【0137】
以上説明したように、ビークルクラウドサーバ30は、サービスクラウドサーバ40が発したジョブリクエストJR1を受信する。そして、ビークルクラウドサーバ30は、ジョブリクエストJR1に応じたデータ収集条件情報及び収集データ指定情報と、データ収集条件情報及び収集データ指定情報が示すジョブの状態が、所定条件が満たされた場合に当該ジョブを実行する状態であるアクティブ状態になった回数であるアクティブ遷移回数を計数するための状態カウント情報又は状態履歴情報若しくは状態情報を送信することを示す状態管理フラグFsと、を含むジョブリクエストJR2を生成する。そして、ビークルクラウドサーバ30は、複数の車両の車載端末20に対してジョブリクエストJR2を送信する。そして、ビークルクラウドサーバ30は、ジョブリクエストJR2に対する収集データと状態カウント情報又は状態履歴情報若しくは状態情報とを含むアップロードデータUD2を受信し、状態カウント情報又は状態履歴情報若しくは状態情報に基づき、アクティプ車両数又はアクティブ延べ車両数の少なくとも一方を計数する。そして、ビークルクラウドサーバ30は、上述の計数結果に基づくアップロードデータUD1をサービスクラウドサーバ40に送信する。
【0138】
<変形例>
次に、上述の第1~第3実施例に好適な変形例について説明する。以下の変形例は、任意に組み合わせて上述の実施例に適用してもよい。
【0139】
(変形例1)
第1~第3実施例において、車載端末20に相当する機能が車両Vに内蔵されていてもよい。この場合、車両の電子制御装置(ECU:Electronic Control Unit)は、車両のメモリに記憶されたプログラムを実行することで、車載端末20の制御部24に相当する処理を実行する。この場合、車両Vは、「移動体」の一例であり、車両Vの電子制御装置は、「端末装置」の一例である。
【0140】
(変形例2)
第1実施例の状態カウント情報には、インアクティブ遷移回数に関する情報が含まれていた。これに代えて、状態カウント情報には、インアクティブ遷移回数に関する情報が含まれていなくともよい。
【0141】
この場合、車載端末20は、
図10のステップS103及びステップS106において、アクティブ遷移回数のみをカウントし、カウントしたアクティブ遷移回数の情報をアップロードデータUD2に含めてビークルクラウドサーバ30に送信する。この場合、ビークルクラウドサーバ30は、
図11のステップS205において、インアクティブ車両数を、送信履歴情報Ihに基づき算出する。また、ビークルクラウドサーバ30は、アップロードデータUD2の送信元となる車載端末20の数をカウントすることで、データ収集車両数を算出する。
【0142】
同様に、第2実施例の状態履歴情報には、インアクティブ状態への遷移に関する情報が含まれていなくともよい。この場合においても、状態履歴情報を含むアップロードデータUD2を受信したビークルクラウドサーバ30は、
図17のステップS406において、インアクティブ車両数を、送信履歴情報Ihに基づき算出すればよい。
【0143】
(変形例3)
第1実施例において、車載端末20は、アップロードデータUD2の送信時に状態履歴情報から状態カウント情報を生成し、アップロードデータUD2に状態カウント情報を含めてもよい。この場合、車載端末20は、
図14と同様、記憶部22に状態履歴情報を記憶する。そして、車載端末20は、アップロードデータUD2の送信タイミングにおいて、記憶部22に記憶した状態履歴情報を参照して状態カウント情報を生成し、収集データ等と共にアップロードデータUD2としてビークルクラウドサーバ30へ送信する。
【0144】
(変形例4)
第1~第3実施例において、ジョブリクエストJR1、JR2に含まれるジョブは複数であってもよい。この場合、複数のジョブに共通の実行条件が設定されていてもよく、ジョブごとに異なる実行条件が設定されていてもよい。ジョブごとに異なる実行条件が設定されている場合、ジョブは個々のジョブ状態を持つ。例えば、インアクティブ状態からアクティブ状態への遷移は、実行条件を満たしたジョブが個別にアクティブ状態に遷移する。
【0145】
(変形例5)
第1~第3実施例において、ビークルクラウドサーバ30は、インアクティブ車両数に対するアクティブ車両数の割合、又は、インアクティブ車両数に対するデータ収集車両数の割合等を示す割合情報を生成し、当該割合情報をアップロードデータUD1に含めてサービスクラウドサーバ40へ送信してもよい。これにより、ビークルクラウドサーバ30は、データ収集依頼の有効性やコスト効率を判定するのに必要な情報をサービスクラウドサーバ40に対して好適に送信することができる。本変形例において、上述の割合情報は、「移動体数情報」の一例である。