본문으로 건너뛰기

PARA 개요

PARA(PopcornSAR AUTOSAR Runtime for Adaptive Application)는 PopcornSAR가 개발한 Adaptive AUTOSAR(AP) 런타임으로, 표준 AUTOSAR Adaptive Platform R25-11을 대상으로 합니다. 차량용 고성능 ECU에서 동작하는 Adaptive Application이 표준 AUTOSAR AP API(ara::*)를 통해 서비스 지향 통신, 실행 관리, 로깅 등을 사용할 수 있도록 런타임 라이브러리·데몬·설정 체계를 제공합니다.

제공되는 Functional Cluster

PARA는 표준 ara:: 네임스페이스에 대응하는 Functional Cluster 라이브러리(lib/libpara_*.so)로 구성됩니다. 주요 클러스터는 다음과 같습니다.

라이브러리ara:: 네임스페이스역할런타임 데몬
libpara_coreara::coreResult·Future·ErrorCode·컨테이너 등 기반 타입
libpara_comara::com서비스 지향 통신(SOME/IP·DDS·IPC 바인딩)CM
libpara_execara::exec실행 관리(프로세스 수명·상태 보고)EM
libpara_logara::log로깅·트레이싱(DLT 백엔드)(dlt-daemon)
libpara_cryptoara::crypto암호 연산·키 관리·인증서 처리
libpara_diagara::diag진단(UDS 기반 진단 서버)DM
(libpara_com에 포함)ara::iam아이덴티티·접근 관리(매니페스트로 선언하는 접근 제어)
libpara_idsmara::idsm침입 탐지(보안 이벤트 보고·수집)IDSM
libpara_phmara::phm플랫폼 헬스 관리(감시·복구 동작)PHM
libpara_rdsara::rds원시 데이터 스트림(직렬화 없는 바이트 스트림, IEEE 1722)
libpara_smara::sm상태 관리(Function Group 상태 전환)SM
libpara_tsyncara::tsync시간 동기화(동기화된 시간 베이스 제공)TBM

libpara_com은 세 가지 바인딩을 제공합니다. SOME/IPDDS는 네트워크를 통한 서비스 통신에, IPC는 같은 머신 안의 프로세스 간 통신에 사용합니다. 어떤 바인딩을 쓸지는 애플리케이션 코드가 아니라 통신 매니페스트의 service-protocol(someip / dds / ipc)로 서비스 인스턴스마다 선언합니다. DDS 바인딩은 DDS 구현(Fast DDS)을 포함해 빌드한 런타임에서 사용할 수 있습니다.

ara::iam은 자체 라이브러리를 갖지 않습니다. AUTOSAR는 IAM에 대한 애플리케이션용 C++ API를 규정하지 않으며, 접근 권한은 매니페스트에 선언되고 PARA는 통신이 이뤄지는 시점에 libpara_com 안에서 이를 강제합니다.

런타임 동작 모델

PARA 런타임은 매니페스트 기반 기동으로 동작합니다. 머신이 켜지면 EM 이 가장 먼저 올라와 MachineFGStartup으로 전환하고, 이 전환으로 Platform Functional Cluster 데몬이 기동됩니다. 이 모델을 먼저 이해하면 이후 설치·예제·설정 문서가 한결 쉽게 읽힙니다.

데몬이름역할
Execution ManagerEM런타임의 진입점. 매니페스트를 스캔해 의존성 그래프를 만들고 프로세스를 기동/종료합니다.
Communication ManagerCM서비스 지향 통신(서비스 디스커버리, SOME/IP·DDS·IPC 바인딩)을 담당합니다.
Diagnostic ManagerDMUDS 진단 요청을 처리하고 애플리케이션으로 중계합니다.
Intrusion Detection System ManagerIDSM보고된 보안 이벤트를 수집·처리합니다.
Platform Health ManagerPHM프로세스를 감시하고 실패 시 복구 동작을 수행합니다.
State ManagerSMFunction Group 상태 전환을 결정해 EM에 요청합니다. 서비스 레벨의 애플리케이션이므로 구현은 프로젝트마다 달라집니다.
Time Base ManagerTBM다른 ECU와 공유하는 동기화된 시간 베이스를 유지합니다.

이 가운데 실제로 기동되는 데몬은 머신의 매니페스트 선언에 따라 정해집니다.

기동 흐름은 다음과 같습니다.

  1. 환경을 구성하고 EM 을 실행합니다.
  2. EM이 MachineFG(Machine Function Group)를 OffStartup으로 전환합니다.
  3. 각 프로세스는 실행 매니페스트의 state-dependencies로 "어느 Function Group의 어느 상태에서 기동할지"를 선언합니다. MachineFG:Startup에 묶인 Platform Functional Cluster 데몬(CM·DM·SM 등)과 애플리케이션이 기동됩니다.
  4. 즉, 무엇을 언제 띄울지는 코드가 아니라 매니페스트가 결정합니다.

Function Group은 함께 시작/정지되는 프로세스 묶음이자 상태 전환 단위이고, 매니페스트는 그 선언을 담은 JSON 설정입니다. 상세는 Function Group 설정·실행 설정에서 다룹니다.

다음으로