(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-08
(54)【発明の名称】オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置および方法
(51)【国際特許分類】
H04L 67/125 20220101AFI20240801BHJP
H04L 67/51 20220101ALI20240801BHJP
【FI】
H04L67/125
H04L67/51
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022572625
(86)(22)【出願日】2021-09-29
(85)【翻訳文提出日】2022-12-12
(86)【国際出願番号】 KR2021013396
(87)【国際公開番号】W WO2023013814
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】10-2021-0103816
(32)【優先日】2021-08-06
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】522459362
【氏名又は名称】ポップコーンザー カンパニー リミテッド
(74)【代理人】
【識別番号】110003801
【氏名又は名称】KEY弁理士法人
(72)【発明者】
【氏名】チェ ユンキ
(72)【発明者】
【氏名】イ ヨンホ
(72)【発明者】
【氏名】チェ ウォンソク
(72)【発明者】
【氏名】キム カプヒョン
(57)【要約】
本発明はオートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置および方法に関する。POSIX OSが移植されたECUで構成され、オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現するマシンは、前記プラットフォーム上でサービスを提供するアプリケーションであるスケルトン;前記プラットフォーム上でサービスを使うアプリケーションであるプロキシ;および前記プラットフォーム上で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者を含む。
【特許請求の範囲】
【請求項1】
POSIX OSが移植されたECUで構成され、オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現するマシンであって、
前記プラットフォーム上でサービスを提供するアプリケーションであるスケルトン;
前記プラットフォーム上でサービスを使うアプリケーションであるプロキシ;および
前記プラットフォーム上で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者;を含む、マシン。
【請求項2】
前記サービス通信管理者は
前記スケルトンが提供するサービスの情報と前記プロキシが使うサービスの情報を保存するサービスレジストリ;
前記サービスレジストリに登録されたサービスが他のECUの車両アプリケーションに提供されるか他のECUの車両アプリケーションを使わなければならない場合、前記サービス提供開始通報や前記サービスの使用のための検索要請メッセージ(サービスディスカバリメッセージ)をイーサネットマルチキャストを通じて送信するサービスディスカバリ;および
他のECUが提供・使うサービスによるデータ通信を担当するSOME/IPブリッジ;を含むものである、請求項1に記載のマシン。
【請求項3】
前記サービス通信管理者は
前記スケルトンと前記プロキシとの通信に使われるIPCポート;
前記サービスディスカバリで生成したサービスディスカバリメッセージをイーサネットマルチキャストを通じて他のECUに送信し、他のECUが送信したサービスディスカバリメッセージをイーサネットマルチキャストを通じて受信して前記サービスディスカバリに伝達するサービスディスカバリマルチキャストポート;および
前記SOME/IPブリッジと他のECU間のデータ通信に使われるサービスエンドポイントポート;をさらに含むものである、請求項2に記載のマシン。
【請求項4】
前記サービスエンドポイントポートはTCPプロトコルまたはUDPプロトコルに従うものである、請求項3に記載のマシン。
【請求項5】
前記サービス通信管理者は
前記マシンに一つのみ存在することを特徴とする、請求項1に記載のマシン。
【請求項6】
前記スケルトンと前記プロキシは互いに直接連結されず、前記スケルトンまたは前記プロキシは前記サービス通信管理者とIPC(Inter-Process Communication)を通じて通信することを特徴とする、請求項1に記載のマシン。
【請求項7】
車両アプリケーション間ダイナミックサービス指向通信を実現するシステムであって、請求項1~請求項6のいずれか一項に記載されたマシンを含む、システム。
【請求項8】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス提供開始通報メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;
前記メッセージに関するサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関するサービス情報を前記サービスレジストリに登録する段階;
前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス提供開始を通報するメッセージを生成して他のECUに送信する段階;および
所定のTTL(Time-to-Live)が満了する場合、SOME/IPによりサービス提供中断を通報するメッセージを生成して前記他のECUに送信する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項9】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス提供中断通報メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;
前記メッセージに関するサービス情報が前記サービスレジストリに登録されている場合、前記メッセージに関するサービス情報を前記サービスレジストリから除去する段階;および
前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス提供中断を通報するメッセージを生成して他のECUに送信する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項10】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス使用のための検索要請メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;
前記メッセージに関するサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関するサービス情報を前記サービスレジストリに登録する段階;および
前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス使用のための検索要請メッセージを生成して他のECUに送信する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項11】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートに実際のサービスの提供や使用のためのメッセージのうちいずれか一つが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;
前記サービスのIDがサービスレジストリに存在する場合、前記メッセージに含まれているデータの前にSOME/IPヘッダーを追加する段階;および
前記SOME/IPヘッダーが追加されたメッセージを他のECUに送信する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項12】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス提供開始通報メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;および
前記メッセージに関連したサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関連したサービス情報を前記サービスレジストリに登録する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項13】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス使用のための検索要請メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;および
前記メッセージに関連したサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関連したサービス情報を前記サービスレジストリに登録する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項14】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス提供中断通報メッセージが入力された場合の処理方法であって、
前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;および
前記メッセージに関連したサービス情報が前記サービスレジストリに登録されている場合、前記メッセージに関連したサービス情報を前記サービスレジストリから除去する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項15】
車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスエンドポイントポートに他のECUのサービスインスタンスが送信したSOME/IPメッセージが入力された場合の処理方法であって、
前記メッセージが、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに登録されたサービスにマッチングされるかどうかを検索する段階;
前記メッセージが前記サービスレジストリに登録されたサービスにマッチングされる場合、前記サービスレジストリから前記マッチングされるサービスに該当するアプリケーションのエンドポイントアドレスを受信する段階;
前記メッセージと前記アプリケーションのエンドポイントアドレスを前記サービス通信管理者のIPCポートに伝達する段階;および
前記IPCポートが自身と連結されている車両アプリケーションに前記メッセージを送信する段階;を含む、サービス通信管理者の入力メッセージ処理方法。
【請求項16】
オートサーアダプティブプラットフォーム上でサービスを提供するアプリケーションであるスケルトンのサービス指向通信方法であって、
前記スケルトンと同一のマシン内で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者にサービス提供開始通報メッセージを送信する段階;
前記サービス通信管理者からサービス要請メッセージを受信する段階;
前記サービス要請メッセージのパーシング結果によりメッセージをメソッド呼び出しメッセージ(Requestメッセージ)またはイベントメッセージに対する購読要請メッセージ(SubscribeEventGroupメッセージ)に区分する段階;
前記区分の結果、前記サービス要請メッセージが前記Requestメッセージである場合、該当メソッドを呼び出してその結果として生成された応答メッセージを前記サービス通信管理者に送信する段階;
前記区分の結果、前記サービス要請メッセージが前記SubscribeEventGroupメッセージである場合、購読者レジストリにメッセージの内容を登録し、前記イベントメッセージの送信条件が到来する時にイベントメッセージを生成して前記サービス通信管理者に送信する段階;および
サービスインスタンス終了条件が満たされる場合、サービス提供中断通報メッセージを生成して前記サービス通信管理者に送信する段階;を含む、スケルトンのサービス指向通信方法。
【請求項17】
オートサーアダプティブプラットフォーム上でサービスを使うアプリケーションであるプロキシのサービス指向通信方法であって、
前記プロキシと同一のマシン内で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者にサービス使用のための検索要請メッセージを送信する段階;
前記サービス通信管理者から前記メッセージに対する応答を受信する段階;
現在使用可能なサービスリストから一つのサービスを選択する段階;
サービスの提供を受ける方法を決定する段階;
前記サービスの提供を受ける方法がメソッドを明示して呼び出す方法の場合、メソッド呼び出しメッセージ(Requestメッセージ)を生成して前記サービス通信管理者に送信する段階;
前記サービスの提供を受ける方法がイベントメッセージに対する購読である場合、イベントメッセージに対する購読要請メッセージ(SubscribeEventGroupメッセージ)を生成して前記サービス通信管理者に送信する段階;
前記サービス通信管理者からサービスを提供するメッセージを受信する段階;
前記サービスを提供するメッセージをパーシングして区分する段階;
前記区分の結果、前記サービスを提供するメッセージがメソッド実行結果メッセージ(Responseメッセージ)である場合、メソッド呼び出し元(method caller)を経てユーザ(user)具現部分に結果を伝達する段階;
前記区分の結果、前記サービスを提供するメッセージがイベントメッセージ(Eventメッセージ)である場合、前記イベントメッセージをイベントバッファに保存する段階;および
サービスインスタンス終了条件が満たされる場合、サービス使用中断通報メッセージを生成して前記サービス通信管理者に送信する段階;を含む、プロキシのサービス指向通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はオートサーアダプティブプラットフォーム(AUTOSAR Adaptive Platform)で車両アプリケーション間ダイナミックサービス指向通信を実現する装置および方法に関する。さらに詳細には、車両アプリケーションが提供するか使うサービスの登録・発見および前記サービスの提供と使用のための通信を総合的に掌るプラットフォーム水準のアプリケーションで構成された、オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置とその装置を活用した車両アプリケーション間ダイナミックサービス指向通信方法に関する。
【背景技術】
【0002】
自動車分野でのソフトウェア再使用のために、2005年主要自動車メーカーおよび開発会社によってオートサー(AUTOSAR)標準が制定された。
【0003】
その後、自動車産業における3つの大きな話題であるネットワークの連結・自律走行・電気化のために、ECUの統合などの新しい電気・電子アーキテクチャの必要性が提起され、これに伴い高性能CPU基盤のECUソフトウェアプラットフォーム標準であるオートサーアダプティブプラットフォーム(AUTOSAR Adaptive Platform、以下AP)標準が2017年新設されて2019年から量産に適用されている。
【0004】
APを基盤として車両をスマートフォンのような一つのプラットフォームで運用する動きが速やかに進行されており、グローバルの主要OEMだけでなく、ローカルOEMもAPを適用した新規のECU開発を準備中である。
【0005】
信号指向通信(signal-oriented communication)に基づいたオートサークラシックプラットフォーム(AUTOSAR classic platform)とは異なってAPはサービス指向通信(service-oriented communication)に基づいているが、これはサービス提供者であるスケルトン(skeleton)とサービス使用者であるプロキシ(proxy)がサービスディスカバリ(service discovery)およびSOME/IP(Scalable service-Oriented MiddlewarE over IP)を通じて動的に連結される通信方式である。このようなAPアプリケーション間サービス指向通信を担当する機能クラスタはサービス通信管理者(Communication Management、以下、CM)である。
【0006】
ところが、オートサー標準にCMに対する仕様書があるものの、細部的には規定されていないため、開発者により具現の形態が相当に異なり得る。CM仕様書はポートを通じてアプリケーション双方が連結される構造を提示しているが、ポート一個当たり一つのSOME/IPエンドポイント(endpoint)を配置するがポートの個数には制限がない。したがって、開発者の設計方法によりアプリケーションの規模が大きいほどポート数が急激に増加し得、これは資源の浪費を招く。また、スケルトンとプロキシが直接的に通信をする場合、それぞれバッファとレジストリ構造を備えなければならないため、アプリケーションの規模が大きくなって負荷の問題が深刻とならざるを得ない問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は前記のような問題点を解決するためのもので、スケルトンとプロキシ間の直接的な連結を排除し、内・外部通信機能をCMで一元化したマシン(POSIX OSがポーティングされたECU)で構成された車両アプリケーション間ダイナミックサービス指向通信を実現する装置とその装置を活用したサービス指向通信方法を提供することにその目的がある。
【0008】
本発明の目的は以上で言及した目的に制限されず、言及されていないさらに他の目的は下記の記載から当業者に明確に理解され得るであろう。
【課題を解決するための手段】
【0009】
前記目的を達成するための本発明の一実施例に係るマシンは、POSIX OSが移植されたECUで構成され、オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現するマシンであって、前記プラットフォーム上でサービスを提供するアプリケーションであるスケルトン;前記プラットフォーム上でサービスを使うアプリケーションであるプロキシ;および前記プラットフォーム上で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者;を含む。
【0010】
前記サービス通信管理者は、前記スケルトンが提供するサービスの情報と前記プロキシが使うサービスの情報を保存するサービスレジストリ;前記サービスレジストリに登録されたサービスが他のECUの車両アプリケーションに提供されるか他のECUの車両アプリケーションを使わなければならない場合、前記サービス提供開始通報や前記サービスの使用のための検索要請メッセージ(サービスディスカバリメッセージ)をイーサネットマルチキャストを通じて送信するサービスディスカバリ;および他のECUが提供・使うサービスによるデータ通信を担当するSOME/IPブリッジ;を含むことができる。
【0011】
また、前記サービス通信管理者は、前記スケルトンと前記プロキシとの通信に使われるIPCポート;前記サービスディスカバリで生成したサービスディスカバリメッセージをイーサネットマルチキャストを通じて他のECUに送信し、他のECUが送信したサービスディスカバリメッセージをイーサネットマルチキャストを通じて受信して前記サービスディスカバリに伝達するサービスディスカバリマルチキャストポート;および前記SOME/IPブリッジと他のECU間のデータ通信に使われるサービスエンドポイントポート;をさらに含むことができる。
【0012】
一方、前記サービスエンドポイントポートはTCPプロトコルまたはUDPプロトコルに従うものであり得る。
【0013】
また、前記サービス通信管理者は前記マシンに一つのみ存在することができる。
【0014】
一方、前記スケルトンと前記プロキシは互いに直接連結されず、前記スケルトンまたは前記プロキシは前記サービス通信管理者とIPC(Inter-Process Communication)を通じて通信することができる。
【0015】
一方、本発明の一実施例に係る車両アプリケーション間ダイナミックサービス指向通信を実現するシステムは前記マシンを含む。
【0016】
一方、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス提供開始通報メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関するサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関するサービス情報を前記サービスレジストリに登録する段階;前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス提供開始を通報するメッセージを生成して他のECUに送信する段階;および所定のTTL(Time-to-Live)が満了する場合、SOME/IPによりサービス提供中断を通報するメッセージを生成して前記他のECUに送信する段階;を含む。
【0017】
また、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス提供中断通報メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関するサービス情報が前記サービスレジストリに登録されている場合、前記メッセージに関するサービス情報を前記サービスレジストリから除去する段階;および前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス提供中断を通報するメッセージを生成して他のECUに送信する段階;を含む。
【0018】
また、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートにサービス使用のための検索要請メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関するサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関するサービス情報を前記サービスレジストリに登録する段階;および前記サービス情報の類型がSOME/IPである場合、SOME/IPによりサービス使用のための検索要請メッセージを生成して他のECUに送信する段階;を含む。
【0019】
また、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のIPCポートに実際のサービスの提供や使用のためのメッセージのうちいずれか一つが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記サービスのIDがサービスレジストリに存在する場合、前記メッセージに含まれているデータの前にSOME/IPヘッダーを追加する段階;および前記SOME/IPヘッダーが追加されたメッセージを他のECUに送信する段階;を含む。
【0020】
一方、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス提供開始通報メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関連したサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関連したサービス情報を前記サービスレジストリに登録する段階;を含む。
【0021】
また、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス使用のための検索要請メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関連したサービス情報が前記サービスレジストリに登録されていない場合、前記メッセージに関連したサービス情報を前記サービスレジストリに登録する段階;を含む。
【0022】
また、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスディスカバリマルチキャストポートにSOME/IPプロトコルに従うサービス提供中断通報メッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージを、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに伝達する段階;前記メッセージに関連したサービス情報が前記サービスレジストリに登録されている場合、前記メッセージに関連したサービス情報を前記サービスレジストリから除去する段階;を含む。
【0023】
一方、本発明の一実施例に係る車両アプリケーション間サービス指向通信を仲介するサービス通信管理者のサービスエンドポイントポートに他のECUのサービスインスタンスが送信したSOME/IPメッセージが入力された場合のサービス通信管理者の入力メッセージ処理方法は、前記メッセージが、同一のマシン内で提供されるか使われるサービスの情報を保存するサービスレジストリに登録されたサービスにマッチングされるかどうかを検索する段階;前記メッセージが前記サービスレジストリに登録されたサービスにマッチングされる場合、前記サービスレジストリから前記マッチングされるサービスに該当するアプリケーションのエンドポイントアドレスを受信する段階;前記メッセージと前記アプリケーションのエンドポイントアドレスを前記サービス通信管理者のIPCポートに伝達する段階;および前記IPCポートが自身と連結されている車両アプリケーションに前記メッセージを送信する段階;を含む。
【0024】
一方、本発明の一実施例に係るオートサーアダプティブプラットフォーム上でサービスを提供するアプリケーションであるスケルトンのサービス指向通信方法は、前記スケルトンと同一のマシン内で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者にサービス提供開始通報メッセージを送信する段階;前記サービス通信管理者からサービス要請メッセージを受信する段階;前記サービス要請メッセージのパーシング結果によりメッセージをメソッド呼び出しメッセージ(Requestメッセージ)またはイベントメッセージに対する購読要請メッセージ(SubscribeEventGroupメッセージ)に区分する段階;前記区分の結果、前記サービス要請メッセージが前記Requestメッセージである場合、該当メソッドを呼び出してその結果として生成された応答メッセージを前記サービス通信管理者に送信する段階;前記区分の結果、前記サービス要請メッセージが前記SubscribeEventGroupメッセージである場合、購読者レジストリにメッセージの内容を登録し、前記イベントメッセージの送信条件が到来する時にイベントメッセージを生成して前記サービス通信管理者に送信する段階;およびサービスインスタンス終了条件となる場合、サービス提供中断通報メッセージを生成して前記サービス通信管理者に送信する段階;を含む。
【0025】
一方、本発明の一実施例に係るオートサーアダプティブプラットフォーム上でサービスを使うアプリケーションであるプロキシのサービス指向通信方法は、前記プロキシと同一のマシン内で車両アプリケーション間サービス指向通信を仲介するアプリケーションであるサービス通信管理者にサービス使用のための検索要請メッセージを送信する段階;前記サービス通信管理者から前記メッセージに対する応答を受信する段階;現在使用可能なサービスリストから一つのサービスを選択する段階;サービスの提供を受ける方法を決定する段階;前記サービスの提供を受ける方法がメソッドを明示して呼び出す方法の場合、メソッド呼び出しメッセージ(Requestメッセージ)を生成して前記サービス通信管理者に送信する段階;前記サービスの提供を受ける方法がイベントメッセージに対する購読である場合、イベントメッセージに対する購読要請メッセージ(SubscribeEventGroupメッセージ)を生成して前記サービス通信管理者に送信する段階;前記サービス通信管理者からサービスを提供するメッセージを受信する段階;前記サービスを提供するメッセージをパーシングして区分する段階;前記区分の結果、前記サービスを提供するメッセージがメソッド実行結果メッセージ(Responseメッセージ)である場合、メソッド呼び出し元(method caller)を経てユーザ(user)具現部分に結果を伝達する段階;前記区分の結果、前記サービスを提供するメッセージがイベントメッセージ(Eventメッセージ)である場合、前記イベントメッセージをイベントバッファに保存する段階;およびサービスインスタンス終了条件となる場合、サービス使用中断通報メッセージを生成して前記サービス通信管理者に送信する段階;を含む。
【発明の効果】
【0026】
本発明の一実施例によると、サービス仲介に必要なサービスレジストリ、サービスディスカバリをCMで一元化することによって、スケルトンとプロキシそれぞれがバッファとレジストリを管理する場合に比べてメモリと通信負荷などのアプリケーションの負荷が減少し、スケルトンとプロキシ間に適切なサービスマッチングが速かになされ得る。
【0027】
また、本発明の一実施例によると、他のECUとの通信機能をCMで一元化してアプリケーションが保有するポート数が減少することによって、ポート一個当たりに占有するバッファ、スレッド(thread)等のPOSIX OSの占有するリソースが減少するため、安定性が増大する効果がある。
【0028】
また、本発明の一実施例によると、多数のアプリケーションでそれぞれ具現されるサービスレジストリ、サービスディスカバリを一つのプロセスで取り扱うため、コンパイルする時にプログラムの大きさが減少する効果がある。
【図面の簡単な説明】
【0029】
【
図1】オートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置の構成およびその連結構造を示した図面である。
【
図3a】サービス通信管理者のIPCポートにサービスディスカバリメッセージのうちOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図3b】サービス通信管理者のIPCポートにサービスディスカバリメッセージのうちStopOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図3c】サービス通信管理者のIPCポートにサービスディスカバリメッセージのうちFindServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図4】サービス通信管理者のIPCポートにサービスメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図5a】サービス通信管理者のSOME/IPサービスディスカバリマルチキャストポートにSOME/IPサービスディスカバリOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図5b】サービス通信管理者のSOME/IPサービスディスカバリマルチキャストポートにSOME/IPサービスディスカバリStopOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図6】サービス通信管理者のSOME/IPサービスエンドポイントポートにメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【
図7】スケルトンのサービス指向通信方法を説明するためのフローチャートである。
【
図8】プロキシのサービス指向通信方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0030】
本発明の利点および特徴、そしてそれらを達成する方法は、添付される図面と共に詳細に後述されている実施例を参照すると明確になるであろう。しかし、本発明は以下で開示される実施例に限定されるものではなく互いに異なる多様な形態で具現され得、ただし、本実施例は本発明の開示を完全なものとし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によって定義されるのみである。一方、本明細書で使われた用語は実施例を説明するためのものであり本発明を制限しようとするものではない。本明細書で、単数型は文面で特に言及しない限り複数型も含む。明細書で使われる「含む(comprises)」および/または「含む(comprising)」は言及された構成素子、段階、動作および/または素子は一つ以上の他の構成素子、段階、動作および/または素子の存在または追加を排除しない。以下、本発明に係るオートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置および方法を説明する。
【0031】
図1は、本発明の一実施例に係るオートサーアダプティブプラットフォームで車両アプリケーション間ダイナミックサービス指向通信を実現する装置の構成およびその連結構造を示した図面である。
【0032】
基本的に車両アプリケーション間ダイナミックサービス指向通信を実現するシステムは、一つの車両100に複数のマシン110-1~110-nがポート172、182と車両のイーサネット190を通じて連結される構造を有する。マシン(machine、110-1~110-n)はAPの用語であって、一つのPOSIX OSがポーティングされた(移植された)一つのECUを意味する。ただし、前記システムには少なくとも一つのマシンが含まれるが、マシンではないECUが前記システムに含まれ得、前記マシンではないECU内のアプリケーションが前記システムのマシンにあるアプリケーションにサービスを提供するか前記システムのマシンのアプリケーションのサービスを使うことができる。マシンそれぞれ(110-1~110-nのうち一つ、以下、110で表記)は、スケルトン(skeleton、120)、プロキシ(proxy、140)、サービス通信管理者(Communication Management、以下、CM、150)を含む。スケルトン120はサービスを提供する車両アプリケーションであり、サービス提供者の役割を具現したサービスプロバイダインスタンス(service provider instance)を有するPOSIXプロセスである。プロキシ140はサービスを使う車両アプリケーションであり、サービス使用者役割を具現したサービスコンシューマインスタンス(service consumer instance)を有するPOSIXプロセスである。スケルトン120やプロキシ140は一つのマシン110に複数個で存在することができる。また、一つのアプリケーションがスケルトン120であるとともに、プロキシ140となり得る。CM150は車両アプリケーションのサービス指向通信を仲介するプラットフォームアプリケーションである。CM150は一つのマシン110に一つのみ存在するものと制限される。一つのマシン110に含まれているスケルトン120またはプロキシ140は、同一のマシン110に含まれているCM150とIPC(Inter-Process Communication)を通じて通信する。同一のマシン110に含まれたスケルトン120とプロキシ140は互いに直接的に連結されない。
【0033】
スケルトン120はサービスを提供するための通信ポートであるサービスプロバイダポート(service provider port、122)を有する。スケルトン120はサービスプロバイダポート122を通じて提供するサービスに対する通信設定命令と前記サービスと関連して使われるデータをCM150に送信する。
【0034】
プロキシ140はサービスを使うための通信ポートであるサービスコンシューマポート(service consumer port、142)を有する。プロキシ140はサービスコンシューマポート142を通じて使うサービスに対する通信設定命令と前記サービスと関連して使われるデータをCM150に送信する。
【0035】
CM150は各車両アプリケーションから入ってくる要請を処理するためにIPCポート(Inter-Process Communication port、152)を有する。CM150はIPCポート152を通じて車両アプリケーションから送信したデータを受信し、受信したデータを処理して目標アプリケーションに送信する。
【0036】
CM150は他のECU(同一車両内で物理的に分離された他のECU)と通信するためにSOME/IP SDマルチキャストポート(SOME/IP service discovery multicast port、以下SDマルチキャストポート、172)とSOME/IPサービスエンドポイントポート(SOME/IP service endpoint port、以下サービスエンドポイントポート、182)を有する。前記ポート172、182は車両のイーサネット190に連結される。
【0037】
図2は、本発明の一実施例に係るCM150の構成図である。CM150は
図2に図示された通り、サービスレジストリ(service registry、160)、サービスディスカバリ(service discovery、170)、SOME/IPブリッジ(SOME/IP bridge、180)、IPCポート152、SDマルチキャストポート172、SOME/IPリモートTCPポート(SOME/IP remote TCP port、以下、TCPポート、182a)およびSOME/IPリモートUDPポート(SOME/IP remote UDP port、以下、UDPポート、182b)を含む。TCPポート182aとUDPポート182bはサービスエンドポイントポート182に該当する。
【0038】
CM150は同一のマシン110に存在するスケルトン120とプロキシ140との通信のためのIPCポート152を有する。
【0039】
IPCポート152は同一のマシン110に存在するスケルトン120とプロキシ140との通信のためのポートであり、受信したメッセージの類型がサービスディスカバリメッセージであればこのメッセージをサービスレジストリ160に伝達し、サービスメッセージであればサービスレジストリ160にサービスIDが存在する場合に該当メッセージをSOME/IPブリッジ180に伝達する。
【0040】
サービスレジストリ160はマシン110内のスケルトン120が提供するサービスまたはプロキシ140が使うサービスの情報を保存するデータ構造である。
【0041】
サービスレジストリ160がサービスに対する提供開始通報メッセージ(OfferServiceメッセージ、以下では「サービス提供開始通報メッセージ」ともいう。)またはサービス使用のための検索要請メッセージ(FindServiceメッセージ)をIPCポート152やSDマルチキャストポート172から伝達を受ける場合、該当サービス情報がサービスレジストリ160に登録されているかどうかを確認し、既存のテーブルに登録されていないサービスの場合、テーブルに該当サービスに対する情報を登録する。また、サービスレジストリ160は新しく登録されたサービス情報の類型を判断して、IPCタイプであればサービス登録情報をサービスディスカバリ170に伝達せず、SOME/IPタイプであればサービス登録情報をサービスディスカバリ170に伝達する。
【0042】
サービスレジストリ160はサービス提供中断通報メッセージ(StopOfferServiceメッセージ)を受信する場合、該当サービス情報がサービスレジストリ160に登録されているかどうかを確認し、サービスレジストリ160に登録されていればサービスレジストリ160はこの情報をテーブルから除去し、サービスレジストリ160に登録されていなければ、サービスレジストリ160は前記サービス情報の類型を判断して、IPCタイプであればサービス情報をサービスディスカバリ170に伝達せず、SOME/IPタイプであれば前記サービス情報をサービスディスカバリ170に伝達する。
【0043】
サービスディスカバリ170は、サービスレジストリ160に登録されたサービスが他のECUの車両アプリケーションに提供されるか他のECUの車両アプリケーションを使わなければならない場合、このようなサービス提供/使用に対するメッセージをイーサネットマルチキャスト(ethernet multicast)を通じて送信する。また、サービスディスカバリ170は他のECUに登録されたサービスに関するサービス提供および検索要請メッセージを受信する。このために、サービスディスカバリ170はイーサネットマルチキャストでバインディングされたSDマルチキャストポート172を有する。APのサービス指向通信は多くのサービスが共通のイーサネットマルチキャストにジョイン(join)してなされる。SDマルチキャストポート172はサービスディスカバリ170で生成したサービスディスカバリメッセージを自身と連結されたイーサネットマルチキャストを通じて他のECUに送信し、他のECUが送信したSOME/IPサービスディスカバリメッセージを自身と連結されたイーサネットマルチキャストを通じて受信してサービスディスカバリ170に伝達する。
【0044】
サービスディスカバリ170はSOME/IP SD OfferServiceメッセージを生成して送信した後にTTLが満了したか、SOME/IP SD FindServiceメッセージを生成して送信した後にTTLが満了した場合、該当するサービスのインスタンスを中断する。また、TTLが満了する前であっても、スケルトン120でStopOfferServiceを要請したのであれば、サービスディスカバリ170は該当サービス情報に基づいてSOME/IP SDのStopOfferServiceメッセージを作り、前記メッセージをイーサネットマルチキャストに送信した後、該当サービスのインスタンスを中断する。
【0045】
SOME/IPブリッジ180は登録されたサービスがSOME/IPプロトコルを使ってサービス処理に必要なデータを送受信することを要求する場合、サービスディスカバリ170によって動的に生成されるインスタンスである。SOME/IPブリッジ180は単数はもちろん複数個生成され得る。SOME/IPブリッジ180は他のECUが提供するか他のECUで使うサービスによるデータ通信を担当する。このために一つのSOME/IPブリッジ180はTCPポート182aとUDPポート182bを有する。SOME/IPブリッジ180はサービスディスカバリ170からネットワークエンドポイント情報の伝達を受けると、この情報に基づいてPOSIXのイーサネットソケットであるTCPポート182aとUDPポート182bをオープンする。この時、必要なネットワークエンドポイント情報はSOME/IP基盤のサービスインスタンスが使うIPアドレス、ポート番号、プロトコルの情報である。プロトコルはTCPまたはUDPのみ許容される。
【0046】
またSOME/IPブリッジ180はIPCポート152からサービスメッセージが伝達されると、データの前にSOME/IPヘッダーを追加した後にSOME/IPメッセージをTCPポート182aまたはUDPポート182bに伝達して、前記ポートを通じてSOME/IPメッセージが送信されるようにする。
【0047】
またSOME/IPブリッジ180はTCPポート182aまたはUDPポート182bから他のECUのサービスインスタンスが送信したSOME/IPメッセージの伝達を受けると、伝達されたSOME/IPメッセージがサービスレジストリ160に登録されたサービスにマッチングされるかどうかを検索する。前記メッセージがサービスレジストリ160に登録されたサービスにマッチングされる場合、SOME/IPブリッジ180はサービスレジストリ160からマッチングされるサービスに該当するアプリケーションのエンドポイントアドレスを受信する。SOME/IPブリッジ180は前記メッセージとアプリケーションのエンドポイントアドレスをIPCポート152に伝達することによって、IPCポート152が自身と連結されているスケルトン120やプロキシ140に前記メッセージを送信することができるようにする。
【0048】
図3a、
図3b、
図3c、
図4はCM150のIPCポート152にメッセージが入力された場合の各メッセージの類型と内容によるCM150の処理方法を説明するためのフローチャートである。前記図面の説明に先立ち、IPCポート152で受信するメッセージ類型について説明する。
【0049】
IPCポート152が受信するメッセージ類型は、(1)サービスディスカバリメッセージと(2)サービスメッセージに区分される。(1)サービスディスカバリメッセージは車両アプリケーションがサービスの提供を開始・中断するメッセージであるかまたはサービス使用のために検索を要請するメッセージである。(2)サービスメッセージはサービスが登録された以後、連結されたサービスインスタンスの間で実際のサービスの提供と使用のために送受信するメッセージである。IPCポート152はプロトコルヘッダーを利用して(1)と(2)を区分する。
【0050】
スケルトン120がサービス提供APIを使ってサービスの提供を開始するかまたはサービスの提供を中断する場合、スケルトン120はサービスディスカバリメッセージを生成してCM150に送信する。スケルトン120がサービスの提供を開始する場合はOfferServiceメッセージを生成してCM150に送信し、サービスの提供を中断する場合はStopOfferServiceメッセージを生成してCM150に送信する。
【0051】
プロキシ140がサービス検索APIを使ってサービス検索を開始する場合、プロキシ140はサービスディスカバリメッセージのうちの一つであるFindServiceメッセージを生成してCM150に送信する。
【0052】
IPCポート152はサービスディスカバリメッセージを受信した場合、このメッセージをサービスレジストリ160に伝達する。
【0053】
IPCポート152はサービスメッセージを受信した場合、前記サービスメッセージのサービスIDがサービスレジストリ160にあるかどうかを検索する。もし存在すればSOME/IPブリッジ180に前記サービスメッセージを伝達する。
【0054】
図3aは、本発明の一実施例に係るCM150のIPCポート152にサービスディスカバリメッセージのうちOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0055】
S110段階で、OfferServiceメッセージはサービスディスカバリメッセージであるので、IPCポート152はこのメッセージをサービスレジストリ160に伝達する。
【0056】
S112段階で、サービスレジストリ160はOfferServiceメッセージに関するサービス情報が登録されているかどうかを確認する。
【0057】
S114段階で、OfferServiceメッセージに関するサービス情報がすでにサービスレジストリ160に登録されていれば、このサービスを登録せずに無視する。もしOfferServiceメッセージに関するサービス情報がサービスレジストリ160に登録されていなければ、S116段階を遂行する。
【0058】
S116段階で、サービスレジストリ160はOfferServiceメッセージに関するサービス情報を登録する。提供するサービスのインスタンス明示子、サービスID、インスタンスID、バージョン情報、アプリケーションのネットワークエンドポイント情報をテーブルのタプル(tuple)として登録する。
【0059】
S118段階で、サービスレジストリ160は前記登録されたサービス情報の類型を判断して、IPCタイプであれば登録情報をサービスディスカバリ170に伝達しない。SOME/IPタイプであればS120段階を遂行する。
【0060】
S120段階で、サービスレジストリ160は登録情報をサービスディスカバリ170に伝達する。
【0061】
S122段階で、サービスディスカバリ170が伝達を受けた情報はOfferServiceメッセージから派生したものであるので、サービスディスカバリ170はSOME/IPサービスディスカバリOfferServiceメッセージ(以下、SOME/IP SD OfferServiceメッセージ)を生成する。
【0062】
S124段階で、前記メッセージを処理するために、サービスディスカバリ170はSOME/IPブリッジ180インスタンスを生成する。
【0063】
S126段階で、サービスディスカバリ170はサービスレジストリ160から受けたネットワークエンドポイント情報をSOME/IPブリッジ180に伝達する。
【0064】
S128段階で、SOME/IPブリッジ180は前記ネットワークエンドポイント情報に基づいてPOSIXのイーサネットソケットであるTCPポート182aとUDPポート182bをオープンする。この時、必要なネットワークエンドポイント情報はSOME/IP基盤のサービスインスタンスが使うIPアドレス、ポート番号、プロトコルの情報である。プロトコルはTCPまたはUDPのみ許容される。
【0065】
生成されたSOME/IP SD OfferServiceメッセージの送信/待機は、初期段階(initial wait phase、S130)、繰り返し段階(repetition phase、S132)、主段階(main phase、S134)に分かれて進行される。
【0066】
S130段階で、サービスディスカバリ170はサービスレジストリ160から伝達された情報に明示された時間の間待機した後、SOME/IP SD OfferServiceメッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する。
【0067】
S132段階で、サービスディスカバリ170はサービスレジストリ160から伝達された情報に明示された時間の間待機した後、SOME/IP SD OfferServiceメッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する。
【0068】
S134段階で、サービスディスカバリ170はサービスレジストリ160から伝達された情報に明示された周期によりSOME/IP SD OfferServiceメッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する。
【0069】
S136段階では、明示されたTTLが満了したかどうかを確認して、満了していなければS134段階が引き続き進行される。もし明示されたTTLが満了したのであればS138段階を遂行する。
【0070】
S138段階で、サービスディスカバリ170は、該当サービス情報に基づいてSOME/IPサービスディスカバリStopOfferServiceメッセージ(以下、SOME/IP SD StopOfferServiceメッセージ)を生成し、前記メッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する(S140)。
【0071】
S142段階でサービスディスカバリ170は該当するサービスのインスタンスを中断する。
【0072】
前記明示されたTTLが満了する前であっても、スケルトン120でStopOfferServiceを要請した場合は
図3bに関する説明に従う(S150~S166)。
【0073】
図3bは、本発明の一実施例に係るCM150のIPCポート152にサービスディスカバリメッセージのうちStopOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0074】
S150段階で、StopOfferServiceメッセージはサービスディスカバリメッセージであるので、IPCポート152はこのメッセージをサービスレジストリ160に伝達する。
【0075】
S152段階でサービスレジストリ160はこの情報をテーブルから除去する。
【0076】
S154段階で、サービスレジストリ160は前記サービス情報の類型を判断して、IPCタイプであればサービス情報をサービスディスカバリ170に伝達しない。SOME/IPタイプであればS156段階を遂行する。
【0077】
S156段階で、サービスレジストリ160は前記サービス情報をサービスディスカバリ170に伝達する。
【0078】
S158段階で、サービスディスカバリ170が伝達を受けた情報はStopOfferServiceメッセージから派生したものであるので、サービスディスカバリ170はSOME/IP SD StopOfferServiceメッセージを生成する。
【0079】
S160段階で、サービスディスカバリ170は前記メッセージをSDマルチキャストポート172を通じてイーサネットマルチキャストに送信する。
【0080】
S162段階で、サービスディスカバリ170は該当するサービスのインスタンスを中断する。
【0081】
図3cは、本発明の一実施例に係るCM150のIPCポート152にサービスディスカバリメッセージのうちFindServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0082】
S170段階で、FindServiceメッセージはサービスディスカバリメッセージであるので、IPCポート152はこのメッセージをサービスレジストリ160に伝達する。
【0083】
S172段階で、サービスレジストリ160はFindServiceメッセージに関するサービス情報が登録されているかどうかを確認する。
【0084】
S174段階で、FindServiceメッセージに関するサービス情報がすでにサービスレジストリ160に登録されていれば、このサービスを登録せずに無視する。もしFindServiceメッセージに関するサービス情報がサービスレジストリ160に登録されていなければ、S176段階を遂行する。
【0085】
S176段階で、サービスレジストリ160はFindServiceメッセージに関するサービス情報を登録する。検索対象サービスのインスタンス明示子、サービスID、要求インスタンスID、要求バージョン情報、アプリケーションのネットワークエンドポイント情報をテーブルのタプルとして登録する。
【0086】
S178段階で、サービスレジストリ160は前記登録されたサービス情報の類型を判断して、IPCタイプであれば登録情報をサービスディスカバリ170に伝達しない。SOME/IPタイプであればS180段階を遂行する。
【0087】
S180段階で、サービスレジストリ160は登録情報をサービスディスカバリ170に伝達する。
【0088】
S182段階で、サービスディスカバリ170が伝達を受けた情報はFindServiceメッセージから派生したものであるので、サービスディスカバリ170はSOME/IPサービスディスカバリFindServiceメッセージ(以下、SOME/IP SD FindServiceメッセージ)を生成する。
【0089】
S184段階で、前記メッセージを処理するために、サービスディスカバリ170はSOME/IPブリッジ180インスタンスを生成する。この時、サービスディスカバリ170はサービスレジストリ160から受けたネットワークエンドポイント情報をSOME/IPブリッジ180に伝達する(S186)。
【0090】
S188段階で、SOME/IPブリッジ180は前記ネットワークエンドポイント情報に基づいてPOSIXのイーサネットソケットであるTCPポート182aとUDPポート182bをオープンする。この時、必要なネットワークエンドポイント情報はSOME/IP基盤のサービスインスタンスが使うIPアドレス、ポート番号、プロトコルの情報である。プロトコルはTCPまたはUDPのみ許容される。
【0091】
生成されたSOME/IP SD FindServiceメッセージの送信/待機は初期段階(initial wait phase、S190)、繰り返し段階(repetition phase、S192)、主段階(main phase、S194)に分かれて進行される。
【0092】
S190段階で、サービスディスカバリ170はサービスレジストリ160から伝達された情報に明示された時間の間待機した後、SOME/IP SD FindServiceメッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する。
【0093】
S192段階で、サービスディスカバリ170はサービスレジストリ160から伝達された情報に明示された時間の間待機した後、SOME/IP SD FindServiceメッセージをSDマルチキャストポート172を通じて連結されたイーサネットマルチキャストに送信する。
【0094】
S194段階で、サービスディスカバリ170はSOME/IP SD FindServiceメッセージを送信せずに待機する。
【0095】
S196段階では、明示されたTTLが満了したかどうかを確認して、満了していなければS194段階が引き続き進行される。もし明示されたTTLが満了したのであればS198段階を遂行する。
【0096】
S198段階で、サービスディスカバリ170は該当するサービスのインスタンスを中断する。
【0097】
図4は本発明の一実施例に係るCM150のIPCポート152にサービスメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0098】
S210段階で、IPCポート152は受信されたメッセージがサービスメッセージであればサービスIDがサービスレジストリ160にあるかどうかを検索する。
【0099】
S220段階で、サービスIDがサービスレジストリ160に存在するのであれば、SOME/IPブリッジ180が生成されているはずであるので、S230段階を遂行する。
【0100】
S230段階で、IPCポート152はサービスメッセージをSOME/IPブリッジ180に伝達する。
【0101】
S240段階で、SOME/IPブリッジ180は伝達されたデータの前にSOME/IPヘッダーを追加する。
【0102】
S250段階で、SOME/IPブリッジ180はSOME/IPメッセージをTCPポート182aまたはUDPポート182bに伝達し、前記ポートを通じて他のECUにSOME/IPメッセージを送信する(S260)。
【0103】
図5aは、本発明の一実施例に係るCM150のSDマルチキャストポート172にSOME/IP SD OfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0104】
S310段階で、SDマルチキャストポート172は連結されたイーサネットマルチキャストを通じて他のECUに送信するSOME/IPサービスディスカバリメッセージ(以下SOME/IP SDメッセージ)を受信してサービスディスカバリ170に伝達する。
【0105】
S312段階で、サービスディスカバリ170は受信されたメッセージがSOME/IP SD OfferServiceであればこのメッセージをサービスレジストリ160に伝達する。
【0106】
S314段階で、サービスレジストリ160は前記メッセージに関連したサービス情報が登録されているかどうかを確認する。
【0107】
S316段階で、前記メッセージに関連したサービス情報がサービスレジストリにすでに登録されていれば、このサービスを登録せずに無視する。もし登録されていなければS318段階を遂行する。
【0108】
S318段階で、サービスレジストリ160は前記メッセージに関連したサービス情報を新しく提供されるサービス情報として取り扱ってタプルを作って登録する。
【0109】
以上のS310~S318のメッセージ処理方法は、SDマルチキャストポート172に入力されたメッセージがSOME/IP SD FindServiceの場合にも同様に適用される。
【0110】
図5bは、本発明の一実施例に係るCM150のSDマルチキャストポート172にSOME/IP SD StopOfferServiceメッセージが入力された場合の処理方法を説明するためのフローチャートである。
【0111】
S330段階で、SDマルチキャストポート172は連結されたイーサネットマルチキャストを通じて他のECUに送信するSOME/IPサービスディスカバリメッセージ(以下SOME/IP SDメッセージ)を受信してサービスディスカバリ170に伝達する。
【0112】
S332段階で、サービスディスカバリ170は受信されたメッセージがSOME/IP SD StopOfferServiceであればこのメッセージをサービスレジストリ160に伝達する。
【0113】
S334段階で、サービスレジストリ160は前記メッセージに関連したサービス情報が登録されているかどうかを確認する。
【0114】
S336段階で、前記メッセージに関連したサービス情報がサービスレジストリに登録されていなければこの情報を無視する。もし登録されていればS338段階を遂行する。
【0115】
S338段階で、サービスレジストリ160は前記メッセージに関連した登録されたサービス情報タプルを除去する。
【0116】
図6は、本発明の一実施例に係るCM150のサービスエンドポイントポート182にメッセージが入力された場合の処理方法を説明するためのフローチャートである。TCPポート182aとUDPポート182bはサービスエンドポイントポート182に該当する。
【0117】
S410段階で、サービスエンドポイントポート182は連結されたイーサネットを通じて他のECUのサービスインスタンスが送信したSOME/IPメッセージを受信してSOME/IPブリッジ180に伝達する。
【0118】
S420段階で、SOME/IPブリッジ180は受信したSOME/IPメッセージがサービスレジストリ160に登録されたサービスにマッチングされるかどうかを検索する。前記メッセージがサービスレジストリ160に登録されたサービスにマッチングされる場合、S430段階を遂行する。
【0119】
S430段階で、サービスレジストリ160はマッチングされるサービスに該当するアプリケーションのエンドポイントアドレスをSOME/IPブリッジ180に通報する。
【0120】
S440段階で、SOME/IPブリッジ180は受信したメッセージとアプリケーションのエンドポイントアドレスをIPCポート152に伝達する。
【0121】
S450段階で、IPCポート152は自身と連結されているスケルトン120やプロキシ140に前記メッセージを送信する。
【0122】
図7は、本発明の一実施例に係るスケルトン120のサービス指向通信方法を説明するためのフローチャートである。サービスプロバイダインスタンスを初期化する「初期化」部分、サービス登録と検索が完了した後にサービスデータ通信を処理する「サービス提供」部分およびサービスプロバイダインスタンスの終了を遂行する「終了」部分に大別され得る。
【0123】
「初期化」部分はサービスインスタンスを初期化する部分である。
【0124】
S510段階で、サービスの設定ファイルであるマニフェスト(manifest)を解読する。これを通じて提供するサービスのID、インスタンスのID、サービスのバージョン、サービス情報の類型がIPCであるかSOME/IPであるかを把握することができる。
【0125】
S512段階で、CM150に伝達するOfferServiceメッセージを生成する。
【0126】
S514段階で、スケルトン120がCM150と通信するエンドポイントを設定してオープンする。
【0127】
S516段階で、スケルトン120のサービスプロバイダポート122を通じてOfferServiceメッセージをCM150に送信する。OfferServiceメッセージはサービスディスカバリメッセージであって、アプリケーションがサービスを提供するという意味である。
【0128】
「サービス提供」部分は、CM150がサービス提供に関連したサービスレジストリ160、サービスディスカバリ170が初期化を完了すれば始まる。ただし、提供するサービスの情報の類型がSOME/IPである場合、SOME/IPブリッジ180まで初期化を完了しないと始まらない。サービス提供部分ではCM150からメッセージを受信してプロキシ140が要請したサービスを処理し、結果メッセージをCM150に送信する作業が遂行される。
【0129】
S530段階で、CMからサービスメッセージ(サービスを要請するメッセージ)を受信する。
【0130】
S532段階では受信したメッセージをパーシングする。
【0131】
S534段階で、受信したメッセージはパーシング結果により二つに区分される。最初はメソッド(サービスが提供する関数)を呼び出すRequestメッセージであり、二番目はサービスが一方的に生成して送信するEventメッセージを購読しようとするSubscribeEventGroupメッセージである。受信したメッセージがRequestメッセージである場合はS540を遂行し、SubscribeEventGroupメッセージである場合はS550を遂行する。
【0132】
S540段階で、受信したメッセージを逆直列化する。これを通じてメソッドが提供する機能を使うためのパラメータを分離する。
【0133】
S542段階で、前記パラメータを入力してメソッドを呼び出す。サービスを要請したプロキシ140に対する応答が要求される場合、呼び出されたメソッドはResponseメッセージを生成する。
【0134】
S544段階で、生成されたResponseメッセージを直列化する。
【0135】
S546段階で、前記直列化されたResponseメッセージはスケルトン120のサービスプロバイダポート122を通じてCM150に送信される。
【0136】
S550段階で、購読者レジストリ(subscriber registry)にメッセージの内容を登録する。登録される内容はサービスが提供するEventメッセージを受信できる購読者(subscriber)の情報である。
【0137】
S552段階で、Eventメッセージを送信できるかどうかを判断し、Eventメッセージを送信できればS554段階を遂行し、Eventメッセージを送信できなければS564段階を遂行する。
【0138】
S554段階で、サービスディスカバリメッセージであるSubscribeEventgroupAckメッセージを送信する。
【0139】
S556段階で、購読者にEventメッセージを送信できる条件が到来したかどうかを確認する。前記条件が到来すればS558段階を進行する。
【0140】
S558段階で、Eventメッセージを生成する。Eventメッセージはユーザ(user)が具現したデータを含むことができる。ユーザ(user)は本発明の装置(例えばマシン)を利用する主体を指し、以後にも同じ意味で解釈されるべきである。
【0141】
S560段階で、前記Eventメッセージを直列化する。
【0142】
S562段階で、前記直列化されたEventメッセージをスケルトン120のサービスプロバイダポート122を通じてCM150に送信する。
【0143】
S564段階で、サービスディスカバリメッセージであるSubscribeEventgroupNackメッセージを送信し、該当購読者にEventメッセージをそれ以上送信しない。
【0144】
「終了」部分は、サービスインスタンスを終了する部分である。
【0145】
S570段階で、サービスインスタンスを終了する条件が満たされる場合、StopOfferServiceメッセージを生成する。StopOfferServiceメッセージはサービスディスカバリメッセージであって、サービスの提供を終了するという意味である。
【0146】
S572段階で、スケルトン120のサービスプロバイダポート122を通じてStopOfferServiceメッセージをCM150に送信する。
【0147】
図8は、本発明の一実施例に係るプロキシ140サービス指向通信方法を説明するためのフローチャートである。サービスコンシューマインスタンスを初期化する「初期化」部分、サービス検索が完了した後にサービスデータ通信を処理する「サービス使用」部分およびサービスコンシューマインスタンスの終了を遂行する「終了」部分に大別され得る。
【0148】
「初期化」部分は、サービスインスタンスを初期化する部分である。
【0149】
S610段階で、サービスの設定ファイルであるマニフェスト(manifest)を解読する。これを通じて検索するサービスのID、要求するインスタンスのID、要求するサービスのバージョン、サービス情報の類型がIPCであるかSOME/IPであるかを把握することができる。
【0150】
S612段階で、CM150に伝達するFindServiceメッセージを生成する。
【0151】
S614段階で、プロキシ140がCM150と通信するエンドポイントを設定してオープンする。
【0152】
S616段階で、プロキシ140のサービスコンシューマポート142を通じてFindServiceメッセージをCM150に送信する。FindServiceメッセージはサービスディスカバリメッセージであって、アプリケーションが使おうとするサービスが提供中であるかどうかを検索するという意味である。FindServiceメッセージをCM150に送信した以後、CM150から応答がくるまで待機する。
【0153】
CM150から応答(検索結果)を受信すれば(S618)、S620段階でプロキシハンドラ(proxy handler)は現在使用可能なサービスのリストを整理した後、アプリケーションにサービスの検索の有無と検索されたサービスの項目を伝達する。
【0154】
S622段階で、アプリケーションは使用可能なサービスのうち一つを選択する。
【0155】
「サービス使用」部分は、CM150でのサービス検索とプロキシ140とCM150との連結が完了した状態でサービスレジストリ160、サービスディスカバリ170が初期化を完了すれば始まる。ただし、プロキシ140が使うサービスの類型がSOME/IPの場合、SOME/IPブリッジ180まで初期化を完了しないと始まらない。「サービス使用」部分ではCM150にプロキシ140が必要なサービスを要請するメッセージを送信し、CM150から結果メッセージを受信して処理する作業が遂行される。
【0156】
S630段階では、プロキシ140がサービスの提供を受ける方法によってS640段階やS650段階に分岐する。プロキシ140はメソッド呼び出し元(method caller)を通じてCM150を経由してスケルトン120のメソッドを使うが、二つの方法がある。(1)スケルトン120のメソッドを明示して該当メソッドを呼び出す方法と(2)スケルトン120の特定イベントに対して購読する方法である。(1)、(2)の選択はユーザ(user)がアプリケーションに具現したロジックに従う。(1)を選択する場合はS640段階が遂行され、(2)を選択する場合はS650段階が遂行される。
【0157】
S640段階で、メソッド呼び出し元を通じて呼び出すメソッドの入力パラメータを含ませてRequestメッセージを生成する。
【0158】
S642段階で、生成した前記Requestメッセージを直列化する。
【0159】
S644段階で、前記直列化されたRequestメッセージをプロキシ140のサービスコンシューマポートを通じてCM150に送信する。送信後、メソッド呼び出し元はCMからResponseメッセージが受信されるまで待機する。
【0160】
S650段階で、イベント購読者(event subscriber)を通じて購読しようとするイベントを指定してサービスディスカバリメッセージであるSubscribeEventgroupメッセージを生成する。
【0161】
S652段階で、前記メッセージをプロキシ140のサービスコンシューマポート142を通じてCM150に送信する。
【0162】
S660段階で、CMからサービスメッセージを受信する。
【0163】
S662段階で、受信したメッセージをパーシングする。
【0164】
S664段階で、パーシングしたメッセージを二つに区分してそれにより分岐する。最初は以前にプロキシ140でメソッドに対するリクエストメッセージを送信し、メソッド実行結果であるResponseメッセージを受信する場合である。二番目は購読が設定されたイベントのEventメッセージを受信する場合である。最初の場合はS670を遂行し、二番目の場合はS680を遂行する。
【0165】
S670段階で、Responseメッセージを待機中であるメソッド呼び出し元に伝達する。
【0166】
S672段階で、メソッド呼び出し元はプロキシ140のユーザ具現部分に結果を伝達する。
【0167】
S680段階で、イベントバッファ(event buffer)にEventメッセージをそのまま保存する。
【0168】
S682段階では保存されたEventメッセージを使う。前記Eventメッセージは次の二つの方式でプロキシ140で使われ得る。最初はプロキシ140の具現者が特定時点でイベントバッファに保存されたEventメッセージを抽出して使うことである。イベントバッファは先入先出のデータ構造を有し、Eventメッセージを抽出すれば空きとなる。二番目はプロキシ140の具現者がコールバック関数をバインドすることである。このようにすれば、イベントバッファにEventメッセージが保存されるたびにバインドされたコールバック関数が呼び出され、具現者はこの時点で保存されたイベントメッセージの抽出の有無を決定することができる。
【0169】
「終了」部分は、サービスインスタンスを終了する部分である。
【0170】
S690段階で、サービスインスタンスを終了する条件が満たされる場合、StopFindServiceメッセージを生成する。StopFindServiceメッセージはプロキシ140がサービス使用を中断するという意味である。
【0171】
S692段階で、プロキシ140のサービスコンシューマポート142を通じてStopFindServiceメッセージをCM150に送信する。CM150がStopFindServiceメッセージを受信すれば、サービスレジストリ160、サービスディスカバリ170およびSOME/IPブリッジ180(SOME/IPサービスの場合)に登録されて活性化された関連情報およびインスタンスを解除する。
【0172】
因みに、本発明の実施例に係る構成要素はソフトウェアまたはFPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)のようなハードウェアの形態で具現され得、所定の役割を遂行できる。
【0173】
しかし、「構成要素」はソフトウェアまたはハードウェアに限定される意味ではなく、各構成要素はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。
【0174】
したがって、一例として構成要素はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイおよび変数を含む。
【0175】
構成要素と該当構成要素内で提供される機能は、さらに小さい数の構成要素で結合されたり追加的な構成要素にさらに分離され得る。
【0176】
この時、処理フローチャート図面の各ブロックとフローチャート図面の組み合わせは、コンピュータプログラムのインストラクションによって遂行され得ることが理解できるであろう。これらコンピュータプログラムのインストラクションは汎用コンピュータ、特殊用コンピュータまたはその他のプログラム可能なデータプロセシング装備のプロセッサに搭載され得るので、コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサを通じて遂行されるそのインストラクションが1つまたは複数のフローチャートブロックで説明された機能を遂行する手段を生成することになる。これらコンピュータプログラムインストラクションは特定の方式で機能を具現するために、コンピュータまたはその他プログラム可能なデータプロセシング装備を指向できるコンピュータを利用するか、またはコンピュータ読み取り可能メモリに保存されることも可能であるのでそのコンピュータを利用するか、コンピュータ読み取り可能メモリに保存されたインストラクションは1つまたは複数のフローチャートブロックで説明された機能を遂行するインストラクション手段を内包する製造品目を生産することも可能である。コンピュータプログラムインストラクションはコンピュータまたはその他プログラム可能なデータプロセシング装備上に搭載されることも可能であるので、コンピュータまたはその他プログラム可能なデータプロセシング装備上で一連の動作段階が遂行されてコンピュータで実行されるプロセスを生成して、コンピュータまたはその他プログラム可能なデータプロセシング装備を遂行するインストラクションは、1つまたは複数のフローチャートブロックで説明された機能を実行するための段階を提供することも可能である。
【0177】
また、各ブロックは特定された1つまたは複数の論理的機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を表しうる。また、いくつかの代替実行例では、ブロックで言及された機能が異なる順序で発生することも可能であることにも留意されたい。例えば、連続して図示されている二つのブロックは実質的に同時に遂行されてもよく、またはそのブロックが時々該当する機能により逆順で遂行されてもよい。
【0178】
前述したCM150のポートにメッセージが入力された場合の処理方法、スケルトン120のサービス指向通信方法およびプロキシ140のサービス指向通信方法は、図面に提示されたフローチャートを参照して説明された。簡単に説明するために前記方法は一連のブロックで図示されて説明されたが、本発明は前記ブロックの順序に限定されず、いくつかのブロックは他のブロックと本明細書で図示され記述されたものと異なる順序でまたは同時に起きることもあり、同一または類似する結果を達成する多様な他の分岐、流れの経路、およびブロックの順序で具現され得る。また、本明細書で記述される方法の具現のために図示されたすべてのブロックが要求されない場合もある。
【0179】
以上、本発明の構成について添付図面を参照して詳細に説明したが、これは例示に過ぎず、本発明が属する技術分野の通常の知識を有する者であれば、本発明の技術的思想の範囲内で多様な変形と変更が可能であることは言うまでもない。したがって、本発明の保護範囲は前述した実施例に限定されてはならず、以下の特許請求の範囲の記載によって定められるべきである。
【国際調査報告】