모듈 ara::ucm — Update and Configuration Management
모듈 가이드AI 생성
Adaptive Platform에서 소프트웨어 패키지의 안전한 전송, 검증 및 활성화를 관리합니다.
Adaptive Platform에서 소프트웨어 패키지의 안전한 전송, 검증 및 활성화를 관리합니다.
Functional Cluster Update and Configuration Management는 Adaptive 머신에서의 소프트웨어 패키지의 트랜잭션 설치, 검증 및 활성화를 제어합니다(AUTOSAR_AP_EXP_SWArchitecture 138쪽). 이를 위해 서비스 인터페이스 PackageManagement은(는) 데이터 전송, 패키지 처리, 그리고 이후 Activate을(를) 통한 전환으로 구성된 3단계 파이프라인을 구현합니다([SWS_UCM_00352]). 오류가 발생하거나 종속성이 누락된 경우, Rollback 및 RevertProcessedSwPackages과(와) 같은 표준화된 메커니즘을 통해 이전 시스템 상태로의 안전한 복구가 보장됩니다([SWS_UCM_00350], [SWS_UCM_00353]).
Update and Configuration Management(UCM)은 ara::com을(를) 통해 서비스 지향 인터페이스 PackageManagement을(를) 제공하는 AUTOSAR Adaptive Platform의 데몬 기반 Functional Cluster입니다([SWS_UCM_00361], AUTOSAR_AP_EXP_SWArchitecture 138쪽). UCM은 OTA 클라이언트, 진단 애플리케이션 또는 차량 전체의 Vehicle Update and Configuration Management(V-UCM)을 위한 로컬 실행 기관 역할을 하며, 멀티 ECU 구성에서는 GetId을(를) 통한 차량 전역 고유 인스턴스 식별자를 통해 주소 지정됩니다([SWS_UCM_00343], TPS_ManifestSpecification 631쪽).
업데이트 프로세스는 데이터 전송, 처리 및 활성화의 세 단계로 수행됩니다(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 136쪽). 소프트웨어 패키지는 TransferStart, TransferData, TransferExit을(를) 통해 언제든지 블록 단위로 스트리밍되거나 RegisterSoftwarePackage을(를) 통해 기존 URI 경로로 등록될 수 있습니다([SWS_UCM_00344], [SWS_UCM_00345], [SWS_UCM_00346]). 더 이상 필요하지 않은 전송은 DeleteTransfer을(를) 사용하여 제거할 수 있습니다([SWS_UCM_00348]).
시퀀스 다이어그램: 블록 단위 스트리밍 또는 직접 URI 등록을 통한 소프트웨어 패키지 전송. 출처: [SWS_UCM_00344], [SWS_UCM_00345], [SWS_UCM_00346], [SWS_UCM_00347], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 136쪽, AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 137쪽.
처리는 ProcessSwPackage(으)로 트리거되며, 이때 UCM은 패키지 매니페스트와 서명을 검사하고 대상 클러스터의 압축을 풀며 진행 상황을 상태 필드 CurrentStatus 및 GetProgress을(를) 통해 표시합니다([SWS_UCM_00349], [SWS_UCM_00360], [SWS_UCM_00361]). 준비가 성공적으로 완료되면 Activate은(는) State Management 및 Execution Management와의 조율을 거쳐 새 클러스터로 전환하고, 그 후 Finish이(가) 임시 소스 데이터를 정리합니다([SWS_UCM_00352], [SWS_UCM_00354], AUTOSAR_AP_EXP_PlatformDesign 77쪽).
시퀀스 다이어그램: 활성화, 플랫폼 상태 전이 및 소프트웨어 패키지 정리. 출처: [SWS_UCM_00352], [SWS_UCM_00354], AUTOSAR_AP_EXP_PlatformDesign 77쪽.
오류가 있는 처리는 kProcessingFailed 상태로 이어지며, 불완전한 캠페인은 활성화 전에는 RevertProcessedSwPackages을(를) 통해, 전환 실패 후에는 Rollback을(를) 통해 트랜잭션 방식으로 초기 상태로 롤백됩니다([SWS_UCM_00350], [SWS_UCM_00353], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 38쪽). 상태 검사 및 감사에는 GetSwClusterInfo, GetSwClusterChangeInfo 및 GetHistory이(가) 사용됩니다([SWS_UCM_00355], [SWS_UCM_00356], [SWS_UCM_00357]).
플랫폼 통합에서의 역할 및 기능적 시스템 경계
Functional Cluster Update and Configuration Management(UCM)은 머신 레벨에서 애플리케이션 및 플랫폼 소프트웨어의 안전한 트랜잭션 업데이트, 설치 및 제거를 담당하는 AUTOSAR Adaptive Platform의 핵심 플랫폼 컴포넌트를 구성합니다(AUTOSAR_AP_EXP_SWArchitecture 138쪽). 기술적으로 UCM은 시스템 전역 백그라운드 서비스(daemon-based)(으)로 구현되며, 기본 ara::com 서비스 인터페이스 PackageManagement을(를) 통해 핵심 기능을 제공합니다([SWS_UCM_00361], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 90쪽). 이를 사용하는 엔티티에는 차량 내부 Over-the-Air 클라이언트(OTA 클라이언트), Diagnostic Management를 통한 진단 테스터, 그리고 Vehicle Update and Configuration Management(V-UCM)과 같은 상위 코디네이터가 포함됩니다(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 17쪽).
다단계 차량 아키텍처 내에서 UCM은 로컬 실행 기관(UCM Subordinate) 역할을 수행하는 반면, 차량 중앙 V-UCM은 여러 제어 장치에 걸친 소프트웨어 기반 캠페인을 오케스트레이션합니다(SWS_VehicleUpdateAndConfigurationManagement 16쪽, AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement 12쪽). 중앙 오케스트레이터가 서로 다른 머신에 분산된 여러 UCM 인스턴스를 주소 지정할 수 있도록, 각 인스턴스는 메서드 GetId을(를) 통해 고유 식별자를 제공합니다([SWS_UCM_00343]). 이 식별자는 매니페스트 지침에 따라 차량 전체에서 머신별로 고유하게 구성되어야 합니다(TPS_ManifestSpecification 631쪽).
컨텍스트 다이어그램: Adaptive Platform 내 UCM 데몬의 기능적 임베딩 및 클라이언트와 플랫폼 클러스터 간의 상호 작용. 출처: AUTOSAR_AP_EXP_SWArchitecture 138쪽, AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 17쪽, SWS_VehicleUpdateAndConfigurationManagement 16쪽.
소프트웨어 패키지의 제공 및 전송
소프트웨어 업데이트의 수명 주기는 기본적으로 데이터 전송(Data Transmission), 패키지 처리(Processing), 활성화(Activation)의 세 가지 매크로 단계로 구분됩니다(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 136쪽). UCM의 핵심 아키텍처 특성은 내부 처리 및 패키지 관리 상태로부터 데이터 전송을 분리하는 것입니다. 소프트웨어 패키지는 정상 운영 중 언제든지 머신으로 전송될 수 있습니다(SWS_UpdateAndConfigurationManagement 38쪽).
소프트웨어 패키지 제공을 위해 인터페이스 PackageManagement은(는) 상호 보완적인 두 가지 메커니즘을 정의합니다:
- 블록 단위 스트리밍: 클라이언트는 총 크기를 바이트 단위로 지정하여
TransferStart을(를) 호출함으로써 전송을 시작하고, 고유한TransferIdType및 최대 허용 블록 크기를 수신합니다([SWS_UCM_00345]). 이후 데이터 프래그먼트는TransferData및 순차적 블록 카운터를 사용하여 순차적으로 전송됩니다([SWS_UCM_00346], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 136쪽). 메서드 호출TransferExit이(가) 공식적인 완료를 형성합니다([SWS_UCM_00347]). - URI 기반 등록: 패키지가 이미 UCM 외부에서(예: 백그라운드 다운로드 관리자 또는 로컬 파일 시스템의 사전 저장을 통해) 제공된 경우, 클라이언트는 표준화된 URI 경로를 지정하여
RegisterSoftwarePackage을(를) 통해 패키지를 등록할 수 있습니다([SWS_UCM_00344], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 137쪽).
두 경우 모두 UCM은 패키지에 고유한 TransferId을(를) 할당하며, 이후의 모든 작업은 이를 통해 참조됩니다. 전송되었지만 아직 처리되지 않은 패키지는 취소 또는 메모리 정리 시 DeleteTransfer을(를) 사용하여 임시 스토리지에서 명시적으로 제거할 수 있습니다([SWS_UCM_00348]).
시퀀스 다이어그램: 블록 단위 스트리밍 또는 직접 URI 등록을 통한 소프트웨어 패키지 전송. 출처: [SWS_UCM_00344], [SWS_UCM_00345], [SWS_UCM_00346], [SWS_UCM_00347], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 136쪽, AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 137쪽.
로컬 UCM에서의 처리 및 검증
전송 또는 등록이 성공적으로 완료된 후, 클라이언트는 메서드 ProcessSwPackage을(를) 통해 패키지 처리를 트리거합니다([SWS_UCM_00349]). 처리에는 소프트웨어 클러스터 추출, 매니페스트 읽기, 무결성 및 진위 검사, 클러스터 종속성의 정적 유효성 검사가 포함됩니다(EXP_SWArchitecture 185쪽). 단일 소프트웨어 패키지는 Adaptive Applications의 실행 파일, 운영 체제 또는 펌웨어 업데이트, 구성 및 캘리브레이션 데이터를 캡슐화할 수 있습니다(SWS_UpdateAndConfigurationManagement 27쪽).
ProcessSwPackage 호출은 서비스 필드 CurrentStatus을(를) kProcessing 상태로 전환합니다([SWS_UCM_00361], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 123쪽). 클라이언트는 이 필드를 구독하거나 쿼리 메서드 GetProgress을(를) 통해 현재 진행 상황을 모니터링할 수 있습니다([SWS_UCM_00360]). 또한 GetSwPackages을(를) 통해 UCM에 현재 알려진 모든 소프트웨어 패키지 및 처리 상태를 조회할 수 있습니다([SWS_UCM_00359]). 실행 중인 시간이 많이 걸리는 처리 단계는 필요한 경우 Suspend(으)로 중단하고 나중에 Resume을(를) 사용하여 재개할 수 있습니다([SWS_UCM_00397], [SWS_UCM_00398]). 처리가 취소된 경우 Cancel을(를) 통해 해당 프로세스를 통제된 방식으로 중지할 수 있습니다([SWS_UCM_00351]).
시퀀스 다이어그램: 상태 전이 및 진행률 모니터링을 포함한 패키지 처리. 출처: [SWS_UCM_00349], [SWS_UCM_00360], [SWS_UCM_00361], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 123쪽.
활성화 워크플로 및 플랫폼 상태 변경
캠페인에 지정된 모든 패키지가 성공적으로 처리되면, 클라이언트는 Activate의 동기 호출을 통해 새 소프트웨어 클러스터의 활성화를 시작합니다([SWS_UCM_00352]). 이에 대한 전제 조건은 UCM이 일관된 유휴 상태에 있고 활성 처리 또는 취소 작업이 실행 중이지 않아야 한다는 것입니다(EXP_SWArchitecture 185쪽). UCM은 활성화 단계를 State Management(SM) 및 Execution Management(EM)과 긴밀하게 조율합니다. 이전 버전의 실행 중인 프로세스가 질서 있게 종료되고, 영속성 데이터 구조가 마이그레이션되며, 새 애플리케이션 인스턴스가 시작됩니다(AUTOSAR_AP_EXP_PlatformDesign 77쪽).
Adaptive Platform의 매니페스트 메타모델은 다단계 활성화 단계를 지원하므로(SoftwarePackageStep), 패키지 처리 순서를 준비 및 실제 전환 시점(activationSwitch=True)과 유연하게 분리할 수 있습니다(AUTOSAR_TPS_ManifestSpecification 642쪽). 새 소프트웨어 버전의 전환 및 검증이 성공적으로 완료된 후 클라이언트는 Finish(으)로 캠페인을 완료합니다([SWS_UCM_00354]). 이 호출은 최종 정리를 수행하고 임시 스토리지에서 소스 패키지를 삭제하며 소프트웨어 클러스터를 영구 상태로 전환합니다(EXP_SWArchitecture 138쪽).
시퀀스 다이어그램: 활성화, 플랫폼 상태 전이 및 소프트웨어 패키지 정리. 출처: [SWS_UCM_00352], [SWS_UCM_00354], AUTOSAR_AP_EXP_PlatformDesign 77쪽.
클러스터 수명 주기, 쿼리 API 및 감사 이력
소프트웨어 클러스터(SwCluster)는 명확히 정의된 수명 주기를 갖습니다. ProcessSwPackage을 통한 성공적인 처리 후, 새로 추가된 클러스터는 kAdded 상태로 전이하는 반면 업데이트된 클러스터는 kUpdating 상태를 취합니다(SWS_UpdateAndConfigurationManagement 24쪽). 활성화 후 최종적으로 Finish를 호출해야만 이러한 클러스터가 안정적인 프로덕션 상태인 kPresent으로 전환됩니다(SWS_UpdateAndConfigurationManagement 24쪽). 소프트웨어 패키지 자체에 대해서는 분리된 상태 머신들이 존재합니다. TransferState(상태 kTransferring, kTransferred) 및 ProcessingState(상태 kReady, kProcessing, kProcessed, kProcessingFailed)은 전체 패키지의 사전 버퍼링 없는 순수 스트리밍 시나리오도 허용합니다(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 38쪽).
런타임에 UCM은 시스템 검사를 위한 포괄적인 정보 인터페이스를 제공합니다.
GetSwClusterInfo은 버전 식별자([SWS_UCM_00357])와 함께kPresent상태에 있는 현재 활성 상태인 모든 소프트웨어 클러스터의 목록을 제공합니다.GetSwClusterChangeInfo은 최종 활성화 전에 보류 중인 모든 변경 사항(추가, 업데이트 또는 제거할 클러스터)을 보고합니다([SWS_UCM_00356]).GetSwClusterManifestInfo을 통해 특정 설치된 소프트웨어 클러스터의 매니페스트 세부 정보를 목표에 맞게 조회할 수 있습니다([SWS_UCM_00358]).GetHistory은 차량 플릿 관리에서 빈틈없는 추적을 위해 정의된 시간 간격 내의 모든 UCM 작업에 대한 연대기적 감사 로그(Audit Trail)를 읽어올 수 있도록 합니다([SWS_UCM_00355], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 86쪽).
상태 다이어그램: 소프트웨어 패키지의 데이터 전송 및 처리를 위한 분리된 상태 머신. 출처: AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 38쪽, AUTOSAR_SWS_UpdateAndConfigManagement 20쪽.
상태 다이어그램: 준비부터 최종 활성화까지의 소프트웨어 클러스터 수명 주기. 출처: SWS_UpdateAndConfigurationManagement 24쪽, AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 87쪽.
오류 발생 시 동작 및 트랜잭션 보장
모든 작동 조건에서 ECU의 기능 안전성과 시스템 안정성을 보장하기 위해, UCM은 엄격한 일관성 검사를 강제하고 업데이트 프로세스의 각 단계에 대한 폴백 메커니즘을 제공합니다. 패키지 처리 중 유효성 검사 또는 설치에 실패하면 해당 패키지는 kProcessingFailed 상태로 전이합니다(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 38쪽). 활성화 전에 이미 처리된 패키지를 폐기해야 하는 경우, RevertProcessedSwPackages는 모든 임시 파일 및 구성 변경 사항을 일괄적으로 롤백합니다([SWS_UCM_00350]).
해결할 수 없는 종속성(kDependencyMissing), 메모리 할당 실패(kPersistencyAllocationFailed) 또는 State Management와의 업데이트 세션 오류([SWS_UCM_00352]) 등으로 인해 활성화 단계 중에 오류가 감지되면, UCM은 활성화를 중단합니다. 이러한 오류 발생 시 Rollback 메서드는 전체 플랫폼을 패키지 처리가 시작되기 전의 정확한 상태로 되돌립니다([SWS_UCM_00353]). 해석: 여기서 UCM은 데이터 손실 없이 변경되지 않은 이전 버전을 다시 작동시키기 위해 A/B 파티션이나 파일 시스템 스냅샷과 같은 중복 스토리지 구조를 활용할 것으로 보입니다(AUTOSAR_AP_EXP_SWArchitecture 138쪽). 질문 Q-8d85be7343a9aace (열림)
인터페이스 수준에서 허용되지 않는 호출(예: 패키지가 누락된 경우의 활성화 시도 또는 활성 작업 중의 병렬 호출)은 오류 코드 kOperationNotPermitted을 통해 결정론적으로 거부됩니다([SWS_UCM_00347], [SWS_UCM_00352]). 해석: UCM은 파티션 전환 시 경쟁 조건(Race Condition)을 방지하기 위해 진행 중인 활성화 또는 롤백 작업 중 모든 동시 수정 호출을 엄격히 차단할 것으로 보입니다(EXP_SWArchitecture 185쪽). 질문 Q-60859031e6230a65 (열림) UCM은 유효하지 않거나 알 수 없는 세션 식별자에 대해 애플리케이션 오류 kTransferIdInvalid로 응답합니다([SWS_UCM_00348], [SWS_UCM_00351]).
더 자세한 증거
UCM의 아키텍처와 서비스 지향적 임베딩은 다음 핵심 사양에 구속력 있게 명시되어 있습니다.
PackageManagement서비스 인터페이스 및 전송 프로토콜: [SWS_UCM_00345], [SWS_UCM_00346], [SWS_UCM_00347], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 85쪽.- 처리, 상태 전이 및 오류 처리: [SWS_UCM_00349], [SWS_UCM_00350], [SWS_UCM_00352], [SWS_UCM_00353], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 38쪽.
- 상태 검사, 소프트웨어 클러스터 데이터 모델 및 이력: [SWS_UCM_00355], [SWS_UCM_00356], [SWS_UCM_00357], AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 86쪽, AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 87쪽.
- Multi-ECU 조정 및 Vehicle UCM과의 상호작용: [SWS_UCM_00343], SWS_VehicleUpdateAndConfigurationManagement 16쪽, TPS_ManifestSpecification 631쪽.
본 가이드는 AUTOSAR Adaptive Platform 릴리스 R25-11의 규범적 요구사항 및 아키텍처 아티팩트만을 기반으로 합니다.
service method: 20 service field: 1
서비스 인터페이스
PackageManagement서비스 인터페이스
PackageManagement주제 맵
이 릴리스에 대한 요소 데이터가 없습니다
서비스 인터페이스
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
서비스 인터페이스(ara::com 모델링)
- PackageManagement 21 Mitglieder
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문