Adaptive AUTOSAR 学习笔记 12 - 通信管理

本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf。

  • CM:Communication Management
  • SOME/IP:Scalable service-Oriented MiddlewarE over IP
  • DDS:Data Distribution Service
  • IPC:Inter-Process Communication
  • PDU:Protocol Data Unit
  • SOA:Service Oriented Architecture
  • AP:AUTOSAR Adaptive Platform

7 通信管理

7.1 概述

CM 负责分布式、实时、嵌入式环境下的应用间通信。CM 从实现中抽象出一套发现、连接通信对象的机制。这样应用开发者就能专注于应用软件本身的业务逻辑。

7.2 面向服务通信

Service 即提供给应用的、基础软件之外的功能。CM 提供了 Service 消费者/提供者的机制,支持机器内和跨机器通信。

服务由事件Event、方法Methods、字段Fields的组合构成。通信各方的通信路径可以在设计、启动或者运行时建立。Service Registry 是 CM 软件中的一个重要组件,起到中间人的作用。

每个提供服务的应用向 Service Registry 注册服务。服务的客户端应用先向 Service Registry 查找(find)服务,这一过程叫做服务发现(Service Discovery)。

7.3 语言绑定和网络绑定

CM 标准化了:

  • 服务如何呈现给应用实现者(上层,语言绑定
  • 服务数据如何在网络中表示(下层,网络绑定

以上两点保证了源码的可移植性和已编译的服务在不同平台实现的兼容性。

语言绑定定义了:如何将服务的 methods,events,fields 翻译成目标语言中可直接访问的标识符。性能类型安全(只要目标语言支持)是首要目标。因此,语言绑定一般实现为以服务接口定义为输入的代码生成器

类型安全:编译时验证类型

网络绑定定义了:服务数据如何序列化以及如何绑定到特定网络。可以实现为基于 CM 的配置(AUTOSAR 元模型接口定义)实现:或通过解释(生成的)服务 recipe,或直接生成序列化代码。

目前 CM 支持 SOME/IP,DDS,IPC 以及 Signal PDU(基于信号的网络绑定)。

本地 Service Registry 也是网络绑定的一部分。

注意:语言绑定网络绑定之间的接口应当视为 CM 内部的 private 接口。尽管如此,平台供应商应当尽量为其软件定义独立的接口,以便在平台内实现除 C++ 之外的语言绑定

7.4 C++ 语言绑定 Proxies 和 Skeletons 代码生成

C++ 语言绑定的上层接口提供了(定义在AUTOSAR 元模型接口描述中的)服务的面向对象映射。生成器是部署工具的一部分,用于为 CM 生成包含各个 Service 的 fields、events 和 methods 的类型安全表示的 C++ 类。

在服务实现侧,生成的类叫 Service Provider Skeletons;在客户端侧,叫 Service Requester Proxies。对于服务方法,服务请求代理提供同步(调用者阻塞,直到 Server 返回结果)和异步(被调函数立即返回)调用机制。调用者可以并行执行其他任务,当服务端返回结果时,通过 Core Type 的 ara::core::future 接收结果。平台可以配置生成器生成 mockup 类,当服务尚未开发完成时,便于开发客户端功能,也可用于客户端的单元测试。

客户端可以直接使用代理类,而 Service Provider Skeletons 只是抽象基类,服务实现需要继承自生成的抽象基类,实现相应的功能。

ara::com 接口可以为 proxies 和 skeletons 提供安全相关、受 E2E 保护的通信。这些接口旨在确保与应用程序的兼容性,无论是否开启 E2E 保护。

7.5 静态、动态配置

通信路径的配置可能发生在设计、启动或者运行时。因此配置可以是静态或者动态的:

  • 全静态配置
    完全不需要服务发现,服务端知道所有的客户端,客户端也知道服务端。
  • 客户应用无需发现
    客户端知道服务端,但服务端不知道客户端。应用中唯一的动态通信方式就是事件订阅。
  • 全服务发现
    配置时不知道通信路径。服务发现 API 允许应用代码在运行时选择服务实例。

7.6 服务合同版本控制

SOA(Service Oriented Architecture)环境下,服务的客户端和提供端依赖覆盖服务接口和行为的合同。服务开发过程中,服务的接口和行为会改变。因此,引入服务合同版本控制来区分不同版本的服务。AP 支持设计、部署阶段的服务合同版本控制。不仅如此,客户端的服务发现可配置为向后兼容,即如果服务版本向后兼容客户端请求的服务版本,客户端可以连接到一个不同于其请求版本的服务。

7.7 原始数据流接口

除了面向服务的通信,CM 还提供了用于处理外部 ECU(如 ADAS 系统中的传感器)原始二进制数据流的独立、静态 API。

  • 为客户端应用实现了:建立到服务端的通信通道的功能
  • 为服务端应用实现了:等待客户端连接的功能
  • 为客户端和服务端提供了:销毁通信通道以及通过通道读写原始数据流的功能

原始数据流通道可以由集成配置其部署信息,包括网络端点信息、协议等。目前传输层使用 TCP/IP 套接字,但今后可能增加其他替代方式。原始数据流接口定义在 ara::com::raw 命名空间中。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自适应autosar平台先关的文档资料 为适应新用例的需求,AUTOSAR开发了自适应平台。 一个突出的例子是 高度自动化驾驶,在该环境中,驾驶员暂时和/或部分地将驾驶责任转移给车辆。 这种情况下需要与交通基础设施(例如交通标志、交通灯)、云服务器(例如访问最新的交通信息或地图数据)等进行通信,或使用微处理器和高性能计算硬件进行并行处理(例如GPU)。 此外,Car-2-X应用还需要与车辆和车外系统进行交互沟通。 这意味着该系统必须具备安全的车载通信功能、支持跨域计算平台、智能手机集成、非AUTOSAR系统集成等。 此外,还需要采取专门的措施,保证云服务的安全,例如安全云交互和应急车辆优先。 它们可支持远程和分布式服务,例如远程诊断、空中下载(OTA)更新、修复和交换处理。 AUTOSAR目前正在对AUTOSAR自适应平台进行标准化处理,使其支持客户应用的动态部署,并为需要高端计算能力的应用提供适宜的环境。 该平台的核心是基于 POSIX 标准的操作系统。 根据IEEE1003.13(即PSE51),操作系统可以通过POSIX的子集从应用中调用。 自适应平台的一个关键特性是面向服务的通信。 自适应平台可以使用两种类型的接口:服务和应用程序编程接口(API)。 该平台由分布在服务层中的功能聚类和AUTOSAR自适应平台基础组成。 功能聚类: 汇编自适应平台的功能2016 确定需求规格说明书的聚类2016 从应用和网络角度描述软件平台的行为2016 但是,不得限制实现自适应平台的架构的最终软件设计。2016 AUTOSAR自适应平台基础中的功能聚类在每台(虚拟)机器中必须至少有一个实例,而服务则可以分布在车内网络中。 自适应平台服务包括: - 更新和配置管理 - 状态管理 - 网络管理 - 诊断 AUTOSAR自适应平台包含规范和代码。 与经典平台相比,AUTOSAR开发的实现可缩短验证周期并说明基本概念。 该实现适用于所有AUTOSAR成员。
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值