专利名称:横向扩展系统以获取事件数据的利记博彩app
技术领域:
本发明涉及数据获取。
背景技术:
背景和相关技术计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中都有涉猎。此外,计算系统功能还可以通过计算系统的经由网络连接互连到其他计算系统的能力来增强。网络连接可包括,但不仅限于,经由有线或无线以太网的连接,蜂窝式连接,或者甚至通过串行、并行、USB或其它连接的计算机到计算机的连接。这些连接允许计算系统访问其他计算系统上的服务,并快速且有效地从其他计算系统接收应用数据。许多计算机旨在通过与计算机的直接用户交互来使用。这样,计算机具有输入硬件和软件用户接口以促成用户交互。例如,现代通用计算机可包括用于允许用户向计算机输入数据的键盘、鼠标、触摸垫、相机等。另外,有各种软件用户接口可用。软件用户接口的示例包括图形用户界面、基于文本命令行的用户界面、功能键或热键用户界面等等。假定开发者正在编写旨在聚集来自各种各样的源的信息(诸如RSS或Atom格式可用的当前世界或金融新闻)并引导这种信息经过发布/订阅基础架构以便进行整合、传播和存储的应用。发布/订阅基础架构由可从华盛顿州雷德蒙市微软公司购得的WindowsAzure服务总线提供,但也以类似形式存在于各种其它消息收发系统中并允许将消息/事件发布到临时存储且使得这些消息/事件被一个或多个订阅者检索和消费。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
此处所述的一个实施例涉及发射事件的方法。该方法包括通过使用多个不同源专用的多个不同的协议与这些不同源通信来从这些不同源获取数据。该方法还包括,基于所获取的数据判断事件应发生。该方法还包括引起事件。为得到消费者的一致事件评估对所引起的事件进行标准化,而不管来自导致该事件的数据源的数据的特定形态。提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。另外的特征和优点将在以下的描述中阐述, 并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中图1示出事件数据获取系统的示例;图2示出了事件数据获取和分发系统;以及图3示出了发射事件的方法。
具体实施例方式此处所述的一·些实施例可实现横向扩展的获取基础架构,该基础架构可从大量各种各样的源收集事件数据并对其标准化。例如,可使用适于多个不同源中的每一个的协议从这些源中获取数据。数据可被标准化成事件格式,无论用于事件的数据是从何处获取的以及按照何种格式获取的,该事件格式都是一致的。这可允许这些事件被提交给发布/订阅基础架构,并允许消费者以统一的方式对待所收集的事件。一些实施例可实现跨分布式存储管理源描述的分区池并使用公共调度器框架调度从所描述的源对事件的获取的机制。一些实施例可实现基于分区所有权以及对所调度的消息收发的使用的组合,将获取作业的所有权分派以及重新分派给获取工作者的机制。一些实施例可实现基于消费受众的需求激活和停用源的机制。一些实施例可实现处理临时和持久错误并将源加入黑名单的机制。作为基础,一个实施例系统正使用可从华盛顿州雷蒙德市的微软公司购得的Windows Azure服务总线所提供的发布/订阅基础架构,但该基础架构也可以类似的形式存在于各种其他消息收发系统中。该基础架构提供促进所呈现的方法的所述实现的两种能力主题和队列。队列是用于消息的存储结构,它允许以顺序的次序来添加(入队)消息和以与添加消息相同的次序来移除(出队)消息。可由任何数量的并发客户端添加和移除消息,从而允许平抑入队侧的负载并跨出队侧的各接收者平衡处理负载。队列还允许各实体在使消息出队时获得该消息上的锁,从而允许消费客户端显式地控制何时将消息从队列中实际删除、或者在对检索到的消息的处理失败的情况下是否可将它还原回队列中。主题是具有队列的所有特性,但允许多个并发存在的‘订阅’的存储结构,这些订阅各自允许对入队消息序列的孤立的经过滤的视图。主题上的每个订阅都产生每个入队消息的副本,假定该订阅的相关联的过滤条件肯定地匹配该消息。因此,入队到具有10个订阅(其中每个订阅具有匹配所有消息的简单的‘穿过’条件)的主题的消息将产生总共10个消息,其中每个订阅一个消息。像队列一样,订阅可具有多个并发消费者,从而提供多个接收者范围内的处理负载的平衡。另一基本概念是‘事件’,就底层发布/订阅基础结构而言其就是条消息。在一个实施例的上下文中,事件服从管控消息正文和消息属性的使用的一组简单约束。事件的消息正文一般作为不透明数据块来流动,并且一个实施例所认为的任何事件数据一般在消息属性中流动,它是作为表示该事件的消息的一部分的一组键/值对。现在参考图1,一个实施例体系结构的目标是大规模地从各种各样的不同源116获取事件数据,并将这些事件转发到发布/订阅基础架构以供进一步处理。处理可包括某种形式的分析、实时搜索、或通过拉取或推送通知机制将事件重新分发到感兴趣的订阅者。一个实施例体系结构定义了获取引擎118、用于获取适配器和事件标准化的模型、用于保持关于获取源116的元数据的分区存储138、公共分区和调度模型以及用于在运行时如何使对获取源116状态的用户发起的改变流入系统而无需进一步的数据库查找的模型。在具体实现中,获取可支持具体的获取适配器从各种各样的公共和私有联网服务中获取事件,联网服务包括RSS、Atom和Odata馈源、电子邮件邮箱(包括但不限于这种支持IMAP和POP3协议的电子邮件邮箱)、像Twitter时间线或Facebook墙的社交网络信息源116、以及对像Windows Azure服务总线或Amazon的简单队列服务的外部发布/订阅基础架构的订阅。事件标准化事件数据被标准化以使事件可以由发布/订阅基础架构上的、所述事件被移交到的订阅者来实际消费。标准化在本上下文中是指,事件被映射到具有信息项的一致表示的公共事件模型上,其中该信息项在所述在各种上下文中可能是广大订阅者所感兴趣的。此处所选择的模型是键/值对的平面列表形式的事件的简单表示,该键/值对可伴随有由系统不进一步解释的单个不透明二元数据块。该事件表示可在大多数发布/订阅基础架构上轻松地表示,并且还非常清楚地映射到诸如HTTP的常见因特网协议。为了说明事件标准化 ,考虑RSS或Atom馈源条目到事件104的映射(参见图1和
2)。RSS和Atom是两个因特网标准,它们通常非常被广泛地用于按时间次序发布新闻和其他当前的信息,并且按时间次序发布该信息有助于使该信息可用于计算机程序中以结构化方式的处理。RSS和Atom共享非常类似的结构以及一组命名不同但语义相同的数据元素。因此,第一个标准化步骤是将公共名称定义为像标题或提要等在两个标准中均定义的这种语义相同的元素的键。第二,通常用相应的“本机”名称来映射仅出现在一个标准中但未出现在另一个标准中的数据。除此之外,这些种类的馈源通常带有“扩展”,扩展是未在核心标准中定义、但使用相应标准中的可扩展性工具来添加额外数据的数据项。以跨不同事件源116共享的常见方式来映射这些扩展中的一些(包括但不限于用于地理位置的GeoRSS或将结构化数据嵌入到Atom馈源中的OData),使得向其发射事件的发布/订阅基础架构上的订阅者可按照统一的方式来解释地理位置信息,而不管该数据是从RSS或Atom还是Twitter时间线获取的。继续GeoRSS示例,表示地理“点”的简单GeoRSS表达式可因此被映射到表示WGS84坐标的一对数字“纬度” / “经度”属性。带有复杂的结构化数据(诸如OData)的扩展可以实现保留复杂类型结构和数据但不会复杂化基础事件模型的映射模型。一些实施例标准化成正则的紧凑凑复杂数据表示(如JS0N),并将复杂的数据属性(例如复杂数据类型“人”的OData属性“承租人”)映射到键/值对,其中键是属性名“承租人”,而值是用以JSON序列化形式表示的名称、传记信息、和地址信息来描述人的复杂数据。如果数据源是XML文档,像它在RSS或Atom的情形中那样,则可通过将XML数据转录到保留XML所提供的结构的JSON中,但展平如属性和元素等XML细节来创建值,意味着将作为同一 XML元素节点的下属的XML属性和元素二者映射到JSON属性作为没有其它区别的“兄弟”。源和分区一个实施例体系结构在“源描述”记录中捕捉关于数据源116的元数据,该记录可被存储在源数据库138中。“源描述”可具有一组公共元素和一组数据源专用的元素。公共元素可包括源的名称、期间源116被认为有效的时间跨度间隔、人类可读的描述、以及用于进行区分的源116的类型。源专用元素取决于源116的类型并可包括用于获得对该地址所表示的资源的访问的网络地址、凭证或其他安全关键材料,并可包括元数据,该元数据指导源获取适配器或者以特定方式(如提供检查RSS馈源的时间间隔)执行数据获取,或者以特定方式执行事件转发,该特定方式为诸如,使从当前事件新闻馈源获取的各事件相隔至少60秒,使得通知接收者有机会在受限的屏幕表面上观看每个断开的新闻条目(如果这是要构建的端到端的体验的话)。在诸如源数据库138的一个或多个存储中保存源描述。可沿两个不同的轴跨这些存储以及在这些存储内对源 描述进行分区。第一个轴是按系统承租人的区分。系统承租人或“命名空间”是在系统内为各实体创建隔离范围的机制。示出一个具体的情形,如果“Fred”是实现一个实施例的系统的用户,则Fred将能够创建向Fred提供隔离的虚拟环境的承租人范围,该虚拟环境可完全独立于系统中其他源116地保存源描述和配置和状态。这个轴可作为跨各存储传播各源描述的区分因素,尤其是在承租人需要隔离已存储的元数据(可能包括诸如口令的安全敏感数据),或出于技术、管理或商业原因而需要隔离已存储的元数据的情况下。系统承租人还可表示与特定数据中心的亲合性(affnity),在该数据中心中保存源描述,并且在那里执行数据获取。第二个轴可以是按照从预定义标识符范围中选择的数字分区标识符的区分。可从源描述包含的不变量中导出分区标识符,诸如源名称和承租人标识符。可使用散列函数(许多候选中的一个是 Jenkins 散列,参见 http://www. burtleburtle. net/bob/hash/doobs.html)从这些不变量中导出分区标识符,并且可能对所得的散列值使用模函数,来将该散列值计算成分区标识符范围。将标识符范围选择为比预期存储该系统中曾保存的全部源描述所需要的最大数量的存储分区大(并且可以是显著地大)。引入存储分区通常由容量限制来激发,该容量限制要么直接与底层数据存储上的存储容量配额相关,要么与影响获取引擎118的容量限制(诸如,给定数据中心或数据中心部分的带宽约束)相关,这可导致实施例创建跨不同数据中心或数据中心部分地利用容量以满足入门带宽需求的获取分区140。存储分区拥有整个标识符范围的子集,因此源描述记录与存储分区(和访问该分区所需要的资源)的关联可从其分区标识符中直接推断。除提供存储分区轴以外,分区标识符还用于调度或获取作业,以及清楚地定义获取分区140对给定源描述的所有权关系(可能与对存储分区的关系不同)。所有权和获取分区系统中的每个源描述可为特定的获取分区140所拥有。使用清楚且唯一的所有权,因为系统不会从多个位置中的完全相同的源116并行地获取事件,因为这样可能会导致发射重复事件。为了使这点更具体,在承租人范围内定义的一个RSS馈源由系统中正好一个的获取分区140所有,并且在分区内,存在在任何给定时间点在特定馈源上运行的一个已调度的获取。获取分区140通过获得分区标识符范围的所有权的方式来获得源描述的所有权。可以使用可具有故障转移能力并可分配主/后备所有者的外部专用分区系统,或使用其中分区标识符范围在承担获取引擎角色的多个不同的计算实例上均匀分布的较简单机制,来向获取分区140分配标识符范围。在针对外部分区系统的更复杂实现中,如果系统从“冷”状态启动,意味着分区尚没有先前所有者,则该分区的所选主所有者负责播种(seed)对作业的调度。在较简单的场景中,拥有分区的计算实例拥有对调度的播种权。调度获取作业的调度需求取决于具体源的性质,但通常存在两种类型的获取模型,该获取模型在一些所描述的实施例中实现。在第一个模型中,所有者在源的网络服务上发起某种形式的连接或长期运行的网络请求,并等待数据在该连接上以数据报或流的形式返回。在通常也被称为长期轮询的长期运行的请求的情形中,源网络服务将保持该请求直到发生超时或直到数据变为可用一进而,获取适配器将在具有或不具有有效载荷结果的情况下等待该请求完成,并随后重发该请求。作为结果,该获取调度模型具有“紧凑”循环的形式,该循环在源116的所有者得知源的时候得以启动,并且其中在当前连接或请求完成或被临时中断时,立即发起新的请求或连接。由于所有者直接控制紧凑循环,因此该循环可在所有者正在运行时可靠地保持存活。如果所有者停止并重新启动,则该循环也重新启动。如果所有者改变,则循环停止,并且新的所有者启动该循环。在第二个模型中,源的网络服务不支持在该服务变为可用时产生数据的长期运行的请求或连接,而无论何时查询都立即返回的常规的请求/响应服务支持这种请求或连接。在这样的服务上,这一 点适用于许多web资源,以持续的紧凑循环来请求数据导致源116上的巨大量的负载,并且也导致显著的网络通信量,该网络通信量要么仅指示源116尚未改变,要么在最糟的情形中反复地携带相同的数据。为了平衡及时的事件获取并且不用徒劳的查询通信量使源116过载的需求,获取引擎118将由此按照“定时的”循环执行请求,其中基于间隔周期性地执行源116上的请求,该间隔平衡这些考虑并且还考虑了来自源116的提示。“定时的”循环在源116的所有者得知源的时候被启动。存在定时循环的两个值得注意的实现变型。第一个变型用于低规模、最大努力场景,并使用本地、存储器内的定时对象来调度,这使规模、控制和重新启动特性与紧凑循环的那些特性相类似。该循环被启动,并立即调度使获取作业的第一次迭代运行的定时器回调。当该作业完成(即使有错误)并且确定该循环应继续执行时,在接下来作业应被执行的瞬间调度另一个定时器回调。第二个变型使用‘经调度的消息’,这是包括Windows AzureTM服务总线的若干发布/订阅系统的一个特征。该变型以稍高的复杂度为代价提供显著较高的获取比例。调度循环由所有者来启动,并且将消息置于获取分区的调度队列中。该消息包括源描述。它随后由执行获取作业的工作者拾取,并随后使所得的事件入队到目标发布/订阅系统中。最后,它还将新的“经调度的”消息入队到调度队列中。该消息被称为“经调度的”,因为它是用它变为可供调度队列上的任何消费者检索的时间瞬间来标记的。在该模型中,获取分区140可通过具有一个“所有者”角色而被横向扩展,该所有者角色主要播种调度并且可与执行实际获取作业的任何数量的“工作者”角色配对。源更新在系统运行时,获取分区140需要能够得知要观察的新的源116以及应不再观察哪些源116。除了(下面描述的)由于检测到的不可恢复的或临时的错误而使源116列入黑名单的情形以外,关于这一点的决定通常在于用户,并且是与管理服务142交互的结果。为了传递这种改变,获取系统在底层发布/订阅基础架构中维护“源更新”主题。每个获取分区140具有针对该主题的专用订阅,该订阅具有过滤条件,该过滤条件将合格的消息约束为携带在获取分区所拥有的范围内的分区标识符的那些消息。这使管理服务142能够设置关于新的或已引退的源116的更新,并将它们发送到正确的分区140,而不需要分区所有权分布的知识。管理服务142将更新命令提交到包括源描述、分区标识符(出于前述的过滤目的)、和操作标识符的主题·,该操作标识符指示是否要向系统添加源116或者是否从系统中移除源 116。一旦获取分区140所有者已检索到命令消息,则它要么将为新的源116调度新的获取循环,要么将中断并挂起现有的获取循环、或甚至使现有的获取循环引退。列入黑名单可将数据获取失败的源116临时地或永久地列入黑名单。当源116网络资源不可用或返回与所发起的获取请求不直接相关的错误时,执行临时列入黑名单。临时列入黑名单的持续时间取决于错误的性质。通过中断常规的调度循环(紧凑或定时)并在期望另一方解决错误状况的时间瞬间调度循环的下一次迭代(经由回调或经调度的消息),来执行临时列入黑名单。当确定错误是获取请求的直接结果时执行永久列入黑名单,错误是获取请求的直接结果意味着该请求正导致认证或授权错误或者远程的源116指示某个其他请求错误。如果将资源永久列入黑名单,则在分区存储中将源116标记为已列入黑名单,并立即中止获取循环。恢复永久列入黑名单的源116需要移除存储中的黑名单标记以及可能的还有引起请求的行为改变的配置改变,并且经由源更新主题来重新启动获取循环。现在参考图2,示出了系统的替换示例。图2示出了来自大量不同源的信息被递送给大量不同目标的示例。在一些示例中,来自单个源的信息或从多个源聚集的信息可被用来创建被递送给大量目标的单个事件。在一些实施例中,这可以使用如附图2所示的扇出(fan-out)拓扑来实现。图2示出了源116。如本文稍后将讨论的,实施例可以利用获取分区140。获取分区140中的每一个可包括多个源116。可能存在大量且各种各样的源116。源116提供信息。这样的信息例如可以包括、但不限于电子邮件、文本消息、实时股票报价、实时赛事比分、新闻更新等等。图2示出了每个分区都包括获取引擎,如说明性的获取引擎118。获取引擎118从源116收集信息,并基于该信息来生成事件。在图2所示的示例中,多个事件被示为由获取引擎使用各个源来生成。使用事件104-1来进行说明。在一些实施例中,事件104-1可如以下解释的那样来标准化。获取引擎118可以是诸如因特网等网络上的、从该网络上的源116收集信息的服务。图2示出了事件104-1被发送给分发主题144。分发主题144将事件散发给多个分发分区。分发分区120-1被用作所有分发分区的类似物。分发分区各自服务于由订阅所表示的多个最终用户或设备。分发分区所服务的订阅的数目可不同于其他分发分区所服务的数目。在一些实施例中,分区所服务的订阅的数目可取决于分发分区的能力。可替代地或附加地,分发分区可基于与最终用户的逻辑或地理的接近度被选择以服务于用户。这可允许以更加及时的方式将提醒递送给最终用户。在所示示例中,分发分区120-1包括分发引擎122-1。分发引擎122_1咨询数据库124-1。数据库124-1包括关于订阅的信息,该信息具有关于相关联的递送目标102的细节。具体而言,该数据库可包括信息,诸如描述目标102的平台、目标102所使用的应用、目标102的网络地址、使用目标102的最终用户的用户偏好等等的信息。使用数据库124-1中的信息,分发引擎122-1构建包126-1,其中包126-1包括事件104 (或至少来自事件104的信息)和路由名单(slip)128-l,该路由名单标识目标102中要将来自事件104-1的信息作为通知发送到的多个目标102。包126-1随后被置于队列130-1中。分发分区120-1可包括多个递送引擎。递送引擎使各个包从队列130-1中出队并将通知递送给目标102。例如,递送引擎108-1可从队列130-1中取出包126-1并将事件104的信息发送给路由名单128-1中标识出的目标102。因此,包括事件104-1的信息的通知134能以适用于不同目标102并专用于各个目标102的多种不同的格式从各分发分区被发送给目标202。这允许在递送系统的边缘处从公共事件104-1中创建针对各个目标102进行了个别化的个别化通知134,而不是通过该递送系统运送大量个别化的通知。以下讨论现涉及可以执行的多种方法以及方法动作。虽然用特定次序讨论或用以特定次序发生的流程图示出了各个方法动作,但除非明确规定否则不需要特定次序,或因为一动作依赖于另一动作在执行该动作之前完成而需要特定次序。现在参考图3,示出了方法300。该方法包括发射事件的动作。该方法包括通过使用多个不同源专用的多个不同的协议与这些不同源通信来从这些不同源获取数据(动作302)。例如,图2示出了获取引擎118,它可用于从源116获取数据。源116中的每一个可使用不同的协议来与获取引擎118通信。该方法300还包括,基于所获取的数据,判断事件应发生(动作304)。例如,可基于来自一个或多个源的信息作出股票报价改变、赛事比分改变、电子邮件到达、文本消息发送等的判断。基于信息中的这种改变,可判断事件应被发射。方法300还包括引起事件,其中为得到消费者的一致事件评估对所引起的事件进行标准化,而不管来自导致该事件的数据源的数据的特定形态(动作306)。例如,图2示出了经标准化的事件104正从获取引擎被发射。无论引起事件104的信息来自源116中的哪个源,经标准化的事件都可具有一致的格式。
可实践方法300,其中事件包括键值对,且其中对事件标准化包括使来自获取数据的、与所获取的数据中的键对应的值在语义上映射到经标准化的事件中匹配的键。例如,事件可具有作为键值对的键“标题”以及该标题的值。来自源的数据也可具有键值对,其中键之一为“标题”。这可从来自源116的信息直接映射到事件104。语义上的映射可包括执行显式语义映射。语义映射可包括在所获取的数据与事件之间匹配键标签。语义映射可包括参考所获取的数据中的键值对的描述。例如,描述可定义数据的含义。这种描述可用于映射数据。语义上映射可包括执行隐式语义映射。可实践方法300,其中获取包括从源获取并存储元数据以便于对事件进行标准化。各方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,这些指令在由一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质物理计算机可读存储介质和传输计算机可读介质。物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD
等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可 执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上介质的组合也被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件时,计算机可执行的指令或数据结构形式的程序代码装置可以自动地从传输计算机可读介质传输到物理计算机可读存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。本发明可具体化为其他具体形式而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵 盖。
权利要求
1.一种发射事件的方法,所述方法包括 通过使用多个不同源(116)专用的多个不同的协议与所述不同源(116)通信,来从所述不同源获取数据(302); 基于所获取的数据,判断事件(104)应发生(304);以及 引起事件(104),其中为得到消费者的一致事件(104)评估对所引起的事件(104)进行标准化,而不管来自导致所述事件(104-1)的数据源(116)的数据的特定形态(306)。
2.如权利要求1所述的方法,其特征在于,所述事件包括键值对,且其中对所述事件进行标准化包括使来自所获取的数据的、与所获取的数据中的键对应的值在语义上映射到经标准化的事件中匹配的键。
3.如权利要求2所述的方法,其特征在于,在语义上映射包括执行显式语义映射。
4.如权利要求3所述的方法,其特征在于,执行显式语义映射包括在所获取的数据和所述事件之间匹配键标签。
5.如权利要求3所述的方法,其特征在于,执行显式语义映射包括参考所获取的数据中键值对的描述。
6.如权利要求2所述的方法,其特征在于,在语义上映射包括执行隐式语义映射。
7.如权利要求1所述的方法,其特征在于,获取包括从所述源获取并存储元数据以便于对事件进行标准化。
全文摘要
本发明涉及横向扩展系统以获取事件数据。发射事件。一方法包括通过使用多个不同源专用的多个不同的协议与不同源通信来从不同源获取数据。该方法还包括,基于所获取的数据判断事件应发生。该方法还包括引起事件。为得到消费者的一致事件评估对所引起的事件进行标准化,而不管来自导致该事件的数据源的数据的特定形态。
文档编号H04L12/58GK103051666SQ20121033508
公开日2013年4月17日 申请日期2012年9月11日 优先权日2011年9月12日
发明者C·F·瓦斯特斯 申请人:微软公司