CN115298653A - 用于无状态服务的适应状态管理 - Google Patents
用于无状态服务的适应状态管理 Download PDFInfo
- Publication number
- CN115298653A CN115298653A CN202180021976.5A CN202180021976A CN115298653A CN 115298653 A CN115298653 A CN 115298653A CN 202180021976 A CN202180021976 A CN 202180021976A CN 115298653 A CN115298653 A CN 115298653A
- Authority
- CN
- China
- Prior art keywords
- state
- provider
- service
- state provider
- services
- 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.)
- Pending
Links
Images
Classifications
-
- 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/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Micro-Organisms Or Cultivation Processes Thereof (AREA)
- Stored Programmes (AREA)
Abstract
可以提供用于在云服务环境中控制状态更新的计算机实现的方法。该方法包括维护一组状态提供者定义,其中每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据。该方法还包括确定被调用的服务所需要的一组输入变量定义,由状态提供者管理服务接收所确定的一组输入变量定义,选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容,确定匹配所选择的状态提供者定义的一组匹配的状态提供者服务,对所确定的一组状态提供者服务评分,调用得分最高的状态提供者服务,以及将状态数据传递到被调用的服务。
Description
技术领域
本公开一般涉及状态管理,并且更具体地,涉及用于控制云服务和/或计算环境中的状态更新的计算机实现的方法。本公开还涉及用于控制云服务环境中的状态更新的存储控制系统,以及计算机程序产品。
背景技术
通常部署在云计算平台上和云框架中的现代计算环境由多个交互服务和/或微服务组成。该微服务的一个特征是微服务通常是无状态的,即状态从一个调用到下一个调用不是持续的。具体地,对于与该微服务的下一会话或呼叫,不保存包括数据的微服务的一个会话的状态。然而,在一些情况下,使微服务的状态可用于相关联的微服务的下一调用可能是有用的。这不仅作为事务应用的底层技术(例如技术电子商务基础设施)是令人感兴趣的,而且作为云计算环境中的多处理器系统和/或云计算框架的管理也是令人感兴趣的。在不同的条件、性能级别和服务级别协定下,可以从不同的提供者组织获得该资源。然而,如果对该资源的资源管理也可以基于无状态服务和/或微服务的交互,则在该情况下访问相应服务/微服务的“早”状态也可能是有用的。
云提供者通常提供客户端可以订阅并使用服务计算环境的资源的物理或虚拟计算资源,而云提供者管理分配以及底层计算和网络基础设施。该操作模型对于客户端是有利的,因为客户端可以优化操作成本。另一方面,云提供者的合法利益是最小化商业模型可行的运营和投资成本。因此,云提供者通常限制计算机资源分配,其中通常由特定编程方法支持该限制。因此,底层编程模型是无状态的、事件驱动的、处理时间有限的无服务器模型。
虽然这种模型对于特定的执行要求是有利的,但是它也具有一些缺点。显然,一个缺点是该模型是无状态的,即,数据或状态信息不能容易地从功能的一个执行周期到下一个执行周期共享,或者在不同的功能或服务之间共享。
存在与用于控制云服务环境中的状态更新的计算机实现的方法有关的若干公开。
文献US 9,749,387B2公开了用于针对无状态应用基于接收到的与应用(其包括将由应用执行的至少一个操作)相关联的请求以及第一状态信息来显然地提供有状态执行的实施例。
文献CA 2981271A1公开了用于促进与客户交互相关联的交互流状态的无状态表示的方法和装置,包括实现指示在在线事务期间从客户接收的文本输入的第一统一资源定位符(URL)的生成。
已知解决方案的缺点可能是解决方案通常关注商业事务系统,而较少关注用于控制和优化基于多处理器的云计算环境(在该云计算环境中必须使用竞争的无状态服务)的深度技术功能,但是其中仍然需要维持其状态。对这个问题的解决方案可以被看作所提出的概念的基本目的。
发明内容
根据本公开的一个方面,提供了一种计算机实现的方法,其用于控制云服务环境中的状态更新。该方法包括通过状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义。每个状态提供者定义包括一组所需要的输入变量定义和一组输出变量定义以及相关的元数据。
该方法还包括,在调用服务时,确定所调用的服务所需要的一组输入变量定义。该方法还包括由状态提供者管理服务接收所确定的一组输入变量定义。该方法还包括由状态提供者管理服务通过参考状态提供者注册表来选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容。
此外,该方法包括确定与所选择的状态提供者定义相匹配的一组状态提供者服务。该方法还包括使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务进行评分。该方法还包括调用得分最高的状态提供者服务,由此生成状态数据,并将该状态数据传递到所调用的服务。
根据本公开的另一方面,提供了一种状态控制系统,其用于在云服务环境中控制状态更新。状态控制系统包括状态提供者注册表模块,其适于通过状态提供者管理服务单元维护一组状态提供者定义,其中每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据。该系统还包括第一确定装置,其适于在调用服务时确定所调用的服务所需要的一组输入变量定义,其中状态提供者管理服务单元还适于接收所确定的一组输入变量定义。
此外,状态提供者管理服务单元适于通过参考状态提供者注册表来选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容。
此外,状态控制系统包括第二确定装置,其适于确定与所选择的状态提供者定义相匹配的一组状态提供者服务。该系统还包括评分装置,其适于使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分。该系统还包括调用装置,其适于调用得分最高的状态提供者服务,从而生成状态数据。该系统还包括发送装置,其适于将状态数据传递到所调用的服务。
此外,实施例可以采取可从计算机可用或计算机可读介质访问的相关计算机程序产品的形式,计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合使用的程序代码。为了本说明书的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含用于存储、传送、传播或传输程序的装置,该程序由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用。因此,提供了一种计算机程序产品,其用于在云服务环境中控制状态更新。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,该程序指令可由一个或多个计算系统或控制器执行以使该一个或多个计算系统:通过状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据。
程序指令还使得一个或多个计算系统在调用服务时确定所调用的服务所需要的一组输入变量定义。指令进一步使一个或多个计算系统由状态提供者管理服务接收所确定的一组输入变量定义。程序指令还使得一个或多个计算系统通过状态提供者管理服务通过参考状态提供者注册表来选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容。
程序指令还使一个或多个计算系统确定与所选择的状态提供者定义相匹配的一组状态提供者服务。程序指令还使一个或多个计算系统使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分。程序指令还使一个或多个计算系统调用得分最高的状态提供者服务,从而生成状态数据。程序指令还使一个或多个计算系统将状态数据传递到所调用的服务。
所提出的用于在云服务环境中控制状态更新的计算机实现的方法以及相关系统可以提供多个优点、技术效果、贡献和/或改进:
这里提出的概念可使得能够拦截访问云计算环境中的无状态服务和/或微服务的调用,并且从服务/微服务在前一次执行之后被终止的时间开始注入相同服务和/或微服务的状态。该机制不仅可以用于一个服务和/或微服务,而且可以用于由底层云计算环境中的相同或不同提供者提供的多个相同的服务和/或微服务。使用状态提供者注册表,可以标识满足状态定义的多个状态提供者服务,满足调用服务或微服务。基于与状态提供者注册表有关的元数据,可以根据调用服务或微服务所需要的或状态提供者管理服务所需要的服务级别协议或其他预定义条件和/或规则来选择特定的状态提供者服务。
这不仅可以允许管理其它无状态服务/微服务的状态,而且可以根据预定义规则选择适当的状态提供者服务。这可以允许云计算环境中的服务/微服务的状态管理的高灵活性,但是还可以实现提供具有相同特性的状态提供者服务的不同实体(即,提供者)的资源之间的负载平衡。
还可以在资源的硬件附近管理任务中展现所提出的概念的优点。因此,可以利用原始无状态服务优雅地监测和管理处理器、协处理器、存储器单元、存储器系统和/或网络资源的状态,原始无状态服务现在可以被配备并且可以根据所提出的公开概念使用状态信息。
在下文中,将描述所公开的概念的附加实施例,即可应用于该方法以及相关的系统和计算机程序产品的实施例。
根据有利的实施例,该方法还可以包括由状态提供者管理服务针对每个状态提供者服务在元数据库中存储调用计数器,可以在每次调用状态提供者服务时由状态提供者管理服务递增该调用计数器。因此,可以确定最多使用哪个状态提供者服务。该指示符可用于质量评估、性能评估以及对于给定的一组所需要的输入数据的状态提供者服务的未来选择的可用性和可靠性评估。
当响应于状态提供者服务请求与给定状态提供者定义匹配时,状态提供者注册表(可以在其中存储调用计数器)可以进一步返回调用计数器作为状态提供者服务的响应数据的一部分。当状态提供者管理服务接收到调用计数器时,它可以将其与所选择的状态提供者服务的最后存储的调用计数器进行比较。此外,如果接收到的用于所选择的状态提供者功能的调用计数器大于或等于最后存储的调用计数器,则状态提供者管理服务可丢弃实际服务请求。
根据有用的实施例,该方法还可以包括在完成服务的执行时,将服务的输出值返回给状态提供者服务,从该状态提供者服务接收到状态数据。该活动也可以在状态提供者管理服务的控制下执行。因此,状态提供者管理服务可以在这里提出的概念中扮演中心角色。
根据另外的有利实施例,该方法还可以包括由状态提供者服务持久地存储所接收的状态数据,从该状态提供者服务接收到状态数据。因此,状态提供者服务可实现其目的,以跟踪可被应用调用以实现预定义功能的相关服务的状态。
根据扩展实施例,在确定所调用的第一状态提供者服务需要第二状态时,该方法还可以包括以下步骤:经由状态提供者管理服务调用第二状态提供者服务;确定用于第二状态提供者服务的相关的一组输入变量;确定一组匹配的第二状态提供者服务;对一组匹配的第二状态提供者服务进行评分;选择得分最高的第二状态提供者服务,从而生成第二状态数据;将第二状态数据传递到第二状态提供者服务;以及返回第二状态提供者服务的执行的输出值作为第二状态。
这样,对于给定服务,管理依赖状态的序列成为可能。在这种情况下,可以由服务提供者管理服务以递归方式激活服务提供者服务,使得从第一所选择的服务提供者服务开始,使用服务提供者定义,可以级联地选择和激活一个或多个附加状态提供者服务,以最终将期望状态返回到调用服务。
根据该方法的另一有利实施例,对所确定的一组状态提供者服务进行评分可以导致具有相同的得分值的一组得分最高的状态提供者服务,并且并行地调用该组得分最高的状态提供者服务,特别是完整的该组得分最高的状态提供者服务。这样,不仅可以在给定时间激活一个服务提供者服务,而且可以并行执行等效地表现状态提供者服务,即,使得能够返回相同状态。这样,可以针对不同的状态提供者服务启用性能测试,确保在状态提供者服务激活的未来实例中,可以选择提供最高性能的一个状态提供者服务。可替换地,来自云计算环境中的不同提供者的状态提供者服务可以针对彼此来测量,其可以在不同的服务级别协定下执行状态提供者服务。
该行为可以在下一个可选实施例中表达,根据该可选实施例,该方法还可以包括测量执行该组得分最高的状态提供者服务的性能值,并且在相应的状态提供者服务的元数据中存储相应的性能值。因此,性能比较的结果可以被持久地存储在也由状态提供者管理服务控制和访问的元数据中。
根据本方法的另一有用实施例,确定一组状态提供者服务还可以包括根据元数据上的预定义规则来确定匹配的状态提供者服务。在这样做时,可以根据预定义的规则来选择状态提供者服务,如由预定义的质量标准、服务级别协定、性能指示符和/或服务提供者服务的其他行为指示符给出的预定义的规则。
根据该方法的进一步扩展的实施例,确定一组状态提供者服务还可以包括根据云计算环境中的当前工作负载简档来确定匹配的状态提供者服务。这样,云计算环境的不同段或部分中的不同工作负载(即给定时间的计算中心)也可被反映和/或也被控制。
根据该方法的一个许可实施例,可以根据轮询调度(round-robin)原则确定得分最高的状态提供者服务。因此,每当需要调用根据预定的状态提供者服务定义的状态提供者服务时,确认相同定义的另一个状态提供者服务可以获得执行的机会。
还可以提及的是,可以广泛地理解最高得分的定义,即,该得分可以其自身的集合为基础,该集合可以根据云计算环境中的预定义条件而动态地改变。例如,最高得分的状态提供者实际上可以是已经示出其性能最高(尤其是在过去的执行期间)的状态提供者,即,特定状态提供者服务在最短时间量内返回状态。在另一种情况下,可以选择(根据另一规则)具有与所选择的SLA和/或质量要求的集合相兼容的最佳跟踪记录的状态提供者服务,等等。
附图说明
应当注意,本公开的实施例是参考不同的主题来描述的。特别地,参考方法类型权利要求来描述一些实施例,而参考装置类型权利要求来描述其他实施例。然而,本领域技术人员将从以上和以下描述中了解到,除非另外指出,除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间的任何组合,特别是方法类型权利要求的特征与装置类型权利要求的特征之间的任何组合,也被认为是在本文件内公开的。
从下文将描述的实施例的示例中,本公开的以上定义的方面和另外的方面是显而易见的并且参考实施例的示例进行解释,但是本公开不限于此。
本申请中包括的附图并入说明书中并形成说明书的一部分。附图示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图是某些实施例的说明,而不是限制本公开。
图1示出了用于在云服务环境中控制状态更新的计算机实现的方法的实施例的框图。
图2示出了支持这里提出的概念的相关单元和所选通信路径的实施例的框图。
图3示出了这里提出的概念的核心组件之间的消息流的实施例的图。
图4示出了用于在云服务环境中控制状态更新的状态控制系统的实施例的框图。
图5示出了包括根据图4的状态控制系统的计算系统的实施例。
图6示出了其中可以部署所公开的概念的至少部分的云计算环境。
图7是示出根据本公开的一些实施例的云计算机环境的示意图。
具体实施方式
在本说明书的上下文中,可以使用以下惯例、术语和/或表达:
术语“状态”(特别是微服务的服务的状态)可以被定义为计算系统中的服务或应用或进程的最后已知或当前状态。服务方面的状态可以进一步被详细描述为服务的变量或参数的当前值,并且当执行应用时状态可以改变。
术语“有状态”可以表示通常可以在任何时间维持其状态的应用或服务。相反,无状态应用或服务可以是完全自包含的,并且数据和执行事务边界与应用或服务的起点和端点一致。因此,如果无状态服务再次启动,则可能没有关于其先前存在期的任何存储,即,没有关于先前执行和所使用的任何变量的数据。
术语“服务”在这里可以表示使得能够访问一个或多个能力和/或资源的机制,其中可以使用规定的接口来提供访问,并且可以与由相关服务描述所指定的约束和/或策略相一致地来运用该访问。有时,软件技术被用于开发面向服务架构(SOA)结构风格的最末端的微服务。在这种情况下,应用可以被布置为松散耦合的服务的集合。如果与更经典的SOA计算环境相比,在微服务体系结构中,服务是更细粒度的并且协议是更轻量级的。在本文档的上下文中,术语“服务”和“微服务”可以互换地使用。
术语“状态提供者管理服务”可以表示在启用目前为止的无状态服务的状态管理的上下文中的新功能。因此,无状态服务在其功能中也可被宣告为变为有状态的,而无需改变无状态服务。无状态服务的状态可以独立于无状态服务之外的其他服务由状态提供者服务来管理。可以由相关的状态提供者管理服务来管理状态提供者服务的集合。其可以配备有用户接口(UI)220或API(应用编程接口),以便定义、改变或删除状态提供者定义。通常,状态提供者定义至少包括相关服务的所需要的输入变量和输出变量。在至少一些实施例中,对于一个状态提供者定义,可以存在多于一个状态提供者服务。因此,可以调用多于一个的状态提供者服务,并且可以并行地执行多于一个的状态提供者服务。
术语“状态提供者注册表”可以由状态提供者管理服务来管理和操纵,即,可以定义、改变或删除新的条目。因此,状态提供者注册表可以提供用于注册、查询、到期注册和更新状态提供者服务的API。
术语“状态提供者服务”在这里可以由状态提供者规范或状态提供者定义来定义,其存储在状态提供者注册表中并且由状态提供者管理服务来管理。由此,状态提供者定义可以确定状态提供者服务的细节,例如,所需要的输入变量(其可以根据状态提供者服务匹配服务的相关要求)以及用于确保服务的状态的持久存储的输出变量。
作为示例,z():id,*可以定义状态提供者服务z,其不依赖于其他状态或状态提供者服务,并且其可以提供针对所有服务和状态提供者服务(因此通配符“*”)的状态变量“id”。
作为另一个示例,y(id):名称、地址、x可以定义状态提供者服务y(现在其取决于状态“id”,将由另一状态提供者提供),其提供遵守服务规范“x”的服务和状态提供者的服务的状态变量“名称”和“地址”,其中x可以是关于服务名称的正归表达。
术语“元数据”(特别是状态提供者服务的特定元数据)可以指示所讨论的状态提供者服务的特定特性。元数据可以涉及性能指示符、质量参数、特殊服务级别协议、提供者、运营状态提供者服务和/或状态提供者服务具有的其他行为特性。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
如本领域已知的,术语“云计算”和等同地术语“云服务环境”在该上下文中可以被解释为用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的方便的按需网络访问的模型,可配置计算资源可以以最小的管理努力或服务提供者交互来快速供应和释放。该云模型提升了可用性,并且由至少五个特性、至少三个服务模型和至少四个部署模型组成。
云计算的基本特征包括:
(i)按需自助:消费者可以单方面地自动地根据需要提供计算能力,例如服务器时间和网络存储,而不需要与每个服务提供者进行人工交互。
(ii)广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
(iii)资源池化:提供者的计算资源被集中以使用具有不同的物理和虚拟资源的多租户模型来服务多个消费者,根据消费者需求来动态地分配和重新分配。存在位置无关的意义,因为客户通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
(iv)快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
(v)测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监测、控制和报告资源使用,从而为所利用服务的提供者和消费者提供透明度。
用于云计算的服务模型包括:
(i)云软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
(ii)云平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供者支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
(iii)云基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对所选联网组件(例如,主机防火墙)的有限控制。
用于云计算的部署模型包括:
(i)私有云。云基础设施仅由组织操作。它可以由组织或第三方管理,并且可以存在于驻地或异地。
(ii)社区云。云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于内部或外部。
(iii)公共云。云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
(iv)混合云。云基础设施是两个或更多云(私有、共同体或公共)的组合,该两个或更多云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
可以注意到,云软件通过以无状态(例外)、低耦合、模块性和语义互操作性为焦点的面向服务来充分利用云范例。
下面,将给出附图的详细描述。图中的所有说明都是示意性的。首先,给出了所公开的用于在云服务环境中控制状态更新的计算机实现的方法的实施例的框图。然后,将描述用于控制云服务环境中的状态更新的存储控制系统的实施例以及其它实施例。
图1示出了用于在云服务环境中控制状态更新的计算机实现的方法100的实施例的框图。方法100包括由状态提供者管理服务在状态提供者注册表中维护102一组状态提供者定义,该状态提供者管理服务也可被表示为状态管理器。每个状态提供者定义至少包括所需要的一组输入变量定义(在特殊情况下,该组输入变量定义可以仅包括一个输入变量定义)、一组输出变量定义(这里也可以是一个输出变量定义的集合)和相关元数据。一组输出变量可以被看作在其执行终点处的服务的状态。
方法100还包括:在调用服务时,确定104所调用的服务所需要的一组输入变量定义。关于所需要的输入变量的信息可以由服务本身传递或从服务本身导出或者从相关的服务或微服务注册表请求。
此外,方法100包括由状态提供者管理服务接收106所确定的一组输入变量定义,由状态提供者管理服务通过参考状态提供者注册表来选择108状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义(在此也可以是仅一个定义)兼容,以及确定110与所选择的状态提供者定义所匹配的一组状态提供者服务(同样的,仅1是可能的)。
接下来,方法100包括使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据对所确定的一组状态提供者服务进行评分112,调用114得分最高的状态提供者服务(特别是根据预定规则)由此生成状态数据,并将状态数据传递116到所调用的服务。这样,通过设计的无状态的服务或微服务的可以获得被注入状态,从而保留无状态执行的益处,并且还获得有状态行为的益处。
图2示出了支持这里提出的概念的相关单元和所选择的通信路径的实施例的框图200。
首先,可提及调用服务、微服务或程序202,其是请求执行服务208的源。可以由服务注册表和相关控制机制(这里都未示出)管理和控制服务和/或微服务。然而,可以由包括状态管理器206或换言之状态提供者管理服务206的请求代理204来截取和/或控制对服务208的请求。
状态提供者管理服务206可以访问状态提供者注册表210中的状态提供者定义。可以由性能监测器216连续地或偶发地监测状态提供者服务的性能、质量和行为等的测量数据,该性能监测器也可以控制其它性能日志218的存储。另外,状态提供者管理服务206可以配备有注册表UI(用户接口)220,以便能够实现在服务提供者注册表中的条目的手动驱动定义,或者配备有API,以便能够使系统管理工具(未示出)维护服务提供者注册表210中的条目。
状态提供者管理服务206可以根据来自状态提供者注册表210的定义来调用特定的和匹配的状态提供者服务212。此外,可从元数据导出的、也存储在状态提供者注册表210中的预定义规则214可以影响对与状态提供者定义相关的一个或多个状态提供者服务212的选择。
图3示出了这里提出的概念的核心组件之间的消息流的实施例的图300。消息流反映了在图2的上下文中讨论的实施例的功能,过程流开始于来自客户端应用302的请求312(比较202,图2)。该请求312到达具有状态管理器或状态提供者管理服务304的请求代理。这向状态提供者注册表306查询314适当的状态提供者服务。状态提供者注册表306用一个或多个状态提供者的序列来响应316。接下来,状态提供者管理服务304调用318状态提供者服务308的序列或一个状态提供者服务308。一个或多个状态提供者服务308返回320持久存储的状态。基于这一点,即利用状态数据,由请求代理利用现在可用的状态来调用322所请求的服务310(特别是从客户端应用302请求的)。在执行服务310之后,结果被返回324到请求代理304,从该请求代理将结果返回326到最初调用的客户端应用程序302(或服务)。
出于完整性原因,图4示出了用于在云服务环境中控制状态更新的状态控制系统400的实施例的框图。状态控制系统400包括状态提供者注册模块402,其适于由状态提供者管理服务单元404维护一组状态提供者定义。由此,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关元数据。
状态控制系统400还包括第一确定装置,特别是第一确定模块406,其适于在调用服务时确定所调用的服务所需要的一组所需要的输入变量定义,其中状态提供者管理服务单元404还适于接收所确定的一组输入变量定义。由此,状态提供者管理服务单元404还适于通过参考状态提供者注册表来选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容。
状态控制系统400还包括:第二确定装置,特别是第二确定模块408,其适于确定与所选择的状态提供者定义相匹配的一组状态提供者服务;评分装置,特别是评分单元410,其适于使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分;调用装置,特别是调用单元412,其适于调用得分最高的状态提供者服务,从而生成状态数据;以及最后但并非最不重要的发送装置,特别是发送器414,其适于将状态数据传递到所调用的服务。
应当注意,所有提到的装置、单元、模块等均可以实现为硬件控制器,具体地,实现为状态提供者注册模块402、状态提供者管理服务单元404、第一确定模块406、第二确定模块408、评分单元410、调用单元412和发送器414。这些硬件实现的功能单元可以经由电连接416(单独的线或总线系统)彼此链接,以便交换消息,如在图3的上下文中讨论的。
在转到图5之前,在图6中示出了云计算环境,其中可以部署所公开的概念的至少部分。
图6示出了云计算环境600,其中可以部署所公开的概念的至少部分。示出了由云计算环境提供的一组功能抽象层。可预先理解,图6中所示的组件、层和功能仅旨在说明,并且本公开的实施例不限于此。如所描绘的,提供了以下层和相应的功能:硬件和软件层602包括硬件和软件组件。硬件组件的示例包括:主机604;服务器606;基于RISC(精简指令集计算机)架构的服务器608;刀片服务器610;存储设备612;网络614和网络组件614。在一些实施例中,软件组件包括网络应用服务器软件616和/或数据库软件618。
虚拟化层620提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器622;虚拟存储624;虚拟网络626,包括虚拟专用网络;虚拟应用和操作系统628;以及虚拟客户端630。在一个示例中,管理层632可以提供下面描述的功能。资源供应634提供对被用来在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价636提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的计费或计价。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户638为消费者和系统管理员提供对云计算环境的访问。服务级别管理640提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(SLA)计划和履行642提供了对云计算资源的预先安排和采购,其中根据SLA预期未来需求。
工作负载层644提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制和导航646;软件开发和生命周期管理648;虚拟教室教育传送650;数据分析处理652;事务处理654;以及状态控制模块656(比较图4,400)。
本公开的实施例可以与几乎任何类型的计算机一起实现,而不管平台是否适于存储和/或执行程序代码。图5作为示例示出了适于执行与所提出的方法相关的程序代码的计算系统500。
计算系统500仅是合适的计算机系统的一个示例,并且不旨在对本文所描述的本公开的实施例的使用范围或功能提出任何限制,无论计算机系统500是否能够被实现和/或执行上文所阐述的任何功能。在计算机系统500中,存在可与众多其它通用或专用计算系统环境或配置一起操作的组件。适合与计算机系统/服务器500一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机系统、大型机系统、以及包括上述系统或设备中的任一个的分布式云计算环境及其等效物。
计算机系统/服务器500可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统500执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器500可以在分布式云计算环境中实践,其中由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可以位于本地和远程计算机系统存储介质中,包括存储器存储设备。
如图所示,以通用计算设备的形式示出计算机系统/服务器500。计算机系统/服务器500的组件可以包括但不限于一个或多个处理器或处理单元502、系统存储器504以及将包括系统存储器504的各种系统组件耦合到处理器502的总线506。总线506表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。计算机系统/服务器500通常包括各种计算机系统可读介质。该介质可以是可由计算机系统/服务器500访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器504可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)508和/或高速缓冲存储器510。计算机系统/服务器500还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统512可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质的可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线506。如下文将进一步描绘及描述,存储器504可包含具有经配置以执行本发明的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块516的程序/实用程序,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制地存储在存储器504中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块516通常执行如本文所述的本公开的实施例的功能和/或方法。例如,程序模块516可由一个或多个处理器502执行以实现状态提供者注册表模块402、状态提供者管理服务单元404、第一确定模块406、第二确定模块408、评分单元410、调用单元412和发送器414中的一个或多个。
计算机系统/服务器500还可以与一个或多个外部设备518通信,诸如键盘、指示设备、显示器520等;一个或多个设备,其使得用户能够与计算机系统/服务器500交互;和/或使计算机系统/服务器500能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口514发生。此外,计算机系统/服务器500可以经由网络适配器522与一个或多个网络通信,网络诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)。如所描绘的,网络适配器522可以经由总线506与计算机系统/服务器500的其他组件通信。应当理解,尽管未示出,但是可以结合计算机系统/服务器500使用其他硬件和/或软件组件。示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据存档存储系统等。
现在参考图7,提供了示出示例云计算网络700的示意图。如图所示,云计算网络700包括具有一个或多个云计算节点710的云计算环境750,云消费者使用的本地计算设备可以与云计算节点通信。这些本地计算设备的示例包括但不限于个人数字助理(PDA)或蜂窝电话754A、台式计算机754B、膝上型计算机754C和/或汽车计算机系统754N。节点710内的各个节点还可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算网络700提供基础设施、平台和/或软件即服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图7中所示的计算设备754A-N的类型仅是说明性的,并且云计算环境750可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
已经出于说明的目的呈现了对本公开的各种实施例的描述,但是其并非旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
本公开可以被实现为系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),计算机可读程序指令用于使处理器执行本公开的方面。
该介质可以是用于传播介质的电子、磁、光、电磁、红外或半导体系统。计算机可读介质的示例可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)、DVD和蓝光盘。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言(例如Smalltalk、C++等)以及常规的过程式编程语言(例如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上作为独立软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供者通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本公开的方面。
本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的方面。将理解,可以由计算机可读程序指令来实现流程图和/或框图的每个框以及流程图和/或框图中的框的组合。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或另一设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或另一设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和/或框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
本文所使用的术语仅用于描述特定实施例的目的,且不希望限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
在以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了本公开的描述,但是其不旨在是穷尽的或限于所公开的形式的公开。在不背离本公开的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有各种修改的各种实施例的本公开,如适合于预期的特定使用。
示例实施例
示例1包括计算机实现的方法,其用于控制云服务环境中的状态更新。该方法包括由状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据。该方法还包括,在调用服务时确定由所调用的服务所需要的一组输入变量定义,由状态提供者管理服务接收所确定的一组输入变量定义;由状态提供者管理服务通过参考状态提供者注册表来选择状态提供者定义,其中所选择的状态提供者定义将与所接收的一组输入变量定义兼容;确定与所选择的状态提供者定义相匹配的一组状态提供者服务;使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务进行评分;调用得分最高的状态提供者服务,从而生成状态数据;以及将状态数据传递到所调用的服务。
示例2包括根据示例1的方法,还包括由状态提供者管理服务在元数据库中针对每个状态提供者服务存储调用计数器,在每次调用状态提供者服务时由状态提供者管理服务递增该调用计数器。
示例3包括根据示例1或2中任一项的方法,还包括在完成服务的执行时,将服务的输出值返回到状态提供者服务,从该状态提供者服务接收状态数据。
示例4包括根据示例3的方法,还包括由状态提供者服务持久地存储所接收的状态数据,从该状态提供者服务接收状态数据。
示例5包括根据示例1-4中任一项的方法,其中,所调用的状态提供者服务成为第一状态提供者服务,方法还包括在确定所调用的第一状态提供者服务需要第二状态时;经由状态提供者管理服务调用第二状态提供者服务;确定用于第二状态提供者服务的相关的一组输入变量;确定一组匹配的第二状态提供者服务;对该组匹配的第二状态提供者服务进行评分;选择得分最高的第二状态提供者服务,从而生成第二状态数据;将第二状态数据传递到第二状态提供者服务;以及返回第二状态提供者服务的执行的输出值作为第二状态。
示例6包括根据示例1-5中任一项的方法,其中对所确定的一组状态提供者服务进行评分导致产生相同分数值的一组得分最高的状态提供者服务,方法还包括并行调用该组得分最高的状态提供者服务。
示例7包括根据示例6的方法,还包括测量执行该组得分最高的状态提供者服务的性能值,以及将相应的性能值存储在相应的状态提供者服务的元数据中。
示例8包括根据示例1-7中任一项的方法,其中,确定一组状态提供者服务还包括根据关于元数据的预定义的规则来确定匹配的状态提供者服务。
示例9包括根据示例1-8中任一项的方法,其中,确定一组状态提供者服务还包括根据云计算环境中的当前工作负载简档来确定匹配的状态提供者服务。
示例10包括根据示例1-9中任一项的方法,其中,根据轮询调度(round-robin)原则来确定得分最高的状态提供者服务。
示例11包括状态控制系统,其用于控制云服务环境中的状态更新。状态控制系统包括状态提供者管理服务模块,其适于通过状态提供者管理服务单元维护一组状态提供者定义,其中每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据。该状态控制系统还包括第一确定装置,其适于在调用服务时确定所调用的服务所需要的一组输入变量定义。状态提供者管理服务模块还适于接收所确定的一组输入变量定义。状态提供者管理服务单元还适于通过参考状态提供者注册表来选择状态提供者定义。所选择的状态提供者定义将与所接收的一组输入变量定义兼容。状态控制系统还包括第二确定装置,其适于确定与所选择的状态提供者定义相匹配的一组状态提供者服务;评分装置,适于使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分;调用装置,其适于调用得分最高的状态提供者服务,从而生成状态数据;以及发送装置,其适于将状态数据传递到所调用的服务。
示例12包括根据示例11的状态控制系统,其中,状态提供者管理服务模块还适于在元数据库中针对每个状态提供者服务存储调用计数器,在每次调用状态提供者服务时由状态提供者管理服务递增调用计数器。
示例13包括根据示例11或12中任一项的状态控制系统,还包括返回装置,其适于在完成服务的执行时将服务的输出值返回给状态提供者服务,从该状态提供者服务接收状态数据。
示例14包括根据示例13的状态控制系统,还包括存储装置,其适于持久地存储由状态提供者服务所接收的状态数据,从该状态提供者服务接收状态数据。
示例15包括根据示例11至14中任一项的状态控制系统,其中,所调用的状态提供者服务成为第一状态提供者服务,并且其中,状态控制系统还适于在确定所调用的第一状态提供者服务需要第二状态时,经由状态提供者管理服务模块调用第二状态提供者服务。状态控制系统还适于确定用于第二状态提供者服务的相关的一组输入变量;确定一组匹配的第二状态提供者服务;对该组匹配的第二状态提供者服务进行评分;选择得分最高的第二状态提供者服务,从而生成第二状态数据;将第二状态数据传递到第二状态提供者服务;以及返回第二状态提供者服务的执行的输出值作为第二状态。
示例16包括根据示例11至15中任一项的状态控制系统,其中,评分装置还适于对所确定的一组状态提供者服务评分导致产生相同的得分值的一组得分最高的状态提供者服务。状态控制系统还被配置为并行地调用该组得分最高的状态提供者服务。
示例17包括根据示例16的状态控制系统,还包括测量装置,其适于测量用于执行该组得分最高的状态提供者服务的性能值,并且适于将相应的性能值存储在相应的状态提供者服务的元数据中。
示例18包括根据示例11至17中任一项的状态控制系统,其中,适于确定一组状态提供者服务的第二确定装置还适于根据元数据中的预定义的规则来确定匹配的状态提供者服务。
示例19包括根据示例11至18中的任一项的状态控制系统,其中,第二确定装置还适于根据云计算环境中的当前工作负载简档来确定匹配的状态提供者服务。
示例20包括计算机程序产品,其用于控制云服务环境中的状态更新,该计算机程序产品包括具有与其一起体现的程序指令的计算机可读存储介质,程序指令可由一个或多个计算系统或控制器执行以使一个或多个计算系统:通过状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据;在调用服务时,确定由所调用的服务所需要的一组输入变量定义;由状态提供者管理服务接收所确定的一组输入变量定义;以及由状态提供者管理服务通过参考状态提供者注册表来选择状态提供者定义。所选择的状态提供者定义将与所接收的一组输入变量定义兼容。程序指令进一步可由一个或多个计算系统或控制器执行,以确定与所选择的状态提供者定义相匹配的一组状态提供者服务;使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据对所确定的一组状态提供者服务评分;调用得分最高的状态提供者服务,从而生成状态数据;并将状态数据传递给所调用的服务。
Claims (20)
1.一种用于控制云服务环境中的状态更新的计算机实现的方法,所述方法包括:
通过状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据;
在调用服务时,确定所调用的服务所需要的一组输入变量定义;
由所述状态提供者管理服务接收所确定的一组输入变量定义;
由所述状态提供者管理服务通过参考所述状态提供者注册表来选择状态提供者定义,其中,所选择的状态提供者定义将与所接收的一组输入变量定义兼容;
确定与所选择的状态提供者定义相匹配的一组状态提供者服务;
使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分;
调用得分最高的状态提供者服务,从而生成状态数据;以及
将所述状态数据传递到所调用的服务。
2.根据权利要求1所述的方法,还包括:
由所述状态提供者管理服务在元数据库中针对每个状态提供者服务存储调用计数器,在每次调用所述状态提供者服务时由所述状态提供者管理服务递增所述调用计数器。
3.根据权利要求1或2所述的方法,还包括:
在完成所述服务的执行时,将所述服务的输出值返回到所述状态提供者服务,从所述状态提供者服务接收所述状态数据。
4.根据权利要求1至3中的一项所述的方法,还包括:
由所述状态提供者服务持久地存储所接收的状态数据,从所述状态提供者服务接收所述状态数据。
5.根据权利要求1至4中的一项所述的方法,其中,所调用的状态提供者服务成为第一状态提供者服务,所述方法还包括:
在确定所调用的第一状态提供者服务需要第二状态时:
经由所述状态提供者管理服务调用第二状态提供者服务;
确定用于所述第二状态提供者服务的相关的一组输入变量;
确定一组匹配的第二状态提供者服务;
对所述一组匹配的第二状态提供者服务评分;
选择得分最高的第二状态提供者服务,从而生成第二状态数据;
将所述第二状态数据传递到所述第二状态提供者服务;以及
返回所述第二状态提供者服务的执行的输出值作为所述第二状态。
6.根据权利要求1至5中的一项所述的方法,其中,对所确定的一组状态提供者服务评分导致产生相同的得分值的一组得分最高的状态提供者服务,所述方法还包括:
并行地调用所述一组得分最高的状态提供者服务。
7.根据权利要求1至6中的一项所述的方法,还包括:
测量执行所述一组得分最高的状态提供者服务的性能值;以及
将相应的性能值存储在相应的状态提供者服务的元数据中。
8.根据权利要求1至7中的一项所述的方法,其中,确定所述一组状态提供者服务还包括:
根据关于所述元数据的预定义的规则来确定匹配的状态提供者服务。
9.根据权利要求1至8中的一项所述的方法,其中,确定所述一组状态提供者服务还包括:
根据所述云计算环境中的当前工作负载简档来确定匹配的状态提供者服务。
10.根据权利要求1至9中的一项所述的方法,其中,根据轮询调度原则来确定得分最高的状态提供者服务。
11.一种用于控制云服务环境中的状态更新的状态控制系统,所述状态控制系统包括:
状态提供者注册表模块,其适于通过状态提供者管理服务单元维护一组状态提供者定义,其中,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据;
第一确定装置,其适于在调用服务时确定所调用的服务所需要的一组输入变量定义;
其中,所述状态提供者管理服务模块还适于接收所确定的一组输入变量定义;
其中,所述状态提供者管理服务单元还适于通过参考所述状态提供者注册表来选择状态提供者定义,其中,所选择的状态提供者定义将与所接收的一组输入变量定义兼容;
第二确定装置,其适于确定与所选择的状态提供者定义相匹配的一组状态提供者服务;
评分装置,其适于使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分;
调用装置,其适于调用得分最高的状态提供者服务,从而生成状态数据;以及
发送装置,其适于将所述状态数据传递到所调用的服务。
12.根据权利要求11所述的状态控制系统,其中,所述状态提供者管理服务模块还适于在元数据库中针对每个状态提供者服务存储调用计数器,在每次调用所述状态提供者服务时由所述状态提供者管理服务递增所述调用计数器。
13.根据权利要求11或12所述的状态控制系统,还包括:
返回装置,其适于在完成所述服务的执行时,将所述服务的输出值返回给所述状态提供者服务,从所述状态提供者服务接收所述状态数据。
14.根据权利要求11至13中的一项所述的状态控制系统,还包括:
存储装置,其适于由所述状态提供者服务持久地存储所接收的状态数据,从所述状态提供者服务接收所述状态数据。
15.根据权利要求11至14中的一项所述的状态控制系统,其中,所调用的状态提供者服务成为第一状态提供者服务,并且其中,所述状态控制系统还适于:
在确定所调用的第一状态提供者服务需要第二状态时:
经由所述状态提供者管理服务模块调用第二状态提供者服务;
确定用于所述第二状态提供者服务的相关的一组输入变量;
确定一组匹配的第二状态提供者服务;
对所述一组匹配的第二状态提供者服务评分;
选择得分最高的第二状态提供者服务,从而生成第二状态数据;
将所述第二状态数据传递到所述第二状态提供者服务;以及
返回所述第二状态提供者服务的执行的输出值作为所述第二状态。
16.根据权利要求11至16中的一项所述的状态控制系统,其中,所述评分装置还适于对所确定的一组状态提供者服务评分导致产生相同的得分值的一组得分最高的状态提供者服务,由此:
并行地调用所述一组得分最高的状态提供者服务。
17.根据权利要求16所述的状态控制系统,还包括:
测量装置,其适于测量执行所述一组得分最高的状态提供者服务的性能值,并且适于将相应的性能值存储在相应的状态提供者服务的元数据中。
18.根据权利要求11至17中的一项所述的状态控制系统,其中,适于确定一组状态提供者服务的所述第二确定装置还适于:
根据所述元数据中的预定义的规则来确定匹配的状态提供者服务。
19.根据权利要求11至18中的一项所述的状态控制系统,其中,所述第二确定装置还适于:
根据所述云计算环境中的当前工作负载简档来确定匹配的状态提供者服务。
20.一种计算机程序产品,用于控制云服务环境中的状态更新,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令能够由一个或多个计算系统执行以使所述一个或多个计算系统:
通过状态提供者管理服务在状态提供者注册表中维护一组状态提供者定义,每个状态提供者定义包括一组所需要的输入变量定义、一组输出变量定义和相关的元数据;
在调用服务时,确定所调用的服务所需要的一组输入变量定义;
由所述状态提供者管理服务接收所确定的一组输入变量定义;
由所述状态提供者管理服务通过参考所述状态提供者注册表来选择状态提供者定义,其中,所选择的状态提供者定义将与所接收的一组输入变量定义兼容;
确定与所选择的状态提供者定义相匹配的一组状态提供者服务;
使用与所确定的一组状态提供者服务的状态提供者定义相关的元数据来对所确定的一组状态提供者服务评分;
调用得分最高的状态提供者服务,从而生成状态数据;以及
将所述状态数据传递给所调用的服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/823,516 | 2020-03-19 | ||
US16/823,516 US11347545B2 (en) | 2020-03-19 | 2020-03-19 | Adaptive state management for stateless services |
PCT/IB2021/051112 WO2021186259A1 (en) | 2020-03-19 | 2021-02-11 | Adaptive state management for stateless services |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115298653A true CN115298653A (zh) | 2022-11-04 |
Family
ID=77748140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180021976.5A Pending CN115298653A (zh) | 2020-03-19 | 2021-02-11 | 用于无状态服务的适应状态管理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11347545B2 (zh) |
JP (1) | JP2023517565A (zh) |
KR (1) | KR20220127327A (zh) |
CN (1) | CN115298653A (zh) |
AU (1) | AU2021236960B2 (zh) |
DE (1) | DE112021000619T5 (zh) |
GB (1) | GB2609575A (zh) |
WO (1) | WO2021186259A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230221995A1 (en) * | 2022-01-10 | 2023-07-13 | Tangoe Us, Inc. | Cloud application threshold based throttling |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230681A1 (en) | 2002-12-06 | 2004-11-18 | John Strassner | Apparatus and method for implementing network resources to provision a service using an information model |
US7730123B1 (en) | 2005-12-20 | 2010-06-01 | At&T Intellectual Property Ii, Lp | Software application implemented using services from a services repository generated using a target services roadmap |
US8560563B2 (en) | 2008-07-09 | 2013-10-15 | International Business Machines Corporation | Apparatus and method of semantic service correlation system |
US9749387B2 (en) | 2009-08-13 | 2017-08-29 | Sap Se | Transparently stateful execution of stateless applications |
US9483312B2 (en) | 2010-08-16 | 2016-11-01 | International Business Machines Corporation | Locating service endpoints from a service registry |
CN106648024B (zh) | 2010-11-18 | 2020-05-22 | 谷歌有限责任公司 | 计算对象的上下文历史 |
US9934214B2 (en) * | 2014-12-11 | 2018-04-03 | International Business Machines Corporation | DOM snapshot capture |
US9967351B2 (en) | 2015-01-31 | 2018-05-08 | Splunk Inc. | Automated service discovery in I.T. environments |
US10498834B2 (en) | 2015-03-30 | 2019-12-03 | [24]7.ai, Inc. | Method and apparatus for facilitating stateless representation of interaction flow states |
US10277488B2 (en) * | 2016-09-09 | 2019-04-30 | International Business Machines Corporation | System and method for management and recovery of multi-service web transactions |
US10275235B2 (en) * | 2017-09-18 | 2019-04-30 | International Business Machines Corporation | Adaptable management of web application state in a micro-service architecture |
-
2020
- 2020-03-19 US US16/823,516 patent/US11347545B2/en active Active
-
2021
- 2021-02-11 WO PCT/IB2021/051112 patent/WO2021186259A1/en active Application Filing
- 2021-02-11 KR KR1020227029377A patent/KR20220127327A/ko unknown
- 2021-02-11 GB GB2215190.6A patent/GB2609575A/en active Pending
- 2021-02-11 JP JP2022554268A patent/JP2023517565A/ja active Pending
- 2021-02-11 CN CN202180021976.5A patent/CN115298653A/zh active Pending
- 2021-02-11 AU AU2021236960A patent/AU2021236960B2/en active Active
- 2021-02-11 DE DE112021000619.3T patent/DE112021000619T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2609575A (en) | 2023-02-08 |
WO2021186259A1 (en) | 2021-09-23 |
AU2021236960A1 (en) | 2022-09-01 |
GB202215190D0 (en) | 2022-11-30 |
KR20220127327A (ko) | 2022-09-19 |
US20210294645A1 (en) | 2021-09-23 |
JP2023517565A (ja) | 2023-04-26 |
AU2021236960B2 (en) | 2023-12-14 |
DE112021000619T5 (de) | 2022-11-10 |
US11347545B2 (en) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157318B2 (en) | Optimizing timeouts and polling intervals | |
US9912759B2 (en) | Dynamically generating solution stacks | |
US10044837B2 (en) | Generation and distribution of named, definable, serialized tokens | |
US20150142978A1 (en) | Management of cloud provider selection | |
US10805228B2 (en) | Injection of information technology management process into resource request flows | |
US11582285B2 (en) | Asynchronous workflow and task api for cloud based processing | |
US20230009930A1 (en) | Continuous Liveness and Integrity of Applications During Migration | |
US10657136B2 (en) | Searching data on a synchronization data stream | |
US20230164210A1 (en) | Asynchronous workflow and task api for cloud based processing | |
CN115298653A (zh) | 用于无状态服务的适应状态管理 | |
US20230138727A1 (en) | Carbon footprint-based control of cloud resource consumption | |
US11397577B2 (en) | Managing parallel microservice requests | |
US11487750B2 (en) | Dynamically optimizing flows in a distributed transaction processing environment | |
CN115443642A (zh) | 跨规则引擎的实例的规则分发 | |
US11829741B2 (en) | Instantiated deployment of microservices | |
US11782971B2 (en) | Static and dynamic NBMP function image retrieval and scale ranking | |
US20230409628A1 (en) | Static and dynamic nbmp function image retrieval and scale ranking |
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 |