基于网关的报文发送方法、装置、计算机设备和存储介质与流程

专利2022-06-30  70


本申请涉及到计算机领域,特别是涉及到一种基于网关的报文发送方法、装置、计算机设备和存储介质。



背景技术:

网关是内部网络与外部网络的连接点,既可以用于广域网互连,也可以用于局域网互连,充当转换重任。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译桥梁作用。其重点难点在于如何统一不同的系统协议,转化为统一的标准,供内部系统使用。传统的网关中开发人员对接外部系统需要面对复杂、冗长、繁琐的外部接口加密规则,不同协议接口参数,不同系统的数据格式。开发人员需要逐个系统对接,根据实际外部接口规范,一步步进行特定场景开发才能对接外部接口服务,存在开发效率低的缺陷。并且传统的网关对于报文的处理,并不会考虑负载的影响,当网关的负载过高而暂时无法处理报文时,会将报文进行排队以依序处理。但是当网关的负载在一定时间内保持较高水平时,这种方式会导致重要或者迫切报文无法得到及时处理,导致重要信息延误。



技术实现要素:

本申请的主要目的为提供一种基于网关的报文发送方法、装置、计算机设备和存储介质,旨在提高效率并避免重要报文延误。

为了实现上述发明目的,本申请提出一种基于网关的报文发送方法,所述网关用于连接内部网络与外部网络,包括:

接收处于所述内部网络的客户端发送的请求报文;

获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

将所述最终报文发给处于所述外部网络的服务端。

进一步地,所述获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态的步骤,包括:

获取所述网关的流量随时间变化的流量函数f(t);

根据公式:

h1(t)=min(g(t),m1),h2(t)=min(g(t),m2),...,hn(t)=min(g(t),mn),其中e(t)=f(t)-f(t),获取函数h1(t)、h2(t)、…、hn(t),其中f(t)为预设的标准流量函数,e(t)为所述流量函数f(t)与所述标准流量函数的差值函数,g(t)为流量衡量函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m1、m2、…、mn为预设的大于0的流量参数,m1、m2、…、mn的数值依次增大,n为大于等于1的整数;

分别统计函数h1(t)、h2(t)、…、hn(t)的输出值等于所述流量衡量函数g(t)时,在同一统计时间内的占比,从而得到占比值ratio1、ratio2、…、ration;

判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

若所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,则确定所述网关的当前负载级别为n。

进一步地,所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤,包括:

以倒序的顺序依次判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤之后,包括:

若第k次判断的结果为小于预设的占比阈值,则确定所述网关的当前负载级别为n 1-k,其中k为大于等于1且小于等于n的整数。

进一步地,所述若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别的步骤之前,包括:

获取样本数据,并将所述样本数据划分为训练数据与验证数据,其中所述样本数据包括历史请求报文的大小、接收到的多次历史请求报文之间的时间差、接收到的历史请求报文的次数、历史负载级别和处理所述历史请求报文的最佳时间点;

利用所述训练数据训练预设的神经网络模型,并采用反向更新的方式更新所述神经网络模型的各层参数,从而得到初始预测模型;

利用所述验证数据验证所述初始预测模型;

若所述初始预测模型验证通过,则将所述初始预测模型记为所述时间点预测模型。

进一步地,所述请求报文指定了所述服务端的地址,所述调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文的步骤,包括:

根据预设的地址与报文格式的对应关系,获取与所述服务端的地址对应的最终报文格式;

根据预设的报文格式与动态脚本的对应关系,从预设的脚本库中调取与所述最终报文格式对应的指定动态脚本;

判断所述指定动态脚本的历史调用次数是否超过预定次数;

若所述指定动态脚本的历史调用次数超过预定次数,则利用所述指定动态脚本将所述请求报文划分为多个暂时参数块,其中所述暂时参数块中包括一个参数名和与所述参数名对应的值;

利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块,并将多个所述最终参数块根据所述最终报文格式规定的参数顺序组合为最终报文。

进一步地,所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤之前,包括:

接收第三方终端发送的指定文件,所述指定文件用于加密或者加签;

将所述指定文件存入预设的数据库;

所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤,包括:

利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个映射后参数块;

从预设的数据库中调取所述指定文件;

利用所述指定动态脚本使用所述指定文件对所述映射后参数块进行加密或者加签处理,从而得到多个最终参数块。

进一步地,所述指定文件用于加密,并且加密用密钥隐写于所述指定文件中,所述第三方终端同时发送了包括所述指定文件在内的多个文件,所述将所述指定文件存入预设的数据库的步骤,包括:

根据预先约定的指定文件的筛选规则,从所述第三方终端发送的多个文件中筛选出所述指定文件;

根据预先约定的密钥存储位置,从所述指定文件中提取出所述密钥,并在所述指定文件中删掉除了所述密钥部分之外的其余内容;

将进行删除处理之后的指定文件存入预设的数据库。

本申请提供一种基于网关的报文发送装置,所述网关用于连接内部网络与外部网络,包括:

请求报文接收单元,用于接收处于所述内部网络的客户端发送的请求报文;

负载级别获取单元,用于获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

暂时搁置单元,用于若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

请求报文判断单元,用于在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

预测时间点获取单元,用于若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

最终报文获取单元,用于在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

最终报文发送单元,用于将所述最终报文发给处于所述外部网络的服务端。

本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请的基于网关的报文发送方法、装置、计算机设备和存储介质,接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

附图说明

图1为本申请一实施例的基于网关的报文发送方法的流程示意图;

图2为本申请一实施例的基于网关的报文发送装置的结构示意框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请实施例提供一种基于网关的报文发送方法,所述网关用于连接内部网络与外部网络,包括:

s1、接收处于所述内部网络的客户端发送的请求报文;

s2、获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

s3、若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

s4、在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

s5、若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

s6、在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

s7、将所述最终报文发给处于所述外部网络的服务端。

如上述步骤s1所述,接收处于所述内部网络的客户端发送的请求报文。报文是网络中交换与传输的数据单元,即一次性要发送的数据块,包含了将要发送的完整的数据信息,并且以一定的格式记载数据。所述请求报文用于发送给处于外部网络的服务端。进一步地,所述请求报文携带有所述服务端的地址信息。

如上述步骤s2所述,获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值。网关提前设置了多个负载级别,用于反应负载状态。例如当网关的访问量很少,访问流量很小,因此网关无压力时记为负载级别0;当网关的访问量极多,访问流量巨大,网关涉临崩溃时记为负载级别10。再判断所述当前负载级别是否大于预设的级别阈值,从而得知网关是否适合即时处理所述请求报文。

如上述步骤s3所述,若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理。若所述当前负载级别大于预设的级别阈值,表明所述网关繁忙,暂时无法对所述请求报文进行处理,并且由于所述请求报文的重要程度暂时无法体现,因此网关没必要优选处理,据此对所述请求报文进行暂时搁置处理。

如上述步骤s4所述,在预定时间之后,判断所述客户端是否多次发送了相同的请求报文。其中,预定时间可为任意时间,优选所述网关的负载状态不发生改变的时间,或者所述网关的负载状态改变的级别值不超过预设值的时间。其中客户端若多次发送了相同的请求报文,视为所述请求报文迫切,因此有必要分析所述请求报文的重要性。

如上述步骤s5所述,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别。若所述客户端多次发送了相同的请求报文,表明所述请求报文需要进一步分析,因此利用基于神经网络模型的已训练好的时间点预测模型进行预测所述请求报文的处理时间点。其中神经网络模型是一种机器学习模型,可胜任预测任务,例如为vgg19模型、vgg-f模型、resnet50模型、dpn131模型、inceptionv3模型、densenet模型等。上述模型是现有的网络结构,在此不在赘述。其中预测根据的指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别。所述指定数据特征是指能够反应所述请求报文的迫切性的特征,例如请求报文越大其需要的计算量也越大,因此不适合优先处理;接收到的请求报文的次数越多,表明所述请求报文越迫切,应及早处理所述请求报文等。从而得到预测时间点,所述预测时间点指所述请求报文将被处理的时间点,一般的,越不重要的报文的预测时间点越靠后,从而降低所述网关的压力。

如上述步骤s6所述,在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文。其中脚本指确定的一系列控制计算机进行运算操作动作的组合,本申请中用于对报文进行处理。本申请的动态脚本指根据不同的请求报文,会采用不同的脚本进行处理,实现脚本的灵活切换。其中举例说明参数映射:如内部客户端传入的请求报文的部分内容为{"code":"123","name":"happy"},服务端能识别的对应的参数格式为<key>123</key><text>happy</text>,指定动态脚本则将原请求报文中的参数“code”映射为”key”,将参数“name"映射为“text”。传统技术中的网关是将参数映射相关代码以硬编码的形式写入,从而使参数映射相关内容难以修改,当新的报文格式出现时,无法将请求报文映射为具有新的报文格式的最终报文。具体地,本申请通过采用可视化界面进行动态脚本(所述动态肢本内容包括:参数加密或者加签算法、参数格式化、参数映射)配置,并录入到数据库;网关在数据库获取指定脚本;通过验证方法验证指定脚本的脚本语法是否正确,如果出错则报错;通过自定义核心工具模块,集成脚本(例如groovy脚本)到网关容器中(例如springcontext容器),这样系统就能以内部服务形式去调用动态代码。

如上述步骤s7所述,将所述最终报文发给处于所述外部网络的服务端。由于最终报文的参数格式是经过参数映射得到的,因此处于所述外部网络的服务端能够接收并识别所述最终报文,从而实现了报文的转发。

在一个实施方式中,所述获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态的步骤s2,包括:

s201、获取所述网关的流量随时间变化的流量函数f(t);

s202、根据公式:

h1(t)=min(g(t),m1),h2(t)=min(g(t),m2),...,hn(t)=min(g(t),mn),其中e(t)=f(t)-f(t),获取函数h1(t)、h2(t)、…、hn(t),其中f(t)为预设的标准流量函数,e(t)为所述流量函数f(t)与所述标准流量函数的差值函数,g(t)为流量衡量函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m1、m2、…、mn为预设的大于0的流量参数,m1、m2、…、mn的数值依次增大,n为大于等于1的整数;

s203、分别统计函数h1(t)、h2(t)、…、hn(t)的输出值等于所述流量衡量函数g(t)时,在同一统计时间内的占比,从而得到占比值ratio1、ratio2、…、ration;

s204、判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

s205、若所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,则确定所述网关的当前负载级别为n。

如上所述,实现了获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态。本申请采用函数h1(t)、h2(t)、…、hn(t)以衡量所述网关的流量随时间变化的流量函数f(t)相对于标准流量函数的区别,从而利用流量数据得知所述网关的负载状态。再分别统计函数h1(t)、h2(t)、…、hn(t)的输出值等于所述流量衡量函数g(t)时在同一统计时间内的占比,从而得到占比值ratio1、ratio2、…、ration;所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,则确定所述网关的当前负载级别为n,从而获取准确的负载级别值。其中若所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,表明所述网关的负载符合1至n所有负载级别,因此选择最高级别n为所述网关的当前负载级别。

在一个实施方式中,所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤s204,包括:

s20401、以倒序的顺序依次判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤s204之后,包括:

s2041、若第k次判断的结果为小于预设的占比阈值,则确定所述网关的当前负载级别为n 1-k,其中k为大于等于1且小于等于n的整数。

如上所述,实现了准确获取所述网关的当前负载级别。为了缩短判断的流程,本申请利用高级别的负载级别的优先级更高的特性,以倒序的顺序依次判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值,因此当某次判断结果为小于预设的占比阈值,则此时即可中止判断直接获知负载级别。具体地,若第k次判断的结果为小于预设的占比阈值,则确定所述网关的当前负载级别为n 1-k,其中k为大于等于1且小于等于n的整数。

在一个实施方式中,所述若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别的步骤s5之前,包括:

s41、获取样本数据,并将所述样本数据划分为训练数据与验证数据,其中所述样本数据包括历史请求报文的大小、接收到的多次历史请求报文之间的时间差、接收到的历史请求报文的次数、历史负载级别和处理所述历史请求报文的最佳时间点;

s42、利用所述训练数据训练预设的神经网络模型,并采用反向更新的方式更新所述神经网络模型的各层参数,从而得到初始预测模型;

s43、利用所述验证数据验证所述初始预测模型;

s44、若所述初始预测模型验证通过,则将所述初始预测模型记为所述时间点预测模型。

如上所述,实现了对神经网络模型进行训练,从而得到所述时间点预测模型。所述时间点预测模型是基于神经网络模型训练而成的,所述神经网络模型为vgg19模型、vgg-f模型、resnet50模型、dpn131模型、inceptionv3模型、densenet模型等。所述样本数据选择历史请求报文的大小、接收到的多次历史请求报文之间的时间差、接收到的历史请求报文的次数、历史负载级别和处理所述历史请求报文的最佳时间点。进一步地,所述样本数据还可以包括能够反应历史请求报文重要性程度的数据。再利用所述训练数据训练预设的神经网络模型,并采用反向更新的方式更新所述神经网络模型的各层参数,从而得到初始预测模型,其中训练可以采用随机梯度下降法,并且利用反向传导法优化模型各层的参数。为了保证初始预测模型的可用性,本申请还通过利用所述验证数据验证所述初始预测模型的方式进一步确认,若所述初始预测模型验证通过,则表明所述初始预测模型可用,因此将所述初始预测模型记为所述时间点预测模型。

在一个实施方式中,所述请求报文指定了所述服务端的地址,所述调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文的步骤s6,包括:

s601、根据预设的地址与报文格式的对应关系,获取与所述服务端的地址对应的最终报文格式;

s602、根据预设的报文格式与动态脚本的对应关系,从预设的脚本库中调取与所述最终报文格式对应的指定动态脚本;

s603、判断所述指定动态脚本的历史调用次数是否超过预定次数;

s604、若所述指定动态脚本的历史调用次数超过预定次数,则利用所述指定动态脚本将所述请求报文划分为多个暂时参数块,其中所述暂时参数块中包括一个参数名和与所述参数名对应的值;

s605、利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块,并将多个所述最终参数块根据所述最终报文格式规定的参数顺序组合为最终报文。

如上所述,实现了调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文。不同的服务端采用的报文格式不尽相同,不同的报文格式需要的动态脚本也不相同,因此根据预设的地址与报文格式的对应关系,获取与所述服务端的地址对应的最终报文格式;根据预设的报文格式与动态脚本的对应关系,从预设的脚本库中调取与所述最终报文格式对应的指定动态脚本。再判断所述指定动态脚本的历史调用次数是否超过预定次数;若未超过预定次数,表明所述指定动态脚本为新的脚本,需要验证脚本语法是否正确,如果正确才能判定所述指定动态脚本可用。再利用所述指定动态脚本将所述请求报文划分为多个暂时参数块,从而使参数映射处理时避免了不同参数之间可能造成的映射重叠处理造成的映射失败,并根据所述最终报文格式规定的参数顺序组合为最终报文。其中所述最终报文格式规定的参数顺序可以与所述请求报文的参数顺序相同,也可以不同。

在一个实施方式中,所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤s605之前,包括:

s6041、接收第三方终端发送的指定文件,所述指定文件用于加密或者加签;

s6042、将所述指定文件存入预设的数据库;

所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤s605,包括:

s6051、利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个映射后参数块;

s6052、从预设的数据库中调取所述指定文件;

s6053、利用所述指定动态脚本使用所述指定文件对所述映射后参数块进行加密或者加签处理,从而得到多个最终参数块。

如上所述,实现了采用指定动态脚本进行加密或者加签处理。其中加密或者加签即是进行加密或者签名处理,需要相应的密钥文件或者签名文件(本申请中即为指定文件)。并且本申请以接收第三方终端发送的指定文件的方式,相对于直接从客户端中获取指定文件,更安全(若客户端发送的指定文件被不法分子窃取,则不法分子可直接确定所述指定文件是所述客户端的密钥或签名文件;而第三方终端可以做到专门防护,减小被窃取的概率,并且被窃取后,不法分子也无从得知指定文件的用途)。再利用指定动态脚本采用所述指定文件进行加密或者加签处理,从而得到多个最终参数块。由于本申请是采用指定动态脚本进行加密或者加签处理的,因此调取的指定文件可灵活设定,指定文件的存储位置可灵活设置,因此可以在不重启网关,不对网关进行重新编码的前提下,实现灵活加密或者加签处理。

在一个实施方式中,所述指定文件用于加密,并且加密用密钥隐写于所述指定文件中,所述第三方终端同时发送了包括所述指定文件在内的多个文件,所述将所述指定文件存入预设的数据库的步骤s6042,包括:

s60421、根据预先约定的指定文件的筛选规则,从所述第三方终端发送的多个文件中筛选出所述指定文件;

s60422、根据预先约定的密钥存储位置,从所述指定文件中提取出所述密钥,并在所述指定文件中删掉除了所述密钥部分之外的其余内容;

s60423、将进行删除处理之后的指定文件存入预设的数据库。

如上所述,实现了将所述指定文件存入预设的数据库。本申请的指定文件用于加密,并且采用隐写的方式,将密钥隐藏于所述指定文件中,从而进一步保证了信息的安全性。具体地,第三方终端发送多个文件,其中的指定文件中隐藏有密钥,而其余的文件可以另有用途,也可以仅用于防止不法分子识别出指定文件;再根据预先约定的指定文件的筛选规则,从所述第三方终端发送的多个文件中筛选出所述指定文件,其中所述指定文件的筛选规则例如为大小最大的文件为指定文件、类型不同的文件为指定文件等。再根据预先约定的密钥存储位置,从所述指定文件中提取出所述密钥,并在所述指定文件中删掉除了所述密钥部分之外的其余内容;将进行删除处理之后的指定文件存入预设的数据库,其中由于指定文件中删掉了其余内容,因此删除处理之后的指定文件实际上就是密钥文件,可以直接用于加密使用。

本申请的基于网关的报文发送方法,接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

参照图2,本申请实施例提供一种基于网关的报文发送装置,所述网关用于连接内部网络与外部网络,包括:

请求报文接收单元10,用于接收处于所述内部网络的客户端发送的请求报文;

负载级别获取单元20,用于获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

暂时搁置单元30,用于若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

请求报文判断单元40,用于在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

预测时间点获取单元50,用于若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

最终报文获取单元60,用于在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

最终报文发送单元70,用于将所述最终报文发给处于所述外部网络的服务端。

其中上述单元分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述负载级别获取单元20,包括:

流量函数f(t)获取子单元,用于获取所述网关的流量随时间变化的流量函数f(t);

函数h1(t)、h2(t)、…、hn(t)获取子单元,用于根据公式:

h1(t)=min(g(t),m1),h2(t)=min(g(t),m2),...,hn(t)=min(g(t),mn),其中e(t)=f(t)-f(t),获取函数h1(t)、h2(t)、…、hn(t),其中f(t)为预设的标准流量函数,e(t)为所述流量函数f(t)与所述标准流量函数的差值函数,g(t)为流量衡量函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m1、m2、…、mn为预设的大于0的流量参数,m1、m2、…、mn的数值依次增大,n为大于等于1的整数;

占比统计子单元,用于分别统计函数h1(t)、h2(t)、…、hn(t)的输出值等于所述流量衡量函数g(t)时,在同一统计时间内的占比,从而得到占比值ratio1、ratio2、…、ration;

占比阈值判断子单元,用于判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

当前负载级别确定子单元,用于若所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,则确定所述网关的当前负载级别为n。

其中上述子单元分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述占比阈值判断子单元,包括:

占比阈值判断模块,用于以倒序的顺序依次判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

所述负载级别获取单元20,包括:

负载级别获取子单元,用于若第k次判断的结果为小于预设的占比阈值,则确定所述网关的当前负载级别为n 1-k,其中k为大于等于1且小于等于n的整数。

其中上述模块、子单元分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述装置,包括:

样本数据获取单元,用于获取样本数据,并将所述样本数据划分为训练数据与验证数据,其中所述样本数据包括历史请求报文的大小、接收到的多次历史请求报文之间的时间差、接收到的历史请求报文的次数、历史负载级别和处理所述历史请求报文的最佳时间点;

初始预测模型获取单元,用于利用所述训练数据训练预设的神经网络模型,并采用反向更新的方式更新所述神经网络模型的各层参数,从而得到初始预测模型;

验证单元,用于利用所述验证数据验证所述初始预测模型;

时间点预测模型获取单元,用于若所述初始预测模型验证通过,则将所述初始预测模型记为所述时间点预测模型。

其中上述单元分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述请求报文指定了所述服务端的地址,所述最终报文获取单元60,包括:

最终报文格式获取子单元,用于根据预设的地址与报文格式的对应关系,获取与所述服务端的地址对应的最终报文格式;

指定动态脚本获取子单元,用于根据预设的报文格式与动态脚本的对应关系,从预设的脚本库中调取与所述最终报文格式对应的指定动态脚本;

预定次数判断子单元,用于判断所述指定动态脚本的历史调用次数是否超过预定次数;

参数块划分子单元,用于若所述指定动态脚本的历史调用次数超过预定次数,则利用所述指定动态脚本将所述请求报文划分为多个暂时参数块,其中所述暂时参数块中包括一个参数名和与所述参数名对应的值;

最终报文组合子单元,用于利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块,并将多个所述最终参数块根据所述最终报文格式规定的参数顺序组合为最终报文。

其中上述子单元分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述最终报文获取单元60,包括:

指定文件接收子单元,用于接收第三方终端发送的指定文件,所述指定文件用于加密或者加签;

指定文件存储子单元,用于将所述指定文件存入预设的数据库;

所述最终报文组合子单元,包括:

参数映射模块,用于利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个映射后参数块;

指定文件调取模块,用于从预设的数据库中调取所述指定文件;

最终参数块获取模块,用于利用所述指定动态脚本使用所述指定文件对所述映射后参数块进行加密或者加签处理,从而得到多个最终参数块。

其中上述子单元、模块分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

在一个实施方式中,所述指定文件用于加密,并且加密用密钥隐写于所述指定文件中,所述第三方终端同时发送了包括所述指定文件在内的多个文件,所述指定文件存储子单元,包括:

指定文件筛选模块,用于根据预先约定的指定文件的筛选规则,从所述第三方终端发送的多个文件中筛选出所述指定文件;

密钥提取模块,用于根据预先约定的密钥存储位置,从所述指定文件中提取出所述密钥,并在所述指定文件中删掉除了所述密钥部分之外的其余内容;

指定文件存储模块,用于将进行删除处理之后的指定文件存入预设的数据库。

其中上述模块分别用于执行的操作与前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

本申请的基于网关的报文发送装置,接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于网关的报文发送方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于网关的报文发送方法。

上述处理器执行上述基于网关的报文发送方法,其中所述方法包括的步骤分别与执行前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请的计算机设备,接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于网关的报文发送方法,其中所述方法包括的步骤分别与执行前述实施方式的基于网关的报文发送方法的步骤一一对应,在此不再赘述。

本申请的计算机可读存储介质,接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。


技术特征:

1.一种基于网关的报文发送方法,其特征在于,所述网关用于连接内部网络与外部网络,包括:

接收处于所述内部网络的客户端发送的请求报文;

获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

将所述最终报文发给处于所述外部网络的服务端。

2.根据权利要求1所述的基于网关的报文发送方法,其特征在于,所述获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态的步骤,包括:

获取所述网关的流量随时间变化的流量函数f(t);

根据公式:

h1(t)=min(g(t),m1),h2(t)=min(g(t),m2),...,hn(t)=min(g(t),mn),其中e(t)=f(t)-f(t),获取函数h1(t)、h2(t)、…、hn(t),其中f(t)为预设的标准流量函数,e(t)为所述流量函数f(t)与所述标准流量函数的差值函数,g(t)为流量衡量函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m1、m2、…、mn为预设的大于0的流量参数值,m1、m2、…、mn的数值依次增大,n为大于等于1的整数;

分别统计函数h1(t)、h2(t)、…、hn(t)的输出值等于所述流量衡量函数g(t)时,在同一统计时间内的占比,从而得到占比值ratio1、ratio2、…、ration;

判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

若所述占比值ratio1、ratio2、…、ration均小于预设的占比阈值,则确定所述网关的当前负载级别为n。

3.根据权利要求2所述的基于网关的报文发送方法,其特征在于,所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤,包括:

以倒序的顺序依次判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值;

所述判断所述占比值ratio1、ratio2、…、ration是否小于预设的占比阈值的步骤之后,包括:

若第k次判断的结果为小于预设的占比阈值,则确定所述网关的当前负载级别为n 1-k,其中k为大于等于1且小于等于n的整数。

4.根据权利要求1所述的基于网关的报文发送方法,其特征在于,所述若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别的步骤之前,包括:

获取样本数据,并将所述样本数据划分为训练数据与验证数据,其中所述样本数据包括历史请求报文的大小、接收到的多次历史请求报文之间的时间差、接收到的历史请求报文的次数、历史负载级别和处理所述历史请求报文的最佳时间点;

利用所述训练数据训练预设的神经网络模型,并采用反向更新的方式更新所述神经网络模型的各层参数,从而得到初始预测模型;

利用所述验证数据验证所述初始预测模型;

若所述初始预测模型验证通过,则将所述初始预测模型记为所述时间点预测模型。

5.根据权利要求1所述的基于网关的报文发送方法,其特征在于,所述请求报文指定了所述服务端的地址,所述调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文的步骤,包括:

根据预设的地址与报文格式的对应关系,获取与所述服务端的地址对应的最终报文格式;

根据预设的报文格式与动态脚本的对应关系,从预设的脚本库中调取与所述最终报文格式对应的指定动态脚本;

判断所述指定动态脚本的历史调用次数是否超过预定次数;

若所述指定动态脚本的历史调用次数超过预定次数,则利用所述指定动态脚本将所述请求报文划分为多个暂时参数块,其中所述暂时参数块中包括一个参数名和与所述参数名对应的值;

利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块,并将多个所述最终参数块根据所述最终报文格式规定的参数顺序组合为最终报文。

6.根据权利要求5所述的基于网关的报文发送方法,其特征在于,所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤之前,包括:

接收第三方终端发送的指定文件,所述指定文件用于加密或者加签;

将所述指定文件存入预设的数据库;

所述利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个最终参数块的步骤,包括:

利用所述指定动态脚本将多个暂时参数块分别进行参数映射处理,从而得到多个映射后参数块;

从预设的数据库中调取所述指定文件;

利用所述指定动态脚本使用所述指定文件对所述映射后参数块进行加密或者加签处理,从而得到多个最终参数块。

7.根据权利要求6所述的基于网关的报文发送方法,其特征在于,所述指定文件用于加密,并且加密用密钥隐写于所述指定文件中,所述第三方终端同时发送了包括所述指定文件在内的多个文件,所述将所述指定文件存入预设的数据库的步骤,包括:

根据预先约定的指定文件的筛选规则,从所述第三方终端发送的多个文件中筛选出所述指定文件;

根据预先约定的密钥存储位置,从所述指定文件中提取出所述密钥,并在所述指定文件中删掉除了所述密钥部分之外的其余内容;

将进行删除处理之后的指定文件存入预设的数据库。

8.一种基于网关的报文发送装置,其特征在于,所述网关用于连接内部网络与外部网络,包括:

请求报文接收单元,用于接收处于所述内部网络的客户端发送的请求报文;

负载级别获取单元,用于获取所述网关的当前负载级别,所述当前负载级别反应了网关当前的负载状态,并判断所述当前负载级别是否大于预设的级别阈值;

暂时搁置单元,用于若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;

请求报文判断单元,用于在预定时间之后,判断所述客户端是否多次发送了相同的请求报文;

预测时间点获取单元,用于若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;其中所述指定数据特征至少包括所述请求报文的大小、第一次接收的请求报文与最后一次接收的请求报文的时间差、接收到的请求报文的次数和所述当前负载级别;

最终报文获取单元,用于在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;

最终报文发送单元,用于将所述最终报文发给处于所述外部网络的服务端。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请揭示了一种基于网关的报文发送方法、装置、计算机设备和存储介质,所述方法包括:接收处于所述内部网络的客户端发送的请求报文;获取所述网关的当前负载级别;若所述当前负载级别大于预设的级别阈值,则对所述请求报文进行暂时搁置处理;在预定时间之后,若所述客户端多次发送了相同的请求报文,则获取指定数据特征,并将所述指定数据特征输入基于神经网络模型的已训练好的时间点预测模型中,从而得到输出的预测时间点;在所述预测时间点,调用预设的指定动态脚本对所述请求报文进行参数映射处理,从而得到最终报文;将所述最终报文发给处于所述外部网络的服务端。从而提高了效率并避免重要报文延误。

技术研发人员:程坤
受保护的技术使用者:深圳壹账通智能科技有限公司
技术研发日:2020.01.06
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55322.html

最新回复(0)