SOA (Service-Oriented Architecture) — 네트워크 상의 통신 프로토콜을 이용해 서비스를 다른 장치에 제공하는 SW 아키텍처. 차량 분야에서는 Vehicle Centralized Architecture와 결합해 기존 시그널 기반 정적 통신의 한계를 극복하는 통신 패러다임 전환을 이끈다.
개념
- 서비스 = 기능(Functionality)의 일부분. 공통 인터페이스 표준과 아키텍처 패턴을 사용.
- 서비스는 새로운 애플리케이션에 신속하게 통합될 수 있음.
- 개발자는 기존 기능의 재개발·복제나 재사용 방법 탐색 부담을 줄일 수 있음.
- 일반적 흐름: 서비스 조회 → 인터페이스 정보 수신 → 해당 기능을 네트워크로 활용.
- IoT 분야 MQTT 등에서 널리 사용 중.
차량 적용의 의미
- 차종·차량 옵션·제어기 제조사·제어기 위치에 무관하게 다양한 서비스 개발 가능.
- Vehicle Computer가 설치된 제어기의 기능·정보를 동적으로 파악·활용.
- 기존 복잡한 기능을 제공하던 제어기는 단계적으로 단순화되어 센서·액추에이터로 역할 축소.
SOME/IP
차량 도메인에서 SOA를 구현하는 대표 미들웨어. 2011년 BMW가 제안했으며, Classic/Adaptive AUTOSAR·GENIVI 등 다양한 환경에서 활용된다. 파일 시스템에 의존하지 않는 서비스 기반 통신을 지원하도록 설계되어 Classic AUTOSAR ECU에서도 동작한다.
→ 헤더 구조, Serialization, 통신 패턴 4종(Req/Res, Fire&Forget, Notification, Field), Service Discovery 등 상세는 IP 참조.
RPC (Remote Procedure Call)
SOA가 의존하는 기본 통신 메커니즘. SOME/IP의 주된 용도 중 하나.
- OS나 HW에 독립적으로 네트워크에 연결된 다른 컴퓨터의 Process(함수)를 원격으로 호출.
- 필요 정보:
- 어떤 함수가 제공되는지 (서비스 목록).
- 호출 시 필요한 파라미터 정의.
- 네트워크로 요청을 보내고 결과를 받는 통신 프로토콜이 필요 → IP가 차량 도메인에서 이 역할을 수행.
Proxy Server
클라이언트의 자원 요청과 서버의 자원 제공 사이에서 중개자 역할을 하는 서버 애플리케이션. RPC 호출의 위치 투명성(location transparency)을 구현하는 일반적 패턴이며, SOME/IP도 이 개념을 차용한다.
Signal Oriented Communication와의 대조
SOA 도입의 동기는 Signal Oriented Communication의 경직성 극복에 있다. (Signal Oriented 상세는 signal-oriented-communication 참조.)
| 축 | Signal Oriented (CAN DB, Fibex) | Service Oriented (SOME/IP) |
|---|---|---|
| 정의 시점 | 차량 개발 시 정적 확정 | 실행 시점에 동적 조회·바인딩 |
| 단위 | 메시지 ID + 시그널 위치·크기 | 서비스 (함수 + 파라미터 정의) |
| 양산 후 변경 | 사실상 불가 | 가능 (서비스 추가·교체) |
| 수신자 관리 | 브로드캐스트, DB 미정의 수신자 존재 가능 | 서비스 구독 모델 |
| 구조 변경 영향 | 시그널 재배치가 인접 시그널에 영향 | 인터페이스 계약 유지 시 내부 구현 자유 |
| 적합 아키텍처 | Domain | Vehicle Centralized |