一种SOA通讯系统的制作方法

文档序号:33189135发布日期:2023-02-04 07:43阅读:32来源:国知局
一种SOA通讯系统的制作方法
一种soa通讯系统
技术领域
1.本发明涉及计算机技术领域,具体地说,涉及一种soa通讯系统。


背景技术:

2.随着汽车智能化的快速发展,someip协议被大量使用在车载ecu设备中进行车载以太网的数据通信。但现有android系统的应用通过编写对应的jni代码与arxml生成的c++代码对接,arxml生成的c++代码只支持someip通讯,不能兼容android的跨进程通讯。


技术实现要素:

3.为了解决上述问题,本发明提出一种soa通讯系统,提供一种兼容android架构的跨进程通讯方案。
4.本发明实施例提供一种soa通讯系统,所述系统包括本机控制器和待通讯控制器;
5.所述本机控制器的第一客户端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
6.所述第一客户端通过调用所述proxy接口,发起绑定远程服务;
7.所述soa adapter判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;
8.所述第一客户端通过所述proxy接口调用所述soa adapter判定获取的服务是soa服务时,转向所述soa中间件;
9.所述第一客户端通过所述soa中间件调用someip接口,通过所述someip接口与所述待通讯控制器的第二服务端的someip接口通讯。
10.优选地,所述第一客户端调用所述第二服务端接口;
11.所述soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二服务端的someip接口;
12.所述第二服务端的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至所述第二服务端。
13.作为一种优选方案,所述soa adapter判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给所述第一客户端;
14.所述soa adapter调用bpbinder代理对象,由所述bpbinder代理对象调用binder driver驱动器与本机控制器的第一服务端共享内存。
15.进一步地,所述第一服务端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
16.所述第一服务端的binder driver驱动器接收由所述第一客户端的binder driver驱动器共享内存发送的数据后,将接收的数据上传至第一服务端的bpbinder代理对象,由bpbinder代理对象上传至soa adapter,再由soa adapter经由proxy接口上传至所述第一服务端。
17.作为上述方案的并列方案,所述第一服务端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
18.所述第一服务端通过调用proxy接口,发起绑定远程服务;
19.所述第一服务端的soa adapter判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;
20.所述第一服务端通过proxy接口调用soa adapter判定获取的服务是soa服务时,转向soa中间件;
21.所述第一服务端通过soa中间件调用someip接口,通过调用的someip接口与所述待通讯控制器的第二客户端的someip接口通讯。
22.进一步地,所述第二客户端的soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二客户端的someip接口;
23.所述第二客户端的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至所述第二客户端。
24.作为上述方案的并列方案,所述第一服务端的soa adapter判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给所述第一服务端;
25.所述第一服务端的soa adapter调用bpbinder代理对象,由调用的bpbinder代理对象调用binder driver驱动器与所述第一客户端共享内存。
26.进一步地,所述第一客户端的binder driver驱动器接收由所述第一服务端的binder driver驱动器共享内存发送的数据后,将接收的数据上传至所述第一客户端的bpbinder代理对象,由bpbinder代理对象上传至所述第一客户端的soa adapter,再由soa adapter经由proxy接口上传至所述第一服务端。
27.本发明提供一种soa通讯系统,所述系统包括基于安卓架构的本机控制器和待通讯控制器;所述本机控制器的第一客户端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;所述第一客户端通过调用所述proxy接口,发起绑定远程服务;所述soa adapter判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;所述第一客户端通过所述proxy接口调用所述soa adapter判定获取的服务是soa服务时,转向所述soa中间件;所述第一客户端通过所述soa中间件调用someip接口,通过所述someip接口与所述待通讯控制器的第二服务端的someip接口通讯。提供一种兼容android架构的跨进程通讯方案,支持android架构自身的binder通信,也支持someip通信。
附图说明
28.图1是本发明实施例提供的一种soa通讯系统的结构示意图;
29.图2是本发明另一实施例提供的一种soa通讯系统的结构示意图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.实施例一
32.本发明实施例提供一种soa通讯系统,所述系统包括本机控制器和待通讯控制器;
33.所述本机控制器的第一客户端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
34.所述第一客户端通过调用所述proxy接口,发起绑定远程服务;
35.所述soa adapter判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;
36.所述第一客户端通过所述proxy接口调用所述soa adapter判定获取的服务是soa服务时,转向所述soa中间件;
37.所述第一客户端通过所述soa中间件调用someip接口,通过所述someip接口与所述待通讯控制器的第二服务端的someip接口通讯。
38.在本实施例具体实施时,参见图1,是本发明实施例提供的一种soa通讯系统的结构示意图。所述系统包括作为本机控制器的座舱ecu和作为待通讯控制器的支架ecu,其中座舱ecu为android架构的控制器;
39.本机控制器包括第一客户端client1,在具体进行soa通讯时,由第一客户端client1执行,具体包括:
40.第一客户端client1通过编写aidl接口描述语言进行soa开发,生成客户端代理代码,自动生成第一客户端client1中的proxy接口的代码、soa adapter的代码及soa中间件的代码;
41.第一客户端client1通过调用proxy接口发起绑定远程服务;
42.第一客户端client1的soa adapter对第一客户端发起的soa通讯的服务查找请求进行服务属性判断;
43.当判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;soa服务列表为第一客户端client1的soa adapter在工作时预先建立的服务列表;
44.第一客户端client1通过proxy接口调用soa adapter判定获取的服务是soa服务时,转向soa中间件;
45.所述第一客户端client1通过soa中间件调用someip接口,通过调用的someip接口与所述待通讯控制器的第二服务端的someip接口进行soa通讯。
46.作为待通讯控制器的智驾ecu基于autosar架构,智驾ecu的第二服务端的someip接口收到通讯请求后,按照原本的通讯方式将通讯请求上传给上层服务。
47.在安卓架构系统通过使用aidl接口描述语言进行soa开发,由aidl语言自动生成soa代码。通过aidl接口跨进程到soa adapter,由soa adapter再调用到soa中间件,soa中间件再调用到someip接口。生成的soa代码,同时支持android架构自身的binder通信,也支持someip通信,提供一种兼容android架构的跨进程通讯方案。
48.实施例二
49.在本发明提供的另一实施例中,所述第一客户端调用所述第二服务端接口;
50.所述soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二服务端的someip接口;
51.所述第二服务端的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至所述第二服务端。
52.在本实施例具体实施时,参见图2,是本发明另一实施例提供的一种soa通讯系统的结构示意图;
53.在soa adapter判定接收的服务查找请求的服务属性属于soa通讯,并从soa服务列表获取对应服务后,第一客户端client1调用第二服务端service2接口;
54.第二服务端service2本身采用原有的通讯方式,第二服务端service2可以调用proxy接口,由proxy接口调用soa中间件,通过soa中间件调用someip接口;
55.第一客户端client1与作为待通讯控制器的智驾ecu的第二服务端service2进行soa通讯的过程为:
56.soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二服务端service2的someip接口;
57.所述第二服务端service2的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至所述第二服务端service2。
58.通过soa中间件调用someip接口实现与智驾ecu的soa通讯。
59.实施例三
60.在本发明提供的又一实施例中,所述soa adapter判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给所述第一客户端;
61.所述soa adapter调用bpbinder代理对象,由所述bpbinder代理对象调用binder driver驱动器与本机控制器的第一服务端共享内存。
62.在本实施例具体实施时,参见图2,所述第一客户端client1soa adapter能够通过bpbinder代理对象调用binder driver驱动器;
63.所述第一客户端client1的soa adapter对第一客户端发起的soa通讯的服务查找请求进行服务属性判断;
64.当判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给所述第一客户端client1,binder服务列表具体为soa adapter在工作时建立的。
65.第一客户端client1通过proxy接口调用soa adapter,并通过soa adapter调用bpbinder代理对象,转向bpbinder代理对象;
66.由bpbinder代理对象调用binder driver驱动器与本机控制器的第一服务端service1共享内存。
67.安卓系统通过调用soa服务,与原本调用binder服务类似,通过soa adapter执行,客户端无需关注底层到底采用的是someip通讯技术还是binder通讯技术,android系统同时支持binder通信和someip通信。
68.实施例四
69.在本发明提供的又一实施例中,所述第一服务端编写aidl接口描述语言进行soa
开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
70.所述第一服务端的binder driver驱动器接收由所述第一客户端的binder driver驱动器共享内存发送的数据后,将接收的数据上传至第一服务端的bpbinder代理对象,由bpbinder代理对象上传至soa adapter,再由soa adapter经由proxy接口上传至所述第一服务端。
71.在本实施例具体实施时,参见图2,第一服务端service1通过编写aidl接口描述语言进行soa开发,生成服务端代理代码,自动生成第一服务端service1中的proxy接口的代码、soa adapter的代码及soa中间件的代码;soa adapter能够通过bpbinder代理对象调用binder driver驱动器;
72.在第一客户端client1与第一服务端service1进行共享内存时,第一服务端service1的binder driver驱动器接收由所述第一客户端的binder driver驱动器共享内存发送的数据后,将接收的数据上传至第一服务端service1的bpbinder代理对象,由bpbinder代理对象上传至soa adapter,再由soa adapter经由proxy接口上传至第一服务端service1。
73.基于安卓架构下的座舱ecu的客户端和服务端进行共享内存时,客户端和服务端均需要通过soa adapter调用bpbinder代理对象,进而调用binder driver驱动器,完成共享内存。
74.实施例五
75.在本发明提供的又一实施例中,所述第一服务端编写aidl接口描述语言进行soa开发,生成proxy接口的代码、soa adapter的代码及soa中间件的代码;
76.所述第一服务端通过调用proxy接口,发起绑定远程服务;
77.所述第一服务端的soa adapter判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;
78.所述第一服务端通过proxy接口调用soa adapter判定获取的服务是soa服务时,转向soa中间件;
79.所述第一服务端通过soa中间件调用someip接口,通过调用的someip接口与所述待通讯控制器的第二客户端的someip接口通讯。
80.在本实施例具体实施时,参见图2,作为本机控制器的座舱ecu还包括第一服务端service1,第一服务端service1也可以执行soa通讯,具体包括:
81.第一服务端service1通过编写aidl接口描述语言进行soa开发,生成服务端代理代码,自动生成第一服务端service1中的proxy接口的代码、soa adapter的代码及soa中间件的代码;
82.第一服务端service1通过调用proxy接口发起绑定远程服务;
83.第一服务端service1的soa adapter对第一服务端service1发起的soa通讯的服务查找请求进行服务属性判断;
84.当判定接收的服务查找请求的服务属性属于soa通讯时,从soa服务列表获取对应服务;soa服务列表为第一服务端service1的soa adapter在工作时预先建立的服务列表;
85.第一服务端service1通过proxy接口调用soa adapter判定获取的服务是soa服务时,转向soa中间件;
86.第一服务端service1通过soa中间件调用someip接口,通过调用的someip接口与所述待通讯控制器的第二客户端client2的someip接口进行soa通讯。
87.作为待通讯控制器的智驾ecu基于autosar架构,智驾ecu的第二客户端client2的someip接口收到通讯请求后,按照原本的通讯方式将通讯请求上传给上层服务。
88.在安卓架构系统通过使用aidl接口描述语言进行soa开发,服务端同样可以通过aidl接口跨进程到soa adapter,由soa adapter再调用到soa中间件,soa中间件再调用到someip接口。生成的soa代码,同时支持android架构自身的binder通信,也支持someip通信,提供一种兼容android架构的跨进程通讯方案。
89.实施例六
90.在本发明提供的又一实施例中,所述第二客户端的soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二客户端的someip接口;
91.所述第二客户端的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至所述第二客户端。
92.在本实施例具体实施时,参见图2,第二客户端client2的soa adapter在判定接收的服务查找请求的服务属性属于soa通讯,并从soa服务列表获取对应服务后;
93.第二客户端client2是基于开放系统架构的,采用原有的通讯方式,第二客户端client2可以调用proxy接口,由proxy接口调用soa中间件,通过soa中间件调用someip接口;
94.第一服务端service1与作为待通讯控制器的智驾ecu的第二服务端service2进行soa通讯的过程为:
95.soa中间件根据someip接口的接口参数转换成someip通讯协议,调用someip接口,通过以太网发送通讯请求给所述第二客户端client2的someip接口;
96.第二客户端client2的someip接口将接收的通讯请求由上层的soa中间件上传给proxy接口,再由proxy接口上传至第二客户端client2。
97.通过soa中间件调用someip接口实现客户端与智驾ecu的服务端的soa通讯。
98.实施例七
99.在本发明提供的又一实施例中,所述第一服务端的soa adapter判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给所述第一服务端;
100.所述第一服务端的soa adapter调用bpbinder代理对象,由调用的bpbinder代理对象调用binder driver驱动器与所述第一客户端共享内存。
101.在本实施例具体实施时,参见图2,所述第一服务端service1的soa adapter能够通过bpbinder代理对象调用binder driver驱动器;
102.第一服务端service1的soa adapter对第一服务端service1发起的soa通讯的服务查找请求进行服务属性判断;
103.当判定接收的服务查找请求的服务属性属于binder通讯时,从binder服务列表获取对应服务,返回绑定结果给第一服务端service1,binder服务列表具体为soa adapter在工作时建立的。
104.第一服务端service1通过proxy接口调用soa adapter,并通过soa adapter调用bpbinder代理对象,转向bpbinder代理对象;
105.由bpbinder代理对象调用binder driver驱动器与本机控制器的第一客户端client1共享内存。
106.安卓系统通过调用soa服务,与原本调用binder服务类似,通过soa adapter执行,服务端无需关注底层到底采用的是someip通讯技术还是binder通讯技术,android系统同时支持binder通信和someip通信。
107.实施例八
108.在本发明提供的又一实施例中,所述第一客户端的binder driver驱动器接收由所述第一服务端的binder driver驱动器共享内存发送的数据后,将接收的数据上传至所述第一客户端的bpbinder代理对象,由bpbinder代理对象上传至所述第一客户端的soa adapter,再由soa adapter经由proxy接口上传至所述第一服务端。
109.在本实施例具体实施时,参见图2,第一客户端client1通过编写aidl接口描述语言进行soa开发,生成服务端代理代码,自动生成第一客户端client1中的proxy接口的代码、soa adapter的代码及soa中间件的代码;soa adapter能够通过bpbinder代理对象调用binder driver驱动器;
110.在本机控制器的座舱ecu的第一服务端service1发起与第一客户端client1的内存共享时,具体包括:
111.第一客户端client1的binder driver驱动器接收由第一服务端service1的binder driver驱动器共享内存发送的数据后,将接收的数据上传至第一客户端client1的bpbinder代理对象,由bpbinder代理对象上传至soa adapter,再由soa adapter经由proxy接口上传至第一客户端client1。
112.基于安卓架构下的座舱ecu的客户端和服务端进行共享内存时,客户端和服务端均需要通过soa adapter调用bpbinder代理对象,进而调用binder driver驱动器,完成共享内存。
113.应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1