搞一下Adaptive Platform AUTOSAR(六)—— 通信管理

参考文献:《AUTOSAR AP 标准》

AP和CP相关资料和工具咨询可关注微信公众号“搞一下汽车电子”

邮箱:[email protected]

手机/微信:18405011517


1.概览

通信管理负责分布式实时嵌入式环境中应用程序之间通信的各个方面。

背后的概念是从实际机制中抽象出来,以找到和连接通信伙伴,从而使应用软件的实现者能够专注于其应用程序的特定目的。

2.面向服务的通信

服务的概念意味着为应用程序提供的功能超出了基本操作软件已经提供的功能。通信管理软件提供为机内通信和机间通信提供或使用此类服务的机制。

一组服务包括

  • 事件
  • 方法
  • 地点

通信伙伴之间的通信路径可以在设计、启动或运行时建立。该机制的一个重要组件是充当代理实例的服务注册中心,也是通信管理软件的一部分。

搞一下Adaptive Platform AUTOSAR(六)—— 通信管理_第1张图片

图1 面向服务的通信

提供服务的每个应用程序都在服务注册表中注册这些服务。要使用服务,使用应用程序需要通过查询服务注册表来查找请求的服务,此过程称为服务发现。

3.语言绑定和网络绑定

通信管理提供了标准化的方法,即如何向应用程序实现者(上层,语言绑定)提供定义的服务,以及服务数据在网络上的各自表示(下层,网络绑定)。这确保了源代码的可移植性和跨平台不同实现的已编译服务的兼容性。

语言绑定定义了如何使用目标编程语言的方便功能将服务的方法、事件和字段转换为直接可访问的标识符。性能和类型安全(只要目标语言支持)是主要目标。因此,语言绑定通常由服务接口定义提供的源代码生成器实现。

搞一下Adaptive Platform AUTOSAR(六)—— 通信管理_第2张图片

图2 示例语言和网络绑定

网络绑定定义如何序列化已配置服务的实际数据并将其绑定到特定网络。它可以基于通信管理配置(AUTOSAR元模型的接口定义)通过解释生成的特定于服务的配方或直接生成序列化代码本身来实现。

本地服务注册表也是网络绑定的一部分。

要注意到,语言绑定和网络绑定之间的接口被视为通信管理软件内部的私有接口。因此,定义此接口的规范性规范目前已超出范围。然而,平台供应商被鼓励独立地定义这样的接口,以允许他们的软件易于实现其他语言绑定,而不是C++与平台实现中的其他网络绑定。

4.生成的C++语言绑定代理和骨架

C++语言绑定的上层接口为AutoSar元模型的接口描述中定义的服务提供了面向对象的映射。

作为通信管理软件开发工具的一部分的生成器生成C++类,该类包含每个相应服务的字段、事件和方法的类型安全表示。

在服务实现方面,这些生成的类被命名为服务提供者骨架。在客户端,它们被称为服务请求者代理。

对于服务方法,服务请求者代理提供同步(在服务器返回结果之前阻止调用方)和异步调用(被调用函数立即返回)的机制。调用方可以并行启动其他活动,并在服务器的返回值通过核心类型ara::core::future的特殊功能可用时接收结果。见第18.1章。

平台实现可以配置为生成器创建模拟类,以便在各自的服务器尚不可用时轻松开发客户端功能。同样的机制也可以用于对客户机进行单元测试。

虽然代理类可以直接由客户端使用,但服务提供者对C++绑定的骨架只是抽象的基类。服务实现应从生成的基类派生并实现各自的功能。

ara:com的接口还可以为安全相关的e2e保护通信提供代理和骨架。这些接口的设计确保了与应用程序的兼容性,无论E2E保护是打开还是关闭。

5.静态和动态配置

通信路径的配置可以在设计、启动或运行时进行,因此被认为是静态的或动态的:

· 完整静态配置:

根本不需要服务发现,因为服务器知道所有客户机和客户机都知道服务器。

· 应用程序代码未发现:

客户机知道服务器,但服务器不知道客户机。事件订阅是应用程序中唯一的动态通信模式。

· 应用程序中的完整服务发现:

配置时不知道通信路径。服务发现的API允许应用程序代码在运行时选择服务实例。

你可能感兴趣的:(AUTOSAR)