在服务器平台上启动原子任务时的控制的制作方法

文档序号:12185323阅读:209来源:国知局
在服务器平台上启动原子任务时的控制的制作方法与工艺

计算系统和相关联的网络已经彻底改变了人们工作、娱乐和通信的方式。几乎我们生活中的每个方面都被计算系统以某种方式影响。计算系统现在主要地被连接至网络和互联网,以便使得能够进行广泛的通信。这样的计算网络的巨大能力已经导致通过网络提供的各种服务的增加。网络服务的示例包括网站、电子邮件、消息发送、社交网络、数据库管理、虚拟化、日程管理、存储、策略管理,等等。

在一个计算模型中,平台托管多个租户(例如,组件程序),每个租户向租户的提供者的消费者提供其自己的服务。平台例如可以是服务器平台,并且可以被一个或多个服务器支持。平台也可以是云平台,其中平台具有数据中心的所有资源。云平台可以是私有云、公有云,或者表示每种云中的一些的混合云。

在任意情况下,在托管多个租户时,平台采用多种防护来确保每个租户的数据被保护,并且确保足够的计算资源被分配给每个租户。平台还了解与每个租户相关联的工作流。在每个租户进行其对应工作流时,平台确保每个工作流被遵循并且工作流的各种任务以及时的方式被成功完成。因此,工作流管理是平台的重要任务,特别是在管理多个租户时。

这里请求保护的主题并不局限于解决任意缺陷或者仅在诸如以上描述的环境的环境中进行操作的实施例。相反,该

背景技术:
仅被提供以说明这里描述的一些实施例可以被实践的一种示例性技术领域。



技术实现要素:

这里描述的至少一些实施例涉及其上运行多个租户的服务器平台(诸如云平台)的操作。具体地,这里描述的实施例帮助服务器平台及其租户中的一个或多个对原子任务进行协调,该原子任务要由服务器平台执行,但是至少具有对租户的潜在影响。

具体地,服务器平台向特定租户给予时间帧,租户自己可以在时间帧中同意一个或多个任务中的每一个的启动。租户毕竟可以具有如下信息,该信息无法被服务器平台获取,并且从租户的角度来看可以与何时可能合适启动特定任务相关。服务器平台可以通过对时间帧施加时间约束而保护其自己免受延迟动作的影响,使得在时间帧过去之后,租户不再具有对触发特定任务的启动的控制,而是服务器平台负责定时特定任务的启动。因此,租户被提供有对由服务器平台执行的任务的启动进行控制的灵活度,而服务器平台维持一定级别的控制以保护其资源并且对各种租户的需求进行平衡。

该发明内容并非意在标识请求保护的主题的关键特征或必要特征,也并非意在当确定请求保护的主题的范围时被用作辅助。

附图说明

为了描述以上引用的以及可以获得其它的优势和特征的方式,将通过参考附图而给出对各种实施例的更具体描述。要理解的是,这些附图仅描绘了样本实施例,并且因此并非要被认为对本发明的范围进行限制,实施例将通过使用附图而利用附加的特性和细节进行描述和解释。

图1抽象地图示了其中可以采用这里描述的一些实施例的计算系统;

图2图示了其中可以采用描述的原理的环境,该环境包括其中多个租户运行的服务器平台;

图3图示了用于在包括至少一个租户的服务器平台中调度特定原子任务的方法的流程图;

图4图示了根据这里描述的原理的任务和时间帧的指定;以及

图5图示了根据这里描述的原理的补充信息的示例。

具体实施方式

这里描述的至少一些实施例涉及其上运行多个租户的服务器平台(诸如云平台)的操作。具体地,这里描述的实施例帮助服务器平台及其租户中的一个或多个协调原子任务,该原子任务要由服务器平台执行,但是至少具有对租户的潜在影响。

具体地,服务器平台向特定租户给予时间帧,租户自己可以在时间帧中同意一个或多个任务中的每一个的启动。租户毕竟可以具有如下信息,该信息无法被服务器平台获取,并且从租户的角度来看可以与何时可能合适启动特定任务相关。服务器平台可以通过对时间帧施加时间约束而保护其自己免受延迟动作的影响,使得在时间帧过去之后,租户不再具有对触发特定任务的启动的控制。因此,租户被提供有对由服务器平台执行的任务的启动进行控制的灵活度,而服务器平台维持一定级别的控制以保护其资源并且对各种租户的需求进行平衡。

将关于图1对计算系统的一些介绍性讨论进行描述。然后,将关于后续附图对使用这里描述的原理的支持架构和方法进行描述。

计算系统现在越来越多地采用各种各样的形式。计算系统例如可以是手持设备、电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统,或者甚至是常规上还没有被认为是计算系统的设备。在该描述以及权利要求中,术语“计算年系统”被宽泛地定义为包括任意设备或系统(或者它们的组合),设备或系统包括至少一个物理且有形的处理器,以及其上能够具有可以由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采用任意形式,并且可以取决于计算系统的属性和形式。计算系统可以分布于网络环境之上,并且可以包括多个组成的计算系统。

如图1所示,以其最基本的配置,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的,或者是二者的某种组合。术语“存储器”也可以在这里被用来指代非易失性大容量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如这里使用的,术语“可执行模块”或“可执行组件”可以指代可以在计算系统上执行的软件对象、例程或方法。这里描述的不同组件、模块、引擎和服务器可以被实施为在计算系统上执行的对象或进程(例如,作为单独的线程)。

在以下描述中,参考由一个或多个计算系统执行的动作对实施例进行描述。如果这样的动作以软件来实施,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令,而指引计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及数据的操控。计算机可执行指令(和被操控的数据)可以被存储在计算系统100的存储器104中。计算系统100也可以包含允许计算系统100例如通过网络110而与其它消息处理器进行通信的通信信道108。

这里描述的实施例可以包括或利用包括计算机硬件的专用或通用计算机,硬件例如以下更详细讨论的一个或多个处理器和系统存储器。这里描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算机系统访问的任意可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种不同种类的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储装置、磁盘存储装置或其它磁性存储设备,或者可以被用来以计算机可执行指令或数据结构的形式存储期望的程序代码工具并且可以被通用或专用计算机访问的任意其它存储介质。

“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间进行传递的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线的、无线的,或者是硬连线或无线的组合)被传送或提供至计算机时,计算机将连接适当地视为传输介质。传输介质可以包括可以被用来以计算机可执行指令或数据结构的形式承载期望的程序代码工具并且可以被通用或专用计算机访问的网络和/或数据链路。以上的组合也可以被包括在计算机可读介质的范围内。

另外,在到达各种计算机系统组件时,以计算机可执行指令或数据结构的形式的程序代码工具可以自动从传输介质被传递至计算机存储介质(或者反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且随后最终被传递至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因此,应当理解的是,计算机存储介质可以被包括在也(或者甚至主要地)利用传输介质的计算机系统中。

计算机可执行指令例如包括在处理器处执行时使得通用计算机、专用计算机或专用处理设备执行某种功能或功能群组的指令和数据。计算机可执行指令例如可以是二进制数,或者甚至是在被处理器直接执行之前经历某种变换(诸如编译)的指令,诸如中间格式指令(诸如汇编语言)或者甚至源代码。虽然已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但是要理解的是,所附权利要求中限定的主题并非必然限于描述的特征或以上描述的动作。相反,描述的特征和动作是作为实施权利要求的示例形式而被公开。

本领域技术人员将会意识到的是,本发明可以被实践在具有许多类型的计算机系统配置的网络计算环境中,计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程消费者电器、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机,等等。本发明也可以被实践在分布式系统环境中,其中通过网络链接(通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可以位于本地和远程的存储器存储设备中。

图2图示了其中可以采用描述的原理的环境200。环境200包括其中多个租户220运行的服务器平台201。每个租户例如可以是与在环境200中运行服务的服务提供者相关联的软件。例如,服务器平台201可以是单个服务器、多个分布式服务器,或者是构成公有云、私有云或者混合云的云计算环境。服务器平台201可以如以上针对图1的计算系统100描述的被构造,虽然在云计算环境的情况下可能是相当分布式的。

服务器平台201对租户220中的每个的工作流状态保持跟踪,并且以完成每个租户的工作流状态为目标来执行原子任务。随着时间推进,服务器平台201可以启动关于特定租户的工作流,或者该特定租户可以要求工作流被启动。

对于租户启动的工作流,服务器平台201可以与租户进行协调以启动和继续工作流。例如,假设租户确定租户的任务实例中的一些要被更新为新的版本。租户可以将该意图通信至服务器平台201。随后,服务器平台201将该动作返回提出至租户以供同意。将租户请求的动作返回提出至租户以供同意的原因在于,在租户表达意图时,可能不存在任意服务器平台启动动作。截止到服务器平台201准备执行租户启动的动作时,可能存在其它平台启动的动作。因此,此时,租户可能想要在可能潜在地具有更短时间约束的其它待定动作的情况下控制何时升级实例。

服务器平台201具有对工作流状态存储装置211的访问,其有助于关于每个租户跟踪当前活动的工作流以及工作流自己的结构(以便标识在每个工作流中要执行的下一项任务)。

功能强大的服务器平台经常能够托管数百或数千个租户。然而,在所图示的示例中,仅出于简明和清楚的目的,仅图示了三个租户221、222和223。然而,椭圆形224以符号方式表示可以存在在平台内进行操作的任意数量的租户,而并不背离这里描述的原理的精神和范围。因此,这里描述的原理不限于在平台内进行操作的实际数量的租户,并且租户的数量随着租户的增加以及从平台被移除而甚至不是静态的。

这样的租户可以是完全不相关的。例如,一个租户可以为企业提供电子邮件服务,另一个租户可以提供消费者可以在其上全球地订购产品的web站点,而又一个租户可以是迎合动物和宠物关怀的主题的博客服务。服务器平台201维持每个租户之间的适当数据隔离,以便尊重每个租户对数据的所有权和隐私,并且还针对与每个租户相关联的活动工作流的完成而分配适当处理资源。

图3图示了用于在包括至少一个租户的服务器平台中调度特定原子任务的方法300的流程图。方法300的动作中的一些动作由图2的服务器平台201执行(或者可能具体地由控制器210执行),并且被图示在图3的左侧栏中在标题“平台”之下。方法300的动作中的其他动作如在图3的右侧栏中在标题“租户”之下表示的由对应租户(例如,租户221)执行。可能在要执行可以对租户具有影响的新任务时,方法300可以关于给定租户被反复执行。

方法300在平台标识要由服务器平台执行的一项或多项(潜在地多项)原子任务(动作311)时开始。例如,参考图2,在下文中被称为“具体情况示例”的示例中,假设平台201的控制器210确定平台201要执行可以潜在地影响租户211的四项任务,四项任务在下文中被称为任务A、任务B、任务C和任务D。平台可以执行的影响租户的任务的示例包括重启租户的全部或部分在其上进行操作的物理机器,重新初始化运行租户的全部或部分的虚拟机,更新租户的软件组件,更新租户的配置,增加或去除对租户可用的资源,等等。

在一个实施例中,任务由平台控制器210通过对在工作流状态存储装置211中存储的工作流进行评估而被标识。例如,平台控制器210可以针对租户211来评估活动的和新的工作流,并且基于该工作流状态确定接下来是哪一项原子任务。工作流可以就像单项原子任务一样简单,或者可以涉及具有关于它们何时应当或能够执行的一些时间关系的多项原子任务。针对租户211的工作流可以在平台201或租户221的方向上被发起。在一些情况下,为了找到可以影响给定租户的任务,平台控制器210甚至可以对被主动分配给租户的那些工作流以外的工作流进行查看。例如,如果特定任务涉及其上运行有三个虚拟机(每一个虚拟机服务不同的租户)的机器的物理重启,则重启的任务可以被认为对那些租户中的每一个具有影响。在涉及关闭虚拟机的任务的情况下,可能仅由虚拟机运行的租户被确定为受到影响。因此,在该描述和权利要求中,当平台向特定租户提供对于任务的启动的控制时,特定租户可以与一个或多个其它租户分享这样的控制。

针对一些而并非必然全部的任务,平台可以允许被影响的租户对何时启动对应任务具有某种控制。以该方式,租户提供对于对应任务的启动的认可。例如,在具体情况示例中,假设平台210确定任务D要简单地继续进行,而平台确定租户221要对任务A、B和C何时被启动具有某种控制。对于平台确定租户可以对任务的启动具有某种控制的那些任务,平台控制器还标识时间帧,在时间帧中租户可以具有对特定任务的启动的控制(动作312)。该时间帧可以被认为是其后平台可以在任意时间启动任务的超时。

标识的时间帧可以取决于任务对平台以及对租户的紧急性。例如,如果任务要被紧急地执行(诸如在针对任务D的情况下),则平台可以决不会向租户给予控制。然而,对于稍微较不紧急的任务,时间帧相对短。通常,任务对平台越不紧急,时间帧就可以越长。时间帧甚至可以是无限的,在该情况下,租户可以具有关于平台何时启动任务的无拘束的判断。时间帧可以根据租户改变。例如,一些租户可以具有由平台提供的较高级别的服务。这样的租户通常可以被授予用于指示平台启动任务的较长时间帧。

平台随后可以生成一项或多项原子任务的指定(动作313),该一项或多项原子任务要由平台执行,但是至少潜在地影响租户。在关于图2的具体情况示例中,控制器210创建指定并且在该指定内标识任务A、B和C。

控制器还针对每项任务确定时间帧并且将其包括在指定内。例如,可能地针对任务A的时间帧为15分钟、针对任务B的时间帧为15天,并且针对任务C的时间帧为空白(可能隐含地表示没有结束的无限时间帧)。因此,平台控制器210已经确定了其愿意等待15分钟以执行任务A,从而允许租户221在该15分钟的时段内判断何时使平台开始任务A。同样,平台控制器210已经确定了其愿意等待15天以执行任务B,从而允许租户221在该15天的时段内判断何时使平台开始任务B。最后,平台控制器210已经确定了其愿意等待长达租户221想要执行任务C。例如,任务C可能不具有对整体平台的影响,而是仅影响租户221。

包括动作的标识以及任意对应时间帧的指定随后被通信至动作影响的特定租户(动作314)。例如,这可以在单次通信中完成。同样,可选地,平台还提供补充信息(动作315)以帮助特定租户决定何时同意特定任务。例如,在该具体情况示例中,控制器210导致至租户211的标识任务A、B和C以及它们相关联的时间帧(如果适用)的通信(可以是单次通信)。例如,图4图示了可以被通信至租户的示例表格。这里,表格包括每项任务A、B和C的标识。此外,针对每项任务,通信了时间帧。服务器平台201还可以改变时间帧或者甚至取消要执行的任务。这可以在从服务器平台201至相应租户的单独通信中提供。

在动作314和315的该通信中,平台控制器210还可以通信补充信息。补充信息同样可以包括有助于租户决定何时使平台启动对应任务的任意信息。例如,对于任意给定任务,补充信息可以包括特定于任务的信息,诸如在执行任务时用于恢复的估计或平均时间,一旦检测到启动的指令时由平台启动任务的预期或平均时间。例如,在图4中,每项任务还包括用于恢复的平均时间。补充信息还可以包括任务的执行的其它结果,诸如数据可用性、存储装置访问速度、存储器使用状况、处理器利用状况,等等。

补充信息还可以包括特定于租户的信息。例如,平台控制器可以从平台的角度规定租户的估计健康状况、特定租户的状态(例如,在租户上运行的各种软件的版本)、租户的配置,等等。例如,图5图示了可以被通信至租户的规定针对租户的四个组件中的每一个的健康状态的健康表格(在该情况下是组件是否正在运行)。

租户随后最优地接收到指定(动作321)。相应地,在具体情况示例中,租户221从平台控制器210接收到任务A、B和C的指定。相应地,租户知道其具有租户可以在其中控制任务A何时被执行的15分钟窗口,租户可以在其中控制任务B何时被执行的15天窗口,以及租户可以在其中控制任务C何时被执行的无限窗口。

租户随后通过在对应时间帧内响应有对任务的明示同意或者通过允许时间帧在没有明示同意的情况下过去,由此隐含地同意服务器平台执行特定原子任务,而同意(动作322)每项任务。在明示同意的情况下,针对多项任务的明示同意可以在单次通信中被提供。例如,在具体情况示例中,假设在13分钟的标记处,租户221决定启动任务A和B两者。处于关于两项任务的时间帧内,租户仍然具有对于这两项任务的控制。相应地,在单次通信中,租户221可以授权任务A和B的启动。

平台随后基于与指定的通信对应的响应状态,而确定(动作316)服务器平台要进行特定任务的执行。例如,在具体情况示例中,在13分钟的标记处,平台控制器210从租户221接收到租户同意推进任务A和B的指示。在该情况下,服务器平台随意推进。然而,假设在没有来自租户221的有关任务A的通信的情况下15分钟已经过去。此时,给定(没有接收到响应的)响应状态,平台随后可以将响应的缺失解释为默许同意推进。相应地,平台可以推进任务A。

该机制对平台和租户之间的通信问题是弹性的。例如,假设租户始终没有接收到任务和时间帧的指定,和/或平台始终没有接收到对执行任务的明确认可。在该情况下,即使假设在平台控制器和租户之间的通信完全中断,平台仍然将继续执行任务。例如,一旦对应时间帧已经期满,平台将简单地从事执行任务。

允许租户控制何时启动影响该租户的特定任务的能力是有帮助的,在于租户可以具有涉及决定平台可以何时开始任务的更多信息。例如,如果平台相信租户并不健康(例如,并未运行),但是租户知道并非如此,则平台可以正常地使租户立即采取校正动作。然而,租户对于此可能较不急迫,因为租户知道其自己的健康状况。因此,该机制允许租户在租户了解事实的情况下,使用其更大的智能来将任务推后至更合适的时间。这具有允许工作流在给定环境中以更合适的节奏进行的效果。

本发明可以被体现为其它具体形式,而不背离本发明的精神或实质性特征。描述的实施例在所有方面都要被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求而不是之前的描述指示。落入权利要求的等效物的含义和范围内的所有变化都要被包含于权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1