一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、装置及网络桥接器与流程

2021-11-24 22:15:00 来源:中国专利 TAG:


1.本技术涉及数据传输技术领域,特别涉及一种数据传输方法、装置及网络桥接器。


背景技术:

2.不同平台不同系统之间的服务有时需要相互利用。由于不同平台或不同系统可能使用不同的网络通信协议进行数据传输,此时两种协议的实现在交互方式、编解码和数据包上可能存在差异,如服务请求方采用非rsocket协议进行通信,而服务提供方采用rsocket协议进行通信,此时服务请求方和服务提供方之间无法进行通信。
3.为此,相关技术中,通过在服务请求方和服务提供方之间接入一个网络桥接器,在接收到服务请求方发送的请求数据时,识别请求数据携带的数据格式,并将请求数据的数据格式转换为适用于服务提供方的网络通信协议的数据格式后,将转换后的请求数据发送至服务提供方。然而,当服务请求方采用的网络通信协议未向请求数据提供相应的数据格式时,会导致服务请求方与服务提供方之间无法进行数据传输。


技术实现要素:

4.本技术的目的在于至少解决现有技术中存在的技术问题之一,提供一种数据传输方法、装置及网络桥接器,桥接多种网络通信协议,在网络通信协议未提供相应的数据格式时,仍可实现服务请求方与服务提供方之间的数据传输。
5.第一方面,本技术实施例提供一种数据传输方法,包括:
6.接收服务请求方发送的请求数据;
7.识别所述请求数据的第一数据格式,并在未识别到所述第一数据格式时,根据所述服务请求方传输所述请求数据时使用的第一通信协议,从预设配置中匹配与所述第一通信协议对应的第二数据格式,以根据所述第二数据格式对所述请求数据进行解码;
8.根据服务提供方所需求的数据格式,对解码后的所述请求数据进行格式转换,并将格式转换后的所述请求数据发送至所述服务提供方。
9.通过在网络桥接器未识别到请求数据的数据格式时,根据服务请求方传输请求数据时使用的通信协议,配置该请求数据的数据格式,使得能够根据配置后的数据格式对请求数据进行数据转换并发送,从而在网络通信协议未提供相应的数据格式时,仍可实现服务请求方与服务提供方之间的数据传输。
10.进一步的,根据所述服务请求方传输所述请求数据时使用的第一通信协议,从预设配置中匹配与所述第一通信协议对应的第二数据格式,包括:
11.根据所述服务请求方传输所述请求数据时使用的第一通信协议,从传输所述请求数据的路由记录的第一预设配置中匹配与所述第一通信协议对应的第二数据格式。
12.进一步的,还包括:
13.若检测到所述路由中不存在所述第一预设配置时,从全局配置库记录的第二预设配置中匹配与所述第一通信协议对应的第二数据格式。
14.进一步的,根据所述第二数据格式对所述请求数据进行解码,包括:
15.根据所述第二数据格式,对所述请求数据的请求头进行字段处理后,对字段处理后的所述请求数据通过过滤器链进行解码。
16.进一步的,所述服务提供方由从所述请求数据中提取到的请求路径确定。
17.进一步的,还包括:
18.接收所述服务提供方根据格式转换后的所述请求数据反馈的响应数据,识别所述响应数据的第三数据格式,并在未识别到所述第三数据格式时,根据所述服务提供方传输所述响应数据时使用的第二通信协议,从所述预设配置中匹配与所述第二通信协议对应的第四数据格式,以根据所述第四数据格式对所述请求数据进行解码。
19.进一步的,所述第二通信协议包括rsocket协议;
20.根据所述服务提供方传输所述响应数据时使用的第二通信协议,从所述预设配置中匹配与所述第二通信协议对应的第四数据格式,包括:
21.根据所述服务提供方传输所述响应数据时使用的rsocket协议,从所述预设配置中匹配与所述rsocket协议对应的常规格式和报错格式;
22.检测所述响应数据是否报错,若是,则将所述报错格式作为所述第四数据格式,否则,将所述常规格式作为所述第四数据格式。
23.第二方面,在本技术实施例中,提供了一种数据传输装置,包括:
24.数据接收模块,用于接收服务请求方发送的请求数据;
25.格式配置模块,用于识别所述请求数据的第一数据格式,并在未识别到所述第一数据格式时,根据所述服务请求方传输所述请求数据时使用的第一通信协议,从预设配置中匹配与所述第一通信协议对应的第二数据格式,以根据所述第二数据格式对所述请求数据进行解码;
26.数据传输模块,用于根据服务提供方所需求的数据格式,对解码后的所述请求数据进行格式转换,并将格式转换后的所述请求数据发送至所述服务提供方。
27.第三方面,本技术实施例中,还提供了一种网络桥接器,包括:存储器、处理器及记录在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的数据传输方法。
28.第四方面,本技术实施例提供一种计算机可读记录介质,所述计算机可读记录介质记录有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上述实施例所述的数据传输方法。
附图说明
29.下面结合附图和实施例对本技术进一步地说明;
30.图1为一个实施例中数据传输方法的应用环境图;
31.图2为一个实施例中数据传输方法的流程示意图;
32.图3为另一个实施例中数据传输方法的流程示意图;
33.图4为一个实施例中数据传输装置的结构框图;
34.图5为一个实施例中桥接器的结构框图。
具体实施方式
35.本部分将详细描述本技术的具体实施例,本技术之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本技术的每个技术特征和整体技术方案,但其不能理解为对本技术保护范围的限制。
36.不同平台不同系统之间的服务有时需要相互利用。由于不同平台或不同系统可能使用不同的网络通信协议进行数据传输,此时两种协议的实现在交互方式、编解码和数据包上可能存在差异。如服务请求方要接入服务提供方时需要采用rsocket来互相通信,但服务请求方因为语言和技术的限制,不一定采用rsocket协议,而非rsocket协议与rsocket协议的实现在交互方式、编解码和数据包上存在差异,例如服务提供方要求接入服务支持request/stream和request/response两种交互方式,而采用非rsocket协议的无法实现这两种交付方式,此时服务请求方和服务提供方之间无法进行通信。其中,服务提供方和服务提供方可以是终端或服务器,终端具体可以是台式终端或移动终端可以是手机、平板电脑、笔记本电脑、可穿戴设备等中的一种。服务器可以用独立的服务器或者是多个服务器组成的服务器群来实现,还可以是提供云服务、云信息库、云计算、云函数、云记录、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大信息和人工智能平台等基础云计算服务的云服务器。
37.为此,如图1所示,需要一个网络桥接器110位于服务请求方120和服务提供方130两者之间,来屏蔽这些差异,从而方便服务请求方和服务提供方进行通信。传统的网络桥接器通过透传的方式来实现服务请求方和服务提供方的通信。如服务提供方采用rsocket协议进行通信,而rsocket默认支持application/cbor格式,因此在接收到服务请求方的请求数据时,若服务请求方使用的通信协议是http协议或grpc协议,则可直接将请求数据透传到服务提供方。然而这种传统的桥接器仅能支持服务提供方的通信协议默认的数据格式,对其他的数据格式无法传输。
38.相关技术中,提供了一种解决方案,网络桥接器在接收到服务请求方发送的请求数据时,识别请求数据携带的数据格式,并将请求数据的数据格式转换为适用于服务提供方的网络通信协议的数据格式后,将转换后的请求数据发送至服务提供方。然而,由于并非所有的请求数据都携带有数据格式,如当服务请求方采用的是websocket或rsocket通信协议时,发送的请求数据不会携带数据格式,而由于请求数据转换时需要先根据请求数据的数据格式进行解码,因此当请求数据未提供数据格式时,会导致请求数据无法进行转换,此时若请求数据的数据格式并非服务提供方支持的数据格式,会导致请求数据无法传输。
39.为了解决上述技术问题,本技术实施例通过在网络桥接器未识别到请求数据的数据格式时,根据服务请求方传输请求数据时使用的通信协议,配置该请求数据的数据格式,使得能够根据配置后的数据格式对请求数据进行数据转换并发送,从而在网络通信协议未提供相应的数据格式时,仍可实现服务请求方与服务提供方之间的数据传输。
40.下面,将通过几个具体的实施例对本技术实施例提供的数据传输方法进行详细介绍和说明。
41.如图2所示,在一个实施例中,提供了一种数据传输方法。本实施例主要以该方法应用于计算机设备来举例说明。该计算机设备具体可以是上述图1中的网络桥接器110。
42.参照图2,该数据传输方法具体包括如下步骤:
43.s11、接收服务请求方发送的请求数据。
44.在一实施例中,网络桥接器集成有多种协议通信能力的独立服务,如集成有http、websocket和rsocket等协议通信能力的独立服务,能够接收和响应服务请求方发送的请求数据。
45.s12、识别请求数据的第一数据格式,并在未识别到第一数据格式时,根据服务请求方传输请求数据时使用的第一通信协议,从预设配置中匹配与第一通信协议对应的第二数据格式,以根据第二数据格式对请求数据进行解码。
46.在一实施例中,考虑到在解码时需要提供数据格式和数据类型两种信息,在编码时需要提供数据格式信息,因此当接收到请求数据时,会识别请求数据的第一数据格式。若请求数据中存在第一数据格式,且检测到服务请求方和服务提供方采用的通信协议的数据格式一致,例如http协议和rsocket协议都采用application/cbor格式,则直接透传,即网络桥接器不会对请求数据做编解码,保证传输性能。若请求数据中存在第一数据格式,且检测到服务请求方和服务提供方采用的通信协议的数据格式不一致,则根据第一数据格式进行解码。例如http采用application/json,在获取到采用http协议发送的请求数据后,可通过请求头中content

type字段获取请求数据的数据格式application/json后,对请求数据解码。
47.若请求数据中不存在第一数据格式,如采用websocket发送的请求数据没有提供类似http的content

type,此时则识别服务请求方传输请求数据时使用的第一通信协议,然后根据第一通信协议从预设配置中查找与服务请求方传输请求数据时使用的第一通信协议对应的第二数据格式。其中,预设配置预先配置有通信协议与第二数据格式的对应关系,预设配置可根据不同通信协议的特点为不同的通信协议预先配置不同的数据格式,如预设websocket协议对应的第二数据格式为json格式,rsocket对应的第二数据格式为application/cbor格式等。此时当第一通信协议为websocket协议时,即可从预设配置匹配到对应的第二数据格式为json格式,从而以json格式对请求数据进行解码。其中,预设配置可以表格的形式记录通信协议与第二数据格式的对应关系,如下表所示:
48.通信协议第二数据格式websocketjsonrsocketapplication/cbor
…………
49.在一实施例中,预设配置包括记录在路由的第一预设配置,即路由中预先配置有通信协议与第二数据格式的对应关系。当未识别到第一数据格式时,根据服务请求方传输请求数据时使用的第一通信协议,从传输请求数据的路由记录的第一预设配置中匹配与第一通信协议对应的第二数据格式。
50.其中,在进行请求数据的传输时,网络桥接器会先根据请求数据中的url找到对应的路由后,从该路由记录的第一预设配置中查找与第一通信协议对应的第二数据格式。若该路由中存在与第一通信协议对应的第二数据格式,如第一通信协议为websocket协议,而该路由中预设websocket协议对应的预设配置为json格式,则基于该预设配置对请求数据进行解码。
51.由于对每个路由均进行预设配置的设置,工作量较为繁琐,因此通常只会对部分
路由进行预设配置的设置。为保证当路由中不存在预设配置的设置时,亦可实现数据的解码,确保数据能够正常传输,在一实施例中,若检测到路由中不存在第一预设配置时,从全局配置库记录的第二预设配置中匹配与第一通信协议对应的第二数据格式。其中,全局配置库预先记录有通信协议与第二数据格式的对应关系,当未从路由中查找到第一预设配置时,则通过上述方式进行全局配置,确保请求数据可进行解码,从而保证请求数据的正常传输。
52.为提高请求数据的解码效率,在一实施例中,根据第二数据格式对请求数据进行解码,包括:根据第二数据格式,对请求数据的请求头进行字段处理后,对字段处理后的请求数据通过过滤器链进行解码。
53.在一实施例中,对请求数据进行解码时,会根据请求数据的url找到对应的路由,然后交给该路由下的过滤器链进行字段处理,其中字段处理包括对请求头增加字段或减少字段,使请求头符合第二数据格式,最后在过滤器链末尾对数据进行解码。
54.s13、根据服务提供方所需求的数据格式,对解码后的请求数据进行格式转换,并将格式转换后的请求数据发送至服务提供方。
55.在一实施例中,服务提供方可能存在多个,因此可先从请求数据中提取请求路径,根据请求路径确定服务提供方。在确定服务提供方后,根据服务提供方所采用的第二通信协议,即可确定服务提供方所需求的数据格式。如服务提供方所采用的第二通信协议为rsocket,则确定服务提供方所需求的数据格式为application/cbor格式,此时对解码后的请求数据进行编码,形成application/cbor格式的请求数据后,将application/cbor格式的请求数据发送至服务提供方。
56.通过在网络桥接器未识别到请求数据的数据格式时,根据服务请求方传输请求数据时使用的通信协议,配置该请求数据的数据格式,使得能够根据配置后的数据格式对请求数据进行数据转换并发送,从而在网络通信协议未提供相应的数据格式时,仍可实现服务请求方与服务提供方之间的数据传输。
57.为实现服务请求方和服务请求方的双向通信,如图3所示,是另一个实施例中数据传输方法的流程示意图。在本实施例中,除图2所示步骤外,还包括:
58.s14、接收服务提供方根据格式转换后的请求数据反馈的响应数据,识别响应数据的第三数据格式,并在未识别到第三数据格式时,根据服务提供方传输响应数据时使用的第二通信协议,从预设配置中匹配与第二通信协议对应的第四数据格式,以根据第四数据格式对请求数据进行解码。
59.在一实施例中,与处理请求数据时相同,当接收到当接收到响应数据时,会识别响应数据的第三数据格式。若响应数据中存在第三数据格式,且检测到服务请求方和服务提供方采用的通信协议的数据格式一致,例如http协议和rsocket协议都采用application/cbor格式,则直接透传,即网络桥接器不会对响应数据做编解码,保证传输性能。若响应数据中存在第三数据格式,且检测到服务请求方和服务提供方采用的通信协议的数据格式不一致,则根据第三数据格式进行解码。例如http采用application/json,在获取到采用http协议发送的响应数据后,可通过请求头中content

type字段获取响应数据的数据格式application/json后,对响应数据解码。
60.若响应数据中不存在第三数据格式,如采用websocket发送的响应数据没有提供
类似http的content

type,此时则识别服务提供方传输响应数据时使用的第二通信协议,然后根据第二通信协议从预设配置中查找与服务提供方传输响应数据时使用的第二通信协议对应的第四数据格式。其中,预设配置预先配置有通信协议与第四数据格式的对应关系。此时当第二通信协议为websocket协议时,即可从预设配置匹配到对应的第四数据格式为json格式,从而以json格式对响应数据进行解码。其中,预设配置可以表格的形式记录通信协议与第四数据格式的对应关系,如下表所示:
61.通信协议第四数据格式websocketjsonrsocketapplication/cbor
…………
62.在一实施例中,预设配置包括记录在路由的第一预设配置,即路由中预先配置有通信协议与第四数据格式的对应关系。当未识别到第三数据格式时,根据服务提供方传输响应数据时使用的第二通信协议,从传输响应数据的路由记录的第一预设配置中匹配与第二通信协议对应的第四数据格式。
63.其中,在进行请求数据的传输时,网络桥接器会先根据响应数据中的url找到对应的路由后,从该路由记录的第一预设配置中查找与第二通信协议对应的第四数据格式。若该路由中存在与第二通信协议对应的第四数据格式,则基于该预设配置对请求数据进行解码。
64.在一实施例中,若检测到路由中不存在第一预设配置时,从全局配置库记录的第二预设配置中匹配与第二通信协议对应的第四数据格式。其中,全局配置库预先记录有通信协议与第四数据格式的对应关系,当未从路由中查找到第一预设配置时,则通过上述方式进行全局配置,确保响应数据可进行解码,从而保证响应数据的正常传输。
65.通过在网络桥接器未识别到请求数据或响应数据的数据格式时,根据服务请求方传输请求数据时使用的通信协议,配置该请求数据的数据格式,以及根据服务提供方传输响应数据时使用的通信协议,配置该响应数据的数据格式,使得能够根据配置后的数据格式对请求数据或响应数据进行数据转换并发送,从而在网络通信协议未提供相应的数据格式时,仍可实现服务请求方与服务提供方之间的数据传输,实现两者的双向通信。
66.考虑到采用rsocket传输的响应数据在报错时,不会提供标识来表明错误,此时当响应数据报错时无法被辨认,导致服务请求方在接收到的转换格式后的响应数据时,无法确认响应数据是否报错。为此。在一实施例中,当第二通信协议为rsocket协议时,根据服务提供方传输响应数据时使用的第二通信协议,从预设配置中匹配与第二通信协议对应的第四数据格式,包括:根据服务提供方传输响应数据时使用的rsocket协议,从预设配置中匹配与rsocket协议对应的常规格式和报错格式;检测响应数据是否报错,若是,则将报错格式作为第四数据格式,否则,将常规格式作为第四数据格式。
67.其中,预设配置中预设有rsocket协议对应的常规格式和报错格式,如将rsocket协议对应的常规格式设置为application,将rsocket协议对应的报错格式设置为cbor。此时当响应数据报错时,则将响应数据以cbor格式进行解码,当响应数据正常时,则将响应数据以application格式进行解码,从而根据响应数据的解码方式来表明响应数据是否出错,进而使服务请求方可根据响应数据的解编码信息进行错误辨认。
68.由于服务请求方和服务提供方可能存在多个,此时为提高对请求数据和响应数据的处理效率,在一实施例中,网络桥接器与服务请求方和服务提供方异步通信。示例性的,网络桥接器可基于reactor实现与服务请求方和服务提供方的异步通信,从而对接收到的请求数据和/或响应数据做异步处理。其中,reactor是一个响应式实现库,它将请求数据或响应数据一一记录下来后,会在服务请求方发送请求数据时,给服务请求方返回提示信息,或在服务提供方发送响应数据时,给服务响应方返回提示信息,如“收到请求,正在处理中”。同时为了解耦,reactor提供一个任务派发器
‑‑
拉模型pull,而pull可以让上游结点不用关心下游结点的状态,即在请求数据传输时,服务请求方无需关注网络桥接器的状态;在响应数据传输时,服务提供方无需关注的网络桥接器状态,从而减少数据传输的复杂度。
69.此外,网络桥接器还可基于webflux对接收到的请求数据和/或响应数据做异步任务处理。其中,webflux默认采用netty。netty是一款基于nio开发的网络通信框架来支持异步的运行环境,并且采用了reactor作为首选的响应式流的实现库。在webflux和reactor提供的能力上,网络桥接器可通过webflux异步接收请求数据和/或响应数据,然后网络桥接器再通过reactor异步接收到请求数据和/或响应数据,使整个过程实现了更好的异步处理。
70.在一个实施例中,如图4所示,提供了一种数据传输装置,应用于网络桥接器,包括:
71.数据接收模块101,用于接收服务请求方发送的请求数据。
72.格式配置模块102,用于识别请求数据的第一数据格式,并在未识别到第一数据格式时,根据服务请求方传输请求数据时使用的第一通信协议,从预设配置中匹配与第一通信协议对应的第二数据格式,以根据第二数据格式对请求数据进行解码。
73.数据传输模块103,用于根据服务提供方所需求的数据格式,对解码后的请求数据进行格式转换,并将格式转换后的请求数据发送至服务提供方。
74.在一个实施例中,格式配置模块102,具体用于:
75.根据服务请求方传输请求数据时使用的第一通信协议,从传输请求数据的路由记录的第一预设配置中匹配与第一通信协议对应的第二数据格式。
76.在一个实施例中,格式配置模块102,具体用于:
77.若检测到路由中不存在第一预设配置时,从全局配置库记录的第二预设配置中匹配与第一通信协议对应的第二数据格式。
78.在一实施例中,格式配置模块102,具体用于:
79.根据第二数据格式,对请求数据的请求头进行字段处理后,对字段处理后的请求数据通过过滤器链进行解码。
80.在一实施例中,服务提供方由从请求数据中提取到的请求路径确定。
81.在一实施例中,数据传输模块103还用于:
82.接收服务提供方根据格式转换后的请求数据反馈的响应数据,识别响应数据的第三数据格式,并在未识别到第三数据格式时,根据服务提供方传输响应数据时使用的第二通信协议,从预设配置中匹配与第二通信协议对应的第四数据格式,以根据第四数据格式对请求数据进行解码。
83.在一实施例中,当第二通信协议为rsocket协议时,数据传输模块103还用于:根据
服务提供方传输响应数据时使用的rsocket协议,从预设配置中匹配与rsocket协议对应的常规格式和报错格式;检测响应数据是否报错,若是,则将报错格式作为第四数据格式,否则,将常规格式作为第四数据格式。
84.在一个实施例中,提供了一种网络桥接器,如图5所示,包括:存储器、处理器及记录在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的数据传输方法。
85.在一个实施例中,本技术提供的数据传输装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的网络桥接器上运行。网络桥接器的存储器中可记录组成该数据传输装置的各个程序模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的数据传输方法中的步骤。
86.在一个实施例中,提供了一种电子设备,包括:存储器、处理器及记录在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时执行上述数据传输方法的步骤。此处数据传输方法的步骤可以是上述各个实施例的数据传输方法中的步骤。
87.在一个实施例中,提供了一种计算机可读记录介质,所述计算机可读记录介质记录有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述数据传输方法的步骤。此处数据传输方法的步骤可以是上述各个实施例的数据传输方法中的步骤。
88.以上所述是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本技术的保护范围。
89.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可记录于一计算机可读取记录介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的记录介质可为磁碟、光盘、只读记录记忆体(read

only memory,rom)或随机记录记忆体(random access memory,ram)等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献