发明内容
本发明的目的是提供一种协议转换网关的配置系统、配置方法及协议转换网关,以降低协议转换网关的生产和运行维护的繁琐度。
为实现上述目的,本发明提供了如下方案:
一种协议转换网关的配置系统,包括:配置文件存储子系统、主模块和功能子系统;
所述配置文件存储子系统用于存储所述功能子系统中各个功能模块的配置文件,所述配置文件包括模块工作流配置文件、协议转换配置文件和功能模块配置文件;所述工作流配置文件用于配置所述功能子系统中各个功能模块之间的工作流;所述协议转换配置文件用于配置不同终端的通信协议之间的转换关系;所述功能模块配置文件用于根据所述协议转换配置文件配置所述功能子系统中各个功能模块的运行参数;
所述功能子系统包括实现不同终端之间数据转发的多个功能模块,多个功能模块之间的工作流按照所述工作流配置文件配置;
所述主模块用于接收外部传输的配置协议,并将所述配置协议传输至所述配置文件存储子系统,所述配置文件存储子系统根据所述配置协议更改存储的配置文件。
可选的,所述协议转换配置文件包括协议定义配置文件和协议转换关系策略配置文件;所述协议定义配置文件用于配置终端的通信协议格式内容;所述协议转换关系策略配置文件用于配置不同终端的通信协议格式之间的转换关系。
可选的,所述功能模块配置文件根据所述更改存储的配置文件进行更新;
当更新后的功能模块配置文件需要增加或删除所述功能子系统中的功能模块时,所述主模块用于根据更新后的功能模块配置文件增加或删除所述功能子系统中对应的功能模块的配置;
当更新后的功能模块配置文件需要更新所述功能子系统中的功能模块时,所述主模块用于根据更新后的功能模块配置文件通知所述功能子系统中需要更新配置的功能模块,需要更新配置的功能模块按照所述更改后的配置文件更新配置。
可选的,所述主模块还用于收集所述功能子系统各个模块的运行状态,并对外提供查询接口。
可选的,还包括:解析模块,所述解析模块用于对所述更改存储的配置文件进行解析,确定对应功能模块的更新参数;所述功能模块配置文件根据所述对应模块的更新参数进行更新。
本发明还提供一种协议转换网关的配置方法,包括:
获取配置文件存储子系统中存储的配置文件;所述配置文件包括模块工作流配置文件、协议转换配置文件和功能模块配置文件;所述协议转换配置文件包括协议定义配置文件和协议转换关系策略配置文件;所述协议定义配置文件用于配置终端的通信协议格式内容;所述协议转换关系策略配置文件用于配置不同终端的通信协议格式之间的转换关系;
根据所述功能模块配置文件和所述协议转换配置文件配置所述功能子系统中各个功能模块的运行参数;
按照所述工作流配置文件配置所述功能子系统中各个功能模块之间的工作流。
可选的,还包括:
利用主模块接收外部传输的配置协议,并将所述配置协议传输至所述配置文件存储子系统;
所述配置文件存储子系统根据所述配置协议更改存储的所述协议定义配置文件和所述协议转换关系策略配置文件;
所述功能模块配置文件根据更改存储的所述协议定义配置文件和所述协议转换关系策略配置文件进行更新;
当更新后的功能模块配置文件需要增加或删除所述功能子系统中的功能模块时,所述主模块根据更新后的功能模块配置文件增加或删除所述功能子系统中对应的功能模块的配置;
当更新后的功能模块配置文件需要更新所述功能子系统中的功能模块时,所述主模块根据更新后的功能模块配置文件通知所述功能子系统中需要更新配置的功能模块,需要更新配置的功能模块按照所述更改后的配置文件更新配置。
可选的,所述利用主模块接收外部传输的配置协议,并将所述配置协议传输至所述配置文件存储子系统,之前还包括:
获取外部提交的配置协议;
对所述配置协议进行审核;
审核通过后,将所述配置协议传输至所述主模块。
可选的,所述功能模块配置文件根据更改存储的所述协议定义配置文件和所述协议转换关系策略配置文件进行更新,具体包括:
对所述更改存储的所述协议定义配置文件和所述协议转换关系策略配置文件进行解析,确定对应功能模块的更新参数;
根据所述对应模块的更新参数,对所述功能模块配置文件进行更新。
本发明还提供一种协议转换网关,所述协议转换网关包括前述的协议转换网关的配置系统。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的协议转换网关的配置系统采用所述配置文件存储子系统的协议转换配置文件来定义具体的通信协议格式内容,以及协议间的转换关系。通过对应的功能子系统加载对应的配置文件来进行协议的解析和转换,摆脱了原有的协议解析和转换使用硬编码的方式。这使得整个配置系统具备了很高的协议解析和转换的灵活性和拓展性,降低协议转换网关的生产和运行维护的繁琐程度。
另一方面,协议转换网关的配置系统采用模块工作流配置文件来组建各个软件业务模块的协作过程,使得协议转换网关在面对复杂业务逻辑时,也具备很高的灵活性和拓展性,避免了现有方案使用硬编码方式实现业务逻辑,在业务流程变化时,对应的适应修改较为困难的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图2所示,两边的终端或平台各自使用不同的通信协议进行通信,协议转换网关作为中间桥梁,通过对两端协议的转换以及操作响应,来将建立双方的通信。
本发明的协议转换网关包括一个配置系统,该配置系统用来对协议转换网关的运行参数进行配置,进而实现协议转换网关的协议转换操作。图3为本发明协议转换网关的配置系统的结构示意图,如图3所示,本发明的配置系统包括:
配置文件存储子系统301,用于存储功能子系统302中各个功能模块的配置文件,配置文件包括模块工作流配置文件、协议转换配置文件和功能模块配置文件。工作流配置文件用于配置功能子系统302中各个功能模块之间的工作流。协议转换配置文件用于配置不同终端的通信协议之间的转换关系,协议转换配置文件包括协议定义配置文件和协议转换关系策略配置文件,协议定义配置文件用于配置终端的通信协议格式内容,协议转换关系策略配置文件用于配置不同终端的通信协议格式之间的转换关系。功能模块配置文件用于根据协议转换配置文件配置功能子系统中各个功能模块的运行参数。
功能子系统302,包括实现不同终端之间数据转发的多个功能模块,多个功能模块之间的工作流按照工作流配置文件配置。各种功能模块根据具体对应的配置文件进行运行,按照工作流配置文件进行相互协作,完成整体业务功能。
主模块303,对内负责根据工作流配置文件初始化各个功能模块,并按照工作流要求,建立和维护各个模块的工作协作流程。对外负责提供协议转换网关运行的管理控制接口,以及收集各个内部模块的运行状态,并对外提供状态查询接口。具体的,主模块303对外负责提供协议转换网关运行的管理控制接口,是指主模块303接收外部传输的配置协议,并将配置协议传输至配置文件存储子系统301,进而配置文件存储子系统301根据配置协议更改存储的配置文件,首先根据配置协议更改的是协议定义配置文件和协议转换关系策略配置文件,然后根据更改后的协议定义配置文件和协议转换关系策略配置文件确定对应功能模块的更新参数(这一过程通过解析模块实现),然后功能模块配置文件根据对应模块的更新参数进行更新,进而完成整个配置文件存储子系统301中配置文件的更新过程。
本发明的配置系统可以根据终端的不同,灵活的对功能子系统302中的功能模块进行更新,进而使协议转换网关适用于不同的终端,实现不同的协议转换功能。对功能子系统302中的功能模块进行更新包括功能模块的增加、删除和更新,当更新后的功能模块配置文件需要增加或删除功能子系统302中的功能模块时,主模块303根据更新后的功能模块配置文件增加或删除功能子系统302中对应的功能模块的配置;当更新后的功能模块配置文件需要更新功能子系统302中的功能模块时,主模块303根据更新后的功能模块配置文件通知功能子系统302中需要更新配置的功能模块,需要更新配置的功能模块按照更改后的配置文件更新配置。
采用本发明的配置系统进行协议转换网关的配置流程如下:
获取配置文件存储子系统中存储的配置文件;
根据功能模块配置文件和协议转换配置文件配置功能子系统中各个功能模块的运行参数;
按照工作流配置文件配置功能子系统中各个功能模块之间的工作流。
当需要对协议转换网关的运行参数进行更改时,工作人员通过外部Web网页或PC端软件工具提交配置协议,例如,通过可视化的方式(二进制报文、JSON文件、XML文件等)提交配置协议,配置协议的内容包括:传输接口方式、内部的数据定义格式以及特定的业务处理要求等。传输接口方式包括TCP、UDP、Http、kafka、ActiveMQ等;内部的数据定义格式例如包括二进制报文中每个参数的名称、所占用的字节数、参数值的类型(char、int等)等;特定的业务处理要求,例如可以为某些字段的值需要有处理应答等。
当收到外部提交的配置协议后,需要后台对配置协议进行审核,一方面审核配置协议的内容是否符合要求,是否存在相应的功能模块支持该配置协议,另一方面审核配置协议的安全性和规范性。审核通过后,将配置协议传输至配置系统的主模块,由主模块将接收的外部传输的配置协议传输至配置文件存储子系统,进而实现功能模块的配置。
下面提供一个具体实施案例,进一步说明本发明的上述方案。
图4为本发明具体实施例中配置系统的结构图,如图4所示,本实施例中配置系统中配置文件存储子系统存储的配置文件,分为三类:
第一类,是模块总的配置文件,包含主模块自身的配置文件和协议转换网关的各个功能模块工作流配置文件。
第二类,是协议转换配置文件,包含具体的协议定义配置文件和协议转换关系策略配置文件。图中以存储协议A与协议B之间的转换配置文件为例,协议定义配置文件包括协议A格式定义文件和协议B格式定义文件,协议转换关系策略配置文件是指协议B与协议A转换策略文件。
第三类,是功能模块配置文件,其定义了每个对应功能模块的工作运行参数。比如,TCP、http等数据通信建立的参数,转发目标地址,数据协议模块如何进行数据协议的解析等。
主模块对内负责根据模块工作流配置文件,初始化各个功能模块,并按照工作流要求,建立和维护各个模块的工作协作流程。具体的,通过主模块中的主模块_管理模块读取主模块_管理模块配置文件,来初始化主模块的工作参数和工作模式。按照主模块_管理模块配置文件中的配置,加载对应路径的模块工作流配置文件,该模块工作流配置文件中包含了两个方面的内容,一方面是需要初始化的功能模块以及功能模块对应的配置文件列表,用于初始化各个模块;另一方面,是组建工作流时,各个功能模块之间的工作输入输出依赖关系,用于组建各个功能模块成为工作流水线。
功能子系统中各种功能模块根据具体对应的配置文件进行运行,按照工作流配置文件进行相互协作,完成整体业务功能。本实施例中,功能子系统包括二进制数据解析模块、字段转换模块、JSON处理模块、TCP通信模块、Http通信模块、Kafka通信模块、ActiveMQ接口模块、Redis接口模块以及其他功能模块。
本实施例中各个功能模块之间的工作流如图5所示,工作过程从左至右描述如下:
TCP通信模块按照功能模块配置文件中对应的TCP配置参数,建立监听,或与远端服务建立TCP链接,接收到远端的TCP报文数据,TCP报文数据为二进制数据包。
二进制数据解析模块接收到TCP通信模块传递的二进制数据包,并根据协议A格式定义文件中的协议定义对数据包进行解析,得到通用的中间数据表,表内存储协议A格式的参数数据。
字段转换模块接收到二进制数据解析模块传递的通用的中间数据报文,并根据协议B与协议A转换策略文件中的两种协议的转换策略,进行数据参数转换,得到通用的中间数据表,表内存储协议B格式的参数数据。
JSON处理模块接收到字段转换模块传递的(存储协议B格式的)通用的中间数据表,并根据协议B格式定义文件中的协议定义格式,封装得到JSON格式的数据报文,其中存储协议B格式的参数数据。
Http通信模块接收到JSON处理模块传递的JSON格式的数据报文,并根据功能模块配置文件中对应配置的目标地址,将JSON数据报文转发出去。
以上描述了从左至右,也就是协议A端到协议B端的通信过程。从右至左,即协议B到协议A端的操作过程,只需要逆向运行处理即可。
采用本实施例的配置系统对协议转换网关进行配置的过程如图6所示,过程如下:
步骤一:协议转换网关初始启动,加载主模块自身的配置文件,初始化自身的运行参数和运行模式。若初始化异常,则输出错误日志,跳转至步骤五。
步骤二:主模块根据模块工作流配置文件初始化各个功能模块,如果相关功能模块初始化异常,则将异常结果记录日志,并跳转至步骤五。
步骤三:主模块根据模块工作流配置文件建立功能模块协作工作流,生成整个协议转换网关的工作流,如果工作流建立中发生异常,则将异常结果记录日志,并跳转至步骤五。
步骤四:协议转换网关的工作流建立,开始协议解析、转发等业务处理过程。接收到关闭指令或运行异常时,输出相应日志,跳转至步骤五。
步骤五:退出协议转换网关,结束运行。
对协议转换网关进行部署后,需要提交数据协议和转发配置文件,必要时还需要更新功能模块的组建,即对协议转换网关的配置进行更新。如图7所示,更新流程如下:
步骤一:由设备厂商提交新的数据协议即新的配置协议,提交的形式可以是通过Web网页或者PC端软件工具的方式。
步骤二:数据协议提交后,后台进行审核。具体的,检查协议内容是否可以被合适的解析功能模块所支持。例如,最简单的二进制数据解析时,解析模块具备4个字节转换int型数值。如果全部字段的解析方式都支持,则审核通过,执行步骤四。否则,将不受支持的字段进行报错,生成报告。审核过程可以通过对应的解析模块进行校验,也可以通过人工比对模块转换支持函数列表来完成。
步骤三:协议部分字段解析方式不受支持时,可以通过反馈厂商的方式协调修改数据协议。如果数据协议无法修改,需要将后端解析模块的解析功能做相应的拓展。
步骤四:审核协议要求的业务处理要求是否受支持(如某些字段的值需要有处理应答等)。如果全部业务处理都受支持,则执行步骤五。
步骤五:向协议转换网关添加或更新协议转换配置文件等配置文件。协议解析和功能模块支持功能更新后,需更新对应的功能模块。例如,增加对应的功能模块,或者对已有的功能模块做功能拓展,或者对已有的功能模块进行删除。
步骤六:网关节点根据添加或更新的协议转换配置文件,重新初始化和构建模块协作工作流,继续进行网关协议解析和转发等服务。
本发明提供的协议转换网关的配置方式,灵活性高,拓展性强。一方面,应对通过配置文件的方式来定义协议格式,摆脱了原有的协议的解析和业务实现都通过代码来进行硬编码实现方式,在协议变更时具备更高的灵活性拓展性。另一方面,通过配置文件的方式来定义软件模块流。同第一点一样,在遇到业务逻辑变更时,本方案配置化的方式,可以只修改模块工作流配置,无需代码修改即可适应业务变更需求。最后,软件系统易于维护和拓展。采用层次化,模块化设计,可以解耦各个软件功能模块。使得需要对接的设备厂家,后端的后端运维,开发人员,乃至售后支持都能够同时参与到系统业务中来,合理分工工作内容,高效协作解决各自岗位关心的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。