車両サービス インターフェース定義言語(VSIDL) は、プロトコル バッファ上に構築されたドメイン固有言語です。VSIDL は、ソフトウェア定義車両(SDV)のサービス バンドル間のインターフェースとインタラクションを定義するように設計されています。サービスバンドルの詳細については、 サービス ユニットとサービス バンドルをご覧ください。
VSIDL は、SDV エコシステムの低レベルのサービスとやり取りするためのインターフェースを提供します。VSIDL を使用すると、RPC(ユニタリー、クライアント ストリーミング、サーバー ストリーミングを含む)またはデータ トンネルを使用して通信するサービス ユニットを指定できます。 VSIDLC で生成されたコードは、SDV サービス検出によるサービス ユニットの登録を処理します。
追加の構成ファイルを使用すると、VSIDLC がサービス バンドル用に生成するコードを APEX としてパッケージ化できます。APEX は、Orchestrator と SDV ライフサイクル マネージャーによって制御できます。
SDV サービスを実装する
SDV のサービス バンドル間のインターフェースとインタラクションを定義し、デプロイ用の APEX パッケージを作成する大まかな手順は次のとおりです。
- protobuf ファイル(
.proto拡張子のファイル)でデータ構造を定義します。protobuf を使用して、VSIDL で定義されたサービス ユニット間で交換されるデータ構造を定義します。 - VSIDL ファイル(
.vsidl拡張子のファイル)でサービス アーキテクチャを定義します。VSIDL は、サービス バンドルとサービス ユニットを定義するために使用されます。 VSIDL は、protobuf(ステップ 1)で宣言された型を参照します。 - ミドルウェアを生成します。ミドルウェアは、サービスが相互に通信してやり取りするための標準化された方法を提供します。
- Rust でカスタム ビジネス ロジックを実装します。
- 生成されたビジネス ロジック コードとカスタム ビジネス ロジック コードを含むサービス バンドルを、デプロイ用の APEX パッケージにパッケージ化します。
- 自動更新と IDE サポート用にカタログを構成します。
VSIDLC の型システムは、protobuf と VSIDL の 2 つのレベルで動作します。protobuf は、VSIDL で定義されたサービス ユニット間で交換されるデータ構造を定義するために使用されます。このセクションでは、VSIDL と protobuf でデータ構造を定義する方法について説明します。
次のステップ
次に読むとよいドキュメントは次のとおりです。
- protobuf でデータ構造を定義する方法については、データ構造を 定義するに進んでください。
- VSIDL 言語の主な要素については、言語 仕様をご覧ください。