SW/Autosar

Adaptive Autosar Architecture( 구조)

얇은생각 2018. 11. 13. 13:32
반응형

ARA

Adaptive Applications (AA) ARA, AUTOSAR 런타임을 기반으로 작동합니다. ARA Foundation 또는 Services 속하는 Functional Clusters 제공하는 응용 프로그램 인터페이스로 구성합니다. Foundation AP Service 기본 기능을 서비스합니다. 모든 Adaptive Applications 다른 Adaptive Applications 서비스를 제공할 있습니다. Functional Clusters 인터페이스는 Foundation Services 인터페이스 하나입니다. 지정된 C++ 인터페이스와 AP 향후 지원할 다른 언어 바인딩을 제공하고 있습니다. ARA 라이브러리를 포함하여 ARA 인터페이스 아래에는 ARA 아닌 다른 인터페이스를 사용하여 Adaptive Platform 사양을 구현할 있습니다. Adaptive Platform 구현한 디자인에 따라서 유동적으로 변할 있습니다.

 

AP 아키텍처

 

Adaptive Platform 구조에 대한 나은 서비스를 제공하기 위해서 기능적 클러스터를 포함시키고 있습니다. 그림에 표현되지 않은 기능 클러스터는 향후에 추가 있습니다.

 

 

언어 바인딩, C ++ 표준 라이브러리 POSIX API

API 언어 바인딩은 C++ 기반으로 하고 있습니다. C++ STL ARA 일부로도 사용될 있습니다. OS API 관해서는, PSE51인터페이스만 ARA 일부로 사용할 있습니다. POSIX 표준의 단일 프로세스 프로파일을 일부로 사용가능한 것입니다. PSE1 POSIX 프로그램에 대한 이식성을 제공합니다. 응용프로그램 간의 통신을 자유로워지기 위해 선택하였습니다.  C++ STL POSIX 기반 많은 인터페이스가 포함되어 있습니다. C++ STL 스레드 스케줄링 정책 설정과 같은 모든 PSE51 기능을 다루지 않고 있습니다. 따라서 인터페이스의 적절한 결합을 통한 사용이 필요로 경우가 있을 있습니다.

 

응용 프로그램 시작 종료

응용 프로그램의 수명 주기는 Execution Manager 관리합니다. 응용 프로그램 실행은 Execution Manager 기능을 활용하여 관리합니다. 시스템을 통합하거나 런타임에 응용프로그램을 시작할 때에는 적절한 설정이 필요합니다. 사실, Execution Manager 관점에서 EM 자체를 제외하고 모두 동인한 방식으로 실행합니다. 아래 그림은 Adaptive Platform 내부와  다양한 응용 프로그램을 보여주고 있습니다.

 


응용 프로그램

 

애플리케이션이 시작하거나 종료하는 명령은 Execution Manager 결정하는 것이 아닙니다. State Management라는 다른 Functional Cluster 기반으로 Execution 명령을 보냅니다. 명령에 따라 시스템 상태를 조정하고 여러 가지 시스템 동작을 제어하는 것입니다.  

 

응용 프로그램 상호 작용

Adaptive Applications들의 통신에서 PSE51 IPC 포함하지 않습니다. Adaptive Applications간에 통신하는 직접적인 인터페이스는 없는 것입니다. Communication Manager 유일한 인터페이스라고 보시면 됩니다. Communication Manager 내부 시스템 전부에 서비스 지향 통신을 제공합니다. Communication Manager 서비스, 클라이언트 응용 프로그램의 전개에 관계 없이 서비스를 요청하고 응답하며 라우팅을 처리한다고 보시면 됩니다. 다른 ARA 인터페이스는 Adaptive Applications간의 통신을 내부적으로 트리거 있습니다. 하지만 통신 인터페이스가 아니라 ARA 인터페이스가 제공하는 기능의 부산물이라는 것을 인지해야 합니다.

 

비표준 인터페이스

다른 표준 기능들과 충돌하지 않고 안전과 보안 요구사항을 준수한다는 전제하에 모든 비표준 인터페이스가 사용가능합니다. 하지만 다른 Adaptive Platform 구현에 대한 소프트웨어 이식성에 영향을 미칠 있습니다. 따라서 이러한 사용은 최소화하도록 노력해야 합니다.

 

OS, processes, and threads

Adaptive Platform 운영체제는 POSIX OS 기능을 제공해야 합니다. Adaptive Applications 자체적으로 메모리 논리 공간과 이름 공간을 사용하면서 독립적인 프로세스로 사용됩니다. 단일 Adaptive Application 여러 프로세스를 포함 가능합니다. 단일 Adaptive Platform 인스턴스에 배포를 하거나 여러 Adaptive Platform 인스턴스에 배포 가능합니다. Functional Clusters 역시 프로세스로 개발됩니다. Functional Clusters 단일, 다중 프로세스로 개발 있습니다. 모든 프로세스는 단일 스레드, 다중 스레드 프로세스 하나입니다. ARA 기반으로 운영하는 Adaptive Applications라면 PSE51 사용해야 것입니다. 프로세스가 만약 Functional Cluster라면 OS 인터페이스를 자유롭게 사용가능합니다. Adaptive Platform Adaptive Application 하나 이상의 스레드를 포함하는 프로세스로 개발됩니다. 파티셔닝은 개발 방식에 따라 달라지지만 이러한 특징은 프로세스 간에 차이는 없습니다. 따라서 프로세스는 IPC 또는 다른 OS 기능을 통해 통신합니다. Adaptive Application 프로세스는 IPC 직접 사용할 수는 없습니다. ARA 통해서 통신을 해야 합니다.

 

라이브러리 기반 또는 서비스 기반 기능적 클러스터 구현

Functional Cluster Foundation 모듈이나 Service 구현 가능합니다. 이것이 Adaptive Applications 통신하려면 IPC 사용해야 합니다. 이를 위해서는 두가지 방법이 있습니다. 첫번째는 Functional Cluster 제공하고 Adaptive Applications 연결된 인터페이스 라이브러리가 IPC 직접 호출하는 라이브러리 기반 디자인 방식입니다. 두번째는 프로세스가  Communication Management 기능을 활용하고 Adaptive Applications 링크된 서버 프록시 라이브러리를 사용하는 서비스 기반 디자인 방식입니다. 프록시 라이브러리에 대해 말씀을 드리겠습니다. 프록시 라이브러리는 Adaptive Applications 프로세스와 서버 프로세스 사이의 IPC 조정하는 통신 관리 인터페이스를 호출하는 역할을 담당합니다. Adaptive Applications Communication Management 통해 IPC 직접 수행하거나 프록시 라이브러리를 통해 서버와 직접 IPC 혼합하는 지의 여부는 어떻게 개발하는 지에 따라 결정되는 것입니다. 방식을 선택하는 데에 있어 참고사항은 AP인스턴스를 로컬로만 사용하는 경우에는 라이브러리 기반 디자인이 적합할 있습니다. 분산된 방식으로 다른 AP인스턴스에 사용되는 경우에는 서비스 기반 디잔인을 사용하는 것이 좋습니다. Foundation 속한 Functional Cluster 라이브러리 기반입니다. Adaptive Platform Service 서비스 기반으로 작동하는 것을 있습니다. Functional Cluster 개발은 프로세스 없이 사양을 충족하는 라이브러리 형태로 실현 가능합니다. 경우 Adaptive Application Functional Cluster 간의 통신은 IPC 기반 대신 일반 프로 시저 호출이 사용되고 있습니다.

 

Machine/hardware

Adaptive Platform 머신으로 실행되는 하드웨어를 고려합니다. 하드웨어가 다양한 기술을 사용하여 가상화되고 있습니다. 하지만 그것과관계없이 일관된 플랫폼 구조를 구현하는 것이 목표입니다. 하드웨어에는 하나 이상의 머신이 있으며 AP 인스턴스는 오직 한개만 실행되어 집니다. 하드웨어 상에서는 머신들을 호스팅하는 단일 칩이 포함되어 있습니다. 하지만 상황에 따라서는 다수의 칩이 단일 시스템 구성이 가능합니다.

 

 

Methodology and Manifest

응용 프로그램 개발을 하기 위해서는 개발 방법론에 대한 표준화된 방식이 필요로 합니다. Autosar Adaptive Methodology 다양한 활동에 대한 설계 정보의 교환을 위해 제품이 통신하는 방법을 정의하는 내용을 포함합니다. 아래 그림은 Adaptive Methodology 구현하는 방법에 대한 개요를 나타내고 있습니다.


AP development workflow


Manifest  

매니페스트는 모든 배포 측면에서 매니페스트가 다루어지도록 정의되어야 합니다. 응용 프로그램 설계에 있어서 가지 다른 파티션에서 Manifest라는 용어의 정의를 세분화해야 합니다. 응용 프로그램 매니페스트는 Adaptive Platform에서 실행되는 응용 프로그램의 배포 관련 정보를 지정하는 사용됩니다. 실행 코드를 시스템에 통합할 있도록 실행 코드와 함께 제공합니다. 서비스 인스턴스 매니페스트는 서브시 지향 통신을 구성하는 방법을 지정하는 사용됩니다. 또한 용도를 구현하는 실제 실행 코드와 함게 제공됩니다. 머신 매니페스트는 기본 머신 구성에 적용되는 배치 관련 컨텐츠를 정의합니다. 또한 인스턴스를 만들기 위해 소프트웨어와 함께 제공합니다. 외에도 하나의 단일 모델로 시스템에서 사용되는 시스템 설계를 지원하기도 합니다. 서로 다른 AUTOSAR 플랫폼의 소프트웨어 구성 요소는 서비스 지향적인 방식으로 통신이 가능합니다.

 

Application Design  

응용 프로그램 설계는 다음 측면에 중점을 두고 있습니다. 


. 설계 구현을위한 정보를 분류하는 사용되는 데이터 유형

. 서비스 지향 통신의 핵심 요소 인터페이스

. 서비스 지향 통신에 액세스 수있는 방법 정의

. 영구 데이터 파일에 액세스하기위한 중추적인 요소로서의 인터페이스

. 영구 저장소에 액세스 수있는 방법 정의

. 파일에 액세스 수있는 방법 정의

. 암호화 소프트웨어에 액세스 수있는 방법 정의

. 플랫폼 상태 관리에 액세스 수있는 방법 정의

. 시간 기반에 액세스 수있는 방법 정의

. 네트워크상의 전송을 위해 데이터가 직렬화되는 방식을 정의하는 직렬화 속성

. REST 패턴은 서비스와 통신하기위한 REST 서비스 인터페이스

. 클라이언트 서버 기능

. 배포를 용이하게하기 위해 프로그램을 그룹화

 

설계에 정의된 아티팩트는 특정 배포와 독립적입니다. 다른 배포 시나리오에 맞게 응용 프로그램 개발을 재사용의 장점을 살려 쉽게 있습니다.

 

Application Manifest  

응용 프로그램 매니페스트는 Adaptive Platform Program 배포할 필요한 정보를 제공합니다. 응용프로그램 코드를 배포 시나리오에서 최대한 독립적으로 유지시킵니다. 다른 배포 시나리오에서 재사용 있도록 하기 위함입니다. 응용 프로그램 메니페스트를 이용하면 응용 프로그램의 인스턴스가 제어됩니다. 따라서 동일한 시스템, 어플리케이션 소프트웨어를 여러 인스턴스화할 있습니다. 응용 프로그램 소프트웨어를 여러 곳에 배포하고 응용 프로그램을 인스턴스화합니다. 응용프로그램 인스턴스 시작 방법을 정의할 때에는 시작 옵션의 정의와 액세스 정보가 포함되어 있습니다. 컴퓨터 상태, 기능 그룹 상태에 따라 시작이 달라질 있습니다.

 

Service Instance Manifest

네트워크상의 서비스 지향 통신을 개발하기 위해서는 특정한 구현을 필요로 합니다. 통신 인프라 구조는 당연히 양쪽에서 호환 가능해야 합니다. 서비스 인스턴스 매니페스트는 다음에 중점을 두고 있습니다.

 

. 특정 통신 기술에서 서비스를 표현하는 방법을 정의하는 서비스 인터페이스

. 특정 제공되고 필요한 서비스 인스턴스에 대해 통신 기술에 필요한 자격 증명을 정의하는 서비스 인스턴스

 . E2E 보호

. 보안 보호

. 로그 추적

 

 

Machine Manifest

머신 매니페스트는 실제 Adaptive Platform 인스턴스를 구성할 있게 합니다. Machine Manifest 다음과 같은 측면에 중점을 두고 있습니다.

 

. 연결 구성 네트워크 기술에 대한 기본 자격 증명 정의

. 검색 기술의 구성

. 사용 기계 상태

. 사용 기능 그룹

. 기능 클러스터 구현

. Crypto 플랫폼 모듈

. 플랫폼 상태 관리

. 시간 동기화

. 하드웨어 리소스 문서

반응형