一种可扩展的网络请求消息和转发系统的制作方法



1.本发明涉及网络请求消息和转发技术领域,具体涉及一种可扩展的网络请求消息和转发系统。


背景技术:



2.随着云计算概念的兴起和互联网在线应用软件的普及,当用户请求在线服务时,命令请求会通过网络发送api调用到服务器。服务器端接收网络请求数据后,将命令解析并转发给相应的模块进行处理。这些云计算服务的api规模可能非常庞大,而且随着服务端的发展也会不断扩展。其现有技术中接收到网络发送请求后有两种方式去实现查对应的入口函数地址,一种方式是按照注册的服务模块进行遍历,直到到对应api的服务入口进行调用;另一种是在网络请求中明确指定服务模块,然而第一种方式效率不够快,且当服务端有多个模块都满足匹配的api服务时,需要对服务模块内的所有模块消息映射表进行遍历,最后将遍历结果提供给用户进行选择,这样的方式在效率上不是很高;第二种方式需要用户了解服务端的模块结构,这样增加了访问用户调用api服务的复杂度;
3.为了解决上述问题,本发明提出了一种解决方案。


技术实现要素:



4.本发明的目的在于提供一种可扩展的网络请求消息和转发系统,目的是为了解决现有技术中接收到网络发送请求后有两种方式去实现查对应的入口函数地址,一种方式是按照注册的服务模块进行遍历,直到到对应api的服务入口进行调用;另一种是在网络请求中明确指定服务模块,然而第一种方式效率不够快,且当服务端有多个模块都满足匹配的api服务时,需要对服务模块内的所有模块消息映射表进行遍历,最后将遍历结果提供给用户进行选择,这样的方式在效率上不是很高;第二种方式需要用户了解服务端的模块结构,这样增加了访问用户调用api服务的复杂度等问题。
5.本发明的目的可以通过以下技术方案实现:
6.一种可扩展的网络请求消息和转发系统,包括:
7.客户端模块,获取并解析访问用户的网络请求数据,所述访问用户的网络请求数据中包括访问用户的访问ip和访问用户的api调用信息;所述访问用户的api调用信息中包含有该访问用户所要调用的api关键字数据;
8.服务存储模块,包括服务存储单元a1、服务存储单元a2、...、服务存储单元aa,a≥1;所述服务存储单元a1中存储有扩展服务块b1的模块消息映射表,所述服务存储模块a2中存储有扩展服务块b2的模块消息映射表,依次类推所述服务存储单元aa中存储有扩展服务块ba的模块消息映射表;依据各个扩展服务块的模块消息映射表中入口函数所封装的功能将扩展服务块划分为扩展服务块b1、b2、...、ba;
9.匹配模块,依据当前访问用户的api调用信息快速匹配到对应的入口函数地址;
10.调用模块,依据入口函数地址调用相应的服务功能;
11.数据分析模块,对访问用户的网络请求数据和服务存储模块中存储的所有模块消息映射表进行分析生成高频模块列表m1,所述高频模块列表m1中存储有按照一定判定规则判定的扩展服务块。
12.进一步的,所述模块消息映射表中设有映射关键字、映射值和关联服务块字段,所述映射关键字字段中存储有api关键字,所述映射值中存储有该api关键字对应的入口函数地址;所述关联服务块字段中存储有所有关联的扩展服务块,所述所有关联的扩展服务块指代的是所有包含该api关键字的扩展服务块;所述模块消息映射表中的关联扩展服务块字段默认值设为“null”。
13.进一步的,所述服务存储模块中还包括自遍历单元,所述自遍历单元用于依据高频模块列表m1对服务存储模块内存储的所有模块消息映射表中数据进行修改,具体的修改规则如下:
14.s21:所述自遍历单元获取高频模块列表m1中存储的所有扩展服务块并将其标记为n1、n2、...、nn,1≤n《z;
15.s22:以扩展服务块n1为例,获取n1对应的模块消息映射表内存储的所有api关键字并将其标记为q1、q2、...、qq,q≥1;
16.s221:以api关键字q1为例,将api关键字q1作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余所有模块消息映射表中的数据:
17.若存在有满足查询条件的数据,将该api关键字q1对应的关联扩展服务块字段的存储的“null”修改为查询到的该数据对应的扩展服务块;
18.若不存在,则不做任何处理;
19.s222:按照s221,依次将api关键字q1、q2、...、qq作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余模块消息映射表中的数据并对应修改api关键字对应的关联服务块字段中的内容;
20.s23:按照s22,依次修改服务存储单元n1、n2、...、nn中存储的模块消息映射表中每个api关键字对应的关联服务块字段中存储的内容。
21.进一步的,所述匹配单元快速匹配该访问用户api调用信息对应的入口函数地址的具体规则如下:
22.s11:所述匹配单元获取高频模块列表m1中存储的所有扩展服务块对应的服务存储单元并将其重新标记为r1、r2、...、rr,1≤r≤z,所述匹配单元获取当前存储的高频模块列表m1;
23.s12:首先选定服务存储单元r1对应的模块消息映射表作为优先查询表,利用select语句将访问用户所要调用的api关键字作为查询条件在第一优先查询表中查询数据并依据查询到的数据生成查询结果数据;
24.使用innull()函数,将“nothing”和访问用户所要调用的api关键字作为定义该函数的第一形参和第二形参,当优先查询表中不存在满足查询条件的数据后查询结果数据中包含“nothing”和访问用户所要调用的api关键字两个返回值;
25.s13:所述匹配单元对当前的查询结果数据进行判定:
26.s131:若查询结果数据中不存在返回值“nothing”,所述匹配单元获取该优先查询表中访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;
27.若扩展服务块数据为“null”,所述匹配单元将访问用户所要调用的api关键字对应的入口函数地址传输到调用模块;
28.反之,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元,所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;
29.所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址并将其传输到调用模块;
30.s132:若查询结果数据中存在返回值“nothing”,则依次将服务存储单元r3、...、rr对应的模块消息映射表作为优先查询表;
31.按照s12到s131查询数据直至查询结果数据中不存在返回值“nothing”,所述匹配单元获取访问用户所要调用的api关键字对应的入口函数地址并将其传输到调用模块;
32.若rr对应的模块消息映射表作为优先查询表获取到的查询结果数据中依然存在返回值“nothing”,所述匹配单元获取所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表;
33.所述匹配单元遍历所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表,获取到所有包含该访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;
34.若该扩展服务块中存储有多个扩展服务块,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元,所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;
35.所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址。
36.进一步的,所述数据分析模块分析生成高频模块列表m1的具体分析步骤如下:
37.s31:首先选定服务存储单元a1中存储的模块消息映射表为待遍历表,获取待遍历表中存储的所有api关键字并将其标记为c1、c2、...、cc,c≥1;
38.s32:进行访问段划分,将一个访问周期划分为d个等时长的访问段,将一个访问周期的d个访问段标记为d1、d2、...、dd,d≥1;
39.s33:以api关键字c1为例,获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff,f≥1;
40.所述c1的被调次数指的是待遍历表中与访问用户网络请求中携带的api调用信息一致的入口函数执行次数;所述e个访问周期是指以当前访问周期为起点,向过去回溯e个访问周期,一个访问周期为1天,一个访问段为60分钟;
41.s34:利用公式计算获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff的离散值g,将g与g1进行大小比较,若g≥g1,则按照|fg-f|从大到小的顺序依次删除对应的fg值,并计算剩余fg值的离散值g,并再次将g与g1进行大小比较,直至g《g1,所述g1为预设阈值,所述f为参与剩余离散值g计算的被调次数均值;
42.将参与剩余离散值g计算的被调次数均值f重新标定为被调值并将其标记为h1;
43.s35:按照s32到s34,获取e个访问周期d个访问段内c1的被调值h1、h2、...、hd并计算获取参与离散值计算的被调值均值i1;
44.s36:按照s31到s35,计算获取c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic;
45.s37:按照一定的筛选规则对c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic进行筛选生成待遍历表的被调高频列表j;
46.s38:按照一定的步骤获取待遍历表的被调权重值l1;
47.s39:按照s31到s38,依次将服务存储模块中存储的所有模块消息映射表选定为待遍历表,获取待遍历表的被调权重值l1、l2、...、lz,z≥1;
48.s310:按照一定的规则对服务存储模块中的所有扩展服务块进行判定并生成高频模块列表m1。
49.进一步的,所述s37,筛选生成待遍历表的被调高频列表j的具体筛选规则如下:
50.s371:创建空的列表j,即j=[];
[0051]
s372:以i1为例,若i1》i,则将i1添加入列表j中,此时j=[i1,];反之则对i1不做任何处理;
[0052]
s373:按照s372依次将i2、...、ic与i进行大小比较,得到最终的j,所述i为预设被调值阈值。
[0053]
进一步的,所述s38,获取待遍历表的被调权重值l1的步骤如下:
[0054]
s381:获取待遍历表的被调高频列表j中存储的所有被调值并将其重新标记为k1、k2、...、ki,1≤i《c;
[0055]
s382:利用公式k=(k1+k2+...+ki)/i计算获取被调高频列表j中存储的所有被调值k1、k2、...、ki的均值k;
[0056]
s383:利用公式l1=k*(i/c*100%)计算获取待遍历表的被调权重值l1。
[0057]
本发明的有益效果:
[0058]
(1)本发明通过设置数据分析模块基于访问用户的api调用信息对每个扩展服务块的模块消息映射表进行分析生成当前基于所有扩展服务块的高频模块列表,依据访问用户当前传输的api调用信息基于高频模块列表中存储的扩展服务块优先进行遍历查询,一方面避免了每次接收到访问用户当前传输的api调用信息后都对所有模块消息映射表进行遍历导致的访问用户调用相关服务速度较慢情况的发生;另一方面通过在模块消息映射表中设置关联服务块字段,自遍历单元对高频模块列表内的所有扩展服务块对应的模块消息映射表中每个api关键字对应的存储内容进行更新,进一步加快了访问人员调用相关服务的速度;
[0059]
(2)本发明通过设置匹配单元基于当前访问用户的api调用信息获取满足当前api调用信息的所有扩展服务块,设置匹配单元将满足当前api调用信息的所有扩展服务块显示给访问用户进行二次选择,一方面简化了访问用户对于相关功能的调用,无需了解所有扩展服务模块的模块结构,另一方面保证了扩展服务模块数据的安全性。
附图说明
[0060]
下面结合附图对本发明作进一步的说明。
[0061]
图1是本发明的系统框图。
具体实施方式
[0062]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0063]
如图1所示,一种可扩展的网络请求消息和转发系统,包括客户端模块、匹配模块、服务存储模块、数据分析模块和调用模块。
[0064]
所述客户端模块用于获取并解析访问用户的网络请求数据,在本实施例中,所述访问用户的网络请求数据中包括访问用户的访问ip和访问用户的api调用信息;在本实施例中,该访问用户的api调用信息中包含有该访问用户所要调用的api关键字;
[0065]
所述客户端模块获取到访问用户的网络请求数据后通过解析获取该访问用户对应网络请求数据中的api调用信息并将其传输到匹配模块;
[0066]
所述匹配模块用于依据当前传输的访问用户的api调用信息快速匹配到对应的入口函数地址;
[0067]
所述匹配模块包括匹配单元和选择单元,所述匹配模块接收到该访问用户对应网络请求数据中的api调用信息后获取该访问用户所要调用的api关键字数据;所述匹配模块将该访问用户所要调用的api关键字数据传输到匹配单元;
[0068]
所述匹配单元用于依据当前传输的访问用户所要调用的api关键字数据快速匹配对应的入口函数地址,所述匹配单元接收到匹配模块传输的该访问用户所要调用的api关键字数据后获取当前存储的高频模块列表m1并按照一定的匹配规则快速匹配该访问用户api调用信息对应的入口函数地址,具体的匹配规则如下:
[0069]
s11:所述匹配单元获取高频模块列表m1中存储的所有扩展服务块对应的服务存储单元并将其重新标记为r1、r2、...、rr,1≤r≤z;
[0070]
s12:首先选定服务存储单元r1对应的模块消息映射表作为优先查询表,利用select语句将访问用户所要调用的api关键字作为查询条件在第一优先查询表中查询数据并依据查询到的数据生成查询结果数据;
[0071]
使用innull()函数,将“nothing”和访问用户所要调用的api关键字作为定义该函数的第一形参和第二形参,当优先查询表中不存在满足查询条件的数据后查询结果数据中包含“nothing”和访问用户所要调用的api关键字两个返回值;
[0072]
s13:所述匹配单元对当前的查询结果数据进行判定:
[0073]
s131:若查询结果数据中不存在返回值“nothing”,所述匹配单元获取该优先查询表中访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;
[0074]
若扩展服务块数据为“null”,所述匹配单元将访问用户所要调用的api关键字对应的入口函数地址传输到调用模块;
[0075]
反之,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元;
[0076]
所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;
[0077]
所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址并将其传输到调用模块;
[0078]
s132:若查询结果数据中存在返回值“nothing”,则依次将服务存储单元r3、...、rr对应的模块消息映射表作为优先查询表;
[0079]
按照s12到s131查询数据直至查询结果数据中不存在返回值“nothing”,所述匹配单元获取访问用户所要调用的api关键字对应的入口函数地址并将其传输到调用模块;
[0080]
若rr对应的模块消息映射表作为优先查询表获取到的查询结果数据中依然存在返回值“nothing”,所述匹配单元获取所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表;
[0081]
所述匹配单元遍历所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表,获取到所有包含该访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;
[0082]
若该扩展服务块中存储有多个扩展服务块,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元;
[0083]
所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;
[0084]
所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址并将其传输到调用模块;
[0085]
反之,所述匹配单元将访问用户所要调用的api关键字对应的入口函数地址传输到调用模块;
[0086]
所述调用模块依据入口函数地址调用相应的服务功能,所述调用模块接收到匹配单元传输的该访问用户所要调用的api关键字对应的入口函数地址后依据该入口函数地址调用相应的服务功能。
[0087]
所述服务存储模块包括服务存储单元a1、服务存储单元a2、...、服务存储单元aa和自遍历单元,a≥1;
[0088]
所述服务存储单元a1中存储有扩展服务块b1的模块消息映射表,所述服务存储模
块a2中存储有扩展服务块b2的模块消息映射表,依次类推所述服务存储单元aa中存储有扩展服务块ba的模块消息映射表;在本实施例中,依据各个扩展服务块的模块消息映射表中入口函数所封装的功能将扩展服务块划分为扩展服务块b1、b2、...、ba;
[0089]
所述模块消息映射表中设有映射关键字、映射值和关联服务块字段,所述映射关键字字段中存储有api关键字,所述映射值中存储有该api关键字对应的入口函数地址;所述关联服务块字段中存储有所有关联的扩展服务块,在本实施例中,所述所有关联的扩展服务块指代的是所有包含该api关键字的扩展服务块;在本实施例中,所述模块消息映射表中的关联扩展服务块字段默认值设为“null”;
[0090]
所述服务存储模块接收到数据分析模块传输的高频模块列表m1后将其传输到自遍历单元,所述自遍历单元接收到服务存储模块传输的高频模块列表m1后按照一定的修改规则对服务存储单元a1、服务存储单元a2、...、服务存储单元aa中模块消息映射表内存储的数据进行修改,具体的修改规则如下:
[0091]
s21:所述自遍历单元获取高频模块列表m1中存储的所有扩展服务块并将其标记为n1、n2、...、nn,1≤n《z;
[0092]
s22:以扩展服务块n1为例,获取n1对应的模块消息映射表内存储的所有api关键字并将其标记为q1、q2、...、qq,q≥1;
[0093]
s221:以api关键字q1为例,将api关键字q1作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余所有模块消息映射表中的数据:
[0094]
若存在有满足查询条件的数据,将该api关键字q1对应的关联扩展服务块字段的存储的“null”修改为查询到的该数据对应的扩展服务块;
[0095]
若不存在,则不做任何处理;
[0096]
s222:按照s221,依次将api关键字q1、q2、...、qq作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余模块消息映射表中的数据并对应修改api关键字对应的关联服务块字段中的内容;
[0097]
s23:按照s22,依次修改服务存储单元n1、n2、...、nn中存储的模块消息映射表中每个api关键字对应的关联服务块字段中存储的内容;
[0098]
所述数据分析模块用于对访问用户的网络请求数据和服务存储模块中存储的所有模块消息映射表进行数据分析,具体的分析步骤如下:
[0099]
s31:首先选定服务存储单元a1中存储的模块消息映射表为待遍历表,获取待遍历表中存储的所有api关键字并将其标记为c1、c2、...、cc,c≥1;
[0100]
s32:进行访问段划分,将一个访问周期划分为d个等时长的访问段,将一个访问周期的d个访问段标记为d1、d2、...、dd,d≥1;
[0101]
s33:以api关键字c1为例,获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff,f≥1;
[0102]
在本实施例中,所述c1的被调次数指的是待遍历表中与访问用户网络请求中携带的api调用信息一致的入口函数执行次数;所述e个访问周期是指以当前访问周期为起点,向过去回溯e个访问周期,在本实施例中,一个访问周期为1天,一个访问段为60分钟;
[0103]
s34:利用公式计算获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff的离散值g,将g与g1进行大小比较,若g≥g1,则按照|fg-f|从大到小的顺序依次删除对应的fg值,并计算剩余fg值的离散值g,并再次将g与g1进行大小比较,直至g《g1,在本实施例中,所述g1为预设阈值,所述f为参与剩余离散值g计算的被调次数均值;
[0104]
将参与剩余离散值g计算的被调次数均值f重新标定为被调值并将其标记为h1;
[0105]
s35:按照s32到s34,获取e个访问周期d个访问段内c1的被调值h1、h2、...、hd并计算获取参与离散值计算的被调值均值i1;
[0106]
s36:按照s31到s35,计算获取c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic;
[0107]
s37:按照一定的筛选规则对c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic进行筛选生成待遍历表的被调高频列表j,具体的筛选规则如下:
[0108]
s371:创建空的列表j,即j=[];
[0109]
s372:以i1为例,若i1》i,则将i1添加入列表j中,此时j=[i1,];反之则对i1不做任何处理;
[0110]
s373:按照s372依次将i2、...、ic与i进行大小比较,得到最终的j,所述i为预设被调值阈值;
[0111]
s38:按照一定的步骤获取待遍历表的被调权重值l1,具体步骤如下;
[0112]
s381:获取待遍历表的被调高频列表j中存储的所有被调值并将其重新标记为k1、k2、...、ki,1≤i《c;
[0113]
s382:利用公式k=(k1+k2+...+ki)/i计算获取被调高频列表j中存储的所有被调值k1、k2、...、ki的均值k;
[0114]
s383:利用公式l1=k*(i/c*100%)计算获取待遍历表的被调权重值l1;
[0115]
s39:按照s31到s38,依次将服务存储模块中存储的所有模块消息映射表选定为待遍历表,获取待遍历表的被调权重值l1、l2、...、lz,z≥1;
[0116]
s310:按照一定的规则对服务存储模块中的所有扩展服务块进行判定并生成高频模块列表m1,具体的判定规则如下:
[0117]
s3101:利用list()方法创建临时列表m2=[];
[0118]
s3102:以l1为例,将l1与l进行大小比较,所述l为预设被调值阈值:
[0119]
若l1≥l,则判定被调权重值为l1的待遍历表对应的扩展服务块为高频访问模块,将l1添加入m2中,此时m2=[l1,];
[0120]
反之,则不做任何处理;
[0121]
s3103:按照s3102,依次对被调权重值为l1、l2、...、lz的待遍历表对应的扩展服务块进行判定,并得到最终的临时列表m2;
[0122]
s3104:利用sort()函数,设置参数“reveres=true”,对最终获取的临时列表m2中存储的被调权重值进行从大到小的排序;
[0123]
s3105:将排序后的临时列表m2重新标定为高频模块列表标记为m1;
[0124]
所述数据分析模块将最终的高频模块列表m1分别传输到匹配模块和服务存储模块;
[0125]
所述匹配模块接收到数据分析模块传输的高频模块列表m1后将其传输到匹配单元,所述匹配单元接收到匹配模块传输的高频模块列表m1后对其进行永久存储。
[0126]
在说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0127]
以上内容仅仅是对本发明所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
[0128]
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

技术特征:


1.一种可扩展的网络请求消息和转发系统,其特征在于,包括:客户端模块,获取并解析访问用户的网络请求数据,所述访问用户的网络请求数据中包括访问用户的访问ip和访问用户的api调用信息;所述访问用户的api调用信息中包含有该访问用户所要调用的api关键字数据;服务存储模块,包括服务存储单元a1、服务存储单元a2、...、服务存储单元aa,a≥1;所述服务存储单元a1中存储有扩展服务块b1的模块消息映射表,所述服务存储模块a2中存储有扩展服务块b2的模块消息映射表,依次类推所述服务存储单元aa中存储有扩展服务块ba的模块消息映射表;依据各个扩展服务块的模块消息映射表中入口函数所封装的功能将扩展服务块划分为扩展服务块b1、b2、...、ba;匹配模块,依据当前访问用户的api调用信息快速匹配到对应的入口函数地址;调用模块,依据入口函数地址调用相应的服务功能;数据分析模块,对访问用户的网络请求数据和服务存储模块中存储的所有模块消息映射表进行分析生成高频模块列表m1,所述高频模块列表m1中存储有按照一定判定规则判定的扩展服务块。2.根据权利要求1所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述模块消息映射表中设有映射关键字、映射值和关联服务块字段,所述映射关键字字段中存储有api关键字,所述映射值中存储有该api关键字对应的入口函数地址;所述关联服务块字段中存储有所有关联的扩展服务块,所述所有关联的扩展服务块指代的是所有包含该api关键字的扩展服务块;所述模块消息映射表中的关联扩展服务块字段默认值设为“null”。3.根据权利要求1所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述服务存储模块中还包括自遍历单元,所述自遍历单元用于依据高频模块列表m1对服务存储模块内存储的所有模块消息映射表中数据进行修改,具体的修改规则如下:s21:所述自遍历单元获取高频模块列表m1中存储的所有扩展服务块并将其标记为n1、n2、...、nn,1≤n<z;s22:以扩展服务块n1为例,获取n1对应的模块消息映射表内存储的所有api关键字并将其标记为q1、q2、...、qq,q≥1;s221:以api关键字q1为例,将api关键字q1作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余所有模块消息映射表中的数据:若存在有满足查询条件的数据,将该api关键字q1对应的关联扩展服务块字段的存储的“null”修改为查询到的该数据对应的扩展服务块;若不存在,则不做任何处理;s222:按照s221,依次将api关键字q1、q2、...、qq作为查询条件遍历服务存储模块中存储的除当前n1对应模块消息映射表的其余模块消息映射表中的数据并对应修改api关键字对应的关联服务块字段中的内容;s23:按照s22,依次修改服务存储单元n1、n2、...、nn中存储的模块消息映射表中每个api关键字对应的关联服务块字段中存储的内容。4.根据权利要求1所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述匹配单元快速匹配该访问用户api调用信息对应的入口函数地址的具体规则如下:s11:所述匹配单元获取高频模块列表m1中存储的所有扩展服务块对应的服务存储单
元并将其重新标记为r1、r2、...、rr,1≤r≤z,所述匹配单元获取当前存储的高频模块列表m1;s12:首先选定服务存储单元r1对应的模块消息映射表作为优先查询表,利用select语句将访问用户所要调用的api关键字作为查询条件在第一优先查询表中查询数据并依据查询到的数据生成查询结果数据;使用innull()函数,将“nothing”和访问用户所要调用的api关键字作为定义该函数的第一形参和第二形参,当优先查询表中不存在满足查询条件的数据后查询结果数据中包含“nothing”和访问用户所要调用的api关键字两个返回值;s13:所述匹配单元对当前的查询结果数据进行判定:s131:若查询结果数据中不存在返回值“nothing”,所述匹配单元获取该优先查询表中访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;若扩展服务块数据为“null”,所述匹配单元将访问用户所要调用的api关键字对应的入口函数地址传输到调用模块;反之,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元,所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址并将其传输到调用模块;s132:若查询结果数据中存在返回值“nothing”,则依次将服务存储单元r3、...、rr对应的模块消息映射表作为优先查询表;按照s12到s131查询数据直至查询结果数据中不存在返回值“nothing”,所述匹配单元获取访问用户所要调用的api关键字对应的入口函数地址并将其传输到调用模块;若rr对应的模块消息映射表作为优先查询表获取到的查询结果数据中依然存在返回值“nothing”,所述匹配单元获取所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表;所述匹配单元遍历所有除服务存储单元r1、r2、...、rr的其余所有服务存储单元对应的模块消息映射表,获取到所有包含该访问用户所要调用的api关键字对应的入口函数地址和扩展服务块数据;若该扩展服务块中存储有多个扩展服务块,所述匹配单元将当前获取到的扩展服务块数据传输到选择单元,所述选择单元用于向访问用户显示供给选择的扩展服务块,所述选择单元接收到匹配单元传输的扩展服务块数据后向访问用户显示该访问用户所要调用的api关键字对应的所有扩展服务块,访问用户进行选择后,所述选择单元获取该访问用户选定的扩展服务块数据生成二次匹配指令并将其传输到匹配单元;所述匹配单元获取选择单元传输的二次匹配指令后依据该访问用户选定的扩展服务块数据在该扩展服务块的模块消息映射表中查询api关键字对应的入口函数地址。5.根据权利要求1所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述数
据分析模块分析生成高频模块列表m1的具体分析步骤如下:s31:首先选定服务存储单元a1中存储的模块消息映射表为待遍历表,获取待遍历表中存储的所有api关键字并将其标记为c1、c2、...、cc,c≥1;s32:进行访问段划分,将一个访问周期划分为d个等时长的访问段,将一个访问周期的d个访问段标记为d1、d2、...、dd,d≥1;s33:以api关键字c1为例,获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff,f≥1;所述c1的被调次数指的是待遍历表中与访问用户网络请求中携带的api调用信息一致的入口函数执行次数;所述e个访问周期是指以当前访问周期为起点,向过去回溯e个访问周期,一个访问周期为1天,一个访问段为60分钟;s34:利用公式计算获取e个访问周期一个访问段内c1被调次数f1、f2、...、ff的离散值g,将g与g1进行大小比较,若g≥g1,则按照|fg-f|从大到小的顺序依次删除对应的fg值,并计算剩余fg值的离散值g,并再次将g与g1进行大小比较,直至g<g1,所述g1为预设阈值,所述f为参与剩余离散值g计算的被调次数均值;将参与剩余离散值g计算的被调次数均值f重新标定为被调值并将其标记为h1;s35:按照s32到s34,获取e个访问周期d个访问段内c1的被调值h1、h2、...、hd并计算获取参与离散值计算的被调值均值i1;s36:按照s31到s35,计算获取c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic;s37:按照一定的筛选规则对c1、c2、...、cc在e个访问周期d个访问段内参与离散值计算的被调值均值i2、i3、...、ic进行筛选生成待遍历表的被调高频列表j;s38:按照一定的步骤获取待遍历表的被调权重值l1;s39:按照s31到s38,依次将服务存储模块中存储的所有模块消息映射表选定为待遍历表,获取待遍历表的被调权重值l1、l2、...、lz,z≥1;s310:按照一定的规则对服务存储模块中的所有扩展服务块进行判定并生成高频模块列表m1。6.根据权利要求5所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述s37,筛选生成待遍历表的被调高频列表j的具体筛选规则如下:s371:创建空的列表j,即j=[];s372:以i1为例,若i1>i,则将i1添加入列表j中,此时j=[i1,];反之则对i1不做任何处理;s373:按照s372依次将i2、...、ic与i进行大小比较,得到最终的j,所述i为预设被调值阈值。7.根据权利要求5所述的一种可扩展的网络请求消息和转发系统,其特征在于,所述s38,获取待遍历表的被调权重值l1的步骤如下:s381:获取待遍历表的被调高频列表j中存储的所有被调值并将其重新标记为k1、k2、...、ki,1≤i<c;
s382:利用公式k=(k1+k2+...+ki)/i计算获取被调高频列表j中存储的所有被调值k1、k2、...、ki的均值k;s383:利用公式l1=k*(i/c*100%)计算获取待遍历表的被调权重值l1。

技术总结


本发明公开了一种可扩展的网络请求消息和转发系统,包括客户端模块、匹配模块、服务存储模块、数据分析模块和调用模块,本发明通过设置数据分析模块生成基于所有扩展服务块的高频模块列表,优先遍历高频模块列表中对应的模块消息映射表,避免每次接收到访问用户当前传输的API调用信息后都对所有模块消息映射表进行遍历情况发生;设置关联服务块字段,自遍历单元对高频模块列表中对应的模块消息映射表进行更新,进一步加快了访问人员调用相关服务的速度;匹配单元基于访问用户API调用信息获取满足条件的所有扩展服务块并将其显示给访问用户进行二次选择,简化了访问用户对于相关功能的调用,无需了解所有扩展服务模块的模块结构。块结构。块结构。


技术研发人员:

周海波

受保护的技术使用者:

合肥九韶智能科技有限公司

技术研发日:

2022.10.12

技术公布日:

2022/12/26

本文发布于:2024-09-23 20:15:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/48824.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   所述   单元   遍历
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议