CN113839902B - 通信协议适配方法、装置、计算机设备和存储介质 - Google Patents
通信协议适配方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113839902B CN113839902B CN202010510861.XA CN202010510861A CN113839902B CN 113839902 B CN113839902 B CN 113839902B CN 202010510861 A CN202010510861 A CN 202010510861A CN 113839902 B CN113839902 B CN 113839902B
- Authority
- CN
- China
- Prior art keywords
- request
- structure body
- protocol
- response
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本申请涉及一种通信协议适配方法、装置、计算机设备和存储介质。所述方法包括:获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;根据请求地址发送目标协议请求结构体至待通信服务器;接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。采用本方法能够提高通信协议适配效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种通信协议适配方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了通信协议适配技术,通信协议适配是指任务调度系统按照与任务模块约定的协议与其进行通信,以此请求不同的任务模块来完成特定的处理工作。
传统技术中,是通过事先约定好协议模板,使任务调度系统与全部都按照这个协议模板进行通信的方式来实现通信协议适配的,具体在请求不同的任务模块时,需要开发人员通过任务调度系统在协议模板的字段中添加不同的参数,若参数值类型不对应的话还需要进行参数转换,将不符合的数据类型转换为期望的数据类型。
然而,传统方式,由于需要开发人员在每次请求不同的任务模块时,都执行上述操作,通过开发人员与任务调度系统人机交互以实现请求任务模块,操作繁琐,存在通信协议适配效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高通信协议适配效率的通信协议适配方法、装置、计算机设备和存储介质。
一种通信协议适配方法,所述方法包括:
获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;
根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
根据请求地址发送目标协议请求结构体至待通信服务器;
接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
一种通信协议适配装置,所述装置包括:
获取模块,用于获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
构建模块,用于根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;
字段匹配模块,用于根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
发送模块,用于根据请求地址发送目标协议请求结构体至待通信服务器;
响应模块,用于接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;
根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
根据请求地址发送目标协议请求结构体至待通信服务器;
接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;
根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
根据请求地址发送目标协议请求结构体至待通信服务器;
接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
上述通信协议适配方法、装置、计算机设备和存储介质,根据用于对与待通信服务器通信的通信协议进行描述的协议描述文件以及预设反射机制,得到初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体,从配置文件中获取请求地址,根据请求地址发送目标协议请求结构体至待通信服务器,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值,整个过程,能够根据协议描述文件以及预设反射机制实现自动化地与待通信服务器完成通信协议适配,无需开发人员在协议模板的字段中添加参数以及进行参数转换,从而有效的减少了通信协议适配的操作流程,提高了通信协议适配效率。
附图说明
图1为一个实施例中通信协议适配方法的应用环境图;
图2为一个实施例中通信协议适配方法的流程示意图;
图3为一个实施例中通信协议适配方法中配置文件的示意图;
图4为另一个实施例中通信协议适配方法的流程示意图;
图5为一个实施例中通信协议适配方法的应用场景示意图;
图6为一个实施例中通信协议适配装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的通信协议适配方法,可以应用于如图1所示的应用环境中。其中,服务器102通过网络与待通信服务器104进行通信。服务器获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址,根据协议描述文件以及预设反射机制,得到初始化协议请求结构体,根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体,根据请求地址发送目标协议请求结构体至待通信服务器,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。其中,服务器102和待通信服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种通信协议适配方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址。
其中,待通信服务器是指能完成特定的处理工作的服务器。比如,待通信服务器具体可以是能够完成关键词审核的服务器。又比如,待通信服务器具体可以是能够完成图片OCR(Optical Character Recognition,光学字符识别)审核的服务器。再比如,待通信服务器具体可以是能够完成低质内容审核或者广告内容审核的服务器。配置文件是指待通信服务器的配置信息文件,其中包括待通信服务器标识,请求地址、协议描述文件地址、请求相关信息以及响应相关信息等。
其中,待通信服务器标识用于表示待通信服务器的功能。请求地址是指与待通信服务器进行通信的数据传输地址。协议描述文件是指用于对与待通信服务器通信的通信协议进行描述的文件。请求相关信息包括请求结构体类型以及需设置的字段,响应相关信息包括响应结构体类型以及会返回的字段。举例说明,如图3所示,为频率控制服务器的配置文件,在其中包括待通信服务器标识(id),请求地址(addr)、协议描述文件地址(“fileDescriptorSet”:“conf/protos/freq_new.protoset”)、请求相关信息(req相关字段)以及响应相关信息(rsp字段)。
具体的,待通信服务器的配置文件是已提前存储在服务器中的预设缓存空间中的。每个待通信服务器都有自己的协议描述文件,协议描述文件中指出了待通信服务器的通信协议所需的参数,包括选填字段和必填字段。在建立服务器与待通信服务器的链接时,用户会在服务器中注册待通信服务器的协议描述文件,并将协议描述文件的地址写入待通信服务器的配置文件中,从而使得服务器在需要与待通信服务器进行通信协议适配时,可以通过先获取待通信服务器的配置文件,再从配置文件中获取到协议描述文件的方式,得到协议描述文件。服务器会通过预设请求地址标识对配置文件进行扫描,从配置文件中获取到请求地址。举例说明,如图3所示,服务器可以通过预设请求地址标识(addr)对配置文件进行扫描,从配置文件中获取到请求地址(l5://1195841:327680)。
其中,注册待通信服务器的协议描述文件是指根据用户按需设计的待通信服务器的通信协议进行协议描述。用户会按需设计待通信服务器的通信协议,不同待通信服务器的通信协议不完全相同,在通信协议中明确标注了选填字段、必填字段以及各字段对应的期望数据类型,通过这种方式,能够省掉不必要的字段添加以及数据类型核验,进而提升开发效率。进行协议描述是指对用户设计的通信协议进行编译,得到协议描述文件。举例说明,用户可以通过利用Protocol Buffers设计通信协议,得到Protocol Buffers文件,Protocol Buffers是一种与语言、平台无关的、可扩展的结构化数据格式,能够高效执行串行化、反串行化操作,服务器通过与Protocol Buffers文件对应的编译器protoc就可以对Protocol Buffers文件进行编译,得到协议描述文件。
步骤204,根据协议描述文件以及预设反射机制,得到初始化协议请求结构体。
其中,反射机制用于在服务器运行过程中根据某种数据结构的描述动态地在内存中构建任意类型的数据结构。比如,反射机制具体可以是go反射机制。又比如,反射机制具体可以是java反射机制。初始化协议请求结构体是指根据协议描述文件利用预设反射机制构建的初始化请求数据结构,在初始化协议请求结构体中各请求字段对应的请求字段值为空。
具体的,服务器根据协议描述文件可以确定初始化协议请求结构体的字段参数,包括字段顺序、字段数据类型以及字段所需内存空间等,进而根据字段参数以及预设反射机制,得到初始化协议请求结构体。
步骤206,根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体。
其中,请求字段是指初始化协议请求结构体中各数据字段。比如,请求字段具体可以是Int字段。又比如,请求字段具体可以是float字段。请求字段值是指请求字段对应的值。比如,Int字段对应的请求字段值为整数,float字段对应的请求字段值为浮点数。目标协议请求结构体是指各请求字段对应的请求字段值不为空的协议请求结构体。
具体的,由于初始化协议请求结构体中各请求字段对应的请求字段值为空,服务器需要给初始化协议请求结构体中各请求字段对应的请求字段值赋值。服务器可以通过获取初始化协议请求结构体中各请求字段的请求字段标识,根据请求字段标识查询配置文件的方式,获取各请求字段对应的请求字段值,通过将获取到的各请求字段对应的请求字段值填入初始化协议请求结构体中,得到各请求字段对应的请求字段值不为空的目标协议请求结构体,进而通过目标协议请求结构体实现自动化地与待通信服务器完成通信协议适配。
步骤208,根据请求地址发送目标协议请求结构体至待通信服务器。
具体的,服务器会通过预设请求地址标识对配置文件进行扫描,从配置文件中获取到请求地址。举例说明,请求地址标识具体可以是addr,服务器通过addr对配置文件进行扫描,就可以得到请求地址。在得到请求地址后,服务器会对目标协议请求结构体进行序列化,将序列化后的目标协议请求结构体发送至待通信服务器,待通信服务器在接收到序列化后的目标协议请求结构体后,会对序列化后的目标协议请求结构体进行反序列化,得到序列化前的目标协议请求结构体,对序列化前的目标协议请求结构体进行识别,从中提取出服务器想要传输过来的待处理参数,根据待处理参数进行特定的数据处理工作,得到处理结果,对处理结果进行序列化后再反馈至服务器。
其中,序列化就是将内存中的表示压缩成字节序列,这个序列化过程中可能包括数据编码、压缩等等。在计算机程序中,内存中涉及各种各样的数据结构来对一个对象进行描述,如用户A发送给用户B的消息,可能包括如下字段:发送方、接收方、消息体、消息体长度、字体格式、字体颜色等等。一个进程A中的对象在内存中的表示,如果需要传送给另一个进程B(可能是跨不同的机器、网络),就需要对对象进行序列化。
步骤210,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
其中,响应信息是指待通信服务器反馈的序列化后的处理结果。所需响应字段值是指在配置文件中响应相关信息中的会返回的字段所对应的值。
具体的,服务器会接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息,再根据反序列化的响应信息,得到所需响应字段值。
上述通信协议适配方法,根据用于对与待通信服务器通信的通信协议进行描述的协议描述文件以及预设反射机制,得到初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体,从配置文件中获取请求地址,根据请求地址发送目标协议请求结构体至待通信服务器,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值,整个过程,能够根据协议描述文件以及预设反射机制实现自动化地与待通信服务器完成通信协议适配,无需开发人员在协议模板的字段中添加参数以及进行参数转换,从而有效的减少了通信协议适配的操作流程,提高了通信协议适配效率。
在一个实施例中,根据协议描述文件以及预设反射机制,得到初始化协议请求结构体包括:
根据协议描述文件,确定初始化协议请求结构体的字段参数;
根据字段参数以及预设反射机制,得到初始化协议请求结构体。
其中,字段参数包括字段顺序、字段数据类型以及字段所需内存空间。字段顺序是指各字段在初始化协议请求结构体中的排列顺序。字段数据类型是指各字段的数据类型,比如,数据类型具体可以是整数(Int)、浮点数(float)以及字符串(String)等。字段所需内存空间是指字段所需占用的内存空间。
具体的,服务器根据协议描述文件,可以确定初始化协议请求结构体的字段参数,包括字段顺序、字段数据类型以及字段所需内存空间等,进而利用预设反射机制,根据字段参数自动化构建初始化协议请求结构体。
本实施例中,通过根据协议描述文件,确定初始化协议请求结构体的字段参数,根据字段参数以及预设反射机制,得到初始化协议请求结构体,能够实现对初始化协议请求结构体的获取。
在一个实施例中,根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体包括:
获取初始化协议请求结构体中各请求字段的请求字段标识;
根据请求字段标识查询配置文件,确定与请求字段标识对应的请求字段值标识;
根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值;
根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体。
其中,请求字段标识用于表示各请求字段。与请求字段标识对应的请求字段值标识是指在配置文件中请求相关信息中的需设置的字段的标识。预设缓存空间是指服务器中用于缓存数据的空间。比如,预设缓存空间具体可以是服务器中的数据库。与请求字段值标识对应的请求字段值是指服务器想要传输至待通信服务器的待处理参数,该待处理参数可存储在预设缓存空间中。
具体的,服务器会获取初始化协议请求结构体中各请求字段的请求字段标识,根据请求字段标识查询配置信息,在配置信息中包括请求字段标识-请求字段值标识的对应关系信息,通过查询配置信息就可以得到与请求字段标识对应的请求字段值标识,进而根据请求字段值标识查找预设缓存空间,就能够得到与请求字段值标识对应的请求字段值,在预设缓存空间中包括请求字段值标识-请求字段值的对应关系信息。在得到与请求字段值标识对应的请求字段值后,服务器会根据与请求字段值标识对应的请求字段值,对初始化协议请求结构体中各请求字段对应的请求字段值赋值,得到目标协议请求结构体。
举例说明,如图3所示,假设频率控制服务的协议描述文件为:
},服务器根据协议描述文件,可以构造一个字段顺序为String-String-Int32,字段数据类型为String、String、Int32,字段所需内存空间为20字节(此处String所需内存空间为8字节,Int32所需内存空间为4字节)的初始化协议请求结构体,获取初始化协议请求结构体中各请求字段的请求字段标识(body、type、uin),根据请求字段标识查询配置信息中的req相关字段,得到与请求字段标识对应的请求字段值标识(content、content_type、cuin,其中body与content对应、type与content_type对应、uin与cuin对应),根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值,根据与请求字段值标识对应的请求字段值,对初始化协议请求结构体中各请求字段对应的请求字段值赋值,得到目标协议请求结构体。
本实施例中,通过获取初始化协议请求结构体中各请求字段的请求字段标识,根据请求字段标识查询配置信息,得到与请求字段标识对应的请求字段值标识,根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值,根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体,能够实现对目标协议请求结构体的获取。
在一个实施例中,根据请求地址发送目标协议请求结构体至待通信服务器包括:
对目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体;
根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器。
具体的,服务器会对目标协议请求结构体进行序列化(包括数据编码和压缩等),得到序列化后的目标协议请求结构体。在得到序列化后的目标协议请求结构体后,服务器会根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器。
本实施例中,通过对目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体,根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器,能够实现将序列化后的目标协议请求结构体传输至待通信服务器。
在一个实施例中,对目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体包括:
对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体;
对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体。
其中,数据编码是指用编码表示目标协议请求结构体。比如,数据编码具体可以是用二进制数表示目标协议请求结构体。压缩是指通过特定的算法来减小文件大小。
具体的,在对目标协议请求结构体进行序列化时,服务器会首先对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体,再对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体。
本实施例中,通过对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体,对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体,能够实现对序列化后的目标协议请求结构体的获取。
在一个实施例中,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值包括:
接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息;
根据反序列化的响应信息,得到所需响应字段值。
其中,反序列化是指根据序列化时采用的数据编码原理和压缩算法对响应信息进行解压和解码。
具体的,服务器会接收待通信服务器反馈的响应信息,通过解压和解码对响应信息进行反序列化,得到反序列化的响应信息,再根据反序列化的响应信息,得到所需响应字段值。
本实施例中,通过接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息,根据反序列化的响应信息,得到所需响应字段值,能够实现对所需响应字段值的获取。
在一个实施例中,根据反序列化的响应信息,得到所需响应字段值包括:
根据协议描述文件以及预设反射机制,得到初始化协议响应结构体;
根据反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体;
根据配置信息从目标协议响应结构体中提取出所需响应字段值。
其中,初始化协议响应结构体是指根据协议描述文件利用预设反射机制构建的初始化响应数据结构,在初始化协议响应结构体中各响应字段对应的响应字段值为空。响应字段值是指响应字段对应的值。目标协议响应结构体是指各响应字段对应的响应字段值不为空的协议响应结构体。
具体的,服务器根据协议描述文件可以确定初始化协议响应结构体的字段参数,包括字段顺序、字段数据类型以及字段所需内存空间等,进而根据字段参数以及预设反射机制,得到初始化协议响应结构体,根据初始化协议响应结构体中各响应字段的响应字段标识查询反序列化的响应信息,从反序列化的响应信息中获取与初始化协议响应结构体中各响应字段对应的响应字段值,将获取到的各响应字段对应的响应字段值填入初始化协议响应结构体,得到目标协议响应结构体,最后根据目标协议响应结构体中各响应字段的响应字段标识,查询配置信息,根据配置信息中的响应字段标识-响应字段值标识的对应关系,确定与响应字段标识对应的响应字段值标识,从目标协议响应结构体中获取各响应字段对应的响应字段值,匹配与响应字段标识对应的响应字段值标识以及各响应字段对应的响应字段值,得到所需响应字段值。
本实施例中,通过根据协议描述文件以及预设反射机制,得到初始化协议响应结构体,从反序列化的响应信息中获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体,根据配置信息从目标协议响应结构体中提取出所需响应字段值,能够实现对所需响应字段值的获取。
在一个实施例中,如图4所示,通过一个具体实施例来说明本申请的通信协议适配方法,该通信协议适配方法包括以下步骤:
步骤402,获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
步骤404,根据协议描述文件,确定初始化协议请求结构体的字段参数;
步骤406,根据字段参数以及预设反射机制,得到初始化协议请求结构体;
步骤408,获取初始化协议请求结构体中各请求字段的请求字段标识;
步骤410,根据请求字段标识查询配置文件,确定与请求字段标识对应的请求字段值标识;
步骤412,根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值;
步骤414,根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体;
步骤416,对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体;
步骤418,对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体;
步骤420,根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器;
步骤422,接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息;
步骤424,根据协议描述文件以及预设反射机制,得到初始化协议响应结构体;
步骤426,根据反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体;
步骤428,根据配置信息从目标协议响应结构体中提取出所需响应字段值。
本申请还提供一种应用场景,该应用场景应用上述的通信协议适配方法。具体地,该通信协议适配方法在该应用场景的应用如下:
在进行内容安全审核时,任务调度系统(服务器)将按照如图5所示的拓扑图依次执行其包含的任务模块,如OCR、全局黑名单、低俗模型、业安审核、关键词审核等等,这些任务模块(待通信服务器)各自的协议都是不同的。
任务调度系统获取任务模块的配置文件,从配置文件中获取协议描述文件以及请求地址,根据协议描述文件,确定初始化协议请求结构体的字段参数,根据字段参数以及预设反射机制,得到初始化协议请求结构体,获取初始化协议请求结构体中各请求字段的请求字段标识,根据请求字段标识查询配置文件,确定与请求字段标识对应的请求字段值标识,根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值,根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体,对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体,对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体,根据请求地址,发送序列化后的目标协议请求结构体至任务模块,接收任务模块反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息,根据协议描述文件以及预设反射机制,得到初始化协议响应结构体,根据反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体,根据配置信息从目标协议响应结构体中提取出所需响应字段值。
应该理解的是,虽然图2以及图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2以及图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种通信协议适配装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:获取模块602、构建模块604、字段匹配模块606、发送模块608和响应模块610,其中:
获取模块602,用于获取待通信服务器的配置文件,从配置文件中获取协议描述文件以及请求地址;
构建模块604,用于根据协议描述文件以及预设反射机制,得到初始化协议请求结构体;
字段匹配模块606,用于根据初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
发送模块608,用于根据请求地址发送目标协议请求结构体至待通信服务器;
响应模块610,用于接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值。
上述通信协议适配装置,根据用于对与待通信服务器通信的通信协议进行描述的协议描述文件以及预设反射机制,得到初始化协议请求结构体,从配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体,从配置文件中获取请求地址,根据请求地址发送目标协议请求结构体至待通信服务器,接收待通信服务器反馈的响应信息,根据响应信息得到所需响应字段值,整个过程,能够根据协议描述文件以及预设反射机制实现自动化地与待通信服务器完成通信协议适配,无需开发人员在协议模板的字段中添加参数以及进行参数转换,从而有效的减少了通信协议适配的操作流程,提高了通信协议适配效率。
在一个实施例中,构建模块包括:
字段参数获取单元,用于根据协议描述文件,确定初始化协议请求结构体的字段参数;
构建单元,用于根据字段参数以及预设反射机制,得到初始化协议请求结构体。
在一个实施例中,字段匹配模块包括:
请求字段标识获取单元,用于获取初始化协议请求结构体中各请求字段的请求字段标识;
请求字段值标识获取单元,用于根据请求字段标识查询配置文件,确定与请求字段标识对应的请求字段值标识;
请求字段值获取单元,用于根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值;
赋值单元,用于根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体。
在一个实施例中,发送模块包括:
序列化单元,用于对目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体;
发送单元,用于根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器。
在一个实施例中,序列化单元包括:
编码组件,用于对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体;
压缩组件,用于对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体。
在一个实施例中,响应模块包括:
反序列化单元,用于接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息;
处理单元,用于根据反序列化的响应信息,得到所需响应字段值。
在一个实施例中,处理单元包括:
处理组件,用于根据协议描述文件以及预设反射机制,得到初始化协议响应结构体;
赋值组件,用于根据反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体;
提取组件,用于根据配置信息从目标协议响应结构体中提取出所需响应字段值。
关于通信协议适配装置的具体限定可以参见上文中对于通信协议适配方法的限定,在此不再赘述。上述通信协议适配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储配置文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种通信协议适配方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种通信协议适配方法,其特征在于,所述方法包括:
获取待通信服务器的配置文件,从所述配置文件中获取协议描述文件以及请求地址;
根据所述协议描述文件以及预设反射机制,得到初始化协议请求结构体;
根据所述初始化协议请求结构体,从所述配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
根据所述请求地址发送所述目标协议请求结构体至所述待通信服务器;
接收所述待通信服务器反馈的响应信息,根据所述响应信息得到所需响应字段值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述协议描述文件以及预设反射机制,得到初始化协议请求结构体包括:
根据所述协议描述文件,确定初始化协议请求结构体的字段参数;
根据所述字段参数以及预设反射机制,得到初始化协议请求结构体。
3.根据权利要求1所述的方法,其特征在于,所述根据所述初始化协议请求结构体,从所述配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体包括:
获取初始化协议请求结构体中各请求字段的请求字段标识;
根据所述请求字段标识查询所述配置文件,确定与所述请求字段标识对应的请求字段值标识;
根据所述请求字段值标识查找预设缓存空间,得到与所述请求字段值标识对应的请求字段值;
根据所述与请求字段值标识对应的请求字段值,得到目标协议请求结构体。
4.根据权利要求1所述的方法,其特征在于,所述根据所述请求地址发送所述目标协议请求结构体至所述待通信服务器包括:
对所述目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体;
根据所述请求地址,发送所述序列化后的目标协议请求结构体至所述待通信服务器。
5.根据权利要求4所述的方法,其特征在于,所述对所述目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体包括:
对所述目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体;
对所述数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体。
6.根据权利要求1所述的方法,其特征在于,所述接收所述待通信服务器反馈的响应信息,根据所述响应信息得到所需响应字段值包括:
接收所述待通信服务器反馈的响应信息,对所述响应信息进行反序列化,得到反序列化的响应信息;
根据所述反序列化的响应信息,得到所需响应字段值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述反序列化的响应信息,得到所需响应字段值包括:
根据所述协议描述文件以及预设反射机制,得到初始化协议响应结构体;
根据所述反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体;
根据配置信息从所述目标协议响应结构体中提取出所需响应字段值。
8.一种通信协议适配装置,其特征在于,所述装置包括:
获取模块,用于获取待通信服务器的配置文件,从所述配置文件中获取协议描述文件以及请求地址;
构建模块,用于根据所述协议描述文件以及预设反射机制,得到初始化协议请求结构体;
字段匹配模块,用于根据所述初始化协议请求结构体,从所述配置文件中获取与初始化协议请求结构体中各请求字段对应的请求字段值,得到目标协议请求结构体;
发送模块,用于根据所述请求地址发送所述目标协议请求结构体至所述待通信服务器;
响应模块,用于接收所述待通信服务器反馈的响应信息,根据所述响应信息得到所需响应字段值。
9.根据权利要求8所述的装置,其特征在于,构建模块包括:
字段参数获取单元,用于根据协议描述文件,确定初始化协议请求结构体的字段参数;
构建单元,用于根据字段参数以及预设反射机制,得到初始化协议请求结构体。
10.根据权利要求8所述的装置,其特征在于,字段匹配模块包括:
请求字段标识获取单元,用于获取初始化协议请求结构体中各请求字段的请求字段标识;
请求字段值标识获取单元,用于根据请求字段标识查询配置文件,确定与请求字段标识对应的请求字段值标识;
请求字段值获取单元,用于根据请求字段值标识查找预设缓存空间,得到与请求字段值标识对应的请求字段值;
赋值单元,用于根据与请求字段值标识对应的请求字段值,得到目标协议请求结构体。
11.根据权利要求8所述的装置,其特征在于,发送模块包括:
序列化单元,用于对目标协议请求结构体进行序列化,得到序列化后的目标协议请求结构体;
发送单元,用于根据请求地址,发送序列化后的目标协议请求结构体至待通信服务器。
12.根据权利要求11所述的装置,其特征在于,序列化单元包括:
编码组件,用于对目标协议请求结构体进行数据编码,得到数据编码后的目标协议请求结构体;
压缩组件,用于对数据编码后的目标协议请求结构体进行压缩,得到序列化后的目标协议请求结构体。
13.根据权利要求8所述的装置,其特征在于,响应模块包括:
反序列化单元,用于接收待通信服务器反馈的响应信息,对响应信息进行反序列化,得到反序列化的响应信息;
处理单元,用于根据反序列化的响应信息,得到所需响应字段值。
14.根据权利要求13所述的装置,其特征在于,处理单元包括:
处理组件,用于根据协议描述文件以及预设反射机制,得到初始化协议响应结构体;
赋值组件,用于根据反序列化的响应信息,获取与初始化协议响应结构体中各响应字段对应的响应字段值,得到目标协议响应结构体;
提取组件,用于根据配置信息从目标协议响应结构体中提取出所需响应字段值。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010510861.XA CN113839902B (zh) | 2020-06-08 | 2020-06-08 | 通信协议适配方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010510861.XA CN113839902B (zh) | 2020-06-08 | 2020-06-08 | 通信协议适配方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113839902A CN113839902A (zh) | 2021-12-24 |
CN113839902B true CN113839902B (zh) | 2023-05-02 |
Family
ID=78963601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010510861.XA Active CN113839902B (zh) | 2020-06-08 | 2020-06-08 | 通信协议适配方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113839902B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915516A (zh) * | 2022-05-11 | 2022-08-16 | 中国第一汽车股份有限公司 | 一种通信方法及装置 |
CN116506523B (zh) * | 2023-06-21 | 2023-09-19 | 之江实验室 | 一种适用于多协议的统一通信方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000040041A (ja) * | 1998-07-23 | 2000-02-08 | Nippon Telegr & Teleph Corp <Ntt> | インターネットプロトコルバーション変換用入出力同期方法及びシステム及びネットワークパケット受信処理用アプリケーション及びネットワークパケット受信処理用サーバ及びインターネットプロトコルバーション変換用入出力同期プログラムを格納した記憶媒体 |
CN101425948B (zh) * | 2008-10-23 | 2011-10-26 | 上海大学 | 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法 |
CN105573956B (zh) * | 2015-12-10 | 2019-06-21 | 盛趣信息技术(上海)有限公司 | 序列化方法以及基于序列化的网络通信方法 |
CN109445968A (zh) * | 2018-11-09 | 2019-03-08 | 金瓜子科技发展(北京)有限公司 | 不同协议的服务请求处理方法、装置、设备及存储介质 |
-
2020
- 2020-06-08 CN CN202010510861.XA patent/CN113839902B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113839902A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161468B2 (en) | Processing of expressions | |
CN113839902B (zh) | 通信协议适配方法、装置、计算机设备和存储介质 | |
US8224980B2 (en) | Adaptive parsing and compression of SOAP messages | |
CN108572845B (zh) | 分布式微服务集群的升级方法及相关系统 | |
CN105812351A (zh) | 实现会话共享的方法和系统 | |
CN112738216B (zh) | 一种设备适配方法、装置、设备和计算机可读存储介质 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
CN114489690A (zh) | 一种分布式系统部署方法、装置、电子设备及存储介质 | |
CN113660307A (zh) | 一种算法综合集成服务系统 | |
CN109617960B (zh) | 一种基于属性化分离的web AR数据呈现方法 | |
CN115167869A (zh) | 一种Java对象序列化和反序列化的方法、电子设备及介质 | |
CN113296987B (zh) | 调用模块的接口调用方法、装置、计算机设备及存储介质 | |
CN113242313B (zh) | 数据同步方法、系统、装置、服务器及存储介质 | |
CN115269117A (zh) | 一种资源创建方法、装置、计算机设备及存储介质 | |
CN111984679B (zh) | 硬件加速数据库的访问方法、装置、主机、系统及介质 | |
CN113992644A (zh) | 一种基于无服务技术的物联网关系统及其数据处理方法 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN114265866A (zh) | 流式数据处理方法、规则插件、流式数据处理模块及系统 | |
CN112491956A (zh) | 物联网设备中通讯模组的升级方法、装置和计算机设备 | |
CN112650502A (zh) | 批处理任务处理方法、装置、计算机设备和存储介质 | |
CN104965909A (zh) | 一种动态web内容的请求处理方法 | |
WO2023097903A1 (zh) | 报文传输方法、装置、电子设备和存储介质 | |
CN117883789B (zh) | 数据获取方法、装置、设备、可读存储介质及程序产品 | |
CN114138829B (zh) | 共享Prepare Statement的方法、系统和网络设备 | |
WO2023024714A1 (en) | Static analysis method, apparatus, and device, and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |