AAOS SDV の中核にあるのはサービス指向アーキテクチャ(SOA)です。SOA は、システム全体をサービス バンドルと呼ばれる個々のコンポーネントに分解することでモジュール性を提供します。これらのサービス バンドルは、分散システムの安全かつセキュアな動作を確保するために、識別と認証を行う必要があります。
ネイティブの自動車サービス コントローラとレジストリ(サービス ディスカバリ エージェント)は、識別と認証を備えたサービスを容易にするために AAOS SDV Core プロファイル内で実装された分散システムです。
サービス バンドルには、1 つまたは複数の VM に複数のインスタンスを設定できます。各サービス バンドル インスタンスは、サービス ディスカバリ エージェントから車両固有の ID を受け取ります。
サービス バンドル インスタンス ID
サービス バンドルの実行中のインスタンス(OS プロセス)には、車両全体で一意の識別子が 2 つあります。
- 完全修飾されたサービス バンドル インスタンス名(FQIN)
- サービス バンドル インスタンス ID 番号(SID)
FQIN は、OS プロセスの再起動やシステムの再起動後も同じです。参照先のサービス バンドル インスタンスのライフサイクル状態とは無関係に有効です。
SID はサービス バンドル インスタンスの OS プロセスのライフタイムに関連付けられています。そのため、サービス バンドル インスタンスが起動(または再起動)されるたびに、サービス ディスカバリ エージェントは異なる SID を割り当てます。これは予測不可能な不透明な値です。OS プロセス ID と同様に、SID は、参照先のサービス バンドル インスタンスの OS プロセスが停止するとすぐに無効になります。2 つの識別子は同等ではありません。
SID は一時的な識別子であるため、ほとんどの場合、サービス バンドル インスタンスを指定する場合は FQIN を使用します。
ローカル ID
サービス バンドル インスタンスが起動すると、ローカルの Service Discovery Agent に登録されます。このエージェントは、サービス バンドル ID(FQIN と SID)を OS プロセスに割り当てるローカルの権限です。Service Discovery Agent は、Linux ユーザー ID(UID)からローカル サービス バンドル インスタンスを認識します。
リモート識別
サービス バンドル インスタンスは、非対称鍵ペアを作成し、その公開鍵を X.509 証明書の FQIN に関連付けることができます。これを行うには、ローカル サービス ディスカバリ エージェントに証明書署名リクエストを送信します。これは、SDV VM 内のすべてのサービス バンドル インスタンスの認証局です。
ローカル サービス ディスカバリ エージェントによって署名された X.509 証明書とともに、サービス バンドル インスタンスは、車両内のすべてのサービス ディスカバリ エージェントのルート公開鍵のリストも受け取ります。
この情報により、異なる SDV VM にある 2 つのサービス バンドル インスタンスが相互に識別して認証し、安全な TLS 接続を確立できます。