AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9f566e4418f7출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
서비스의 서버 측 제공 및 수신되는 메서드 호출 처리에 사용됩니다.
클래스 <SI-Namespace>::skeleton::<SI>Skeleton은 AUTOSAR Adaptive Platform에서 서비스를 제공하기 위한 서버 측 기반 역할을 하며 이벤트, 필드 및 메서드를 미들웨어에 바인딩합니다. 인스턴스 식별자로 인스턴스화된 후, 서비스는 OfferService()을 통해 네트워크의 소비자에게 제공되며 StopOfferService()를 통해 다시 철회될 수 있습니다 [SWS_CM_00101], [SWS_CM_00111]. 구성된 처리 모드에 따라 수신되는 메서드 호출은 이벤트 기반으로 처리되거나 애플리케이션이 폴링을 통해 능동적으로 트리거해야 합니다. 복사 작업이 삭제되어 있으므로 인스턴스의 소유권은 엄격하게 이를 생성한 서비스 애플리케이션에 유지됩니다.
컨텍스트
템플릿 클래스 <SI-Namespace>::skeleton::<SI>Skeleton은 AUTOSAR Adaptive Platform에서 Service Interface를 제공하기 위한 서버 측 엔드포인트를 형성합니다. 애플리케이션 로직과 통신 계층 간의 연결 고리로서 Skeleton은 미들웨어 전용 바인딩을 캡슐화하고 형식화된 인터페이스 요소를 제공합니다. 이를 위해 클래스는 events::<Event>[SWS_CM_99557]를 통한 이벤트, fields::<Field>[SWS_CM_99558]를 통한 필드, triggers::<Trigger>[SWS_CM_99559]을 통한 트리거, <MethodOutArgType>[SWS_CM_11550]을 통한 메서드 출력 매개변수를 위한 멤버 변수를 선언합니다. 해석: 실제 서비스 기능을 제공하기 위해 서비스 애플리케이션은 일반적으로 인터페이스 메서드를 구현하고자 <SI>Skeleton로부터 구체적인 클래스를 파생합니다. 질문 Q-0cd48946e67c75b4 (열림)
수명 주기
Skeleton의 인스턴스화는 인스턴스 할당 및 메서드 호출 처리 모드(ara::com::MethodCallProcessingMode, 기본값 kEvent)를 지정하여 수행됩니다. 유효한 생성자는 ara::core::InstanceSpecifier[SWS_CM_00152], 단일 ara::com::InstanceIdentifier[SWS_CM_00130] 또는 ara::com::InstanceIdentifierContainer[SWS_CM_00153]을 통한 식별자 집합을 수락합니다. 서비스 엔드포인트의 식별성은 고유하므로 복사 생성자 [SWS_CM_00134] 및 복사 대입 연산자 [SWS_CM_11548]는 명시적으로 삭제되어 있습니다(delete). 그러나 이동 생성자 [SWS_CM_00135] 및 이동 대입 연산자 [SWS_CM_11549]를 통해 리소스를 이전할 수 있습니다.
핸들러 구성 및 등록: 서비스를 제공하기 전에 애플리케이션별 핸들러를 등록할 수 있습니다. SetTransportFaultConditionHandler()을 통해 전송 오류 핸들러를 직접 [SWS_CM_00093] 등록하거나 비동기 작업을 위한 전용 실행자(executor)와 함께 등록합니다 [SWS_CM_00094]. 필요한 경우 UnsetTransportFaultConditionHandler()을 통해 제거할 수 있습니다 [SWS_CM_00095]. 종단 간(End-to-End) 오류 처리는 가상 메서드 E2EErrorHandler()를 통해 오버라이드할 수 있습니다 [SWS_CM_10470].
서비스 제공: 서비스 애플리케이션이 OfferService()을 호출합니다 [SWS_CM_00101]. 호출이 성공하면 비어 있는 ara::core::Result<void>을 반환하고 네트워크에 서비스 인스턴스를 활성화합니다.
수신 요청 처리: Skeleton이 MethodCallProcessingMode::kPoll 모드로 인스턴스화된 경우, 애플리케이션은 ProcessNextMethodCall()을 호출하여 대기 중인 클라이언트 호출을 능동적으로 실행해야 합니다 [SWS_CM_00199]. 메서드 호출은 이 스레드의 컨텍스트에서 실행되며, 반환값은 대기 중인 추가 호출이 있는지 여부를 나타냅니다.
서비스 종료: 인스턴스가 파괴되기 전에 StopOfferService()으로 제공을 종료합니다 [SWS_CM_00111].
Skeleton 클래스를 사용할 때는 다양한 오류 시나리오와 사전 조건에 주의해야 합니다:
생성 위반: Grant Enforcement에 의한 권한 부여가 실패하면 생성이 InsufficientPermissionsViolation으로 중단됩니다 [SWS_CM_00130], [SWS_CM_00152], [SWS_CM_00153]. 유효하지 않은 처리 모드를 전달하면 WrongMethodCallProcessingModeViolation이 발생합니다. InstanceSpecifier가 사용되는 경우 모델 불일치 또는 다중 할당으로 인해 InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation 또는 InstanceSpecifierAlreadyInUseViolation 오류가 발생할 수 있습니다 [SWS_CM_00152].
서비스 제공 실패:OfferService()이 실패하면 ara::com::ComErrc의 오류 코드가 반환됩니다 [SWS_CM_00101]: ComErrc::kFieldValueNotInitialized(필드가 사전에 Update()을 통해 초기화되지 않음), ComErrc::kFieldSetHandlerNotSet(필드의 필수 세트 핸들러가 누락됨) 또는 ComErrc::kCommunicationFailure(네트워크 바인딩의 연결 또는 보안 오류).
처리 모드 위반: Skeleton이 kPoll 대신 kEvent 또는 kEventSingleThread로 구성된 경우, ProcessNextMethodCall()을 호출하면 WrongMethodCallProcessingModeViolation이 발생합니다 [SWS_CM_00199].
유효하지 않은 오류 핸들러:SetTransportFaultConditionHandler()에 존재하지 않거나 비어 있는 Callable을 전달하면 InvalidHandlerViolation이 발생합니다 [SWS_CM_00093], [SWS_CM_00094].
E2E 오류 및 데이터 손상: 오류가 있는 메시지를 수신하면 해당하는 ComE2EErrc과 함께 E2EErrorHandler()이 호출됩니다 [SWS_CM_10470]. CRC 오류인 경우 DataID도 손상되었을 수 있으므로 애플리케이션은 전달된 식별자를 신뢰할 수 있는 것으로 간주해서는 안 됩니다.
파괴 오류: Skeleton이 파괴될 때 아직 미해결된 데이터 샘플이 남아 있는 경우 소멸자가 DanglingSamplesViolation으로 중단됩니다 [SWS_CM_11370].
이 가이드는 AUTOSAR Adaptive Platform R25-11 사양 요구사항만을 기반으로 합니다.
Implementation may be overridden by the actual ServiceSkeleton implementation and it is not required to be reentrant. If the E2E error is a CRC error then some parts of the received message are faulty. If this part is the DataID then the E2E error handler is called with a faulty DataID. Consequently, in case of CRC error the server application can not rely on the DataID received by its error handler.
Allows the service to trigger the execution of the next service consumer method call at a specific point of time if the ara::com::MethodCallProcessingMode == kPoll The pending service method (see [SWS_CM_00191] or [SWS_CM_90434]) is executed in the context of the call to ProcessNextMethodCall().
Implementation may be overridden by the actual ServiceSkeleton implementation and it is not required to be reentrant. If the E2E error is a CRC error then some parts of the received message are faulty. If this part is the DataID then the E2E error handler is called with a faulty DataID. Consequently, in case of CRC error the server application can not rely on the DataID received by its error handler.
• If successful: an ara::core::Result containing a ara:: core::Result::value_type • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kFieldValueNotInitialized
rollback_semantics Field value has yet not been initialized via Update() (see [SWS_CM_00128]
ComErrc::kFieldSetHandlerNotSet
rollback_semantics Field SetHandler has not been registered via RegisterSet Handler()
ComErrc::kCommunicationFailure
rollback_semantics The network binding reported a recoverable communications error or a secure communication failure
Request a governed re-review of this record. The record is not changed immediately.
Allows the service to trigger the execution of the next service consumer method call at a specific point of time if the ara::com::MethodCallProcessingMode == kPoll The pending service method (see [SWS_CM_00191] or [SWS_CM_90434]) is executed in the context of the call to ProcessNextMethodCall().
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 34fad791a392출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ProcessNextMethodCall() 메서드는 Skeleton의 서비스 제공자가 폴링 모드에서 수신 메서드 호출을 결정론적으로 처리하는 데 사용됩니다[SWS_CM_00199]. 이 메서드는 Skeleton 인스턴스가 ara::com::MethodCallProcessingMode::kPoll 모드로 구성된 경우에만 독점적으로 사용할 수 있습니다EXP ARAComAPI §2 “Polling”.
이 함수는 noexcept 및 exception safe로 명시되어 있습니다[SWS_CM_00199]. kEvent 또는 kEventSingleThread(으)로 인스턴스화된 Skeleton에서의 호출은 위반(WrongMethodCallProcessingModeViolation)에 해당합니다[SWS_CM_00199]. 해석: noexcept에 의해 일반적인 C++ 예외가 배제되므로, 이러한 위반은 플랫폼 측에서 중대한 런타임 오류로 처리될 것으로 보입니다. 질문 Q-61661dbd6cc37bc7 (열림)
해석: 이 기본 인터페이스는 실행 컨텍스트를 전달받지 않으므로 콜백은 통신 관리의 내부 스레드에서 동기식으로 호출될 것으로 추정됩니다. 질문 Q-e4007fa72de6aa12 (열림) 핸들러 실행이 정의된 스레드 풀 또는 워커에서 이루어져야 하는 경우 ExecutorT&& executor을 갖는 오버로드를 사용해야 합니다 [SWS_CM_00094].
상호 작용
이 등록은 오류 처리를 Skeleton 인스턴스의 모든 메서드에 중앙 집중식으로 바인딩합니다 [SWS_CM_00093]. 이는 ara::com의 상위 오류 처리에 통합됩니다.
Skeleton 메서드는 이 핸들러를 통해 전송 오류를 보고하는 반면, 클라이언트 메서드는 ComErrc::kCommunicationFailure을 갖는 결과 ara::core::Future을 통해 전송 오류를 비동기식으로 알립니다 [SWS_CM_00090].
Skeleton 레벨의 필드 작업(Get/Set)을 위해 별도의 인터페이스 [SWS_CM_00096]이 존재합니다.
Execution Context overload for SetTransportFaultConditionHandler for all methods in a given Skeleton.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9140fdcb385a출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
Skeleton 클래스의 네임스페이스에 있는 템플릿 함수 SetTransportFaultConditionHandler은 서비스 인스턴스 [SWS_CM_00094]의 모든 메서드에 대한 전송 오류 핸들러를 등록하는 데 사용됩니다. 이 함수는 매개변수가 없는 기본 함수 [SWS_CM_00093]에 실행 컨텍스트를 추가하여 확장합니다:
호출 및 매개변수:ara::com::e2e::TransportFaultConditionHandler 타입의 Callable handler 및 유니버설 참조 executor[SWS_CM_00094]이 전달됩니다. 이 Executor 객체에서 모든 비동기 계산 및 콜백 실행이 시작되어야 합니다. 이 함수는 반환값을 갖지 않습니다.
오류 처리: 인터페이스는 noexcept(으)로 선언되어 있고 예외 안전한 것으로 명시되어 있습니다 [SWS_CM_00094]. 전달된 Callable이 존재하지 않거나 null인 경우 InvalidHandlerViolation이 존재합니다 [SWS_CM_00094].
상호작용: 유효 범위는 스켈레톤의 모든 메서드([SWS_CM_00094])를 포괄하는 반면, Field-Get 및 Set 작업에 대해서는 별도의 등록 함수가 제공됩니다([SWS_CM_00096], [SWS_CM_00097]). DDS 네트워크 바인딩에서 구성된 핸들러는 TransportFaultCondition::kSampleRejected과 같은 전송 오류를 보고합니다([SWS_CM_00216]). 반면 클라이언트 측에서는 이러한 오류가 결과 Future 내의 ComErrc::kCommunicationFailure을 통해 신호화됩니다([SWS_CM_00090]).
동시성: 해석: Executor 전달은 통신 계층의 내부 컨텍스트로부터 오류 처리를 분리합니다. 등록은 첫 번째 메서드 호출이 도달하기 전 스켈레톤 초기화 시점에 조기에 수행되는 것이 바람직할 것으로 보입니다. 질문 Q-e56b2a1928cf32ad (열림)
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ee0471348c1b출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
생성자 [SWS_CM_00130]은(는) 구체적인 ara::com::InstanceIdentifier을(를) 기반으로 서비스 스켈레톤을 인스턴스화합니다. 스켈레톤은 분산된 서비스 소비자가 접근할 수 있도록 애플리케이션 측 서비스 구현을 Communication Management의 전송 계층에 연결합니다(ARAComAPI §5.1 “Proxy Skeleton Pattern”).
매개변수 mode을(를) 통해 수신 메서드 호출의 처리 방식이 결정됩니다. 기본값으로는 이벤트 기반 모드 ara::com::MethodCallProcessingMode::kEvent이(가) 지정되어 있습니다([SWS_CM_00130]). 대신 폴링 기반 모드를 선택하면 대기 중인 메서드 호출의 실행이 ProcessNextMethodCall()[SWS_CM_00199]의 호출 컨텍스트에서 동기식으로 수행됩니다.
오류 처리 및 제약 조건
생성자 함수는 noexcept(으)로 선언되어 있으며 C++ 예외를 던지지 않습니다([SWS_CM_00130]). 가능한 위반 사항은 런타임 시스템을 통해 신호화됩니다. 권한 부여 강제(Grant Enforcement)에 의해 생성이 거부되면 InsufficientPermissionsViolation이(가) 발생하고, 유효하지 않은 처리 모드가 전달되면 WrongMethodCallProcessingModeViolation의 결과가 발생합니다([SWS_CM_00130]). 해석: 처리 모드에 대한 유효성 검사는 생성자 실행 중에 즉시 수행될 것으로 보입니다. 질문 Q-80e02c0079757082 (열림)
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9052bf72bafd출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
생성자는 인스턴스 지정자 [SWS_CM_00152]을 기반으로 서비스 스켈레톤을 인스턴스화합니다. 이는 구체적인 서비스 구현을 Communication Management의 전송 계층에 연결하는 역할을 합니다. 매개변수로 ara::core::InstanceSpecifier과 선택적으로 기본값이 kEvent으로 미리 설정된 처리 모드 ara::com::MethodCallProcessingMode가 전달됩니다 [SWS_CM_00152].
오류 처리 및 예외 동작과 관련하여 생성자는 noexcept 및 exception safe로 선언되었습니다 [SWS_CM_00152]. 잘못된 구성이나 모델링 편차의 경우 다음과 같은 위반이 지정됩니다:
실행 컨텍스트에서 식별자를 확인할 수 없거나 PortPrototype을 가리키지 않는 경우 InstanceSpecifierMappingIntegrityViolation[SWS_CM_00152].
매핑 유형과 인터페이스 유형이 일치하지 않는 경우 PortInterfaceMappingViolation 및 ProcessMappingViolation[SWS_CM_00152].
InstanceSpecifier가 이미 사용 중인 경우 InstanceSpecifierAlreadyInUseViolation[SWS_CM_00152].
권한이 불충분한 경우 WrongMethodCallProcessingModeViolation 및 InsufficientPermissionsViolation[SWS_CM_00152].
해석: 생성자가 noexcept으로 선언되었으므로 지정된 위반 사항은 런타임에 발생된 C++ 예외로 전파되지 않고 플랫폼 측 검사 또는 Grant Enforcement에 의해 가로채질 것으로 추정됩니다. 질문 Q-f1a1a0baeb56e482 (열림)
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of the executable, or it refers to a model element other than tegrityViolation a PortPrototype. PortInterfaceMap- The type of mapping does not match the expected type of Port pingViolation Interface: ServiceInterface referenced by a ServiceInstanceToPortPrototypeMapping. ProcessMappingVio- The type of mapping does not match the expected type of Port lation Interface
InstanceSpecifier- The constructor was called with an Instance Specifier already AlreadyInUseViola- tion WrongMethodCall- Wrong processing mode passed to constructor ProcessingModeVio- lation InsufficientPer- Refused by Grant Enforcement missionsViolation
Parameter (in)
Parameter
Beschreibung
instanceSpec
The specifier of a specific instance of a service.
mode
Mode (as per [SWS_CM_00301]) for processing incoming service method invocations. Default argument is kEvent.
Request a governed re-review of this record. The record is not changed immediately.
이 함수는 noexcept(으)로 선언되어 있으며 예외 안전(exception safe)으로 명시되어 있습니다 [SWS_CM_00153]. 생성 중 발생할 수 있는 위반 사항으로는 잘못된 처리 모드를 전달할 때의 WrongMethodCallProcessingModeViolation 및 권한 검사(Grant Enforcement)가 실패할 때의 InsufficientPermissionsViolation이(가) 있습니다 [SWS_CM_00153].
mode에 대해 폴링 모델(kPoll)이 구성된 경우, 서버 애플리케이션은 ProcessNextMethodCall()을(를) 호출하여 자체 스레드 컨텍스트에서 보류 중인 메서드 호출을 동기식으로 처리해야 합니다 [SWS_CM_00199]. 스켈레톤 클래스의 복사 생성자는 삭제되어 있습니다(delete) [SWS_CM_00134]. 반면 이동 생성자를 통한 이동은 지원됩니다 [SWS_CM_00135].
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5ee7b8c6b839출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
가상 소멸자 ~<SI>Skeleton()[SWS_CM_11370]은 서비스 스켈레톤 인스턴스의 수명 주기를 종료합니다. 서비스 스켈레톤은 생성된 아티팩트로서 구체적인 서비스 구현을 Communication Management의 전송 계층과 연결하여 서비스 소비자가 제공된 메서드와 기능에 도달할 수 있도록 합니다(ARAComAPI §5.1 “Proxy Skeleton Pattern”).
소멸은 파생된 구현 클래스가 해제될 때 동기식으로 발생합니다. 메서드는 매개변수를 사용하지 않으며 반환값을 선언하지 않습니다. [SWS_CM_00130] 또는 [SWS_CM_00152]과 같은 스켈레톤의 생성자와 달리 소멸자는 사양에서 명시적으로 not exception safe로 분류되어 있습니다 [SWS_CM_11370].
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문