SOA通讯架构、车辆、构建方法及存储介质与流程

文档序号:33640015发布日期:2023-03-29 01:48阅读:50来源:国知局
SOA通讯架构、车辆、构建方法及存储介质与流程
soa通讯架构、车辆、构建方法及存储介质
技术领域
1.本技术涉及智能座舱技术领域,特别涉及一种soa通讯架构、车辆、构建方法及存储介质。


背景技术:

2.传统分布式电子电气架构下,汽车采用“面向信号”软件架构,车内各个节点之前通过can(controller area network,控制器局域网络)/lin(local interconnect network,局域互联网络)等总线进行通信。随着汽车智能化升级需求的快速增长,传统的这种基于信号的通讯网络及软件架构中扩展性差、移植成本高等问题逐渐凸显。
3.因此,引入soa(service-oriented architecture)面型服务的架构设计是目前主流的解决方案,且相关技术提出了仪表上soa架构和实现方法。然而,相关技术提出的仪表上soa架构和实现方法,由于系统差异,无法在其他系统上适用。


技术实现要素:

4.本技术提供一种soa通讯架构、车辆、构建方法及存储介质,以解决相关技术中soa架构无法在其他系统上适用等问题。
5.本技术第一方面实施例提供一种soa通讯架构,包括:软件开发框架中提供应用与服务的不同层面;转换模块,所述转换模块与每个层面之间通过基于面向服务架构soa服务定义的通信接口进行通信,所述转换模块包括通信中间件和soa服务接口,其中,所述soa服务接口用于将上层调用的接口映射成对应的soa服务接口,实现不同层面的应用和/或服务对所述soa服务接口的调用;所述通信中间件用于将所述应用的应用数据和/或所述服务的服务数据发送至以太网,接收其他域应用的调用请求,基于所述调用请求调用所述soa服务接口对外提供接口。
6.根据上述技术手段,本技术实施例可以实现架构中不同层面的应用和服务都能接入转换模块,实现与其他域的基于soa架构的通讯,同时将soa服务接口和通信中间件统一集成在转换模块中,而不是分布在不同的应用中,提升了整体开发效率且便于管控。
7.进一步地,所述不同层面包括应用程序app层和本地程序native层,所述转换模块包括第一转换模块和第二转换模块,所述第一转换模块与app层之间设置有第一通信接口,所述第二转换模块分别与所述第一转换模块和所述native层之间设置有第二通信接口和第三通信接口;其中,所述第一转换模块用于将所述第一通信接口的调用转换成所述第二通信接口的调用;所述第二转换模块集成有所述通信中间件的动态库和所述soa服务接口代码的动态库。
8.根据上述技术手段,本技术实施例可以通过第一转换模块和第二转换模块实现与app和native层之间的通信。
9.进一步地,所述soa服务接口代码包括soa客户端的框架代码和soa服务端的框架代码。
10.进一步地,所述app层集成有jar包,所述native层集成有so库,以实现对应接口的调用。
11.进一步地,所述第二转换模块还包括:适配模块,用于适配所述通信中间中不同通信协议的服务接口。
12.根据上述技术手段,本技术实施例在第二转化模块中还设置有适配模块,可以智能适配不同通信协议的服务接口,可以在不改变上层架构的情况下,兼容不同的通信中间件协议。
13.进一步地,所述转换模块还包括:权限认证模块,用于对所述应用和所述服务配置预设权限,使得所述应用和所述服务在所述预设权限范围内实现soa服务接口的调用。
14.根据上述技术手段,本技术实施例在转换模块中还设置有权限认证模块,应用和服务配置有相应的权限,通过soa转换模块调用对应的soa服务,可以提高整车的功能安全性。
15.进一步地,所述转换模块还包括:过滤模块,用于对数据进行差分处理,得到变化数据,上报所述变化数据。
16.根据上述技术手段,本技术实施例在转换模块中还设置有过滤模块,对数据进行差分处理,可以降低应用的处理开销,提升软件的健壮性。
17.进一步地,所述soa服务接口中封装有所述通信中间件的调用代码,以实现soa通信。
18.根据上述技术手段,本技术实施例可以通过soa服务接口封装通信中间的调用代码,从而实现soa通信。
19.进一步地,所述通信中间件支持tcp/ip协议栈。
20.进一步地,所述通信中间件用于将soa数据序列化之后通过tcp/ip协议栈发送给接收端,接收端接收数据并进行反序列化,得到所述soa数据。
21.本技术第二方面实施例提供一种车辆,包括如上述实施例所述的一种soa通讯架构。
22.本技术第三方面实施例提供一种soa通讯架构构建方法,包括以下步骤:获取通信中间件协议栈的实现源码和soa服务定义;将通信中间件协议栈的实现源码编译成动态链接库,按照soa服务定义生成soa服务接口代码,将所述soa服务接口代码编译成动态库,并按照所述soa服务定义通信接口;根据所述动态链接库和所述动态库创建转换模块,使得所述转换模块包括通信中间件和soa服务接口,并基于所述通信接口建立所述转换模块与目标软件开发框架中提供应用与服务的不同层面之间的通信。
23.可选地,所述不同层面包括应用程序app层和本地程序native层,所述app层集成有jar包,所述native层集成有so库,以实现对应接口的调用。
24.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的soa通讯架构构建方法。
25.由此,本技术至少具有如下有益效果:
26.(1)可以实现架构中不同层面的应用和服务都能接入转换模块,实现与其他域的基于soa架构的通讯,同时将soa服务接口和通信中间件统一集成在转换模块中,而不是分布在不同的应用中,提升了整体开发效率且便于管控。
27.(2)可以通过第一转换模块和第二转换模块实现与app和native层之间的通信。
28.(3)在第二转化模块中还设置有适配模块,可以智能适配不同通信协议的服务接口,可以在不改变上层架构的情况下,兼容不同的通信中间件协议。
29.(4)在转换模块中还设置有权限认证模块,应用和服务配置有相应的权限,通过soa转换模块调用对应的soa服务,可以提高整车的功能安全性。
30.(5)在转换模块中还设置有过滤模块,对数据进行差分处理,可以降低应用的处理开销,提升软件的健壮性。
31.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
32.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
33.图1为根据本技术实施例提供的一种soa通讯架构的方框示意图;
34.图2为根据本技术一个实施例提供的一种soa通讯架构的方框示意图;
35.图3为根据本技术实施例提供的一种soa通讯架构构建方法的流程图;
36.图4为根据本技术一个实施例提供的一种soa通讯架构构建方法的流程图。
具体实施方式
37.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
38.soa是一种软件架构,同时也是一种软件设计方法和思想。它将应用程序的不同功能单元(服务)拆分,通过这些服务之间定义良好的接口和协议联系起来。接口采用中立的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言,这使得构建各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
39.soa是实现软件定义汽车的软件基础,汽车领域采用soa能够加快车辆与互联网的互联互通,能够大幅提升娱乐影音娱乐功能的用户体验。车机是汽车应用操作的主要入口,在车机系统的选择上,android os是目前的主流。因此,android系统的车机与其他域(例如车身域、自驾域等)如何基于soa架构进行通讯,是必须要面对的问题。
40.下面参考附图描述本技术实施例的soa通讯架构、车辆、构建方法及存储介质。针对上述背景技术中提到的传统的基于信号的通讯网络及软件架构中扩展性差、移植成本高的问题,本技术提供了一种soa通讯架构,在该通讯架构中,基于soa构建通讯架构,可以实现系统架构比如android架构中不同层面上的应用、服务都能接入soa转换模块,实现与其他域的基于soa架构的通讯,并且将soa服务接口和通信中间件统一集成在转化模块中,提升了整体开发效率且便于管控。由此,解决了相关技术中soa架构无法在其他系统上适用等问题。
41.需要说明的是,以下实施例中soa通讯架构可以应用于android系统或者linux系统等多个操作系统上,以应用于android系统为例,不作具体限定。
42.图1为根据本技术实施例提出的一种soa通讯架构,包括:目标软件开发框架中提供应用与服务的不同层面和转换模块。
43.其中,转换模块与每个层面之间通过基于面向服务架构soa服务定义的通信接口进行通信,转换模块包括通信中间件和soa服务接口,其中,soa服务接口用于将上层调用的接口映射成对应的soa服务接口,实现不同层面的应用和/或服务对soa服务接口的调用;通信中间件用于将应用的应用数据和/或服务的服务数据发送至以太网,接收其他域应用的调用请求,基于调用请求调用soa服务接口对外提供接口。
44.其中,应用与服务对应于不同的应用单元,它们可能是soa服务的调用者,比如车辆设置应用;也有可能是soa服务的提供者,比如音乐应用,对外提供了音乐控制的服务。同时按照系统架构划分,例如按照android系统架构等划分,这些应用与服务可能存在于系统架构中的不同层面,比如app,framework,native。
45.其中,转换模块通过基于面向服务架构soa服务定义的通信接口与不同层面之间进行通信;转换模块包括通信中间件和soa服务接口。
46.其中,soa服务接口中封装有通信中间件的调用代码,以实现soa通信。
47.可以理解的是,转换模块是系统soa通信架构中soa数据统一的进出通路,通过转换模块,实现应用对soa服务接口的调用,反之,通过转换模块,其他域的应用可以调用应用暴露的接口。
48.在本技术实施例中,不同层面包括应用程序app层和本地程序native层,转换模块包括第一转换模块和第二转换模块,第一转换模块与app层之间设置有第一通信接口,第二转换模块分别与第一转换模块和native层之间设置有第二通信接口和第三通信接口;其中,第一转换模块用于将第一通信接口的调用转换成第二通信接口的调用;第二转换模块集成有通信中间件的动态库和soa服务接口代码的动态库。
49.可以理解的是,本技术实施例将不同层面主要划分为应用程序app层和本地程序native层。其中,app层集成有jar包,native层集成有so库,以实现对应接口的调用。
50.其中,第一转换模块可以理解为soa转换java模块,第二转换模块可以理解为soa转换native模块,二者在android系统上以两个单独的进程形式存在。
51.第一转换模块(即为soa转换java模块),该模块在android系统上以一个单独的服务进程存在,主要以java实现。该模块向上对接android app应用,通过aidl(android interface definition language)与android app进行通信。soa转换java模块向下对接soa转换native模块,二者之间以hidl进行通信。soa 转换java模块将soa java接口调用转换成对soa native接口的调用。
52.第二转换模块(即为soa转换native模块),该模块在android系统上以一个单独的进程形式存在,主要以c++/c实现。该模块集成了通信中间件的动态库和soa服务接口代码的动态库,当通信中间件和soa服务接口代码变更时soa转换native模块就可以消化掉大部分的变化不对上进行影响。soa转换native模块将上层调用的接口映射成对应的soa服务接口的调用,soa服务接口中封装了通信中间件的调用,从而实现soa通信。
53.在本技术实施例中,第二转换模块还包括:适配模块,用于适配通信中间中不同通信协议的服务接口。
54.可以理解的是,第二转换模块还具有协议智能适配模块,可以智能适配dds协议服
务接口和some/ip协议服务接口,可以在不改变上层架构的情况下,兼容不同的通信中间件协议。
55.在本技术实施例中,转换模块还包括:权限认证模块,用于对应用和服务配置预设权限,使得应用和服务在预设权限范围内实现soa服务接口的调用。
56.可以理解的是,转换模块还具有权限认证模块,应用和服务需配置相应的权限,才能通过转换模块调用对应的soa服务,否则,转换模块会对调用进行拒绝,这样可以提高整车的功能安全性。
57.在本技术实施例中,转换模块还包括:过滤模块,用于对数据进行差分处理,得到变化数据,上报变化数据。
58.可以理解的是,转换模块中还具有过滤模块,对于一些频繁发送的数据进行差分处理,将变化的数据进行上报,不变化的数据不上报(具体策略结合实际情况),这样可以降低应用的处理开销,提升软件健壮性。
59.在本技术实施例,soa服务接口代码包括soa客户端的框架代码和soa服务端的框架代码。
60.需要说明的是,soa服务接口代码是通过服务定义生成的soa服务框架代码,一般是c++/c语言,该框架代码主要由两部分构成,soa proxy和soa skeleton。其中,soa proxy为soa客户端的框架代码,soa skeleton为soa服务端的框架代码;该框架代码与实际使用的通信中间件具有相关性。
61.需要说明的是,上述实施例中所述的通信中间件是soa服务之间的通信协议,属于应用层通信协议。目前车载上主流的通信中间件有dds(datadistribution service)数据分发服务,some/ip(scalable service-oriented middleware over ip)。dds和some/ip都允许应用使用发布/订阅模式和服务请求/回复模式(rpc)进行通信。目前,dds和some/ip协议库主要以c++/c代码实现。
62.在本技术实施例中,通信中间件可以支持tcp/ip协议栈,通信中间件用于将soa数据序列化之后通过tcp/ip协议栈发送给接收端,接收端接收数据并进行反序列化,得到soa数据。
63.可以理解的是,通信中间件负责将soa数据序列化之后通过tcp/ip协议栈发送给接收端,接收端接受soa数据并进行反序列化。
64.综上,通信中间件用于将应用的应用数据和/或服务的服务数据发送至以太网,接收其他域应用的调用请求,基于调用请求调用soa服务接口对外提供接口。其中,车内各系统之间通过以太网进行传输,各系统支持tcp/ip协议栈,通信中间件通过tcp/ip协议栈把数据发送到以太网上。
65.下面将以android架构的车机为例,如图2所示,soa通信架构包含如下单元:
66.1、通信中间件,soa服务之间的通信协议,属于应用层通信协议。目前车载上主流的通信中间件有dds(data distribution service)数据分发服务,some/ip(scalable service-oriented middleware over ip),它们都支持tcp/ip协议栈。通信中间件负责将soa数据序列化之后通过tcp/ip协议栈发送给接收端,接收端接收soa数据并进行反序列化。dds和some/ip都允许应用使用发布/订阅模式和服务请求/回复模式(rpc)进行通信。目前,dds和some/ip协议库主要以c++/c代码实现。
67.2、soa服务接口代码,通过服务定义生成的soa服务框架代码,主要由两部分构成,soa proxy和soa skeleton。其中,soa proxy为soa客户端的框架代码,soa skeleton为soa服务端的框架代码;服务接口代码与通信中间件有一定相关性,不包含功能实现的主体逻辑,代码具有规律性,因此可以使用统一的模板进行自动生成。其中,soa服务设计有统一的模板,包含服务名、方法名、方法类型、入参、出参等。在具体实现中,soa服务接口代码一般以库的形式存在。
68.3、应用或者服务,对应于不同的业务单元,它们可能是soa服务的使用者,比如车辆设置应用,通过点击车载设置应用上的车窗控制button触发调用车身域的车窗soa服务,实现车窗的关闭、打开等功能;应用也有可能是soa服务的提供者,比如音乐应用,对外提供了音乐控制的服务。同时,按照android架构划分,这些应用或服务可能存在于android架构中的不同层面,比如app,framework、native等,这里主要将其划分为两类,framework及之上的app和native。
69.4、soa 转换模块,android soa通信架构中soa数据统一的进出通路。通过soa 转换模块,实现应用/服务对soa服务接口的调用;反之,通过soa 转换模块,其他域的应用可以调用soa服务接口对外提供的接口。应用/服务可能存在于android架构中的不同层面,因此,soa转换模块要能够满足处于架构不同层面上的应用/服务接入。按照前文分类,soa转换模块包含如下两个子模块:
70.(1)soa 转换native模块,该模块在android系统上以一个单独的进程形式存在,主要以c++/c实现。该模块集成了通信中间件的动态库和soa服务接口代码的动态库,当通信中间件和soa服务接口代码变更时soa转换native模块就可以消化掉大部分的变化不对上进行影响。soa转换native模块将上层调用的接口映射成对应的soa服务接口的调用,soa服务接口中封装了通信中间件的调用,从而实现soa通信。
71.(2)soa转换java模块,该模块在android系统上以一个单独的服务进程存在,主要以java实现。该模块向上对接android app应用,通过aidl(android interface definition language)与android app进行通信。soa转换java模块向下对接soa转换native模块,二者之间以hidl进行通信。soa转换java模块将soa java接口调用转换成对soa native接口的调用。
72.5、以太网,车内各系统之间通过以太网进行数据的传输。进一步地,各系统支持tcp/ip协议栈,通信中间件通过tcp/ip协议栈把数据发送到以太网上。
73.进一步地,按照soa服务定义来定义soa java api,soa java api是soa转换java模块与android app之间的通信接口,与soa服务接口具有一一对应的关系,考虑到实现语言的不同,在参数数据类型上会有一些差异;
74.进一步地,按照soa服务定义来定义soa native api,soa native api是soa转换native模块与soa转换java模块、native应用之间的通信接口,与soa服务接口具有一一对应的关系。
75.进一步地,soa转换native模块中还具有协议智能适配模块,可以智能适配dds协议服务接口和some/ip协议服务接口,这样就可以不改变上层架构的情况下,兼容不同的通信中间件协议。
76.在soa转换模块中还具有权限认证模块,应用/服务需配置相应的权限,才能够通
过soa转换模块调用对应的soa服务,否则,soa转换模块会对调用进行拒绝,这样可以提高整车的功能安全性。
77.在soa转换模块中还具有数据过滤模块,对于一些频繁发送的数据进行差分处理,将变化的数据进行上报,不变化的数据不上报(具体策略结合实际情况),这样可以降低应用的处理开销,提升软件健壮性。
78.根据本技术实施例提出的soa通讯架构,可以实现架构中不同层面的应用和服务都能接入转换模块,实现与其他域的基于soa架构的通讯,同时将soa服务接口和通信中间件统一集成在转换模块中,而不是分布在不同的应用中,提升了整体开发效率且便于管控;可以通过第一转换模块和第二转换模块实现与app和native层之间的通信;在第二转化模块中还设置有适配模块,可以智能适配不同通信协议的服务接口,可以在不改变上层架构的情况下,兼容不同的通信中间件协议;在转换模块中还设置有权限认证模块,应用和服务配置有相应的权限,通过soa转换模块调用对应的soa服务,可以提高整车的功能安全性;在转换模块中还设置有过滤模块,对数据进行差分处理,可以降低应用的处理开销,提升软件的健壮性。
79.本技术实施例还提供了一种车辆,包括如上述实施例的soa通讯架构。
80.其次参考附图为根据本技术实施例提出的一种soa通讯架构构建方法的流程图。
81.如图3所示,该soa通讯架构构建方法包括以下步骤:
82.在步骤s101中,获取通信中间件协议栈的实现源码和soa服务定义。
83.在步骤s102中,将通信中间件协议栈的实现源码编译成动态链接库,按照soa服务定义生成soa服务接口代码,将soa服务接口代码编译成动态库,并按照soa服务定义通信接口。
84.其中,本技术实施例可以使用android ndk把通信中间件协议栈的实现源码编译成共享库,即动态链接库;按照soa服务定义自动生成soa服务接口代码,并将其编译成动态库;按照soa服务定义通信接口,即soa native api和soa java api。
85.在步骤s103中,根据动态链接库和动态库创建转换模块,使得转换模块包括通信中间件和soa服务接口,并基于通信接口建立转换模块与目标软件开发框架中提供应用与服务的不同层面之间的通信。
86.可以理解的是,本技术实施例可以根据动态链接库和动态库创建转换模块。
87.举例而言,创建soa转换native模块,在native模块包含接口转换单元,该单元负责将soa服务接口转换成native模块和外部应用(soa转换java模块和native层应用)通信的接口;native模块以链接的形式集成dds动态库和soa服务动态库;创建soa转换java模块,该模块包含接口转换单元,将android应用调用的soa java api转换成对soa native api调用。
88.在本技术实施例中,不同层面包括应用程序app层和本地程序native层,app层集成有jar包native层集成有so库,以实现对应接口的调用。
89.下面通过一个具体实施例来阐述一种soa通讯架构构建方法,如图4所示,包括以下步骤:
90.s1、使用android ndk把通信中间件协议栈的实现源码编译成共享库,即动态链接库。
91.s2、按照soa服务定义自动生成soa服务接口代码,并将其编译成动态库。
92.s3、按照soa服务定义soa native api和soa java api,依据定义生成soa java api jar和soa native api so库。
93.s4、创建soa转换native模块,在native模块包含接口转换单元,该单元负责将soa服务接口转换成native模块和外部应用(soa转换java模块和native层应用)通信的接口;native模块以链接的形式集成dds动态库和soa服务动态库。
94.s5、创建soa转换java模块,该模块包含接口转换单元,将android应用调用的soa java api转换成对soa native api调用。
95.s6、android app集成jar包,实现对应接口的调用;native应用集成soa native api so库,实现对应接口的调用。
96.需要说明的是,前述对soa通讯架构实施例的解释说明也适用于该实施例的soa通讯架构构建方法,实施例之间可以相互参考。
97.根据本技术实施例提出的soa通讯架构构建方法,可以实现android架构中不同层面上的应用/服务都能接入soa转换模块,实现与其他域的基于soa架构的通讯;同时,将soa服务接口和通信中间件统一集成在这一个模块中,而不是分布在不同的应用中各自集成,对于提升整体开发效率及基于soa架构的功能开发过程管控都有积极的意义。
98.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的soa通讯架构构建方法。
99.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
100.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
101.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
102.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵
列等。
103.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
104.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1