分享好友 资讯首页 频道列表

软件定义汽车落地实践案例:中汽创智

2022-11-12 10:36

中汽创智:

从座舱软件整体架构的角度来看,中汽创智认为在方案实施时,既要在系统上满足整车 SOA 架构的要求,又要充分利用座舱现有操作系统成熟稳定的技术方案和平台优势,目前座舱操作系统以QNX+Android 或 Linux+Android 为主,相对于 AP 平台,Android 平台的执行管理、log 系统、持续化存储、升级等功能模块在消费电子领域也经得到了充分的使用验证。同时值得注意的是,Android 系统本身也是符合

SOA 架构理念的,(android 采用了AIDL(Android Interface Definition Language Android 接口定义语言)和 HIDL(HAL interface definition language 硬件抽象层接口定义语言)来做接口约束定义,服务需要注册到 ServiceManager 中(SOA 中的服务注册入口),通过 ServiceManager 的客户端代理获取服务本地接口再进行远端调用)。因此我们更建议以 Android 现有架构框架为主,在系统上满足整车 SOA 的需求为架构设计目标,实践总结如下:

在服务的实现上,中汽创智借鉴了Clean Architecture 的设计理念:


依赖规则

外部依赖(系统接口、数据库,框架)

单一的依赖方向,从软件的变化度思考,在特定领域场景,数据模型是基本不会发生变化的,所以我们将其放到整个依赖的核心,围绕数据模型,会产生一系列的功能用例(如空调的风量值这是一个数据,围绕这个值会产生上调风 量,下调风量等功能用例),功能用例的集合就是服务实现;

将所有外部依赖,诸如系统接口,数据以及数据访问,所有的支持性框架代码都放到外部,以依赖注入的方式注入的服务实现层,这样一来,数据模型层, 用例层,服务实现层就只和语言相关,可以比较容易的在不同的系统上移植;

具备良好的可测试性,每一层都有清晰的边界,由于依赖的单向性,使得可以比较容易的 mock 各层的依赖,这样比较容易构建单元测试的用例,也便于做打桩测试。

来源:汽车测试网

评论 0
同类信息