CN108228346A - 服务系统及其控制方法 - Google Patents
服务系统及其控制方法 Download PDFInfo
- Publication number
- CN108228346A CN108228346A CN201711326887.3A CN201711326887A CN108228346A CN 108228346 A CN108228346 A CN 108228346A CN 201711326887 A CN201711326887 A CN 201711326887A CN 108228346 A CN108228346 A CN 108228346A
- Authority
- CN
- China
- Prior art keywords
- api
- limits value
- virtual server
- performs
- external
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1287—Remote printer device, e.g. being remote from client or server via internet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0273—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
Abstract
本发明提供一种服务系统及其控制方法。该服务系统包括:确定单元,其被构造为,基于实现了web服务的虚拟服务器的数量和API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值;以及控制器,其被构造为,基于API已经被执行的次数是否超过API执行计数限制值,来提供web服务或者将API的调用作为错误进行处理。
Description
技术领域
本发明涉及一种响应于发布的API的执行而提供web服务的服务系统和服务系统的控制方法。
背景技术
近年来,web服务合作的情况越来越多。例如,已发布的web服务API(应用程序接口)用于使web服务彼此合作,这被称为混搭(mashup)。在这种情况下,合作web服务执行由被合作web服务发布的API以使用该被合作web服务,使得web服务彼此合作。
web服务的一个传统技术是称为API节流(throttling)的功能。在web服务中,限制每单位时间可能的API执行计数,以禁止从用户终端中的服务到其他web服务的客户端服务执行许多API。在客户端执行的API的执行计数超过限制的情况下,一些web服务施加惩罚(penalty),例如临时禁止在客户端上使用web服务。日本特开2016-126801号公报公开了通过使用API节流功能来处理大数据的电子系统。
web服务的另一传统技术是使虚拟服务器能够提供web服务的技术。虚拟服务器是各自包括独立的OS(操作系统)的逻辑计算机,通过虚拟化技术将物理服务器计算机组划分为逻辑计算机。
在虚拟服务器提供的web服务具有API节流功能的情况下,各虚拟服务器不具有自动确定虚拟服务器可执行的API的执行计数的限制值(以下称为API执行计数限制值)的机制。
发明内容
本发明提供了一种服务系统,其自动确定每个虚拟服务器的新的API执行计数限制值,并使用户能够解决手动确定API执行计数限制值的麻烦。
自动确定每个虚拟服务器的API执行计数限制值,使用户能够解决手动确定API执行计数限制值的麻烦。
本发明提供了一种服务系统,其在虚拟服务器上实现web服务,并且响应于从客户端服务调用发布的API来提供web服务,所述服务系统包括:确定单元,其被构造为,基于实现了web服务的虚拟服务器的数量和用于限制API被执行的次数的API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值;以及控制器,其被构造为,基于API已经被执行的次数是否超过API执行计数限制值,来提供web服务或者将API的调用作为错误进行处理。
根据下面参照附图对示例性实施例的描述,本发明的另外的特征将变得清楚。
附图说明
图1示出了整个服务系统。
图2示出了信息处理装置的内部结构。
图3是各装置的功能的框图。
图4是示出根据本发明第一实施例的处理流程的流程图。
图5是示出根据本发明第一实施例的处理流程的流程图。
图6是示出根据本发明第二实施例的处理流程的流程图。
图7是示出根据本发明第三实施例的处理(第二模式)流程的流程图。
图8是示出根据本发明第三和第四实施例的处理(第一模式)流程的流程图。
图9是示出根据本发明第四实施例和其他实施例的处理(第二模式)流程的流程图。
图10A、图10B、图10C和图10D示出了本发明的第二、第三和第四实施例(第一模式)的形象图。
图11A、图11B、图11C和图11D示出了本发明的第二、第三和第四实施例(第二模式)的形象图。
具体实施方式
下文将通过使用实施例来描述实施本发明的最佳方式。下述的本发明的各实施例可以被单独地实现,或者,在需要时或在单个实施例中组合来自各个实施例的要素或特征是有利时,可以被实现为多个实施例或其特征的组合。web服务是由构建服务系统的服务器计算机上运行的web应用提供的功能或功能组。根据本发明,web服务在虚拟服务器上实现。虚拟服务器是各自包括独立的OS的逻辑计算机,通过虚拟化技术将物理服务器计算机组划分为逻辑计算机。
将参照图1描述根据本实施例的服务系统140和构造其网络的设备。图1示出了如下状态:客户端系统110、另一服务系统120或终端130,经由因特网100连接到构建服务系统140的服务器计算机或服务器计算机组。客户端系统110是执行由服务系统140发布的API的服务系统。服务系统120是由通过各API进行的web服务所使用的服务系统,并提供在混搭期间使用服务系统与web服务合作的web服务。假定终端130是其上安装了web浏览器的PC、诸如智能电话或平板电脑等的便携式终端、或者图像形成装置。在以下描述中,简称为API的术语表示由服务系统140发布的API,并且被称为外部API的术语表示由服务系统120发布的API。
现在将参照图2来描述作为构建图1所示的服务系统140的服务器计算机的信息处理装置200的内部结构。图2是示出信息处理装置200的内部结构的框图。用户接口201是通过使用例如显示器、键盘或鼠标来输入和输出信息的硬件。不包括该硬件的计算机可以通过使用例如远程桌面而从其他计算机连接和操作。
网络接口202是连接到诸如LAN等的网络并且与其他计算机或网络设备通信的硬件。CPU 203是从ROM 204、RAM 205或二级存储装置206加载程序并执行该程序的指令以控制信息处理装置200的单元。
ROM 204是存储例如应用程序、包括OS的嵌入式程序和数据的存储装置。RAM 205是在CPU 203执行指令时使用的工作存储器。存储在ROM 204中的程序被加载到RAM 205中。CPU 203连续地读取程序的指令并执行指令。二级存储装置206是由HDD表示的外部存储装置。这些组件通过插入其间的输入/输出接口207相互连接。
以上描述了服务系统140的信息处理装置200。构建服务系统120和终端130的服务器计算机具有与信息处理装置200相同的结构。
这里特别值得一提的是,存储在二级存储装置206中的应用程序被加载到RAM 205中,因此,终端130实现了web浏览器的功能。用户通过使用web浏览器访问web服务,并操作web服务的画面以使web浏览器执行API。因此,用户可以通过使用终端130来使用服务系统140的web服务。也就是说,web服务也以除了混搭以外的其他方式来使用。
现在将参照图3来描述实现web服务的功能。在以下描述中,虚拟服务器各自具有自动伸缩(auto scaling)功能。然而,根据本发明,各虚拟服务器可能不具有自动伸缩功能。自动伸缩功能是根据服务系统140的负载自动增加或减少虚拟服务器的数量的功能。自动伸缩功能以当服务系统的负载增加到预定负载以上时增加虚拟服务器的数量的方式防止性能下降,并且以当该负载等于或小于预定负载时减少虚拟服务器的数量的方式降低虚拟服务器的操作成本。根据该实施例,稍后描述的自动伸缩组303实现自动伸缩功能。
图3是示出了负载平衡装置350、DB服务器305和自动伸缩组303管理的虚拟服务器302中的模块组的框图。虚拟服务器302以嵌入在ROM 204中的用于实现虚拟服务器302的程序被加载到RAM 205中的方式来实现。RAM 205的一部分或者全部被用于实现虚拟服务器302。各虚拟服务器302包括虚拟二级存储装置、虚拟RAM和虚拟ROM,并将存储在虚拟二级存储装置中的程序加载到虚拟RAM中以实现应用模块300和API执行控制模块301。应用模块300和API执行控制模块301实现web服务。
在一些情况下,虚拟服务器302由单个服务器计算机实现。也可以认为服务器计算机实现单个虚拟服务器。在图3中,自动伸缩组303包括两个虚拟服务器302。然而,可以认为自动伸缩组303包括单个虚拟服务器302或者三个或更多个虚拟服务器302。
各应用模块300具有实现web服务的功能,将用于执行web服务的API发布到外部,并且响应于来自客户端系统110或终端130的执行请求来提供web服务。假定根据第一实施例的web服务是在使用在云系统上实现的其他web服务时进行认证和批准处理的认证和批准服务。然而,web服务不限于此。web服务被认为是处理数据以创建业务表单数据的业务表单服务、处理数据以创建打印数据的打印服务、管理关于打印机的信息并处理数据以创建报告数据的打印机管理服务、或其他服务。由应用模块300实现的web服务可以执行由DB服务器305或服务系统120发布的外部API。应用模块300通过使用外部API的执行结果来进行其自己的web服务以启用混搭。
自动伸缩组303是监视虚拟服务器302的数量的功能,必要时增加或减少虚拟服务器302的数量并管理增加或减少的结果。自动伸缩组303以将存储在ROM 204中的程序加载到RAM 205中,从加载到ROM 205中的程序连续读取指令并执行指令的方式来实现。
自动伸缩组303监视自动伸缩组303管理的虚拟服务器302的负载,当负载增加时增加虚拟服务器302的数量,并且当负载减少时减少虚拟服务器302的数量。根据负载的监视结果增加或减少虚拟服务器302的数量被称为自动伸缩。根据本发明,检查负载意味着监视虚拟服务器302中的诸如CPU使用量和存储器使用量等的资源的消耗以及虚拟服务器302可接收的访问次数以掌握负载的状态。当自动伸缩组303改变虚拟服务器302的数量时的判定方法不限于监视虚拟服务器302的负载的方法。例如,在由虚拟服务器302处理的请求被存储在队列中的情况下,除了监视对稍后描述的负载平衡模块304的访问次数之外,还考虑监视存储在队列中的作业数量的方法。
负载平衡模块304提供将经由因特网100发送的请求分发和传送到虚拟服务器302的功能。负载平衡模块304的具体示例是SLB(服务器负载平衡器)。然而,负载平衡模块304可以在不同于服务系统140的服务系统上实现。服务系统140可以具有与负载平衡装置350相同的功能。负载平衡模块304以存储在二级存储装置206中的程序被加载到RAM205中的方式来实现。DB(数据库)服务器305管理虚拟服务器302使用的数据。DB服务器305可以提供在虚拟服务器302上,或者可以由经由内部网(未示出)连接的其他服务系统提供。
DB服务器305包括数据管理模块310。DB服务器305将存储在二级存储装置206中的程序加载到RAM 205中以实现数据管理模块310。数据管理模块310被实现为管理由web服务使用的数据并判定访问许可,即请求访问的web服务是否可以访问数据。DB服务器305不是必要的。可以从服务系统120而不是DB服务器305来获取实现API的功能所需的数据。
API执行控制模块301响应于执行请求来判定由web服务发布的API是否可执行,并且基于结果提供控制API的执行的API节流功能。API执行控制模块301将存储在二级存储装置206中的程序加载到RAM 205中以实现要提供的API节流功能。API执行控制模块301管理每单位时间的各API的API执行计数限制值。根据本发明,API执行计数是执行API之后计数的总次数。例如,一旦API被执行,“1”就被存储。API执行控制模块301比较API执行计数限制值和API执行计数,当API执行计数小于API执行计数限制值时准备执行API,当API执行计数超过API执行计数限制值时,将API的调用作为错误进行处理。稍后将参照图5描述判定API执行计数的方法。可以不对web服务发布的所有API比较API执行计数和API执行计数限制值。在某些情况下,当调用特定的API时,比较特定API的API执行计数和API执行计数限制值。在根据下面的实施例描述的示例中,针对由web服务发布的所有API比较API执行计数和API执行计数限制值。
在web服务执行DB服务器305或外部API的情况下,DB服务器305或服务系统120有可能无法完成进行所请求的处理。为这种情况做准备,web服务本身的API的执行计数是有限的。对于只与外部合作,不一定要假定对API的执行的限制。根据本发明,即使在通过自动伸缩来改变虚拟服务器302的数量时,虚拟服务器302也进行API节流以防止API执行计数超过API执行计数限制值,并且防止API执行计数的大量剩余。
API执行计数限制值不必是考虑到DB服务器305和服务系统120能够许可的上限的值,也不是上限本身。例如,在考虑到服务系统120的规格,在每单位时间可执行的API的执行计数是100次的情况下,API执行计数限制值可以不是“100”,但可以是“75”。在API执行计数限制值按原样是API执行计数限制值“100”的情况下,可以认为,一旦API执行计数超过了API执行计数限制值“100”,服务系统120对web服务施加惩罚。因此,限制值具有余量。然而,本发明可以在API执行计数限制值按原样是“100”的情况下执行。
将描述作为本发明的基本实施例的第一实施例。现在将参照图4描述执行API时的流程。API的处理在虚拟服务器302上独立执行。在web服务是功能组的情况下,发布多个API。在根据第一实施例考虑的情况下,由各应用模块300提供的web服务发布“API1”、“API2”和“API3”三个API。表1示出了API执行控制模块301管理的API执行计数限制值。表1中所示的API执行计数限制值由用户在构建服务系统140时考虑到DB服务器305的执行限制值而预先确定,并且API执行控制模块301存储预定值。
表1
预先在服务系统140中设置的web服务的API执行计数限制值
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图4中的流程时,图4中的流程开始。在图4所示的示例中,当在S400中各虚拟服务器302接收到API执行请求时,流程开始。
在S401中,获取虚拟服务器的当前数量。此时,API执行控制模块301获取自动伸缩组303管理的正在运行的虚拟服务器302的数量,并检查该数量。获取虚拟服务器302的当前数量的方法不限于此。例如,可以从负载平衡模块304获取负载平衡模块304作为分配目的地管理的虚拟服务器302的数量,并检查该数量。当确定(或更新)每个虚拟服务器302的API执行计数限制值时,可以检查虚拟服务器302的数量,或者可以周期性地检查该数量,这没有问题。
根据第一实施例,虚拟服务器302当前是两个虚拟服务器,即“虚拟服务器A302”和“虚拟服务器B302”。表2示出了API执行控制模块301管理的虚拟服务器302的数量。
表2
虚拟服务器302的数量 |
2 |
在S402中,API执行控制模块301基于虚拟服务器302的数量和API执行计数限制值来计算并确定要分配给各虚拟服务器302的新的API执行计数限制值。具体地,将表1所示的API执行计数限制值除以表2所示的虚拟服务器302的数量,并且,将结果值确定为新的API执行计数限制值。在根据第一实施例描述的示例中,API执行控制模块301从自动伸缩组303中获取虚拟服务器302的数量,以检查该数量并计算虚拟服务器302的数量。
然而,自动伸缩组303可以管理虚拟服务器302的数量以计算新的API执行计数限制值,并且API执行控制模块301可以使用计算的结果。
此时,虚拟服务器302的数量是两个,如表3所示,每个虚拟服务器的API执行计数限制值对于API 1是50次,对于API 2是25次,对于API 3是50次,并且,这些值被设置在API执行控制模块301中。
根据第一实施例,将表1中所示的API执行计数限制值除以表2中所示的虚拟服务器302的数量,以计算并确定每个虚拟服务器的API执行计数限制值。然而,确定API执行计数限制值的方法不限于该计算方法。不相等的API执行计数限制值可以被分配给虚拟服务器302,并且可以被设置为新的API执行计数限制值。在这种情况下,掌握虚拟服务器302的数量以分配不相等的API执行计数限制值,并且至少将1以上的API执行计数限制值分配给各虚拟服务器302。
表3
每个虚拟服务器的API执行计数限制值
API | API执行计数限制值 |
API 1 | 50 |
API 2 | 25 |
API 3 | 50 |
在S403中,API执行控制模块301基于S402的结果进行API执行判定。稍后将参照图5来描述S403的细节。
在S404中,API执行控制模块301判定API是否可执行。在从S403的结果判定API可执行的情况下,流程进行到S405,并且应用模块300执行所请求的API的处理。在从S403的结果判定API不可执行的情况下,流程进行到S407。
在S407中,应用模块300以API执行错误进行响应。具体地,在应用模块300在S404中判定API执行计数超过API执行计数限制值的情况下,以错误响应于调用API的客户端系统110或终端130。
在S405中执行所请求的API的处理之后,应用模块300在S406中判定执行是否完成。当在S406中应用模块300判定执行失败的情况下,在S409中,应用模块300以执行失败响应于客户端系统110或终端130。在执行完成的情况下,流程进行到S408,并且,应用模块300以执行结果响应于客户端系统110或终端130。
将参照图5详细描述在S403中的API执行判定。通过使用API执行计数限制值来进行API执行判定。在根据第一实施例的描述中,单位时间是1分钟。然而,单位时间不限于该值,例如,可以是30秒或1小时。有一些判定流程的方法。根据第一实施例,将描述其代表方法。
图5示出在当前时间是对API执行计数进行计数的基准时间的情况下API执行判定的流程。在S501中,API执行控制模块301从API执行历史中获取每单位时间的各API的执行计数。此时,API执行控制模块301获取从当前时刻到1分钟前的API执行计数。表4示出了API执行历史。API执行历史在应用模块300执行各API时被记录,并且,包括执行的API和执行时间。
根据第一实施例,例如,在2016年10月1日的10:00:10请求API执行。API执行控制模块301计算从请求API执行的时刻到一分钟前执行的API 1的执行计数。从表4可以看出,API 1的执行计数被确定为“3”,因为API 1从2016年10月1日09:59:10(这是请求API执行之前的一分钟)至2016年10月1日10:00:10已经被执行了三次。
表4
API执行历史
API | 时间 |
API 1 | 2016/10/1 09:58:00 |
API 3 | 2016/10/1 09:59:00 |
API 1 | 2016/10/1 09:59:30 |
API 1 | 2016/10/1 09:59:45 |
API 2 | 2016/10/1 09:59:50 |
API 1 | 2016/10/1 10:00:00 |
API 2 | 2016/10/1 10:00:10 |
API 2 | 2016/10/1 10:01:00 |
在S502中,API执行控制模块301比较S501的结果和在S402中计算出的API n的API执行计数限制值,并判定API n的API执行计数是否小于API n的执行计数限制值。在S502的结果是API 1的API执行计数小于API 1的API执行计数限制值的情况下,流程进行到S503。在API1的API执行计数等于或大于API 1的API执行计数限制值的情况下,流程进行到S504。在API 1的情况下,API 1的API执行计数根据S501的结果为“3”,并且小于API 1的API执行计数限制值,即“50”(参见表3),并且流程进行到S503。
在S503中,API执行控制模块301做出API n是可执行的判定。在S504中,API执行控制模块301做出API n是不可执行的判定。直到在S505中进行所有API的执行判定为止,重复S502至S505。
以下描述示出在单位时间被划分为预定间隔的情况下的API执行判定的流程,并且以划分的间隔对API执行计数进行计数。在该流程中,代替图5中的S501,API执行控制模块301以规则间隔从各API的API执行计数历史中获取过去一分钟的API执行计数。表5示出了这种情况下的API 1的API执行计数历史的示例。此时,由于API执行计数限制值的单位时间被设置为1分钟,所以在这种情况下的描述中,API 1的API执行计数以15秒的间隔被计数。在这种情况下,API执行计数的间隔不限于15秒,并且在通过分割单位时间来获得间隔的情况下可以是任何间隔。
根据第一实施例,例如,API执行控制模块301在2016年10月1日10:00:10接收到API 1的执行请求。API执行控制模块301基于请求执行API 1的时间对过去一分钟的API 1的API执行计数进行计数。具体地,API执行控制模块301累计在2016年10月1日09:59:15-29、2016年10月1日09:59:30-44、2016年10月1日09:59:45-59以及2016年10月1日10:00:00-14的执行计数。根据表5,API 1的API执行计数被确定为“45”。针对一分钟的时段确定执行计数,但是这不一定是如示例中给出的那样直到执行请求接收时刻的一分钟时段。
表5
API 1的API执行计数历史
时间 | API执行计数 |
2016/10/1 09:58:45-59 | 10 |
2016/10/1 09:59:00-14 | 10 |
2016/10/1 09:59:15-29 | 15 |
2016/10/1 09:59:30-44 | 15 |
2016/10/1 09:59:45-59 | 10 |
2016/10/1 10:00:00-14 | 5 |
从S502到S505的流程与参照图5描述的流程相同,并且省略其详细描述。此时,API1的API执行计数小于API 1的API执行计数限制值,因此API 1被判定为可执行的。
参照图4和图5的以下具体描述示出了执行自动伸缩功能以增加或减少虚拟服务器302的数量的情况。例如,web服务由虚拟服务器A302和虚拟服务器B302这两个虚拟服务器302提供,并且在这种状态下,通过自动伸缩功能添加虚拟服务器C302。
在API执行控制模块301在S400中接收到API执行请求之后,API执行控制模块301在S401中获取虚拟服务器302的数量。此时,通过自动伸缩功能将虚拟服务器302的数量增加到三个,并且所获取的虚拟服务器302的数量是“3”。在S402中,将表1中的API执行计数限制值除以“3”,将每个虚拟服务器的API执行计数限制值判定为如下:对于API1是33次,对于API 2是16次,对于API 3是33次。API执行计数限制值可以基于正在运行的虚拟服务器的数量而以任何比例分配给各虚拟服务器302作为新的API执行计数限制值。此时,表1中的API执行计数限制值不能被作为虚拟服务器302的数量的“3”除尽。因此,在表6中,省略其余数。余数可以分配给虚拟服务器302中的任何一个。表6示出了每个虚拟服务器的API执行计数限制值。
表6
每个虚拟服务器的API执行计数限制值
API | API执行计数限制值 |
API 1 | 33 |
API 2 | 16 |
API 3 | 33 |
随后,在S501中,API执行控制模块301从API执行计数历史中获取API执行计数。此时,将描述API 1的API执行计数的示例。表7A、表7B和表7C示出了虚拟服务器A302、虚拟服务器B302和虚拟服务器C302的API 1的执行历史。根据第一实施例,例如,在2016年10月1日的10:00:10向各虚拟服务器302请求执行API 1。可以看出,根据表7A,对于虚拟服务器A302,从执行请求到一分钟之前的API 1的API执行计数是22次,并且,根据表7B,对于虚拟服务器B302,从执行请求到一分钟之前的API 1的API执行计数是40次。可以看出,根据表7C,虚拟服务器C302从未执行API 1。
表7A
虚拟服务器A302的API 1的API执行计数历史
时间 | API执行计数 |
2016/10/1 09:58:45-59 | 10 |
2016/10/1 09:59:00-14 | 5 |
2016/10/1 09:59:15-29 | 5 |
2016/10/1 09:59:30-44 | 15 |
2016/10/1 09:59:45-59 | 2 |
2016/10/1 10:00:00-14 | 5 |
表7B
虚拟服务器B302的API 1的API执行计数历史
时间 | API执行计数 |
2016/10/1 09:58:45-59 | 15 |
2016/10/1 09:59:00-14 | 15 |
2016/10/1 09:59:15-29 | 10 |
2016/10/1 09:59:30-44 | 10 |
2016/10/1 09:59:45-59 | 15 |
2016/10/1 10:00:00-14 | 5 |
表7C
虚拟服务器C302的API 1的API执行计数历史
时间 | API执行计数 |
2016/10/1 10:00:00-14 | 0 |
通过S502至S505,API执行控制模块301比较表6中的API执行计数限制值和表7A至7C中的API执行计数,以判定虚拟服务器A302可以执行API,虚拟服务器B302不能执行API,并且虚拟服务器C302可以执行API。
以下描述示出了由于访问web服务的次数的减少而执行自动伸缩功能,并且减少了虚拟服务器302的数量。例如,通过自动伸缩功能将虚拟服务器的数量从通过虚拟服务器A302、虚拟服务器B302和虚拟服务器C302这三个虚拟服务器302提供web服务的状态减少到两个(虚拟服务器A302和虚拟服务器B302)。
在S400中,API执行控制模块301接收API执行请求。随后,如S401,API执行控制模块301获取虚拟服务器302的数量。虚拟服务器302的数量是两个,因此,所获取的虚拟服务器302的数量是“2”。
在S402中,API执行控制模块301基于虚拟服务器302的数量和API执行计数限制值来计算要分配给各虚拟服务器302的新的API执行计数限制值。将表1中的API执行计数限制值除以作为虚拟服务器的数量的“2”,并且将新的API执行计数限制值确定为如下:对于API1是50次,对于API 2是25次,对于API 3是50次。
随后,在S501中,API执行控制模块301从API执行计数历史中获取API执行计数。表8A示出了虚拟服务器A302的API 1的API执行计数历史。表8B示出了虚拟服务器B302的API1的API执行计数历史。例如,在2016年10月1日10:01:40向虚拟服务器A302和虚拟服务器B302请求执行API 1。根据表8A,从执行请求到一分钟之前的API 1的API执行计数对于虚拟服务器A302被判定为35次。比较API 1的API执行计数限制值“50”和表8A中的API执行计数“35”,并且判定虚拟服务器A302可以执行API。
在虚拟服务器B302的情况下,根据表8B,从执行请求到过去一分钟的API 1的API执行计数被判定为30次。比较表8B中的API执行计数“30”和API 1的API执行计数限制值“50”,并且判定虚拟服务器B302可以执行API。
表8A
虚拟服务器A302的API 1的API执行计数历史
时间 | API执行计数 |
2016/10/1 10:00:15-29 | 20 |
2016/10/1 10:00:30-44 | 5 |
2016/10/1 10:00:45-59 | 10 |
2016/10/1 10:01:00-14 | 15 |
2016/10/1 10:01:15-29 | 5 |
2016/10/1 10:01:30-44 | 10 |
表8B
虚拟服务器B302的API 1的API执行计数历史
根据第一实施例,当执行自动伸缩功能时,可以计算每个虚拟服务器302的新的API执行计数限制值,并且可以更新API执行计数限制值。因此,即使当执行许多发布的API并且服务系统140的负载增加时,自动伸缩功能也能够在不停止web服务的情况下处理请求,并且节流功能使正在运行的虚拟服务器302能够限制API执行。在发布的API的API执行计数减少的情况下,可以在充分使用虚拟服务器302的API执行能力的状态下实现web服务。
即使在没有提供自动伸缩功能的情况下,使用本发明也能够基于虚拟服务器的数量(参见表2)和预定的API执行计数限制值(表1)来确定各虚拟服务器302的新的API执行计数限制值(参见表3)。
以下描述示出了第二实施例,其中API执行控制模块301在通过API执行的web服务执行外部API的情况下设置新的API执行计数限制值。
在外部API执行计数限制值被设置在服务系统120中并且外部API之一被执行的次数大于该值的情况下,服务系统120的功能变成不可用。外部API执行计数限制值是用于限制在执行外部API之后计数的总次数(以下称为外部API执行计数)的值。当外部API执行计数超过外部API执行计数限制值,并且服务系统120的功能变得不可用时,使用外部API的API也因惩罚而变得不可用,并且服务系统140停止。为此,在使用外部API的情况下,需要根据外部API执行计数限制值来设置API执行计数限制值。
根据本实施例,将参照图6描述设置API执行计数限制值的方法。
由客户端服务400执行的API 1、API 2和API 3执行web服务。web服务执行外部API1、外部API 2和外部API 3。图10A示出了其形象图。由客户端系统110实现的web服务在下文中被称为客户端服务400。由服务系统140实现的web服务在下文中被称为资源服务401。由服务系统120实现的web服务在下文中被称为作为外部web服务402(参见图10A至图10D和图11A至图11D)。此时,作为示例,客户端服务400执行API。然而,可以认为由终端130实现的web浏览器的功能执行API。
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图6中的流程时,图6中的流程开始。在图6的示例中,当在S400中接收到API执行请求时,流程开始。
在S601中,API执行控制模块301获取并管理关于由通过各API进行的web服务执行的外部API的信息。在该示例中,获取关于由通过各API进行的资源服务401执行的外部API的信息。具体地,API执行控制模块301获取并管理关于由通过API 1进行的资源服务401对外部API 1的执行、由通过API 2进行的资源服务401对外部API 2的执行以及由通过API 3进行的资源服务401对外部API 3的执行的信息。
在S602中,API执行控制模块301获取并管理外部API执行计数限制值。此时,由API执行控制模块301获取外部API执行计数限制值“600”,并由API执行控制模块301对其进行管理,如表9所示。
表9
外部API执行计数限制值
外部API | 外部API执行计数限制值 |
API 1+API 2+API 3 | 600 |
在S603中,API执行控制模块301将外部API执行计数限制值除以API的数量以计算API执行计数限制值。各API的API执行计数限制值的计算不限于按原样使用在S602中获取的外部API执行计数限制值作为外部API执行计数限制值的方法。该方法可以设置该值,使得在外部API被执行超过外部API执行计数限制值的次数之后外部API可执行。此时,使用后一种方法,并且外部API执行计数限制值是“450”,即,外部API执行计数限制值的75%。设置外部API执行计数限制值时的百分比可以不是75%。对于稍后描述的实施例也是如此。此时,资源服务401发布三个API,并且API的数目是“3”。将外部API执行计数限制值“450”除以作为API的数量的“3”,并且将各API的API执行计数限制值确定为计算出的值“150”。
在S604中,比较预先存储在服务系统中的API执行计数限制值和计算出的API执行计数限制值,以设置较小的值作为新的API执行计数限制值。此时,比较在服务系统140的API执行控制模块301中存储的API执行计数限制值(表1)和在S603中计算出的各API的API执行计数限制值“150”,以设置较小的值作为新的API执行计数限制值。表10示出了在S604的比较之后的结果。
表10
API执行计数限制值
API | API执行计数限制值 |
API 1 | 100 |
API 2 | 50 |
API 3 | 100 |
考虑到DB服务器305的限制值,比较表1所示的API执行计数限制值和S603的计算结果。在不使用DB服务器305的情况下,在S603中获得的API执行计数限制值“150”可以被设置为新的API执行计数限制值。即使当API执行计数限制值超过表1中的API执行计数限制值时,在API执行计数没有超过考虑外部API执行计数限制值的API执行计数限制值的情况下(S603),至少也不会发生外部web服务402的不可用状态作为惩罚。因此,将在S603中计算出的API执行计数限制值与表1中的值进行比较的步骤不是必要的。在设置了使用DB服务器305的一些API的API执行计数限制值的情况下,仅在设置了API执行计数限制值时才需要与表1中的值进行比较。对于稍后描述的实施例也是如此。
除了如表9中所示外部API执行计数限制值由服务系统120所发布的外部API的总和表示的情况(在下文中被称为第一模式)之外,也可以考虑为各外部API设置外部API执行计数限制值的情况(在下文中被称为第二模式)。将参照图6和图11A描述在第二模式中设置新的API执行计数限制值的方法。此时,作为示例,客户端服务400执行API。然而,可以认为由终端130实现的web浏览器的功能执行API。此时,如后面所述,以图6中的S603被替换的方式来实现第二模式。
S400和S601以与根据第二实施例的第一模式的情况相同的方式获得相同的结果,并且省略其详细描述。
在S602中,API执行控制模块301获取并管理关于由通过各API进行的资源服务401所执行的外部API的信息。具体地,API执行控制模块301获取外部API 1、外部API 2和外部API 3的外部API执行计数限制值,将“200”设置为外部API执行计数限制值,并如表11所示管理信息。
表11
外部API执行计数限制值
外部API | 外部API执行计数限制值 |
外部API 1 | 200 |
外部API 2 | 200 |
外部API 3 | 200 |
代替上述的S603,将各外部API的外部API执行计数限制值设置为API执行计数限制值。API执行计数限制值被确定为在S602中获取的外部API执行计数限制值(见表11)的75%的“150”。设置限制值的百分比可以不是75%。在第二模式的情况下,预先确定各外部API的外部API执行计数限制值。因此,与S603的情况一样,不需要将外部API执行计数限制值除以API的数量来计算各API的API执行计数限制值。S604以与根据第二实施例的第一模式相同的方式获得相同的结果(参见表10)。
每个虚拟服务器302的API执行计数限制值是通过将根据第二实施例设置的API执行计数限制值(参见表10)除以虚拟服务器302的数量的方式而获得的。在存在两个虚拟服务器302的情况下,根据第二实施例,将在S604中获得的API执行计数限制值(参见表10)除以作为虚拟服务器302的数量的“2”。每个虚拟服务器的API 1和API 3的API执行计数限制值是获得值“50”,并且,每个虚拟服务器的API 2的API执行计数限制值是获得值“25”。
然而,确定API执行计数限制值的方法不限于该计算方法。不相等的API执行计数限制值可以被分配给虚拟服务器302,并且可以被设置为新的API执行计数限制值。当不相等的API执行计数限制值被分配时,至少将1以上的API执行计数限制值分配给各虚拟服务器302。
根据第二实施例,无论虚拟服务器302是否具有自动伸缩功能,都可以根据外部API执行计数限制值来设置每个虚拟服务器的API执行计数限制值。该方法使得各API的功能能够执行对应的外部API,防止外部web服务402由于外部API执行计数限制值而停止,并且防止资源服务401由于惩罚而停止。在外部API执行计数限制值被改变的情况下,可以自动改变API执行计数限制值,并且可以保持其适当的值。
在根据除第三实施例以外的实施例考虑的情况下,当由客户端服务400或终端130实现的web浏览器的功能执行一次API时,通过API进行的资源服务401可以执行外部API多于一次。在这种情况下,执行计数被称为“每个API执行计数的外部API执行计数”(由客户端服务400或终端130实现的web浏览器的功能执行API的次数被称为“API执行计数”,并且通过API进行的资源服务401执行外部API的次数被称为“外部API执行计数”)。
根据第二实施例,每个API执行计数的外部API执行计数是一次。在每个API执行计数的外部API执行计数为“2”以上时使用根据第二实施例设置的外部API执行计数限制值“200”的情况下,外部API执行计数变为“400”以上,并且,即使API执行计数为“200”,外部API执行计数限制值也超过“200”。结果,服务系统120变得不可用,使用外部API的API也由于惩罚而变得不可用,并且服务系统140停止。出于这个原因,需要考虑每个API执行计数的外部API执行计数来设置API执行计数限制值。
关于第一模式,将参照图8描述设置API执行计数限制值的方法。由客户端服务400执行的API 1、API 2和API 3执行资源服务401,并且资源服务401执行外部API 1、外部API2和外部API 3。图10B示出了其形象图。
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图8中的流程时,图8中的流程开始。在图8的示例中,当在S400中接收到API执行请求时,流程开始。
S601以与根据第二实施例的第一模式的情况相同的方式获得,并且省略其详细描述。此时,通过API 1执行的资源服务401执行外部API 1两次,资源服务401在API 2的情况下执行一次外部API 2,并且,资源服务401在API 3的情况下执行外部API 3两次。API执行控制模块301获取并管理关于这些的信息。
在S602中,API执行控制模块301获取并管理外部API执行计数限制值。具体地,API执行控制模块301获取外部API执行计数限制值“600”,并且由API执行控制模块301管理与根据第二实施例的第一模式的情况相同的信息(参见表9)。
在S801中,API执行控制模块301获取并管理每个API执行计数的外部API执行计数的总和。此时,每个API执行计数的API 1、API 2和API 3的外部API执行计数的总和是5次,并且API执行控制模块301如表12所示管理每个API执行计数的外部API执行计数的总和。
表12
每个API执行计数的外部API执行计数的总和
在S802中,API执行控制模块301将外部API执行计数限制值除以每个API执行计数的外部API执行计数,以计算关于每个API执行计数的外部API执行计数的外部API执行计数限制值。具体地,将在S602中获取的外部API执行计数限制值(参见表9)除以在S801中获取的每个API执行计数的外部API执行计数的总和(参见表12),以计算关于每个API执行计数的外部API执行计数的外部API执行计数限制值。此时,可以将在S602中获取的外部API执行计数限制值按原样作为外部API执行计数限制值来使用。该值可以被设置成使得在外部API被执行超过外部API执行计数限制值的次数之后外部API可执行。此时,使用后一种方法,并且外部API执行计数限制值是“450”,即,外部API执行计数限制值的75%。将值“450”除以作为每个API执行计数的外部API执行计数的总和的“5”,并且,关于每个API执行计数的外部API执行计数的外部API执行计数限制值被确定为获得值“90”。因此,API执行控制模块301如表13所示设置外部API执行计数限制值。
表13
关于每个API执行计数的外部API执行计数的外部API执行计数限制值
外部API执行计数限制值 | |
外部API | 90 |
在S703中,比较预先存储在服务系统中的API执行计数限制值和外部API执行计数限制值,以设置较小的值作为新的API执行计数限制值。此时,比较在API执行控制模块301中存储的API执行计数限制值(参见表1)和在S802中计算的外部API执行计数限制值(参见表13)。表14示出了结果。
表14
新的API执行计数限制值
考虑到DB服务器305的限制值,比较表1所示的API执行计数限制值和S802的计算结果。在不使用DB服务器305的情况下,在S802中获得的API执行计数限制值“90”可以被设置为各API的API执行计数限制值。对于稍后描述的实施例也是如此。
现在将参照图7和图11B描述在第三实施例的第二模式中设置API执行计数限制值的方法。此时,作为示例,客户端服务400执行API。然而,可以认为由终端130实现的web浏览器的功能执行API。
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图7中的流程时,图7中的流程开始。在图7的示例中,当在S400中接收到API执行请求时,流程开始。
S601以与根据第三实施例的第一模式的情况相同的方式获得相同的结果,并且省略其描述。
在S602中,API执行控制模块301获取并管理外部API执行计数限制值。此时,API执行控制模块301获取外部API 1、外部API 2和外部API 3的外部API执行计数限制值,并将“200”设置为外部API执行计数限制值。由API执行控制模块301管理与根据第二实施例的第二模式的情况相同的信息(参见表11)。
在S701中,API执行控制模块301获取并管理每个API执行计数的外部API执行计数。此时,通过API 1进行的资源服务401执行外部API1两次,资源服务401在API 2的情况下执行一次外部API 2,资源服务401在API 3的情况下执行外部API 3两次,并且API执行控制模块301如表15中所示管理每个API执行计数的外部API执行计数。
表15
每个API执行计数的外部API执行计数
在S702中,将外部API n的外部API执行计数限制值除以每个API执行计数的外部API执行计数,以计算关于每个API执行计数的外部API执行计数的外部API n的外部API执行计数限制值。此时,如上述实施例一样,API执行计数限制值是“150”,即,在S602中获取的外部API执行计数限制值(见表10)的75%。在API 1(n=1)的情况下,将在S602中获得的外部API 1的外部API执行计数限制值“150”除以“2”,“2”是在S701中获得的每个API执行计数的外部API执行计数,并且,关于由通过API 1进行的资源服务401所执行的外部API的一个执行计数的API 1的API执行计数限制值被确定为获得值“75”。
S703是与根据第三实施例的第一模式中相同的处理,并且省略其描述。在API 1的情况下,比较存储在API执行控制模块301中的API 1的API执行计数限制值“100”和在S702中设置的API 1的API执行计数限制值“75”,以将较小值“75”设置为API 1的新的API执行计数限制值。
在S704中,判定是否设置了所有API的API执行计数限制值。重复S702至S704的处理,直到判定所有的API执行计数限制值被设置。表16示出了根据第三实施例的第二模式中设置的API执行计数限制值。
表16
新的API执行计数限制值
API | API执行计数限制值 |
API 1 | 75 |
API 2 | 50 |
API 3 | 75 |
每个虚拟服务器302的新的API执行计数限制值是通过将根据第三实施例设置的API执行计数限制值(参见表14和表16)除以虚拟服务器302的数量的方式而获得的。在存在两个虚拟服务器302的情况下,在根据第三实施例的第一模式中,将表14中的API执行计数限制值除以作为虚拟服务器302的数量的“2”。每个虚拟服务器的API 1和API 3的API执行计数限制值是获得值“45”,并且,每个虚拟服务器的API 2的API执行计数限制值是获得值“25”。
在根据第三实施例的第二模式中,将表16中的API执行计数限制值除以作为虚拟服务器302的数量的“2”。每个虚拟服务器的API 1和API3的API执行计数限制值是获得值“37”,并且,每个虚拟服务器的API 2的API执行计数限制值是获得值“25”。在计算每个虚拟服务器的API 1和API 3的API执行计数限制值时的余数可以分配给任何一个虚拟服务器302。
确定API执行计数限制值的方法不限于该计算方法。不相等的API执行计数限制值可以被分配给虚拟服务器302,并且可以被设置为新的API执行计数限制值。当不相等的API执行计数限制值被分配时,至少将1以上的API执行计数限制值分配给各虚拟服务器302。
根据第三实施例,无论虚拟服务器302是否具有自动伸缩功能,都可以根据通过各API进行的资源服务401执行对应的外部API的次数来设置每个虚拟服务器的API执行计数限制值。该方法使得各API的功能能够执行对应的外部API,防止资源服务401和外部web服务402由于外部API执行计数限制值而停止。在外部API执行计数限制值被改变的情况下,可以自动改变API执行计数限制值,并且可以保持其适当的值。
以下描述示出第四实施例,其中在通过各API进行的资源服务401执行外部API的情况下,设置API执行计数限制值。
关于第一模式,将参照图8描述设置API执行计数限制值的方法。由客户端服务400执行的API 1和API 2执行资源服务401,并且资源服务401执行外部API 1、外部API 2和外部API 3。图10C示出了其形象图。此时,作为示例,客户端服务400执行API。然而,可以认为由终端130实现的web浏览器的功能执行API。
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图8中的流程时,图8中的流程开始。在图8的示例中,当在S400中接收到API执行请求时,流程开始。
在S601中,API执行控制模块301获取关于由通过各API进行的web服务调用并执行的外部API的信息。此时,通过API 1进行的资源服务401执行一次外部API 1并执行外部API2两次,并且资源服务401在API 2的情况下执行外部API 3两次。
在S602中,API执行控制模块301获取并管理外部API执行计数限制值。此时,API执行控制模块301获取外部API执行计数限制值“600”,并且由API执行控制模块301管理与根据第二实施例的第一模式的情况相同的信息(参见表9)。
在S801中,API执行控制模块301获取并管理每个API执行计数的外部API执行计数的总和。此时,通过API 1和API 2进行的资源服务401总共执行外部API5次。因此,API执行控制模块301的管理如表17所示。
表17
每个API执行计数的外部API执行计数的总和
API | 每个API执行计数的外部API执行计数 |
API 1+API 2 | 5 |
S802以与根据第三实施例的第一模式的情况相同的方式获得相同的结果(参见表13)。随后,在S703中,比较预先存储在服务系统中的API执行计数限制值和外部API执行计数限制值,以设置较小的值作为新的API执行计数限制值。此时,比较存储在API执行控制模块301中的API执行计数限制值(参见表1)和在S802中计算出的外部API执行计数限制值,以设置较小的值作为新的API执行计数限制值。表18示出了在比较之后的结果。
表18
新的API执行计数限制值
API | API执行计数限制值 |
API 1 | 90 |
API 2 | 50 |
考虑到DB服务器305的限制值,比较表1所示的API执行计数限制值和S802的计算结果。在不使用DB服务器305的情况下,在S802中获得的外部API执行计数限制值可以被设置为API执行计数限制值。
将参照图9和图11C描述在第四实施例的第二模式中设置API执行计数限制值的方法。此时,作为示例,客户端服务400执行API。然而,可以认为由终端130实现的web浏览器的功能执行API。
当各虚拟服务器302启动时,当各虚拟服务器302从客户端系统110或终端130接收到API执行请求时,或者当各虚拟服务器302周期性地执行图9中的流程时,图9中的流程开始。在图9的示例中,当在S400中接收到API执行请求时,流程开始。
S601以与根据第四实施例的第一模式的情况相同的方式获得相同的结果,并且省略其描述。
在S602中,API执行控制模块301获取并管理外部API执行计数限制值。此时,API执行控制模块301获取外部API 1、外部API 2和外部API 3的外部API执行计数限制值,并将“200”设置为外部API执行计数限制值。由API执行控制模块301管理与根据第二实施例的第二模式的情况相同的信息(参见表11)。
在S701中,API执行控制模块301获取并管理每个API执行计数的外部API执行计数。此时,通过API 1进行的资源服务401执行一次外部API 1并执行外部API 2两次,资源服务401在API 2的情况下执行外部API 3两次,并且API执行控制模块301如表19中所示管理每个API执行计数的外部API执行计数。
表19
每个API执行计数的外部API执行计数
外部API 1 | 外部API 2 | 外部API 3 | |
API 1 | 1 | 2 | |
API 2 | 2 |
在S901中,将各外部API的外部API执行计数限制值除以每个API执行计数的外部API执行计数,以计算关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值。此时,使用在S602中获取的外部API执行计数限制值和在S701中获取的每个API执行计数的外部API执行计数,来计算关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值。在计算中,API执行计数限制值是“150”,即,在S602中获取的外部API执行计数限制值的75%。具体地,外部API 1由通过API 1进行的资源服务401执行一次,并且关于每个API执行计数的外部API执行计数的外部API 1的外部API执行计数限制值是在S602中设置的外部API执行计数限制值“150”。外部API 2由通过API 1进行的资源服务401执行两次,并且关于每个API执行计数的外部API执行计数的外部API 2的外部API执行计数限制值是“75”,其是通过将在S602中设置的外部API执行计数限制值“150”除以作为每个API执行计数的外部API执行计数的“2”而获得的。表20示出了API执行控制模块301中设置的关于每个API执行计数的外部API执行计数的外部API执行计数限制值。
表20
关于每个API执行计数的外部API执行计数的外部API执行计数限制值
外部API | 外部API执行计数限制值 |
外部API 1 | 150 |
外部API 2 | 75 |
外部API 3 | 75 |
在S902中,将关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值的最小值,设置为API n的API执行计数限制值。具体地,在API 1(n=1)的情况下,通过API 1进行的资源服务401执行外部API 1和外部API 2,对作为S901中的计算结果(参见表20)的“150”和“75”进行比较,以将较小值“75”设置为API 1的API执行计数限制值。
S604是与根据第四实施例的第一模式中相同的处理,并且省略其描述。在API 1的情况下,比较存储在API执行控制模块301中的API 1的API执行计数限制值“100”和在S902中设置的API 1的API执行计数限制值“75”,以将较小值“75”设置为API 1的API执行计数限制值。
在S903中,判定是否设置了所有API的API执行计数限制值。重复S902至S903的处理,直到判定所有的API执行计数限制值被设置。表21示出了根据第四实施例的第二模式中设置的API执行计数限制值。
表21
API执行计数限制值
API | API执行计数限制值 |
API 1 | 75 |
API 2 | 50 |
根据第四实施例,通过不同的API进行的资源服务401不执行相同的外部API。在下面描述的另一个实施例中,通过一些API进行的资源服务401执行相同的外部API,并且设置API执行计数限制值。具体地,如图10D和图11D所示,通过API进行的资源服务401执行一个外部API。
关于另一个实施例的第一模式(参见图10D),参照图8设置API执行计数限制值,如在图10B和图10C的情况下一样。根据第一模式中的第三实施例(参见图10B)和本实施例,外部API执行计数限制值、每个API执行计数的外部API执行计数的总和、以及API的数量是相同的。为此,无论是否执行相同的外部API,都获得与根据第三实施例的第一模式相同的结果(参见表14)。因此,省略对在图10D的情况下设置API执行计数限制值的方法的描述。
关于另一个实施例的第二模式(参见图11D),参照图9设置API执行计数限制值,如根据第四实施例的第二模式(图11C)的情况下一样。因此,省略了与图11C的情况下相同的步骤的详细描述,并且下面描述获得不同结果的步骤(S701和S901)。
在S701中,API执行控制模块301获取并管理每个API执行计数的外部API执行计数。此时,根据图11D,API执行控制模块301如表22中所示管理每个API执行计数的外部API执行计数。
表22
每个API执行计数的外部API执行计数
外部API 1 | 外部API 2 | 外部API 3 | |
API 1 | 1 | 1 | |
API 2 | 1 | ||
API 3 | 1 | 1 |
在S901中,计算关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值。此时,使用在S602中获取的外部API执行计数限制值(参见表11)和在S701中获取的每个API执行计数的外部API执行计数,来计算关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值。与上述实施例中一样,外部API执行计数限制值是“150”,即,外部API执行计数限制值“200”的75%。
在图11D中,外部API 1由通过API 1和API 3进行的资源服务401执行两次,并且关于每个API执行计数的外部API执行计数的外部API 1的外部API执行计数限制值是“75”,其是通过将外部API执行计数限制值“150”除以作为每个API执行计数的外部API执行计数的总和的“2”而获得的。外部API 3由通过API 3和API 3进行的资源服务401执行两次,并且关于每个API执行计数的外部API执行计数的外部API 3的外部API执行计数限制值是“75”,其是通过将外部API执行计数限制值“150”除以作为每个API执行计数的外部API执行计数的总和的“2”而获得的。外部API 2由通过API 2进行的资源服务401执行一次,并且关于每个API执行计数的外部API执行计数的外部API 2的外部API执行计数限制值是“150”,其是通过将在S602中设置的外部API执行计数限制值“150”除以作为每个API执行计数的外部API执行计数的总和的“1”而获得的。表23示出了关于每个API执行计数的外部API执行计数的各外部API的外部API执行计数限制值。表23中的值被设置在API执行控制模块301中。
表23
关于每个API执行计数的外部API执行计数的外部API执行计数限制值
外部API | 外部API执行计数限制值 |
外部API 1 | 75 |
外部API 2 | 150 |
外部API 3 | 75 |
重复S902至S903的处理,直到在S903中判定所有的API执行计数限制值被设置。因此,根据图11D所示的实施例设置的API执行计数限制值与根据第三实施例的第二模式(参见表16)的情况相同。
每个虚拟服务器302的API执行计数限制值是通过将根据第四实施例设置的API执行计数限制值(参见表16)除以虚拟服务器302的数量的方式而获得的。
例如,存在两个虚拟服务器302。将根据第四实施例的计算结果除以作为虚拟服务器302的数量的“2”,并且,每个虚拟服务器302的API执行计数限制值被确定为所获得的值。在根据第四实施例的第一模式(参见图10C)的情况下,将表18中的API执行计数限制值除以作为虚拟服务器302的数量的“2”,每个虚拟服务器的API 1的API执行计数限制值是获得值“45”,并且每个虚拟服务器的API 2的API执行计数限制值是获得值“25”。在API执行计数限制值不能被虚拟服务器302的数量除的情况下,其余数可以被分配给任何一个虚拟服务器302。对于其他模式也是如此。
确定API执行计数限制值的方法不限于该计算方法。不相等的API执行计数限制值可以被分配给虚拟服务器302,并且可以被设置为新的API执行计数限制值。当不相等的API执行计数限制值被分配时,至少将1以上的API执行计数限制值分配给各虚拟服务器302。
根据第四实施例,即使在由一个API进行的资源服务401执行外部API的情况下,并且在由API进行的资源服务401执行一个外部API的情况下,也可以设置每个虚拟服务器的API执行计数限制值,而不管虚拟服务器302是否具有自动伸缩功能。该方法使得各API的功能能够执行相应的外部API,防止外部web服务402由于外部API执行计数限制值而停止,并且防止资源服务401由于惩罚而停止。在外部API执行计数限制值被改变的情况下,可以自动改变API执行计数限制值,并且可以保持其适当的值。
根据上述实施例,API的数量是两到三个,并且外部API的数量是三个。然而,例如,在API的数量、外部API的数量和每个API执行计数的外部API执行计数不同于这些值的情况下,流程也是有效的。在第二至第四实施例中没有描述的主题与第一实施例中的相同。
在根据第三和第四实施例的第一模式中,描述了通过使用图8中的流程图来计算API执行计数限制值的方法。然而,这种方法不是一个限制。可以以与图7和图9中的第二模式中描述的方式相同的方式计算API执行计数限制值,使得将外部API执行计数限制值除以API的数量来首先设置外部API执行计数限制值。
也可以通过读出并执行记录在存储介质(例如,非临时性计算机可读存储介质)上的计算机可执行指令以执行本发明的上述实施例中的一个或更多个的功能的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的所述计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以执行上述实施例中的一个或更多个的功能而执行的方法,来实现本发明的实施例。计算机可以包括中央处理单元(CPU)、微处理单元(MPU)或其它电路中的一个或多个,并且可以包括分离的计算机或分离的计算机处理器的网络。所述计算机可执行指令可以例如从网络或存储介质被提供给计算机。例如,存储介质可以包括如下中的一个或多个:硬盘,随机存取存储器(RAM),只读存储器(ROM),分布式计算系统的存储器,光盘(例如,压缩盘(CD),数字多功能光盘(DVD),或蓝光光盘(BD)TM),闪速存储器装置,存储卡,等等。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然针对示例性实施例描述了本发明,但是,应该理解,本发明不限于公开的示例性实施例。当然应该理解的是,上面仅以举例的方式描述了本发明,并且在本发明的范围内可以对细节进行修改。
Claims (16)
1.一种服务系统,其在虚拟服务器上实现web服务,并且响应于从客户端服务调用发布的API来提供web服务,所述服务系统包括:
确定单元,其被构造为,基于实现了web服务的虚拟服务器的数量和用于限制API被执行的次数的API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值;以及
控制器,其被构造为,基于API已经被执行的次数是否超过API执行计数限制值,来提供web服务或者将API的调用作为错误进行处理。
2.根据权利要求1所述的服务系统,所述服务系统还包括:
自动伸缩单元,其被构造为,根据所述服务系统的负载来改变实现了web服务的虚拟服务器的数量;以及
检查单元,其被构造为检查由自动伸缩单元改变的虚拟服务器的数量,
其中,确定单元基于API执行计数限制值和由检查单元检查的虚拟服务器的数量,来确定每个虚拟服务器的新的API执行计数限制值。
3.根据权利要求2所述的服务系统,
其中,检查单元响应于确定单元确定每个虚拟服务器的新的API执行计数限制值,来检查由自动伸缩单元改变的虚拟服务器的数量。
4.根据权利要求2或权利要求3所述的服务系统,所述服务系统还包括:
管理器,其管理由所述服务系统的自动伸缩单元改变的虚拟服务器的数量,并且根据所述服务系统的负载启动实现了web服务的新的虚拟服务器,
其中,检查单元向管理器查询虚拟服务器的数量,以检查虚拟服务器的数量。
5.根据权利要求2所述的服务系统,
其中,自动伸缩单元响应于所述服务系统的负载增加到预定负载以上而增加虚拟服务器的数量,并且响应于所述服务系统的负载减少到预定负载以下而减少虚拟服务器的数量。
6.根据权利要求2所述的服务系统,
其中,自动伸缩单元基于由各虚拟服务器使用的资源和存储在队列中的作业中的至少一者,来判定所述服务系统的负载。
7.根据权利要求1所述的服务系统,
其中,由所述服务系统实现的web服务发布多个所述API,并且
其中,确定单元基于实现了web服务的虚拟服务器的数量和针对各API确定的API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值。
8.根据权利要求7所述的服务系统,
其中,响应于特定API被调用,控制器基于由确定单元确定的与所述特定API对应的API执行计数限制值,来提供web服务或将所述特定API的执行作为错误进行处理。
9.根据权利要求1所述的服务系统,
其中,web服务是处理与认证和批准相关的数据的认证和批准服务、处理数据以创建商业表单数据的商业表单服务、处理数据以创建打印数据的打印服务、以及管理关于打印机的信息并处理数据以创建报告数据的打印机管理服务中的任一者。
10.根据权利要求1所述的服务系统,
其中,确定单元以API执行计数限制值除以虚拟服务器的数量的方式,来确定每个虚拟服务器的API执行计数限制值。
11.根据权利要求1所述的服务系统,
其中,确定单元以向各虚拟服务器分配数值的方式,来确定每个虚拟服务器的API执行计数限制值,所述数值的总和等于API执行计数限制值。
12.根据权利要求1所述的服务系统,所述服务系统还包括:
合作单元,其被构造为与其他服务系统合作,
其中,确定单元基于外部API执行计数限制值、API执行计数限制值以及虚拟服务器的数量,来确定每个虚拟服务器的API执行计数限制值,所述外部API执行计数限制值用于限制由所述其他服务系统提供的外部web服务发布的外部API被web服务执行的次数。
13.根据权利要求12所述的服务系统,
其中,确定单元通过将外部API执行计数限制值除以每个API执行计数的外部API执行计数,来计算新的外部API执行计数限制值,并且基于所述新的外部API执行计数限制值、API执行计数限制值以及虚拟服务器的数量,来确定每个虚拟服务器的API执行计数限制值。
14.根据权利要求13所述的服务系统,
其中,API执行计数是对由客户端服务执行API的次数的计数,并且
其中,外部API执行计数是对由web服务执行外部API的次数的计数。
15.一种控制方法,其用于在虚拟服务器上实现web服务,并且响应于从客户端服务调用发布的API来提供web服务,所述控制方法包括如下步骤:
基于实现了web服务的虚拟服务器的数量和用于限制API被执行的次数的API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值;以及
响应于API被调用,基于所确定的API执行计数限制值来提供web服务或将API的调用作为错误进行处理。
16.一种存储有指令的非暂时性存储介质,所述指令在由一个或更多个处理器执行时控制所述一个或更多个处理器实现控制方法,该控制方法用于在虚拟服务器上实现web服务,并且响应于从客户端服务调用发布的API来提供web服务,所述控制方法包括如下步骤:
基于实现了web服务的虚拟服务器的数量和用于限制API被执行的次数的API执行计数限制值,来确定每个虚拟服务器的API执行计数限制值;以及
响应于API被调用,基于所确定的API执行计数限制值来提供web服务或将API的调用作为错误进行处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016-241706 | 2016-12-13 | ||
JP2016241706 | 2016-12-13 |
Publications (3)
Publication Number | Publication Date |
---|---|
CN108228346A true CN108228346A (zh) | 2018-06-29 |
CN108228346B CN108228346B (zh) | 2022-01-18 |
CN108228346B9 CN108228346B9 (zh) | 2022-04-22 |
Family
ID=60915167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711326887.3A Active CN108228346B9 (zh) | 2016-12-13 | 2017-12-13 | 服务系统及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11303546B2 (zh) |
EP (1) | EP3336700A1 (zh) |
JP (1) | JP6957194B2 (zh) |
KR (1) | KR102227061B1 (zh) |
CN (1) | CN108228346B9 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032447A (zh) * | 2019-04-11 | 2019-07-19 | 北京百度网讯科技有限公司 | 用于分配资源的方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971637B (zh) * | 2018-09-30 | 2022-02-08 | 武汉斗鱼网络科技有限公司 | 一种调用第三方服务接口的方法、调度器以及存储介质 |
US20230342224A1 (en) * | 2022-04-25 | 2023-10-26 | Docusign, Inc. | Enforcing application programming interface limits in a document management system |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981401A (ja) * | 1995-09-19 | 1997-03-28 | Hitachi Ltd | 大域的なリソースキャッピング方法 |
US20090241030A1 (en) * | 2008-03-18 | 2009-09-24 | Thorsten Von Eicken | Systems and methods for efficiently managing and configuring virtual servers |
CN101853197A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 确定服务器负载能力 |
CN101887377A (zh) * | 2009-05-13 | 2010-11-17 | 佳能株式会社 | 许可证管理系统及许可证管理方法 |
EP2304562A1 (en) * | 2008-06-06 | 2011-04-06 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
JP2011090594A (ja) * | 2009-10-26 | 2011-05-06 | Hitachi Ltd | サーバ管理装置およびサーバ管理方法 |
US20130212603A1 (en) * | 2012-02-10 | 2013-08-15 | Twilio, Inc. | System and method for managing concurrent events |
CN103618758A (zh) * | 2013-10-31 | 2014-03-05 | 新浪网技术(中国)有限公司 | Web服务器及其系统资源访问控制方法 |
US20140282626A1 (en) * | 2013-03-12 | 2014-09-18 | Apigee Corporation | Processing of application programming interface traffic |
CN104168133A (zh) * | 2014-07-11 | 2014-11-26 | 广州联智信息科技有限公司 | 一种动态配置api访问量的方法和网关及系统 |
CN104580489A (zh) * | 2015-01-20 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种云环境下的Web应用弹性扩展方法 |
US20150180863A1 (en) * | 2013-12-25 | 2015-06-25 | Canon Kabushiki Kaisha | Authority management server and authority management method |
US20150365348A1 (en) * | 2014-06-13 | 2015-12-17 | Canon Kabushiki Kaisha | System, method, server system, and storage medium |
US20160077897A1 (en) * | 2014-09-17 | 2016-03-17 | StrongLoop, Inc | Codeless Generation of APIs |
CN105739917A (zh) * | 2014-12-31 | 2016-07-06 | 三星电子株式会社 | 具有学习机制的电子系统及其操作方法 |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
US20160323187A1 (en) * | 2015-04-30 | 2016-11-03 | Amazon Technologies, Inc. | Managing load balancers associated with auto-scaling groups |
-
2017
- 2017-05-11 JP JP2017094975A patent/JP6957194B2/ja active Active
- 2017-12-08 US US15/836,533 patent/US11303546B2/en active Active
- 2017-12-12 KR KR1020170169895A patent/KR102227061B1/ko active IP Right Grant
- 2017-12-13 CN CN201711326887.3A patent/CN108228346B9/zh active Active
- 2017-12-13 EP EP17206927.0A patent/EP3336700A1/en not_active Withdrawn
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981401A (ja) * | 1995-09-19 | 1997-03-28 | Hitachi Ltd | 大域的なリソースキャッピング方法 |
US20090241030A1 (en) * | 2008-03-18 | 2009-09-24 | Thorsten Von Eicken | Systems and methods for efficiently managing and configuring virtual servers |
EP2304562A1 (en) * | 2008-06-06 | 2011-04-06 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
CN101853197A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 确定服务器负载能力 |
CN101887377A (zh) * | 2009-05-13 | 2010-11-17 | 佳能株式会社 | 许可证管理系统及许可证管理方法 |
JP2011090594A (ja) * | 2009-10-26 | 2011-05-06 | Hitachi Ltd | サーバ管理装置およびサーバ管理方法 |
US20130212603A1 (en) * | 2012-02-10 | 2013-08-15 | Twilio, Inc. | System and method for managing concurrent events |
US20140282626A1 (en) * | 2013-03-12 | 2014-09-18 | Apigee Corporation | Processing of application programming interface traffic |
CN103618758A (zh) * | 2013-10-31 | 2014-03-05 | 新浪网技术(中国)有限公司 | Web服务器及其系统资源访问控制方法 |
US20150180863A1 (en) * | 2013-12-25 | 2015-06-25 | Canon Kabushiki Kaisha | Authority management server and authority management method |
JP2015125510A (ja) * | 2013-12-25 | 2015-07-06 | キヤノン株式会社 | 権限管理サーバー及び権限管理方法 |
US20150365348A1 (en) * | 2014-06-13 | 2015-12-17 | Canon Kabushiki Kaisha | System, method, server system, and storage medium |
CN104168133A (zh) * | 2014-07-11 | 2014-11-26 | 广州联智信息科技有限公司 | 一种动态配置api访问量的方法和网关及系统 |
US20160077897A1 (en) * | 2014-09-17 | 2016-03-17 | StrongLoop, Inc | Codeless Generation of APIs |
CN105739917A (zh) * | 2014-12-31 | 2016-07-06 | 三星电子株式会社 | 具有学习机制的电子系统及其操作方法 |
CN104580489A (zh) * | 2015-01-20 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种云环境下的Web应用弹性扩展方法 |
US20160323187A1 (en) * | 2015-04-30 | 2016-11-03 | Amazon Technologies, Inc. | Managing load balancers associated with auto-scaling groups |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032447A (zh) * | 2019-04-11 | 2019-07-19 | 北京百度网讯科技有限公司 | 用于分配资源的方法和装置 |
US11146502B2 (en) | 2019-04-11 | 2021-10-12 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for allocating resource |
Also Published As
Publication number | Publication date |
---|---|
CN108228346B9 (zh) | 2022-04-22 |
JP6957194B2 (ja) | 2021-11-02 |
JP2018097837A (ja) | 2018-06-21 |
EP3336700A1 (en) | 2018-06-20 |
US20180167288A1 (en) | 2018-06-14 |
CN108228346B (zh) | 2022-01-18 |
US11303546B2 (en) | 2022-04-12 |
KR102227061B1 (ko) | 2021-03-15 |
KR20180068300A (ko) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200287961A1 (en) | Balancing resources in distributed computing environments | |
US10198292B2 (en) | Scheduling database queries based on elapsed time of queries | |
US10346200B1 (en) | System and method for controlled sharing of consumable resources in a computer cluster | |
US11513853B2 (en) | Shared resources control in a multi-tenant system | |
US8392928B1 (en) | Automated workload placement recommendations for a data center | |
US8819683B2 (en) | Scalable distributed compute based on business rules | |
US20190109893A1 (en) | System and method for equitable processing of asynchronous messages in a multi-tenant platform | |
US8910128B2 (en) | Methods and apparatus for application performance and capacity analysis | |
WO2017167025A1 (zh) | 一种实现任务调度的方法、装置及计算机存储介质 | |
US20090300632A1 (en) | Work request control system | |
US10552198B2 (en) | Distribution of applications among machines in a cloud | |
US10193820B2 (en) | System and method for optimizing resource utilization in a clustered or cloud environment | |
US11949737B1 (en) | Allocation of server resources in remote-access computing environments | |
CN108228346A (zh) | 服务系统及其控制方法 | |
US20210217083A1 (en) | Method and system for optimizing resource redistribution | |
US10748161B1 (en) | System and method for managing computing resource orders | |
US9501321B1 (en) | Weighted service requests throttling | |
US10375161B1 (en) | Distributed computing task management system and method | |
CN112000477B (zh) | 一种pod中负载均衡的方法、装置、设备及介质 | |
US11474849B2 (en) | Distribution of applications among machines in a cloud | |
GB2504812A (en) | Load balancing in a SAP (RTM) system for processors allocated to data intervals based on system load | |
Kaur et al. | Comparative Study on Load Balancing Techniques | |
CN111258751A (zh) | 一种控制资源访问的方法、装置及介质 | |
CN113626338A (zh) | 一种测试管理方法和装置 | |
CN116048779A (zh) | 资源分配方法、装置、计算机设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CI03 | Correction of invention patent | ||
CI03 | Correction of invention patent |
Correction item: Claims Correct: Claims submitted on November 17, 2021 False: Claims submitted on August 20, 2021 Number: 03-01 Page: ?? Volume: 38 |