CN107438836B - 用于历史/实时/重播的数据的复杂事件处理器 - Google Patents
用于历史/实时/重播的数据的复杂事件处理器 Download PDFInfo
- Publication number
- CN107438836B CN107438836B CN201680020627.0A CN201680020627A CN107438836B CN 107438836 B CN107438836 B CN 107438836B CN 201680020627 A CN201680020627 A CN 201680020627A CN 107438836 B CN107438836 B CN 107438836B
- Authority
- CN
- China
- Prior art keywords
- event
- request message
- node
- communication interface
- operator
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了一种复杂事件处理器,其具有通信接口,其被配置为通过从一个或多个源拉取事件数据来检索事件数据并且接收被推送到该接口的至少一个实时事件流。连接到通信接口的事件处理管道包括连接在通信接口和组合器节点之间的多个运算符节点,组合器节点是被配置为组合来自源和来自实时事件流的事件数据的节点。通信接口被配置为从源检索事件并将从源检索的事件沿事件处理管道推送到组合器节点。通信接口被配置为仅响应于沿着管道在从组合器节点到通信接口的上游方向上传递的请求消息来检索和推送检索到的事件。
Description
背景技术
复杂事件处理涉及访问来自不同源的事件数据流,并且组合和分析该数据以计算可被用于控制下游***或用于其他目的的输出。复杂事件处理***将一个或多个查询应用于事件数据流,以从流中检索数据并计算结果。
下面描述的实施例不限于解决已知的复杂事件处理***的任何或所有缺点的实现。
发明内容
以下呈现了本公开的简要概述,以便向读者提供一个基本的理解。本发明内容并不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。其唯一目的是以简化的形式作为稍后呈现的更详细描述的序言呈现本文所公开的概念的选择。
描述了一种复杂事件处理器,其具有通信接口,该通信接口被配置为从至少一个源检索事件数据并且接收被推送到通信接口的包括至少一个实时/重播事件流的数据。被连接到通信接口的事件处理管道包括被连接在通信接口和作为组合器节点的运算符节点之间的多个运算符结点,组合器节点是被配置为组合从源被检索的事件数据和从实时/重播事件流推送的数据的节点。通信接口被配置为从源中检索事件并且沿着事件处理管道在从通信接口朝向组合器节点的下游方向上推送从源检索的事件。通信接口被配置为仅响应于沿着管道在从组合器节点向通信接口的上游方向上传递的请求消息来检索和推送检索到的事件。
通过参考结合附图所考虑的以下详细描述,许多伴随的特征可以更容易理解并且变得更好理解。
附图说明
从根据附图阅读的下面的具体实施方式,本说明书将被更好地理解,其中:
图1是具有与实时/重播的数据流和历史数据源通信的历史数据协议的复杂事件处理器的示意图;
图2是更详细的复杂事件处理器的示意图;
图3是复杂事件处理器的查询计划的示意图;
图4是在复杂事件处理器的通信接口处的方法的流程图;
图5是在使用点事件批次的复杂事件处理器的运算符节点处的方法的流程图;
图6是在使用点事件批次的复杂事件处理器的组合器处的方法的流程图;
图7是在使用点或间隔事件批次的复杂事件处理器的运算符节点处的方法的流程图;
图8图示了在其中复杂事件处理器的实施例可以被实现的示例性基于计算的设备。
在附图中相同的附图标记用于指明相同的部件。
具体实施方式
以下结合附图提供的详细描述旨在作为本实施例的描述,并不旨在表示在其中本实施例可以被构造或利用的唯一形式。该描述阐述了示例的功能和用于构建和操作示例的步骤序列。然而,相同或等同的功能和序列可以通过不同的示例来实现。
图1是实现历史数据协议的复杂事件处理器100的示意图。复杂事件处理器100与将数据推送到复杂事件处理器的实时/重播的事件流104以及从其哪个数据将被拉取的诸如历史事件存储装置106的一个或多个事件源通信。历史事件存储装置是任何带时间戳的事件数据的计算机可访问记录,并且图1的示例示出了历史事件存储装置,尽管使用从其复杂事件处理器将拉取数据的任何事件源也是可以的。在下面描述的示例中,为了举例,复杂事件处理器从历史事件存储装置中拉取数据。然而,使用历史事件存储装置并不是必须的,可以使用任何类型的事件源,由复杂事件处理器从事件源中拉取数据。
除了能够从一个或多个源拉取事件数据之外,复杂事件处理器接收例如从实时或重播的事件流中接收事件数据,事件数据被推送到复杂事件处理器。实时事件流104可以来自任何实体,该任何实体可以以复杂事件处理器100可访问的形式将诸如传感器读取的带时间戳的事件数据或其他事件数据的实时流输出到通信网络110。实时事件流上的时间戳可以是显式的(即由原始源提供)或隐式的(即,例如基于挂钟***时间由处理器入口添加)。重播的事件流是已经被观察和记录的带时间戳的事件数据流,并且以与它被观察的相同的形式被重播。实时或重播数据流104的源的示例的非穷尽列表是:家庭中的智能家庭暖气计、车辆中的光传感器、患者上的医疗传感器、智能电话中的GPS传感器、输出感测到的业务事件数据的电信网络节点、从制造工厂控制***输出传感器数据的制造控制服务器、输出搜索事件数据的信息检索引擎等。
复杂事件处理器100包括用于查询实时/重播事件流104和历史事件存储装置106(或其他源)的功能性,以便访问来自这些源的数据并计算输出。实时/重播事件流104和历史事件存储装置106可以被认为是形成由复杂事件处理器查询的数据库102。数据库102中的事件数据是带时间戳的,并且可以被存储为点事件数据和/或间隔事件数据。点事件数据包括带时间戳的传感器读数,以及可选的传感器类型指示符、地址或参考项。时间戳是诸如应用时间的单个时间,是软件应用控制传感器108观察、生成或记录传感器读数的时间。间隔事件数据包括关于在时间间隔期间观察到的传感器读数的数据,以及针对记录间隔的开始和结束的每个间隔事件的两个边缘时间戳。
复杂事件处理器100包括多个运算符节点,其执行处理以查询包括历史事件存储装置106和实时/重播事件流104的数据库102。复杂事件处理器100实现用于在运算符结点间传递的通信协议,以这种方式以使得历史事件数据能够以考虑实时或重播事件流数据的时间戳和历史事件数据的时间戳的方式被有效地且准确地与实时或重播事件数据流组合。不是重放来自历史数据源106的所有数据并等待获得具有满足特定标准的时间戳的历史事件数据,而是该协议使得相关的历史事件数据能够在需要它时被推送到复杂事件处理器中。以这种方式,将实时或重播事件流数据以有效和准确的方式来与历史事件数据组合。复杂事件处理器能够更有效地查询包括实时/重播事件流104和历史事件存储装置106的数据库。它计算输出到诸如控制***114或最终用户设备112的下游***的查询结果。控制***114可以使用查询结果来控制诸如家用暖气***、医疗装置、通信网络或其他的目标设备或***116。
复杂事件处理器是使用软件和/或硬件实现的计算机。例如,可以使用服务器场中的多个服务器、使用一个或多个web服务器、或以其它方式来在数据中心中实现复杂事件处理器。可以使用诸如虚拟机或物理机器之类的分离的计算实体来实现每个运算符节点。在其他示例中,在相同的计算实体处实现运算符节点。
图2是包括通信接口200和至少一个查询计划216的复杂事件处理器100的示意图。在该示例中示出了一个查询计划216,但是实际上可以使用许多查询计划并且这些查询计划可能比图2中所图示的简单查询计划更复杂。查询计划包括用于实现查询以从至少一个实时或重播事件流104和至少一个历史事件存储装置106中提取数据以及从提取的数据计算输出的处理管道。在该示例中,查询计划被表示为没有循环的有向图的多个节点202、204、206、208、210、212、214。每个节点是运算符节点,表示用于计算诸如过滤数据、聚合数据、计算统计、检测模式、移除异常值、平滑处理或其他操作的操作的计算功能性。节点中的至少一个是组合器节点206,其计算组合来自至少一个实时或重播流104和来自历史事件存储装置106的数据的输出。术语“组合”用于指代来自至少两个不同源的任何接合、时间接合、或者事件数据的联合。组合器节点是时间组合器,其是考虑了它所组合的事件数据的时间戳的组合器。例如,通过计算实时或重播流上的事件数据与历史事件数据之间的差异,该历史事件数据具有在和实时或重播事件数据的时间戳相关的指定的时间段期间的时间戳。这样使得可以用历史数据丰富实时或重播流。
查询计划可以由软件开发者并且使用使得历史事件数据能够从历史事件存储装置106被检索的历史数据协议在复杂事件处理器处被预先配置。
图3是更详细的图2的查询计划的示意图。将实时或重播事件数据输入到运算符节点208,该运算符节点208将该事件数据转发到运算符节点210。运算符节点210对实时或重播事件数据计算诸如去噪的指定操作,并将所得到的事件数据传递到时间组合器206。
时间组合器节点206被配置为对它从实时或重播源接收到的事件数据与来自历史事件存储装置106的事件数据的执行时间组合操作。然而,来自历史事件存储装置106的数据不是简单地被重播,因为这将是耗时的并且花费显著的通信资源来访问可能是远程和大型的、来自历史事件存储装置106的数据。来自历史事件存储装置106的数据被推送到运算符节点200中,然后利用在运算符节点200和204处被计算出的操作,向下流经管道至时间组合器节点206。历史事件所通过的管道的部分可以被称为历史事件管道。
历史事件数据的推送仅仅是响应于在本文中被称为反向标号消息的请求消息而发生,这些消息在从时间组合器节点206到接合历史事件存储装置的通信接口200的上游方向(由箭头300指示)上被通过。在适当的时间发送反向标号消息,使得它们引发的历史事件数据被恰好及时地注入到查询计划中以到达时间组合器206,以便在与来自实时或重播流的适当的带时间戳的事件数据相同的时刻在组合器节点206处可用。
当事件数据向下流经管道至时间组合器节点206时,在诸如节点200和204的运算符节点处计算操作。运算符节点处的操作可以使用前一个数据来计算输出。例如,计算最后一分钟期间的平均温度需要一分钟的数据。因此,被布置在时间t处计算平均温度的运算符节点需要得到来自时间t-60秒的数据。在一些示例中,中间运算符节点存储反向功能(例如如图3所图示的在节点204处由符号f-1),其采用时间作为输入并采用与由运算符节点实现的操作的时间操纵相关的数量调整的时间作为输出。根据在运算符节点处实现的操作的类型,可以从反向功能库中选择反向功能。在本文档中稍后将给出关于反向功能的更多细节。
时间组合器节点206计算事件数据的任何合适的组合,并将结果作为实时事件数据输出到运算符节点212。运算符节点212将其结果传递到节点214,节点214可以存储结果或输出实时结果至下游***。
反向标号消息是请求来自历史事件存储装置的事件数据的消息。反向标号消息包括用于从历史事件存储装置中检索数据的一个或多个时间,以及可选地从历史事件存储装置中检索的事件的数量。预期事件的附加非时间属性可以经由反向标号信道而被传递。例如,仅具有给定键的事件可以被请求。在通信接口200和时间组合器206之间的运算符节点(被称为中间节点)每一个都知道要向其发送反向标号消息的下一个上游运算符节点的地址或参考。中间节点可以在反向标号消息中修改一个或多个时间。中间节点可以通过改变从历史事件存储装置中将被检索的事件的数量来修改反向标号消息。这在下面更详细地描述。
在图3的示例中,节点206中的单词“左”和“右”是示例,其中“左”表示实时流以及“右”表示历史流。然而,这只是一个示例。“左”表示历史以及“右”表示实时也是可以的。
图4是在接合到实时/重播事件流以及与历史事件存储装置的通信接口200处的方法的流程图。通信接口接收400反向标号消息。反向标号消息包括一个或多个时间。例如,在点事件被存储在历史事件存储装置中的情况下,它可以包括单个时间。在历史事件存储装置保存间隔事件的情况下,反向标号消息可以包括至少两个时间、时间间隔的起始边缘事件时间(称为开始时间)和结束边缘事件时间(称为结束时间)。通信接口使用反向标号消息中的一个或多个时间以从历史事件存储装置中检索402历史事件数据。例如,在历史事件存储装置是带时间戳的点事件数据的数据库的情况下,其可以使用数据库的时间戳索引来快速有效地检索带有匹配反向标号消息中的时间的时间戳的历史事件数据。例如,在历史事件存储装置是带时间戳的点事件数据和间隔事件数据的数据库的情况下,它可以使用间隔索引来有效地检索与以反向标号指定的时间重叠的事件。历史源可以被配置为跟踪已发送的事件以避免重复。历史源可以将间隔事件的存储处理为具有两个时间戳的一个事件(例如数据库中的一行),或者具有一个时间戳各自分别表示间隔的开始和结束的两个边缘事件(例如数据库中的两行)。
通信接口将检索的历史事件数据形成为批次。例如,如果一个批次未被填充,则通信接口等待下一个反向标号消息,从历史事件存储装置中检索更多数据作为结果,并填充该批次。事件的批次被推送404到查询计划的管道中,并且该过程如图4中所指示的在历史事件源处重复该方法。注意,通常将事件作为批次发送,但在需要时可以逐个地发送。
在一个示例中,通信接口接收包括至少一个时间的请求,并且响应于该请求,它从事件存储装置中检索事件,其中事件具有与至少一个时间相关的时间戳;并且通信接口将检索到的事件推送到复杂事件处理器的历史事件管道中。
图5是在诸如节点200或节点204的中间节点处的方法的流程图。在该示例中,历史事件存储装置保存点事件而不是间隔事件。中间节点在沿着查询计划从通信接口朝向时间组合器节点的下游方向上接收并转发500事件批次。中间节点更新502它所保存的事件记录。事件记录保存最近已经到达中间节点的事件的副本。中间节点在从时间组合器节点朝向通信接口的上游方向上接收504传入反向标号消息。如上面所解释的,传入反向标号消息包括一个或多个时间。中间节点可选地计算506一个或多个传出请求时间。例如,如上所述,中间节点使用反向功能来从传入反向标号消息中计算出传出请求时间。以这种方式,可以考虑由中间节点在下游方向上(朝向时间组合器节点)引入的任何时间和/或持续时间。
中间节点现在具有一个传出请求时间(或多个时间),并且在一些示例中,它具有(从反向标号消息)要被检索的事件数据的数量。中间节点检查508其事件记录,以查看它是否需要更多的输入以利用与传出请求时间相关的准则计算输出。在反向标号消息中指定数量的情况下,中间节点检查508它在其事件记录中是否具有足够的这种数据。如果一个或多个检查成功,则该过程返回到接收和转发事件批次的步骤500。否则,中间节点不得不通过生成和发送510一个或多个传出反向标号消息来请求更多的历史事件数据。
在一个示例中,在包括至少一个历史事件源和至少一个实时或重播事件源的复杂事件处理管道的多个运算符节点中的任一个处的方法,包括:
接收来自运算符中的一个的反向标号消息,所述反向标号消息在从所述历史事件源到组合器节点的下游方向上在所述管道中继续,所述反向标号消息包括至少第一请求时间;
使用反向功能从所述第一请求时间计算第二请求时间;和
在朝向所述历史事件源的上游方向上将包括所述第二请求时间的另一个反向标号消息发送到所述管道的另一运算符节点。
图6是时间组合器节点处的示例方法的流程图。时间组合器节点从至少一个实时事件流或重播事件流接收600事件批次。事件批次的接收被用于驱动反向标号消息的生成和发送,如现在所述的。
时间组合器节点使用接收到的事件批次中的事件数据的时间戳来计算602一个或多个时间。这些时间将被用于从历史事件存储装置中检索事件数据。例如,时间组合器节点存储用于以考虑要被组合的数据的时间戳的方式组合数据的功能。该功能可以与接收到的批次中的事件数据的时间戳一起被使用,以计算时间。在一个示例中,时间组合器节点计算一个星期前的历史事件数据与当前接收到的实时/重播事件数据的联合。在另一示例中,时间组合器节点计算一年前的历史事件数据与当前接收到的实时/重播事件数据相比之间的差异。在另一个示例中,时间组合器节点计算当前月的实时/重播事件数据和在一年之前的相同月内的历史事件数据的平均值。
时间组合器生成并向通信接口发送604反向标号消息。反向标号消息包括历史事件存储装置的地址或参考。它还包括用于从历史存储装置中检索事件数据的计算出的时间。
时间组合器节点继续接收606实时/重播事件批次(并且生成和发送反向标号消息)。它还响应于反向标号消息接收608从通信接口推送的历史事件的批次。当时间组合器节点具有用于组合所需的实时/重播事件数据和历史事件数据(由其功能指定的),它将其功能应用于事件数据并计算610输出。组合的事件数据可选地在批次中被输出612。
在一个示例中,在组合器节点处的方法包括接收来自实时/重播事件流的事件;使用所接收的事件来计算一个或多个时间以用于访问来自历史事件源的历史事件数据;以及将包括所计算出的时间的反向标号消息发送到将所述组合器节点连接到与所述历史事件存储装置接合的通信接口的历史事件管道的运算符节点。
图7是在点和间隔事件二者被支持的情况下在中间节点处的方法的流程图。在这种情况下,历史事件存储装置保存点事件和间隔事件二者。图7类似于图5并且相同的附图标记用于表示相同的步骤。
中间节点保持700传出反向标号记录。这是中间节点最近已经发送的反向标号消息的记录。中间节点在沿着查询计划从通信接口朝向时间组合器节点的下游方向上接收并转发500事件批次。中间节点更新502它所保存的事件记录。事件记录保存最近已经到达中间节点的事件的副本。中间节点在从时间组合器节点朝向通信接口的上游方向上接收504传入反向标号消息。如上面所解释的,传入反向标号消息包括一个或多个时间。中间节点可选地计算506一个或多个传出请求时间。例如,如上所述,中间节点使用反向功能来从传入反向标号消息计算出传出请求时间。以这种方式,可以考虑由中间节点在下游方向上(朝向时间组合器节点)引入的任何时间和/或持续时间。
中间节点现在具有一个传出请求时间(或多个时间),并且在一些示例中,它具有(从反向标号消息)要被检索的事件数据的数量。中间节点检查508其事件记录,以查看它是否需要更多的输入来计算具有与传出请求时间有关的准则的输出。在反向标号消息中数量被指定的情况下,中间节点检查508它在事件记录中是否有足够的这种数据。如果检查508成功,则该过程返回到接收和转发事件批次的步骤500。否则,中间节点不得不通过生成510个一个或多个传出反向标号消息来请求更多的历史事件数据。
中间节点可以通过检查702其传出反向标号记录来避免重复的反向标号消息。然后,它在上游方向上向通信接口发送去重复的反向标号消息。然后,该过程返回到具有反向标号记录的更新的步骤700。在支持间隔事件的情况下,以这种方式使用反向标号记录来移除重复项可以提高操作的效率。
现在给出在一些示例中关于由运算符节点使用的关于反向功能的更多细节。反向功能采用来自传入反向标号消息中的一个或多个时间作为输入。它为它接收的每个时间计算一个新的时间,以便允许运算符节点自己计算其对传入历史事件数据的操作所花费的时间。例如,假设运算符节点计算具有落入10分钟时间间隔中的时间戳的传入历史事件数据的平均值。反向功能将从反向标号消息中请求的时间中减去10分钟,并请求足够的事件来填充这10分钟窗口。
对于以下类型的运算符,反向功能可用并且可以由软件开发者预先指定,可以从反向功能库中自动选择,或者可以通过静态分析被自动地计算出:
不改变事件的时间戳的运算符,
具有受限时间操纵的运算符,
合并运算符,
重组运算符,
多播运算符。
对于运算符,在反向功能是不可能的情况下,诸如状态运算符和在非时间基础上改变寿命的运算符(例如数据相关的窗口运算符),然后定义策略,诸如生成失败消息或读取来自具有最早可用时间戳的历史事件存储装置中的事件(从时间开始读取)。
也可以在复杂事件处理器的操作之前执行历史事件处理管道的静态分析。静态分析可以访问历史事件管道的运算符节点的反向功能,并将它们聚合以计算要由通信接口使用以用于从历史事件源检索历史事件数据的一个或多个规则和/或准则。静态分析可以计算要由通信接口使用以用于检索历史事件数据的数量和/或时间戳准则。包括规则和/或准则的静态分析的结果在运行时可用于通信接口,使得通信接口能够在查询计划的执行期间访问适当的历史事件数据并将其推送到历史事件管道中。在这种情况下,反向标号消息不由运算符节点本身处理,而是直接在源之间处理。
也可以使用静态分析和反向标号消息方法的组合。例如,静态分析可以考虑历史事件管道的一些运算符节点,并且反向标号消息可以由历史事件管道的其他运算符节点使用。在这种情况下,在静态分析中考虑的运算符节点可以简单地传递它们接收的任何反向标号消息。此外,静态分析可用于通过对数据存储装置的更复杂的请求来替代管道的历史部分中的部分运算符。例如,管道的历史部分中的过滤器运算符可以被对存储装置的更精确请求所替换,该请求检索满足过滤条件的数据。
备选地或另外,本文所描述的任何一个或多个运算符节点的功能性可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以被使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***的***(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
图8图示了可以被实现为任何形式的计算和/或电子设备的示例性基于计算的设备800的各种组件,并且在其中可以实现具有用于组合历史事件数据和实时/重播事件数据的协议的复杂事件处理器的实施例。
基于计算的设备800包括一个或多个处理器802,其可以是微处理器、控制器或任何其他用于处理计算机可执行指令以控制设备的操作的合适类型的处理器,以便使用图4到图7的方法中的一个或多个来组合历史事件数据和实时/重播事件数据。在一些示例中,例如在片上***架构被使用的情况下,处理器802可以包括一个或多个固定功能块(也称为加速器),其以硬件(而不是软件或固件)实现图4至图7中任一个的方法的一部分。包括操作***804的平台软件或者任何其他合适的平台软件可以在基于计算的设备处被提供,以使应用软件能够在设备上被执行。可以在存储器812处提供具有历史数据协议的复杂事件处理器808的全部或部分。数据存储装置810保存时间组合器节点功能、中间节点反向功能、历史事件数据、实时/重播事件数据、时间等数据。
可以使用可由基于计算的设备800访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可以包括例如计算机存储介质,诸如存储器812和通信介质。诸如存储器812的计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其它光存储器、磁带盒、磁带、磁盘储存器或其他磁存储设备或可用于存储用于由计算设备访问的信息的任何其它非传输介质。相比之下,通信介质可以实现计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,诸如载波或其他传输机制。如本文所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应被解释为传播信号本身。传播信号可以存在于计算机存储介质中,但传播信号本身不是计算机存储介质的示例。尽管计算机存储介质(存储器812)被示出在基于计算的设备800内,但是将理解的是,储存装置可以被分布或定位在远处并且经由网络或其他通信链路(例如使用通信接口814)进行访问。通信接口814可以用于经由通信网络来与实时/重播事件源104和历史事件存储装置106进行接合。
基于计算的设备800可选地包括输入/输出控制器816,输入/输出控制器816被布置为将显示信息输出到显示设备818,显示设备818可以与基于计算的设备800分离或集成。显示信息可以提供图形用户接口。输入/输出控制器816还被布置为接收和处理来自诸如用户输入设备820(例如,鼠标、键盘、照相机、麦克风或其他传感器)的一个或多个设备的输入。在一些示例中,用户输入设备820可以检测语音输入、用户手势或其他用户动作,并且可以提供自然用户接口(NUI)。该用户输入可以用于指定时间组合器节点的功能,指定中间节点的反向功能,定义查询计划,指定实时/重播事件流,指定历史事件存储装置以及其他目的。在一个实施例中,如果显示设备818是触敏显示设备,则显示设备818也可以用作用户输入设备820。输入/输出控制器816还可以将数据输出到除了显示设备之外的设备,例如,本地连接的打印设备。
输入/输出控制器816、显示设备818和用户输入设备820中的任何一个可以包括NUI技术,其使得用户能够以自然的方式与基于计算的设备进行交互,而不受诸如鼠标、键盘、遥控器等等之类的输入设备所强加的人为约束。可以提供的NUI技术的示例包括但不限于依赖于语音和/或话音识别、触摸和/或触控笔识别(触敏显示器)、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和话音、视觉、触摸、手势和机器智能的那些NUI技术。可以使用的NUI技术的其他示例包括意图和目标理解***、使用深度相机(例如立体相机***、红外相机***、rgb相机***及其组合)的运动手势检测***、使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示器、头部、眼睛和凝视跟踪、沉浸式增强现实以及用于使用电场感测电极(EEG和相关方法)感测脑活动的虚拟现实***和技术。
在一个示例中,存在一种复杂事件处理器,包括:
通信接口,所述通信接口被配置为通过从至少一个事件源拉取事件数据来从所述至少一个事件源检索所述事件数据并且接收被推送给所述通信接口的包括至少一个实时/重播事件流的数据;以及
事件处理管道,所述事件处理管道被连接到所述通信接口并且包括连接在所述通信接口和作为组合器节点的运算符节点之间的多个运算符节点,所述组合器节点被配置为组合来自所述源和来自所述活动/重播事件流的事件数据;
所述通信接口被配置为从所述源检索事件并且沿着所述事件处理管道在从所述通信接口朝向所述组合器节点的下游方向上推送从所述源检索的所述事件;
所述通信接口被配置为仅响应于沿着所述管道在从所述组合器节点到所述通信接口的上游方向上传递的请求消息来从所述源检索和推送所述事件。
例如,所述组合器节点被触发以响应于在所述组合器节点处的所述实时/重播流的接收而生成和发送请求消息。
例如,所述请求消息是包括至少一个请求时间的反向标号消息。
例如,所述运算符节点中的一个或多个各自存储指定如何改变在由所述运算符节点接收的反向标号消息中的一个或多个时间的反向功能。
例如,所述运算符节点中的一个或多个被配置为改变在由所述运算符节点接收的反向标号消息中的一个或多个时间,并且生成和发送包括改变的一个或多个时间的传出反向标号消息。
例如,所述请求消息包括用于从所述源检索点和/或间隔事件的一个或多个时间。
例如,所述源是包括间隔索引的存储装置,并且所述请求消息包括用于从所述存储装置检索点和/或间隔事件的一个或多个时间,间隔事件包括起始边缘事件和结束边缘事件。
例如,所述请求消息包括要从所述源检索的事件的数量或数据的量。
例如,所述运算符节点中的一个或多个被配置为基于在所述运算符节点处定义的操作来修改要从所述源检索的所述事件的数量。
例如,所述运算符节点中的一个或多个被配置为在接收到传入请求消息时根据在运算符节点处接收到的所检索的事件数据的记录和由所述传入请求消息请求的事件数据之间的差异,生成并发送零个、一个或多个传出请求消息至所述通信接口。
例如,所述运算符节点中的一个或多个存储在所述运算符节点处接收的事件的记录。
例如,所述运算符节点中的一个或多个存储在运算符节点处接收的反向标号消息的记录,并且被配置为使用所述反向标号消息的记录来将发送重复的反向标号消息最小化。
例如,所述通信接口被配置为通过形成事件的批次来推送经检索到的事件。
在一个示例中,存在一种在复杂事件处理器处的方法,包括:
接收至少一个实时/重播事件流,并且将所述实时/重播事件推送到事件处理管道中的组合器节点;
从至少一个事件源检索事件,并且沿着所述事件处理管道在从通信接口朝向所述组合器节点的下游方向上推送从所述源检索的事件;以及
在所述组合器节点处将所述实时/重播事件流与经检索的事件组合;
其中检索和推送经检索的事件仅响应于沿着所述管道在从所述组合器节点到所述通信接口的上游方向上传递的请求消息而发生。
在一个示例中,紧接在上面描述的方法包括经由一个或多个运算符节点将所述请求消息从所述组合器节点发送到所述通信接口,以及在所述运算符节点中的一个或多个处,改变由所述运算符节点接收到的所述请求消息中的一个请求消息中的一个或多个时间,以及生成和发送包括改变的一个或多个时间的一个或多个传出反向标号消息
例如,该方法包括使用所述请求消息中的一个或多个时间以从所述事件源检索点和/或间隔事件。
例如,该方法包括:经由一个或多个运算符节点将所述请求消息从所述组合器节点发送到所述通信接口,以及在运算符节点中的一个或多个处,在接收到传入请求消息时,根据在所述运算符节点处接收到的经检索的事件数据记录和由所述传入请求消息所请求的事件数据之间的差异,生成并发送零个、一个或多个传出请求消息至所述通信接口。
例如,该方法包括:经由一个或多个运算符节点将所述请求消息从所述组合器节点发送到所述通信接口,以及在所述运算符节点中的一个或多个处,存储在所述运算符节点处接收到的反向标号消息的记录,以及使用所述反向标号消息的记录来将发送重复的反向标号消息最小化。
在一个示例中,存在具有设备可执行指令的一个或多个设备可读介质,所述设备可执行指令在由计算***执行时指示所述计算***执行步骤,所述步骤包括:
将实时/重播事件推送到事件处理管道中的组合器节点;
从至少一个事件源检索事件并在从通信接口朝向所述组合器节点的下游方向上将经检索的事件推送到在通信接口和所述事件处理管道中的所述组合器节点之间连接的运算符节点;以及
在所述组合器节点处组合所述实时/重播事件流与经检索的历史事件;
其中检索和推送经检索的事件考虑了在所述通信接口和所述组合器节点之间的所述运算符节点的静态分析的结果。
例如,该步骤包括:使用静态分析来计算要由在所述运算符节点处的操作使用的检索到的事件数据的量和/或时间戳准则。
本文中使用的术语“计算机”或“基于计算的设备”是指具有处理能力的任何设备,使得其可以执行指令。本领域技术人员将认识到这种处理能力被并入许多不同的设备中,并且因此术语“计算机”和“基于计算的设备”各自包括PC、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏机、个人数字助理和许多其他设备。
本文所描述的方法可以通过机器可读形式的软件在有形存储介质上执行,例如,以包括计算机程序代码装置的计算机程序的形式,该程序代码装置适于当程序在计算机上运行并且其中计算机程序可以被实施在计算机可读介质上时执行本文所描述的任何方法的所有步骤。有形存储介质的示例包括包含诸如盘、拇指驱动器、存储器等的计算机可读介质的计算机存储设备,并且不包括传播信号。传播信号可以存在于有形的存储介质中,但传播信号本身不是有形存储介质的示例。软件可以适用于并行处理器或串行处理器上的执行,使得方法步骤可以以任何合适的顺序被执行或同时被执行。
这确认了软件可以是有价值的、可单独交易的商品。它旨在包含运行在“哑”或标准硬件上或控制“哑”或标准硬件的软件来执行所需的功能。它还旨在包含“描述”或定义硬件的配置的软件,诸如用于设计硅芯片或用于配置通用可编程芯片以执行所需功能的的HDL(硬件描述语言)软件。
本领域技术人员将认识到,被利用来存储程序指令的存储设备可以分布于网络上。例如,远程计算机可以存储被描述为软件的过程的示例。本地或终端计算机可以访问远程计算机并下载部分或全部软件以运行该程序。可备选地,本地计算机可以按需下载软件的块,或者在本地终端处执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规技术,软件指令的全部或一部分可以由诸如DSP、可编程逻辑阵列等的专用电路来执行。
如对于本领域技术人员将是显而易见的,本文所给出的任何范围或设备值可以被扩展或改变,而不会失去所寻求的效果。
尽管已经以结构特征和/或方法动作特有的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于上述特定特征或动作。相反,上述特定特征和动作作为实施权利要求的示例形式而被公开。
应当理解,上述的益处和优点可以涉及一个实施例或可以涉及若干实施例。实施例不限于解决任何或全部所述问题的实施例,或者具有任何或全部所述益处和优点的实施例。还应当理解,提及“一”项是指这些项中的一个或多个。
本文所描述的方法的步骤可以以任何合适的顺序进行,或者在适当的情况下同时进行。另外,在不脱离本文所描述的主题的精神和范围的情况下,可以从方法的任何一个中删除个体块。上述示例的任何一个的方面可以与所描述的其它示例的任何一个的方面组合以形成其他示例而不失去所寻求的效果。
术语“包含”在本文中用于意指包括所标识的方法块或元素,但是这些块或元素不包括排他列表,并且方法或装置可以包含附加的块或元素。
术语“子集”在本文中用于指代恰当的子集,使得集合的子集不包括集合的所有元素(即,集合中的至少一个元素从子集中缺失)。
应当理解,仅仅通过示例给出以上描述,并且本领域技术人员可以进行各种修改。上述说明书、示例和数据提供了示例性实施例的结构和用途的完整描述。虽然上面已经以某种程度的特殊性或者参考一个或多个个体实施例描述了各种实施例,但是在不脱离本说明书的精神或范围的情况下,本领域技术人员可以对所公开的实施例进行大量的改变。
Claims (21)
1.一种用于事件处理的***,包括:
至少一个处理器,适于执行与事件处理管道的节点相关联的计算机可执行指令;
通信接口,所述通信接口被通信地耦合到所述至少一个处理器并且被配置为:
响应于请求消息从至少一个源拉取第一事件数据;并且
接收被推送到所述通信接口第二事件数据,所述第二事件数据与至少一个实时/重播事件流相关联;以及
至少一个计算机可读介质,被通信地耦合到所述至少一个处理器和所述事件处理管道的节点,所述事件处理管道的节点被存储在所述计算机可读介质上并且由所述处理器可执行,所述节点包括:
第一组运算符节点,被连接在所述通信接口和组合器节点之间,所述第一组运算符节点被配置为至少部分地基于所述第一事件数据提供第三事件数据;
第二组运算符节点,被连接在被连接在所述通信接口和组合器节点之间,所述第二组运算符节点被配置为至少部分地基于所述第二事件数据提供第***数据;以及
所述组合器节点被配置为:
至少部分地基于所述第***数据中的至少一些第***数据来确定请求时间;
经由所述第一组运算符节点向所述通信接口提供包括所述请求时间的所述请求消息;
组合所述第三事件数据的至少一些第三事件数据和所述第***数据的至少一些第***数据。
2.根据权利要求1所述的***,其中所述组合器节点被配置为通过执行以下项中的至少一项来组合所述第三事件数据的所述至少一些第三事件数据和所述第***数据的所述至少一些第***数据:
所述第三事件数据的所述至少一些第三事件数据和所述第***数据的所述至少一些第***数据的联合、接合,或者时间接合。
3.根据权利要求1所述的***,其中所述组合器节点还被配置为确定与所述第***数据的所述至少一些第***数据相关联的时间戳并且至少部分地基于所述时间戳确定所述请求时间。
4.根据权利要求1所述的***,其中所述第一组运算符节点的所述运算符节点的运算符节点被配置为:
接收所述请求消息;
至少部分地基于所述请求消息中的所述请求时间和由所述运算符节点引入的延迟时间来确定改变的请求时间;
至少部分地基于所述请求消息和所述改变的请求时间确定改变的请求消息;
向所述通信接口提供所述改变的请求消息以代替所述请求消息。
5.根据权利要求4所述的***,其中所述运算符节点的至少一个运算符节点被配置为至少部分地基于存储的反向功能改变所述请求时间。
6.根据权利要求1所述的***,其中:
所述源被配置为存储与间隔索引相关联的所述第一事件数据;
所述请求消息包括将被用于从所述源检索点和/或间隔事件的一个或多个时间;
间隔事件包括起始边缘事件和结束边缘事件。
7.根据权利要求1所述的***,其中所述请求消息还包括以下项中的至少一项:要从所述源检索所述第一事件数据的事件的数目的数据或者要从所述源检索的第一事件数据的量的数据。
8.根据权利要求7所述的***,其中,所述第一组运算符节点和所述第二组运算符节点的至少一个的所述运算符节点中的一个或多个运算符节点被配置为至少部分地基于在所述运算符节点处定义的操作来修改从所述源将被检索的事件的所述数目。
9.根据权利要求1所述的***,其中所述第一组运算符节点的至少一个运算符节点被配置为:
存储从所述至少一个运算符节点接收的事件的记录;
接收所述请求消息;
至少部分地基于在所述至少一个运算符节点处接收的事件的所述记录与由所述请求消息请求的事件数据之间的差异,确定将被检索的事件数据;
生成传出请求消息并且向所述通信接口发送所述传出请求消息,所述传出请求消息请求将被检索的经确定的所述事件数据的至少一些经确定的事件数据。
10.根据权利要求1所述的***,其中所述第一组运算符节点的至少一个运算符节点被配置为:
存储在所述至少一个运算符节点处接收的请求消息的记录;
接收所述请求消息;
至少部分地基于指示所述请求消息不是复制的请求消息的记录,来向所述通信接口发送所述请求消息。
11.根据权利要求1所述的***,其中所述第一组运算符节点的运算符节点还被配置为:
确定向所述通信接口提供所述请求消息的时间,被确定的所述时间使得所述通信接口响应于在所述第三事件数据和所述第***数据同时到达所述组合器节点的这个时间处的所述请求消息来拉取所述第一事件数据。
12.一种事件处理方法,包括:
在组合器节点处通过事件管道从通信接口接收被推送到所述组合器节点处的事件批次,所述事件批次由所述事件管道从所述通信接口接收的实时/重播事件流形成,并且被推送到下游所述事件管道;
响应于接收到所述事件批次,由所述组合器节点并且至少部分地基于所述事件批次的一些数据来确定请求时间;
由所述组合器节点向所述事件管道上游的所述通信接口提供包括所述请求时间的请求消息;
在所述组合器节点处,接收由所述通信接口响应于所述请求消息从至少一个事件源拉取的历史事件的数据,所述组合器节点在由所述组合器节点确定的注入时间处提供所述请求消息使得所述组合器节点同时接收历史事件的所述数据和来自与所述请求消息相对应的所述实时/重播事件的数据;以及
在所述组合器节点处组合所述实时/重播事件的所述数据的至少一些数据和所述历史事件的所述数据的至少一些数据。
13.根据权利要求12所述方法,其中从所述组合器节点向所述事件管道上游的所述通信接口提供所述请求消息包括向所述事件管道的一个或多个运算符节点提供所述请求消息,并且根据权利要求12的所述方法还包括:
至少部分地基于所述请求消息中的所述请求时间和由所述一个或多个运算符节点引入的延迟时间来确定改变的请求时间,所述确定包括所述一个或多个运算符节点的配置的分析;以及
生成传出请求消息并且向所述通信接口发送所述传出请求消息以取代所述请求消息,所述传出请求消息包括所述改变的请求时间。
14.根据权利要求12所述的方法,还包括:
经由所述事件管道的运算符节点从所述组合器节点向所述通信接口提供所述请求消息;
在存储在所述运算符节点处接收的事件数据的记录的所述运算符节点处,并且在接收到所述请求消息时:
至少部分地基于被推送到所述运算符节点的接收的或检索的事件数据的记录和由所述传入请求消息请求的事件数据之间的差异,确定将被检索的事件数据;以及
生成传出请求消息并且向所述通信接口发送所述传出请求消息,所述传出请求消息请求将被检索的经确定的所述事件数据的至少一些经确定的事件数据。
15.根据权利要求12所述的方法,所述请求消息是多个请求消息中的一个请求消息,并且所述方法还包括:经由所述事件管道的运算符节点从所述组合器节点向所述通信接口提供所述多个请求消息,并且在所述运算符节点处:
存储在所述运算符节点处接收的所述多个请求消息中的请求消息的记录;
接收所述请求消息;以及
至少部分地基于指示所述请求消息不是复制的请求消息的记录,来向所述通信接口发送所述请求消息。
16.根据权利要求12所述的方法,所述请求消息被配置为使得所述通信接口:
从至少一个事件源拉取历史事件的数据;以及
向所述事件管道下游的所述组合器节点推送所述历史事件的所述数据。
17.一个或多个计算机存储介质,存储计算机可执行指令,所述计算机可执行指令当由计算***执行时,引导所述计算***执行步骤,所述步骤包括:
由通信接口从所述通信接口向事件处理管道下游的所述事件处理管道的组合器节点推送实时/重播事件;
由所述组合器节点并且从经推送的所述实时/重播事件的至少一部分,确定与将在所述组合器节点处与经推送的所述实时/重播事件的第二部分组合的历史事件相对应的请求时间;
由所述组合器节点向上游所述通信接口发送包括所述请求时间的请求消息以引发所述通信接口从事件源拉取所述历史事件并且将将所述历史事件向推送到下游所述组合器节点,所述组合器节点在由所述组合器节点确定的注入时间处提供所述请求消息,使得所述组合器节点同时接收所述历史事件以及与所述请求消息相对应的推送的实时/重播事件的所述第二部分;
由所述通信接口并且根据在所述通信接口处的所述请求消息,从至少一个事件源拉取所述历史事件;
由所述通信接口向所述事件处理管道下游的所述组合器节点推送所述历史事件;以及
由所述组合器节点组合经推送的所述实时/重播事件的第二部分和所述历史事件。
18.根据权利要求17所述的一个或多个计算机存储介质,所述事件处理管道包括运算符节点及且所述步骤还包括:
至少部分基于分析所述运算符节点以确定由所述运算符节点引入的延迟时间来确定所述请求时间;
由所述运算符节点的运算符节点至少部分基于所述请求时间确定调整的时间;
由所述运算符节点确定包括所述调整的请求时间的调整的请求消息;
由所述通信接口并且根据代替所述请求消息的所述调整的请求消息,至少部分基于所述调整的请求时间来从所述至少一个事件源拉取第二历史事件;以及
由所述组合器节点组合经推送的所述实时/重播事件的所述第二部分和所述第二历史事件。
19.根据权利要求17所述的一个或多个计算机存储介质,所述确定包括分析所述事件处理管道。
20.根据权利要求17所述的一个或多个计算机存储介质,所述事件处理管道包括运算符节点并且所述步骤还包括:
存储在运算符节点处接收的事件的记录,所述事件的记录反映了从所述通信接口通过所述运算符节点被推送到所述组合器节点的事件以及从所述组合器节点通过所述运算符节点向所述通信接口请求的事件;
接收所述请求消息;
至少部分地基于被推送到所述组合器节点的事件的记录和由所述请求消息请求的事件之间的差异,确定将被检索的事件数据;以及
生成传出请求消息并且向所述通信接口发送所述传出请求消息,所述传出请求消息指定由所述请求消息请求的并且不在被推送到所述组合器节点的事件的所述记录中的事件数据。
21.根据权利要求17所述的一个或多个计算机存储介质,所述事件处理管道包括一个或多个运算符节点并且所述步骤还包括:
至少部分地基于所述请求消息中的所述请求时间和由所述一个或多个运算符节点引入的延迟时间来确定改变的请求时间,所述确定包括所述一个或多个运算符节点的配置的分析;以及
生成传出请求消息并且向所述通信接口发送所述传出请求消息以取代所述请求消息,所述传出请求消息包括所述改变的请求时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/677,633 US9632846B2 (en) | 2015-04-02 | 2015-04-02 | Complex event processor for historic/live/replayed data |
US14/677,633 | 2015-04-02 | ||
PCT/US2016/025455 WO2016161224A1 (en) | 2015-04-02 | 2016-04-01 | Complex event processor for historic/live/replayed data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107438836A CN107438836A (zh) | 2017-12-05 |
CN107438836B true CN107438836B (zh) | 2020-08-28 |
Family
ID=55913686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680020627.0A Active CN107438836B (zh) | 2015-04-02 | 2016-04-01 | 用于历史/实时/重播的数据的复杂事件处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9632846B2 (zh) |
EP (1) | EP3278244A1 (zh) |
CN (1) | CN107438836B (zh) |
WO (1) | WO2016161224A1 (zh) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10325032B2 (en) | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10162672B2 (en) * | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US10970284B2 (en) * | 2017-05-12 | 2021-04-06 | Oracle International Corporation | Dynamic self-reconfiguration of nodes in a processing pipeline |
US11288255B2 (en) * | 2017-06-08 | 2022-03-29 | Visier Solutions, Inc. | Systems and methods for generating event stream data |
CN108090131A (zh) * | 2017-11-23 | 2018-05-29 | 北京洪泰同创信息技术有限公司 | 教辅资源数据的推送方法和教辅资源数据的推送装置 |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
CN108924786B (zh) * | 2018-08-13 | 2021-03-16 | 中山大学南方学院 | 面向环境突发事件的无线传感器网络数据采集方法 |
US11297073B2 (en) * | 2018-08-31 | 2022-04-05 | Sophos Limited | Forensic query of local event streams in an enterprise network |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
CN114365505A (zh) * | 2019-11-07 | 2022-04-15 | 阿里巴巴集团控股有限公司 | 用于数据中心监控的数据驱动事物图 |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
CN112074073B (zh) * | 2020-08-20 | 2023-01-10 | 成都奕康真空电子技术有限责任公司 | 稳定工业电子直线加速器靶前剂量率的控制方法及*** |
EP3979101A3 (en) * | 2020-10-01 | 2022-07-06 | Nokia Technologies Oy | Historical data support enhancement for network entities |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103460184A (zh) * | 2010-10-04 | 2013-12-18 | 阿沃森特亨茨维尔公司 | 用于结合通用数据模型存储库来监视并管理数据中心资源的***和方法 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供***及其工作方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5539749A (en) | 1993-09-13 | 1996-07-23 | Siemens Aktiengesellschaft | Method for merging data streams |
US20040070594A1 (en) * | 1997-07-12 | 2004-04-15 | Burke Trevor John | Method and apparatus for programme generation and classification |
US20030002474A1 (en) | 2001-03-21 | 2003-01-02 | Thomas Alexander | Multi-stream merge network for data width conversion and multiplexing |
US7117278B2 (en) | 2001-07-12 | 2006-10-03 | Sun Micro Systems, Inc. | Method for merging a plurality of data streams into a single data stream |
US7668856B2 (en) | 2004-09-30 | 2010-02-23 | Alcatel-Lucent Usa Inc. | Method for distinct count estimation over joins of continuous update stream |
US9182228B2 (en) | 2006-02-13 | 2015-11-10 | Sony Corporation | Multi-lens array system and method |
US8224813B2 (en) * | 2006-10-20 | 2012-07-17 | Oracle International Corporation | Cost based analysis of direct I/O access |
US8640033B2 (en) * | 2007-06-29 | 2014-01-28 | Microsoft Corporation | Unified user experience using contextual information, data attributes and data models |
US20090070786A1 (en) | 2007-09-11 | 2009-03-12 | Bea Systems, Inc. | Xml-based event processing networks for event server |
US8214408B2 (en) | 2008-09-29 | 2012-07-03 | Teradata Us, Inc. | Method, database system and computer program for joining temporal database tables |
US8392402B2 (en) | 2008-12-03 | 2013-03-05 | International Business Machines Corporation | Hybrid push/pull execution of continuous SQL queries |
US8413169B2 (en) | 2009-10-21 | 2013-04-02 | Microsoft Corporation | Time-based event processing using punctuation events |
US8306953B2 (en) | 2010-08-31 | 2012-11-06 | International Business Machines Corporation | Online management of historical data for efficient reporting and analytics |
EP2442530A1 (en) | 2010-10-15 | 2012-04-18 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Arrangement and method for providing data to a user |
US9195965B2 (en) * | 2011-05-06 | 2015-11-24 | David H. Sitrick | Systems and methods providing collaborating among a plurality of users each at a respective computing appliance, and providing storage in respective data layers of respective user data, provided responsive to a respective user input, and utilizing event processing of event content stored in the data layers |
US8930959B2 (en) | 2011-05-13 | 2015-01-06 | Orions Digital Systems, Inc. | Generating event definitions based on spatial and relational relationships |
US8978149B2 (en) * | 2011-05-17 | 2015-03-10 | Next Issue Media | Media content device, system and method |
US9965520B2 (en) | 2011-06-17 | 2018-05-08 | Microsoft Corporation | Efficient logical merging over physically divergent streams |
US20120323941A1 (en) * | 2011-06-17 | 2012-12-20 | Microsoft Corporation | Processing Queries for Event Data in a Foreign Representation |
US9098344B2 (en) | 2011-12-27 | 2015-08-04 | Microsoft Technology Licensing, Llc | Cloud-edge topologies |
US20130191185A1 (en) | 2012-01-24 | 2013-07-25 | Brian R. Galvin | System and method for conducting real-time and historical analysis of complex customer care processes |
US20130325890A1 (en) | 2012-05-31 | 2013-12-05 | Ca, Inc. | Leveraging persisted data queries in stream-based complex event processing |
US20130325787A1 (en) | 2012-06-04 | 2013-12-05 | Intelligent Software Solutions, Inc. | Temporal Predictive Analytics |
US20140164059A1 (en) * | 2012-12-11 | 2014-06-12 | Microsoft Corporation | Heuristics to Quantify Data Quality |
US9135826B2 (en) | 2012-12-26 | 2015-09-15 | Sap Se | Complex event processing for moving objects |
-
2015
- 2015-04-02 US US14/677,633 patent/US9632846B2/en active Active
-
2016
- 2016-04-01 EP EP16720941.0A patent/EP3278244A1/en not_active Withdrawn
- 2016-04-01 CN CN201680020627.0A patent/CN107438836B/zh active Active
- 2016-04-01 WO PCT/US2016/025455 patent/WO2016161224A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103460184A (zh) * | 2010-10-04 | 2013-12-18 | 阿沃森特亨茨维尔公司 | 用于结合通用数据模型存储库来监视并管理数据中心资源的***和方法 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供***及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160292016A1 (en) | 2016-10-06 |
US9632846B2 (en) | 2017-04-25 |
CN107438836A (zh) | 2017-12-05 |
WO2016161224A1 (en) | 2016-10-06 |
EP3278244A1 (en) | 2018-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107438836B (zh) | 用于历史/实时/重播的数据的复杂事件处理器 | |
US11687208B2 (en) | Evaluation of interactions with a user interface | |
US11838350B2 (en) | Techniques for identifying issues related to digital interactions on websites | |
US10692299B2 (en) | Precise manipulation of virtual object position in an extended reality environment | |
JP6865219B2 (ja) | 連続クエリ処理におけるイベントバッチ処理、出力シーケンス化、およびログベースの状態記憶 | |
US9672082B2 (en) | Guaranteeing the event order for multi-stage processing in distributed systems | |
JP6850722B2 (ja) | イベント処理のための動的に型付けされたビッグデータによるイベントの充実化 | |
US20140032469A1 (en) | Estimating potential message viewing rates of tweets | |
US20140244388A1 (en) | Social Content Synchronization | |
US11544911B1 (en) | Manipulation of virtual object position within a plane of an extended reality environment | |
US11676345B1 (en) | Automated adaptive workflows in an extended reality environment | |
US9524469B1 (en) | Systems, apparatus, and methods for generating prediction sets based on a known set of features | |
US20210255914A1 (en) | Proactive learning of network software problems | |
US20150178290A1 (en) | Display control apparatus, display control method, and computer-readable storage medium | |
US20160379276A1 (en) | Electronic asset delivery and event tracking system | |
US20160196289A1 (en) | Determining when a change set was delivered to a workspace or stream and by whom | |
CN109271224B (zh) | 用于确定位置的方法和设备 | |
JP6700146B2 (ja) | 評価値に基づいて推奨するコンテンツを決定するシステム | |
US10901630B2 (en) | Method and apparatus for determining data duplication progress in real-time | |
US10331509B2 (en) | Data processing validation | |
EP4348558A1 (en) | Model orchestrator | |
JP2010130241A (ja) | 映像掲示板タイムライン生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |