CN100538643C - 用于调度由于事件相关性被部分排序的事务的方法和系统 - Google Patents
用于调度由于事件相关性被部分排序的事务的方法和系统 Download PDFInfo
- Publication number
- CN100538643C CN100538643C CN200580025051.9A CN200580025051A CN100538643C CN 100538643 C CN100538643 C CN 100538643C CN 200580025051 A CN200580025051 A CN 200580025051A CN 100538643 C CN100538643 C CN 100538643C
- Authority
- CN
- China
- Prior art keywords
- incident
- affairs
- affair
- event
- situation
- 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.)
- Expired - Fee Related
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
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/951—Calendar or scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种用于调度每个具有各自的时间戳的事件事务、以用在事件驱动应用中的方法和系统。事件之间可能的时间依赖性被根据关联于所述事件的预定的事件规则解决,以便允许确定所述事件事务何时可以被处理。这允许所述事件事务被分派到分布式处理器进行并行处理。
Description
技术领域
本发明涉及事件驱动系统,并且特别地,涉及用于确保分布式环境中部分地时间依赖的事件的并行处理的方法。
背景技术
反应应用涉及这样一类应用,其是事件驱动的,并且被配置为基于事件的检测而运转。所述事件的准确定时和内容通常不是预先已知的。不同领域中的许多工具已被建立,以用于检测事件,并且用于将其检测与合适的动作耦合。这些工具存在于实现了主动数据库、事件管理系统、“发布/预订”机制、实时系统和类似产品的产品中。
2003年8月5日发布的题为“Situation awareness system”的US6,604,093(Etzion等人)在此被引入作为参考,并且其公开了一种用于顺序处理事件的可配置的事件驱动的基于规则的系统。在本文档的剩余部分中,该系统将根据其首字母缩写被称为“AMIT”,其是指“活动中间件技术”。AMIT是美国纽约Armonk的国际商业机器公司的商标。即,到来的事件被一个接一个地处理,同时不同事件的实例之间的所有关系(时间上的和数量上的)被保存在存储器中。尽管该方法对于在其中所述事件的多数具有时间关系的情况(例如,特定事件的顺序发生在某个特定时间周期内)是绝对必要的,但其对于在其中大量时间上独立的事件应当在分布式环境中被处理的其它情况(例如聚合事件规则,其中,单一事件实例的顺序不如其所计算的统计度量重要)将是不可扩展的。同样,如果AMIT事件规则(事件组合)包括数据库查询,则所述ACID事务支持应当被添加。
2001年8月7日发布的题为“Method of scheduling distributedtransactions”的US 6,272,515(Fouquet)在此被引入作为参考,并且其公开了一种调度分布事务的方法,所述方法用于存在事务并行发起的可能性的事务监视器,以便根据所述事务被发起的时间顺序来顺序化所述事务的操作的激活,并且其虑及了不同事务或同一事务的操作之间的执行冲突。由此,尽管所述方法可应用于可以被划分为单元操作的常规事务,并且事件仅通过信号传送事务发起或操作终止,但所述方法不适于在分布式事务环境中检测预定义事件组合(事件驱动规则)以用于随后处理的那些规则引擎。
在所述情况下,事件驱动规则引擎将每个事件实例作为不能被再划分为复合操作的原子事务来处理。所述事务应当锁定指定用于所处理的事件实例的资源。所述资源是表示计算窗口的数据结构,其中所述计算窗口是时间段,其中,所述事件实例可以被计数,并且其中,预定义事件的组合(规则)可发生。在存在到来的事件之间的时间上的或其它语义依赖的情况下,存在应当被解决的不同分布式事务之间的可能的冲突。
发明内容
因此,本发明的目的是提供一种改进的用于分布式、面向事务环境中对事件事务进行并行处理的方法和系统,其具有定义语义上相关的事件的事件驱动规则,其中所述组成事件的顺序可以很重要。
根据本发明的广泛的方面,提供了一种用于调度每个具有各自的时间戳的事件事务的、以用在具有预定的事件规则的事件驱动应用中的方法,所述方法包括:根据所述预定的事件规则解决事件之间可能的时间依赖性;以及确定所述事件事务何时可以被处理,由此允许所述事件事务被分派到分布的处理器进行并行处理。
从另一方面观察本发明,现在提供了一种用于实现所述方法的系统。优选地,所述系统包括检测预定义的事件组合的事件接收器和传送器,并且包括:用于接收一个或更多事件的事件事务;事件并行控制单元,其被耦合到所述事件事务,并且响应于关联于所述事件的各个时间戳,用于根据相关联的事件规则解决事件之间可能的时间依赖性;以及所述事件并行控制单元的至少两个输出端口适于被耦合到各个分布式处理器,用于根据从所述事件规则定义中了解的依赖性并行执行所述事件。
由此,本发明的优选实施例定义了在事件驱动规则引擎中适合引发状况的事件规则的事务,并且定义了一种用于所述事务的并行控制机制。
并行而非顺序地处理所述事务要求所述事务被分布在几个事件处理单元之间。
所述事件并行控制单元使用单一机器集中执行并行控制算法,并且将预备运行的事务(即被假定将在当前事务完成执行之前被执行的所有事务)分派到不同的处理单元。所述处理单元可以是不同机器上的不同过程或使用远程过程调用(RPC)的单一机器上的不同过程(线程)。本发明针对AMIT开发,但可以被轻松地应用于运行在分布式环境中的事件驱动规则引擎的全部类。
附图说明
为理解本发明并且了解其实际上可以如何被实现,其优选实施例现在将借助于仅非限制性例子、参考附图被描述,在附图中:
图1是原理上示出了根据本发明的第一实施例的、用于根据预定义事件组合(规则)检测和处理事件的系统的框图;
图2是原理上示出了根据本发明的第二实施例的、用于分布式环境中的系统的框图;
图3、4和5示出了描述依据根据本发明的不同例子的事件和状况之间的依赖性的依赖图;
图6是示出了由根据本发明的事件接收器和传送器实现的主要动作的流程图;以及
图7是功能上详细示出了图1中描述的所述事件接收器和传送器的框图。
具体实施方式
图1是原理上示出了根据本发明的第一实施例的用于根据预定义事件组合(规则)检测和处理事件的系统10的框图。事件分派器根据关联于每个事件的时间戳将事件顺序地传送到事件并行控制单元12,并且事件处理单元13开始对于每个事件的事件处理。所述事件处理单元13可以是任一常规事件事务处理器,例如是在上面引用的US 6,604,093中描述的AMIT。所述事件并行控制单元12利用了基于时间戳的并行控制算法(在下面描述),其中,所述算法使用对事件规则的语义认知来并行处理到来的事件。其根据当前的事件规则检查事件事务是否可以被开始,并且如果必要则将所述事务的执行挂起。其还在如果已在运行的事件事务相应的事件被定义用于复杂(嵌套)事件组合时提交或终止已在运行的事件事务,其中,所述复杂事件组合从其它事件组合和单元事件被导出。
所述事件规则可以被存储在外部数据库14中或数据文件中,所述数据文件由所述事件分派器11以与事件或规则被常规供应给AMIT的方式类似的方式进行访问。然而,尽管所述事件直接被常规地供应给AMIT,但在本发明中,其不是直接而是经由所述事件分派器11被供应。所述规则可以同时被AMIT和所述事件分派器读取。所述事件分派器11首先将所述事件供应给所述事件并行控制单元12,并且接着仅响应于接收自所述事件并行控制单元12的发起控制信息将所述事件供应给所述事件处理单元13。关联于每个事件的所述时间戳信息可以由内部时钟(未示出)或通过关联于每个事件的预定义运行顺序导出。所述事件分派器11结合所述事件并行控制单元12运转作为事件接收器和传送器15,其处理到来的事件,以便根据已知的依赖性确定何时事件处理可以被开始,并且然后将事件分派到事件处理单元13。
图1示出了所述事件并行控制单元12的构架以及其被耦合到所述事件处理单元13的方式。实际上,本发明的优选实施例可以并行运行几个事件处理单元,因此实际上,所述事件并行控制单元12具有多个处理器输出端口,其中每个都适于将相应事件处理单元耦合到该端口。
图2是原理上示出了根据本发明的所述实施例的、用于分布式环境中的系统20的框图。已参考图1被描述的部件将由同样的标号来标识。由此,在所述系统20中,所述事件接收器和传送器15被耦合到多个事件处理单元,其中,所述事件处理单元的每个被表示为13,并且可以由所述AMIT引擎实现。到来的事件如上面参考图1描述的那样被所述事件接收器和传送器15处理,以便确定其何时可以被启动。其可以然后被分派到不同的事件处理单元13进行并行处理,尽管这样做的方式以及不同处理器被选定的方式自身不是本发明的特征。
已经描述了根据本发明的系统的可能实现,所述基于时间戳的并行控制算法操作的方式现在将被描述。
所述系统中的所有事件和状况之间的依赖图被创建。所述依赖图可以基于对元数据(规则定义)的分析被构建,其中,所述元数据通常被作为直接输入供应给所述事件处理单元13,但在本发明中被经由所述事件接收器和传送器15间接地供应给所述事件处理单元13。出于实现本发明的实施例的目的,假设对于每个事件,下面的数据结构被维护作为所述规则定义的一部分:
对于其该事件应当被添加的状况的列表;
对于其该事件可以开启其计算窗口的状况的列表;
对于其该事件可以关闭其计算窗口的状况的列表;
可以被该事件触发的状况的列表。
实施本发明的一种算法处理这些规则以确定事件和状况之间以及状况和其它状况之间的依赖性,以便构建表示事件/状况层级的数据,其中所述数据包括指示关联于组成事件的时间戳的数据。该信息然后被用于确定事件可以合法地被开始还是在其可以开始之前取决于相关事件的完成。在该上下文中,应当理解,状况仅是由事件或事件的组合引起的一类事件。因此,只要所述算法被涉及,就不在术语“事件”和“状况”之间作任何区分。
所述算法允许对事件的优化处理,由此事件被分布式处理器并行地处理,而不是如被常规完成的那样顺序地处理,以便允许后来事件可以在不需要等待先来事件提交的情况下开始处理的可能性,以便不延迟对在时间上不依赖于所述先来事件的后来事件的处理。另一方面,如果从所述事件层级确定了在先来事件的完成未决时所述后来事件不可以被解决,则所述后来事件将被放弃直到所述先来事件已终止,其中,所述后来事件在时间上依赖于所述先来事件的完成。
所述算法如将在下面被说明的那样处理所述事件数据,以便提取事件之间的时间依赖性。为了以更直观的方式说明如何这样做,所述事件层级将被图解地表示。但是应当理解,实际上,重要的是所述图形表示中暗含的信息,并且,由于所述信息无论如何是所述事件数据中固有的,所以所述算法不需要实际产生所述事件层级的任何图形表示。由此,下面的规则被应用,以便在图形上构造所述事件层级:
如果事件或状况作为操作数参与到状况中,则边缘被从所述事件/状况节点添加到所述状况节点中。
如果事件或状况充当计算窗口的开始或结束,则其相应的开始/结束边缘被从所述事件/状况节点添加到所述状况。
并行控制表被创建,其中,独立的列对于每个状况定义被定义。如果存在从事件到关联于所述依赖图中感兴趣的列的状况的边缘,则所述事件被添加到该列。每一列通过事件的到达时间戳而分类。事件与其到达时间戳一起被添加到所述并行控制表中的合适列。可以由特定事件触发的所有状况与指示那些状况仍然未决的标记一起被添加到所述并行控制表中的适当列。在下面描述的例子中,所述标记用星号(*)表示。对于充当计算窗口的结束的事件,特殊标记被添加,以便处理延期/延迟的状况。在下面描述的例子中,从所述事件到依赖状况的路径被标记为“结束边缘”。类似地,从充当计算窗口的开始的事件到依赖状况的路径被标记为“开始边缘”。这允许所述算法识别关于依赖状况的计算窗口的开始和结束依赖性。
如果事件事务在“真实”事件(未标记的状况)中首先被放在所述并行控制表的所有列中,则应当开始事件事务。所述事件事务只有被首先放在所述并行控制表的所有列中(在该表的所有事件和被标记状况之中)时才被提交。在存在具有相同时间戳(在延期/延迟状况的情况下)的规则事件和充当所述计算窗口的结束的事件的情况下,所述事件将开始所述新事务。当具有时间戳t2的事件事务尝试提交时,所述算法检查具有时间戳t1(t1<t2)的任意被标记状况是否变为真实的(所述标记被删除)。在所述情况下,所述后一事件事务被放弃并重启。
如果存在仍然被标记的具有所述时间戳的状况,则所述事务处理将被阻止,直到所述被标记的状况被解决(被移除或改变为真实的)。
不同例子现在将参考附图的图3和5被描述。图3涉及依赖性的简单情况,其中,所述第一事件导致状况的检测,以及所检测的状况与第二事件一起参与到其它状况检测中。图4示出了这样的情况,其中,到来的事件还可以关闭用于检测状况的计算窗口,以及图5参考这样的情况,其中所检测的状况仅在计算窗口期间的结束进行报告,但仍然应当考虑到其它状况检测。
例1:
图3在图形上示出了:状况S1,其是e1的复合功能;以及状况S2,其是S1和e2的复合。假设所述事件事务被部分地排序,其意味着事件被提交的排序或顺序是重要的。用于两种状况的计算窗口都在启动时被开启,并且永不终止。
场景:
事件e1在t1到达,事件e2在t2到达(t2>t1)。用于S1和S2的并行控制表将是:
表1
S1e1;t1 | S2s1;t1<sup>*</sup>e2;t2 |
只要状况S2被涉及,S1就是必须在状况S2可以发生之前完成(即提交)的组成事件。然而,S1还依赖于所述事件e1的提交。这意味着,只要状况S2被涉及,所述事件s1在时刻t1未被解决并且由此被标记。e1和e2将并行地开始事务。如果s1被触发,则e2将放弃其事务,并且将重做其工作。这确保了如果S2是(S1,e2)的顺序时事务排序被维护,其中所述(S1,e2)的顺序指示S1必须在e2提交之前提交,并且仅在那时S2可以被解决。另一方面,可以存在这样的场景,其中,S1不发生,并且从所述并行控制表中被移除。例如,S1可能是状况“银行帐户被透支”,并且产生该状况的e1可能仅仅是客户的当前余额。由此,如果在e2已被提交之前,e1到达并且是健全余额,则S1将不被触发,并且可从所述并行控制表中删除。这可以发生是由于定义了为触发状况仅需要一个事件。例如S2可以被定义为:如果两个事件(S1或e2)中的一个到达则被触发。例如,考虑S2代表状况“帐户问题”,以及e2指示“信用卡被注销”。这样在所述情况下,如果S1不被触发,则e2将不被退回,并且S2将被检测到。这允许所述事件分派器11将所述事件事务e1和e2分派到不同处理器,以便允许并行处理,由此节省时间。
例2:
图4在图形上示出了状况S1,其是e1的复合功能。状况S2是S1和e2的复合功能。迄今,所述事件层级与上面参考图3描述的相同。然而,尽管所有状况发生在特定计算窗口中,但在前面的情形中,所述计算窗口是无限制的,并且从启动开始就无终止地延长,图4中所示的状况被限于发生在这样的计算窗口中的,所述计算窗口在启动之后开始,并且具有预定的终止符。这些在图形上被示为关联于事件的开始或结束边缘,其中所述开始或结束边缘取决于该边缘分别是开始边缘还是结束边缘而指示由该事件产生的状况被限于发生在与所述事件并行开始或结束的计算窗口。由此,事件e3终止了用于S1和S2二者的计算窗口意味着,当e3发生时,S1和S2的计算都终止。另一方面,S1和S2的计算窗口都在e4到达时被启动。由此,用于S1和S2二者的计算窗口都从关联于e4的时刻扩展到关联于e3的时刻。这意味着,如果e3在e4之前到达,则其不影响S1,因为其计算窗口还未被开启,因为S1将需要在其计算开始之前被计算。事件e4仍然确定S1的计算可以开始,并且其在所述计算窗口被e3关闭时完成。事件e4开启所述计算窗口,但S1将在事件e1到达后在合适时尽快被检测到(相当于阈值条件“如果存在的话”)。由此,当事件e4到达时,其将开启S1的计算窗口,并且到达的下一个e1事件(但在e3之前)将被计算。借助于例子,e4可能是“一天开始”事件,以及e3是“一天结束”事件。S1可以是“银行帐户被透支”,事件e1指示“帐户余额”。事件e2可以是“支付请求”,以及S2可以是“支付失败”,由此,如果所述“支付请求”和“帐户透支”在同一工作日被收到,则“支付失败”将被检测到。
场景:
事件e4在t1到达,事件e1在t2到达,事件e3在t3到达,以及事件e2在t4到达,其中,t1<t2<t3<t4。
在该情况下,所述并行控制表将包含:
表2
S1e4start;t1e1;t2e3end;t3 | S2e4start;t1s1;t2<sup>*</sup>e3end;t3e2;t4 |
在该情况下,所述处理将是顺序的,因为e3不能在e1(S1)之前开始,并且e2不能在e3(S2)之前开始。
关闭计算窗口
如果事件关闭计算窗口,则仅在事务在所有事件(真实的和那些“已标记状况”的事件,其中所述“已标记状况”的事件被优先处理,但可能之后需要被放弃和重运行)中被首先放置时事务才开始,并且将被针对每个状况独立地提交(部分提交)。在部分提交之后,针对所述已提交状况的其它事务可以开始。同样在关闭用于状况的计算窗口之后,所述方法检查延迟/延期的状况是否在关闭该窗口的事件(具有相同的时间戳)之前被触发并且被写入到所述表中。这将在这样的延期/延迟状况的情况下发生,所述延期/延迟状况在其计算窗口被同一事件关闭的其它状况中被需要。
例3:
图5在图形上示出了延期的状况S1,其是e1的复合功能。状况S2是S1的复合功能。由此,这里同样地,所述事件层级与上面参考图3描述的相同。然而,用于两个状况的计算窗口在启动时被开启,并且在事件e2到达时被终止。
场景:
事件e1在t1到达;e2在t2到达(t1<t2);
在所述情况下,所述并行控制表将包含:
表3
S1e1;t1e2end;t2 | S2s1<sup>*</sup>;t2e2end;t2 |
状况s1不被写为具有时间戳t1,因为仅e2可以触发S1(延期的状况)。S1必须在以e2的到达为结束的计算窗口内被提交。由此,当e2到达时,S1的计算停止,即,其计算窗口关闭。对S1的计算当e2到达时被执行,即,由于S1是被延期的状况,所以其计算被延期直到e2到达。基于在e2之前到达的e1事件而完成实际计算。
当e2到达并且开始其过程时,S1的计算结束。如果S1现在被检测到,其意味着所述状况已发生,则S1:t1被写到所述并行控制表中,以及,e2将暂停其处理,并且将仅在S1的过程被完成之后才恢复其处理。例如,这允许作为AMIT语言的一部分的被延期状况的计算。
被延期状况的例子如非(NOT)状况。例如,假设状况S1被定义为NOT(e1)。在所述情况下,如果e1不在e2之前到达,则S1将被检测。事件e1将如以前一样为“帐户余额”,状况S1将为“平均余额”并且将被定义为报告(e1)。该状况将计算其最大余额直到事件e2被接收到,并且其将在e2到达时被触发。状况S2将为“Good Day”,并且其将在如果由S1计算的平均余额大于特定量时被触发。
图6是总结了由图1和2中示出的事件接收器和传送器15执行的主要动作的流程图。由此,一旦接收到事件,所述事件接收器和传送器15就将时间戳分配给该事件,并且将所述接收到的事件以及可由此被触发的所有状况添加到事件并行表中的合适列。其然后根据预定的规则决定针对该事件所述事务是否可以开始。如果不可以,则所述事件接收器和传送器15等待直到所述事件事务可以开始。如果并且当所述事件事务开始时,事件接收器和传送器15将所述事件分派到事件处理单元13,然后从所述事件处理单元13接收所述事务处理结果。事件接收器和传送器15然后根据预定的规则决定针对该事件所述事务是否可以被提交。如果不可以,则其丢弃所述结果并且重启所述事务。如果可以,则其更新所述事件并行表,并且提交所述结果。应当指出,处理器的选择不是本发明的一部分。任意合适的现有集群机制均可以被使用。例如,在基于WebSphere ApplicationServer的解决方案的情形中,WebSphere集群可以被使用,并且所述处理器将根据其负载均衡机制被选择。
图7是功能上更详细示出了包括用于接收一个或更多事件的事件分派器11的事件接收器和传送器15的框图。事件并行控制单元12被耦合到所述事件分派器11,并且响应于关联于所述事件的各个时间戳,其中所述时间戳用于根据其相关联的事件规则解决事件之间可能的时间依赖性。所述时间戳或者可以在其到达之前预先关联于所述各个事件,或者可选地,所述时间戳可以由所述事件接收器和传送器在其到达时分配到所述事件。所述事件分派器11包括用于注册每个到来的事件以便维护已注册事件的列表的注册单元20,并且适于根据从关联于所述事件的事件规则定义中了解的依赖性,将对于其的所有依赖性已被解决的每个事件事务分派到事件处理单元15,由此允许事件的并行执行。所述事件并行控制单元被配置为:根据所述预定的事件规则,对于每个已注册事件解决与已注册事件以及与还未被检测到的已标记状况的可能的时间依赖性。
所述事件接收器和传送器15还包括用于接收所述事件事务的处理结果的接收器单元21,以及被耦合到该接收器单元21的用于确定所述事件事务是否将被提交或放弃的状态确定单元22。被耦合到所述状态确定单元的中断单元23响应于指示所述事件事务将被放弃的状态,用于放弃所述事件事务。所述事件分派器11被耦合到用于将所述事件事务再次分派到处理单元的中断单元。该处理单元可以与所述处理单元相同,或者可以是不同的处理单元。
还应当理解,根据本发明的系统可以是被适当编程的计算机。同样地,本发明预期了用于执行的本发明的方法的可由计算机读取的计算机程序。本发明还预期了有形地包括可由机器执行的用于执行本发明的方法的指令程序的机器可读存储器。
Claims (6)
1.一种用于调度每个具有各自的时间戳的事件事务、以用在具有预定的事件规则的事件驱动应用中的方法,所述方法包括:根据所述预定的事件规则解决事件之间可能的时间依赖性;以及确定所述事件事务何时可以被处理,由此允许所述事件事务被分派到分布式处理器进行并行处理,其中确定所述事件事务何时可以被处理包括:注册每个到来的事件以便维护已注册事件的列表;对于每个已注册事件,根据所述预定的事件规则解决已注册事件之间以及与还未被检测到的已标记状况的可能的时间依赖性;将对于其所有依赖性被解决的每个事件事务分派到事件处理单元;接收所述事件事务的处理结果;确定所述事件事务将被提交还是放弃;以及如果所述事件事务将被放弃,则放弃所述事件事务并且再次将其分派到所述事件处理单元。
2.根据权利要求1所述的方法,其中注册每个到来的事件包括:接收事件;将时间戳分配给所述事件;使用所述预定的事件规则确定可被接收的事件触发的所有状况;将所述接收的事件以及由此可被触发的所有状况添加到事件并行表中的合适列;根据所述预定的规则确定针对所述接收的事件由所述接收的事件产生的事务是否可以开始;如果针对所述接收的事件所述事务不可以开始,则等待直到所述事务可以开始;如果所述事件可以开始,则:将所述事件分派到事件处理单元;从所述事件处理单元接收事务处理结果;根据所述预定的规则确定针对所述被接收的事件所述事务是否可以被提交;如果针对所述接收的事件所述事务不可以被提交,则丢弃所述处理结果并且重启所述事务;如果针对所述接收的事件所述事务可以被提交,则更新所述事件并行表并且提交所述事务。
3.根据权利要求1所述的方法,其中注册每个到来的事件包括:接收具有关联于其的时间戳的事件;使用所述预定的事件规则确定可被所述接收的事件触发的所有状况;将所述接收的事件以及由此可被触发的所有状况添加到事件并行表中的合适列;根据所述预定的规则确定针对所述接收的事件由所述接收的事件产生的事务是否可以开始;如果针对所述接收的事件所述事务不可以开始,则等待直到所述事务可以开始;如果所述事务可以开始,则:将所述事务分派到事件处理单元;从所述事件处理单元接收事务处理结果;根据所述预定的规则确定针对所述接收的事件所述事务是否可以被提交;如果针对所述接收的事件所述事务不可以被提交,则丢弃所述处理结果并重启所述事务;如果针对所述接收的事件所述事务可以被提交,则更新所述事件并行表并提交所述事务。
4.根据权利要求1所述的方法,其中所述已标记状况被限于发生在具有预定的终止符的计算窗口内,所述方法还包括:将这样的数据关联于事件,所述数据指示由所述事件产生的状况被限于发生在与所述事件并行开始或结束的计算窗口内。
5.一种用于调度每个具有各自的时间戳的事件事务、以用在具有预定的事件规则的事件驱动应用中的装置,包括:事件分派器,用于接收一个或更多事件,并且适于根据从关联于所述事件的事件规则定义中了解的依赖性而被耦合到各个用于并行执行所述事件的分布式处理器;以及事件并行控制单元,其被耦合到所述事件分派器,并且响应于关联于所述事件的各个时间戳,用于根据所述关联于所述事件的事件规则解决事件之间可能的时间依赖性,其中:所述事件分派器包括用于注册每个到来的事件以便维护已注册事件列表的注册单元,并且适于将对于其所有依赖性被解决的每个事件事务分派到事件处理单元;所述事件并行控制单元被配置为:根据所述预定的事件规则,对于每个已注册事件解决与已注册事件以及与还未被检测到的已标记状况的可能的时间依赖性;所述装置还包括:用于接收所述事件事务的处理结果的接收器单元;被耦合到所述接收器单元的用于确定所述事件事务将被提交还是被放弃的状态确定单元;以及中断单元,其被耦合到所述状态确定单元,并且响应于指示所述事件事务将被放弃的状态用于放弃所述事件事务;所述事件分派器被耦合到所述中断单元用于再次将所述事件分配到所述事件处理单元。
6.一种包括至少两个用于以并行分布方式处理每个具有各自的时间戳的分布式事件事务的处理器的计算机系统,所述系统包括根据权利要求5所述的一种用于调度每个具有各自的时间戳的事件事务、以用在具有预定的事件规则的事件驱动应用中的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/899,783 | 2004-07-27 | ||
US10/899,783 US7266571B2 (en) | 2004-07-27 | 2004-07-27 | Method and system for scheduling a partial ordered transactions for event correlation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1989490A CN1989490A (zh) | 2007-06-27 |
CN100538643C true CN100538643C (zh) | 2009-09-09 |
Family
ID=35414657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580025051.9A Expired - Fee Related CN100538643C (zh) | 2004-07-27 | 2005-06-27 | 用于调度由于事件相关性被部分排序的事务的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7266571B2 (zh) |
EP (1) | EP1779243A1 (zh) |
JP (1) | JP4283328B2 (zh) |
CN (1) | CN100538643C (zh) |
TW (1) | TWI345176B (zh) |
WO (1) | WO2006010683A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539502B1 (en) * | 2006-04-20 | 2013-09-17 | Sybase, Inc. | Method for obtaining repeatable and predictable output results in a continuous processing system |
US8010550B2 (en) * | 2006-11-17 | 2011-08-30 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
US7711678B2 (en) * | 2006-11-17 | 2010-05-04 | Microsoft Corporation | Software transaction commit order and conflict management |
US8024714B2 (en) | 2006-11-17 | 2011-09-20 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
DE102007009909B4 (de) * | 2007-02-28 | 2016-09-08 | Globalfoundries Inc. | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung |
US7890472B2 (en) * | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US8789059B2 (en) * | 2007-11-02 | 2014-07-22 | International Business Machines Corporation | Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events |
US8200682B2 (en) | 2008-04-22 | 2012-06-12 | Uc4 Software Gmbh | Method of detecting a reference sequence of events in a sample sequence of events |
GB0811652D0 (en) * | 2008-06-25 | 2008-07-30 | Symbian Software Ltd | Computing device |
US9430526B2 (en) * | 2008-09-29 | 2016-08-30 | Teradata Us, Inc. | Method and system for temporal aggregation |
CA2897462A1 (en) | 2009-02-11 | 2010-05-04 | Certusview Technologies, Llc | Management system, and associated methods and apparatus, for providing automatic assessment of a locate operation |
CA2754159C (en) | 2009-08-11 | 2012-05-15 | Certusview Technologies, Llc | Systems and methods for complex event processing of vehicle-related information |
FR2965948A1 (fr) * | 2010-10-07 | 2012-04-13 | Commissariat Energie Atomique | Systeme d'ordonnancement de l'execution de taches cadence par un temps logique vectoriel |
US9208222B2 (en) * | 2010-11-26 | 2015-12-08 | Htc Corporation | Note management methods and systems |
JP6021112B2 (ja) * | 2013-11-28 | 2016-11-02 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 複数のスレッドで順序付きトランザクションを実行する方法、並びに、当該トランザクションを実行するためのコンピュータ及びそのコンピュータ・プログラム |
BE1023523B1 (nl) * | 2015-09-25 | 2017-04-19 | Atlas Copco Airpower, N.V. | Werkwijze voor het koelen van een compressor of vacuümpomp en een compressor of vacuümpomp die een dergelijke werkwijze toepast |
KR102123616B1 (ko) * | 2018-02-09 | 2020-06-17 | 한양대학교 산학협력단 | 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치 |
CN109828788A (zh) * | 2018-12-21 | 2019-05-31 | 天翼电子商务有限公司 | 基于线程级推测执行的规则引擎加速方法及系统 |
CN110610598B (zh) * | 2019-08-08 | 2021-02-26 | 善泊科技(珠海)有限公司 | 一种基于事件机制的无人化停车场中控管理系统及其方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5201044A (en) * | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
GB2256514B (en) * | 1991-05-21 | 1994-11-16 | Digital Equipment Corp | Commitment ordering for guaranteeing serializability across distributed transactions |
FR2751106B1 (fr) * | 1996-07-11 | 1999-01-08 | Alsthom Cge Alcatel | Methode de planification de transactions distribuees |
US6237001B1 (en) * | 1997-04-23 | 2001-05-22 | Oracle Corporation | Managing access to data in a distributed database environment |
US7023440B1 (en) * | 1998-09-14 | 2006-04-04 | Fisher Rosemount Systems, Inc. | Methods and apparatus for integrated display of process events and trend data |
US6604093B1 (en) * | 1999-12-27 | 2003-08-05 | International Business Machines Corporation | Situation awareness system |
US6725287B1 (en) * | 2000-11-09 | 2004-04-20 | Elity Systems, Inc. | Method and system for capturing streaming data by an actionable information engine |
-
2004
- 2004-07-27 US US10/899,783 patent/US7266571B2/en not_active Expired - Fee Related
-
2005
- 2005-06-27 EP EP05771824A patent/EP1779243A1/en not_active Withdrawn
- 2005-06-27 JP JP2007523052A patent/JP4283328B2/ja not_active Expired - Fee Related
- 2005-06-27 WO PCT/EP2005/052998 patent/WO2006010683A1/en active Application Filing
- 2005-06-27 CN CN200580025051.9A patent/CN100538643C/zh not_active Expired - Fee Related
- 2005-07-04 TW TW094122577A patent/TWI345176B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US7266571B2 (en) | 2007-09-04 |
TW200627286A (en) | 2006-08-01 |
WO2006010683A1 (en) | 2006-02-02 |
CN1989490A (zh) | 2007-06-27 |
US20060026130A1 (en) | 2006-02-02 |
JP4283328B2 (ja) | 2009-06-24 |
TWI345176B (en) | 2011-07-11 |
JP2008508582A (ja) | 2008-03-21 |
EP1779243A1 (en) | 2007-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100538643C (zh) | 用于调度由于事件相关性被部分排序的事务的方法和系统 | |
Wohed et al. | Pattern based analysis of BPEL4WS | |
Stonebraker et al. | The 8 requirements of real-time stream processing | |
Brito et al. | Scalable and low-latency data processing with stream mapreduce | |
EP3191984B1 (en) | Scalable log-based transaction management | |
US10002161B2 (en) | Multithreading and concurrency control for a rule-based transaction engine | |
KR101616967B1 (ko) | 다수의 처리 명령어를 실시간으로 취급하고 처리하는 것과 관련된 개선 | |
Bermbach et al. | Consistency in distributed storage systems: An overview of models, metrics and measurement approaches | |
Watahiki et al. | Formal verification of business processes with temporal and resource constraints | |
CN101477524A (zh) | 基于物化视图的系统性能优化方法及系统 | |
US20200310863A1 (en) | Worker thread manager | |
CN112069196B (zh) | 基于数据库的数据处理方法、装置、设备及可读存储介质 | |
US8046780B1 (en) | Efficient processing of assets with multiple data feeds | |
CN103257913A (zh) | 一种运行时软件故障检测排除系统和方法 | |
US10185307B2 (en) | Method of and system for controlling manufacturing processes in discrete production lines | |
Santini et al. | Hardware-transactional-memory based speculative parallel discrete event simulation of very fine grain models | |
CN114416849A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Soethout et al. | Static local coordination avoidance for distributed objects | |
Long | Improvement and implementation of a high performance cqrs architecture | |
Roohitavaf et al. | LogPlayer: Fault-tolerant Exactly-once Delivery using gRPC Asynchronous Streaming | |
Escriva et al. | Consus: Taming the Paxi | |
Koutanov | Strict Serializable Multidatabase Certification with Out-of-Order Updates | |
Jiang et al. | A generic specification framework for weakly consistent replicated data types | |
Huang et al. | A semantic-based transaction model for active heterogeneous database systems | |
Younas et al. | Streaming State Validation Technique for Textual Big Data Using Apache Flink |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090909 Termination date: 20120627 |