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

一种仿真代理调用方法、装置、计算机设备和存储介质与流程

2022-02-24 16:57:45 来源:中国专利 TAG:

一种仿真代理调用方法、装置、计算机设备和存储介质
【技术领域】
1.本发明涉及通信技术领域,尤其涉及一种仿真代理调用方法、装置、计算机设备和存储介质。


背景技术:

2.如今,协议仿真是一种在故障感知、自动化测试和业务智能受理领域广泛使用的技术,其主要功能为模拟系统层间或云化节点间的调用。现有的协议仿真主要面向上层,通常是总入口或负载地址,在复杂的系统栈及云化节点上无法实现深度监测;现有的协议仿真需要多个系统组件配合完成,真实的监测目标易受次要因素干扰,稳定性较差。


技术实现要素:

3.有鉴于此,本发明实施例提供了一种仿真代理调用方法、装置、计算机设备和存储介质,可以实现深度监测,并提高监测目标的稳定性。
4.一方面,本发明实施例提供了一种仿真代理调用方法,所述方法包括:
5.获取用户请求,用户请求包括仿真报文;
6.对仿真报文进行校验;
7.若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;
8.调用第二接口服务,根据仿真报文,生成调用结果。
9.可选地,在获取用户请求之前,还包括:
10.获取工作进程,工作进程包括多个工作线程;
11.按照设定时间间隔对每个工作线程进行多次快照,生成多个线程信息;
12.根据多个线程信息,生成参数样例;
13.将参数样例写入设置的协议模板,生成仿真报文。
14.可选地,根据多个线程信息,生成参数样例,包括:
15.根据多个线程信息,生成第一接口服务,第一接口服务包括第一关键点和第二关键点;
16.从第一关键点中提取第一特征参数;
17.从第二关键点中提取第二特征参数;
18.通过字节码操控框架对第一特征参数和第二特征参数进行修补,生成参数样例。
19.可选地,第一服务接口包括第一交易网关地址,每个工作线程包括线程本地变量,线程本地变量包括第二交易网关地址;
20.对生成的第一接口服务进行初始化,生成第二接口服务,包括:
21.判断第一交易网关地址与第二交易网关地址是否相同;
22.若判断出第一交易网关地址与第二交易网关地址不同,销毁第一交易网关地址;
23.将第二交易网关地址确定为第一交易网关地址;
24.生成第二接口服务,第二接口服务包括第一交易网关地址。
25.可选地,在判断第一交易网关地址与第二交易网关地址是否相同之前,还包括:
26.将第一交易网关地址存储至线程本地变量。
27.可选地,在调用第二接口服务,根据仿真报文,生成调用结果之前,还包括:
28.对仿真报文进行反序列化,生成第一可编辑对象;
29.对第一可编辑对象进行修改,生成第二可编辑对象;
30.对第二可编辑对象进行序列化,生成更新的仿真报文。
31.可选地,在调用第二接口服务,根据仿真报文,生成调用结果之后,还包括:
32.销毁第二接口服务。
33.另一方面,本发明实施例提供了一种仿真代理调用装置,包括:
34.第一获取单元,用于获取用户请求,用户请求包括仿真报文;
35.第一生成单元,用于对仿真报文进行校验;
36.第二生成单元,用于若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;
37.第三生成单元,用于调用第二接口服务,根据仿真报文,生成调用结果。
38.另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述仿真代理调用方法。
39.另一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述仿真代理调用方法。
40.本发明实施例的方案中,获取用户请求,用户请求包括仿真报文;对仿真报文进行校验;若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;调用第二接口服务,根据仿真报文,生成调用结果,可以实现深度监测,并提高监测目标的稳定性。
【附图说明】
41.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
42.图1为本发明实施例提供的一种仿真代理调用系统的结构示意图;
43.图2为本发明实施例提供的一种仿真代理调用方法的流程图;
44.图3为本发明实施例提供的又一种仿真代理调用方法的流程图;
45.图4为本发明实施例提供的一种构建仿真代理的示意图;
46.图5为本发明实施例提供的一种仿真代理调用装置的结构示意图;
47.图6为本发明实施例提供的一种计算机设备的示意图。
【具体实施方式】
48.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
49.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其
它实施例,都属于本发明保护的范围。
50.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
51.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
52.应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述设定阈值,但这些设定阈值不应限于这些术语。这些术语仅用来将设定阈值彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一设定阈值也可以被称为第二设定阈值,类似地,第二设定阈值也可以被称为第一设定阈值。
53.图1为本发明实施例提供的一种仿真代理调用系统的结构示意图,如图1所示,该系统包括:管理平台1、仿真代理2和交易中间件探测靶点3。其中,管理平台1与仿真代理2连接,仿真代理2与交易中间件探测靶点3连接。
54.管理平台1负责协议仿真任务的管理与调度,将参数样例发送至仿真代理2,并接收仿真代理2发送的调度结果。仿真代理2为一轻量级服务框架,负责与交易中间件探测靶点3交互,完成将参数样例向协议模板中填写生成仿真报文的工作,并实现仿真报文的发送和响应报文接收;交易中间件探测靶点3为中间件外的协议与中间件内的协议的适配层,为交易中间件监听器的代理服务。
55.本发明实施例在仿真代理2与交易中间件监听器之间增加独立于生产环境的交易中间件探测靶点3,可以对仿真报文进行反序列化,进行入参的替换,增强仿真报文的可读性,便于协议的业务统计。
56.本发明实施例中,图1提供的仿真代理调用系统还用于执行图2或图3所示的仿真代理调用方法,在此不再赘述。
57.本发明实施例的方案中,获取用户请求,用户请求包括仿真报文;对仿真报文进行校验;若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;调用第二接口服务,根据仿真报文,生成调用结果,可以实现深度监测,并提高监测目标的稳定性。
58.图2为本发明实施例提供的一种仿真代理调用方法的流程图,如图2所示,该方法包括:
59.步骤101、获取用户请求,用户请求包括仿真报文。
60.步骤102、对仿真报文进行校验。
61.步骤103、若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务。
62.步骤104、调用第二接口服务,根据仿真报文,生成调用结果。
63.本发明实施例提供的技术方案中,获取用户请求,用户请求包括仿真报文;对仿真报文进行校验;若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;调用第二接口服务,根据仿真报文,生成调用结果,可以实现深度监测,并提高监测目标的稳定性。
64.图3为本发明实施例提供的又一种仿真代理调用方法的流程图,如图3所示,该方法包括:
65.步骤201、获取工作进程,工作进程包括多个工作线程。
66.本发明实施例中,各步骤由服务器执行。
67.本发明实施例中,工作进程包括全球广域网(world wide web,简称:web)工程中间件的工作进程。web工程中间件包括但不限于tomcat、weblogic、jboss、jetty、webshere或glasshfish。
68.步骤202、按照设定时间间隔对每个工作线程进行多次快照,生成多个线程信息。
69.本发明实施例中,设定时间间隔可根据实际需求进行设置。
70.本发明实施例中,线程信息包括站点地址,多个线程信息包括多个站点地址。
71.步骤203、根据多个线程信息,生成参数样例。
72.本发明实施例中,步骤203具体包括:
73.步骤2031、根据多个线程信息,生成第一接口服务,第一接口服务包括第一关键点和第二关键点。
74.本发明实施例中,对多个线程信息中的多个站点地址进行比较,比较出数量最多的站点地址;将数量最多的站点地址确定为事务层访问客户端组件的函数入口,即:第一接口服务。
75.本发明实施例中,第一关键点为接口服务初始化节点,第二关键点为接口服务调用节点。
76.进一步地,第一接口服务还包括核心类。将核心类进行反编译,生成反编译程序;对反编译程序中的错误进行修补,生成修补后的程序代码,例如:泛型错误、嵌套类错误;将修补后的程序代码拷贝至设置的仿真代理工程,并对仿真代理工程进行编译,生成仿真代理。其中,若在编译过程中缺少依赖包,从生产环境中提取该依赖包,继续编译。生产环境中包括多个依赖包。
77.本发明实施例中,编译仿真代理工程时需要生成两个应用包,第一个用于将用户请求映射至具体的函数入口;第二个用于支撑独立进程。程序代码仅维护一套。当仿真代理接收到用户请求时,会立即启动独立仿真子进程。为避免各线程之间产生资源争用和配置冲突,考虑为每一个仿真探测启动一个独立进程。
78.进一步地,获取配置文件,配置文件包括但不限于第一交易网关地址、中间件访问口令和区域代码中之一或其任意组合;将配置文件存储至第一接口服务。
79.步骤2032、从第一关键点中提取第一特征参数。
80.步骤2033、从第二关键点中提取第二特征参数。
81.步骤2034、通过字节码操控框架(asm)对第一特征参数和第二特征参数进行修补,生成参数样例。
82.本发明实施例中,将第一特征参数和第二特征参数输入asm,输出参数样例。
83.进一步地,将参数样例存储至生产环境。
84.本发明实施例中,通过asm对第一接口服务进行修补生成参数样例,可以在无法反编译或无法获取源代码的情况下实现生产环境的安全修补。
85.本发明实施例中,交易网关客户端模块移植完成,需要对仿真代理进行进一步修补,实现去配置文件、连接重置、连接回收、独立进程调度和独立线程调度功能。
86.图4为本发明实施例提供的一种构建仿真代理的示意图,如图4所示,web工程包括
核心应用和客户端组件,构建仿真代理的原理为将生产环境前端系统中调用交易网关的客户端组件剥离出来,并移植至仿真代理工程中,完成仿真代理的构建。本发明实施例构建的仿真代理可以标准化,可以用于仿真各类系统之间的协议仿真;除了生成参数样例之外,其它步骤对生产环境不会造成侵害,安全性较高;用于移植的客户端组件位于底层,为应用核心,版本迭代较少,移植完成后调用逻辑不会经常发生变化,稳定性较高。
87.步骤204、获取用户请求,用户请求包括仿真报文。
88.本发明实施例中,将参数样例填写入预先设置的协议模板中,生成仿真报文。其中,协议模板可以根据实际需求预先设置。
89.步骤205、对仿真报文进行校验,若校验通过,执行步骤206;若校验不通过,流程结束。
90.本发明实施例中,仿真报文包括入参和入参对应的入参格式,判断入参格式和标准格式是否一致,若是,表明校验通过,执行步骤206;若否,表明校验不通过,流程结束。
91.本发明实施例中,标准格式包括但不限于整形、布尔型或字符型。
92.进一步地,根据交易中间件类型创建统一调用工厂,统一调用工厂为不同交易中间件类型的个性化实现。统一调用工厂包括第一交易网关地址,将第一交易网关地址存储至线程本地变量。
93.进一步地,若校验通过,将初始化标志设置为true。
94.步骤206、判断第一交易网关地址与第二交易网关地址是否相同,若是,执行步骤209;若否,执行步骤207。
95.本发明实施例中,每个工作线程包括线程本地变量,线程本地变量包括第二交易网关地址。
96.本发明实施例中,若判断出第一交易网关地址与第二交易网关地址相同,表明当前节点的交易网关地址并未发生切换,继续执行步骤209;若判断出第一交易网关地址与第二交易网关地址不同,表明当前节点的交易网关地址发生变化,继续执行步骤207。
97.本发明实施例中,使用线程本地变量透传交易网关地址,以实现去配置文件改造。
98.步骤207、销毁第一交易网关地址。
99.本发明实施例中,销毁第一交易网关地址表明第一交易网关地址已失效。
100.步骤208、将第二交易网关地址确定为第一交易网关地址。
101.本发明实施例中,将当前节点的交易网关地址作为更新后的第一交易网关地址。
102.本发明实施例中,仿真代理中的交易网关地址会灵活变化,以适应云化协议仿真的需要。所有配置是在客户端中首次加载,因此需要覆盖掉客户端中读取配置文件的逻辑,同时需要将函数入口的配置透传到客户端,使用线程本地变量实现透传。
103.步骤209、生成第二接口服务,第二接口服务包括第一交易网关地址。
104.本发明实施例中,根据更新后的第一交易网关地址重新生成第二接口服务。
105.步骤210、对仿真报文进行反序列化,生成第一可编辑对象。
106.本发明实施例中,反序列化就是指把字节序列转换为可编辑对象的过程,可以根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。
107.步骤211、对第一可编辑对象进行修改,生成第二可编辑对象。
108.本发明实施例中,可以根据实际需求对第一可编辑对象进行修改,例如:补充参数
或修改参数。
109.步骤212、对第二可编辑对象进行序列化,生成更新的仿真报文。
110.本发明实施例中,序列化就是指把可编辑对象转换为字节序列的过程,可以在传递和保存可编辑对象时,保证可编辑对象的完整性和可传递性。将可编辑对象转换为有序字节流,以便在网络上进行传输或者保存至本地文件。
111.步骤213、调用第二接口服务,根据仿真报文,生成调用结果。
112.本发明实施例中,调用结果包括输入流、错误流和输出流。输出流的数据的数据类型为整型,若输出流的数据为0,表示调用成功,读取输入流中的入参,此时错误流显示空值;若输出流的数据为1,表示调用失败,读取错误流的数据。
113.步骤214、销毁第二接口服务。
114.本发明实施例中,步骤214具体包括:
115.步骤2141、将初始化标志设置为false。
116.步骤2142、销毁统一调用工厂。
117.本发明实施例中,使用线程独立调度可以解决部分进程开销过高的问题,且增加了销毁接口服务的方法,可以避免进程积压。销毁接口服务不会销毁客户端对象,仅可以销毁一系列衍生对象,包括清除所有到交易网关的连接,避免连接泄漏,销毁完成后标志着一次完整的协议仿真的结束。
118.本发明实施例中,仿真代理调用过程中不局限于系统web层的协议仿真,可以深入至交易中间件层并覆盖所有云内节点,实现了大规模无状态协议模拟,进而具备对于故障的先知先觉和快速排查的能力。
119.本发明实施例提供的仿真代理调用方法的技术方案中,获取用户请求,用户请求包括仿真报文;对仿真报文进行校验;若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务;调用第二接口服务,根据仿真报文,生成调用结果,可以实现深度监测,并提高监测目标的稳定性。
120.图5为本发明实施例提供的一种仿真代理调用装置的结构示意图,该装置用于执行上述仿真代理调用方法,如图5所示,该装置包括:第一获取单元11、第一生成单元12、第二生成单元13和第三生成单元14。
121.第一获取单元11用于获取用户请求,用户请求包括仿真报文。
122.第一生成单元12用于对仿真报文进行校验。
123.第二生成单元13用于若校验通过,对生成的第一接口服务进行初始化,生成第二接口服务。
124.第三生成单元14用于调用第二接口服务,根据仿真报文,生成调用结果。
125.本发明实施例中,该装置还包括:第二获取单元15、第四生成单元16、第五生成单元17和第六生成单元18。
126.第二获取单元15用于获取工作进程,工作进程包括多个工作线程。
127.第四生成单元16用于按照设定时间间隔对每个工作线程进行多次快照,生成多个线程信息。
128.第五生成单元17用于根据多个线程信息,生成参数样例。
129.第六生成单元18用于将参数样例写入设置的协议模板,生成仿真报文。
programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
146.存储器32可以是计算机设备30的内部存储单元,例如计算机设备30的硬盘或内存。存储器32也可以是计算机设备30的外部存储设备,例如计算机设备30上配备的插接式硬盘,智能存储(smart media,sm)卡,安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器32还可以既包括计算机设备30的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
147.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
148.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
149.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

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

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

相关文献