利用虚拟处理代理的流处理制造技术

技术编号:15342893 阅读:49 留言:0更新日期:2017-05-17 00:17
本文描述了用于利用虚拟处理代理进行事件递送和流处理的技术。在接收到队列中的事件发布之后,运行时系统标识可能对被发布的事件感兴趣但是尚未显式地订阅所述被发布的事件的一个或多个虚拟处理代理。被发布的事件的事件信息随后被递送至被标识的虚拟处理代理。在实际递送之前,运行时系统还确定虚拟处理代理是否已被激活并且激活尚未被激活的那些处理代理。基于所接收的事件信息,一些虚拟处理代理可决定显式地提交订阅以从该队列接收更多事件。显式订阅随后可触发运行时系统向处理代理递送被订阅事件,这些被订阅事件可包括在该显式订阅被接收之前队列中已经发布的过去事件。

【技术实现步骤摘要】
【国外来华专利技术】利用虚拟处理代理的流处理背景在流处理系统中,流处理单元可与其它处理单元通信以接收用于处理的事件。这可通过从一个处理单元与另一个处理单元的直接通信或者通过发布-订阅模型完成,在发布-订阅模型中,处理单元订阅某些事件并且当这些事件被发布时接收这些事件。随着流处理系统的规模的增加,例如其中涉及数百万处理单元,利用处理单元间的直接通信技术可能是不切实际的。尽管发布-订阅模型可能看上去可行,然而传统的发布-订阅模型需要处理单元在接收与事件有关的任何信息之前显式地提交事件订阅。这可能成为问题,因为在一些情况下,处理单元或许不可能在某些事件发生之前预测要订阅什么事件。例如,被配置成处理在游戏应用的地图上发生的事件的处理单元直到游戏已经在该地图上开始才知道要订阅哪个游戏。在这样的情形中,为了使处理单元接收它感兴趣的事件,处理单元必须订阅所有可能事件,这在大规模流处理系统中同样变得不切实际且低效。本文所做出的本公开正是关于这些和其他考虑事项而提出的。概述本文描述了用于利用虚拟处理代理进行事件递送和流处理的技术。一个或多个虚拟处理代理可被创建并被配置成接收并处理流事件。一种机制(诸如队列)可被利用和/或被配置成接收来自流处理系统中的各实体的事件发布。被发布的事件还可被保持或保存以供以后在需要时检索和递送。在接收到事件发布之后,运行时系统可标识可能对接收被发布的事件感兴趣但是尚未显式地订阅被发布的事件的一个或多个虚拟处理代理。被发布的事件的事件信息随后可被递送至被标识的虚拟处理代理。在实际递送事件或事件信息之前,运行时系统可进一步确定虚拟处理代理是否已被激活,且如果处理代理尚未被激活则运行时系统可激活处理代理。其中包含的事件或事件信息随后可被递送至被激活的处理代理。基于所接收的事件或事件信息,虚拟处理代理可决定显式地提交订阅以从该队列接收更多事件。显式订阅随后可触发要被递送至处理代理的被订阅事件,这些被订阅事件可包括在该显式订阅被提交之前已在队列中发布的过去事件。通过利用本文描述的技术,虚拟处理代理可以能够订阅、接收和处理处理代理在事件在队列中被发布之前原本不知道的事件。通过利用虚拟处理代理来订阅、接收和处理事件,可改善计算资源的可扩展性、可靠性和灵活性。应该了解,上文所描述的主题还可以被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读存储介质之类的制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。附图简述图1是计算机系统图,其提供了本文公开的一种用于利用虚拟处理代理进行流处理的机制的概览描述;图2是示出队列和虚拟流的诸方面的框图;图3是示出用于将事件递送至虚拟处理代理的一个说明性过程的进一步方面的流程图;图4是示出用于由虚拟处理代理进行事件订阅和处理的一个说明性过程的方面的流程图;图5A-5D解说响应于在不同时间点在队列中发布的事件,示例虚拟处理代理的操作;以及图6是示出用于能够实现此处所提出的诸技术的计算系统的说明性计算机硬件架构的计算机架构图。详细描述本文描述了用于利用虚拟处理代理进行事件递送和流处理的技术。在本文公开的技术中,一个或多个虚拟处理代理(其在本文中可被称为“处理代理”或“PA”)可被用作用于流处理的处理单元。这些虚拟处理代理可在一个或多个服务器上执行,并且能够独立于处理代理是否被激活而可寻址(addressable)以供操作和交互。每个虚拟处理代理可被配置成发布、接收和/或处理各事件。事件可在队列中被发布,并且可进一步被保持或保存在队列中以供稍后检索。一旦事件的发布在队列中被接收,一个或多个处理代理可被标识以接收被发布事件。被标识的处理代理可包括尚未显式订阅以接收被发布事件的处理代理,这种处理代理在本文中被称为“隐式订阅者处理代理”或“隐式订阅者”。隐式订阅者的标识可基于虚拟处理代理的设置或配置而被执行,包括但不限于:要由虚拟处理代理执行的动作、虚拟处理代理的输入和输出、虚拟处理代理的状态、以及虚拟处理代理的其它可能配置。虚拟处理代理的配置可被从处理代理的声明式定义中推导出,或者用编程方式获得。被发布事件或被发布事件内包含的信息或与被发布事件相关联的信息(在本文中被称为“事件信息”)随后可被递送至被标识的隐式订阅者处理代理。在实际递送之前,支持和管理虚拟处理代理的运行时系统可确定所述隐式订阅者处理代理是否已被激活,并且如果所述处理代理尚未被激活则可激活所述处理代理。事件或事件信息随后可被递送至被激活的处理代理,在被激活的处理代理处事件或事件信息可被进一步处理。类似地,当事件发布在队列处被接收时,已显式订阅以接收被发布事件的一个或多个处理代理也可被标识并且在需要时被激活。被发布事件随后可被递送至显式订阅者处理代理以供处理。基于接收的事件或事件信息,隐式订阅者处理代理可决定更多事件需要被处理并且可进而提交显式订阅以在它们被在队列中发布时接收那些事件。取决于处理代理的配置,在显式订阅中指定的事件可包括已经发生并在队列中发布的过去事件。在这样的场景中,因为在队列中发布的事件已经被保持或存储,所以队列可检索被订阅的那些过去事件并将其递送给处理代理。当更多事件在队列中被发布时,队列可进一步将被订阅事件递送给处理代理。根据进一步方面,队列中的事件可被映射到一个或多个虚拟流或提取到一个或多个虚拟流中,并且每个虚拟流可包括在队列中被发布的事件的子集。处理代理和/或其它实体执行的事件发布和事件订阅可被定向到虚拟流而非队列。每个虚拟流可由要在其中发布的事件定义和/或由处理代理有兴趣接收的事件类型定义。如此,虚拟流可以是动态的,且虚拟流的存在可取决于要被发布的事件和/或要被递送的事件。关于本文提出的技术的这些方面和其它方面的附加细节在下面参考图1-6提供。尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中提出了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构及其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施本文描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。在以下详细描述中,将参考构成本专利技术的一部分并作为说明来示出的附图、各具体方面、或示例。现在参考附图,其中全部若干附图中相同的标号表示相同的元素,用于订阅、接收和处理事件的计算系统和方法的各方面将被描述。现在转向图1,将提供关于根据本文提出的诸方面的计算机系统和其中包括的若干组件的细节。特别而言,图1示出用于利用虚拟处理代理进行事件递送和流处理的流处理系统100的诸方面。如图1中所示,流处理系统100可包括运行时系统108,该运行时系统支持并促成流处理系统100中的各实体间的通信,所述实体包括但不局限于虚拟处理代理本文档来自技高网
...
利用虚拟处理代理的流处理

【技术保护点】
一种用于将事件递送至处理代理的计算机实现的方法,所述方法包括:接收事件的发布;基于处理代理的配置标识用于接收与所述事件相关联的信息的处理代理,其中所述处理代理没有显式订阅以接收所述事件;确定所述处理代理是否被激活;响应于确定所述处理代理没有被激活,激活所述处理代理;将与所述事件相关联的信息递送至所述处理代理;从所述处理代理接收对一个或多个事件的订阅;以及将所述一个或多个事件递送至所述处理代理。

【技术特征摘要】
【国外来华专利技术】2014.07.08 US 14/326,2391.一种用于将事件递送至处理代理的计算机实现的方法,所述方法包括:接收事件的发布;基于处理代理的配置标识用于接收与所述事件相关联的信息的处理代理,其中所述处理代理没有显式订阅以接收所述事件;确定所述处理代理是否被激活;响应于确定所述处理代理没有被激活,激活所述处理代理;将与所述事件相关联的信息递送至所述处理代理;从所述处理代理接收对一个或多个事件的订阅;以及将所述一个或多个事件递送至所述处理代理。2.如权利要求1所述的方法,其特征在于,进一步包括:确定所述订阅是否指定要被递送的一个或多个过去事件;以及响应于确定所述订阅指定要被递送的一个或多个过去事件,将所述一个或多个过去事件递送至所述处理代理。3.如权利要求1所述的方法,其特征在于,接收事件的发布包括:接收在队列中发布所述事件的请求;激活与所述事件相对应的虚拟流;以及通过所述虚拟流将所述事件发布在所述队列中。4.如权利要求1所述的方法,其特征在于,对一个或多个事件的订阅定义了虚拟流,且所述订阅是对与所述一个或多个事件相对应的所述虚拟流的订阅。5.如权利要求4所述的方法,其特征在于,激活所述处理代理包括向所述处理代理分配系统资源,以及对所述虚拟流的订阅激活所述虚拟流并引起系统资源被分配给所述虚拟流。6.如权利要求5所述的方法,其特征在于,进一步包括:当在特定时间段上没有在所述虚拟流中接收到事件时,通过回收分配给所述虚拟流的系统资源来停用所述虚拟流;以及当所述处理代理变得空闲达给定时...

【专利技术属性】
技术研发人员:H·H·索迈S·贝克夫T·梅拉米德R·L·罗迪F·张M·W·马亚克A·A·赫斯基G·克利奥特J·特林A·S·盖勒
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1