(58)【調査した分野】(Int.Cl.,DB名)
前記配信要求部は、前記更新データの配信にかかる前記配信サーバの処理負荷が、予め設定された値以上である場合に、前記配信サーバの処理負荷が、前記予め設定された値よりも小さくなる更新データと、前記更新データを配信する通信装置とを新たに選択することを特徴とする請求項1記載のデータ配信システム。
前記選択部は、前記通信装置が、データの更新を許可する設定に設定されているか否かの情報と、前記通信装置が起動状態にあるのか、前記起動状態よりも電力消費量を削減した待機状態にあるのかを示す情報との少なくとも一方に基づいて、前記配信対象の通信装置の前記優先度を設定することを特徴とする請求項1から3のいずれか一項に記載のデータ配信システム。
前記複数の通信装置は、所定時間ごとに、前記通信装置が起動状態にあるのか、前記待機状態にあるのかを示す情報と、前記通信装置が、データの更新を許可する設定に設定されているか否かの情報とを前記制御サーバに送信することを特徴とする請求項4記載のデータ配信システム。
前記配信要求ステップは、前記更新データの配信にかかる前記配信サーバの処理負荷が、予め設定された値以上である場合に、前記配信サーバの処理負荷が、前記予め設定された値よりも小さくなる更新データと、前記更新データを配信する通信装置とを新たに選択することを特徴とする請求項7記載のデータ配信方法。
前記選択ステップは、前記通信装置が、データの更新を許可する設定に設定されているか否かの情報と、前記通信装置が起動状態にあるのか、前記起動状態よりも電力消費量を削減した待機モードにあるのかを示す情報との少なくとも一方に基づいて、前記配信対象の通信装置の前記優先度を設定することを特徴とする請求項7から9のいずれか一項に記載のデータ配信方法。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら本発明の実施形態について説明する。
まず、
図1を参照しながら本実施形態のシステム構成について説明する。
図1は、本実施形態のシステム構成を模式的に示す構成図である。本実施形態は、配信サーバ100と、制御サーバ200と、各車両50に搭載されたTCU(Telematics control unit)300とを備えている。配信サーバ100と制御サーバ200とは、ネットワーク10に接続され、TCU300は、移動体通信網30に接続可能に構成されている。ネットワーク10は、双方向に通信が可能な通信回線網である。このネットワーク10には、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol-Virtual Private Network)、Ethernet(登録商標)、ワイヤレスLAN等の専用回線網などを用いることができ、有線又は無線を問わない。また、移動体通信網30は、無線基地局40、基地局制御装置、交換機等の多数のネットワーク装置によって通信網が構成されている。また、ネットワーク10と移動体通信網30とは、アクセスポイント20を介して接続されている。アクセスポイント20は、制御サーバ200や配信サーバ100が実施するネットワーク10を介した通信を、移動体通信網30に中継するものである。このようなアクセスポイント20として、例えば、移動体通信網30を提供する事業者のサーバ等を挙げることができる。
【0010】
配信サーバ100は、TCU300に配信するソフトウェア及びこのソフトウェアの更新データ(以下、これらを総称して更新データと呼ぶ)を記憶している。配信サーバ100は、制御サーバ200により指定されたTCU300に更新データを配信する。
制御サーバ200は、後述する優先順位等の条件に従って更新データを配信するTCU300を選択し、選択したTCU300に、更新データを配信するように配信サーバ100に指示する。
本実施形態では、配信サーバ100がTCU300に配信するデータとして、ソフトウェアの更新データを例に挙げて説明するが、配信サーバ100がTCU300に配信するデータは、更新データに限られない。例えば、車両50に搭載された車載装置60が利用するコンテンツデータを配信サーバ100からTCU300に配信することもできる。コンテンツデータには、地図データ(道路の形状データ、道路の幅員データ、道路の規制データ、地形データ、マークデータ、交差点データ、施設のデータ等)や、音声データ、楽曲データ、映像データ、ゲーム等のアプリケーションデータ等が含まれる。
また、配信サーバ100がTCU300に配信する更新データは、TCU300にインストールされたソフトウェアを更新するデータであってもよいし、車載装置60或いはECU70にインストールされたソフトウェアを更新するデータであってもよい。
また、通信装置は、制御サーバ200や配信サーバ100にネットワーク10や移動体通信網30を介して接続し、制御サーバ200や配信サーバ100とデータ通信を行うことができる装置であれば、本発明の特徴を逸脱しない限りどのような構成であってもよい。例えば、車載装置60で利用される更新データ又はコンテンツデータの配信を配信サーバ100から受ける場合に、車載装置60自体を移動体通信網30に接続して、配信サーバ100や制御サーバ200とデータの送受信を行うようにしてもよい。また、TCU300が車載装置60から当該車載装置60の情報(例えば、車載装置60にインストールされたソフトウェアのバージョン情報等)を収集して、制御サーバ200に車載装置60の情報を送信するようにしてもよい。TCU300は、配信サーバ100から配信される、車載装置60の更新データや、車載装置60で利用されるコンテンツデータを受信して、車載装置60に提供するようにしてもよい。
【0011】
車両50には、TCU300の他に、車載装置60やECU(Electronic Control Unit)70が搭載され、車載装置60、ECU70及びTCU300はCAN(Controller Area network)バス80で接続されている。TCU300は、配信サーバ100や制御サーバ200とデータの送受信を行う。
車載装置60は、車両50に搭載される、ナビゲーション装置やオーディオ装置である。ECU70は、例えば、車両50を制御する電子制御装置であって、イグニッションスイッチがオンされると、TCU300に、イグニッションスイッチの状態がオン状態に変化したことを通知する。
【0012】
次に、
図2を参照しながらTCU300のハードウェア構成の一例について説明する。TCU300は、制御部310、記憶部320、電源管理部330、通信部340、CAN−I/F部350を備えている。制御部310は、不図示のCPU(Central Processing Unit)やメモリを備え、TCU300を統括制御する。CPUやメモリ等のハードウェアと、記憶部320に記憶したプログラムとの協働によって、
図2に示す制御部310内に示す機能ブロックが実現される。制御部310は、機能ブロックとして、TCU情報管理部311と、更新制御部312とを備えている。
記憶部320は、フラッシュメモリや、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性の記憶装置である。記憶部320は、制御プログラム等のTCU300の電源がオフされた後も保存しておく必要のあるデータ等を記憶している。
【0013】
TCU情報管理部311は、TCU300のTCU情報を収集し、収集したTCU情報に、TCU300を識別するTCU識別番号を付加して、所定時間ごとに制御サーバ200に送信する。TCU情報には、TCU300のハードウェア情報、ソフトウェア情報及びTCU状態が含まれる。ハードウェア情報は、TCU300に搭載されたハードウェアを識別する情報であり、TCU300に搭載されたハードウェアのモデル名と、仕向け地とを含む。ソフトウェア情報は、TCU300にインストールされたソフトウェアを識別する情報であり、ソフトウェア名と、バージョン情報とを含む。TCU状態は、TCU300の状態を管理する情報であり、モード情報と、更新可否情報とを含む。モード情報には、起動モードと、待機モード(低消費電力モード)と、超低消費電力モードとが含まれる。これらのモード情報については、電源管理部330の説明の際に説明する。更新可否情報は、ソフトウェアの更新を許可するか否かを示す情報である。この更新可否情報は、例えば、車両50のユーザによって設定可能な情報であり、更新可否情報が更新拒否に設定されている場合、該当のソフトウェアが更新されても、ソフトウェアの更新を行わない。
【0014】
更新制御部312は、通信部340を制御して配信サーバ100、制御サーバ200と通信を行い、TCU300にインストールされているソフトウェアの更新を制御する。更新制御部312は、制御サーバ200から送信されるSMS(Short Message Service)メッセージを、通信部340を介して入力し、入力したSMSメッセージを解析する。SMSメッセージには、更新されたソフトウェアのソフトウェア名、バージョン情報等が記載されている。更新制御部312は、SMSメッセージにより通知されたソフトウェアを取得する必要があると判断した場合に、通信部340を介して制御サーバ200に更新データの取得要求を送信する。
【0015】
電源管理部330は、制御部310、記憶部320、通信部340、CAN−I/F部350等に接続している。TCU300は、動作モードとして、起動モードと、待機モードと、超低消費電力モードとを備えており、電源管理部330が制御部310の制御に従ってTCU300の各部への電源供給を制御することで、起動モード、待機モード、超低消費電力モードの各動作モードが実現される。起動モード(起動状態)は、制御部310、記憶部320、通信部340、CAN−I/F部350に電源が供給され、制御部310が起動した状態にあるモードである。
待機モード(待機状態)は、通信部340に電源が供給され、制御部310、記憶部320等の他のハードウェアへの電源供給はオフ、又は起動モードよりも供給電力を削減した状態である。待機モードにおいて、例えば、後述するSMSメッセージを通信部340が受信すると、通信部340は、制御部310に割込信号を出力する。制御部310は、通信部340から割込信号を入力すると起動し、電源管理部330を制御してTCU300の各部への電源供給を再開させる。超低消費電力モード(待機状態)は、制御部310、記憶部320、通信部340、CAN−I/F部350への電源供給がすべてオフされたモードである。超低消費電力モードにおいて、車両50のイグニッションスイッチがオンされると、電源管理部330による電源供給が再開され、TCU300は起動モードへ移行する。
【0016】
通信部340は、通信モジュールであり、移動体通信網30に接続して無線通信を行う。
CAN−I/F部350は、CANバス80に接続されるインターフェースである。制御部310は、CAN−I/F部350を通じて、ECU70や車載装置60との間で信号を送受信する。
【0017】
次に、
図3を参照しながら配信サーバ100及び制御サーバ200のハードウェア構成の一例について説明する。但し、配信サーバ100と制御サーバ200とはほぼ同一の構成を備えているため、ここでは代表して制御サーバ200の構成について説明する。また、
図3に括弧書きで示す符号が、配信サーバ100の備えるハードウェアの符号を表す。
制御サーバ200は、制御部210を備えている。制御部210は、CPU211と、メモリ212とを備えている。CPU211及びメモリ212は、バス260に接続している。メモリ212には、CPU211が制御に使用する制御プログラム等が保存されている。CPU211は、制御プログラムをハードディスク装置(以下、HDDと表記する)250から読み出してメモリ212に保存する。その後、CPU211は、メモリ212に保存した制御プログラムに従って処理(演算)を行う。メモリ212は、CPU211のワークメモリとして使用され、メモリ212には、CPU211が演算に使用するデータや、CPU211による演算後のデータ等が保存される。CPU211、メモリ212などのハードウェアと、制御プログラムとの協働によって実現される機能ブロックについては、
図7を参照しながら後述する。
【0018】
制御サーバ200は、入力装置221と、入力インターフェース(以下、インターフェースをI/Fと略記する)222とを備えている。入力I/F222は、入力装置221と、バス260とに接続している。入力装置221は、マウス、キーボード等の入力デバイスである。入力装置221が利用者によって操作されると、入力装置221は、受け付けた操作内容を示す操作情報を、入力I/F222を介して制御部210に送る。入力I/F222は、入力装置221から操作情報を入力し、入力した操作情報を、バス260を介して制御部210に送る。
【0019】
制御サーバ200は、グラフィックI/F232と、表示装置231とを備えている。グラフィックI/F232は、バス260と表示装置231とに接続している。グラフィックI/F232は、制御部210で処理されたグラフィックデータを表示装置231に表示させるためのインターフェースである。グラフィックI/F232は、制御部210から受け取ったグラフィックデータを波形電気信号に変換して表示装置231の表示画面に表示させる。
【0020】
制御サーバ200は、ネットワークI/F240を備えている。ネットワークI/F240は、バス260と、ネットワーク10とに接続する。ネットワークI/F240は、制御部210から送られたデータを入力し、入力したデータを、ネットワーク10に出力する。また、ネットワークI/F240は、ネットワーク10を介して受信したデータを制御部210に送る。
【0021】
制御サーバ200は、HDD250を備えている。HDD250は、CPU211が制御に使用する制御プログラムを記憶している。また、HDD250は、
図4〜
図6に示す管理テーブルを記憶している。なお、
図3には、記憶装置の一例としてHDD250を示したが、ハードディスク装置に限定されるものではない。例えば、HDD250は、コンピュータで読み込み可能なフレキシブルディスク(FD)、DVD(DigitalVersatile Disc)、DVD−RAM等の可搬記憶媒体でもよい。また、HDD250は、CD−ROM(Compact Disc ReadOnly Memory)、CD−R(Recordable)/RW(Rewritable)、光磁気ディスク、ICカードなどの可搬記憶媒体であってもよい。
【0022】
次に、
図4〜
図6を参照しながら制御サーバ200のHDD250に記憶された管理テーブルの構成について説明する。
まず、TCU管理テーブルについて
図4を参照しながら説明する。TCU管理テーブルは、TCU300に搭載されたハードウェアや、TCU300にインストールされたソフトウェア等、各TCU300の情報を管理するテーブルである。TCU管理テーブルは、各TCU300から送信されるTCU情報に、SMS送信可否及び電話番号を、各TCU300を識別するTCU識別番号に対応付けて登録される。SMS送信可否は、TCU300へのSMSメッセージの送信が許可されているか否かを示す情報である。制御サーバ200は、ソフトウェアが更新された場合に、更新されたソフトウェアの旧バージョンがインストールされているTCU300に、SMSメッセージによりソフトウェアの更新を通知する。電話番号は、SMSメッセージの宛先に使用する、TCU300の電話番号である。
【0023】
次に、更新管理テーブルについて
図5を参照しながら説明する。更新管理テーブルは、更新データのTCU300への配信を管理するテーブルである。更新管理テーブルには、優先順位、SMS送信可否、SMS送信状況、TCU状態、バージョン情報が、TCU識別番号に対応付けられて登録されている。優先順位は、更新データを配信するTCU300の順番を設定した情報である。制御サーバ200は、TCU状態や、TCU300にインストールされているソフトウェアのバージョン、SMS送信可否等の情報に基づいて優先順位を設定する。SMS送信状況は、SMSメッセージのTCU300への送信状況を示す情報である。バージョン情報は、TCU300にインストールされたソフトウェアのバージョンを示す情報である。
【0024】
図6に、処理負荷管理テーブルの一例を示す。処理負荷管理テーブルは、配信サーバ100の処理負荷、例えば、配信サーバ100のCPU111の使用率を管理するテーブルである。処理負荷管理テーブルには、処理負荷と、配信状況と、SMS送信状況とが、TCU識別番号に対応づけて登録されている。処理負荷は、TCU識別番号の示すTCU300への更新データの配信にかかる処理負荷である。配信状況は、TCU識別番号の示すTCU300への更新データの配信状況である。本実施形態では、処理負荷を、更新データの配信先のTCU300ごとに管理している。また、処理負荷管理テーブルには、配信先ごとの処理負荷の合計である、トータルの処理負荷が登録されている。
なお、
図6には、1つの配信サーバ100の処理負荷が登録された処理負荷管理テーブルを示すが、配信サーバ100を複数設けた構成の場合、処理負荷管理テーブルには、各配信サーバ100の処理負荷が、配信サーバ100ごとに登録される。
【0025】
次に、
図7を参照しながら制御サーバ200の制御部210が備える機能ブロックについて説明する。制御部210は、機能ブロックとして、選択部215と、メッセージ生成部(送信部)216と、配信制御部(受信部、判定部、配信要求部)217とを備えている。
選択部215は、ネットワークI/F240に接続され、ソフトウェアが更新された場合に、この更新されたソフトウェアをHDD150に記憶する配信サーバ100から通知される更新通知を受信する。更新通知には、例えば、更新されたソフトウェアのソフトウェア名や、バージョン情報等の情報が記録されている。選択部215は、配信サーバ100から更新通知が入力されると、TCU管理テーブルを参照して、まず、更新通知に記録されたソフトウェアの旧バージョンがインストールされたTCU300の情報を検出する。次に、選択部215は、検出したTCU300のTCU状態が、更新許可に設定されているか否かを判定する。選択部215は、TCU状態が更新許可に設定されたTCU300の情報をTCU管理テーブルから取得して、新たに作成する更新管理テーブルに登録する。TCU管理テーブルから取得するTCU300の情報には、
図5に示すTCU識別番号、SMS送信可否、TCU状態、バージョン情報等が含まれる。
【0026】
次に、選択部215は、更新管理テーブルに登録した情報を参照して、更新データを配信するTCU300の優先順位を設定する。選択部215は、例えば、TCU300のSMS送信可否、TCU状態、バージョン情報等に基づいて優先順位を設定する。例えば、選択部215は、TCU300に配信されるソフトウェアが、TCU300のファームウェアである場合、TCU300のTCU状態が待機モードであり、SMS送信可否が送信可に設定されたTCU300の優先順位が、他のTCU状態のTCU300よりも高くなるように設定する。ファームウェアの更新を行う場合、TCU300は待機モードにあることが好ましい。TCU300が起動モードにある場合には、TCU300が処理を実行中で、ファームウェアの更新を行うことができない場合があるからである。
また、TCU300が待機モードとなる場合とは、例えば、車両50のイグニッションスイッチがオフされ、TCU300が車載装置60や、ECU70と通信を行っていない状態である。TCU300のモードが待機モードである場合、制御サーバ200がTCU300にSMSメッセージを送信することで、TCU300を起動させることができる。TCU300の通信部340は、SMSメッセージを受信すると、制御部310に割込信号を出力して制御部310を起動させる。SMSメッセージを受信して起動したTCU300の制御部310は、受信したSMSメッセージを解析して、必要であれば更新データの取得要求を制御サーバ200又は配信サーバ100に送信する。
【0027】
また、選択部215は、TCU状態が、更新許可に設定されているTCU300のうち、インストールされているソフトウェアのバージョンが古いTCU300の優先順位が、バージョンが新しいTCU300の優先順位よりも高くなるように設定してもよい。
また、選択部215は、更新データが複数ある場合、ソフトウェアの不具合を解消するための更新データの配信の優先順位を、他の更新データの配信の優先順位よりも高く設定する。ソフトウェアの不具合を解消するための更新データは、更新が遅れると、危険を伴う場合もあるため、優先順位を高く設定する。
選択部215は、優先順位を設定すると、設定した優先順位に従って、SMSメッセージを送信するTCU300を選択する。選択されるTCU300は、1機であってもよいし、複数機であってもよい。選択部215は、選択したTCU300の電話番号と、更新されたソフトウェアのソフトウェア名、バージョン情報等をメッセージ生成部216に渡す。また、選択部215は、作成した更新管理テーブルをメモリ212に記憶させる。
【0028】
メッセージ生成部216は、選択部215から電話番号、ソフトウェア名、バージョン情報等の情報を取得する。メッセージ生成部216は、取得した情報に基づいてソフトウェアの更新を知らせるSMSメッセージを生成する。SMSメッセージには、ソフトウェア名、バージョン情報等が含まれる。また、メッセージ生成部216は、生成したSMSメッセージの宛先に選択部215から取得した電話番号を設定して、ネットワークI/F240に渡す。SMSメッセージは、ネットワークI/F240を介してネットワーク10に出力され、不図示の交換機や、無線基地局40等を介して、該当のTCU300に送信される。なお、以下の説明において、SMSメッセージは、電話番号を宛先とする回線交換(Circuit Switching)方式により制御サーバ200と通信部340との間で、移動体通信網30を経由して送受信されるメッセージである。また、SMSメッセージの送受信に関し、移動体通信網30の一部を構成する回線交換機又は移動体通信網30に接続されたCTI(Computer Telephony Integration)サーバ等の図示しない装置を経由してもよい。また、制御サーバ200と通信部340とはパケット交換(Packet Switching)方式によりデータ通信を行うことが可能な構成としてもよいが、このデータ通信とは別に、SMSメッセージを送受信してもよい。
【0029】
配信制御部217は、TCU300から送信される、SMSメッセージに対する応答(以下、応答メッセージという)をネットワークI/F240を介して入力する。配信制御部217は、TCU300から応答メッセージを受信すると、まず、配信サーバ100に、配信サーバ100の処理負荷情報の取得要求を送信する。配信サーバ100は、制御サーバ200から処理負荷情報の取得要求を受信すると、処理負荷として、例えば、配信サーバ100のCPU使用率を取得する。CPU使用率は、例えば、タスクマネージャから取得することができる。配信サーバ100は、タスクマネージャからCPU使用率を更新データの配信先ごとに取得する。配信サーバ100は、取得したCPU使用率を処理負荷情報として制御サーバ200に送信する。制御サーバ200は、配信サーバ100から取得した処理負荷情報を、
図6に示す処理負荷管理テーブルに登録する。
配信制御部217は、配信サーバ100から受信した処理負荷情報と、TCU300から受信した応答メッセージとに基づいて、更新データを配信するTCU300を選択する。すなわち、配信制御部217は、配信サーバ100の処理負荷が規定値よりも大きくならないように、応答メッセージを受信したTCU300の中からTCU300を選択する。配信制御部217は、更新データを配信するTCU300を選択すると、選択したTCU300に更新データを配信するように配信サーバ100に指示する。
【0030】
次に、
図8及び
図9に示すフローチャートを参照しながらTCU300の第1の処理手順を説明する。
TCU300の制御部310は、まず、イグニッションスイッチのオフを検知したか否かを判定する(ステップS1)。制御部310は、例えば、車両50に搭載されたECU70から、CANバス80を介して入力される信号に基づいて、イグニッションスイッチがオフされたか否かを判定する(ステップS1)。イグニッションスイッチがオフされたと判定すると(ステップS1/YES)、制御部310は、TCU情報を制御サーバ200に送信する(ステップS2)。TCU情報には、ソフトウェア情報、ハードウェア情報、TCU状態、TCU識別番号等が含まれる。制御部310は、TCU情報を制御サーバ200に送信すると、電源管理部330を制御して、電力消費量を削減した待機モードに移行させる(ステップS3)。
また、ステップS1において、イグニッションスイッチのオフを検知できなかった場合(ステップS1/NO)、制御部310は、前回のTCU情報の送信から所定時間を経過したか否かを判定する(ステップS4)。前回のTCU情報の送信から所定時間を経過していない場合(ステップS4/NO)、制御部310は、ステップS1の判定に戻る。また、前回のTCU情報の送信から所定時間を経過している場合(ステップS4/YES)、制御部310は、TCU情報を、再度、制御サーバ200に送信する(ステップS5)。
【0031】
次に、制御部310は、制御サーバ200から送信されるSMSメッセージを受信したか否かを判定する(ステップS6)。また、TCU300が待機モードにある場合に、通信部340が制御サーバ200から送信されるSMSメッセージを受信した場合には(ステップS6/YES)、TCU300は起動する(ステップS7)。SMSメッセージを受信した場合(ステップS6/YES)又はSMSメッセージを受信して起動すると(ステップS7)、制御部310は、TCU情報を制御サーバ200に送信する(ステップS8)。TCU情報を制御サーバ200に送信すると、制御部310は、ステップS6で受信したSMSメッセージを解析して、配信サーバ100より更新データの配信を受ける必要があるか否かを判定する(ステップS9)。更新データの配信を受ける必要があると判定すると(ステップS10/YES)、制御部310は、配信サーバ100に、更新データの配信を要求する(ステップS11)。配信サーバ100による更新データの配信が開始されると、TCU300は、配信サーバ100から配信される更新データを通信部340で受信する。制御部310は、通信部340が受信した更新データを入力して、ソフトウェアの更新を開始する(ステップS12)。次に、制御部310は、ソフトウェアの更新が完了したか否かを判定する(ステップS13)。ソフトウェアの更新が完了した場合(ステップS13/YES)、制御部310は、ソフトウェアの更新完了を配信サーバ100に通知する(ステップS14)。
【0032】
また、ステップS13において、ソフトウェアの更新が完了していない場合(ステップS13/NO)、制御部310は、更新を開始してからの経過時間がタイムアウト時間を経過したか否かを判定する(ステップS15)。タイムアウト時間を経過していない場合(ステップS15/NO)、制御部310は、ステップS13に戻り、再度、ソフトウェアの更新が完了したか否かを判定する(ステップS13)。また、タイムアウト時間を経過した場合(ステップS15/YES)、制御部310は、リトライ回数をカウントするカウンタの値が規定値N(Nは、任意の自然数)に達しているか否かを判定する(ステップS16)。リトライ回数とは、例えば、通信障害等により所定時間(タイムアウト時間)内に更新データを取得することができず、ソフトウェアの更新が完了しなかった場合に、TCU300が配信サーバ100に更新データの配信を要求した回数である。制御部310は、カウンタの値が規定値Nに達していないと判定すると(ステップS16/NO)、カウンタの値を1加算して(ステップS17)、更新データの配信を配信サーバ100に再度要求する(ステップS11)。また、カウンタの値が規定値Nに達している場合(ステップS16/YES)、制御部310は、更新データによるソフトウェアの更新を終了させて、更新前のバージョンのソフトウェアにロールバックさせる(ステップS18)。ソフトウェアを、更新前のバージョンにロールバックすると、制御部310は、TCU情報を制御サーバ200に送信して(ステップS19)、この処理を終了する。
【0033】
次に、制御サーバ200の処理手順を
図10に示すフローチャートを参照しながら説明する。
制御サーバ200の制御部210は、配信サーバ100の記憶するソフトウェアが更新され、配信サーバ100からソフトウェアの更新通知を受信すると(ステップS21/YES)、更新管理テーブルを参照して、更新データを配信するTCU300を選択する(ステップS22)。制御部210は、
図5に示す更新管理テーブルに設定された優先順位に従って、例えば、優先順位が上位のTCU300を所定数選択する(ステップS22)。制御部210は、TCU300を選択すると、SMSメッセージを生成して、生成したSMSメッセージを選択したTCU300に送信する(ステップS23)。SMSメッセージを送信すると、制御部210は、TCU300から応答メッセージとして更新データの取得要求を受信したか否かを判定する(ステップS24)。更新データの取得要求を受信していない場合(ステップS24/NO)、制御部210は、SMSメッセージを送信してからの経過時間が所定時間となったか否かを判定する(ステップS25)。SMSメッセージの送信から所定時間を経過していない場合(ステップS25/NO)、制御部210はステップS24に戻り、メッセージの取得要求を受信するまで待機する。また、SMSメッセージを送信してから所定時間を経過している場合(ステップS25/YES)、制御部210は、更新許可に設定されたすべてのTCU300に更新データを送信したか否かを判定する(ステップS32)。更新許可に設定されたすべてのTCU300に更新データを送信済みであると判定すると(ステップS32/YES)、制御部210は、この処理を終了させる。また、更新許可に設定されたすべてのTCU300に更新データを送信済みではないと判定すると(ステップS32/NO)、制御部210は、ステップS22に戻り、SMSメッセージを送信するTCU300を選択する(ステップS22)。
【0034】
また、ステップS24において、TCU300から取得要求を受信した場合(ステップS24/YES)、制御部210は、配信サーバ100に、配信サーバ100の処理負荷情報の取得を要求する(ステップS26)。取得要求を受信した配信サーバ100は、例えば、タスクマネージャからCPU使用率等の処理負荷情報を取得して、取得した処理負荷情報を制御サーバ200に送信する。配信サーバ100から処理負荷情報を取得すると(ステップS27/YES)、制御部210は、配信サーバ100の処理負荷が規定値以上であるか否かを判定する(ステップS28)。配信サーバ100の処理負荷が規定値以上である場合(ステップS28/YES)、制御部210は、新たなTCU300への更新データの配信は行わないと判定し、配信サーバ100へのデータ配信要求は行わず、現在実行中の他の処理があれば、この処理を継続して行う(ステップS29)。その後、制御部210は、ステップS28の判定から所定時間を経過したか否かを判定する(ステップS30)。制御部210は、ステップS28の判定から所定時間を経過したと判定すると(ステップS30/YES)、ステップS26に戻り、配信サーバ100に処理負荷情報の取得要求を送信する(ステップS26)。
【0035】
また、ステップS28の判定において、配信サーバ100の処理負荷が規定値よりも小さいと判定すると(ステップS28/NO)、制御部210は、取得要求を受信したTCU300に更新データを配信するように配信サーバ100に要求する(ステップS31)。そして、制御部210は、更新許可に設定されたすべてのTCU300に更新データを送信したか否かを判定する(ステップS32)。更新許可に設定されたすべてのTCU300に更新データを送信済みであると判定すると(ステップS32/YES)、制御部210は、この処理を終了させる。また、更新許可に設定されたすべてのTCU300に更新データを送信済みではないと判定すると(ステップS32/NO)、制御部210は、ステップS22に戻り、SMSメッセージを送信するTCU300を選択する(ステップS22)。
【0036】
図10に示す処理フローでは、配信サーバ100の処理負荷を、CPU使用率等の処理負荷情報に基づいて判定し、配信サーバ100が更新データを配信可能であるか否かを判定していたが、更新データを配信する回線の負荷に基づいて、配信サーバ100が更新データを配信可能か否かを判定してもよい。
例えば、複数の配信サーバ100を備えるシステム構成であって、複数の配信サーバ100の数よりも少ない数の回線によりネットワーク10に接続する構成であるとする。この場合、制御サーバ200は、更新データを配信する配信サーバ100を選択するため、まず、各配信サーバ100からネットワーク使用率(配信サーバ100のネットワークI/F140の使用率)を取得する。配信サーバ100は、ネットワーク使用率をタスクマネージャから取得することができる。
制御サーバ200は、各配信サーバ100からネットワーク使用率及びCPU使用率を取得すると、取得したネットワーク使用率に基づいて回線負荷(配信サーバ100と、配信サーバ100をネットワーク10に接続する接続装置(図示略)とを接続する通信回線の最大通信容量に対する使用量の割合)を算出する。
制御サーバ200は、算出した各回線の回線負荷がすべて規定値以上であった場合、回線負荷が予め設定された値に低下するまで配信サーバ100に更新データの配信要求を送信しない。
【0037】
また、制御サーバ200は、回線負荷が規定値よりも小さい回線を検出した場合、現在、TCU300に配信中の更新データを除いて、TCU300に配信予定の各更新データのデータ量に基づいて、各更新データをTCU300に配信する場合の回線負荷を算出する。制御サーバ200は、算出した回線負荷に基づいて、更新データを配信可能な回線を検出し、この回線に接続した配信サーバ100を特定する。制御サーバ200は、特定した配信サーバ100のCPU使用率に基づいて、特定した配信サーバ100が更新データの配信が可能な状態にあるか否かを判定する。特定した配信サーバ100が更新データの配信が可能であると判定した場合には、TCU300に更新データを配信するように特定した配信サーバ100に要求する。
また、特定した配信サーバ100が更新データの配信が可能ではないと判定した場合には、予め設定された時間だけ待機して、回線の回線負荷が低下するまで待機する。
また、通信に使用していない回線が存在する場合、制御サーバ200は、CPU使用率が最も低い配信サーバ100を検出して、この配信サーバ100に更新データの配信を要求する。
【0038】
また、
図10に示す制御サーバ200の処理フローは、
図11に示す処理フローであってもよい。なお、ステップS28までの処理フローは、
図10に示すフローと同一であるため説明を省略する。
制御サーバ200の制御部(配信制御部217)210は、配信サーバ100から処理負荷情報を取得し、取得した処理負荷情報に基づいて配信サーバ100の処理負荷が規定値以上であるか否かを判定する(ステップS28)。制御部210は、配信サーバ100の処理負荷が規定値以上であると判定すると(ステップS28/YES)、配信サーバ100の処理負荷が規定値を超えない範囲内で配信可能な更新データ及びこの更新データを配信するTCU300を検出する(ステップS51)。
例えば、TCU300に配信予定のデータが、ソフトウェアの更新データだけの場合よりも、ソフトウェアの更新データとコンテンツデータとの両方を配信する場合のほうがデータ量は大きくなり、配信サーバ100の処理負荷は大きくなる。また、更新データによってデータ量が異なる場合、データ量の大きい更新データをTCU300に配信すると、配信サーバ100の処理負荷が規定値以上となるが、データ量の小さい更新データの場合、配信サーバ100の処理負荷が規定値を超えない範囲で、更新データをTCU300に配信できる場合がある。このため、制御部210は、配信サーバ100の処理負荷が規定値を超えない範囲で、更新データを配信可能な他のTCU300が存在するか否かを判定する。
【0039】
処理負荷が規定値を超えない範囲で配信可能な更新データ、及びこの更新データを配信する配信先を検出した場合(ステップS52/YES)、制御部210は、検出したTCU300に検出した更新データを配信するように配信サーバ100に要求する(ステップS53)。また、ステップS51において、配信可能な更新データ及び配信先を検出することができなかった場合(ステップS52/NO)、制御部210は、予め設定された時間待機し(ステップS54)、ステップS55の処理に移行する。ステップS55の判定では、制御部210は、ステップS24で取得要求を受信したTCU300に、配信を中止した更新データの配信が可能であるか否かを判定する(ステップS55)。すなわち、制御部210は、取得要求を受信したTCU300に、配信を中止していた更新データを配信しても、配信サーバ100の処理負荷が規定値以内となるか否かを判定する。配信可能であると判定した場合(ステップS55/YES)、制御部210は、取得要求を受信したTCU300に、配信を中止していた更新データを配信するように配信サーバ100に要求する(ステップS56)。その後、制御部210は、
図10に示すステップS32の処理に移行する。また、ステップS55の判定において、配信を中止していた更新データを配信することができないと判定した場合(ステップS55/NO)、制御部210は、
図10に示すステップS22に戻り、新たな更新対象のTCU300を選択する。
【0040】
次に、
図12及び
図13に示すフローチャートを参照しながらTCU300及び制御サーバ200の第2の処理手順を説明する。
図12に、TCU300の処理手順を示し、
図13に、制御サーバ200の処理手順を示す。
TCU300の制御部310は、車両50のアクセサリースイッチがオンされて起動すると(ステップS61)、通信部340により制御サーバ200に接続して制御サーバ200にTCU識別番号(通信装置の識別情報)を通知する(ステップS62)。
【0041】
TCU識別番号を通知された制御サーバ200の処理手順を、
図13を参照しながら説明する。
制御サーバ200は、TCU300が送信したTCU識別番号を受信すると(ステップS81/YES)、TCU管理テーブルを参照して、TCU識別番号を受信したTCU(このフローにおいて、対象TCUという)300にインストールされたソフトウェア及びこのソフトウェアのバージョン情報を取得する(ステップS82)。制御サーバ200は、対象TCU300にインストールされたソフトウェア及びバージョン情報を取得すると、対象TCU300にインストールされたソフトウェアのバージョンが最新バージョンであるか否かを判定する(ステップS83)。インストールされたソフトウェアのバージョンが最新バージョンであると判定した場合(ステップS83/YES)、制御サーバ200は、対象TCU300に、ソフトウェアの「更新なし」を通知して処理を終了する(ステップS84)。また、インストールされたソフトウェアのバージョンが最新バージョンではないと判定した場合(ステップS83/NO)、制御サーバ200は、対象TCU300に、ソフトウェアの「更新あり」を通知する(ステップS85)。
その後、制御サーバ200は、
図10に示すステップS26〜S31までの処理を行う。すなわち、制御サーバ200は、配信サーバ100から処理負荷情報を取得して(ステップS27)、配信サーバ100の処理負荷が規定値以上であるか否かを判定する(ステップS28)。配信サーバ100の処理負荷が規定値以上ではない場合(ステップS28/NO)、制御サーバ200は、受信したTCU識別番号のTCU300に、更新データを配信するように配信サーバ100に要求する(ステップS31)。また、配信サーバ100の処理負荷が規定値以上である場合(ステップS28/YES)、制御サーバ200は、予め設定された所定時間待機し(ステップS30/YES)、配信サーバ100から処理負荷情報を取得して、配信サーバ100の処理負荷が規定値以上であるか否かを判定する処理を繰り返す。
【0042】
図12に示すフローチャートに戻り、TCU300の処理手順について引き続き説明する。
TCU300は、制御サーバ200から「更新なし」の通知を受けた場合(ステップS63/NO)、制御サーバ200との接続を切断して、この処理フローを終了させる。
また、TCU300は、制御サーバ200から「更新あり」の通知を受けた場合(ステップS63/YES)、制御サーバ200の制御により配信サーバ100に接続される。配信サーバ100は、対象TCU300が接続されると、制御サーバ200から指定されたソフトウェアの更新データを対象TCU300に配信する。
【0043】
TCU300の制御部310は、配信サーバ100から配信される更新データの受信が始まると、タイマーにより経過時間の計時を開始する。制御部310は、タイマーの計時する計時時間が予め設定された時間(タイムアウト時間という)を経過するまでは(ステップS64/NO、かつS65/NO)、更新データの受信完了を待機する。制御部310は、タイマーの計時時間がタイムアウト時間を経過しても、更新データの受信が完了していない場合(ステップS64/NO、かつS65/YES)、更新データの受信を終了させて、この処理フローを終了させる。
また、制御部310は、タイマーの計時時間がタイムアウト時間を経過する前に更新データの受信を完了した場合(ステップS64/YES)、受信した更新データをインストールして、ソフトウェアの更新を開始する(ステップS66)。以降の処理フローは、
図8及び
図9において説明した処理フローと同一であるため、説明を省略する。
【0044】
図12に示す処理フローでは、TCU300の制御部310が起動した際に、更新データの取得を制御サーバ200に要求する構成であったが、制御部310が更新データの取得を制御部310に要求するタイミングは、制御部310の起動時だけに限定されない。
例えば、週に1回、事前に設定された曜日の事前に設定された時間にTCU300が制御サーバ200に更新データの取得を要求してもよいし、操作者が車載装置60を操作して、TCU300に、更新データの取得を制御サーバ200に要求するように指示してもよい。
また、車載装置60が操作され、経路検索が行われたタイミングで、TCU300が制御サーバ200に更新データの取得を要求してもよい。さらに、車載装置60において経路検索が実施され、誘導経路が検出された際に、TCU300が誘導経路の情報を制御サーバ200に送信して、誘導経路を含む地図データに更新があるか否かを問い合わせてもよい。制御サーバ200は、TCU300から受信した誘導経路の情報に基づいて、誘導経路を含む地図データに更新があるか否かを判定し、更新された地図データがある場合には、更新された地図データの配信を配信サーバ100に指示する。
【0045】
また、制御サーバ200の他の処理フローとして、TCU300に配信するデータの重要度を考慮して、制御サーバ200が実施する処理を変更してもよい。
例えば、更新されたデータが地図データ等のコンテンツデータである場合、制御サーバ200は、TCU300からの更新の問い合わせを受け付けた場合に、このTCU300に配信するコンテンツデータを検出して、検出したコンテンツデータをTCU300に配信するように配信サーバ100に要求する。
また、更新されたデータが、ソフトウェアの更新データである場合や、特に、ソフトウェアの不具合を解消するための更新データである場合には、制御サーバ200は、重要なデータであると判定して、自ら該当のソフトウェアがインストールされたTCU300を検出する。そして、制御サーバ200は、検出したTCU300にソフトウェアや、ソフトウェアの更新データを配信するように配信サーバ100に要求する。
【0046】
以上、詳細に説明したように本実施形態の制御サーバ200は、配信対象のTCU300に対応付けて設定された優先度に基づいて更新データを配信するTCU300を選択する。そして、制御サーバ200は、選択したTCU300にSMSメッセージを送信して、SMSメッセージに対する応答のあったTCU300に更新データを配信する。従って、本実施形態は、優先度が高く、更新データを配信可能なTCU300を選択して更新データを配信することができる。このため、複数のTCU300に更新データを一斉送信する場合と比較して、配信サーバ100の処理負荷を軽減させることができる。
【0047】
また、制御サーバ200は、更新データの配信にかかる処理負荷に基づいて、更新データを配信するTCU300を選択するので、配信サーバ100の処理負荷が高負荷となるのを未然に防止することができる。
【0048】
また、優先順位を、少なくとも、ソフトウェアの更新が許可されたTCU300であるか否かの情報と、TCU300の状態が起動モードにあるのか、待機モードにあるのかを示す情報とに基づいて設定するので、更新データを受信可能なTCU300に優先的に更新データを配信することができる。
【0049】
また、TCU300が待機モードにある場合には、TCU300にSMSメッセージを送信してTCU300を起動モードにしてから更新データを配信する。このため、待機モードのTCU300に更新データを配信してしまい、TCU300が更新データを受信できないといった状態が生じない。
【0050】
また、更新データが、TCU300にインストールされたソフトウェアの不具合を解消するためのデータである場合に、この更新データを配信するTCU300の優先順位を、他の更新データを配信するTCU300の優先順位よりも高くする。ソフトウェアの不具合を解消するための更新データは、更新が遅れると、危険を伴う場合もあるため、優先順位を高く設定して、優先的に更新データを配信することができる。
【0051】
上述した実施形態は、本発明の好適な実施の形態である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形実施が可能である。
例えば、上述した実施形態では、更新データを記憶して、更新データを配信する配信サーバ100と、更新データを配信する配信先のTCU300を選択する制御サーバ200とを別々のサーバで構成していた。これ以外に、配信サーバ100に、制御サーバ200の機能を持たせ、配信サーバ100により更新データを配信するTCU300の選択と、選択したTCU300への更新データの配信とを実現してもよい。
【0052】
また、車載装置60がナビゲーション機能を備える場合に、車載装置60が経路案内を実行中であるか否かにより、対応するTCU300に更新データを配信するか否かを設定してもよい。
例えば、TCU300は、車両50の車載装置60が経路案内を実行中であるか否かの情報を取得して、制御サーバ200に送信する。制御サーバ200の制御部210は、TCU300から送信される、車載装置60が経路案内を実行中であるか否かの情報をTCU識別番号に対応付けてTCU管理テーブルに登録する。
そして、制御部210は、車載装置60が経路案内を実行中である場合には、この車載装置60が搭載された車両50のTCU300に更新データを配信しないように設定する。また、制御部210は、経路案内を実行中の車載装置60が搭載された車両50のTCU300に設定する、更新データを配信する優先順位が、経路案内を実行していない車載装置60が搭載された車両50のTCU300の優先順位よりも低くなるように設定する。
【0053】
また、車両50が自動運転システムを搭載した車両である場合に、車両50が自動運転を実行中であるか否かにより、対応するTCU300に更新データを配信するか否かを判定してもよい。
例えば、TCU300は、車両50の自動運転システムが自動運転制御を実行中であるか否かの情報を取得して、制御サーバ200に送信する。制御サーバ200の制御部210は、TCU300から送信される、自動運転システムが自動運転制御を実行中であるか否かの情報をTCU識別番号に対応付けてTCU管理テーブルに登録する。
そして、制御部210は、自動運転システムが自動運転制御を実行中である場合には、この自動運転システムが搭載された車両50のTCU300に更新データを配信しないように設定する。また、制御部210は、自動運転システムが自動運転制御を実行中の車両50のTCU300に設定する優先順位が、自動運転制御を実行していない車載装置60が搭載された車両50のTCU300の優先順位よりも低くなるように設定する。
【0054】
また、TCU識別番号に、車両50のユーザのユーザ名と、ユーザを識別する識別情報と、ユーザの属性情報とを対応付けてTCU管理テーブルに登録し、ユーザに応じて更新データ配信の優先度を設定してもよい。ユーザの属性情報とは、例えば、有料会員であるか、無料会員であるかの情報であり、有料会員への更新データ配信の優先度を、無料会員への更新データ配信の優先度よりも高く設定する。
【0055】
また、車両50が自動運転システムを搭載した車両であるか否かに応じて、更新データを配信する優先度を設定してもよい。
車両50が自動運転システムを搭載した車両であるのか、自動運転システムを搭載していない車両であるかの情報を、車両50に搭載されたTCU300のTCU識別番号に対応付けてTCU管理テーブルに登録する。制御サーバ200の制御部210は、更新データを配信するTCU300の優先度を設定する際に、更新データを配信する対象となるTCU300に、車両50の自動運転システムが動作中であるか否かを問い合わせる。制御部210は、TCU300から自動運転システムが動作中であるか否かの情報を取得すると、TCU管理テーブルを参照して、自動運転システムが搭載された車両50であって、現在、自動運転中ではない車両50のTCU300の優先度が最も高くなるように設定する。また、制御部210は、自動運転システムが搭載されていない車両50のTCU300の優先度を、自動運転システムが搭載された車両50であって、現在自動運転システムが動作中の車両50のTCU300よりも高く設定する。
【0056】
また、前回の更新からの経過時間に基づいて、更新データを配信する優先度を設定してもよい。
例えば、制御サーバ200の制御部210は、更新データの配信が完了すると、配信が完了した日時(更新完了日時という)を、更新データを配信したTCU300のTCU識別番号に対応付けてTCU管理テーブルに登録する。そして、制御部210は、新たな更新データの発生により更新管理テーブルを作成する際に、TCU管理テーブルに登録された更新完了日時が古いTCU300の優先順位が高くなるように設定する。