• 検索結果がありません。

自動車ソフトウェアにおけるサービス指向アーキテクチャの提案

N/A
N/A
Protected

Academic year: 2021

シェア "自動車ソフトウェアにおけるサービス指向アーキテクチャの提案"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

自動車ソフトウェアにおけるサービス指向アーキテクチャの提案

2005MT029 生駒 光平 2005MT055 近藤 貴大 2005MT115 田邊 隼希 指導教員 青山 幹雄

1. はじめに

複数のベンダで開発した自動車ソフトウェアのネットワー クを介した協調制御が必要となっている[2].本稿では,プ ロパティに基づき従来のサービス指向アーキテクチャ (SOA: Service-Oriented Architecture)の直接的なサー ビス提供に加え,イベント起動や間接的なサービス提供を 含むモデルとそれを実現するアーキテクチャを提案する.

2. SOA 適用の現状と問題点

自動車ソフトウェアにおいてセントラルロッキングシステ ム[4]を例として SOA を適用する研究がある.SOA の適用 によって,メッセージベースの処理が可能となる.しかし, 従来のSOA には以下の問題がある. (1) イベントの処理が未対応 自動車などでは,イベント処理が重要であるが,従来の SOA ではイベントの処理を扱えない. (2) 空間を介したサービス提供の必要性 自動車などでは,ユーザが直接結果を受けるサービスと, 空間を介してユーザが効果を得るサービスも存在する.空 間を介したサービス提供の例を図1 に示す. 外部環境 変化 車 内 エアコン制御ECU エンジン制御ECU ステアリング制御ECU 外部環境に応じて 相互に作用 ネットワークで連携 ブレーキ制御ECU 天候 速度 路面状況 センサ センサ センサ 協調制御 ユーザ 図 1 空間を介したサービス提供

3. プロパティ中心サービス提供モデル

3.1. プロパティ中心サービス提供モデル SOA を適用する上でプロパティ中心にモデル化を行う. プロパティを次の三つに分類する. (1) サービスプロパティ:動的に変化するサービスの特性 や状態. (2) 環境プロパティ:ユーザを取り巻く環境の状態. (3) ユーザプロパティ:ユーザの特性,システムへの要求. 3.2. 自律的サービス提供と協調的サービス提供 図2に示すように,自動車ソフトウェアのサービス提供に おける相互作用をその性質に着目し分類する. (1) 自律的サービス提供:各機器は,それを取り巻く環境プ ロパティが目標値に収束するように自身を制御する.目 標値とはユーザの要求を示す. (2) 協調的サービス提供:複数のサービスを協調動作させ ることで全体としてユーザの要求を満たす. これらの異なる制御モデルのアーキテクチャは異なり, 統一性を欠くことから,振舞いの一貫性の欠如や制御が競 合する可能性があるため,これらを統合できるSOA の拡張 とその設計方法が必要となる. 外部環境 ユーザ ユーザ プロパティ 走行モード 自動車 環境 プロパティ 影響 影 響 目標値 (1) 自律的サービス提供 (2) 協調的サービス提供 エアコン制御 サービスプロパティ サービスプロパティ 電源 温度 影響 スロットル開度 エンジン制御 setThr ON OFF setTemp 燃料使用量 図 2 自律的サービス提供と協調的サービス提供

4. モデルに基づく SOA 設計方法

サービス提供を様々な観点から分類し,そのサービス 提供を実現するアーキテクチャパターンを決定する. 4.1. 対話型サービス提供と自律型サービス提供 サービスが制御するプロパティの性質とユーザとの相互 作用の違いに着目し,分類する. (1) 対話型サービス提供:ユーザの要求に対しプロパティ を動的に変更する. (2) 自律型サービス提供:操作対象のプロパティ値を一定 に保つためシステムが自律的にサービス提供を行う. 4.2. 直接的サービス提供と間接的サービス提供 ユーザとサービス間の相互作用に着目し,分類する. (1) 直接的サービス提供:サービスとユーザが直接相互 作用する. (2) 間接的サービス提供:環境プロパティを制御する場合, サービスは環境を介してユーザに影響を与える. 4.3. アーキテクチャパターンの決定と統合 対話型サービス提供では,ユーザはスイッチ操作などで サービスプロバイダを直接指定,起動し,その結果を待つ. 従ってメッセージベースの要求/応答を用いる. 自律型サービス提供では,環境の情報をセンサなどでイ ベントとして検出し,検出内容と関連するサービスを起動す る.環境情報の発生とそれに応じた処理を独立に行うため イベントベースのパブリッシュ/サブスクライブを用いる. この二つのアーキテクチャパターンは振舞いが異なるが, システム全体としては統一的に制御する必要がある.この

(2)

ため,ブローカを用いてこれらのアーキテクチャパターン の振舞いを統合する.

5. ブローカアーキテクチャ

メッセージベース,イベントベースの異なるモデルを統 一的に制御するブローカアーキテクチャを提案する. 5.1. 導入するブローカ ブローカをイベント処理とサービス起動に分離する.イベ ント処理をイベントマネージャ,サービス起動をサービスコ ーディネータが行う(図 3). (1) イベントマネージャ:センサからのイベントを受信し, 登録されたサブスクリプションに基づきフィルタリング を行い,サービスコーディネータにイベントを配信. (2) サービスコーディネータ:ユーザ,サービスからの要 求やイベントマネージャとの連携でサービスを起動. 制御サービスA ユーザ要求センサ 環境 サブスクリプション 表示サービス 結果 結果 イベント配信 サブスクリプション イベント通知 要求 起動 結果 イベント通知 イベント イベント サービス コーディネータ 起動 起動 起動 制御サービスB ユーザ イベント マネージャ 制御サービスC 外部環境センサ アプリケーション サービス 図 3 ブローカアーキテクチャ 5.2. ブローカアーキテクチャの振舞い ブローカアーキテクチャの振舞いを対話型,自律型複合 ユースケースにより検証する(図 4). 対話型,自律型サービス提供パターンという制御モデル の異なるサービス提供パターンを実現し,サービス提供を 統一的に制御できた.またパブリッシュ/サブスクライブを用 いて,イベントを複数のサービスに通知できる. ユーザ 制御A 制御 B 表示 アプリ ケーション サービス コーディネータ イベント マネージャ ユーザ 要求 外部 環境 サブスクリプション Aを起動する要求 イベント通知 起動 応答 イベント 配信 起動 実行結果 要求 par 対話型 サービス提供 自律型 サービス提供 サブスクリプション サブスクリプション サブスク リプション 図 4 ブローカアーキテクチャの振舞い

6. ブローカアーキテクチャの適用例

ブローカアーキテクチャを ACC(Adaptive Cruise Control System)に適用し,分析する(図 5). (2) 相互作用分析 シーケンス図 コミュニケーション図 (1) 機能分析 ユースケース図 ユースケース記述 a)ユースケース分析 b)シナリオ分析 仕様書 a)実行順序に着目 した相互作用分析 着目した相互作用分析b)要素間の関係に 図 5 ACC の分析プロセス (1) 機能分析 a) ACC の機能をユースケース図を用いて分析し,構成 するセンサ,サービスを決定する. b) ユースケース図に基づき,ユースケース記述を作成 し,シナリオによりサービス提供パターンを発見する. (2) 相互作用分析 a) シナリオからシーケンス図を作成し,実行順序に着目 した相互作用分析をする. b) シーケンス図からコミュニケーション図を作成し,要素 間の相互作用分析をする. 6.1. 機能分析 (1) ユースケース分析 ACC の提供機能とアクタの関係を示す(図 6).アクタは, ユーザ,レーダ,車速センサ,エンジン制御サービス,ブレ ーキ制御サービスである.メインスイッチの操作はユーザ の操作なのでユースケース図には示さない.ACC は距離 計算,追従制御,速度制御,ブレーキ制御に分割できる. 速度制御 ACC制御サービス ブレーキ制御 ユーザ <<include>> <<include>> ブレーキ制御 サービス エンジン制御 サービス センサ レーダ 追従制御 距離計算 <<include>> 図 6 ACC のユースケース図 (2) シナリオ分析 図6 のユースケース図に基づき,ACC の開始から追従 走行制御までのシナリオを作成した.ユーザがサービスを 指定して要求を行いサービスが起動する対話型サービス 提供パターンと,環境プロパティの変化からサービスが起 動する自律型サービス提供パターンがある. 6.2. 相互作用分析 (1) 実行順序に着目した相互作用分析 ACC の相互作用を分析するために,シナリオに基づき シーケンス図を作成した(図 7).シーケンス図から,次の二 つのサービス提供パターンを発見できた. ユーザエンジン 制御 ブレーキ 制御 表示 ACC 制御 サービス コーディネータ イベント マネージャ レーダ 車速 センサ サブスクリプション メイン スイッチ メインスイッチON イベント 通知 イベント 配信 応答 起動 イベント通知 イベント 配信 イベント通知 制御 要求 起動 要求 起動表示 スロットル開度変更 イベント 配信 制御 要求 スロットル開度変更 ブレーキ強度変更 ブレーキ作動表示 par イベント通知 イベント通知 起動 要求 サブスクリプション サブスク リプション サブスク リプション par par 対話型 サービス提供 自律型 サービス提供 図 7 ACC のシーケンス図 1) 対話型サービス提供パターン:ユーザ要求により ACC 制御サービスが起動. 2) 自律型サービス提供パターン:環境プロパティの変化 によりACC 制御サービスが起動され,プロパティの値 を保持するために制御.

(3)

ACC 制御サービスはコンテキストに応じてエンジン制御 サービスとブレーキ制御サービスの協調制御を行う. (2) 要素間の関係に着目した相互作用分析 図7のシーケンス図より,コミュニケーション図を作成し要 素間の相互作用を分析した(図 8). イベントはイベントマネージャに通知され,サービスコー ディネータに配信される.サービスコーディネータはイベン トやサービスの要求に基づきサービスを起動する. サービ スはサービスコーディネータを介して起動され,サービス間 で直接メッセージのやり取りはしない.ブローカアーキテク チャの適用でイベント処理とサービス起動を分離できた. 車速センサ ACC制御 ブレーキ 制御 イベント 通知 イベント 通知 サブスクリプション イベント配信 表示 イベント マネージャ ブレーキ 強度変更 スロットル 開度変更 イベント 通知 表示要求 ブレーキ強度変更/ スロットル開度変更 制御要求 エンジン 制御 サービス コーディネータ レーダ メイン スイッチ 図 8 ACC のコミュニケーション図

7. ACC によるアーキテクチャの評価

提案するアーキテクチャの評価のために,6章の分析プ ロセスにより従来のシステム,従来の SOA から構成される システムを分析,比較を行う.対象システムはACC とする. 7.1. 従来 ACC システムの分析 7.1.1. 機能分析 (1) ユースケース分析 ACC は追従制御,速度制御,ブレーキ制御という三つの 機能から構成される.アクタは仕様[5]に基づきユーザ,レ ーダ,ディスタンスコントロールコンピュータ,車速センサ, エンジンコントロールコンピュータ,スキッドコントロールコ ンピュータとした.追従制御にはメインスイッチも関係する がユーザの操作なのでユースケース図には示さない. 速度制御 ACC ブレーキ制御 ユーザ 追従制御 <<include>> <<include>> スキッドコントロール コンピュータ エンジンコントロール コンピュータ ディスタンスコントロール コンピュータ レーダ 車速センサ 図 9 従来 ACC システムのユースケース図 (2) シナリオ分析 図9 のユースケース図に基づき ACC の開始から追従走 行制御までのシナリオを作成した. 7.1.2. 相互作用分析 (1) 実行順序に着目した相互作用分析 従来ACC システムの相互作用分析のためにシナリオに 基づき,シーケンス図を作成し,分析した(図 10). (2) 要素間の関係に着目した相互作用分析 図10 のシーケンス図より,コミュニケーション図を作成し 要素間の相互作用を分析した(図 11). コンピュータとコンピュータが直接制御を行っており,コ ンピュータ間の結合が強い.またセンサとコンピュータも直 接イベント通知を行っているため,この二つの要素間でも 結合が強い. 従って新しい機能,センサの追加や変更を行う際には, システムの大規模な変更が必要となる.センサのイベントは あらかじめ指定されたコンピュータにしか配信できず,イベ ント配信は固定的である.よってセンサのイベントが追加さ れたコンピュータで必要な場合に対応することが難しい. メインスイッチON イベント 通知 制御状態 イベント 通知 イベント通知 目標速度 イベント 通知 イベント通知 ブレーキ 制御要求 目標速度 制御状態 par par ユーザ コントロールスキッド ディスタンスコントロール コントロールエンジン メータ スイッチメイン レーダ センサ車速 par 図 10 従来 ACC システムのシーケンス図 レーダ エンジン コントロール スキッド コントロール メイン スイッチ イベント通知 イベント通知 イベント通知 制御状態 目標速度 ブレーキ制御 要求 メータ ディスタンス コントロール 車速センサ 図 11 従来 ACC システムのコミュニケーション図 7.2. 従来の SOA による ACC の分析 機能分析に関しては,6.1 節の分析結果を用いる. 7.2.1. 相互作用分析 従来のSOA による ACC の相互作用分析のために 6.1 節のシナリオよりシーケンス図を作成し,分析した(図 12). メインスイッチON 起動 表示 イベント通知 イベント通知 スロットル開度変更 イベント 通知 イベント通知 スロットル開度変更 par イベント通知 par par ブレーキ強度変更 ブレーキ 作動 表示 ユーザ エンジン 制御 ブレーキ 制御 表示 ACC 制御 レーダ 車速 センサ メイン スイッチ 図 12 従来の SOA による ACC のシーケンス図 車速センサ,レーダのイベントがACC 制御サービスに通 知されているが,従来のSOA ではイベントを扱えない.ま たエンジン制御サービスやブレーキ制御サービスの実行 結果は間接的にユーザに作用し,従来のSOA の直接的な サービス提供形態とは異なる. 7.3. 提案アーキテクチャの評価 従来のシステム,従来のSOA と提案アーキテクチャを SOA,イベント,プロパティという三つの観点から比較を行 い,評価した(表 1).

(4)

表 1 ACC によるアーキテクチャの評価 評価の 観点 評価項目 従来の システム 従来のSOA 提案 アーキテクチャ SOA インタフェース 形式 ベンダごと に異なる 標準化 されている 標準化 されている プラットフォー ムへの依存性 依存 非依存 非依存 イベント イベントの処理 可能 不可能 可能 イベントの 配信制御 固定的 イベントの処 理はできない 追加・変更が 可能 プロパティ サービス 提供形態 サービスは 存在しない サービス提供 直接的 直接的・間接的 サービス提供 (1) インタフェース形式 従来のシステムの場合,インタフェースがベンダごとに異 なりソフトウェアの連携が困難であった.提案アーキテクチ ャや従来のSOA ではインタフェースの標準化により,サー ビスの再利用性が高まり,車内のサービスとテレマティクス サービスの連携も容易となる. (2) プラットフォームへの依存性 従来のシステムはプラットフォームに依存しソフトウェア の連携が困難である.一方,従来のSOA や提案アーキテ クチャはプラットフォームに非依存で,プラットフォームが異 なるベンダ間で開発されたサービスの連携が容易である. (3) イベントの処理 自動車ソフトウェアはイベントにより制御を行うが,従来の SOA ではイベントを扱えない.従来のシステムはイベント 処理が可能である.提案アーキテクチャでもイベントマネー ジャとサービスコーディネータの連携により,イベント処理 が可能である. (4) イベントの配信制御 従来のシステムではセンサとコンピュータ間で直接イベ ント通知を行い,センサのイベント配信先は固定的である. 提案アーキテクチャはパブリッシュ/サブスクライブを用いて イベント配信先の追加と変更が可能となり,またイベントを 複数サービスに配信できる. (5) サービス提供形態 ACC ではサービスの実行結果が間接的にユーザに作 用し,従来のSOA では対応できない.提案アーキテクチャ ではプロパティに着目し制御を行うため,間接的なサービ ス提供が可能になる. 以上の議論より,提案アーキテクチャはSOA に基づく自 動車ソフトウェアの実現に有効なアーキテクチャといえる.

8. 考察

8.1. ブローカアーキテクチャの妥当性 サービス提供を対話型,自律型に着目し,この分類から アーキテクチャパターンを決定した.自律型サービス提供 にパブリッシュ/サブスクライブを用いることで同時多発的イ ベントに対して適切なサービスの提供が可能となる. 8.2. サービスの再利用性

図13 に ACC と CC(Cruise Control System)のユースケ

ース図を示す.この図からACC は CC に距離計算,追従制 御とレーダの追加で実現可能であることがわかる.既存の 機能に新機能を追加すれば一から開発を行う必要が無く, 再利用により開発期間の短縮やコスト削減が期待できる. a)クルーズコントロールシステム 速度制御 CC制御サービス ブレーキ制御 ユーザ ブレーキ制御 サービス エンジン制御 サービス 車速センサ ACCへの 機能追加 ACC制御サービス <<include>> レーダ b)アダプティブクルーズコントロールシステム <<include>> 追従制御 速度制御 CC制御サービス ブレーキ制御 ユーザ ブレーキ制御 サービス エンジン制御 サービス 車速センサ 距離計算 <<include>> 図 13 サービスの再利用

9. 関連研究

9.1. 組込みネットワークへの SOA 適用 組込みネットワークシステムにおいてSOA を拡張する研 究が行われ,ホームネットワークシステム(HNS:Home Network System)に適用されている[1]. 9.2. AUTOSAR AUTOSAR では,ネットワーク上でソフトウェアを連携す ることを主眼とし, ECU ソフトウェアに関する技術の研究が 行われている[3].しかし,ネットワークを介したアプリケーシ ョン間でのインタフェースの標準化は行われていない.

10. 今後の課題

本稿で検証したACC は間接的サービス提供に限られ, 直接的サービス提供を含むシナリオを検証する必要がある. また,自動車ソフトウェアのSOA ではタイミング協調やリア ルタイム性を考慮する必要がある.

11. まとめ

従来のSOA の直接サービス提供に加え,イベント起動 と空間を介したサービス提供を含むプロパティ中心サービ ス提供モデルを提案した.ブローカを用いたアーキテクチ ャを提案し,シナリオを用いて有効性を評価した.

参考文献

[1] 青山 幹雄,藤山 麻衣,組込みネットワークシステム のユニバーサルサービス指向アーキテクチャ,SES 2008 論文集, Sep. 2008, pp. 147-154. [2] 青山 幹雄, ほか, 車載ソフトウェアのサービスプラッ トフォームのモデルとアーキテクチャ, 自動車技術学 会秋季論文集, 2008. [3] AUTOSAR, http://www.autosar.org.

[4] I. H. Kruger, et al, Service-Based Software Development for Automotive Applications, Proc. Convergence 2004, No. 2004-21-0040 CTE, 2004. [5] トヨタ自動車,CROWN MAJESTA 新型車解説書,

表   1 ACC によるアーキテクチャの評価 評価の  観点  評価項目  従来の  システム  従来の SOA  提案 アーキテクチャ  SOA  インタフェース 形式 ベンダごと に異なる  標準化  されている  標準化 されている  プラットフォー ムへの依存性  依存  非依存  非依存 イベント  イベントの処理  可能  不可能  可能 イベントの  配信制御  固定的 イベントの処 理はできない  追加・変更が 可能 プロパティ  サービス  提供形態  サービスは 存在しない  直接的

参照

関連したドキュメント

カウンセラーの相互作用のビデオ分析から,「マ

The FMO method has been employed by researchers in the drug discovery and related fields, because inter fragment interaction energy (IFIE), which can be obtained in the

Our translation L M can be extracted by a categorical interpretation on the model Per 0 that is the Kleisli category of the strong monad 0 on the cartesian closed category Per!.

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

燃料取り出しを安全・着実に進めるための準備・作業に取り組んでいます。 【燃料取り出しに向けての主な作業】

町の中心にある「田中 さん家」は、自分の家 のように、料理をした り、畑を作ったり、時 にはのんびり寝てみた

これらの設備の正常な動作をさせるためには、機器相互間の干渉や電波などの障害に対す

それらのデータについて作成した散布図を図 15.16 に、マルチビームソナー測深を基準に した場合の精度に関する統計量を表 15.2 に示した。決定係数は 0.977