一种动态配置api访问量的方法和网关及系统的制作方法

文档序号:7808738阅读:258来源:国知局
一种动态配置api访问量的方法和网关及系统的制作方法
【专利摘要】本发明公开了一种动态配置API访问量的方法和网关及系统,其中方法包括:计算各应用程序接口API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则重新构造约束集合进行计算。通过本发明实施例,采用动态规划最优化策略替代原有的静态服务配置协议文件,实现对服务器资源的统一调度、合理分配。
【专利说明】—种动态配置API访问量的方法和网关及系统

【技术领域】
[0001]本发明涉及信息【技术领域】,具体涉及一种动态配置API访问量的方法和网关及系统。

【背景技术】
[0002]工业界常用的应用程序编程接口(Applicat1nProgramming Interface,API)安全与管理平台是一套运行在数据中心、云服务中心的应用软件,针对API生产者、API消费者、API管理者等角色,提供了 API网关、API门户、API生命周期管理、API监控、API密钥管理及API实用情况分析等组件功能,图1示出了 API安全与管理平台的结构示意图。API安全与管理平台运行的系统环境包括:符合J2EE规范的中间件(例如:Tomcat、Weblogic等),Oracle或Mysql数据库。与传统的应用程序直接调用应用程序接口 API不同,信息中心需要先启用API安全与管理软件,应用程序在调用资源内的应用程序接口(API)之前,会通过一个API网关,该网关能够根据某种调度策略实现对API的安全访问控制和动态调用,即API网关模块负责对整个API资源进行路由代理、性能分配。
[0003]如图2所示,API网关作为中间结点工作在应用程序与服务器API资源之间,起着API资源调度和控制的重要作用。比如假设I个API后台系统每秒最大支持100个并发请求,超过这个数值,系统就会崩溃,因此要对请求限制。假如目前有20个消费者订阅,平均I秒请求I个,峰值每秒请求10个,那么就要限制每个订阅的请求在10个以下。目前业界普遍采用一种“节气门”技术,通过服务等级协议(Service-Level Agreement, SLA),设置每层服务协议最大可用的请求数目。例如,一级服务每小时最大5000个请求,二级服务每小时最大50个请求。比如设定了某个API最大可调用次数是50,每次的连接时间是60000毫秒。因此当应用程序调用该API超过50次的时候,就不允许再调用了,这对某些特定业务频繁操作的应用程序来说,是不合适的。
[0004]在现有的API网关技术中,“节气门”技术是一种静态的文件配置方法。该技术对于API请求的资源分配是通过服务配置协议文件设置的。如图4所示,如果某个消费者属于API某种服务协议,这个消费者所能得到的API资源总数就是确定的。然而,在实际应用中,资源总数是有限的,请求也是多样的。有时候系统API的请求很忙,就需要动态的降低各消费者的API请求;有时候系统API的请求很闲,也需要动态的扩大各消费者的API请求限制。这就要求在API资源总量一定的情况下,能最大限度的动态调整和控制各API消费者的需求,同时保证系统能正常运行。静态的“节气门”技术作为一种相对简单但不够灵活的配置方法,显然不能满足动态调整API消费需求。


【发明内容】

[0005]本发明的技术方案主要是针对当前静态服务配置文件的技术缺点,采用动态规划的方法对API资源进行动态分配,实现负载均衡,提高服务器资源利用率,使API使用者能够合理利用服务器资源。
[0006]本发明提供了一种动态配置API访问量的方法,所述方法包括:
[0007]计算各应用程序接口 API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;
[0008]根据历史访问量和资源的实际访问量计算修正后理论访问量;
[0009]基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;
[0010]如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
[0011]所述基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系之前还包括:
[0012]判断修正后资源使用情况是否在负载以内,如果资源使用情况在负载以内,则基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;
[0013]如果资源使用情况在负载以外,则计算负载引入参数,使得修正后理论访问量在负载范围内,则基于负载引入参数和计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系。
[0014]所述如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算中还包括:
[0015]当下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造成一个约束集合,进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
[0016]所述方法还包括:
[0017]当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
[0018]相应的,本发明还提供了一种API网关,所述API网关包括:
[0019]API占用权值计算模块,用于计算各应用程序接口 API所占用权值;
[0020]历史访问量权值计算模块,用于根据历史访问量计算出该API集合内各API历史访问量权值;
[0021]修正访问量计算模块,用于根据历史访问量和资源的实际访问量计算修正后理论访问量;
[0022]修正理论访问量比较模块,用于基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;
[0023]API访问量配置模块,用于在判断下一次理论访问量大于等于上一次理论访问量时,则将上一次理论访问量配置为API访问量;以及在判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
[0024]所述API网关还包括:
[0025]负载均衡模块,用于判断修正后资源使用情况是否在负载以内,如果资源使用情况在负载以内,则进入到修正理论访问量比较模块用于判断下一次理论访问量与上一次理论访问量的大小关系;如果资源使用情况在负载以外,则计算负载引入参数,使得修正后理论访问量在负载范围内,则进入到修正理论访问量比较模块用于判断下一次理论访问量与上一次理论访问量的大小关系。
[0026]所述API访问量配置模块还用于当下一次理论访问量小于上一次理论访问量时,则将下一次理论访问量之后的分量重新构造成一个约束集合,反馈到API占用权值计算模块中进行API所占用权值计算以及历史访问量权值计算模块中进行API历史访问量权值计算,重新完成API访问量的配置。
[0027]所述API网关还包括:阈值触发模块,用于判断当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
[0028]相应的,本发明还提供了一种动态配置API访问量的系统,所述系统包括:
[0029]多个API接口,与多个应用客户端连接,用于接收API应用程序的调用;
[0030]多个API服务器,用于存储API资源;
[0031]API网关,连接着多个API接口,以及连接着多个API服务器,用于计算各应用程序接口 API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计笪
ο
[0032]本发明技术方案采用动态规划最优化策略替代原有的静态服务配置协议文件,实现对服务器资源的统一调度、合理分配。根据动态规划策略对各API历史访问情况、各API资源占用情况、调用API所需服务器资源情况等进行分配,协调应用程序对API调用的频率和访问控制。也提高API被调用的效率。对API的调用没有参数限制,随着应用程序的需求变化和总体资源使用情况而变化。也就是说,API被不同应用程序的调用是灵活的。

【专利附图】

【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0034]图1是现有技术中的API安全与管理平台结构示意图;
[0035]图2是现有技术中的基于SAL配置API访问量的系统结构示意图;
[0036]图3是本发明实施例中的动态配置API访问量的系统结构示意图;
[0037]图4是本发明实施例中的动态配置API访问量的方法流程图;
[0038]图5是本发明实施例中的API网关结构示意图。

【具体实施方式】
[0039]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0040]如图3所示的动态配置API访问量的系统,API网关管理多个服务器和多个应用,每个服务器上存储多个API。该系统包括有多个API接口,与多个应用客户端连接,用于接收API应用程序的调用;多个API服务器,用于存储API资源;API网关,连接着多个API接口,以及连接着多个API服务器,用于计算各应用程序接口 API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
[0041]应用程序通过API网关调用部署于不同服务器上的API。本发明的技术方案是在API网关管理上,采用动态规划最优化策略,替代原有的静态服务配置协议文件。本发明实施例中令API网关记录各个服务器可使用的资源、服务器最大负载能力、服务器上的AP1、各个API历史调用频次、运行API所需的服务器资源量等等,这些数据参与到动态规划优化方法的计算,并得到每个服务器上API的最优可调用次数,从而实现对API调用的动态控制,同时设置动态计算执行触发阀值,当访问请求达到阀值时自动进行动态计算、分配。
[0042]动态规划是解决多阶段决策过程最优化问题的一种方法,由美国数学家贝尔曼(Ballman)等人在20世纪50年代提出。多阶段决策过程是指这样一类特殊的活动过程,它可以按时间顺序分解成若干相互联系的子阶段,在每个子阶段都要做出决策,全部过程的决策是一个决策序列,所以多阶段决策问题也称为序贯决策问题。贝尔曼等人针对多阶段决策问题的特点,提出了解决这类问题的“最优化原理”,并成功地解决了生产管理、工程技术等方面的许多实际问题。贝尔曼(Bellman)最优化原理具有这样的特性:不论初始状态和初始决策如何,相对于第一个决策所形成的状态来说,余下的决策必须构成一个最优策略。应用Bellman最优化原理必须满足如下两个条件:①目标函数的可分性状态的可分性。其中目标函数的可分性是指,对于所有的K,一个过程的最后K个子阶段的目标函数,仅仅取决于当前状态和最后K个决策。状态的可分性是指在一个决策之后,下一个状态仅仅取决于当前的状态与决策,而与前面的状态无关。
[0043]在本文技术中,以服务器系统资源使用情况为最优策略目标,分析并建立相应的动态规划数学模型。令服务器的负载能力为W,服务器运算能力、网路环境相对稳定。要得到系统资源分配的最优化策略,即在动态访问量情况下,保证API资源的访问量合理、负载均衡、动态调整、资源充分利用以及允许访问量达到最大,同时设置动态计算执行触发阀值,当访问请求达到阀值时自动进行动态计算、分配。
[0044]符号说明:
[0045]A1:第i个应用请求;
[0046]?:表示服务器最大承载能力,正常使用不超过90% ;
[0047]X,j:表示第i个应用程序请求调用第j个API需消耗的服务器资源量;
[0048]ε i;J:表示第j个API的实际访问的请求量;
[0049]ε ^ i;J:表示第j个API的修正后的请求量;
[0050]:为第r次修正后允许访问第j个API的理论访问量。
[0051 ] P J:表示第r次修正时第j个API的历史访问量统计的权值;
[0052]λ j:表示第j个API所占资源权值;
[0053]^:表示第r次修正时第j个API所占资源权值;
[0054]:表示用户可自定义配置触发动态计算参数。
[0055]Φ ’ k:表示服务器在Λ Tk新增的API访问请求所占用的资源百分比;
[0056]Δ ε.j:表示ATk时间内第j个API的新增请求量。
[0057]根据API资源调度规则,为使服务器资源得到最大化利用,同时提升API访问量,在某一时间节点,求解如下优化问题:
[0058]Σ Σ eU ( ε J j j e N)
max/=: j = - ’
[0059]以及约束条件为:
[0060]


η

L 气,μ j = Sij


/ I

m η
Σ气/.&—/為)


/ —】 ,/-1


k

'ST^I

1》》= I



A-._.1


= I



?““ I

O< μ ,A j < 1,i,j ^ N
[0061]求解出该优化问题后,ε,UJ为第i个请求调用第j个API资源时的最优访问量值。该模型的求解是动态规划与整数规划综合的优化问题。这个优化方程考虑了如下因素:
[0062]根据各个API历史访问情况,计算API访问情况权值;
[0063]根据各个API资源占用情况,统计API资源占用权值;
[0064]总体目标是在保证API历史访问情况下,访问量资源占有量大的链接尽量小。
[0065]本发明实施例的过程中首先计算各应用程序接口 API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则构造约束集合进行计算。
[0066]具体的,图4示出了本发明实施例中的动态配置API访问量的方法流程图,包括如下步骤:
[0067]S401、计算各应用程序接口 API所占用权值;
[0068]计算访问请求所涉及API资源的集合内,各API的资源占用权值根据请求所申请的API资源{A」I ^ j ^ L, j e N}所占用的服务器资源量集合{ κ」11≤j≤L,j e N},
计算出各API资源占用权值

【权利要求】
1.一种动态配置API访问量的方法,其特征在于,所述方法包括: 计算各应用程序接口 API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值; 根据历史访问量和资源的实际访问量计算修正后理论访问量; 基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系; 如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
2.如权利要求1所述的动态配置API访问量的方法,其特征在于,所述基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系之前还包括: 判断修正后资源使用情况是否在负载以内,如果资源使用情况在负载以内,则基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系; 如果资源使用情况在负载以外,则计算负载引入参数,使得修正后理论访问量在负载范围内,则基于负载引入参数和计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系。
3.如权利要求2所述的动态配置API访问量的方法,其特征在于,所述如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算中还包括: 当下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造成一个约束集合,进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
4.如权利要求1至3任一项所述的动态配置API访问量的方法,其特征在于,所述方法还包括: 当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
5.一种API网关,其特征在于,所述API网关包括: API占用权值计算模块,用于计算各应用程序接口 API所占用权值; 历史访问量权值计算模块,用于根据历史访问量计算出该API集合内各API历史访问量权值; 修正访问量计算模块,用于根据历史访问量和资源的实际访问量计算修正后理论访问量; 修正理论访问量比较模块,用于基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系; API访问量配置模块,用于在判断下一次理论访问量大于等于上一次理论访问量时,则将上一次理论访问量配置为API访问量;以及在判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
6.如权利要求5所述的API网关,其特征在于,所述API网关还包括: 负载均衡模块,用于判断修正后资源使用情况是否在负载以内,如果资源使用情况在负载以内,则进入到修正理论访问量比较模块用于判断下一次理论访问量与上一次理论访问量的大小关系;如果资源使用情况在负载以外,则计算负载引入参数,使得修正后理论访问量在负载范围内,则进入到修正理论访问量比较模块用于判断下一次理论访问量与上一次理论访问量的大小关系。
7.如权利要求6所述的API网关,其特征在于,所述API访问量配置模块还用于当下一次理论访问量小于上一次理论访问量时,则将下一次理论访问量之后的分量重新构造成一个约束集合,反馈到API占用权值计算模块中进行API所占用权值计算以及历史访问量权值计算模块中进行API历史访问量权值计算,重新完成API访问量的配置。
8.如权利要求5至7任一项所述的API网关,其特征在于,所述API网关还包括:阈值触发模块,用于判断当某个时段内新增的访问请求量大于客户预先配置的阀值参数时,触发进行API所占用权值和API历史访问量权值计算,最终完成API访问量的配置。
9.一种动态配置API访问量的系统,其特征在于,所述系统包括: 多个API接口,与多个应用客户端连接,用于接收API应用程序的调用; 多个API服务器,用于存储API资源; API网关,连接着多个API接口,以及连接着多个API服务器,用于计算各应用程序接口API所占用权值,以及根据历史访问量计算出该API集合内各API历史访问量权值;根据历史访问量和资源的实际访问量计算修正后理论访问量;基于计算修正后理论访问量判断下一次理论访问量与上一次理论访问量的大小关系;如果判断下一次理论访问量大于等于上一次理论访问量,则将上一次理论访问量配置为API访问量;如果判断下一次理论访问量小于上一次理论访问量,则将下一次理论访问量之后的分量重新构造约束集合进行计算。
【文档编号】H04L12/66GK104168133SQ201410331882
【公开日】2014年11月26日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】胡波, 董明, 严平, 匡前义 申请人:广州联智信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1