CN106489133B - 在服务器平台上启动原子任务时的控制 - Google Patents

在服务器平台上启动原子任务时的控制 Download PDF

Info

Publication number
CN106489133B
CN106489133B CN201580037187.5A CN201580037187A CN106489133B CN 106489133 B CN106489133 B CN 106489133B CN 201580037187 A CN201580037187 A CN 201580037187A CN 106489133 B CN106489133 B CN 106489133B
Authority
CN
China
Prior art keywords
tenant
task
specific
server platform
movement
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.)
Active
Application number
CN201580037187.5A
Other languages
English (en)
Other versions
CN106489133A (zh
Inventor
P·T·纳格沙劳
J·E·约翰逊
L·伊伦-布里兹
S·P·雷瓦斯卡尔
A·玛尼
S·赛义德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106489133A publication Critical patent/CN106489133A/zh
Application granted granted Critical
Publication of CN106489133B publication Critical patent/CN106489133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

原子任务的执行的租户和服务器平台协调,该原子任务要由该平台执行,但是该原子任务至少具有对该租户的潜在影响。该服务器平台向特定租户给予时间帧,该租户自己可以在该时间帧中同意一个或多个任务中的每一个的启动。该服务器平台可以通过对该时间帧施加时间约束而保护其自己免受延迟动作的影响,使得在该时间帧过去之后,该租户不再具有对触发特定任务的启动的控制。因此,该租户被提供有对由该服务器平台执行的任务的启动进行控制的灵活度,而该服务器平台维持一定级别的控制以保护其资源并且对各种租户的需求进行平衡。

Description

在服务器平台上启动原子任务时的控制
背景技术
计算系统和相关联的网络已经彻底改变了人们工作、娱乐和通信的方式。几乎我们生活中的每个方面都被计算系统以某种方式影响。计算系统现在主要地被连接至网络和互联网,以便使得能够进行广泛的通信。这样的计算网络的巨大能力已经导致通过网络提供的各种服务的增加。网络服务的示例包括网站、电子邮件、消息发送、社交网络、数据库管理、虚拟化、日程管理、存储、策略管理,等等。
在一个计算模型中,平台托管多个租户(例如,组件程序),每个租户向租户的提供者的消费者提供其自己的服务。平台例如可以是服务器平台,并且可以被一个或多个服务器支持。平台也可以是云平台,其中平台具有数据中心的所有资源。云平台可以是私有云、公有云,或者表示每种云中的一些的混合云。
在任意情况下,在托管多个租户时,平台采用多种防护来确保每个租户的数据被保护,并且确保足够的计算资源被分配给每个租户。平台还了解与每个租户相关联的工作流。在每个租户进行其对应工作流时,平台确保每个工作流被遵循并且工作流的各种任务以及时的方式被成功完成。因此,工作流管理是平台的重要任务,特别是在管理多个租户时。
这里请求保护的主题并不局限于解决任意缺陷或者仅在诸如以上描述的环境的环境中进行操作的实施例。相反,该背景技术仅被提供以说明这里描述的一些实施例可以被实践的一种示例性技术领域。
发明内容
这里描述的至少一些实施例涉及其上运行多个租户的服务器平台(诸如云平台)的操作。具体地,这里描述的实施例帮助服务器平台及其租户中的一个或多个对原子任务进行协调,该原子任务要由服务器平台执行,但是至少具有对租户的潜在影响。
具体地,服务器平台向特定租户给予时间帧,租户自己可以在时间帧中同意一个或多个任务中的每一个的启动。租户毕竟可以具有如下信息,该信息无法被服务器平台获取,并且从租户的角度来看可以与何时可能合适启动特定任务相关。服务器平台可以通过对时间帧施加时间约束而保护其自己免受延迟动作的影响,使得在时间帧过去之后,租户不再具有对触发特定任务的启动的控制,而是服务器平台负责定时特定任务的启动。因此,租户被提供有对由服务器平台执行的任务的启动进行控制的灵活度,而服务器平台维持一定级别的控制以保护其资源并且对各种租户的需求进行平衡。
该发明内容并非意在标识请求保护的主题的关键特征或必要特征,也并非意在当确定请求保护的主题的范围时被用作辅助。
附图说明
为了描述以上引用的以及可以获得其它的优势和特征的方式,将通过参考附图而给出对各种实施例的更具体描述。要理解的是,这些附图仅描绘了样本实施例,并且因此并非要被认为对本发明的范围进行限制,实施例将通过使用附图而利用附加的特性和细节进行描述和解释。
图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。
该机制对平台和租户之间的通信问题是弹性的。例如,假设租户始终没有接收到任务和时间帧的指定,和/或平台始终没有接收到对执行任务的明确认可。在该情况下,即使假设在平台控制器和租户之间的通信完全中断,平台仍然将继续执行任务。例如,一旦对应时间帧已经期满,平台将简单地从事执行任务。
允许租户控制何时启动影响该租户的特定任务的能力是有帮助的,在于租户可以具有涉及决定平台可以何时开始任务的更多信息。例如,如果平台相信租户并不健康(例如,并未运行),但是租户知道并非如此,则平台可以正常地使租户立即采取校正动作。然而,租户对于此可能较不急迫,因为租户知道其自己的健康状况。因此,该机制允许租户在租户了解事实的情况下,使用其更大的智能来将任务推后至更合适的时间。这具有允许工作流在给定环境中以更合适的节奏进行的效果。
本发明可以被体现为其它具体形式,而不背离本发明的精神或实质性特征。描述的实施例在所有方面都要被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求而不是之前的描述指示。落入权利要求的等效物的含义和范围内的所有变化都要被包含于权利要求的范围内。

Claims (23)

1.一种用于操作架构的方法,所述架构通过选择性地调用相对于服务器平台的更少的知识的租户的更多的知识,来改进工作流执行,以便考虑到所述租户的更多的知识将工作流任务推后到更适当的时间,所述方法包括:
所述租户从所述服务器平台接收与特定原子任务有关的指定的动作,所述指定指示(1)所述特定原子任务将由所述服务器平台执行,以及(2)所述特定原子任务的执行将潜在影响所述租户;
所述租户标识所述服务器平台正在使用所述指定以向所述租户传递在确定所述特定原子任务将何时由所述服务器平台执行中的至少一些控制的动作,其中所述租户贯穿确定的时间帧保持所述至少一些控制,所述确定的时间帧在所述指定内被指示,并且其中向所述租户传递所述至少一些控制至少部分因为所述租户具有关于所述特定原子任务如何紧急的更多的知识而被执行;以及
所述租户同意所述服务器平台执行所述特定原子任务的动作,其中所述租户的同意在所述确定的时间帧内被执行,并且其中所述租户的同意至少部分基于所述服务器平台在所述服务器平台从所述租户接收到发起所述特定原子任务的指令之后将等待的预期时间,由此,作为所述服务器平台关于所述特定原子任务何时要被执行而与所述租户协调的结果,所述特定原子任务的执行以使得所述服务器平台能够通过根据任务的确定的紧急度来处理那些任务来更高效地使用其资源的节奏进行。
2.根据权利要求1所述的方法,其中所述租户同意的所述动作包括:
所述租户等待直至所述确定的时间帧结束而不向所述服务器平台发送同意所述特定原子任务的明确通信,由此隐含地同意所述服务器平台执行所述特定原子任务的动作。
3.根据权利要求1所述的方法,其中所述租户同意的所述动作包括:
所述租户在所述确定的时间帧内向所述服务器平台通信对所述特定原子任务的明确同意的动作。
4.根据权利要求1所述的方法,其中所述指定还与多个其他原子任务有关。
5.根据权利要求4所述的方法,其中所述租户同意的所述动作包括:
所述租户在单次通信内明确地同意所述多个原子任务中的至少一个原子任务中的每一个原子任务的动作。
6.根据权利要求5所述的方法,其中所述租户同意的所述动作包括:
所述租户在所述单次通信内向所述服务器平台明确地同意所述多个原子任务中的至少一些原子任务中的每一个原子任务的动作。
7.根据权利要求1所述的方法,进一步包括:
所述租户提出要由所述服务器平台执行的任务的动作,其中所述指定至少部分基于提出的所述任务。
8.根据权利要求1所述的方法,其中补充信息被提供到所述租户,所述补充信息描述执行所述特定原子任务的一个或多个结果,所述结果包括存储访问速度。
9.一种计算机程序产品,包括一个或多个计算机可读物理存储介质,所述一个或多个计算机可读物理存储介质上存储有计算机可执行指令,所述计算机可执行指令由一个或多个处理器可执行以执行用于操作架构的方法,所述架构通过选择性地调用相对于服务器平台的更少的知识的租户的更多的知识,来改进工作流执行,以便考虑到所述租户的更多的知识将工作流任务推后到更适当的时间,所述方法包括:
标识特定任务的动作,所述特定任务要由所述服务器平台执行,并且将至少潜在影响所述特定租户;
生成与所述特定任务有关的指定的动作,所述指定指示(1)所述特定任务将由所述服务器平台执行,以及(2)所述任务的执行将潜在影响所述特定租户,所述指定由所述特定租户可使用以标识所述服务器平台正在使用所述指定以向所述特定租户传递在确定所述特定任务将何时由所述服务器平台执行中的至少一些控制,其中所述特定租户贯穿特定时间帧保持所述至少一些控制,所述特定时间帧在所述指定内被指示,并且其中向所述租户传递所述至少一些控制至少部分因为所述租户具有关于所述特定任务如何紧急的更多的知识而被执行;
使得所述指定至少被尝试通信至所述特定租户的动作;以及
基于与所述指定的所述通信对应的响应状态,来确定所述服务器平台要进行执行所述特定任务的动作,其中所述特定租户生成所述响应状态,并且其中生成所述响应状态至少部分基于所述服务器平台在所述服务器平台从所述特定租户接收到发起所述特定任务的指令之后将等待的预期时间,由此,作为所述服务器平台关于所述特定任务何时要被执行而与所述租户协调的结果,所述特定任务的执行以使得所述服务器平台能够通过根据任务的确定的紧急度来处理那些任务来更高效地使用其资源的节奏进行。
10.根据权利要求9所述的计算机程序产品,确定所述服务器平台要进行执行所述特定任务的所述动作响应于在所述特定时间帧内从所述特定租户接收到明确同意而被执行。
11.根据权利要求9所述的计算机程序产品,确定所述服务器平台要进行执行所述特定任务的所述动作响应于确定所述特定时间帧已经过去而没有在所述特定时间帧内来自所述特定租户的明确同意而被执行。
12.根据权利要求9所述的计算机程序产品,其中所述特定时间帧在所述指定内被明确地表示。
13.根据权利要求9所述的计算机程序产品,所述特定时间帧没有结束,由此表示所述特定租户具有对所述特定任务何时由所述服务器平台执行的连续控制。
14.根据权利要求9所述的计算机程序产品,所述特定时间帧由所述服务器平台可取消。
15.根据权利要求9所述的计算机程序产品,所述方法进一步包括:
向所述特定租户提供补充信息以帮助所述特定租户决定何时同意所述特定任务的动作。
16.根据权利要求15所述的计算机程序产品,所述补充信息包括:
与所述特定任务对应的估计的恢复时间。
17.根据权利要求15所述的计算机程序产品,所述补充信息包括:
对所述特定租户的健康的服务器平台估计。
18.根据权利要求15所述的计算机程序产品,所述补充信息包括:
所述特定租户的状态。
19.根据权利要求15所述的计算机程序产品,所述补充信息包括:
所述特定租户的配置。
20.一种用于操作架构的方法,所述架构通过选择性地调用相对于服务器平台的更少的知识的租户的更多的知识,来改进工作流执行,以便考虑到所述租户的更多的知识将工作流任务推后到更适当的时间,所述方法包括:
标识特定任务的动作,所述特定任务要由所述服务器平台执行,并且将至少潜在影响所述特定租户;
生成与所述特定任务有关的指定的动作,所述指定指示(1)所述特定任务将由所述服务器平台执行,以及(2)所述任务的执行将潜在影响所述特定租户,所述指定由所述特定租户可使用以标识所述服务器平台正在使用所述指定以向所述特定租户传递在确定所述特定任务将何时由所述服务器平台执行中的至少一些控制,其中所述特定租户贯穿特定时间帧保持所述至少一些控制,所述特定时间帧在所述指定内被指示,并且其中向所述租户传递所述至少一些控制至少部分因为所述租户具有关于所述特定任务如何紧急的更多的知识而被执行;
向所述特定租户通信所述指定的动作;以及
基于与所述指定的所述通信对应的响应状态,来确定所述服务器平台要进行执行所述特定任务的动作,其中所述特定租户生成所述响应状态,并且其中生成所述响应状态至少部分基于所述服务器平台在所述服务器平台从所述特定租户接收到发起所述特定任务的指令之后将等待的预期时间,由此,作为所述服务器平台关于所述特定任务何时要被执行而与所述租户协调的结果,所述特定原子任务的执行以使得所述服务器平台能够通过根据任务的确定的紧急度来处理那些任务来更高效地使用其资源的节奏进行。
21.根据权利要求20所述的方法,所述特定任务是第一原子任务,所述特定时间帧是第一时间帧,所述方法进一步包括:
标识第二原子任务的动作,所述第二原子任务将由所述服务器平台执行,并且将潜在影响所述特定租户;
生成不同指定的动作,所述不同指定与所述第二原子任务有关,并且至少包括至少第二时间帧的隐含标识,在所述第二时间帧中所述特定租户具有对同意所述服务器平台执行所述第二原子任务的控制;
向所述特定租户通信所述不同指定的动作;以及
基于与所述不同指定的所述通信对应的响应状态,来确定所述服务器平台要进行执行所述第二原子任务的动作。
22.根据权利要求20所述的方法,其中所述方法进一步包括:
标识要由所述服务器平台执行的其他任务的动作,所述其他任务包括被分配到第一租户的第一任务;
标识所述第一任务当由所述服务器平台执行时将影响所述特定租户的动作;以及
使得所述特定租户和所述第一租户两者能够共享对所述第一任务将何时由所述服务器平台执行的控制的动作。
23.根据权利要求20所述的方法,其中所述特定时间帧的长度取决于所述特定任务的确定的紧急度,由此紧急度更高的任务比紧急度更低的任务具有更短的时间帧。
CN201580037187.5A 2014-07-07 2015-07-06 在服务器平台上启动原子任务时的控制 Active CN106489133B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/324,511 US10110501B2 (en) 2014-07-07 2014-07-07 Tenant control in initiating atomic platform tasks
US14/324,511 2014-07-07
PCT/US2015/039177 WO2016007402A1 (en) 2014-07-07 2015-07-06 Control in initiating atomic tasks on a server platform

Publications (2)

Publication Number Publication Date
CN106489133A CN106489133A (zh) 2017-03-08
CN106489133B true CN106489133B (zh) 2019-11-19

Family

ID=53682849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580037187.5A Active CN106489133B (zh) 2014-07-07 2015-07-06 在服务器平台上启动原子任务时的控制

Country Status (11)

Country Link
US (1) US10110501B2 (zh)
EP (1) EP3167362A1 (zh)
JP (1) JP6568576B2 (zh)
KR (1) KR102399291B1 (zh)
CN (1) CN106489133B (zh)
AU (1) AU2015288125B2 (zh)
BR (1) BR112016030987A2 (zh)
CA (1) CA2954262C (zh)
MX (1) MX366479B (zh)
RU (1) RU2696299C2 (zh)
WO (1) WO2016007402A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
JP2018198236A (ja) * 2017-05-23 2018-12-13 パナソニック株式会社 太陽電池モジュール
CN107391188A (zh) * 2017-07-17 2017-11-24 聚好看科技股份有限公司 一种控制定时任务的方法和装置
US11119751B2 (en) * 2019-07-16 2021-09-14 International Business Machines Corporation Self-learning optimized patch orchestration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038635A (zh) * 2006-03-15 2007-09-19 北大方正集团有限公司 一种工作流管理系统流程权限控制系统及其实现方法
CN101094229A (zh) * 2007-07-24 2007-12-26 深圳市融合视讯科技有限公司 一种网络应用程序的增量升级系统及升级方法
WO2011046559A1 (en) * 2009-10-15 2011-04-21 Hewlett-Packard Development Company, L.P. Information technology system change planning
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2348972C2 (ru) * 2004-05-19 2009-03-10 Еитиро ТЕРАСАВА Устройство обработки информации, система обновления программного обеспечения, способ обновления программного обеспечения и программа для его реализации
US20060064481A1 (en) * 2004-09-17 2006-03-23 Anthony Baron Methods for service monitoring and control
US20080104573A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Software build validation before check-in
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US9432333B2 (en) * 2010-03-24 2016-08-30 E-Bo Enterprises Trusted content distribution system
KR101350755B1 (ko) * 2011-01-14 2014-01-10 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
US8935375B2 (en) * 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US9361468B2 (en) * 2012-04-17 2016-06-07 Salesforce.Com, Inc. Method and system for granting access to secure data
US8949839B2 (en) * 2012-07-26 2015-02-03 Centurylink Intellectual Property Llc Method and system for controlling work request queue in a multi-tenant cloud computing environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038635A (zh) * 2006-03-15 2007-09-19 北大方正集团有限公司 一种工作流管理系统流程权限控制系统及其实现方法
CN101094229A (zh) * 2007-07-24 2007-12-26 深圳市融合视讯科技有限公司 一种网络应用程序的增量升级系统及升级方法
WO2011046559A1 (en) * 2009-10-15 2011-04-21 Hewlett-Packard Development Company, L.P. Information technology system change planning
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法

Also Published As

Publication number Publication date
CA2954262C (en) 2022-08-30
AU2015288125A1 (en) 2017-01-12
EP3167362A1 (en) 2017-05-17
JP6568576B2 (ja) 2019-08-28
JP2017520858A (ja) 2017-07-27
AU2015288125B2 (en) 2020-05-21
RU2696299C2 (ru) 2019-08-01
BR112016030987A8 (pt) 2017-08-22
KR102399291B1 (ko) 2022-05-17
RU2016152186A3 (zh) 2019-02-05
MX366479B (es) 2019-07-10
MX2017000166A (es) 2017-04-25
WO2016007402A1 (en) 2016-01-14
RU2016152186A (ru) 2018-07-02
US20160006666A1 (en) 2016-01-07
US10110501B2 (en) 2018-10-23
CA2954262A1 (en) 2016-01-14
BR112016030987A2 (pt) 2021-06-08
CN106489133A (zh) 2017-03-08
KR20170030517A (ko) 2017-03-17

Similar Documents

Publication Publication Date Title
CN104737133B (zh) 使用服务组的分布式应用优化
Hamdaqa et al. Cloud computing uncovered: a research landscape
Anwar et al. Elastic scheduling of scientific workflows under deadline constraints in cloud computing environments
Fehling et al. Pattern-based development and management of cloud applications
US11137732B2 (en) Flow engine for building automated flows within a cloud based developmental platform
US10521738B2 (en) Automated collaboration workflow generation in thing-sourcing environments
CN106489133B (zh) 在服务器平台上启动原子任务时的控制
US20200364646A1 (en) Automated Assignment of Tasks Based on User Profile Data for Improved Efficiency
Chang et al. An agent‐based workflow scheduling mechanism with deadline constraint on hybrid cloud environment
Srinivasan Cloud Computing: A practical approach for learning and implementation
Kovács et al. Boosting gLite with cloud augmented volunteer computing
Fan et al. VM instance selection for deadline constraint job on agent-based interconnected cloud
Panigrahi et al. Software development methodology for cloud computing and its impact
Pop et al. The Art of Scheduling for Big Data Science.
Seitz An Architectural Style for Fog Computing: Formalization and Application
US20230049160A1 (en) Dynamically updating resource allocation tool
Dubhashi et al. Mastering Mesos
RUG Tailoring the implementation of digital business
Shanthini et al. Hybrid scheduling model for independent grid tasks
Mamidi et al. Investigating and Deploying an AI model on Raspberry Pi IoT platform using FIWARE and Docker in the context of the Bonseyes AI Ecosystem
Mikulecky et al. An Architecture for Intelligent e-Learning Platform for Student’s Lab Deployment
Lopes Data Science for Non-Programmers: Orchestration of Microservices and Graphical User Interface
Yu et al. Maximal service profit in MAS-based cloud computing considering service security
Abraham ANALYZING THE SYSTEM FEATURES, USABILITY, AND PERFORMANCE OF A CONTAINERIZED APPLICATION ON CLOUD COMPUTING SYSTEMS
Buddha et al. Simple Workflow Service

Legal Events

Date Code Title Description
C06 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