기본 SOME/IP 변환은 AUTOSAR 서비스와 통합하기 위한 업데이트 가능한 솔루션을 제공하도록 설계되었습니다. 브로커의 주요 과제는 컴파일 시간에 알 수 없는 메시지와 RPC 호출을 변환하는 것이었습니다. 이를 해결하기 위해 런타임 업데이트는 새 단위 유형이 도입되는 방식과 유사하게 SDV 서비스의 동적 추가 또는 업데이트를 가정합니다.
이 동적 변환을 위한 솔루션은 런타임 유형 정보(RTTI)를 기반으로 합니다. 브로커는 설치된 모든 서비스 번들에서 구성을 사용하고 해당 구성의 데이터 스키마를 사용하여 리플렉션 기반 변환을 실행합니다.
RTTI 기반 변환은 유연성을 제공하지만 미리 컴파일된 메서드보다 본질적으로 느립니다. 부하가 많이 걸린 데이터 경로를 최적화하려면 변환을 우회하는 기법을 사용하세요.
대규모의 빈번한 메시지 사용을 지원하기 위해 SDV를 사용하면 변환을 우회하고 SOME/IP 형식의 바이트를 소비자 서비스 번들로 전달할 수 있습니다.
서비스 번들은 SOME/IP 형식의 페이로드를 처리하며, 페이로드를 사용하거나 페이로드를 프로토콜 버퍼로 변환할 수 있습니다.
SOME/IP 매핑 파일의 이벤트에 message_translation_mode: INTERPRET_AS_BYTES를 지정하여 변환을 우회합니다. samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl에서 예시를 확인하세요.
변환 메서드 균형
변환 메서드를 선택할 때는 다음과 같은 균형을 고려하세요.
시스템 상호작용: 다른 SDV 서비스는 원시 형식 세부정보를 알지 못하면 SOME/IP 형식으로 전달된 바이트를 해석할 수 없습니다. 예를 들어 SDV 원격 분석은 이러한 메시지의 개별 필드를 처리할 수 없습니다.
추가 노력: SOME/IP 형식으로 원시 페이로드를 변환하려면 서비스 번들 개발자의 추가 노력이 필요합니다.
라이브러리 생성기
SDV는 SOME/IP 형식을 변환하기 위한 자동 생성기를 제공합니다. 이 생성기는 리플렉션 없이 직접 변환할 수 있도록 사용 가능한 메시지 정의 및 매핑을 기반으로 라이브러리를 만듭니다. 전달된 SOME/IP 바이트를 사용하는 서비스 번들은 생성된 라이브러리를 사용할 수 있습니다.
권장사항: OEM이 프로젝트의 성능 요구사항 내에서 변환할 수 없는 성능에 중요한 이벤트를 식별하는 경우에만 생성기를 사용하세요. 이러한 경우 OEM에는 RTTI 기반 변환에 사용되는 프로토콜 버퍼 정의와 SOME/IP 매핑이 모두 있어야 합니다. 이 동일한 구성이 생성기의 입력으로 사용될 수 있습니다. 자세한 내용은 core_services/tools/someip_translation_generator/ 디렉터리의 README.md 파일을 참고하세요.