著录项信息
专利名称 | 用于提供按需处理和背景处理的体系结构 |
申请号 | CN201110434460.1 | 申请日期 | 2011-12-12 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-07-18 | 公开/公告号 | CN102591708A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/46 | IPC分类号 | G;0;6;F;9;/;4;6查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | Y·吴;J·E·加拉尔多;J·吴 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 钱孟清 |
摘要
本发明涉及用于提供按需处理和背景处理的体系结构。实施例涉及使用web服务按需消息处理线程提供基于调度的处理,并且基于所估计的未来工作负载管理处理线程。在一个实施例中,web服务平台从客户端接收为基于调度的背景处理指定的消息。web服务平台包括具有被配置成执行按需消息处理的处理线程的按需消息处理服务。web服务平台加载包括按需消息处理线程的按需消息处理服务。web服务平台实现按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程。由此,为背景处理所指定的客户端消息作为服务发起的按需任务来处理。
1.在包括多个计算系统的计算机联网环境中包括至少一个处理器和存储器的计算机系统处,一种用于使用web服务按需消息处理线程提供基于调度的处理的计算机实现的方法,所述方法包括:
在web服务器平台处加载具有被配置成执行按需消息处理的一个或多个线程的按需消息处理服务以及具有被配置成根据调度执行消息的背景处理的一个或多个线程的背景消息处理服务的动作;
在所述web服务平台(401)从客户端接收为基于调度的背景处理指定的消息(406)的动作;
在所述web服务平台处确定所述按需消息处理服务的一个或多个线程可用于处理接收到的消息的动作;
实现所述按需消息处理服务的用以对接收到的客户端消息(406)执行背景处理的线程(416)的动作,其中为背景处理指定的客户端消息作为服务发起的按需任务来处理;
所述按需消息处理服务的线程中的至少一个被分配来驱使轮询背景处理工作项的轮询循环的动作;
基于当前和过去轮询循环动作中的至少一个来估计所述web服务平台的未来工作负载的动作;以及
基于所估计的未来工作负载延缓至少一部分背景处理的动作。
2.如权利要求1所述的方法,其特征在于,按需处理和背景处理两者都出现在单个主机上。
3.如权利要求1所述的方法,其特征在于,所实现的用于背景处理的按需消息处理线程是无尽的。
4.如权利要求3所述的方法,其特征在于,所述无尽的按需消息处理线程分配至少一个消息处理线程来驱使轮询背景处理工作项的轮询循环。
5.如权利要求4所述的方法,其特征在于,所述轮询循环查询一个或多个工作项队列以从所述队列拉取工作项。
6.如权利要求5所述的方法,其特征在于,所述轮询循环将所拉取的工作项提供给从线程池挑选的处理线程。
7.如权利要求4所述的方法,其特征在于,所述轮询循环包括跨多个消息继续的逻辑循环。
8.一种用于基于所估计的未来工作负载管理处理线程的方法,所述方法包括:
在web服务器平台处加载具有被配置成执行按需消息处理的一个或多个无尽的线程的按需消息处理服务以及具有被配置成根据调度执行消息的背景处理的一个或多个线程的背景消息处理服务的动作;
在所述web服务平台(410)从客户端(405)接收为基于调度的背景处理指定的单向消息(406)的动作,其中所述无尽的按需消息处理线程分配至少一个线程(417)来驱使轮询背景处理工作项(426)的轮询循环(425);
在所述web服务平台处确定所述按需消息处理服务的一个或多个线程可用于处理接收到的消息的动作;
实现所述按需消息处理服务的用以对接收到的客户端消息(406)执行背景处理的线程(416)的动作,其中为背景处理指定的客户端消息作为服务发起的按需任务来处理;
所述按需消息处理服务的线程中的至少一个被分配来驱使轮询背景处理工作项的轮询循环的动作;
基于当前和过去轮询循环动作中的至少一个来估计所述web服务平台的未来工作负载(431)的动作;以及
基于所估计的未来工作负载(431)延缓(435)至少一部分背景处理的动作。
9.一种用于使用web服务按需消息处理线程提供基于调度的处理的系统,所述系统包括:
用于在web服务器平台处加载具有被配置成执行按需消息处理的一个或多个线程的按需消息处理服务以及具有被配置成根据调度执行消息的背景处理的一个或多个线程的背景消息处理服务的装置;
用于在所述web服务平台从客户端接收为基于调度的背景处理指定的消息的装置;
用于在所述web服务平台处确定所述按需消息处理服务的一个或多个线程可用于处理接收到的消息的装置;
用于实现所述按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程的装置,其中为背景处理指定的客户端消息作为服务发起的按需任务来处理;
用于所述按需消息处理服务的线程中的至少一个被分配来驱使轮询背景处理工作项的轮询循环的装置;
用于基于当前和过去轮询循环动作中的至少一个来估计所述web服务平台的未来工作负载的装置;以及
用于基于所估计的未来工作负载延缓至少一部分背景处理的装置。
用于提供按需处理和背景处理的体系结构\n技术领域\n[0001] 本发明涉及用于提供按需处理和背景处理的体系结构。\n背景技术\n[0002] 计算机在劳动力、家、移动设备和许多其他地方中已变得高度集成。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等在内的各种各样的功能。软件应用通常被设计成执行特定任务,诸如用于草拟文档的文字处理器应用、或者用于发送、接收和组织电子邮件的电子邮件程序。\n[0003] 在许多情况下,软件应用被设计为与其他软件应用或其他计算机系统交互。例如,web浏览器可与web服务器交互,以请求并接收呈现给用户的数据。这些web服务器可被配置成提供web服务。这些web服务通常被设计为提供交互处理或按需处理。由此,web服务无法提供基于调度的背景处理。\n发明内容\n[0004] 本文中所述的各个实施例涉及使用web服务按需消息处理线程提供基于调度的处理,并且基于所估计的未来工作负载管理处理线程。在一个实施例中,web服务平台从客户端接收为基于调度的背景处理指定的消息。web服务平台包括具有被配置成执行按需消息处理的处理线程的按需消息处理服务。web服务平台加载包括按需消息处理线程的按需消息处理服务。web服务平台实现按需消息处理服务的线程以对接收到的客户端消息执行背景处理。由此,为背景处理指定的客户端消息作为服务发起的按需任务来处理。\n[0005] 在另一实施例中,web服务平台从客户端接收为基于调度的背景处理指定的消息。\nweb服务平台包括具有被配置成执行按需消息处理的无尽的处理线程的按需消息处理服务。无尽的按需消息处理线程实现单向消息以驱使轮询背景处理工作项的轮询循环。web服务平台加载包括按需消息处理线程的按需消息处理服务。web服务平台实现按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程。由此,为背景处理指定的客户端消息作为服务发起的按需任务来处理。web服务平台还基于当前和过去轮询循环动作中的至少一个来估计web服务平台的未来工作负载,并且基于所估计的未来工作负载延缓背景处理。\n[0006] 提供本发明内容以便以简化的形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。\n[0007] 附加特征和优点将在以下的描述中阐述,并且部分从该描述中将是显而易见的,或者可通过实践此处的教义来获知。本发明的特征和优点可通过在所附的权利要求书中特别指出的手段和组合来实现和获得。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下文中所阐述的实践本发明来获知。\n附图说明\n[0008] 为了进一步阐明本发明的各实施例的以上及其他优点和特征,将参考附图来呈现对本发明的各实施例的更具体的描述。应当理解,这些附图只描绘本发明的典型实施例,并且因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,在附图中:\n[0009] 图1示出其中本发明的实施例可操作(包括使用web服务按需消息处理线程提供基于调度的处理)的计算机体系结构。\n[0010] 图2示出用于使用web服务按需消息处理线程提供基于调度的处理的示例方法的流程图。\n[0011] 图3示出用于基于所估计的未来工作负载管理处理线程的示例方法的流程图。\n[0012] 图4示出其中本发明的实施例可操作(包括基于所估计的未来工作负载管理处理线程)的计算机体系结构。\n具体实施方式\n[0013] 本文中所述的实施例涉及使用web服务按需消息处理线程提供基于调度的处理,并且基于所估计的未来工作负载管理处理线程。在一个实施例中,web服务平台从客户端接收为基于调度的背景处理指定的消息。web服务平台包括具有被配置成执行按需消息处理的处理线程的按需消息处理服务。web服务平台加载包括按需消息处理线程的按需消息处理服务。web服务平台实现按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程。由此,为背景处理指定的客户端消息作为服务发起的按需任务来处理。\n[0014] 在另一实施例中,web服务平台从客户端接收为基于调度的背景处理指定的消息。\nweb服务平台包括具有被配置成执行按需消息处理的无尽的处理线程的按需消息处理服务。无尽的按需消息处理线程实现单向消息以驱使轮询背景处理工作项的轮询循环。web服务平台加载包括按需消息处理线程的按需消息处理服务。web服务平台实现按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程。由此,为背景处理指定的客户端消息作为服务发起的按需任务来处理。web服务平台还基于当前和过去轮询循环动作中的至少一个来估计web服务平台的未来工作负载,并且基于所估计的未来工作负载延缓背景处理。\n[0015] 以下讨论现在涉及可执行的多种方法和方法动作。应当注意,虽然这些方法动作可按某一次序进行讨论、或在流程图中被示为按特定次序进行,但是除非特别声明、或因为一个动作依赖于在执行该动作之前完成的另一动作而需要特定次序,否则不一定需要特定次序。\n[0016] 本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质及其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统可访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同类型的计算机可读介质:计算机存储介质和传输介质。\n[0017] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且通用或专用计算机可访问的任何其他介质。\n[0018] “网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或者硬连线或无线的组合)传送到或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且通用或专用计算机可访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。\n[0019] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动地传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且随后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。由此,应当理解,计算机存储介质可被包括在还(或甚至主要)利用传输介质的计算机系统组件中。\n[0020] 计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。虽然用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于所述特征或动作。相反,所述特征和动作是作为实现权利要求的示例形式而公开的。\n[0021] 本领域的技术人员将理解,本发明可在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可在其中通过网络链路(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境(例如,云计算、云服务等)中实践。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。\n[0022] 图1示出其中可采用本发明的原理的计算机体系结构100。计算机体系结构100包括web服务平台110。web服务平台110可以是被配置成提供web服务、数据处理或其他因特网相关功能的任何类型的分布式或本地计算系统。web服务平台可由分布在多个不同计算机系统上的云计算系统提供。web服务平台可包括被配置成处理按需消息的按需消息处理服务115。例如,按需消息106可从客户端105接收。客户端可发送指示客户端希望访问web服务平台所提供的web服务的消息106。\n[0023] 按需消息处理服务115还包括多个不同的处理线程116。这些处理线程可用于处理web服务、软件程序或其他软件功能、或者处理接收到的消息中的各个方面。web服务平台110还可包括背景服务120,背景服务120包括用于处理背景任务的处理线程121。在一些情况下,按需消息处理服务的线程可用于对客户端消息106执行背景处理。以此方式,为背景处理指定的客户端消息作为服务发起的按需任务来处理,其中来自处理的结果(例如,经处理的响应122)被发送回客户端。\n[0024] 服务120所作的背景处理可包括周期性动作和从队列集合轮询的工作项。队列可由外部调度器、按需客户端请求和工作项本身填充。可在连续的基础上通过从外部组件对远程消息接口进行周期性调用(在一些情况下,类似于针对按需请求的web服务)来执行这种轮询。可连续地执行每一个调用,直至下一调用。这将从外部组件对服务层的推送转换成服务层内的拉取和周期性动作。在接收到客户端消息之后,web服务平台可激活背景处理线程。使用这些客户端消息,客户端推送web服务平台110来执行背景处理。web服务平台随后将客户端的推送转换成其自己对工作项的拉取。\n[0025] 在一些情况下,web服务平台在下一工作项将要到达时进行计算,并且将该时间与当前时间作比较。如果差异足够大,则将延缓背景处理,因为保持运行大量时间的成本比重启背景处理的成本高。为了确保工作项将在其到达时进行处理,客户端105发送消息以在那之前开始背景处理。对于所调度的工作项,web服务平台和客户端可使用类似的方法来基于当前队列中的所有工作项的调度定义计算下一工作项的时间。\n[0026] 如以上所提及的,按需消息处理线程116可供背景处理使用。背景处理的按需消息线程可以是无尽的。背景处理可在失败之后通过客户端所生成的web服务请求循环来重新初始化。消息循环可将消息发送到web服务平台以将背景处理作为中断来执行。中断还可用于避免达到web服务平台所设置的超时阈值,从而控制web服务平台可对单个消息处理多长时间。换言之,其避免单个消息消耗资源太长时间。可实现用于跨多个消息(例如,106)继续的背景工作项轮询的单个逻辑循环。可基于对未来工作负载的确定来延缓消息循环和背景处理。可通过随机寻址、负载均衡和/或消息弹回将工作分发到主存背景处理的所有节点。可提供可通过消息分发来增加背景处理线程的可靠性的消息发起者域。处理线程可具有相同的特性,从而每个处理线程可处理工作项。还可提供用于交互/按需处理和背景/经调度处理的统一体系结构,该统一体系结构共享诸如激活、健康监控、资源回收、部署和主存之类的区域中的公共特征。\n[0027] 背景处理工作者主存在相同过程主存的交互web服务中。独立的操作计时器周期性地经由远程消息接口向该过程发送消息。到达工作者的消息导致初始化背景处理并执行工作项轮询的线程。线程将运行,直至另一消息到达。如果这种线程因失败而终止、或未及时地产生新消息,则新消息将重新初始化背景处理。由此,确保其可靠性。即使单个消息所允许的时间受到限制,背景处理也可无限地运行。\n[0028] 在一些情况下,单个无限循环用于轮询工作项。循环可跨越多个消息线程。循环在每次迭代中产生返回,同时每个线程逐一迭代循环的产生返回,从而检查更加新的消息所设置的信号。在一些情况下,单个线程可消耗循环所返回的数据。\n[0029] 消息可随机地或通过负载均衡器发送到不同的节点。消息发起者和对工作者的轮询可分开,从而允许单个线程的故障容错和可缩放性。为了确保消息到达线程,即使当直接穷举寻址不可能(例如,如果消息不得不经过负载均衡器)时,也可利用消息弹回。在一些情况下,可给予消息最低预期寿命。当新消息到达时,如果当前消息尚未超过其最低预期寿命,则其将另一消息发送到负载均衡器,该另一消息具有比当前消息的剩余寿命少的预期寿命。\n[0030] 在一些实施例中,尚未实现用于背景处理的单独过程,从而可在一个地方且通过同一用户接口来仅一次即部署并配置交互web服务和背景处理之间的共享组件。背景处理专用的组件可以与其他组件相同的方式部署和配置。通过web服务平台110可用于web服务按需线程116的特征也可用于背景处理线程121。这些概念将在以下参考图2的方法200更详细地解释。\n[0031] 鉴于以上所述的系统和体系结构,参考图2和图3的流程图将更好地理解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出并描述为一系列框。然而,应当理解和了解,所要求保护的主题不受框的次序限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下文中描述的方法所必需的。\n[0032] 图2示出用于使用web服务按需消息处理线程提供基于调度的处理的方法200的流程图。现在将分别频繁地参考图1和图4的环境100和400的组件和数据来描述方法\n200。\n[0033] 方法200包括在web服务平台从客户端接收为基于调度的背景处理指定的消息的动作,其中web服务平台包括具有被配置成执行按需消息处理的一个或多个线程的按需消息处理服务(动作210)。例如,web服务平台110可从客户端105接收消息106。可为基于调度的背景处理指定该消息。基于调度的处理可指对根据特定调度或队列的消息的处理,其中每个消息置于队列中以供在特定时间或按特定次序进行处理。web服务平台可包括执行按需消息处理的按需消息处理服务115。如名称暗示的,按需服务使用处理线程116在接收到消息时处理这些消息,而不是像背景服务所配置成那样的根据调度进行处理。\n[0034] 在一些情况下,按需处理和背景处理两者都出现在单个主机上。由此,在web服务平台110主存在单个计算机系统上的情况下,按需服务115以及背景服务120两者都可主存在同一计算机系统上。在web服务平台主存在多个计算机系统上(诸如主存在云上或另一分布式系统中)的情况下,按需服务和背景服务可主存在不同的计算系统上。\n[0035] 在一些实施例中,基于调度的背景处理包括用户调度的时序安排(scheduling)和系统调度的时序安排。由此,背景服务120可基于用户指定的调度或系统指定的调度来处理消息106。调度可由用户、或由不同软件程序定制或修改。可基于用户定义的或系统定义的调度来分配背景服务的处理线程121。\n[0036] 方法200包括web服务平台加载包括按需消息处理线程的按需消息处理服务的动作(动作220)。例如,web服务平台110可加载包括按需处理线程116的按需处理服务\n115。这些按需处理线程可被配置成在从各个不同的客户端和软件系统接收到消息时处理这些消息。在一些情况下,消息可包括各个工作项。这些工作项可被分发到多个消息处理线程。由此,每个工作项可由多个不同的处理线程处理。\n[0037] 方法200包括web服务平台实现按需消息处理服务的用以对接收到的客户端消息执行背景处理的线程的动作,其中为背景处理指定的客户端消息作为服务发起的按需任务来处理(动作230)。例如,web服务平台110可实现按需处理线程116以对消息106执行背景处理。以此方式,为背景处理指定的客户端消息可作为服务发起的按需任务来处理。\n[0038] 在一些情况下,所实现的用于背景处理的按需消息处理线程116是无尽的。即,消息线程将继续运行,直至另一消息到达。由此,消息线程继续处理给定消息,直至接收到新消息。无尽的按需消息处理线程可分配至少一个线程来驱使轮询背景处理工作项的轮询循环。例如,如图4所示,按需消息处理服务415可使用处理线程416中的至少一个来驱使轮询循环425。驱使循环来查询工作项队列以从该队列拉取工作项426。所拉取的工作项\n426A随后被发送回处理线程416以供按需处理。可在失败发生之后自动地重新初始化对为背景处理所指定的消息的按需处理。由此,当失败的确发生时,自动的重新初始化可确保处理自动地返回到正常的操作状态。\n[0039] 客户端405可将单向消息406作为中断发送到按需处理线程。这些中断可用于重启跟踪工作项正在花多长时间进行处理的计时器。使用所跟踪的处理时间,可避免按需消息处理服务所通常施加的超时阈值。因此,所分配线程417可开始轮询循环、或将该轮询循环从正在以及时的方式执行循环的线程接管,以确保正确地处理工作项。线程417还可检查轮询循环的健康,并且在需要时重新初始化该轮询循环。如果轮询循环是健康的,则web服务平台可从前一消息的处理线程接管轮询循环,而无需重新初始化步骤。在一些情况下,轮询循环可包括跨多个不同的消息继续的逻辑循环。可通过下列项中的任一项在一个或多个计算机节点中开始背景处理:随机寻址,负载均衡和消息弹回。\n[0040] 如图4所示,工作负载估计模块430可基于当前和/或过去轮询循环动作估计或以其他方式确定web服务平台410的未来工作负载。由此,如果轮询动作已是重的,则模块\n130可指示它期望重的未来工作负载431。类似地,如果轮询动作已是轻的,则模块130可指示它期望轻的未来工作负载。可将此所估计的未来工作负载发送到过程延缓模块435,过程延缓模块435基于计划中的工作负载确定过程是否应当延缓。在一些情况下,模块435可在经延缓的过程确定436中指示,要基于所估计的未来工作负载延缓至少一部分背景处理。\n[0041] 图3示出用于基于所估计的未来工作负载管理处理线程的方法300的流程图。现在将分别频繁地参考图1和图4的环境100和400的组件和数据来描述方法300。\n[0042] 方法300包括在web服务平台从客户端接收为基于调度的背景处理指定的消息的动作,其中web服务平台包括具有被配置成执行按需消息处理的一个或多个无尽线程的按需消息处理服务,并且其中无尽的按需消息处理线程分配至少一个线程来驱使轮询背景处理工作项的轮询循环(动作310)。例如,web服务平台410可从客户端405接收为基于调度的背景处理指定的单向消息406。web服务平台包括具有执行按需消息处理的一个或多个无尽的处理线程416的按需消息处理服务415。\n[0043] 如以上所提及的,无尽的按需消息处理线程417可驱使轮询循环425向前。在从处理线程416接收到所分配线程之后,循环查询工作项队列以从该队列拉取工作项426。由此,系统以“推送”方式动作,其中按需处理线程驱动轮询循环来查询工作项426A并将其发送回处理线程。线程随后可处理从轮询循环接收的工作项。\n[0044] 方法300包括web服务平台加载包括按需消息处理线程的按需消息处理服务的动作(动作320)。例如,web服务平台410可加载包括按需消息处理线程416的按需消息处理服务415。可实现按需消息处理服务的用以执行对接收到的客户端消息的背景处理的线程。为背景处理指定的客户端消息作为服务发起的按需任务来处理(动作330)。例如,处理线程416虽然通常用于执行按需消息处理服务,但是其可被配置成处理为背景处理指定的消息。处理线程可将所分配线程发送到轮询循环425以访问这些背景工作项。可响应于接收到的单向消息406来访问工作项。\n[0045] 方法300还包括基于当前和过去轮询循环动作中的至少一个来估计web服务平台的未来工作负载的动作(动作340)。例如,工作负载估计模块430可基于当前轮询循环动作、过去轮询循环动作、或指定时间段内的包括过去和当前动作的动作来估计web服务平台415的未来工作负载431。可将所估计的工作负载发送到过程延缓模块435,过程延缓模块435确定各个过程是否应当延缓,并且如果过程要延缓,则应当延缓哪些过程。\n[0046] 方法300包括基于所估计的未来工作负载延缓至少一部分背景处理的动作(动作\n350)。例如,过程延缓模块435可基于所估计的未来工作负载431确定对一个或多个背景工作项的处理延缓一时间段。在一些情况下,web服务平台410在下一工作项将要到达时计算,并且将该时间与当前时间作比较。如果差异足够大,则将延缓背景处理,因为保持运行大量时间的成本比重启背景处理的成本高。为了确保工作项将在其到达时进行处理,客户端105发送消息以在那之前开始背景处理。对于所调度的工作项,客户端基于当前队列中的所有工作项的调度定义计算下一工作项的时间。\n[0047] 针对线程416处理的阈值水平以及延缓时间段可由用户定制。要处理的工作项(即,尚未延缓的那些工作项)可分发给通过下列项中的任一项来主存背景处理的各个节点:随机寻址,负载均衡和消息弹回。由此,可在web服务平台中可靠地实现对工作项的分发。\n[0048] 因此,提供了使用web服务按需消息处理线程来实现基于调度的工作项处理的系统、方法以及计算机程序产品。此外,提供了基于所估计的未来工作负载管理对线程的处理的系统、方法以及计算机程序产品。\n[0049] 本发明可以其他具体形式体现,而不背离其精神或本质特性。所述实施例在所有方面都应当被认为只是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而非上述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。
法律信息
- 2020-11-27
未缴年费专利权终止
IPC(主分类): G06F 9/46
专利号: ZL 201110434460.1
申请日: 2011.12.12
授权公告日: 2015.05.06
- 2015-08-26
专利权的转移
登记生效日: 2015.08.05
专利权人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2015-05-06
- 2012-09-19
实质审查的生效
IPC(主分类): G06F 9/46
专利申请号: 201110434460.1
申请日: 2011.12.12
- 2012-07-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-05-10
|
2005-09-29
| | |
2
| |
2008-10-22
|
2006-09-28
| | |
3
| |
2001-06-06
|
1999-02-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |