(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024076132
(43)【公開日】2024-06-05
(54)【発明の名称】ネットワークシステム、およびネットワーク管理方法
(51)【国際特許分類】
H04L 41/0806 20220101AFI20240529BHJP
H04L 41/5019 20220101ALI20240529BHJP
【FI】
H04L41/0806
H04L41/5019
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022187538
(22)【出願日】2022-11-24
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】大石 裕司
(72)【発明者】
【氏名】武藤 勇太
(72)【発明者】
【氏名】三村 和
(72)【発明者】
【氏名】前田 功治
(72)【発明者】
【氏名】村上 隆
(57)【要約】
【課題】ネットワーク上に存在する各演算装置の演算リソースおよび演算装置間の通信リソースを考慮したアプリケーションの配置が可能なネットワークシステムおよびネットワーク管理方法を提供する。
【解決手段】複数の演算装置3,9の通信接続関係を示すトポロジ情報に基づいて、アプリ配置先演算装置候補リスト90内の各演算装置にアプリを配置した場合の前記アプリの通信経路を選択し、通信経路候補リスト110を作成する通信経路選択部25と、通信性能情報と通信要件64とに基づいて、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを検証する性能検証部26と、アプリ配置先演算装置候補リスト90内の演算装置のうち、性能検証部26によって通信要件64が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用部27とを備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
アプリの実行要件を満たすように、ネットワーク上に存在する複数の演算装置のいずれかへ前記アプリを配置するネットワークシステムにおいて、
前記アプリの実行要件および通信要件を保持するアプリ要件保持部と、
前記複数の演算装置の空きリソース情報を保持する空きリソース情報保持部と、
前記実行要件と前記空きリソース情報とに基づいて、前記複数の演算装置の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リストを作成するアプリ配置選択部と、
前記複数の演算装置の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持部と、
前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持部と、
前記トポロジ情報に基づいて、前記アプリ配置先演算装置候補リスト内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リストを作成する通信経路選択部と、
前記通信性能情報と前記通信要件とに基づいて、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを検証する性能検証部と、
前記アプリ配置先演算装置候補リスト内の演算装置のうち、前記性能検証部によって前記通信要件が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用部とを備える
ことを特徴とするネットワークシステム。
【請求項2】
請求項1に記載のネットワークシステムにおいて、
前記通信要件および前記通信性能情報は、前記アプリの通信帯域、通信遅延、通信ジッタ、およびパケット廃棄率のいずれか1つ以上を含む
ことを特徴とするネットワークシステム。
【請求項3】
請求項1に記載のネットワークシステムにおいて、
前記性能検証部は、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを、前記通信性能情報と前記通信要件とに基づく数値計算により検証する
ことを特徴とするネットワークシステム。
【請求項4】
請求項1に記載のネットワークシステムにおいて、
前記性能検証部は、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを、前記通信性能情報と前記通信要件とに基づくシミュレーションにより検証する
ことを特徴とするネットワークシステム。
【請求項5】
請求項1に記載のネットワークシステムにおいて、
前記ネットワークのトポロジ変化を検出して前記トポロジ情報保持部に通知するトポロジ変更監視部をさらに備える
ことを特徴とするネットワークシステム。
【請求項6】
請求項1に記載のネットワークシステムにおいて、
前記アプリ要件保持部は、アプリごとに優先度を保持し、
前記アプリ配置選択部は、優先度の高いアプリから順に前記アプリ配置先演算装置候補リストを作成する
ことを特徴とするネットワークシステム。
【請求項7】
請求項1に記載のネットワークシステムにおいて、
前記アプリ要件保持部は、前記通信要件の項目ごとの優先度を保持し、
前記性能検証部は、前記通信要件のうち満足されない項目が1つ以上あった場合に、優先度が最も低い項目を前記通信要件から除外し、前記通信要件が満たされるか否かを再度検証する
ことを特徴とするネットワークシステム。
【請求項8】
請求項1に記載のネットワークシステムにおいて、
前記アプリを配置する際に前記アプリとともに前記ネットワークに入力されるメタデータは、
計算リソース、記憶リソース、およびスペックのいずれか1以上を含む実行要件と、
通信方向、通信相手、通信周期、通信データサイズ、および通信識別情報のいずれか1以上を含む通信仕様と、
通信帯域、通信遅延、通信ジッタ、パケット廃棄率のいずれか1以上を含む通信要件とを含む
ことを特徴とするネットワークシステム。
【請求項9】
請求項1に記載のネットワークシステムにおいて、
前記ネットワークは、車両に搭載された車載ネットワークであり、
前記複数の演算装置は、前記車両に搭載された複数の車載電子制御装置である
ことを特徴とするネットワークシステム。
【請求項10】
請求項9に記載のネットワークシステムを備える
ことを特徴とする車載装置。
【請求項11】
請求項9に記載のネットワークシステムにおいて、
前記通信要件は、前記車両に搭載されたセンサから出力されるセンサデータ、前記車両を制御するための制御データ、および前記センサデータから前記制御データを求める演算の途中で得られる中間データに関する項目を含む
ことを特徴とするネットワークシステム。
【請求項12】
アプリの実行要件を満たすように、ネットワーク上に存在する複数の演算装置のいずれかへ前記アプリを配置するネットワーク管理方法において、
前記アプリの実行要件および通信要件を保持するアプリ要件保持ステップと、
前記複数の演算装置の空きリソース情報を保持する空きリソース情報保持ステップと、
前記実行要件と前記空きリソース情報とに基づいて、前記複数の演算装置の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リストを作成するアプリ配置選択ステップと、
前記複数の演算装置の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持ステップと、
前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持ステップと、
前記トポロジ情報に基づいて、前記アプリ配置先演算装置候補リスト内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リストを作成する通信経路選択ステップと、
前記通信性能情報と前記通信要件とに基づいて、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを検証する性能検証ステップと、
前記アプリ配置先演算装置候補リスト内の演算装置のうち、前記性能検証ステップによって前記通信要件が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用ステップとを備える
ことを特徴とするネットワーク管理方法。
【請求項13】
請求項12に記載のネットワーク管理方法において、
前記ネットワークは、車両に搭載された車載ネットワークであり、
前記複数の演算装置は、前記車両に搭載された複数の車載電子制御装置である
ことを特徴とするネットワーク管理方法。
【請求項14】
請求項13に記載のネットワーク管理方法において、
前記性能検証ステップでは、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを、前記車両内部の計算機を用いた、前記通信性能情報と前記通信要件とに基づくシミュレーションにより検証する
ことを特徴とするネットワーク管理方法。
【請求項15】
請求項13に記載のネットワーク管理方法において、
前記性能検証ステップでは、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを、前記車両外部の計算機を用いた、前記通信性能情報と前記通信要件とに基づくシミュレーションにより検証する
ことを特徴とするネットワーク管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上に存在する複数の演算装置へのアプリケーションの配置を行うネットワークシステムおよびネットワーク管理方法に関する。
【背景技術】
【0002】
自動運転や安全運転支援技術は日進月歩であり、今後も進化が続く。自動車メーカにおいてはこれらの技術進歩を新型車両へ適用するだけでなく、販売済み車両にも適用することを検討している。そのための技術にOTA(Over-the-Air)アップデート技術がある。
【0003】
OTAでは新規または更新された車載アプリケーション(以降、単にアプリと呼ぶ)を、クラウド等のサーバから無線ネットワークを介して車両へ配信する。車両側では配信されたアプリを車両システムに展開し適用・実行する。
【0004】
車両システムは複数の電子制御ユニット(ECU:Electronic Control Unit)がネットワークにより接続された構成となっている。ここでECUはカメラ等のセンサ、エンジンやステアリング等を操作するアクチュエータ、および制御のための演算を実行する装置の総称として用いる。ECUでは車載ネットワークを介してデータを送受信し、アプリによりデータを演算することで車両制御のための情報を得る。データの送受信により車載ネットワークには負荷がかかるが、アプリの配置状況によって車載ネットワークの負荷状況は異なる。
【0005】
ここでOTAにより新規アプリが追加された場合、車両システムは新規アプリを実行するECUを選択する必要がある。特許文献1にはアプリ追加時にアプリを実行するECUを選択する方法が開示されている。これは、アプリ取得部の取得した追加アプリをインストール可能なECUを複数備えた車載システムは、要求特定部、リソース特定部、および選択部を備える。要求特定部は、追加アプリの要求するリソースである要求リソースを特定する。リソース特定部は、各ECUの提供可能なリソースである提供リソースを特定する。選択部は、提供リソースが要求リソースを満たしているECUを追加アプリのインストール先として選択する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載の発明ではECUの演算リソースに基づいてアプリ配置先のECUを選択することができるが、車載ネットワークの負荷状況などECU間の通信リソースを考慮したアプリ配置を行うことができない。
【0008】
本発明は、上記課題に鑑みてなされたものであり、その目的は、ネットワーク上に存在する各演算装置の演算リソースおよび演算装置間の通信リソースを考慮したアプリケーションの配置が可能なネットワークシステムおよびネットワーク管理方法を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明は、アプリの実行要件を満たすように、ネットワーク上に存在する複数の演算装置のいずれかへ前記アプリを配置するネットワークシステムにおいて、前記アプリの実行要件および通信要件を保持するアプリ要件保持部と、前記複数の演算装置の空きリソース情報を保持する空きリソース情報保持部と、前記実行要件と前記空きリソース情報とに基づいて、前記複数の演算装置の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リストを作成するアプリ配置選択部と、前記複数の演算装置の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持部と、前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持部と、前記トポロジ情報に基づいて、前記アプリ配置先演算装置候補リスト内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リストを作成する通信経路選択部と、前記通信性能情報と前記通信要件とに基づいて、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを検証する性能検証部と、前記アプリ配置先演算装置候補リスト内の演算装置のうち、前記性能検証部によって前記通信要件が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用部とを備えるものとする。
【0010】
また、本発明は、アプリの実行要件を満たすように、ネットワーク上に存在する複数の演算装置のいずれかへ前記アプリを配置するネットワーク管理方法において、前記アプリの実行要件および通信要件を保持するアプリ要件保持ステップと、前記複数の演算装置の空きリソース情報を保持する空きリソース情報保持ステップと、前記実行要件と前記空きリソース情報とに基づいて、前記複数の演算装置の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リストを作成するアプリ配置選択ステップと、前記複数の演算装置の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持ステップと、前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持ステップと、前記トポロジ情報に基づいて、前記アプリ配置先演算装置候補リスト内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リストを作成する通信経路選択ステップと、前記通信性能情報と前記通信要件とに基づいて、前記通信経路候補リスト内の各通信経路にて前記通信要件が満たされるか否かを検証する性能検証ステップと、前記アプリ配置先演算装置候補リスト内の演算装置のうち、前記性能検証ステップによって前記通信要件が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用ステップとを備えるものとする。
【発明の効果】
【0011】
本発明によれば、ネットワーク上に存在する複数の演算装置のいずれかへアプリを配置する際に、各演算装置の演算リソースおよび演算装置間の通信リソースを考慮することにより、アプリの実行性能および通信性能を確保することができるため、アプリを安定的に動作させることが可能となる。
【図面の簡単な説明】
【0012】
【
図1】本発明による車載ネットワークシステムを搭載する車載装置の電気電子アーキテクチャの図
【
図2】ドメインECU、ゾーンECU、セントラルECU、およびゲートウェイのハードウェア構成図
【
図3】本発明による車載ネットワークシステムの機能ブロック図
【
図4】空きリソース情報保持部の保持するECU内空きリソース情報テーブル
【
図5】アプリ要件保持部がTCU経由で受信するOTAデータの構成例
【
図6】アプリ要件保持部の保持するアプリ要件テーブル
【
図7】トポロジ情報保持部の保持するトポロジ情報テーブル
【
図8】通信性能情報保持部の保持する通信性能情報テーブルの抜粋
【
図9】アプリ配置選択部の動作を表すフローチャート
【
図10】アプリ配置選択部の出力であるアプリ配置先ECU候補リスト
【
図11】通信経路選択部の動作を表すフローチャート
【
図12】
図11中ステップS209の詳細な処理の一例を示すフローチャート
【
図13】
図12中ステップS221の詳細な処理の一例を示すフローチャート
【
図14】
図13の処理をゾーンアーキテクチャのネットワークに対して実行した結果の例
【
図15】通信経路選択部から出力され性能検証部へ入力される、アプリの通信経路候補リスト
【
図17】
図16中ステップS302の詳細な処理の一例を表すフローチャート
【
図18】
図16中ステップS303の詳細な処理の一例を表すフローチャート
【
図19】
図16中ステップS305の詳細な処理の一例を表すフローチャート
【
図20】性能検証部から出力され設定適用部へ入力される通信経路リスト
【
図22】設定適用部で使用する通信経路設定テーブルの構成例
【
図24】第2の実施例における性能検証部の動作のうち、
図16中ステップS305の動作を示すフローチャート
【
図25】第3の実施例における車載ネットワークシステムの機能ブロック図
【
図26】第4の実施例におけるアプリ要件保持部の保持するアプリ要件テーブル
【
図27】第4の実施例におけるアプリ要件保持部の保持するアプリ要件テーブル
【
図28】第5の実施例におけるアプリ要件保持部の保持するアプリ要件テーブル
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を用いて説明する。なお、各図中、同等の要素には同一の符号を付し、重複した説明は適宜省略する。
【実施例0014】
以下、図を用いて車載ネットワークシステムの第1の実施例を説明する。
【0015】
図1は本発明による車載ネットワークシステムを搭載する車載装置の電気電子アーキテクチャを示す図である。ここでは代表的な電気電子アーキテクチャとして2つの構成を取り上げるが、本発明の適用先はこれに限定されるものではない。
【0016】
図1(a)はドメイン別アーキテクチャと呼ばれるアーキテクチャの論理的構成を示す図である。これは車両1内部のECU(車載電子制御装置)をドメインと呼ばれる機能別区分に分類し、同一ドメインに属するECUを体系的に接続する方式である。ドメイン毎にそのドメインを統括するドメインECU3が置かれる。またドメイン間で通信を行うために、ドメインECU3はゲートウェイ2を介して相互に接続される。ドメインには例えば安全運転支援を司るADAS(Advanced Driver Assistance System)ドメイン、車両の前後方向および左右方向の運動を制御するPT/CH(Power Train/Chassis)ドメイン、パワーウィンドウ等の電装機器を制御するBODYドメイン、ナビゲーションやオーディオを制御するInfotainmentドメインなどがある。それぞれのドメインに対してADAS ECU3a、PT/CH ECU3b、BODY ECU3c、Infotainment ECU3d(以下これらをまとめて3とも表記する)が設置される。ドメインECU3にはセンサ4a~4d(以下まとめて4とも表記する)やアクチュエータ5a~5d(以下まとめて5とも表記する)などのECU4,5がCAN(Controller Area Network)、LIN(Local Interconnect Network)等、ドメイン毎に適したリンク6a~6d(以下まとめて6とも表記する)により接続される。単一のリンク6に複数のECU4,5が接続される場合がある。またゲートウェイ2には、車外のサーバやクラウド等と無線ネットワークを介して通信を行うTCU(Telematics Control Unit)7が接続される。
【0017】
ドメインECUはどのドメインごとに性能や機能要件が異なることがある。例えばADAS ECUやInfotainment ECUはビデオ等の大容量データを扱うため処理性能の高いハードウェアが用いられる。一方PT/CH ECUは安全に直結するため信頼性の高いハードウェアが用いられる。
【0018】
図1(b)はゾーンアーキテクチャと呼ばれるアーキテクチャの物理的構成を示す図である。これはECU4,5を車両1内部の空間的な位置によって分類し、その位置を統括するゾーンECU9a~9d(以下まとめて9とも表記する)へ接続する方式である。1つ以上のゾーンECU9、ゾーンECU9に接続し複数ドメインにまたがる複数のアプリを実行するセントラルECU8、ゾーンECU9に接続するセンサ4およびアクチュエータ5などから構成される。このゾーンECU9はその名の通り、車両内での前後左右等の位置(ゾーン)に対応して配置されており、その設置位置に近接するセンサ4またはアクチュエータ5、あるいはその両方と接続される。またゾーンECU9はドメイン間で共通通信方式を用いた共有リンク10により他のゾーンECU9と接続される。共通通信方式はEthernet(登録商標)によるスイッチングネットワークが想定される。TCU7はセントラルECU8または任意のゾーンECU9に接続されるが、
図1(b)ではセントラルECU8に接続する例を示している。
【0019】
図2はドメインECU3、ゾーンECU9、セントラルECU8、およびゲートウェイ2のハードウェア構成である。
図2中の太線はゾーンアーキテクチャまたはドメインアーキテクチャにおける通信装置2間の接続方式である共通通信方式を表しており、細線はその他の通信方式を表している。
【0020】
図2(a)はドメインECU3のハードウェア構成である。ドメインECU3は内部に、センサ4およびアクチュエータ5あるいはゲートウェイ2から受信した情報を処理するためのCPU(Central Processing Unit)11、およびCPU11で演算を行うために用いるデータを保持するメモリ12を持ち、CPU11からはゲートウェイ2へ接続するためのリンクおよびセンサ4やアクチュエータ5へ接続するためのリンクが出ている。
【0021】
図2(b)はゾーンECU9のハードウェア構成である。ゾーンECU9は他のゾーンECU9へ接続するため、あるいはセンサ4やアクチュエータ5へ接続するための共有リンク10を収容するネットワークスイッチ13を備える。またゾーンECU9は、センサ4およびアクチュエータ5、あるいは共有リンク10から受信した情報を処理するためのCPU11を備え、ネットワークスイッチ13と接続される。またCPU11はメモリ12とも接続される。センサ4およびアクチュエータ5が共通通信方式に対応している場合はネットワークスイッチ13へ直接接続してよい。センサ4およびアクチュエータ5が共通通信方式に対応していない場合はCPU11へと接続した上で共通通信方式へ変換することができる。
【0022】
図2(c)はドメイン別アーキテクチャにおけるゲートウェイ2のハードウェア構成である。ゲートウェイ2は、CPU11、メモリ12、およびドメインECU3へ接続するためのネットワークスイッチ13を備える。
【0023】
図2(d)はゾーン別アーキテクチャにおけるセントラルECU8のハードウェア構成である。セントラルECU8は、ゲートウェイ2と概ね同様の構成となっており、CPU11、メモリ12、およびゾーンECU9へ接続するためのネットワークスイッチ13を備える。
【0024】
図3は本発明による車載ネットワークシステムの機能ブロック図である。なお機能ブロックは
図1に表示のない独立した装置として実装してもよいし、ソフトウェアとして実装し
図1中いずれかのECUにて実行してもよい。ソフトウェアとして実装する場合、
図1中の任意のECUにて機能を損なうことなく実行可能であるが、典型的には車載ネットワーク全体を管理するために、ドメイン別アーキテクチャであればゲートウェイに、ゾーンアーキテクチャであればセントラルECUに実装されると想定される。
【0025】
本発明は空きリソース情報保持部20、アプリ要件保持部21、トポロジ情報保持部22、通信性能情報保持部23、アプリ配置選択部24、通信経路選択部25、性能検証部26、設定適用部27の機能ブロックからなる。
【0026】
空きリソース情報保持部20は各ECU内部のリソース状況、例えばCPU空き容量やメモリ空き容量に関する情報を定期的に収集して保持する。
【0027】
アプリ要件保持部21は車内の各ECUで実行するアプリに関する実行要件を保持する。アプリ要件保持部21には車両の出荷時においてプリインストールされるアプリの要件は出荷時に格納されているものとし、OTAにより追加されるアプリの要件はOTAデータとともにTCU7を介して受信するものとする。要件の具体例については
図6を用いて説明する。
【0028】
トポロジ情報保持部22では車載ネットワークの接続関係を表すトポロジ情報を保持する。
【0029】
通信性能情報保持部23では車載ネットワーク内の各リンクごとに、現在行われている通信の性能情報、つまりECU間の通信リソース状況を保持する。
【0030】
アプリ配置選択部24は空きリソース情報保持部20から取得する各ECU内部のリソース状況およびアプリ要件保持部21から取得するアプリのECU内部リソース(演算リソース)に関する実行要件情報をもとに、アプリの配置先ECU候補を決定する。
【0031】
通信経路選択部25はアプリ配置選択部24の決定したアプリの配置先ECU候補、アプリ要件保持部21から取得したアプリの通信先情報、およびトポロジ情報保持部22から取得する車載ネットワークのトポロジ情報をもとに、アプリが行う通信の通信経路候補を決定する。
【0032】
性能検証部26は通信経路選択部25の決定したアプリの通信経路候補に対し、アプリ要件保持部21から取得するアプリの通信要件および通信性能情報保持部23から取得した通信の性能情報をもとに、通信経路候補を選択した場合のアプリの通信性能を検証する。検証の結果アプリが通信性能を満たす経路候補より、実際に使用する通信経路を1つ選択する。
【0033】
設定適用部27では性能検証部26が決定した通信経路を車載ネットワークへ適用する。そのためにアプリ要件保持部21からアプリのデータ送受信先アドレス等を取得し、経路上のECU内部にあるネットワークスイッチ13に転送ルールを設定する。
【0034】
以降、各機能ブロックの詳細について説明する。
【0035】
図4は空きリソース情報保持部20の保持するECU内空きリソース情報テーブル30である。ECU内空きリソース情報テーブル30はECU列31に対し、計算リソース列32、記憶リソース列33、およびスペック列34の情報を保持する。スペックは高性能、高信頼等のECUが持つ特性を意味する。
【0036】
図5はアプリ要件保持部21がTCU7経由で受信するOTAデータ40の構成例である。OTAデータ40はアプリのID、バージョン情報などを含むヘッダ41、バイナリ形式等でアプリ本体のコードを格納したアプリデータ42、および本発明にて参照するアプリに関するメタデータ43を含む。メタデータ43には当該アプリにおける通信の識別番号である通信ID54に対応して、
図6に記載するアプリ要件テーブル50と同様の実行要件53、通信仕様58および通信要件64を保持する。アプリが複数の通信を行う場合は通信ID、実行要件53、通信仕様58および通信要件64の組を複数持つ。実行要件53、通信仕様58および通信要件64の詳細は
図6と同様であるので、
図6とともに説明する。
【0037】
図6はアプリ要件保持部21の保持するアプリ要件テーブル50である。アプリ要件テーブル50はアプリのIDを保持するアプリ列51に対し、アプリがいずれかのECUに配置済みであることを示す配置済みフラグ52、ECU内部リソース(演算リソース)に関する要件を保持する実行要件53、ECU間通信の仕様を保持する通信仕様58およびECU間の通信リソースに関する要件を保持する通信要件64を保持する。実行要件53は計算リソース列55、記憶リソース列56、スペック列57を含む。また通信仕様58はECU間通信に関するアプリの要件として、アプリから見た場合の送信または受信の別を表す通信方向列59、アプリの通信相手を特定する通信相手列60、通信周期列61、パケットサイズ列62、および通信パケットからアプリを特定するための情報であるアプリ識別情報63を含む。アプリ識別情報は例えばCANのCAN ID、イーサネットにおける送信元・宛先MACアドレス、IP(Internet Protocol)における送信元・宛先IPアドレス、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)における送信元・宛先ポート番号などがある。通信要件64は通信帯域列65、通信遅延列66、ジッタ列67、および廃棄率列68を含む。なお単一のアプリが複数の通信を行う場合、当該アプリはアプリA3のように複数の行を用いて複数の通信を表現する。また、アプリが通信を行わない場合、当該アプリはアプリA4のように実行要件のみ設定することができる。
【0038】
図7はトポロジ情報保持部22の保持するトポロジ情報テーブル70である。トポロジ情報テーブル70は車載ネットワーク内のECU間を接続する各リンクを表すリンク列71に対して、当該リンクの種別がバス型(複数のECUが一つの共通の通信路に接続する形態)であるかメッシュ型(1つのECUが他のECUと一対一で接続する形態)であるかを記載する種別列72および当該リンクに接続されるECUのIDを保持する接続情報列73を持つ。
【0039】
図8は通信性能情報保持部23の保持する通信性能情報テーブル80の一部を抜粋したものである。通信性能情報テーブル80はリンク列81に対し、通信方向82を持ち、リンクおよび当該通信方向ごとにリンクの総帯域を表す総帯域列83、既存のアプリによって使用されている帯域を表す使用済み帯域列84、最大の遅延時間を表す遅延時間列85、ジッタ列86、廃棄率列87、およびバッファ使用量列88を持つ。
【0040】
図9はアプリ配置選択部24の動作を表すフローチャートである。本フローチャートはOTAによるアプリの追加によるアプリ要件テーブル50の更新を契機として開始される。まずステップS100にてアプリ要件保持部21からアプリ要件テーブル50を取得する。続いてS101にて、アプリ要件テーブル50に登録されているアプリ毎に以下の処理をループする。ステップS102にて対象アプリの配置済みフラグをしらべ、配置済みである場合(Yes)には何も行わず次のアプリの処理へ移る。配置済みでない場合(No)は、ステップS103以降を実行する。ステップS103では対象アプリの実行要件がアプリ要件テーブル50に登録済みであるかを調べる。登録済みでない場合(No)、ステップS108にて事前に定義されたECU候補リストを総リソースの大きい順にソートしアプリの配置先ECU候補として、次のアプリの処理へ移る。登録済みの場合(Yes)、以下の処理を行う。ステップS104にて空きリソース情報保持部20からECU内空きリソース情報テーブル30を取得する。続くステップS105にて、ECU内空きリソース情報テーブル30内のECUのうち、計算リソースおよび記憶リソースがアプリの実行要件にある計算リソースおよび記憶リソースより大きく、かつ、アプリの要求するスペックを満足するECUを選択することにより、アプリの要求する実行要件を満たすECUを選択し、配置先ECU候補リストを作成する。そしてステップS106にてECU候補リストを空きリソースの大きい順にソートしてアプリの配置先ECU候補とする。ステップS107にてアプリに対するループの終了判定を行い、全アプリに対して処理が完了した場合は本処理を終了する。
【0041】
図10はアプリ配置選択部24の出力であるアプリ配置先ECU候補リスト90である。アプリ配置先ECU候補リスト90はアプリ列91ごとに配置先ECU候補92を保持する。アプリ配置先ECU候補リスト90は次の通信経路選択部25の入力となる。
【0042】
図11は通信経路選択部25の動作を表すフローチャートである。本フローチャートはアプリ配置選択部24からのアプリ配置先ECU候補リスト90の入力を契機として開始される。まずステップS200にてアプリ配置選択部24からのアプリ配置先ECU候補リスト90を取得する。ステップS201にてトポロジ情報保持部22より車載ネットワークのトポロジ情報テーブル70を取得する。ステップS202にてトポロジ情報テーブル70に車載ネットワークのトポロジ情報が含まれているか確認し、含まれていない場合(No)はステップS204にて事前に定義されたデフォルトのトポロジ情報を使用する。ステップS202にてトポロジ情報が含まれる場合(Yes)は、ステップS203にてトポロジ情報テーブル70のトポロジ情報を使用する。
続くステップS205ではアプリ配置先ECU候補リスト90のアプリ列91にあるアプリ毎に以下のループ処理を行う。まずステップS206にてアプリ要件保持部21からアプリの通信データ(パケット)ごとに、通信相手情報を取得する。ここで通信相手情報とは、受信データにおけるデータ送信元、ならびに送信データにおけるデータ宛先を総称していう。ステップS207では前記通信相手情報を調べ、通信相手に関する情報が含まれない場合(No)は通信が行われないものと判断して次のアプリに関する処理に移る。ステップS207で通信相手に関する情報が含まれる場合(Yes)、ステップS208以降に進む。
ステップS208ではアプリ配置先ECU候補リスト90の配置先ECU候補92に対するループを開始する。ステップS209では別途定義する処理によりデータの送信元から受信先までの経路候補を求める。すべての配置先ECU候補に関してS209の処理が完了した場合、S210にて配置先ECU候補に関するループを終了する。
【0043】
アプリ配置先ECU候補リスト90のすべてのアプリに関して処理が完了した場合、ステップS211にてループを終了し、通信経路選択部25の処理を終了する。
【0044】
図12は
図11中ステップS209の詳細な処理の一例を示すフローチャートである。まずステップS220にてアプリに属する通信ごとにループを開始する。続くステップS221では別途定義する処理にて送信元ECUから宛先ECUまでの経路を探索する。そしてステップS222では宛先ECUに到達した場合は探索した経路を経路候補リストへ追加する。すべての通信データに対して処理が完了した場合、ステップS223にてループを終了し、本処理を終了する。
【0045】
図13は
図12中ステップS221の詳細な処理の一例を示すフローチャートである。ここでは幅優先探索にて送信元ECUから宛先ECUまでの経路を探索するが、深さ優先探索など他の探索アルゴリズムにて実施してもよい。また
図14は本探索処理で用いる探索リスト100の例である。探索リスト100は探索の段階を示すフェーズ101、送信元ECUから宛先ECUまでのすでに探索した経路候補を示す通信経路候補102、および通信経路候補102の状態を示す状態103を持つ。
【0046】
まずステップS230にて変数「フェーズ」を0に設定、状態を未完了として送信元ECUを選択し、探索リストの最初のエントリに追加する。続くステップS231ではフェーズを1だけ増加する。次いでステップS232では前フェーズの探索リストで状態が未完了である通信経路候補102のうち、経路候補の末尾にあるECUからトポロジ上で直結するECUを抽出の上、通信経路候補102の末尾に追加したものを、現フェーズの探索リスト100に追加する。
【0047】
ステップS233では前記のようにして作成した現フェーズの探索リスト100に対してループを開始する。ステップS234にて通信経路候補102の状態をチェックする。まず通信経路候補102の末尾が宛先ECUであった場合(S234a)はステップS235にて通信経路の状態103を「宛先到達」に設定し、ステップS236にて通信経路選択部25の出力である経路候補リストへ追加する。次にステップS234にて通信経路候補102の末尾が探索済みECUであった場合(S234b)、つまり通信経路候補に同一ECUが複数含まれる場合は、ステップS237にて通信経路候補の状態103を「探索済み到達」に設定する。ステップS234にてそれ以外であった場合(S234c)、ステップS238にて通信経路候補の状態103を未完了に設定する。そして現フェーズの探索リスト末尾まで処理が完了した場合、ステップS239にてループを終了する。
【0048】
最後にステップS240にて現フェーズの探索リストに状態が未完了の通信経路候補102があるか否かを確認し、状態が未完了の通信経路候補102がある場合はステップS231に戻って処理を継続する。状態が未完了の通信経路候補102がない場合、つまり車載ネットワークのトポロジに対する探索を完了した場合は、本処理を終了する。
【0049】
図14は
図13の処理をゾーンアーキテクチャのネットワークに対して実行した結果の例である。前フェーズで状態が未完了となったものに対し、現フェーズでは次に到達可能なECUを追加した通信経路候補をリスト化する。そしてフェーズ5にて状態が宛先到達の場合(下線で示すECU Cの箇所)または探索済み到達(イタリック体で示すECU Aの箇所)となり、探索を完了する。
【0050】
図15は通信経路選択部25から出力され性能検証部26へ入力される、アプリの通信経路候補リスト110である。アプリの通信経路候補リスト110はアプリ列111に対する通信経路候補112を保持する。
【0051】
図16は性能検証部26の動作を表すフローチャートである。まずステップS300にて、通信経路選択部25からアプリの通信経路候補リスト110を受信する。次にステップS301にて通信経路候補リスト110に記載のアプリについてループする。次にステップS302では別途定義する手順にてアプリ要件保持部21よりアプリの通信要件情報を取得する。次にステップS303では別途定義する手順にて通信性能情報保持部23より車載ネットワーク上の各リンクにおける通信性能情報を取得する。次にステップS304にて通信経路候補リスト110に記載の当該アプリに対する経路候補についてループする。次にステップS305にて別途定義する手順により、経路候補の通信性能情報とアプリの通信要件から、選択経路使用時の当該アプリの通信性能を評価する。この評価結果をステップS306にて判定し、アプリの通信要件を満たせない場合(No)は経路候補リストに関するループを継続する。ステップS306にてアプリの通信要件を満たせる通信経路が存在した場合(Yes)、ステップS310にてアプリの配置成功とし、設定適用部27へ通信経路情報を出力する。続いてステップS311にて空きリソース情報保持部お20よび通信性能情報保持部23の情報を更新する。アプリの通信要件を満たせる通信経路が存在せずステップS307にてループが終了した場合、ステップS308にてアプリ配置を失敗とする。最後にこれらの処理をステップS309にてアプリ毎のループが終了するまで実行する。
【0052】
図17は
図16中ステップS302の詳細な処理の一例を表すフローチャートである。この処理次点で特定アプリに関する処理となっている。まずステップS320にてアプリ要件保持部21より当該アプリの各通信データについて通信要件を取得する。なお通信を行わないアプリについては通信要件を取得しないものとする。次にステップS321にて取得した通信要件データに、通信帯域や遅延などアプリの通信要件が含まれるか否かを調べる。通信要件が含まれる場合(Yes)、ステップS322にてアプリ要件保持部21より取得したアプリの通信要件を使用する。ステップS321にて通信要件が含まれない場合(No)、ステップS323にて事前に定義されたデフォルトの通信要件を使用する。
【0053】
図18は
図16中ステップS303の詳細な処理の一例を表すフローチャートである。まずステップS330にて、通信性能情報保持部23より車載ネットワーク上の各リンクにおける通信性能情報を取得する。次にステップS331にて車載ネットワーク上のリンクごとにループを開始する。ステップS332にてリンクごとの取得した通信性能情報に何かしらの通信性能情報が含まれるか否かを調べる。通信性能情報が含まれる場合(Yes)、ステップS333にて通信性能情報保持部23より取得した通信性能情報を使用する。ステップS332にて通信性能情報が含まれない場合(No)、ステップS335にて当該リンク上では通信が行われていないものと仮定する。全リンクについて処理を完了すれば、ステップS334にてループを終了する。
【0054】
図19は
図16中ステップS305の詳細な処理の一例を表すフローチャートである。ここではアプリごとにリンク上の通信性能として、通信帯域、遅延、ジッタ、パケット廃棄率の4つの値を数値計算により求める。前記4つの値は独立に計算可能であるため、以下のステップは連続でも並列でも実行することが許可される。まずステップS340で経路候補を構成する各リンクについてループを開始する。ステップS341からステップS344は独立に実行可能である。ステップS341ではリンク上の使用帯域にアプリの通信帯域を加算することにより、アプリを追加した場合の通信帯域を求める。ステップS342ではリンク上の遅延にアプリのパケット長を加算することにより、アプリを追加した場合の遅延を求める。ステップS343では、ジッタがリンク上に送信されるパケット長の最大値で規定されることより、リンク上のジッタとアプリのパケット長を比較し、リンク上のジッタよりもアプリのパケット長が大きい場合、ジッタをアプリのパケット長に更新する。ステップS344では、パケット廃棄率がリンク上の送信バッファあふれにより発生することより、リンク上のバッファ使用量にアプリのパケット長を加算した値をSUMとし、SUMがバッファサイズよりも大きい場合、パケット廃棄率を(SUM-バッファサイズ)/SUMの式により求める。ステップS345にて経路候補を構成する各リンクについてループを終了する。
【0055】
図20は性能検証部26から出力され設定適用部27へ入力される通信経路リスト120である。通信経路リスト120はアプリ列121ごとに性能検証部26によって選択された通信経路122を保持する。
【0056】
図21は設定適用部27の動作を表すフローチャートである。まずステップS400にて、性能検証部26より受信した通信経路リスト120から、含まれるアプリを抽出しアプリ一覧を取得する。次にステップS401にて前記取得したアプリ一覧に含まれるアプリについて、その識別情報をアプリ要件保持部21より取得する。次にステップS402にて、通信経路情報を再構成し、ECUごとに、通信データが通過するアプリの識別情報と当該通信データの次の転送先ECUとを対応付けた通信経路設定テーブル130を生成する。通信経路設定テーブル130の構成例は
図22を用いて説明する。次にステップS403では、通信経路設定テーブル130のECUごとにステップS404の処理をループする。ステップS404では当該ECUに対し、アプリ識別情報と次の転送先ECUを設定する。ステップS405では通信経路設定テーブル130中のECUに関するループを終了する。最後にアプリ一覧に含まれるアプリについて、配置先ECUへ配置する。配置先ECUはアプリの通信経路において、送信データの先頭または受信データの末尾にあるECUである。
【0057】
図22は設定適用部27内部で使用する通信経路設定テーブル130の構成例である。通信経路設定テーブル130はECU列131に対し、通信データが通過するアプリのアプリ識別情報132および次の転送先ECU133を保持する。なおアプリの配置先ECUにおいてアプリが受信するデータは転送先をCPUと表現する。
【0058】
以上の動作により、車載ネットワークシステムはOTAによる新規アプリの追加に伴うアプリのECUへの配置を、ECU内の計算・記憶リソースおよびECU間の通信リソースを考慮して行うことができる。またOTAによる既存アプリ更新時にも同様の方法にてアプリ配置を行うことができる。
【0059】
(まとめ)
本実施例では、アプリの実行要件53を満たすように、ネットワーク上に存在する複数の演算装置3,9のいずれかへ前記アプリを配置するネットワークシステムにおいて、前記アプリの実行要件53および通信要件64を保持するアプリ要件保持部21と、複数の演算装置3,9の空きリソース情報を保持する空きリソース情報保持部20と、実行要件53と空きリソース情報とに基づいて、複数の演算装置3,9の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リスト90を作成するアプリ配置選択部24と、複数の演算装置3,9の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持部22と、前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持部23と、前記トポロジ情報に基づいて、アプリ配置先演算装置候補リスト90内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リスト110を作成する通信経路選択部25と、通信性能情報と通信要件64とに基づいて、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを検証する性能検証部26と、アプリ配置先演算装置候補リスト90内の演算装置のうち、性能検証部26によって通信要件64が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用部27とを備える。
【0060】
また、本実施例では、アプリの実行要件53を満たすように、ネットワーク上に存在する複数の演算装置3,9のいずれかへ前記アプリを配置するネットワーク管理方法において、前記アプリの実行要件53および通信要件64を保持するアプリ要件保持ステップと、複数の演算装置3,9の空きリソース情報を保持する空きリソース情報保持ステップと、実行要件53と空きリソース情報とに基づいて、複数の演算装置3,9の中から前記アプリを実行可能な演算装置を選択し、アプリ配置先演算装置候補リスト90を作成するアプリ配置選択ステップと、複数の演算装置3,9の通信接続関係を示すトポロジ情報を保持するトポロジ情報保持ステップと、前記ネットワークの各リンクの通信性能情報を保持する通信性能情報保持ステップと、前記トポロジ情報に基づいて、アプリ配置先演算装置候補リスト90内の各演算装置に前記アプリを配置した場合の前記アプリの通信経路を選択して通信経路候補リスト110を作成する通信経路選択ステップと、通信性能情報と通信要件64とに基づいて、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを検証する性能検証ステップと、アプリ配置先演算装置候補リスト90内の演算装置のうち、前記性能検証ステップによって通信要件64が満たされることが検証された通信経路に対応する演算装置に前記アプリを配置する設定適用ステップとを備える。
【0061】
以上のように構成した本実施例によれば、ネットワーク上に存在する複数の演算装置3,9のいずれかへアプリを配置する際に、各演算装置3,9の演算リソースおよび演算装置間の通信リソースを考慮することにより、アプリの実行性能および通信性能を確保することができるため、アプリを安定的に動作させることが可能となる。
【0062】
また、本実施例における通信要件64および通信性能情報は、アプリの通信帯域、通信遅延、通信ジッタ、およびパケット廃棄率のいずれか1つ以上を含む。これにより、アプリの通信要件64および通信性能情報を定義することが可能となる。
【0063】
また、本実施例における性能検証部26は、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを、通信性能情報と通信要件64とに基づく数値計算により検証する。これにより、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを簡易的に検証することが可能となる。
【0064】
また、本実施例における性能検証部26は、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを、通信性能情報と通信要件64とに基づくシミュレーションにより検証する。通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを高い精度で検証することが可能となる。
【0065】
また、本実施例における、前記アプリを配置する際に前記アプリとともに前記ネットワークに入力されるメタデータ43は、計算リソース、記憶リソース、およびスペックのいずれか1以上を含む実行要件53と、通信方向、通信相手、通信周期、通信データサイズ、および通信識別情報のいずれか1以上を含む通信仕様58と、通信帯域、通信遅延、通信ジッタ、パケット廃棄率のいずれか1以上を含む通信要件64とを含む。これにより、アプリの実行要件53、通信仕様58、および通信要件64を定義することが可能となる。
【0066】
また、本実施例におけるネットワークは、車両に搭載された車載ネットワークであり、複数の演算装置3,9は、前記車両に搭載された複数の車載電子制御装置3,9である。これにより、車載ネットワークにおいて、新たに配置したアプリを安定的に動作させることが可能となる。
【0067】
また、本実施例における車載装置は、前記ネットワークシステムを備える。これにより、車載装置において、新たに配置したアプリを安定的に動作させることが可能となる。
【0068】
また、本実施例における通信要件64は、前記車両に搭載されたセンサ4から出力されるセンサデータ、前記車両を制御するための制御データ、および前記センサデータから前記制御データを求める演算の途中で得られる中間データに関する項目を含む。これにより、車載装置の要求性能に応じた通信要件64を定義することが可能となる。
第1の実施例では数値計算により通信性能を推定した。この方法は計算量が小さく簡便であるが、推定の精度は低い。そこで第2の実施例では別の方法として、ネットワークシミュレーションによる通信性能の推定を行う方法を示す。
また、本実施例におけるネットワーク管理方法の性能検証ステップでは、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを、車両内部の計算機を用いた、通信性能情報と通信要件64とに基づくシミュレーションにより検証する。これにより、ネットワークシステムが外部と通信できない環境下でもシミュレーションを行うことが可能となる。
また、本実施例におけるネットワーク管理方法の性能検証ステップでは、通信経路候補リスト110内の各通信経路にて通信要件64が満たされるか否かを、車両外部の計算機を用いた、通信性能情報と通信要件64とに基づくシミュレーションにより検証する。これにより、シミュレーションを行うリソースが制限されないため、シミュレーションの精度を向上させることが可能となる。