SW/Autosar

Adaptive Autosar Communication Management (통신 관리)

얇은생각 2018. 11. 14. 18:30
반응형

개요

Communication Management는 분산 실시간 임베디드 환경 속에서 애플리케이션 간의 모든 통신을 수행합니다. 통신 파트너를 찾아 연결하는 실제 매커니즘을 추상화하여 응용 프로그램 소프트웨어 구현자가 응용 프로그램의 특정 목적에 집중할 수 있도록 합니다. 

 

Service Oriented Communication (서비스 지향 통신)

서비스의 개념은 기본 운영 소프트웨어가 제공하는 기능 이상으로 응용 프로그램에 제공되는 기능을 뜻합니다. Communication Management SW는 머신 간 통신을 위해 이러한 서비스를 제공하거나 메커니즘을 제공합니다. 서비스는 다음으로 구성됩니다. 

. Events 

. Methods 

. Fields  


통신 파트너 간의 통신 경로는 설계시, 시동시, 실행시에 설정할 수 있습니다. 이 매커니즘은 중개 인스턴스로 작동합니다. Communication Management SW의 일부인 서비스 레지스트리입니다. 



서비스 지향 통신

  

서비스를 제공하는 응용 프로그램은 Service Registry에서 이러한 서비스 등록을 합니다. 서비스를 사용하기 위해서 애플리케이션은 요청된 애플리케이션을 찾아야 합니다. 

 

Language binding and Network binding 

Communication Management는응용프로그램 개발자 뿐만 아니라 네트워크에서 서비스 데이터의 각 표현에 어떻게 표시되는지 표준을 제공합니다. 이는 코드의 이식성과 컴파일된 서비스가 플랫폼의 서로 다른 구현에서 호환성을 보장합니다. 언어 바인딩은 대상 프로그래밍 언어의 편리한 기능을 사용하여 서비스의 메서드, 이벤트 및 필드를 직접 액세스 할 수 있는 식별자로 변환하는 방법을 의미합니다. 성능 및 안전성이 주된 목적입니다. 그러므로 언어 바인딩은 인발전으로 서비스 인터페이스 정의에 의해 제공되는 코드 생성기에 의해 개발됩니다.  


언어 및 네트워크 바인딩

 

네트워크 바인딩은 구성된 서비스의 실제 데이터를 직렬화합니다. 그 다음 특정 네트워크에 바인딩하는 방법을 정의합니다. 생성된 버시스 특정 레시피를 해석하거나 직렬화 코드 자체를 직접 생성하여 통신 관리 구성을 기반으로 개발할 수 있습니다. 로컬 서비스 레지스트리는 또한 네트워크 바인딩의 일부입니다.


언어 바인딩과 네트워크 바인딩 간의 인터페이스는Communication Management SW 내부의 개인 인터페이스로 간주합니다. 따라서 이 인터페이스를 정의하는 표준 스펙은 현재 범위에서 벗어나는 것입니다. 하지만 플랫폼 공급 업체는 플랫폼 구현 내에서 다른 네트워크 바인딩과 함께 C++ 보다 다른 언어 바인딩을 쉽게 구현할 수 있도록 소프트웨어 용 인터페이스를 독립적으로 정의하는 것을 추천합니다. 

 

Generated Proxies and Skeletons of C++ Language Binding (생성 된 프록시와 C ++ 언어 바인딩의 스켈레톤)

C++ 언어 바인딩의 상위 계층 인터페이스는 AUTOSAR 메타 모델 인터페이스 설명에 정의된 서비스 객체 지향 매핑을 제공합니다. Communication Management SW용 개발 도구의 일분인 제너레이터는 각 서비스의 필드, 이벤트 및 메소드에 대한 안전성이 있는 구현을 포함하는 C++ 클래스를 생성합니다. 서비스 구현 측면에서 생성된 클래스의 이름은 Service Provider Skeleton입니다. 클라이언트 측에서 서비스 요청자 프록시라고도 합니다. 서비스 메소드의 경우, 서비스 요청자 프록시는 동기 및 비동기 호출에 대한 메커니즘을 서비스합니다. 호출자는 다른 작업을 병렬로 진행할 수 있으며 C++ STL의 특수 기능을 통해 서버의 반환 값을 사용할 수 있고 결과를 수신합니다. 


플랫폼 구현은 제너레이터가 각각의 서버가 아직 이용 가능하지 않을 때 클라이언트 기능을 쉽게 개발할 수 있는 모형 클래스를 생성하도록 합니다. 동일한 메커니즘을 클라이언트의 단위 테스트에 적용할 수 있습니다. 클라이언트가 직접 프록시 클래스를 사용할 수 있습니다. 하지만 C++ 바인딩을 위한 Service Provider Skeleton은 추상적인 기본 클래스입니다. 생성된 기본 클래스에서 파생되며 각 기능을 구현해야 합니다. Ara::com의 인터페이스는 안전 관련 E2E 보호 통신을 위한 프록시와 스켈레톤을 제공합니다. 이러한 인터페이스는 E2E 보호가 켜져있거나 꺼져있는지 여부에 관계없이 호환성이 독립적으로 보장되도록 합니다. 

반응형