我们在极氪的团队通过基于模型的设计工作流解决了 SOA 应用程序开发中的这些挑战。本文描述了该工作流的三个关键领域:
使用 Simulink® 的客户端-服务器接口功能对 SOA 行为进行建模
通过基于 System Composer™ 的定制工具维护复杂的软件架构
对 SOA 应用程序实施有效的验证和确认
我们的经验展示了工程师如何利用基于模型的设计,加速从传统嵌入式系统向现代 SDV 的 SOA 软件架构转型。
在 Simulink 中对面向服务的应用程序进行建模
SOA 引入了与传统嵌入式系统根本不同的新通信模式。经典的 AUTOSAR 应用程序通过简单的 RTE 接口进行通信,这些接口促进了软件组件之间紧耦合、静态定义的交互。相比之下,SOA 通信模式(如远程过程调用和基于消息的交互)更加灵活和复杂。它们还实现了硬件和软件的解耦,以及软件的分层设计。为了充分利用这些模式,我们遵循建立在基于模型的设计之上的开发工作流,其中包括在 Simulink 中对 SOA 应用程序进行建模,使用 Embedded Coder® 生成 C++ 代码,使用我们构建的包装器生成器创建中间件集成代码,并将应用程序代码和集成代码合并为可部署的应用程序包。这个自动化工作流不需要任何手写的 C++ 代码。自动生成的包装器代码将我们从 Simulink 模型生成的应用程序代码与运行时环境 - ZEEKR ARK OS - 连接起来。
在我们工作流中的典型 SOA 模型包括服务提供者和客户端,两者都在 Simulink 中建模(图 1)。这种结构捕捉了基本的 SOA 行为:解耦的服务调用、显式的消息交换以及通信与计算的清晰分离。它使我们能够在 Simulink 中清晰地表达 SOA 概念,并为在分布式、基于服务的环境中部署这些模型做好准备。