一种代理服务方法、装置及系统与流程

文档序号:27093300发布日期:2021-10-27 15:22阅读:180来源:国知局
一种代理服务方法、装置及系统与流程

1.本技术涉及通信技术领域,尤其涉及一种代理服务方法、装置及系统。


背景技术:

2.随着车载行业的发展,电子控制单元(electronic control unit,ecu)越来越多,车内网络也逐步向面向服务的通信演进。其中,代理服务在满足可靠性的同时,高效性和灵活性也越来越受到重视。
3.为此,面向服务的架构(service oriented architecture,soa)创建了一个以明确定义的接口为特征的服务环境,环境中的软件组件可作为服务生产者或服务消费者,通过服务总线的中间件通信。如图1所示,服务提供者是一个提供功能的独立单元,用于发布服务;服务代理是一个服务注册中心,用于运行时查找服务,可以是分布式系统;服务消费者通过服务代理查找服务,可以访问多个服务提供者。
4.其中,针对上述以接口为特征的服务环境,目前提供一种冗余ecu电路结构的控制器。如图2所示,在本地设置两个ecu,例如,ecua与ecub。其中,所述ecua与ecub之间相互连接,且所示冗余ecu电路结构的控制器主要通过输入电路冗余、cpu冗余来实现。具体的,当一个ecu在正常工作时,另一个ecu处于热备份状态,当ecu认为某一通道输入信号不可信时,可切换成从另一通道输入信号。同理,当某个cpu故障或不可信时,可切换成另一个cpu来控制设备。
5.然而,图2所示的车载服务代理系统,是一种点对点的备份,无法支持多对一备份,并且执行过程中需要自行处理主备逻辑控制,成本高,无法适用于车载ecu通用控制器。
6.综上,目前并没有一种高效、灵活且安全的代理服务方案。


技术实现要素:

7.本技术提供一种代理服务方法、装置及系统,用以提供一种高效、灵活且安全的代理服务方案。
8.第一方面,本技术实施例提供一种代理服务方法,包括:
9.网关平台中的第二电子控制单元ecu确定绑定的第一ecu心跳丢失;所述第二ecu通过与客户端进行通信的第二接口为所述客户端提供代理服务;其中,所述第二ecu的优先级低于所述第一ecu的优先级。
10.基于该方案,本发明实施例在网关平台设置了与本地的第一ecu对应的至少一个第二ecu,来降低因ecu故障而无法为客户端及时提供代理服务的问题。其中,本技术实施例中,主要通过优先级方式确定了主备ecu,当所述主ecu(即第一ecu)发生故障,导致心跳丢失时,更换为备用ecu(即第二ecu)执行代理服务,实现了ecu通用控制器的服务备份、服务倒换、服务恢复功能,主备倒换耗时少。并且,通过上述方法,本发明实施例能够根据实际情况更加灵活的调整所述第一ecu对应的所述第二ecu以及所述第二ecu的数量,不需要在本地搭建多个ecu,从而能够有效降低成本。
11.在一种可能的实现方式中,所述第二ecu在至少一个阈值周期内没有接收到所述第一ecu的心跳,确定所述第一ecu心跳丢失。
12.基于该方案,本发明实施例提供了一种第二ecu确定所述第一ecu心跳丢失的方法,即所述第二ecu在至少一个阈值周期内没有接收到所述第一ecu的心跳,确定所述第一ecu心跳丢失。
13.在一种可能的实现方式中,所述第二ecu通过与客户端进行通信的第二接口为所述客户端提供代理服务之前,所述第二ecu获取所述第一ecu接收到的所述客户端发送的代理服务报文;所述第二ecu将与所述客户端进行通信的接口更新为自身对应的所述第二接口。
14.基于该方案,本发明实施例所述第二ecu通过获取所述第一ecu接收到的代理服务报文,实现了对所述第一ecu的备份功能。
15.在一种可能的实现方式中,所述第二ecu从所述第一ecu周期性发送的心跳信息中获取所述客户端发送的代理服务报文。
16.基于该方案,本发明实施例所述第一ecu每次向所述第二ecu发送的心跳信息中包含所述代理服务报文,从而使所述第二ecu根据接收到的心跳信息获取所述代理服务报文。
17.在一种可能的实现方式中,所述第二ecu调用所述网关平台提供的局域网交换机lsw接口,将所述lsw接口由所述第一ecu对应的第二接口,更新为自身对应的第二接口。
18.基于该方案,本发明实施例在所述第一ecu心跳丢失后,为了能够保证代理服务顺利进行,启动了备份的第二ecu,并且为了所述第二ecu能够顺利接管所述第一ecu的功能,所述第二ecu调用网关平台提供的局域网交换机lsw接口,将所述局域网交换机接口由所述第一ecu对应的第一接口,更新为自身对应的第二接口,从而更有效的进行业务的顺利开展。
19.在一种可能的实现方式中,所述第二ecu通过与所述客户端进行通信的第二接口,接收所述客户端发送的代理服务报文。
20.基于该方案,本发明实施例所述客户端再向所述第一ecu发送所述代理服务报文的同时,也将所述代理服务报文发送给所述第二ecu。
21.在一种可能的实现方式中,所述第二ecu在确定所述第一ecu具有心跳时,不向所述客户端发送所述代理服务报文的业务处理结果。
22.基于该方案,本发明实施例为了避免信息冲突,当所述第一ecu具有心跳时,若所述第二ecu也接收到了所述客户端发送的报文,则所述第二ecu仅对接收到的所述报文进行处理,但不发送。
23.在一种可能的实现方式中,所述第二ecu对获取到的所述代理服务报文进行业务处理;所述第二ecu将所述业务处理结果通知给所述客户端。
24.基于该方案,本技术实施例提供了所述代理服务的主要功能,例如,所述第二ecu对获取到的所述代理服务报文进行业务处理;所述第二ecu将所述业务处理结果通知给所述客户端。
25.在一种可能的实现方式中,所述第二ecu通过所述第二接口为所述客户端提供代理服务之前,所述第二ecu将自身ip修改为所述第一ecu对应的虚拟ip。
26.基于该方案,本技术实施例中为了使接收设备无感知,无需重新对发送设备进行
再次认证,从而将在所述第二ecu向所述客户端发送报文时,将所述第二ecu的源ip修改为所述虚拟ip,有效提高了代理服务的效率。
27.在一种可能的实现方式中,所述第二ecu位于所述第一ecu对应的第一网关平台中;或所述第二ecu位于与所述第一网关平台具有通信传输功能的第二网关平台中。
28.基于该方案,本发明实施例中所述第二ecu所处网关平台可能直接与所述第一ecu关联,也可能间接与所述第一ecu关联,适用性更强。
29.在一种可能的实现方式中,所述第一ecu为具有执行所述代理服务功能的传感器或执行器。
30.基于该方案,本发明实施例在所述第一ecu无特定设备的前提下,可以支持ecu整体软硬件的备份,由网关平台上的第二ecu直接跟传感器或执行器的交互。
31.在一种可能的实现方式中,当所述第一ecu心跳恢复后,所述第二ecu失去为客户端提供代理服务的功能。
32.基于该方案,本发明实施例中因为所述第一ecu的优先级高于所述第二ecu的优先级,从而当所述第一ecu心跳恢复,恢复执行所述代理服务功能后,为避免冲突以及节省系统开销,使所述第二ecu失去所述代理服务功能。
33.在一种可能的实现方式中,所述第二ecu与所述第一ecu具有相同的组标识id。
34.基于该方案,本发明实施例中提供了一种确定所述第二ecu对应的第一ecu的方式,即用于备份所述第一ecu的所述第二ecu,是与所述第一ecu具有相同的组标识id的ecu。
35.在一种可能的实现方式中,所述第二ecu通过下列方式确定自身优先级低于所述第一ecu的优先级:所述第二ecu周期性向所述第一ecu发送携带自身优先级的心跳信息,以及周期性接收来自所述第一ecu发送的携带所述第一ecu优先级的心跳信息;所述第二ecu根据所述第一ecu发送的携带所述第一ecu优先级的心跳信息,确定所述第一ecu的优先级;所述第二ecu根据自身优先级与所述第一ecu的优先级的比较结果,确定自身优先级低于所述第一ecu的优先级。
36.在一种可能的实现方式中,所述第二ecu确定自身优先级低于所述第一ecu的优先级之后,所述第二ecu停止向所述第一ecu发送携带自身优先级的心跳信息。
37.第二方面,本技术实施例提供一种代理服务装置,该装置具有实现上述实施例第一方面或第一方面中的任意可能的实现方式中的任一方法。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元或模块。
38.在一种可能的实现方式中,该装置可以是电子控制单元ecu,或者是可用于所述ecu的部件,例如芯片或芯片系统或者电路。
39.第三方面,本技术实施例提供了一种芯片系统,包括处理器,可选的还包括存储器;其中,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片系统的通信设备执行上述第一方面或第一方面中的任意可能的实现方式中的任一方法。
40.第四方面,本技术实施例提供了一种代理服务系统,包括第二ecu、第一ecu以及客户端,所述第二ecu用于执行上述第一方面或第一方面中的任意可能的实现方式中的任一方法。
41.第五方面,本技术实施例提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码被通信设备的通信单元、处理单元或收发器、处理器运行时,使得通信设备执行上述第一方面或第一方面中的任意可能的实现方式中的任一方法。
42.第六方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,程序使得ecu执行上述第一方面或第一方面中的任意可能的实现方式中的任一方法。
附图说明
43.图1为本技术提供的以接口为特征的服务环境示意图;
44.图2为现有车载服务代理系统示意图;
45.图3为本技术实施例提供的一种系统架构示意图;
46.图4为本技术实施例提供的一种代理服务的方法示意图;
47.图5为本技术实施例提供的第一种正常启动阶段的代理服务的流程示意图;
48.图6为本技术实施例提供的第二种正常启动阶段的代理服务的流程示意图;
49.图7为本技术实施例提供的第一种倒换阶段的代理服务的流程示意图;
50.图8为本技术实施例提供的第二种倒换阶段的代理服务的流程示意图;
51.图9为本技术实施例提供的一种跨网关平台代理服务场景示意图;
52.图10为本技术提供的第一种代理服务装置示意图;
53.图11为本技术提供的第二种代理服务装置示意图。
具体实施方式
54.下面结合说明书附图对本技术进行具体说明。
55.随着车载行业的发展,ecu越来越多,车内网络也逐步向面向服务的通信演进。其中,代理服务的在满足可靠性的同时,高效性和灵活性也越来越受到重视。为此,面向服务的架构soa创建了一个以明确定义的接口为特征的服务环境,环境中的软件组件可作为服务生产者或服务消费者,通过服务总线的中间件通信。如图1所示,服务提供者是一个提供功能的独立单元,通过发布服务周知自身的存在;服务代理是一个服务注册中心,用于运行时查找服务,可以是分布式系统;服务消费者通过服务代理查找服务,可以访问多个服务提供者。
56.其中,针对上述以接口为特征的服务环境,目前提供一种冗余ecu电路结构的控制器。如图2所示,在本地设置两个ecu,例如,ecua与ecub。其中,所述ecua与ecub之间相互连接,且所示冗余ecu电路结构的控制器主要通过输入电路冗余、cpu冗余来实现。具体的,当一个ecu在正常工作时,另一个ecu处于热备份状态,当ecu认为某一通道输入信号不可信时,可切换成从另一通道输入信号。同理,当某个cpu故障或不可信时,可切换成另一个cpu来控制设备。
57.然而,图2所示的车载服务代理系统,是一种点对点的备份,无法支持多对一备份,并且执行过程中需要自行处理主备逻辑控制,成本高,无法适用于车载ecu通用控制器。
58.综上,目前并没有一种高效、灵活且安全的代理服务方案。
59.为解决上述问题,本技术实施例提供一种代理服务方法,本技术实施例的技术方
案可以应用于各种通信系统,例如:长期演进(long term evolution,lte)系统,全球互联微波接入(worldwide interoperability for microwave access,wimax)通信系统,未来的第五代(5th generation,5g)系统,如新一代无线接入技术(new radio access technology,nr),及未来的通信系统,如6g系统等。
60.以5g系统(也可以称为new radio系统)为例,具体来说,本技术实施例针对目前没有一种高效、灵活且安全的代理服务方案的问题,提供了通过优先级方式确定主备ecu,当所述主ecu(即第一ecu)发生故障,导致心跳丢失时,更换为备用ecu(即第二ecu)执行代理服务,实现了车载ecu通用控制器的服务备份、服务倒换、服务恢复功能,同时,主备倒换耗时少,且无需本地搭建多个ecu,能够有效降低成本。
61.为便于理解本技术实施例,首先以图3中示出的通信系统为例详细说明本技术实施例适用的通信系统。如图3所示,该通信系统包括第一ecu300、客户端310和第二ecu320。
62.第一ecu300和/或第二ecu320,主要由微处理器(cpu)、存储器(rom、ram)、输入/输出接口(i/o)、模数转换器(a/d)以及整形、驱动等大规模集成电路组成。
63.在ecu中cpu是核心部分,它具有运算与控制的功能,当所述ecu在运行时,它采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。此外,所述ecu还实行对存储器(rom/flash/eeprom、ram)、输入/输出接口(i/o)和其它外部电路的控制。
64.此外,本技术实施例中一种可选的方式,所述第一ecu300具有服务代理模块301,所述服务代理模块301主要用于进行所述第一ecu300的状态管理,以及报文收发控制管理。所述第二ecu320具有服务代理模块321,所述服务代理模块321主要用于进行所述第二ecu320的状态管理,以及报文收发控制管理。
65.进一步的,如图3所示,本技术实施例中所述第二ecu处于网关平台330中,其中,所述网关平台330中还包含转发引擎331以及局域网交换机lsw332等。
66.本技术实施例中一种可选的方式,所述转发引擎331是具有高性能的报文信号路由模块,用于提供lsw控制接口;所述lsw332是用于实现局域网内通讯链路分配的通讯设备。其中,所述lsw332可以与所述转发引擎331相连,也可以在所述转发引擎331中,本技术实施例在此不进行限定,任何适用于本技术实施例的网关设备的构造都属于本技术实施例保护范围。
67.客户端310,是一种向用户提供语音和/或数据连通性的设备,也可以称为用户设备(user equipment,ue)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。本技术的实施例中的终端可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端、增强现实(augmented reality,ar)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
68.本技术实施例描述的网络架构以及业务场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员
可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。应理解,图3仅为便于理解而示例的简化示意图,例如,该代理服务系统中还可以包括其他ecu等,图3中未予以画出。
69.其中,本技术实施例中的术语“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中,a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。以下至少一项(个)下或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
70.除非有相反的说明,本技术实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
71.此外,本技术实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备,不限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
72.通过本技术实施例中上述应用场景等内容的介绍,本技术实施例提供一种代理服务的方法,所述步骤如图4所示:
73.s400,网关平台中的第二ecu确定绑定的第一ecu心跳丢失。
74.s401,所述第二ecu通过与客户端进行通信的第二接口为所述客户端提供代理服务;其中,所述第二ecu的优先级低于所述第一ecu的优先级。
75.下面针对本技术实施例提供的所述代理服务方法的具体内容,根据阶段场景不同,分别进行介绍。
76.阶段一、配置阶段。
77.本技术实施例中,根据需要实现备份功能的ecu类型,选择服务代理的集成方式。
78.示例性的,例如,在汽车开放系统架构(automotive open system architecture,autosar)经典(classic)环境可选择编译集成;再例如,在autosar自适应(adaptive)/linux环境可选择部署集成。
79.进一步的,本技术实施例中针对所述ecu中的服务代理模块进行如下配置:
80.1)确定第一ecu(即,主ecu)对应的第二ecu(即,备份ecu)。也就是说,相当于在网关平台上为所述第一ecu配置对应的第二ecu。
81.其中,所述第一ecu对应一个第二ecu;或者所述第一ecu对应多个第二ecu。
82.本技术实施例中,为了在执行过程中更好的确定所述第一ecu对应的至少一个第二ecu,一种可选的方式为:
83.为所述第一ecu以及所述第一ecu对应的至少一个第二ecu设置相同的组id。
84.示例性的,假设,本技术实施例中想将ecu1、ecu2以及ecu3设置为一组主备ecu,将ecu4、ecu5设置为一组主备ecu。其中,本技术实施例可以将所述ecu1、ecu2以及ecu3分为一组,所述分组id假设为组1;将ecu4、ecu5分为一组,所述分组id假设为组2。假设,选取ecu3作为第一ecu,则所述ecu3根据自身的组id,确定对应的第二ecu为ecu1、ecu2。
85.2)确定每个ecu的服务优先级。
86.进一步的,本技术实施例确定每个组中所有ecu的优先级,将该组中优先级最高的
ecu确定为第一ecu,低于所述第一ecu的优先级的其他ecu确定为第二ecu。
87.需要说明的是,本技术实施例中,该组中,多个第二ecu的优先级可以相同,也可以不同,本技术实施例在此不进行限制。
88.示例性的,假设组1中的ecu为ecu1、ecu2以及ecu3,其中,所述ecu3的优先级高于所述ecu1,所述ecu1的优先级高于所述ecu2的优先级,则将所述ecu3确定为第一ecu,将所述ecu1和所述ecu2确定为第二ecu。
89.可选的,当所述ecu3心跳消失时,可以从第二ecu中选取优先级最高的ecu来接替所述ecu3执行所述代理服务,即选择所述ecu1来执行所述代理服务。其中,若所述ecu1也心跳消失,且所述ecu3心跳为恢复,则选择所述ecu2来执行所述代理服务。
90.示例性的,假设组1中的ecu为ecu1、ecu2以及ecu3,其中,所述ecu3的优先级高于所述ecu1,所述ecu1的优先级等于所述ecu2的优先级,则将所述ecu3确定为第一ecu,将所述ecu1和所述ecu2确定为第二ecu。
91.可选的,当所述ecu3心跳消失时,可以从第二ecu中随机选取一个ecu来接替所述ecu3执行所述代理服务,例如,选择所述ecu1来执行所述代理服务。其中,若所述ecu1也心跳消失,且所述ecu3心跳未恢复,则继续选择所述ecu2来执行所述代理服务。
92.3)确定ecu对应的虚拟ip。
93.进一步的,本技术实施例中若事先已确定ecu的分组,则本技术实施例直接确定每组对应的虚拟ip,从而有效减轻了确定每个ecu对应的虚拟ip的工作负担,更加高效便捷。
94.此外,若本技术实施例中事先没有直接确定每个组对应的虚拟ip,则当所述第一ecu失去心跳,所述第二ecu代替所述第一ecu时,所述第二ecu将自身ip修改为所述第一ecu对应的虚拟ip。其中,所述第二ecu可以从所述第一ecu发送的心跳信息中获取所述虚拟ip。
95.该种方式主要使接收设备在接收过程中无感知,无需重新对发送设备进行再次认证,有效提高了代理服务的效率。
96.4)转发表项配置。
97.其中,本技术实施例中在对转发表项进行配置时,默认将来自所述客户端的报文通过转发引擎送给第一ecu处理。也就是说,与所述客户端进行通信的接口为所述第一ecu对应的接口(例如,所述第一ecu对应的接口为第二接口)。
98.综上,通过上述配置,所述第一ecu与所述第一ecu对应的第二ecu具有相同的组id,同组中的第一ecu的优先级高于第二ecu。此外,可选的,同组的所有ecu对应相同的虚拟ip。
99.需要说明的是,本技术实施例中上述配置内容并不限定先后顺序,任何适用于本技术实施例的配置方式都属于本技术实施例保护范围。
100.阶段二、正常启动阶段。
101.本身实施例中当所述第一ecu和网关平台启动后,进入初始状态。同一组中的各个ecu对应的节点周期性在所在组内发送心跳消息,宣传自己是主ecu。其中,本技术实施例中所述心跳信息可以如下述表1所示,包含所在组id、自身优先级、ip数量、心跳间隔,此外,所述心跳信息中还可以包含所述第一ecu的虚拟ip。
[0102][0103]
表1 ecu发送的心跳信息
[0104]
进一步的,本技术实施例中,若该组中的某个节点收到优先级更高的节点发送的心跳信息,则该节点对应的所述ecu选举失败,成为备份节点,即第二ecu。同理,若该组中的某个节点没有接收到优先级更高的节点发送的心跳信息,则该节点对应的所述ecu选举成功,成为主节点,即第一ecu。
[0105]
其中,本技术实施例中,在所述阶段二的场景下,提供了多种执行代理服务的方式,具体并不限于下述几种。
[0106]
执行方式1:在所述阶段二的场景下,所述第二ecu不会接收到来自所述客户端的代理服务报文。
[0107]
示例性的,在所述执行方式1下,本技术实施例提供的一种所述代理服务的流程,如图5所示:
[0108]
s500,客户端向网关平台中的lsw发送代理服务报文。
[0109]
s501,所述lsw将所述代理服务报文发送给所述转发引擎。
[0110]
s502,所述转发引擎将接收到的所述代理服务报文发送给所述第一ecu。
[0111]
其中,所述转发引擎通过所述第一ecu对应的第一接口,将所述代理服务报文通过所述第一接口发送给所述第一ecu。
[0112]
s503,所述第一ecu接收所述代理服务报文报文。
[0113]
s504,所述第一ecu向所述第二ecu每隔阈值时长发送心跳信息,其中,所述心跳信息中包含所述第一ecu的虚拟ip。
[0114]
其中,本技术实施例一种可选的方式,为了使所述第二ecu替代所述第一ecu执行所述代理服务,本技术实施例中所述第一ecu向所述第二ecu发送的心跳信息中包含所述客户端最新发送的代理服务报文,从而使所述第二ecu在接收到来自所述第一ecu发送的心跳信息后,从所述心跳信息中获取所述代理服务报文,使自身对所述第一ecu的备份信息更完全。
[0115]
s505,所述第二ecu接收来自所述第一ecu的心跳信息,确定所述第一ecu具有心跳。
[0116]
s506,所述第二ecu从所述第一ecu周期性发送的心跳信息中获取所述第一ecu的虚拟ip。
[0117]
需要说明的是,本技术实施例中并不限定上述图5中所述步骤的先后顺序,例如,所述s504~s505属于周期执行动作,可能在所述s500之前,或者s500~s503之间执行。
[0118]
此外,若本技术实施例中已事先为所述第二ecu与所述第一ecu配置了相同的虚拟ip,则为了减小传输功耗,所述心跳信息中不包含所述第一ecu的虚拟ip,所述s506可省略。
[0119]
执行方式2:在所述阶段二的场景下,所述第二ecu通过与所述第二ecu对应的第二接口,接收到来自所述客户端的代理服务报文。
[0120]
示例性的,在所述执行方式2下,本技术实施例提供的另一种所述代理服务的流程,如图6所示:
[0121]
s600,客户端向网关平台中的lsw发送代理服务报文。
[0122]
s601,所述lsw将所述代理服务报文发送给所述转发引擎。
[0123]
s602,所述转发引擎将接收到的所述代理服务报文发送给所述第二ecu。
[0124]
s603,所述转发引擎将接收到的所述代理服务报文发送给所述第一ecu。
[0125]
其中,所述转发引擎进行一转多配置,即所述转发引擎通过所述第一ecu对应的第一接口,将所述业务报文通过所述第一接口发送给所述第一ecu,以及通过所述第二ecu对应的第二接口,将所述业务报文通过所述第二接口发送给所述第二ecu。
[0126]
s604,所述第一ecu接收所述代理服务报文。
[0127]
s605,所述第二ecu接收所述代理服务报文。
[0128]
其中,本技术实施例中,为了避免信息冲突,当所述第一ecu具有心跳时,若所述第二ecu也接收到了所述客户端发送的代理服务报文,所述第二ecu对接收到的所述代理服务报文的处理方式具体并不限于下述几种。
[0129]
处理方式1:所述第二ecu接收到所述客户端发送的所述代理服务报文后,丢弃所述代理服务报文。
[0130]
也就是说,所述第二ecu接收到所述客户端发送的所述代理服务报文后,不对所述代理服务报文进行处理,直接丢弃接收到的所述车载代理服务报文。
[0131]
处理方式2:所述第二ecu接收到所述客户端发送的所述代理服务报文后,对接收到的所述代理服务报文进行处理,得到处理结果,但在向所述客户端发送所述处理结果时,丢弃所述处理结果,即向所述客户端发送的内容为空。
[0132]
也就是说,所述第二ecu接收到所述客户端发送的所述代理服务报文后,根据所述代理服务报文确定所述客户端需要提供的服务,并对所述客户端提供相应的服务。但是,由于此时所述第一ecu具有心跳,所以所述第二ecu虽然确定了需要为所述客户端提供的服务,为了避免信息冲突,所述第二ecu向所述客户端发送的内容为空。
[0133]
处理方式3:所述第二ecu接收到所述客户端发送的所述代理服务报文后,对接收到的所述代理服务报文进行处理,得到处理结果,但不向所述客户端反馈所述处理结果。
[0134]
也就是说,所述第二ecu接收到所述客户端发送的所述代理服务报文后,根据所述代理服务报文确定所述客户端需要提供的服务,并对所述客户端提供相应的服务。但是,由于此时所述第一ecu具有心跳,所以所述第二ecu虽然确定了需要为所述客户端提供的服务,为了避免信息冲突,所述第二ecu不向所述客户端提供所述服务。
[0135]
s606,所述第一ecu向所述第二ecu每隔阈值时长发送心跳信息。
[0136]
s607,所述第二ecu接收所述第一ecu周期性发送的心跳信息,确定所述第一ecu具有心跳。
[0137]
需要说明的是,本技术实施例中并不限定上述图6中所述步骤的先后顺序,例如,所述s602~s603可以为同时执行。
[0138]
阶段三、第一ecu与第二ecu倒换阶段。
[0139]
本技术实施例中当第一ecu心跳丢失时,所述第一ecu所在组中的至少一个第二ecu重新进行选取,确定用于进行替代所述第一ecu的第二ecu。
[0140]
本技术实施例中,使ecu发生心跳丢失的情况具体并不限于某种软硬件或网络故障问题。
[0141]
进一步的,若所述第一ecu所在组中仅有一个第二ecu,则当所述第一ecu心跳丢失时,所述第一ecu所在组中的唯一第二ecu自动升级为主ecu,代替所述第一ecu执行所述代理服务。
[0142]
进一步的,本技术实施例中,在所述阶段三的场景下,提供了多种所述第二ecu代替所述第一ecu执行所述代理服务的方式,具体并不限于下述几种:
[0143]
代替方式1:所述第二ecu将与客户端进行通信的接口更新为自身对应的第二接口。
[0144]
示例性的,在所述代替方式1下,本技术实施例提供的一种所述代理服务的流程,如图7所示:
[0145]
s700,第二ecu确定绑定的第一ecu心跳丢失。
[0146]
本技术实施例中一种可选的方式,所述第二ecu在至少一个阈值周期内没有接收到所述第一ecu的心跳,确定所述第一ecu心跳丢失。
[0147]
示例性的,所述第二ecu在3个周期内收不到所述第一ecu的心跳信息,则自动升级为主ecu,代替所述第一ecu执行所述代理服务。
[0148]
s701,所述第二ecu调用转发引擎提供的lsw控制接口,将所述lsw控制接口设置为自身对应的第二接口。
[0149]
s702,所述转发引擎根据所述第二ecu设置的第二接口对所述lsw进行更新。
[0150]
s703,客户端向网关平台中的lsw发送代理服务报文。
[0151]
s704,所述lsw将所述代理服务报文发送给所述转发引擎。
[0152]
s705,所述转发引擎将接收到的所述代理服务报文发送给所述第二ecu。
[0153]
其中,所述转发引擎通过所述第二ecu对应的第二接口,将所述代理服务报文通过所述第二接口发送给所述第二ecu。
[0154]
s706,所述第二ecu接收所述代理服务报文。
[0155]
s707,所述第二ecu在对接收到所述代理服务报文进行处理后,将处理结果通过所述第二接口发送给所述客户端。
[0156]
需要说明的是,本技术实施例中并不限定上述图7中所述步骤的先后顺序,例如,所述s703可能在所述s700之前执行。
[0157]
代替方式2:所述第二ecu恢复与所述客户端进行通信的第二接口发送业务处理结果的功能。
[0158]
示例性的,在所述代替方式2下,本技术实施例提供的另一种所述代理服务的流程,如图8所示:
[0159]
s800,客户端向网关平台中的lsw发送代理服务报文。
[0160]
s801,所述lsw将所述代理服务报文发送给所述转发引擎。
[0161]
s802,所述转发引擎将接收到的所述代理服务报文发送给所述第二ecu。
[0162]
s803,所述转发引擎将接收到的所述代理服务报文发送给所述第二ecu。
[0163]
其中,所述转发引擎进行一转多配置,即所述转发引擎通过所述第一ecu对应的第一接口,将所述业务报文通过所述第一接口发送给所述第一ecu,以及通过所述第二ecu对
应的第二接口,将所述业务报文通过所述第二接口发送给所述第二ecu。
[0164]
s804,所述第二ecu接收所述代理服务报文。
[0165]
其中,因为在该场景下,所述第一ecu心跳丢失,所述所述第一ecu不会接收到来自所述客户端发送的代理服务报文。
[0166]
s805,第二ecu确定绑定的第一ecu心跳丢失。
[0167]
本技术实施例中一种可选的方式,所述第二ecu在至少一个阈值周期内没有接收到所述第一ecu的心跳,确定所述第一ecu心跳丢失。
[0168]
s806,所述第二ecu在对接收到所述代理服务报文进行处理后,将处理结果通过所述第二接口发送给所述客户端。
[0169]
其中,在所述阶段二的场景下,所述第二ecu无法通过所述第二接口将所述处理结果发送给所述客户端,然而,在所述阶段三的场景下,所述第二ecu恢复与所述客户端进行通信的第二接口发送业务处理结果的功能。
[0170]
需要说明的是,本技术实施例中并不限定上述图8中所述步骤的先后顺序,例如,所述s806可能在所述s800之前执行。
[0171]
阶段四、故障恢复阶段
[0172]
本技术实施例中,当所述第一ecu恢复心跳后,则重新发起携带高优先级的心跳。所述第一ecu所在分组中的其他ecu在接收到所述第一ecu发送的高优先级心跳信息后,失去执行所述代理服务功能,即重新按照所述阶段二进行执行。
[0173]
进一步的,本技术实施例中一种可选的方式,在分布式网关平台上,本技术实施例同样支持跨网关平台传输。
[0174]
示例性的,如图9所示,所述ecu1为主ecu,所述ecu1对应第一网关平台,所述第一网关平台包含ecu2,所述第二网关平台中包含ecu3,且所述ecu3为所述ecu1的备份ecu,所述第二网关平台对应客户端1。
[0175]
其中,所述第一网关平台与第二网关平台之间能够相互进行通信。当所述ecu1失去心跳时,则可以通过所述ecu1对应的ecu3代替所述ecu1为所述客户端1执行代理服务,详细执行方式与上述内容相同,为简洁描述,参见上述图4~图8的内容,在此不进行赘述。
[0176]
通过上述对本技术方案的介绍,可以理解的是,上述实现各设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0177]
基于以上实施例,如图10所示,本技术一种代理服务装置,该装置可以是ecu,所述ecu包括处理器1000、存储器1001和通信接口1002。
[0178]
处理器1000负责管理总线架构和通常的处理,存储器1001可以存储处理器1000在执行操作时所使用的数据。收发机通信接口1002用于在处理器1000的控制下接收和发送数据与存储器1001进行数据通信。
[0179]
所述处理器1000可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合。所述处理器1000还可以进一步包括硬件
芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。存储器1001可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0180]
所述处理器1000、所述存储器1001以及所述通信接口1002之间相互连接。可选的,所述处理器1000、所述存储器1001以及所述通信接口1002可以通过总线1003相互连接;所述总线1003可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0181]
具体地,所述处理器1000,用于读取存储器1001中的程序并执行如图4所示的s400-s401中ecu执行的方法流程;或如图5所示的s500-s506中ecu执行的方法流程;或如图6所示的s600-s607中ecu执行的方法流程;或如图7所示的s700-s707中ecu执行的方法流程;或如图8所示的s800-s806中ecu执行的方法流程。
[0182]
如图11所示,本发明提供一种代理服务装置,该装置包括处理单元1100和通信单元1101,其中,所述处理单元1100与所述通信单元1101用于执行以下内容:
[0183]
处理单元1100:用于确定绑定的第一ecu心跳丢失;
[0184]
通信单元1101:用于通过与客户端进行通信的第二接口为所述客户端提供代理服务,其中,所述第二ecu的优先级低于所述第一ecu的优先级。
[0185]
上述图11所示的处理单元1100和通信单元1101的功能可以由处理器1000读取存储器1001中的程序执行,或者由处理器1000单独执行。
[0186]
可选地,当所述终端设备运行时,所述处理单元1100以及所述通信单元1101可以执行如图4所示的s400-s401中ecu执行的方法流程;或如图5所示的s500-s506中ecu执行的方法流程;或如图6所示的s600-s607中ecu执行的方法流程;或如图7所示的s700-s707中ecu执行的方法流程;或如图8所示的s800-s806中ecu执行的方法流程。
[0187]
需要说明的是,所述通信单元1101可以包含不同的通信单元,分别对应不同的通信接口。
[0188]
关于本技术提供的终端设备的功能或者执行的操作的详细描述可以参考本技术方法实施例中ecu执行的步骤,在此不做赘述。
[0189]
在一些可能的实施方式中,本发明实施例提供的代理服务方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序代码在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书中描述的根据本发明各种示例性实施方式的代理服务方法中的步骤。
[0190]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更本技术实施
例一种实现方式中例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0191]
根据本发明的实施方式的用于通信的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在服务器设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被消息传输、装置或者器件使用或者与其结合使用。
[0192]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由周期网络动作系统、装置或者器件使用或者与其结合使用的程序。
[0193]
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等,或者上述的任意合适的组合。
[0194]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备。
[0195]
本技术实施例针对代理服务方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当所述程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本技术实施例上面任何一种通信的方案。
[0196]
以上参照示出根据本技术实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本技术。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
[0197]
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本技术。更进一步地,本技术可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本技术上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
[0198]
尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本申
请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1