차량 서비스 인터페이스 정의 언어 (VSIDL)은 프로토콜 버퍼를 기반으로 구축된 도메인별 언어입니다. VSIDL은 소프트웨어 정의 차량 (SDV)의 서비스 번들 간 인터페이스와 상호작용을 정의하도록 설계되었습니다. 서비스 번들에 대한 자세한 내용은 서비스 단위 및 서비스 번들을 참고하세요.
VSIDL은 SDV 생태계에서 하위 수준 서비스와 상호작용하는 인터페이스를 제공합니다. VSIDL을 사용하여 RPC(단항, 클라이언트 스트리밍, 서버 스트리밍 포함) 또는 데이터 터널을 사용하여 통신하는 서비스 단위를 지정할 수 있습니다. VSIDLC의 생성된 코드는 SDV 서비스 검색을 사용한 서비스 단위 등록을 처리합니다.
추가 구성 파일을 사용하면 서비스 번들에 대해 VSIDLC가 생성하는 코드를 오케스트레이터와 SDV 수명 주기 관리자가 제어할 수 있는 APEX로 패키징할 수 있습니다.
SDV 서비스 구현
다음은 SDV에서 서비스 번들 간 인터페이스와 상호작용을 정의하고 배포를 위한 APEX 패키지를 만드는 대략적인 단계입니다.
- protobuf 파일 (
.proto확장자가 있는 파일)에 데이터 구조를 정의합니다. protobuf를 사용하여 VSIDL로 정의된 서비스 단위 간에 교환되는 데이터 구조를 정의합니다. - VSIDL 파일 (
.vsidl확장자가 있는 파일)에서 서비스 아키텍처를 정의합니다. VSIDL은 서비스 번들과 서비스 단위를 정의하는 데 사용됩니다. VSIDL은 protobuf (1단계)로 선언된 유형을 참조합니다. - 미들웨어를 생성합니다. 미들웨어는 서비스가 서로 통신하고 상호작용할 수 있는 표준화된 방법을 제공합니다.
- Rust에서 맞춤 비즈니스 로직을 구현합니다.
- 생성된 비즈니스 로직 코드와 맞춤 비즈니스 로직 코드를 포함한 서비스 번들을 배포를 위해 APEX 패키지로 패키징합니다.
- 자동 업데이트 및 IDE 지원을 위해 카탈로그를 구성합니다.
VSIDLC의 유형 시스템은 Protobuf와 VSIDL이라는 두 가지 수준에서 작동합니다. Protobuf는 VSIDL로 정의된 서비스 단위 간에 교환되는 데이터 구조를 정의하는 데 사용됩니다. 이 섹션에서는 VSIDL 및 protobuf에서 데이터 구조가 정의되는 방법을 설명합니다.
다음 단계
다음은 읽어 볼 수 있는 문서입니다.