基于Vpp底层框架的拟态架构及裁决方法与流程

文档序号:31578053发布日期:2022-09-21 00:03阅读:56来源:国知局
基于Vpp底层框架的拟态架构及裁决方法与流程
基于vpp底层框架的拟态架构及裁决方法
技术领域
1.本发明涉及拟态防御技术领域,具体的说,涉及了一种基于vpp底层框架的拟态架构及裁决方法。


背景技术:

2.随着计算机技术的飞速发展,网络空间安全技术在国内大环境下也突飞猛进。在邬江兴院士提出的可防御未知漏洞威胁的网络空间内生安全防御体系架构下,拟态防御的核心框架为动态异构冗余架构(dynamic heterogeneous redundancy,dhr)。
3.目前,动态异构冗余架构在异构方面通常基本保持着x86、arm、powerpcn等几种硬件的冗余状态,软件方面的异构,也仅仅是通过操作系统自带的tcp/ip协议栈;因此,现有动态异构冗余架构还不具备基础系统软件的异构功能。
4.另外,在高并发和处理速度缓慢的情况下,现有标识请求数据唯一的方案在拟态系统的拟态括号中难以满足大数据环境,在一段数据处理后,可能出现唯一标识重复的情况(不同的数据请求拥有相同的数据唯一标识),给在调试模式(debug mode)和高并发大数据的场景中的裁决器裁决埋下了隐患,导致裁决器裁决结果出现不符合理论的数值,进而导致向反馈控制上报的异常执行体错误,进行不必要的执行体资源调度,浪费服务器资源和降低服务器性能。
5.为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。


技术实现要素:

6.本发明的目的是针对现有技术的不足,从而提供一种基于vpp底层框架的拟态架构及裁决方法。
7.为了实现上述目的,本发明所采用的技术方案是:本发明第一方面提供一种基于vpp底层框架的拟态架构,所述拟态架构包括客户端、拟态括号、反馈控制模块和n个异构执行体,所述拟态括号包括输入代理、裁决器和输出代理,n个所述异构执行体采用不同的底层硬件和不同的底层基础软件结构组合出不同的异构环境;所述客户端与所述拟态括号的输入代理通信连接,所述拟态括号的输入代理分别与n个异构执行体通信连接,n个异构执行体分别与所述拟态括号的裁决器通信连接,所述裁决器还分别与所述输出代理和所述反馈控制模块通信连接,所述输出代理还与客户端通信连接;所述拟态括号的输入代理,用于在监测到来自新客户端的连接信息时,读取并存储所述新客户端的ip地址和port标识符;还用于在监测到来自新客户端的业务请求信息时,生成对应业务请求信息的拟态请求id,将所述拟态请求id和所述业务请求信息封装成业务请求包,并分别传输至n个所述异构执行体;其中,所述拟态请求id包括所述新客户端的ip地址和port标识符、以及当前业务
请求信息对应的变量requests和随机数seed,所述变量requests用于对所述输入代理接收到的业务请求信息进行顺序标记,所述随机数seed用于对输入代理接收到的业务请求信息进行随机标记;n个所述异构执行体,用于分别接收来自所述拟态括号的输入代理的业务请求包,基于所述业务请求包解析出业务请求信息和拟态请求id,生成对应的业务响应包并分别传输至所述裁决器;其中,所述业务响应包包括所述业务处理结果和所述拟态请求id;所述裁决器,用于在接收到来自第i个异构执行体的第一个业务响应包时,解析出第一个业务响应包中的第一业务处理结果和拟态请求id,对所述第一业务处理结果进行摘要处理生成第一摘要数据,将所述第一摘要数据存储至预设存储结构的摘要字段,并将所述第一业务处理结果存储至预设存储结构的原始数据字段;所述裁决器,还用于在接收来自第j个异构执行体的第二个业务响应包时,解析出第二个业务响应包中的第二业务处理结果和拟态请求id,对所述第二业务处理结果进行摘要处理生成第二摘要数据,比对所述第一摘要数据和所述第二摘要数据是否一致,若一致则使计数字段的值增加1,并判断更新后的计数字段的值是否超过n/2,若超过则将所述第二业务处理结果作为裁决结果经输出代理传输至客户端;若不一致,则将所述第二摘要数据存储至预设存储结构的摘要字段的下一个节点中,并将所述第二业务处理结果存储至预设存储结构的原始数据字段的下一个节点中;重复执行上述操作,直至等待时间超过预设时间t0或者接收到的业务响应包数量为n;其中,第一个业务响应包至第n业务响应包中的拟态请求id相同。
8.本发明第二方面提供一种裁决方法,所述裁决方法包括以下步骤:在裁决器接收到来自第i个异构执行体的第一个业务响应包时,解析出第一个业务响应包中的第一业务处理结果和拟态请求id,对所述第一业务处理结果进行摘要处理生成第一摘要数据,将所述第一摘要数据存储至预设存储结构的摘要字段,并将所述第一业务处理结果存储至预设存储结构的原始数据字段;在裁决器接收到来自第j个异构执行体的第二个业务响应包时,解析出第二个业务响应包中的第二业务处理结果和拟态请求id,对所述第二业务处理结果进行摘要处理生成第二摘要数据,比对所述第一摘要数据和所述第二摘要数据是否一致,若一致则使计数字段的值增加1,并判断更新后的计数字段的值是否超过n/2,若超过则将所述第二业务处理结果作为裁决结果经输出代理传输至客户端;若不一致,则将所述第二摘要数据存储至预设存储结构的摘要字段的下一个节点中,并将所述第二业务处理结果存储至预设存储结构的原始数据字段的下一个节点中;重复执行上述操作,直至等待时间超过预设时间t0或者接收到的业务响应包数量为n;其中,第一个业务响应包至第n业务响应包中的拟态请求id相同。
9.本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说:1)本发明提出一种基于vpp底层框架的拟态架构,n个所述异构执行体采用不同的底层硬件和不同的底层基础软件结构组合出不同的异构环境,大大提高了在线执行体的异构性,提高了拟态架构的安全可靠性;2)为每个来自客户端的业务请求信息分配一个拟态请求id,该拟态请求id包括客户端的ip地址、port标识符、业务请求数对应的变量requests和随机数seed,通过这四项因
子保证拟态请求id的唯一性;避免出现不同的业务请求拥有相同的数据唯一标识的情况,为debug模式和高并发大数据的场景下拟态架构可靠运行提供支撑;3)在裁决时,先计算出业务处理结果的摘要数据,通过摘要数据比对及计数字段更新,来判断是否输出裁决结果,能够有效提高裁决效率;4)由于基于vpp的基础软件结构的执行体的高性能,所述裁决方法在提高裁决效率的同时,能够保持稳定的准确率。
附图说明
10.图1是本发明的基于vpp底层框架的拟态架构的结构示意图一;图2是本发明的基于vpp底层框架的拟态架构的结构示意图二;图3是本发明的基于vpp底层框架的拟态架构的工作流程图;图4是本发明的裁决方法的流程示意图;图5是本发明的拟态括号的输入代理的结构示意图;图6是本发明的异构执行体的基础软件结构的示意图。
具体实施方式
11.下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
12.实施例1如附图1至附图3所示,一种基于vpp底层框架的拟态架构,它包括客户端、拟态括号、反馈控制模块和n个异构执行体,所述拟态括号包括输入代理、裁决器和输出代理,n个所述异构执行体采用不同的底层硬件和不同的底层基础软件结构组合出不同的异构环境;所述客户端与所述拟态括号的输入代理通信连接,所述拟态括号的输入代理分别与n个异构执行体通信连接,n个异构执行体分别与所述拟态括号的裁决器通信连接,所述裁决器还分别与所述输出代理和所述反馈控制模块通信连接,所述输出代理还与客户端通信连接;所述拟态括号的输入代理,用于在监测到来自新客户端的连接信息时,读取并存储所述新客户端的ip地址和port标识符;还用于在监测到来自新客户端的业务请求信息时,生成对应业务请求信息的拟态请求id,将所述拟态请求id和所述业务请求信息封装成业务请求包,并分别传输至n个所述异构执行体;其中,所述拟态请求id包括所述新客户端的ip地址和port标识符、以及当前业务请求信息对应的变量requests和随机数seed,所述变量requests用于对所述输入代理接收到的业务请求信息进行顺序标记,所述随机数seed用于对输入代理接收到的业务请求信息进行随机标记;n个所述异构执行体,用于分别接收来自所述拟态括号的输入代理的业务请求包,基于所述业务请求包解析出业务请求信息和拟态请求id,生成对应的业务响应包并分别传输至所述裁决器;其中,所述业务响应包包括所述业务处理结果和所述拟态请求id;所述裁决器,用于在接收到来自第i个异构执行体的第一个业务响应包时,解析出第一个业务响应包中的第一业务处理结果和拟态请求id,对所述第一业务处理结果进行摘要处理生成第一摘要数据,将所述第一摘要数据存储至预设存储结构的摘要字段,并将所
述第一业务处理结果存储至预设存储结构的原始数据字段;所述裁决器,还用于在接收来自第j个异构执行体的第二个业务响应包时,解析出第二个业务响应包中的第二业务处理结果和拟态请求id,对所述第二业务处理结果进行摘要处理生成第二摘要数据,比对所述第一摘要数据和所述第二摘要数据是否一致,若一致则使计数字段的值增加1,并判断更新后的计数字段的值是否超过n/2,若超过则将所述第二业务处理结果作为裁决结果经输出代理传输至客户端;若不一致,则将所述第二摘要数据存储至预设存储结构的摘要字段的下一个节点中,并将所述第二业务处理结果存储至预设存储结构的原始数据字段的下一个节点中;重复执行上述操作,直至等待时间超过预设时间t0或者接收到的业务响应包数量为n;其中,第一个业务响应包至第n业务响应包中的拟态请求id相同。
13.具体的,预设存储结构为链表,同一拟态请求id对应的摘要数据存储至同一预设存储结构的摘要字段的不同节点中,同一拟态请求id对应的业务处理结果存储在同一预设存储结构的原始数据字段的不同节点中;存储摘要数据的链表、存储业务处理结果的链表与存储计数字段的链表为同一链表。
14.需要说明的是,不同异构执行体采用不同的底层硬件,例如x86、arm、powerpc等硬件。本实施例的不同异构执行体在底层硬件异构的基础上,对于硬件之上的基础软件也进行异构,不同的底层硬件异构与不同结构的底层基础软件异构排列组合形成不同的异构环境,大大提高了异构执行体的异构性,进而增强整个拟态架构的防御能力;本实施例的不同异构执行体采用不同的基础软件结构来运行可执行程序:如附图6所示,其中一个异构执行体的基础软件结构包括依次设置的nginx(http和反向代理web服务器)、vcl_ld_preload(动态链接库)、vpp(vector packet processing矢量包处理平台)、dpdk(date plane development kit数据平面开发工具包,是一个用来进行包数据处理加速的软件库),如附图1和2中的执行体1;其中一个异构执行体的基础软件结构包括依次设置的nginx(http和反向代理web服务器)和dpdk(date plane development kit数据平面开发工具包,是一个用来进行包数据处理加速的软件库),如附图1和2中的执行体2;其中一个异构执行体的基础软件结构包括依次设置的nginx(http和反向代理web服务器)、libc.so、posix、glib以及kernel,如附图1和2中的执行体3。其中,libc.so、posix、glib以及kernel为网络库。需要说明的是,vpp平台类似于操作系统内核,其网络接口与操作系统内核接口保持一致。
15.进一步的,所述裁决器,还用于在等待时间超过预设时间t0或者接收到的业务响应包数量为n、且未向输出代理返回裁决结果时,判断预设存储结构的计数字段(初始值为1)是否小于n/2,若是则将生成反馈数据包,并传输至所述反馈控制模块进行执行体调度;其中,所述反馈数据包为所述原始数据字段中存储的业务处理结果对应的执行体信息(该执行体输出的业务处理结果与裁决结果不一致),以便所述反馈控制模块根据执行体信息进行执行体调度。
16.需要说明的是,在异构执行体调度、清洗时,异构执行体的底层硬件和底层基础软件结构不改变。
17.具体的,n为大于等于3的自然数,所述预设时间t0可以为1天、12小时、6小时、3小时、1小时、30分钟或者10分钟,或者根据实际需求进行适应性调节。
18.在一种具体实施方式中,n=5,执行体1至5接收到来自同一客户端的业务请求包,业务请求包包含的拟态请求id相同;裁决器接收到执行体1至5输出的业务响应包的时间是不同的,第一业务响应包至第五业务响应包是按接收时间顺序排列的;在裁决时:(1)对所述第一业务处理结果进行摘要处理生成第一摘要数据,将第一摘要数据存储至预设存储结构的摘要字段的第一个节点,将所述第一业务处理结果存储至预设存储结构的原始数据字段的第一个节点;此时,计数字段的值为初始值1;(2)对所述第二业务处理结果进行摘要处理生成第二摘要数据,比对第一摘要数据和第二摘要数据,假设比对结果为二者一致,则更新计数字段的值,计数字段的值变为2;n/2=5/2=2.5,2<2.5,说明此时计数字段的值未超过n/2;将第二摘要数据存储至预设存储结构的摘要字段的第二个节点,将所述第二业务处理结果存储至预设存储结构的原始数据字段的第二个节点;(3)对所述第三业务处理结果进行摘要处理生成第三摘要数据,比对第三摘要数据和第一摘要数据,假设比对结果为二者不一致,则不更新计数字段的值,计数字段的值依旧为2;将第三摘要数据存储至预设存储结构的摘要字段的第三个节点,将所述第二业务处理结果存储至预设存储结构的原始数据字段的第三个节点;(4)对所述第四业务处理结果进行摘要处理生成第四摘要数据,比对第四摘要数据和第一摘要数据,假设比对结果为二者一致,则更新计数字段的值,计数字段的值变为3;3>2.5,说明此时计数字段的值已超过n/2;则将所述第四业务处理结果作为裁决结果经输出代理传输至客户端;(5)对所述第五业务处理结果进行摘要处理生成第五摘要数据,比对第五摘要数据和第一摘要数据,假设比对结果为二者一致,则验证输出裁决结果的准确性;如下表所示:可以理解,在裁决器接收到第五业务响应包时,输出代理可能已将裁决结果输出至客户端,实现先到先裁决,能够大大提高裁决效率。
19.需要说明的是,上述裁决策略在异构执行体数量较大或者业务处理结果包含数据较多时,相对于现有接收到所有业务处理结果在进行一致裁决的方式,优势更明显。
20.实施例2需要说明的是,在高并发和处理速度缓慢的情况下,同一客户端在预设时间内可能发出多个业务请求信息;因此,本实施例与实施例1的区别在于:所述裁决器,还用于在进行摘要数据比对时,根据不同业务响应包中的拟态请求
id一致性,识别同一预设时间段t1内接收到的业务响应包是否对应同一业务请求包:在某两个摘要数据对应的拟态请求id一致时,判定对应的业务响应包是对同一客户端发送的同一业务请求包的响应,可进行摘要数据比对;否则,判定对应的业务响应包是对不同业务请求包的响应,不能进行摘要数据比对。
21.在一种具体实施方式中,所述拟态括号的输入代理包括i/o模块和n个同构拟态左括号,所述i/o模块的一端与所述客户端通信连接,所述i/o模块的另一端分别与n个同构拟态左括号通信连接,如附图2和5所示;所述i/o模块,用于在接收到某个客户端的业务请求信息时,生成新的随机数seed并随所述业务请求信息分别传输至n个同构拟态左括号;n个同构拟态左括号,分别用于在接收到所述业务请求信息时,生成新的变量requests;还用于基于新的变量requests、新的随机数seed以及客户端的ip地址和port标识符,生成所述业务请求信息对应的拟态请求id;其中,所述变量requests的初始值为0,并根据客户端的业务请求数改变;来自同一客户端的业务请求信息对应的拟态请求id中的ip地址和port标识符相同,来自同一客户端的同一业务请求信息对应的拟态请求id中的随机数seed和变量requests相同。
22.可以理解,拟态架构中的拟态请求id用来标识拟态业务请求,发挥区分不同请求数据的作用,由开发人员预先配置输入代理自动生成并添加至业务请求包的一种请求标识;所述拟态请求id包括客户端ip地址、客户端port标识符、变量requests和随机数seed;在拟态括号配置文件中设置要求携带请求客户端的ip地址和port标识符的配置,再启动拟态括号;拟态括号启动以后,只要有客户端连接到拟态括号,拟态括号即获取客户端的ip地址和port标识符,在输入代理接收到新的业务请求信息时会生成新的变量requests和新的随机数seed,从而增强拟态请求id的唯一性。
23.为了避免i/o模块通信的数据量过大,本实施例中配置由i/o模块生成新的随机数seed,由同构拟态左括号生成新的变量requests及拟态请求id。
24.在另一种具体实施方式中,为了提高拟态请求id的更新效率,进而提高拟态业务处理效率,将拟态请求id中的随机数seed配置为定时更新;随机数seed为一个文本文件的初始内容,该文本内容预先配置由i/o模块通过udp协议发送(在进程启动时初次发送,之后定时发送)给同构拟态左括号,在同构拟态左括号的协议栈ip层写入指定文本文件,在接收到udp数据包、协议栈写完文件后,触发同构拟态左括号应用的自定义信号(signal)的系统调用,同构拟态左括号开始重新读取文本内容到seed,对随机数seed重新赋值,重置变量requests并计算出拟态请求id;可以理解,拟态括号的同构拟态左括号能够通过变量requests标识自身接受到的请求数,不同的业务请求信息对应不同的变量requests。
25.需要说明的是,当变量requests越界情况发生时,还存在数据标识唯一重复的可能性,为了避免这种情况,进一步确保拟态请求id的唯一性,所述拟态括号的输入代理,还用于在生成业务请求信息对应的拟态请求id时,判断是否到达数据标识重置时间或者是否接收到指定格式的业务请求信息,若是,则重置变量requests,并重新计算生成新的拟态请求id;
到达数据标识重置时间或者接收到指定格式的业务请求信息时,所述i/o模块用于在一定范围内随机出来一个新的文本内容(与原文本内容不一样)通过udp协议发送给同构拟态左括号;所述同构拟态左括号,还用于将接收到的新的文本内容,写入到同构拟态左括号的协议栈ip层的指定文本文件中,然后调用触发拟态括号的signal机制,重新读取文本文件内容来改变seed的内容,同时重置变量requests,且重新计算拟态请求id。
26.因此,本实施例通过i/o模块和n个同构拟态左括号以及上述两种具体实施方式中的拟态请求id更新方法,可以保证各种场景下请求数据标识的唯一性。
27.具体的,所述同构拟态左括号采用同构环境,底层基础软件结构为附图5所示的架构(nginx+dpdk),或者nginx+vcl_ld_preload+vpp+dpdk。在不影响拟态括号功能的情况下,用户可以根据自己实际需要修改vcl数据的合理性以达到最好性能的要求,括号需要适配vpp修改配置,比如为vpp平台能运行括号,需要括号关闭accesslog的开关,再比如括号的cpu亲和性也许要调整,来保证括号的高性能。
28.具体的,所述数据标识重置时间可以为1个月、20天、15天、10天、5天或者24小时,或者根据实际需求进行适应性调节;指定格式指业务请求信息的格式,比如业务请求信息的前四个字节是消息号,后四个字节是消息数据;所述预设时间t1可以为1天、12小时、6小时、3小时、1小时、30分钟或者10分钟,或者根据实际需求进行适应性调节。
29.实施例3可以理解,实际应用中,还会存在n个客户端对应同一个拟态括号这样的应用场景,由于高并发等因素,输出代理在同一预设时间段t2内会接收到的裁决结果可能大于1,这些裁决结果可能需要返回至同一客户端或者不同客户端,若一一进行返回,可能会增加输出代理与客户端之间的网络负担,影响业务处理效率;因此,本实施例与上述实施例的区别在于:所述输出代理,还用于在同一预设时间段t2内接收到多个裁决结果时,根据不同裁决结果中的拟态请求id,识别各个裁决结果的接收方是否属于同一客户端,若是,则将属于同一客户端的裁决结果封装成一个响应组合数据包,并将所述响应组合数据包传输至对应客户端。
30.可以理解,同一客户端发送的同一业务请求信息对应的业务请求包包含的拟态请求id相同,同一客户端发送的不同业务请求信息对应的业务请求包包含的拟态请求id不相同,不同客户端发送的不同业务请求信息对应的业务请求包包含的拟态请求id不相同。
31.在一种具体实施方式中,n=3,客户端数量为2,执行体1至3接收到来自不同客户端的不同业务请求包,裁决器接收到执行体1至3输出的业务响应包时间是不同的,各个业务响应包按时间顺序排列;如下表所示:
上表中,业务响应包br
ij_k
表示发送方为第i个在线执行体、对应于第j个客户端发送的业务请求信息的业务响应包,且该业务响应包是裁决器接收到的第k(表示接收时间顺序)个业务响应包;摘要数据sd
ij_k
表示发送方为第i个在线执行体、对应于第j个客户端发送的业务请求信息的摘要处理结果,且该摘要数据是裁决器接收到的第k个业务响应包中的业务处理结果的摘要处理结果;不同客户端、不同业务请求信息对应的摘要数据可以存至同一链表中;计数字段的值cv
p
表示第p组业务响应包对应的计数值;裁决结果vd
jq
表示第j个客户端发送的第q个业务请求信息的裁决结果;业务处理结果bpr
ij_k
表示发送方为第i个执行体、对应于第j个客户端发送的业务请求信息的业务处理结果,且该业务处理结果是裁决器接收到的第k(表示接收时间顺序)个业务响应包中的业务处理结果;例如,裁决器依次接收到业务响应包br
11_1
、业务响应包br
31_2
和业务响应包br
21_3
,检测到这三个业务响应包包含的拟态请求id相同,则说明这三个业务响应包为(同一客户端)第1个客户端发送的同一业务请求信息对应的业务请求包,将这三个业务响应包归为一组,分配计数值cv1;基于业务响应包br
11_1
中的业务处理结果进行摘要处理生成摘要数据sd
11_1
,对摘要数据sd
11_1
和业务处理结果bpr
11_1
直接存储,此时计数值cv1为1(初始值);基于业务响应包br
31_2
中的业务处理结果进行摘要处理生成摘要数据sd
31_2
,(假设)摘要数据sd
31_2
与摘要数据sd
11_1
一致,对计数值cv1加1变为2,更新后的计数值cv1>1.5,将业务响应包br
31_2
中的业务处理结果作为裁决结果vd
11
;裁决器依次接收到业务响应包br
11_4
、业务响应包br
21_5
、业务响应包br
22_6
、业务响
应包br
12_7
、业务响应包br
31_8
、业务响应包br
32_9
:检测到业务响应包br
11_4
、业务响应包br
21_5
、业务响应包br
31_8
这三个业务响应包包含的拟态请求id相同,则说明这三个业务响应包为第1个客户端发送的同一业务请求信息对应的业务请求包,将这三个业务响应包归为一组,分配计数值cv2;基于业务响应包br
11_4
中的业务处理结果进行摘要处理生成摘要数据sd
11_4
,对摘要数据sd
11_4
和业务处理结果bpr
11_4
直接存储,此时计数值cv2为1(初始值);基于业务响应包br
21_5
中的业务处理结果进行摘要处理生成摘要数据sd
21_5
,对比摘要数据sd
21_5
和摘要数据sd
11_4
,(假设)摘要数据sd
21_5
和摘要数据sd
11_4
不一致,将摘要数据sd
21_5
和业务处理结果bpr
21_5
分别存储,计数值cv2不变,仍为1,此时不能输出裁决结果;直到接收到业务响应包br
31_8
,基于业务响应包br
31_8
中的业务处理结果进行摘要处理生成摘要数据sd
31_8
,对比摘要数据sd
31_8
和摘要数据sd
11_4
,(假设)摘要数据sd
31_8
和摘要数据sd
11_4
不一致,再对比摘要数据sd
31_8
和摘要数据sd
21_5
,(假设)摘要数据sd
31_8
和摘要数据sd
21_5
一致,对计数值cv2加1变为2,更新后的计数值cv2>1.5,将业务响应包br
31_8
中的业务处理结果作为裁决结果vd
12
;检测到业务响应包br
22_6
、业务响应包br
12_7
、业务响应包br
32_9
这三个业务响应包包含的拟态请求id相同,则说明这三个业务响应包为第2个客户端发送的同一业务请求信息对应的业务请求包,将这三个业务响应包归为一组,分配计数值cv3;基于业务响应包br
22_6
中的业务处理结果进行摘要处理生成摘要数据sd
22_6
,对摘要数据sd
22_6
和业务处理结果bpr
22_6
直接存储,此时计数值cv3为1(初始值);基于业务响应包br
12_7
中的业务处理结果进行摘要处理生成摘要数据sd
12_7
,对比摘要数据sd
22_6
和摘要数据sd
12_7
,(假设)二者不一致,对摘要数据sd
12_7
和业务处理结果bpr
12_7
分别存储,计数值cv3不变,仍为1,此时不能输出裁决结果;基于业务响应包br
32_9
中的业务处理结果进行摘要处理生成摘要数据sd
32_9
,对比摘要数据sd
32_9
和摘要数据sd
22_6
,(假设)摘要数据sd
32_9
和摘要数据sd
22_6
不一致,再对比摘要数据sd
32_9
和摘要数据sd
12_7
,(假设)摘要数据sd
32_9
和摘要数据sd
12_7
不一致,则对摘要数据sd
32_9
和业务处理结果bpr
32_9
分别存储,计数值cv3不变,仍为1,此时不能输出裁决结果。需要说明的是,此时,裁决器已接收到所有执行体基于客户端2发送的同一业务请求包生成的业务响应包(拟态请求id相同的业务响应包数量为3),且未向输出代理返回裁决结果,计数值cv3=1<1.5,裁决器则生成反馈数据包,并传输至反馈控制模块进行执行体调度;所述输出代理,在同一预设时间段t2内接收到裁决结果vd
11
和裁决结果vd
12
,提取裁决结果vd
11
和裁决结果vd
12
中的拟态请求id,这两个拟态请求id不同,但均包含客户端1的ip地址和port标识符,裁决结果的接收方属于同一客户端;因此,所述输出代理将裁决结果vd
11
和裁决结果vd
12
封装成一个响应组合数据包传输至对应客户端。
32.需要说明的是,将拟态请求资源一致的业务响应包归为一组作为响应组合数据包,并根据拟态请求id中的客户端标识(ip地址和port标识符),将所述响应组合数据包返回至对应的客户端,能够同时返回多个裁决结果,简化业务处理流程,有效提高拟态业务处理效率。
33.具体的,所述预设时间t2可以为1天、12小时、6小时、3小时、1小时、30分钟或者10分钟,或者根据实际需求进行适应性调节。
34.为了进一步提高拟态业务处理效率,在其他实施例中,也可以配置:所述裁决器,
用于在输出某个拟态请求id对应的裁决结果、且接收到的包含该拟态请求id的业务响应包的数量小于在线执行体数量n时,通过所述反馈控制模块对未输出该拟态请求id的业务响应包的执行体进行调整,使得该执行体在非空闲时间段内(存在排队等待处理的业务请求包)暂停生成该拟态请求id对应的业务响应包的程序,对相关数据进行缓存,以提高非空闲时间段内该执行体的cpu占用率;在空闲时间段(不存在排队等待处理的业务请求包)内,使得该执行体继续执行生成该拟态请求id对应的业务响应包的程序,向裁决器输出业务响应包,以对已输出的裁决结果进行验证。
35.实施例4本实施例给出了一种裁决方法的具体实施方式,所述裁决方法包括以下步骤:在裁决器接收到来自第i个异构执行体的第一个业务响应包时,解析出第一个业务响应包中的第一业务处理结果和拟态请求id,对所述第一业务处理结果进行摘要处理生成第一摘要数据,将所述第一摘要数据存储至预设存储结构的摘要字段,并将所述第一业务处理结果存储至预设存储结构的原始数据字段;在裁决器接收到来自第j个异构执行体的第二个业务响应包时,解析出第二个业务响应包中的第二业务处理结果和拟态请求id,对所述第二业务处理结果进行摘要处理生成第二摘要数据,比对所述第一摘要数据和所述第二摘要数据是否一致,若一致则使计数字段的值增加1,并判断更新后的计数字段的值是否超过n/2,若超过则将所述第二业务处理结果作为裁决结果经输出代理传输至客户端;若不一致,则将所述第二摘要数据存储至预设存储结构的摘要字段的下一个节点中,并将所述第二业务处理结果存储至预设存储结构的原始数据字段的下一个节点中;重复执行上述操作,直至等待时间超过预设时间t0或者接收到的业务响应包数量为n;其中,第一个业务响应包至第n业务响应包中的拟态请求id相同,n为在线异构执行体数量。
36.需要说明的是,上述步骤中的第一个业务响应包、第一业务处理结果、第一摘要数据,并不一定是附图1和3中执行体1输出的业务响应包,而是裁决器接收到对于第一个(或者第一份)业务响应包;类似地,第一个业务响应包、第一业务处理结果和第一摘要数据,

,第n个业务响应包、第n业务处理结果和第n摘要数据,也表示裁决器接收到的业务响应包时间顺序。
37.进一步的,在等待时间超过预设时间t0或者接收到的业务响应包数量为n、且未向输出代理返回裁决结果时,裁决器判断预设存储结构的计数字段是否小于n/2,若是则将生成反馈数据包,并传输至反馈控制模块进行执行体调度。
38.进一步的,在进行摘要数据比对时,所述裁决器根据不同业务响应包中的拟态请求id一致性,识别同一预设时间段t1内接收到的业务响应包是否对应同一业务请求包;在某两个摘要数据对应的拟态请求id一致时,进行摘要数据比对;否则,不进行摘要数据比对。
39.具体的,所述预设时间t1可以为1天、12小时、6小时、3小时、1小时、30分钟或者10分钟,或者根据实际需求进行适应性调节。
40.进一步的,在等待时间超过预设时间t0或者接收到的业务响应包数量为n、且未向输出代理返回裁决结果时,所述裁决器还判断预设存储结构的计数字段是否小于n/2,若是
则将生成反馈数据包,并传输至所述反馈控制模块进行执行体调度;其中,所述反馈数据包为所述原始数据字段中存储的业务处理结果对应的执行体信息。
41.具体的,所述预设时间t0可以为1天、12小时、6小时、3小时、1小时、30分钟或者10分钟,或者根据实际需求进行适应性调节。
42.在一种具体实施方式中,如附图4所示,以客户端数量为1,执行体数量n=3为例,对异构执行体生成的业务响应包传输至裁决器后,裁决器执行的裁决方法进行说明:(1)第一份业务响应包到来后,裁决器首先利用摘要算法(例如,sha、md5或者crc32),对第一份业务响应包中的第一业务处理结果的进行摘要计算获得第一摘要数据,将第一摘要数据保存在数据结构中的摘要字段中,并保存第一份业务响应包中第一业务处理结果到数据结构的数据字段中;(2)第二份业务响应包到来后,裁决器首先利用摘要算法(例如,sha、md5或者crc32),计算第二份业务响应包中第二业务处理结果的数据摘要获得第二摘要数据,然后将第二摘要数据与第一份数据结构中保存的第一摘要数据进行比对;若第二摘要数据与第一摘要数据一致的话,则数据结构中的计数字段(初始值为1)增加1,并判断更新后的计数值是否超过可配置执行体的一半(3/2=1.5),若超过,则将节点中的数据(第二份业务响应包的业务处理结果)提前发送给客户端(没有超过的话,不输出裁决结果);第二摘要数据与第一摘要数据不一致的话,则数据结构中的计数字段不变,将第二摘要数据放入链表的摘要字段的下一个节点中,将第二份业务响应包的第二业务处理结果放入链表的数据字段的下一个节点中;(3)第三份业务响应包到来以后,重复(2)步骤,直到时间超时或者所有可配置的执行体数据接收完毕为止。
43.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1