汽车软件 SOA 服务化设计基础
版本:V1.0
适用范围:整车电子电气架构(E/E 架构)下嵌入式软件的服务化设计、开发与治理
目录
- 概述
- SOA 总体架构
- 服务划分方法
- 服务接口设计规范
- 服务通信设计
- 服务安全设计
- 服务部署与运行设计
- 服务治理
- 测试与验证
- 诊断与 OTA 升级
- 从信号架构向服务架构的演进路线
- 附录
1. 概述
1.1 背景
随着汽车电子电气架构从分布式(多个独立 ECU)向域集中式、中央计算式演进,整车软件面临以下挑战:
- 传统按 ECU 硬件划分的软件边界导致功能重复开发、复用率低;
- 基于信号(Signal)的通信方式使功能与硬件节点强绑定,难以迁移和升级;
- 用户对"软件定义汽车(SDV)"的需求快速增长,功能迭代周期从年级缩短到月级甚至周级;
- OTA 升级成为标配,要求软件具备模块化、可独立部署的能力。
SOA(Service-Oriented Architecture,面向服务的架构)通过将整车能力抽象为可发现、可订阅、可调用的服务,实现"软硬件解耦",是支撑软件定义汽车的核心架构方法。
1.2 手册目标
本手册为整车软件服务化设计提供统一的方法论、规范和流程,具体包括:
- 指导如何划分服务边界、确定服务粒度;
- 规范服务接口的定义、命名与版本管理;
- 指导服务通信机制的选型与 QoS 设计;
- 明确服务在安全、部署、治理、测试、诊断等方面的要求;
- 提供从传统信号架构向服务架构演进的路线与检查清单。
1.3 适用对象
| 角色 | 使用方式 |
|---|---|
| 系统架构师 | 依据本手册进行整车服务架构设计与评审 |
| 软件架构师/开发工程师 | 依据接口规范与编码约束实现服务提供方/消费方 |
| 测试工程师 | 依据测试章节设计服务级与整车级测试用例 |
| 项目经理/产品经理 | 了解服务化交付边界与迭代方式 |
1.4 术语与缩写
| 术语 | 说明 |
|---|---|
| SOA | Service-Oriented Architecture,面向服务的架构 |
| SDV | Software Defined Vehicle,软件定义汽车 |
| 服务(Service) | 对外提供特定业务能力的一组接口契约的封装单元 |
| 服务提供方(Provider) | 实现并对外发布服务的实体 |
| 服务消费方(Consumer) | 通过接口契约使用服务的实体 |
| Method | 服务方法,请求/响应式交互 |
| Event | 服务事件,单向通知式交互 |
| Field | 服务字段,可读写状态 + 变更通知的组合 |
| SOME/IP | Scalable service-Oriented MiddlewarE over IP,车载以太网主流通信协议 |
| SD | Service Discovery,服务发现 |
| DDS | Data Distribution Service,数据分发服务 |
| AP | AUTOSAR Adaptive Platform,自适应平台 |
| CP | AUTOSAR Classic Platform,经典平台 |
| QoS | Quality of Service,服务质量 |
| ASIL | Automotive Safety Integrity Level,汽车安全完整性等级 |
1.5 参考标准
- AUTOSAR Adaptive Platform 规范(ara::com、Execution Management、State Management 等)
- AUTOSAR Classic Platform 规范
- ISO 26262(道路车辆功能安全)
- ISO 21434(道路车辆信息安全工程)
- UN R155 / R156(网络安全与软件升级法规)
- ISO 14229 UDS(诊断通信)
2. SOA 总体架构
2.1 分层架构
整车 SOA 架构建议采用以下分层模型:
各层职责:
| 层次 | 职责 | 关键内容 |
|---|---|---|
| 应用层 | 面向用户的场景与功能 | 场景编排、HMI、语音/AI 应用 |
| 服务层 | 整车能力抽象 | 车身服务、热管理服务、能量管理服务等 |
| 服务框架层 | 服务通信与生命周期框架 | ara::com、DDS、服务发现、代理/骨架代码 |
| 通信层 | 底层报文传输 | SOME/IP、DDS-RTPS、TSN、DoIP |
| 操作系统层 | 运行时环境 | Linux、QNX、AUTOSAR OS、Hypervisor |
| 硬件层 | 物理承载 | 中央计算单元、域控、区域控制器、ECU |
2.2 核心要素
服务化架构包含五个核心要素:
- 服务目录(Service Catalog):整车所有服务的注册清单,是服务化的"户口本";
- 服务接口契约(Service Interface):以 ARXML/IDL 等形式定义的接口描述,是提供方与消费方之间的"合同";
- 服务发现(Service Discovery):运行时动态发现服务实例的机制;
- 通信中间件(Middleware):承载服务调用的通信协议栈(SOME/IP、DDS 等);
- 服务治理(Governance):覆盖服务全生命周期的管理流程与工具链。
2.3 与 AUTOSAR 平台的对应关系
| 平台 | 服务化支持方式 |
|---|---|
| AUTOSAR AP | 原生支持 SOA:ara::com 提供 Proxy/Skeleton 模型,支持 SOME/IP-SD 服务发现、动态部署(DMC) |
| AUTOSAR CP | 传统信号为主,通过 SecOC、PDU Router 等与 AP 网关互通;新一代 CP 增强了对服务接口的支持 |
| Linux/QNX + 开源 | 基于 SOME/IP(vsomeip)或 DDS(Fast DDS、Cyclone DDS)构建 |
2.4 典型整车服务架构示例
3. 服务划分方法
3.1 划分总体思路
服务划分遵循"自顶向下、以业务能力为中心"的思路:
- 识别业务能力:从整车功能清单出发,识别可独立提供的业务能力(如"车窗控制"、"座椅调节");
- 按功能域聚类:将相关能力归入功能域(车身、热管理、动力、底盘、智驾、座舱);
- 定义服务边界:每个服务对应一个内聚的业务能力集合;
- 校验划分结果:用 3.5 节的检查清单评审。
⚠️ 反模式警告:不要按 ECU 硬件节点划分服务。"车窗服务部署在左前门 ECU"是实现细节,服务名称与接口中不应体现硬件位置。
3.2 服务命名规范
建议采用统一的命名结构:
<功能域>_<能力名>_Service
示例:
| 服务名 | 说明 |
|---|---|
| Body_WindowControl_Service | 车身域-车窗控制服务 |
| Thermal_CabinClimate_Service | 热管理域-座舱空调服务 |
| Power_ChargingMgmt_Service | 动力域-充电管理服务 |
| ADAS_ParkingAssist_Service | 智驾域-泊车辅助服务 |
| Cockpit_AudioZone_Service | 座舱域-音区管理服务 |
命名约束:
- 使用英文大驼峰或下划线分隔,全项目统一一种风格;
- 服务名体现"能力"而非"组件",避免出现 ECU、Node 等硬件词汇;
- 同一能力不允许出现两个服务,避免职责重叠。
3.3 服务粒度控制
粒度判断决策表:
| 场景 | 建议 |
|---|---|
| 一个能力会被多个上层场景独立复用 | 拆分为独立服务 |
| 两个能力总是一起被调用、且状态强耦合 | 合并为一个服务 |
| 两个能力需要独立升级/独立部署 | 拆分为独立服务 |
| 拆分后单次交互需要串联 3 个以上服务才能完成一个用户操作 | 考虑合并或增加编排层 |
粒度过细的危害:通信开销增大、时序与状态一致性难以保证、服务目录膨胀。
粒度过粗的危害:失去灵活性、牵一发而动全身、无法独立升级。
3.4 服务分类
按能力性质将服务分为四类,不同类型有不同的设计侧重:
| 类型 | 特征 | 示例 | 设计侧重 |
|---|---|---|---|
| 控制类服务 | 对外部执行器/状态进行控制 | 车窗控制、灯光控制 | 权限校验、互斥仲裁、状态反馈 |
| 数据类服务 | 提供数据的读写或订阅 | 车辆状态查询、能耗统计 | 缓存策略、更新周期、数据有效性 |
| 计算/决策类服务 | 输入条件输出决策结果 | 能量分配、热管理策略 | 算法版本化、可标定 |
| 场景编排类服务 | 组合调用多个原子服务 | 露营模式、迎宾模式 | 事务补偿、失败回滚、超时管理 |
3.5 服务划分检查清单
服务划分评审时必须逐项确认:
3.6 依赖关系管理
- 服务依赖图必须为有向无环图(DAG),严禁循环依赖;
- 消费方只允许依赖服务接口契约,禁止依赖提供方的内部实现或部署位置;
- 跨域依赖需显式声明并经架构评审;
- 建议用工具从 ARXML/IDL 中自动提取依赖关系并可视化。
4. 服务接口设计规范
4.1 契约先行原则
服务开发必须遵循契约先行(Contract First)流程:
需求分析 → 服务识别 → 接口契约定义(ARXML/IDL)→ 契约评审 → 代码生成 → 提供方/消费方并行开发 → 集成测试
要求:
- 接口契约是唯一事实来源(Single Source of Truth),提供方与消费方都必须从契约生成代码,禁止手工编写序列化逻辑;
- 契约变更必须走版本管理流程(见 4.5 节),重大变更需架构评审;
- 契约文件中必须包含接口说明、参数范围、错误码定义、前置条件。
4.2 交互模式选型
AUTOSAR AP / SOME/IP 体系下有三种基本接口元素,选型决策如下:
| 元素 | 交互模式 | 适用场景 | 示例 |
|---|---|---|---|
| Method(方法) | 请求/响应 | 需要明确结果的单次操作 | 请求打开车窗、查询剩余电量 |
| Event(事件) | 单向通知(可订阅) | 状态变化广播、无需应答 | 车门开关状态变化、故障事件上报 |
| Field(字段) | Get/Set + 变更通知 | 可持续读写的状态 | 空调目标温度、座椅位置 |
选型口诀:
- 一次性动作要结果 → Method
- 状态持续可变可查 → Field
- 只发不收的广播 → Event
禁止滥用 Method 做状态同步(应使用 Field/Event);禁止用 Event 模拟请求响应(应使用 Method)。
4.3 接口定义规范
4.3.1 命名规范
- Method:动词开头,如
OpenWindow、QuerySoC、SetTargetTemperature; - Event:名词或名词短语描述状态,如
DoorStatusChanged、BatteryFaultOccurred; - Field:名词,如
TargetTemperature、SeatPosition; - 布尔类型避免否定式命名(用
IsLocked而非IsNotUnlocked)。
4.3.2 参数规范
- 每个参数必须标注:类型、单位、取值范围、物理含义;
- 数值参数优先使用定点/整型并标注缩放因子与偏移量,避免直接使用无约束的 float;
- 枚举值必须显式赋值并预留
UNKNOWN = 0xFF之类的未知态; - 结构体嵌套不超过 3 层。
4.3.3 错误处理规范
每个 Method 必须定义标准错误返回:
| 错误类别 | 含义 | 示例 |
|---|---|---|
| OK | 执行成功 | - |
| NOT_AVAILABLE | 服务/执行器不可用 | 车窗电机离线 |
| INVALID_ARGUMENT | 参数非法 | 温度超范围 |
| PERMISSION_DENIED | 权限不足 | 非授权用户调用 |
| BUSY | 资源忙 | 正在执行中 |
| TIMEOUT | 执行超时 | 执行器无响应 |
| INTERNAL_ERROR | 内部错误 | 未预期异常 |
要求:
- 错误码在全项目范围内统一编号,集中维护在错误码总表中;
- 消费方必须处理所有定义的错误码,禁止忽略返回值;
- 错误码必须可追溯到诊断故障码(DTC)映射关系。
4.4 接口文档要求
每个服务接口必须随契约提供以下文档信息:
- 功能描述与业务背景;
- 前置条件与后置条件(如"整车电源模式为 RUN 方可调用");
- 调用频率限制、超时时间、重试策略;
- 安全等级(QM / ASIL A-D)与信息安全要求;
- 典型调用时序图;
- 变更记录。
4.5 接口版本管理
版本编号采用 主版本.次版本(Major.Minor) 规则:
| 变更类型 | 版本动作 | 兼容性要求 |
|---|---|---|
| 新增 Method/Event/Field | Minor +1 | 必须向后兼容 |
| 新增枚举值、扩展可选字段 | Minor +1 | 消费方必须容忍未知值 |
| 修改既有接口语义、删除接口、变更参数类型 | Major +1 | 允许不兼容,需迁移计划 |
版本约束:
- 消费方应遵循"宽容接收"原则:忽略未定义的字段与未知枚举值;
- 提供方应遵循"严格发送"原则:只发送契约定义的字段;
- 整车同一时间允许多个 Major 版本共存时,必须在服务实例级别区分(不同 Service ID);
- 废弃接口必须经历"标记废弃 → 观察期 → 下线"三阶段,禁止直接删除。
5. 服务通信设计
5.1 通信协议选型
| 协议 | 特点 | 适用场景 |
|---|---|---|
| SOME/IP | 成熟、与 AUTOSAR 生态深度集成、支持服务发现 | 域控间服务通信的主流选择 |
| DDS(RTPS) | 数据为中心、QoS 策略丰富、无中心化依赖 | 智驾大数据量、低时延场景 |
| MQTT / HTTP(S) | IT 生态友好 | 车云通信、T-Box 上行下行 |
| DoIP | 基于 IP 的诊断 | 服务化诊断 |
选型建议:
- 域内/跨域控制类服务:优先 SOME/IP;
- 智驾感知/规控等数据密集型服务:可评估 DDS;
- 同一车型内协议种类应控制在 2 种以内,降低集成与运维复杂度。
5.2 服务发现设计
- 采用 SOME/IP-SD(Service Discovery)实现运行时服务发现,消费方不硬编码服务部署位置;
- 每个服务实例由 (Service ID, Instance ID) 唯一标识,全项目集中分配,禁止重复;
- 服务上下线、重启时 SD 报文时延应满足业务恢复要求(建议故障检测 < 1s);
- 网络拓扑变化(如休眠唤醒)后的服务重发现流程必须测试覆盖。
5.3 QoS 设计
按服务关键等级定义差异化 QoS:
| 服务等级 | 典型服务 | 端到端时延 | 可靠性要求 | 通信建议 |
|---|---|---|---|---|
| 关键级 | 制动仲裁、转向辅助 | < 50 ms | 不允许丢失 | 高优先级 VLAN、TSN |
| 重要级 | 车窗/空调控制 | < 200 ms | 允许重试 | 普通以太网 |
| 一般级 | 信息查询、统计 | < 1 s | 允许丢弃 | 普通以太网 |
| 背景级 | 日志、标定上传 | 无硬性要求 | 尽力而为 | 限流传输 |
设计要求:
- 每个服务必须在契约中标注 QoS 等级;
- 网络层通过 VLAN 划分 + 优先级(802.1p)+ 可选 TSN(时间感知整形)保障关键级服务带宽;
- 消费方必须设置调用超时,禁止无限等待。
5.4 通信可靠性设计
- 超时与重试:Method 调用默认超时 1s(可按服务调整),重试次数不超过 2 次,且重试操作必须幂等;
- 幂等性:控制类 Method 必须设计为幂等(重复调用结果一致),避免重试导致执行器重复动作;
- 消息大小:单条服务报文建议不超过 1400 字节(避免 IP 分片),大数据传输使用分块传输或文件传输服务;
- 序列化开销:关注 Payload 序列化/反序列化 CPU 占用,高频服务建议评估静态序列化方案。
5.5 信号与服务的互通
存量 ECU 大量使用 CAN/LIN 信号,互通设计原则:
- 由网关/区域控制器承担 Signal-to-Service 适配职责,将信号打包为服务接口对外发布;
- 适配层维护信号-服务映射表,作为整车通信矩阵的一部分统一管理;
- 服务接口语义不得因底层信号格式改变而改变(适配层负责转换);
- 时序敏感信号(如快变动态信号)评估是否保留信号通道,避免服务化引入额外时延。
6. 服务安全设计
6.1 功能安全(Safety)
- 每个服务必须标注 ASIL 等级(QM / ASIL A-D);
- 高 ASIL 服务与低 ASIL 服务共存时,必须满足免于干扰(Freedom From Interference)要求:时间隔离、内存隔离、通信隔离(可通过 Hypervisor、分区、独立进程实现);
- 安全相关服务必须定义降级策略:
- 服务不可用时的安全状态(Safe State)定义;
- 超时后的默认行为(如车窗控制超时后停止运动);
- 安全服务的故障检测时间(FTTI)必须纳入设计指标并测试验证;
- 服务化不得降低原有信号架构的安全水平:若服务化引入新的失效模式,必须有对应的安全机制补偿。
6.2 信息安全(Security)
- 通信安全:跨安全域的服务调用必须启用加密与认证(如 SOME/IP-TLS / IPsec);
- 访问控制:服务提供方必须实现调用方身份校验,禁止无鉴权开放控制类接口;
- 报文完整性:CAN 侧互通信号使用 SecOC 保护,以太网侧使用 TLS/MACsec;
- 安全启动与可信执行:承载安全敏感服务的节点必须支持安全启动;
- 密钥管理:密钥不得硬编码在代码中,使用安全存储(HSM/TEE)管理;
- 每个服务必须完成 TARA(威胁分析与风险评估)并留存记录,满足 ISO 21434 与 UN R155 要求。
6.3 权限分级模型
建议将服务调用权限分为四级:
| 权限等级 | 说明 | 示例 |
|---|---|---|
| L0 公开 | 无需鉴权 | 只读信息查询 |
| L1 域内 | 同安全域内可信调用方 | 座舱域内 App 调用空调 |
| L2 整车可信 | 跨域但经认证的可信节点 | 场景编排服务调用多域服务 |
| L3 特权 | 需特殊授权(如诊断仪、云端) | 远程控车、刷写 |
每个接口必须在契约中标注所需权限等级,提供方在入口处强制校验。
7. 服务部署与运行设计
7.1 部署单元设计
- 服务的部署单元为进程(而非整车单一大进程),单服务崩溃不影响其他服务;
- 每个部署单元声明:资源需求(CPU/内存/存储)、依赖服务、启动优先级;
- 强实时服务可部署在独立分区/虚拟机中,与普通服务隔离;
- 部署位置(哪个域控/节点)属于实现细节,允许在车型生命周期内迁移,前提是不改变接口契约。
7.2 生命周期管理
服务实例生命周期状态机(参考 AUTOSAR EM/SM):
未初始化 → 初始化中 → 运行中 ⇄ 暂停 → 停止 → 卸载
设计要求:
- 服务启动顺序由执行管理(Execution Management)统一编排,依赖关系显式声明;
- 服务必须支持优雅停机(Graceful Shutdown):停止对外提供 → 完成在途请求 → 释放资源;
- 服务崩溃后由看门狗/守护进程自动重启,重启后必须能恢复到一致状态(持久化状态或重新拉取);
- 整机休眠/唤醒时,服务的休眠时序必须编排(先停消费方还是先停提供方需明确定义)。
7.3 网络与电源模式适配
- 服务必须适配整车电源模式(OFF / ACC / RUN / 休眠),在低功耗模式下非关键服务应停止;
- 唤醒后服务恢复时间纳入考核指标(关键服务建议 < 2s 可用);
- 部分唤醒(Partial Networking)场景下,服务可用性降级策略必须明确。
7.4 资源与性能约束
- 服务内存使用必须设置上限(cgroup/资源配额),防止内存泄漏拖垮整机;
- 高频服务(> 100 Hz)需单独评估 CPU 占用与调度优先级;
- 日志与埋点必须支持分级与采样,背景级日志不得影响关键服务时延。
8. 服务治理
8.1 服务目录管理
服务目录是服务化的核心资产,必须包含以下信息:
| 字段 | 说明 |
|---|---|
| 服务名 / Service ID | 全项目唯一标识 |
| 业务描述 | 能力说明与使用场景 |
| 接口契约版本 | 当前生效的 Major.Minor 版本 |
| 提供方节点 | 当前部署位置(可变) |
| 消费方清单 | 已知的调用方,用于变更影响分析 |
| QoS 等级 / ASIL 等级 | 关键性与安全属性 |
| 权限等级 | 调用所需授权 |
| 责任人/责任团队 | 接口变更与维护负责人 |
治理要求:
- 服务目录由架构团队集中维护,变更走评审流程;
- 新服务注册、接口变更、服务下线都必须在目录中留痕;
- 建议将服务目录与 ARXML/IDL 仓库联动,工具自动校验一致性。
8.2 配置与 ID 管理
- Service ID / Instance ID / Method ID / Event ID 集中分配,建立编号登记表;
- 预留 ID 段:为后续车型预留扩展区间,避免重新分配导致冲突;
- 配置文件(服务地址、端口、参数)与代码分离,支持按车型/配置差异化下发。
8.3 变更管理流程
变更申请 → 影响分析(消费方清单)→ 兼容性判定 → 契约评审 → 版本发布 → 集成验证 → 整车回归
关键规则:
- Minor 变更:提供方自行发布,但必须通知所有已知消费方;
- Major 变更:必须架构委员会评审,提供迁移方案与过渡期安排;
- 任何契约变更必须通过 CI 中的契约一致性检查(兼容性 lint)后方可合入。
8.4 服务监控与可观测性
- 运行时采集:服务可用性(上/下线事件)、调用量、成功率、时延分布、错误码分布;
- 关键服务的调用链路追踪(Trace),支持跨节点问题定位;
- 服务异常(崩溃、超时激增)自动上报诊断系统并记录 DTC;
- 监控数据用于服务目录的持续优化(如发现从未被调用的服务→评估下线)。
9. 测试与验证
9.1 测试分层策略
| 测试层级 | 对象 | 内容 | 典型手段 |
|---|---|---|---|
| 单元测试 | 服务内部实现 | 业务逻辑、边界条件 | GTest 等框架 |
| 服务级测试 | 单个服务 | 接口契约符合性、错误码、异常输入 | Mock 依赖服务、接口自动化测试 |
| 集成测试 | 服务间交互 | 依赖链路、时序、订阅/通知 | SIL/HIL 环境 |
| 系统/整车测试 | 全车 | 场景链路、休眠唤醒、故障注入 | 整车 HIL、实车路试 |
9.2 契约一致性测试
- 提供方必须通过基于契约自动生成的测试用例(覆盖所有 Method/Event/Field);
- 消费方必须验证对未知枚举值、缺省字段的宽容处理;
- CI 中加入契约兼容性检查:新契约与已发布版本对比,自动识别破坏性变更。
9.3 异常与故障注入测试
必测场景清单:
9.4 性能与时延测试
- 端到端时延按 QoS 等级考核(见 5.3 节指标);
- 高负载场景(多场景并发触发)下的服务响应时间不得劣化超过 20%;
- 长时间稳定性测试(≥ 72h)监控内存/句柄泄漏。
10. 诊断与 OTA 升级
10.1 服务化诊断
- 诊断通信采用 DoIP(ISO 13400)+ UDS(ISO 14229);
- 每个服务提供标准诊断能力:版本查询、软/硬件信息读取、故障码(DTC)读取与清除;
- 服务错误码与 DTC 的映射关系集中维护;
- 支持远程诊断:经云端/诊断仪访问服务健康状态。
10.2 OTA 与服务化的配合
- 服务粒度即 OTA 粒度:服务作为可独立升级的软件包单元;
- 升级包必须声明依赖的接口契约版本范围,升级管理器在刷写前校验兼容性;
- 服务级灰度升级:先小范围车辆验证,再全量推送;
- 升级失败必须回滚到上一版本,回滚后服务可用性自动恢复;
- 升级过程中的服务状态(不可用/降级)必须通知依赖方,禁止静默失效。
11. 从信号架构向服务架构的演进路线
11.1 演进三阶段
阶段一:网关适配期
- 保留存量 ECU 信号通信,由网关/域控做 Signal-to-Service 适配;
- 上层新功能基于服务接口开发,不直接感知信号;
- 适用:现有平台改造,风险低。
阶段二:域内服务化
- 域控制器内软件按服务重构(如车身域控、座舱域控);
- 域间通信部分服务化,关键实时链路保留信号通道;
- 适用:新一代域集中架构。
阶段三:整车服务化
- 中央计算 + 区域控制架构,整车能力全面服务化;
- 服务可跨节点动态部署,支持功能级 OTA;
- 适用:中央集中式架构。
11.2 演进实施原则
- 双轨并行:信号与服务接口可长期共存,通过适配层互通,不搞一刀切迁移;
- 高频/实时信号谨慎服务化:评估时延与带宽开销后再决定;
- 先增量后存量:新功能直接用服务接口,存量功能按域逐步迁移;
- 每阶段有验收标准:接口契约覆盖率、服务化功能占比、OTA 独立升级能力。
11.3 常见风险与对策
| 风险 | 对策 |
|---|---|
| 服务粒度失控,目录膨胀 | 定期服务治理评审,合并/下线低价值服务 |
| 契约频繁破坏性变更 | 强制版本管理 + CI 兼容性检查 |
| 安全服务被服务化降低安全水平 | 安全服务独立评审,保留必要时回退到信号通道 |
| 通信负载评估不足 | 服务化前做通信矩阵仿真(时延/带宽) |
| 组织协作脱节(接口归属不清) | 服务目录明确责任人,变更走评审 |
12. 附录
附录 A:服务定义模板
| 项目 | 内容 |
|---|---|
| 服务名称 | <功能域>_<能力名>_Service |
| Service ID / Instance ID | |
| 业务描述 | |
| 接口契约版本 | |
| QoS 等级 | 关键/重要/一般/背景 |
| ASIL 等级 | QM / A / B / C / D |
| 权限等级 | L0-L3 |
| 部署节点 | |
| 责任人/团队 | |
| 依赖服务 | |
| 已知消费方 |
附录 B:接口定义模板
[Method 示例]
名称:OpenWindow
描述:请求打开指定车窗
前置条件:电源模式 = RUN;权限 ≥ L1
参数:- windowId: uint8,枚举(FL=1, FR=2, RL=3, RR=4)- ratio: uint8,0-100,目标开度百分比
返回:- OK / NOT_AVAILABLE / INVALID_ARGUMENT / BUSY / PERMISSION_DENIED
超时:1000 ms,重试 1 次
幂等:是(重复调用目标开度一致)
QoS:重要级
版本:1.0
附录 C:设计评审检查清单(汇总)
服务划分
接口设计
通信设计
安全
运维与治理
本手册为服务化设计的基线规范,各项目可在不降低基线要求的前提下制定项目级细则。