0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SOA架构/测试阶段接口描述语言转换方案

北汇信息POLELINK 2022-08-04 18:02 次阅读

SOA架构盛行

随着汽车新四化的推进,汽车整车厂在实现车辆网联、自动驾驶和数据驱动的同时,更要在满足用户体验和基本服务的基础上快速响应客户的个性化需求,为更好地解决这些新的挑战,整车厂引入了高性能的芯片、突破性的技术产品,同时传统的EE架构也需要变革,SOA(面向服务的架构)成为大多整车厂响应市场需求的首选架构。SOA架构的主要优势是可以在很大程度上实现分布式系统软件模块间的解耦,通过软件升级OTA可以更方便灵活地将服务实体部署在任意的域控制器上,服务之间只需通过简单、精确定义的接口进行通讯,不涉及底层编程接口和通讯模型。而且对于ECU的版本更新、信号库更新、代码修改等过程更加简便和灵活。简化了注册服务与调用API,节约了时间成本,提高系统的健壮性和扩展性。

SOA开发和部署步骤

设计和部署一个SOA汽车软件大概可分为以下几个步骤:

poYBAGLrke6AVHbGAAC4V01CEIk568.png

图1: SOA开发部署步骤

服务接口开发阶段往往需要挑选有固定规则、逻辑性强,又有大量高度重复的场景进行测试验证,为了快速进行验证,架构工程师通常会以IDL(接口描述语言)来做服务定义描述,作为开发链路上后续工作开展的输入,业务逻辑开发阶段以统一的标准进行服务实现。

市面上的IDL语言非常多,例如FIDL、Protobuf、vCDL、ARXML、OMG IDL、CANoe FDX等。测试人员对于各种IDL的语法规则需要零基础开始学习,在转换过程中相应的操作也比较复杂、繁琐,同时出错率也很高。

如果软件的架构采用了SOA,对系统中的功能进行了服务化,在前期技术选型,清单定义、架构设计以及中期的业务逻辑开发阶段都会碰到诸如以下的几种场景。

场景一:

架构人员在使用PREEvision Adaptive AUTOSAR进行系统建模、定义服务相关SWC后,通常会导出不同类型的ARXML,该文件定义了各服务接口、数据类型、参数引用等,这些AP ARXML可导入到CANoe中进行节点仿真和监控以太网通信,也支持导入DaVinci IDE生成代码,配合DaVinci进行开发。但是这个建模过程短期内无法完成,需要不停地沟通协调,考虑便捷性,在沟通过程中相关方会以Excel作为沟通输入,最终会将这些Excel中的配置信息再转换为ARXML导入到相关的工具中进行验证。

poYBAGLrkg2AWrrvAABzf_g8Npo973.png

图2-1:接口和数据类型定义Excel

poYBAGLrkhmAI6MgAACv5XMAafg981.png

图2-2:接口和数据类型定义Excel

如上图简单示例,其中结构体引用,数据类型等信息容易出错,时常需要反复修改后再重新转换为ARXML,这个过程费时费力,从效率角度来说也影响了软件的开发进度。

场景二:

以太网测试(以SOME/IP为例)时,开发人员输出的是Excel,测试人员需要再把Excel转成测试软件可以支持的文件格式,如vCDL,此环节工作量极大,正确率也无法保证。

poYBAGLrkiqAPqoJAABW1kKmR1M894.png

图3-1:以太网测试接口定义Excel

pYYBAGLrkjuAa1eKAADWjnNwzU0295.png

图3-2:以太网测试接口定义Excel

场景三:

开发人员在使用DaVinci做架构设计时,为了加快开发周期,通常情况下会先使用Excel做模板,在Excel中填入接口信息、数据类型、SWC定义、SWC与接口关系等信息,然后再由模块责任人把Excel中的数据在DaVinci Developer中做相应的节点配置和连线关联,整个过程出错概率高并且重复性高,需要有工具能依据Excel模板文件自动生成ARXML文件,实现SWC的转换及接口与SWC结合工作,用以提高设计效率。

场景四:

在SOA架构中,中间件技术的应用使得应用软件与底层的操作系统硬件实现了解耦,我们可以使用 SIL(Software in loop) 技术在系统开发早期对系统进行功能验证。SIL测试的一个重要环节是 SIL Adapter开发。SIL Adapter实现了测试系统对被测服务实现的调用。针对各个服务接口的 SIL Adapter代码结构是相同的,只是接口参数数量、名称、类型方面有少量代码差异,整个过程重复性也较高,需要有工具能自动将架构设计产出的FIDL、XML、ARXML等文件自动转化为C++等代码,同时能根据文件中的描述/备注等内容自动生成插桩代码,这将缩短验证周期。

场景五:

SOA架构设计、测试验证等阶段,工程师在使用相关工具软件时,会使用许多配置文件作为输入或输出文件,但是鉴于使用的工具众多,且文件格式之间的标准并不统一,所使用的各个开发工具及测试工具也并不能支持所有的格式,所以各个工具间的串联并不流畅,影响工程师的工作效率,需要有工具能自动将这些不同格式的文件进行互相转换以实现工具的高效串联。

场景六:

测试用例通常是在Doors或Polarion中管理,测试用例中的测试步骤或测试标准正常是以自然语言的方式描述,在测试执行过程中软件无法识别这些描述性语言,测试人员需要先将这些自然语言转换为脚本文件,再把测试脚本放到测试工程中执行,在测试用例较多的时候这个工作量将会非常庞大,需要有工具能集成相关用例管理软件,将测试用例能自动转换为相应的测试软件的脚本文件,在提高效率的同时减少出错机率。

场景七:

SOA测试开发过程大体上需要进行以下几个步骤

1.测试规范开发:基于需求规范和测试经验及对实现方案的理解,完成测试规范的开发

2. SOA-HIL测试系统需求分析和测试系统开发:被测对象的引脚和资源定义,HIL硬件及测试软件运行环境搭建

3.测试工程开发:开发测试工程,实现测试规范所定义的测试内容的自动化/半自动化测试

4.仿真模型开发:开发仿真模型,与待测节点建立接口交互

5.测试环境集成调试与测试执行:针对某一具体被测对象进行测试环境搭建、工程集成调试与测试执行

以上各个步骤中所需的输入物类型较多,如:SOA功能的需求规范、服务接口规范,资源定义文件,测试范围定义,ARXML等类型数据库文件,测试系统第三方编程脚本,测试规范,通信数据库,通信矩阵文件,被测节点交互数据格式定义等,需要有工具能够按测试项目进行统一分类管理,同时能够支持相关输入物间进行格式转换,转换后的结果能够便捷地加载到相关的测试软件中或能够通过网络自动上传到配置库的对应位置下方便后续操作。

场景八:

目前SOA架构软件普遍采用敏捷开发方式进行管理,软件版本的高频迭代极大考验了测试人员工作量和自动化测试能力,目前大多整车厂和零部件供应商基本上已在进行或正在研案持续集成测试方案来解决这一问题。

如下图所示,随着SOA架构的盛行,输入物或规范文件已经出现了多样化,但是持续集成测试推进的前提条件是需要预先将这些测试软件不可识别的接口文件或用例文件转换为符合测试软件定义的规范脚本,并且能够与相关的工具进行集成自动转换。

poYBAGLrkpeAYAPdAABl2_pbgPk752.png

图4:持续集成测试文件转换需求示意图

为什么需要接口描述语言转换

以上几个场景都需要测试人员手动录入或转换后才能继续推动项目进度,此环节尤为关键,但往往转换周期较长,且该工作耗时又费力,出错率也较高,导致经常返工,这些问题一直困扰着的开发/测试人员。

PAVELINK.SOA-Converter介绍

针对以上问题,北汇信息开发出了接口描述语言转换工具——PAVELINK.SOA-Converter。

PAVELINK.SOA-Converter是一个基于Eclipse开发的IDL转换工具。可实现对常用IDL语言的批量转换(FIDL、OMG IDL、Protobuf、vCDL、CANoe FDX、ARXML等),例如FIDL转CANoe FDX,FIDL与Protobuf互转,同时也支持直接通过Protobuf转换CANoe FDX等便捷的转换功能,转换前可根据用户需求自定义输出目录、是否忽略注释信息、是否批量转换、是否转换为多个文件等配置。

PAVELINK.SOA-Converter结合测试代理引擎进行自动化回归测试,可以解决整个链路的沟通问题并缩短测试验证的时间。

用户通用使用PAVELINK.SOA-Converter实现对文件的快速转换,相较于人工转换,不但很大程度上节约了时间成本,而且保障了转换的正确率,提高了开发测试的进度,同时有效降低了维护的成本。

pYYBAGLrkrmAAP5wAABjmBDhohk803.png

图5: PAVELINK.SOA-Converter工作示意图

主要功能如下:

1.接口语言脚换器:通过接口语言转换实现基于SOA架构的软件设计开发过程中各工具链间的连通。

2.接口语言编辑器:通过搭建多个接口语言集中一站式编辑环境,可以实现对接口文件的二次编辑转换,同时实现语法校验、关键字提示和补全等功能。

3.命令行转换器提供无头(headless)跨平台的命令行工具,支持命令行调用转换功能。

4.配置库集成:集成配置库,自动同步文件,更新提醒,当有源文件更新后实现自动转换为目标文件。

5.开放调用接口:通过文件流监听方式与外部工具集成,为自动化测试提供便利。

6.插件灵活拓展:通过插件的灵活拓展,快速实现新的脚本语言转换。

7. SOA通信方案拓展:通过对接口描述语言的解读,自动转换为服务端(Skeleton)和客户端(Proxy)框架代码等。

PAVELINK.SOA-Converter使用说明

PAVELINK.SOA-Converter的使用操作十分便捷,在Eclipse中只需要点击鼠标,或者使用简单的命令即可完成转换工作。

1. Eclipse插件转换

在Eclipse中安装好插件,选择文件后右击->SOA-Converter->选择需要转换的格式类型即可。

poYBAGLrkv2AD4FHAAEe1EPH2JI941.png

图6: PAVELINK.SOA-Converter图形化示意图

2.命令行转换

也可通过命令执行转换。

常用参数说明:

[-sf]指定转换的源文件类型。

[-tf]指定转换后生成的文件类型。

[-sp]指定需要转换的文件或位置。

[-d]指定转换后文件输出位置。

[-dv]忽略版本校验。

pYYBAGLrkxWAYeCWAABtwrGdwEU556.png

图7: PAVELINK.SOA-Converter命令行示意图

3.示例说明

某OEM基于SOA架构的服务接口测试项目,使用PAVELINK.SOA-Converter实现FIDL转CANoe系统变量XML,简化测试验证过程。

pYYBAGLrkymAIEXpAAHekypAxPE601.png

图8: FIDL转CANoe系统变量示例

转换完成后,按步骤在CANoe中直接导入转换后的XML文件即可,如下图。

poYBAGLrkzaAeJsfAACyZLiFmAg767.png

图9:转换后的系统变量XML文件导入CANoe软件示例

CCU域控制器的测试规范、脚本开发及测试服务,使用PAVELINK.SOA-Converter实现FIDL转SOA功能实现服务端和客户端C++代码示例

poYBAGLrk0GAdP4eAAE9iQoLnzI900.png

图10: SOA通信实现节点示意图

如上图所示,调用PAVELINK.SOA-Converter转换PREEvision等设计工具输出的服务接口文件,生成对应的Proxy、Skeleton、Stub代码。

pYYBAGLrk0uAM3lpAAFmH4oF_yA931.png

图11:服务接口文件转换C++示例图

某供应商网联类控制器SOA功能规范测试开发项目,使用PAVELINK.SOA-Converter实现Excel转ARXML,接口和SWC关联示例

poYBAGLrk1aAG5_lAAEwejBpCPw970.png

图12: Excel模板示意图

转换后ARXML内容如下:

poYBAGLrk2mAAPI6AANdn0WeOyY045.png

图13: ARXML截图示意

更多功能,敬请期待

IDL文件编辑器,支持实时转换,即编辑的同时进行转换结果的预览,关键字提示、关键字高亮、语法错误提示等;

网络测试模板文件定制,自动化脚本生成;

测试工具集成,自动驱动CANoe、ECU-TEST、dSPACE等加载工程执行;

持续测试集成,服务接口定义文件变更后自动触发测试验证执行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SOA
    SOA
    +关注

    关注

    1

    文章

    271

    浏览量

    27236
收藏 人收藏

    评论

    相关推荐

    PAVELINK.SOA-Converter-应用场景介绍#SOA #IDL转化 #汽车架构开发

    SOA
    北汇信息POLELINK
    发布于 :2024年04月29日 18:56:30

    汽车电子电气架构SOA如何实现?

    在车载环境中,SOME/IP基本解决了SOC,但SORS呢?SOS呢?仅有SOC的SOA是没有灵魂的,是不完整,也不可能实现SOA的目标,故而,若认为SOA=SOME/IP的话,你真的低估了S
    发表于 04-11 10:01 78次阅读
    汽车电子电气<b class='flag-5'>架构</b><b class='flag-5'>SOA</b>如何实现?

    fpga用的是什么编程语言 fpga用什么语言开发

    fpga用的是什么编程语言 FPGA(现场可编程逻辑门阵列)主要使用的编程语言是硬件描述语言(HDL)。在众多的HDL中,Verilog HDL和VHDL是最常用的两种。 Verilog HDL
    的头像 发表于 03-14 17:09 952次阅读

    fpga芯片用什么编程语言

    FPGA芯片主要使用的编程语言包括Verilog HDL和VHDL。这两种语言都是硬件描述语言,用于描述数字系统的结构和行为。
    的头像 发表于 03-14 16:07 617次阅读

    verilog与其他编程语言接口机制

    Verilog是一种硬件描述语言,用于描述数字电路的行为和结构。与其他编程语言相比,Verilog具有与硬件紧密结合的特点,因此其接口机制也有一些与众不同之处。本文将详细介绍Veril
    的头像 发表于 02-23 10:22 221次阅读

    soa光放大器增益测试

    结附近产生复合发光,进而增强光信号的强度。SOA光放大器具有宽带宽、高增益、低噪声等特点,因此在光通信和光网络中有广泛的应用。 为了确保SOA光放大器的质量和性能,需要进行增益测试。增益测试
    的头像 发表于 01-10 13:38 281次阅读

    PAVELINK.SOA-Converter新版本发布

    接口描述语言转换工具PAVELINK.SOA-Converter(PAVELINK.SOA-Converter-v1.1.2)提供免费试用,
    的头像 发表于 12-07 12:11 233次阅读
    PAVELINK.<b class='flag-5'>SOA</b>-Converter新版本发布

    基于XML语言描述接口实现方法

    电子发烧友网站提供《基于XML语言描述接口实现方法.pdf》资料免费下载
    发表于 11-06 10:39 0次下载
    基于XML<b class='flag-5'>语言</b><b class='flag-5'>描述</b>的<b class='flag-5'>接口</b>实现方法

    FPGA-设计语言专题

    本专题为FPGA设计语言技术专题,像 Verilog 和 VHDL 之类的硬件描述语言 (HDL) 主要用于描述硬件行为,以便将其转换为由组合门电路和时序元件组成的数字块。为了验证 H
    发表于 10-07 16:30
    FPGA-设计<b class='flag-5'>语言</b>专题

    基于商用车的域控架构SOA的实现方案

    车身域控制器提供的所有服务应按照SOME/IP协议将服务消息进行设定。完成后会进行服务接口的开发,服务接口的开发和部署是SOA软件的第一步并且是关键的一步,主要包括:服务的类型定义、端口设置、进程绑定。
    发表于 09-19 12:01 156次阅读
    基于商用车的域控<b class='flag-5'>架构</b>下<b class='flag-5'>SOA</b>的实现<b class='flag-5'>方案</b>

    VHDL与Verilog硬件描述语言TestBench的编写

    VHDL与Verilog硬件描述语言在数字电路的设计中使用的非常普遍,无论是哪种语言,仿真都是必不可少的。而且随着设计复杂度的提高,仿真工具的重要性就越来越凸显出来。在一些
    的头像 发表于 09-09 10:16 907次阅读
    VHDL与Verilog硬件<b class='flag-5'>描述语言</b>TestBench的编写

    二十进制编码器及Verilog HDL描述 Verilog HDL程序的基本结构及特点

    节通过硬件描述语言Verilog HDL对二十进制编码器的描述,介绍Verilog HDL程序的基本结构及特点。
    的头像 发表于 08-28 09:54 1423次阅读
    二十进制编码器及Verilog HDL<b class='flag-5'>描述</b> Verilog HDL程序的基本结构及特点

    基于SOA架构的整车操作系统的变革

    SOA全称为Service Oriented Architecture,即面向服务的架构。1996年,SOA概念由Gartner提出,并率先在IT行业被应用推广。目前,SOA
    发表于 08-11 11:31 368次阅读
    基于<b class='flag-5'>SOA</b><b class='flag-5'>架构</b>的整车操作系统的变革

    求助,TD支持哪些硬件描述语言,支持混合语言吗?

    TD支持哪些硬件描述语言,支持混合语言吗?
    发表于 08-11 08:21

    Verilog HDL的历史 FPGA硬件描述语言设计流程

    硬件描述语言(HDL)是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计者利用这种语言可以从上层到下层(从抽象到具体)逐层描述
    的头像 发表于 08-08 09:23 691次阅读
    Verilog HDL的历史 FPGA硬件<b class='flag-5'>描述语言</b>设计流程