以可最小化消息复制和消息等待时间的方式将事件分发给大量事件消费者。一种方法包括确定一事件应被发送给一组特定消费者。该方法还包括复制该事件并将各单独的副本提供给多个分发分区。该方法还包括在各分发分区中的每一个处,将事件的副本与多个传送名单一起打包以创建多个递送包。传送名单描述旨在接收该事件的多个单独的消费者。该方法还包括使用递送包将事件分发给传送名单中指定的各单独的消费者。
【技术实现步骤摘要】
本专利技术涉及事件分发方法和系统。
技术介绍
背景和相关技术计算机和计算系 统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中都有涉猎。此外,计算系统功能还可以通过计算系统的经由网络连接互连到其他计算系统的能力来增强。网络连接可包括,但不仅限于,经由有线或无线以太网的连接,蜂窝式连接,或者甚至通过串行、并行、USB或其他连接的计算机到计算机的连接。这些连接允许计算系统访问其他计算系统上的服务,并快速且有效地从其他计算系统接收应用数据。许多计算机意在通过与计算机的直接用户交互来使用。这样,计算机具有输入硬件和软件用户接口以促成用户交互。例如,现代通用计算机可包括用于允许用户向计算机输入数据的键盘、鼠标、触摸垫、相机等。另外,有各种软件用户接口可用。软件用户接口的示例包括图形用户界面、基于文本命令行的用户界面、功能键或热键用户界面等等。假定开发人员在iOS、Android、Windows Phone、Windows等之上构建移动应用程序,该移动应用程序集中于传达大众感兴趣的新闻、关于世界大事或对球迷的关于足球、美式橄榄球、曲棍球、棒球联盟或球队的信息和事实,以使它们保持最新。对于这些应用程序(以及各种其他应用程序)中的任何一个,在该球迷的最喜爱球队得分或世界上突发了某类新闻事件时弹出警报或提示的通知是极大的区分(differentiator)。该区分一般实现构建和运行服务器基础架构以将这些事件推送到供应商提供的通知信道中,这超出了集中于优化用户体验的许多移动应用程序(“app”)开发人员的技能集合。并且如果他们的应用程序非常成功,则简单的基于服务器的解决方案将会很快碰到可伸缩性上限,因为及时地将事件分发给数万或甚至数十万设备是非常有挑战性的。对于这类应用程序中的许多而言,及时性是重要的价值命题。例如,球迷在更新方面没有太大耐心。类似地,查看他们的金融投资受损阈值的各方面的个人和机构、参与大型拍卖的人、或其在Facebook上的虚拟农业帝国即将遭受所经过的飓风的袭击的玩家在更新方面通常没有太大耐心。Apple用于iOS的推送通知服务、Google用于Android的C2DM服务、以及微软用于Windows Phone的MPNS服务、以及大多数其他移动平台提供对设备的某种形式的最优共享连接(提供最大能量效率(并且因而提供最大电池效率))并允许应用程序经由相应平台的推送通知API来充分利用这一共享信道。然而,如上所述,使用这些平台来基于单个事件分发大量通知是困难的和/或需要大量计算资源。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性
技术实现思路
本文的一个实施例涉及一种可在计算环境中实施的方法。该方法包括用于以可使消息复制和消息等待时间最小化的方式来将事件分发给大量事件消费者的动作。该方法包括确定一事件应被发送给一组特定消费者。该方法还包括复制该事件并将各单独的副本提供给多个分发分区。该方法还包括在各分发分区中的每一个处,将事件的副本与多个传送名单(routing slip)打包以创建多个递送包(delivery bundle)。传送名单描述旨在接收该事件的多个单独的消费者。该方法还包括使用递送包将事件分发给传送名单中指定的各单独的消费者。提供本
技术实现思路
以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本专利技术的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本专利技术的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本专利技术的实践而获知。附图说明为了描述可获得本主题的上述和其他优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中图1示出了事件数据分发系统的示例;图2示出了事件数据获得和分发系统;以及图3示出了一种分发事件的方法。具体实施例方式本文描述的一些实施例充分利用推送通知机制,并在顶层提供允许移动和桌面开发人员规模化地并且在非常及时的分发特性的情况下利用这些推送通知信道的通知管理和分发层。一些实施例可包括通过级联和分区的分发及递送系统来执行通知的广播的方法,该系统最小化消息副本的数量并可扩展到非常大量的递送目标,同时对于每一单独的目标而言还最小化通知从入口到出口的平均流时间。一些实施例可包括一种出于系统监控以及客户机和第三方记账的目的来收集递送统计信息并将其流传输到数据仓库解决方案的方法。一些实施例可包括一种由于暂时或持久的递送错误状况而暂时或持久地将目标列入到黑名单的方法。 作为基础,一个实施例系统使用可从华盛顿州雷蒙德市的微软公司获得的Windows Azure服务总线所提供的发布/订阅基础架构,但在各种其他消息收发系统中存在着类似形式的基础架构。该基础架构提供便于所呈现的方法的所描述的实现的两种能力主题和队列。队列是用于消息的存储结构,它允许以顺序的次序来添加消息(入队)和以与添加消息相同的次序来移除消息(出队)。可由任何数量的并发客户机添加和移除消息,从而允许平抑入队侧的负载并跨出队侧的各接收者来平衡处理负载。队列还允许各实体在使消息出队时获得该信息上的锁,从而允许消费客户机对何时将消息从队列中实际删除或在对检索到的消息的处理失败的情况下它是否可被还原回队列中进行显式控制。主题是具有队列的所有特性的存储结构,但允许多个并发的现有‘订阅’,这些订阅各自允许对入队消息序列的孤立的经过滤的视图。主题上的每一订阅都产生每一入队消息的副本,假定该订阅的相关联的过滤条件肯定地匹配该消息。结果,入队到具有10个订阅(其中每一订阅具有匹配所有消息的简单的‘穿过’条件)的主题的消息将产生总共10个消息,每个订阅一个消息。 像队列一样,订阅可具有多个并发消费者,提供跨各接收者的处理负载的平衡。另一基本概念是‘事件’,就底层发布/订阅基础架构方面而言它就是条消息。在一个实施例的上下文中,事件服从对消息正文和消息属性的使用进行管控的一组简单约束。事件的消息正文一般作为不透明数据块来流动,并且一个实施例所认为的任何事件数据一般在消息属性中流动,它是作为表示该事件的消息的一部分的一组键/值对。各实施例可被配置成将来自给定输入事件的信息的副本分发给与特定作用域相关联的大量‘目标102’中的每一个,并且对于每一目标102在最小的时间中这样做。目标102可包括耦合到适配器的标识符的设备或应用程序的地址和用于访问该通知系统或基础架构的辅助数据,其中该适配器是用于某一第三方通知系统或某网络可访问的外部基础架构的。一些实施例可包括被分成三个不同的处理角色的体系结构,这些角色在下文中详细描述并且可参考图1来理解。如图1中由‘ I’、……、以及‘n’所示,处理角色中本文档来自技高网...
【技术保护点】
一种在计算环境中的以最小化消息复制和消息等待时间的方式将事件分发给大量事件消费者的方法,所述方法包括:确定事件(104)应被发送给一组特定消费者(302);复制所述事件(104?1)并将各单独的副本提供给多个分发分区(120)(304);在所述分发分区(120)中的每一个处,将所述事件的副本(104?1)与多个传送名单(128?1)一起打包以创建多个递送包(126?1)(306),所述传送名单(128?1)描述旨在接收所述事件(104?1)的多个单独的消费者;以及使用所述递送包(126?1)将所述事件(104?1)分发给所述传送名单(128?1)中指定的各单独的消费者。
【技术特征摘要】
2011.09.12 US 61/533,657;2011.10.21 US 13/278,4011.一种在计算环境中的以最小化消息复制和消息等待时间的方式将事件分发给大量事件消费者的方法,所述方法包括 确定事件(104)应被发送给一组特定消费者(302); 复制所述事件(104-1)并将各单独的副本提供给多个分发分区(120) (304); 在所述分发分区(120)中的每一个处,将所述事件的副本(104-1)与多个传送名单(128-1) 一起打包以创建多个递送包(126-1) (306),所述传送名单(128-1)描述旨在接收所述事件(104-1)的多个单独的消费者;以及 使用所述递送包(126...
【专利技术属性】
技术研发人员:C·F·瓦斯特斯,
申请(专利权)人:微软公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。