自适应平台AUTOSAR(AP AUTOSAR)是面向未来高性能计算和复杂电子电气架构的汽车软件平台标准。其核心在于支持动态、灵活的软件部署与更新,其中对自适应应用程序及其应用软件服务的定义与管理是其架构设计的关键。
1. 自适应应用程序的定义
在AP AUTOSAR中,自适应应用程序(Adaptive Application) 是指运行在自适应平台上的软件功能单元,通常以可执行文件(Executable) 或进程(Process) 的形式存在。与经典平台(CP AUTOSAR)基于静态配置的软件组件(SWC)不同,自适应应用程序具有以下特点:
- 动态性:支持运行时启动、停止、更新和通信,无需重启整个系统。
- 隔离性:通常运行在独立的用户空间进程中,通过操作系统和平台服务实现资源与故障隔离。
- 服务化:应用程序的功能通过服务(Services) 的形式提供和消费,遵循面向服务的架构(SOA)原则。
2. 应用软件服务的定义与角色
应用软件服务(Application Software Services) 是自适应应用程序功能的具体体现,也是平台中功能调用的核心接口。其定义包括:
- 服务接口(Service Interface):使用AUTOSAR自适应平台服务接口描述语言(ARA::COM) 定义。接口明确了方法(Methods)、事件(Events)和字段(Fields),提供了类型安全的通信契约。
- 服务实例(Service Instance):服务接口的具体实现和运行时实体。一个自适应应用程序可以提供一个或多个服务实例,同时也可以消费其他应用程序或平台核心提供的服务。
- 通信机制:基于发布/订阅(Publish/Subscribe) 和请求/响应(Request/Response) 模式,通常通过底层SOME/IP等中间件协议实现。
3. 应用软件服务的管理机制
AP AUTOSAR通过一系列核心功能集群(Functional Clusters)来管理应用程序及其服务的生命周期、通信和状态。
a) 执行管理(Execution Management, EM)
- 负责自适应应用程序的启动、停止和监控。它根据清单文件(Manifest)中的配置,启动应用程序进程,并为其分配唯一的标识符。
- 管理应用程序的状态(如STARTING, RUNNING, TERMINATING)。
b) 通信管理(Communication Management)
- ARA::COM 是应用软件服务通信的核心框架。它为服务发现(Service Discovery)、服务发布与订阅、远程方法调用等提供标准化API。
- 服务注册与查找:服务提供者在启动时向服务注册表(Service Registry) 注册其实例,消费者则动态查找所需服务。
c) 状态管理(State Management, SM)
- 管理平台和应用程序功能组(Function Group)的整体状态(如STARTUP, SHUTDOWN, UPDATE)。
- 协调应用程序在特定平台状态下的行为,例如在系统关闭时有序地停止所有应用服务。
d) 配置与清单(Manifest)
- 每个自适应应用程序都伴随一个机器可读的清单文件(通常基于XML或JSON格式)。
- 清单中明确定义了:
- 应用程序的可执行文件路径和资源需求。
- 它提供(offers) 和需要(requires) 的服务接口及实例。
- 与其他应用程序或服务的依赖关系。
- 非功能属性,如权限、安全凭据和健康监控配置。
- 该清单是执行管理、通信管理和部署工具进行管理的基础。
e) 诊断与健康监控(Diagnostics & Health Monitoring)
- 通过UCM(Update and Configuration Management) 和 PHM(Platform Health Management) 等模块,监控应用程序及其服务的运行状况,支持故障报告、恢复和动态更新。
4. 服务交互的生命周期示例
- 设计时:工程师使用建模工具(如AUTOSAR建模工具链)定义服务接口和应用程序清单。
- 部署时:将应用程序可执行文件及其清单部署到目标机器的特定位置(如容器或文件系统)。
- 启动时:执行管理根据清单启动应用程序进程。应用程序启动后,其服务代理自动向通信管理框架注册其提供的服务实例。
- 运行时:
- 服务消费者通过ARA::COM API查找并绑定到所需的服务实例。
- 双方通过代理(Proxy)和骨架(Skeleton)模式进行类型安全的远程通信。
- 状态管理协调系统级状态转换,执行管理监控应用程序进程的生命周期。
- 更新/终止时:可通过UCM模块进行服务的动态更新或替换。状态管理触发有序关闭,执行管理终止进程。
###
AP AUTOSAR通过将自适应应用程序定义为以服务为核心、清单为蓝本的独立进程,并结合执行管理、通信管理、状态管理三大支柱,实现了对应用软件服务的动态、灵活且可靠的定义与管理。这种面向服务的架构使得汽车软件能够更好地支持OTA更新、功能扩展以及复杂的功能集成,满足了智能网联汽车对高计算性能、高可扩展性和高安全性的需求。