CN104025051B - 用于转移事件检测器进程的设备和方法 - Google Patents

用于转移事件检测器进程的设备和方法 Download PDF

Info

Publication number
CN104025051B
CN104025051B CN201180074529.2A CN201180074529A CN104025051B CN 104025051 B CN104025051 B CN 104025051B CN 201180074529 A CN201180074529 A CN 201180074529A CN 104025051 B CN104025051 B CN 104025051B
Authority
CN
China
Prior art keywords
event
event detector
detector process
detector
delay
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
Application number
CN201180074529.2A
Other languages
English (en)
Other versions
CN104025051A (zh
Inventor
C·穆奇勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of CN104025051A publication Critical patent/CN104025051A/zh
Application granted granted Critical
Publication of CN104025051B publication Critical patent/CN104025051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

实施方式涉及将分布式计算***(300;700)的第一节点(704‑1)的第一事件检测器进程转移到所述分布式计算***(300;700)的第二节点(704‑2)的第二事件检测器进程的方法(900)和设备(800),所述第二节点(704‑2)不同于所述第一节点(704‑1)。所述设备(800)包括用于将所述第一事件检测器进程的进程内容拷贝到所述第二事件检测器进程的装置(802)、用于协调所述第一事件检测器进程的输入事件使得所述第一事件检测器进程的输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理的装置(804)、以及用于验证所述第一事件检测器进程的输入事件是否在所述第一事件检测器进程和所述第二事件检测器进程两者处导致相同的输出事件的装置(806),所述第一事件检测器进程的输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理。

Description

用于转移事件检测器进程的设备和方法
本发明的实施方式一般地涉及数据网络,并且特别地,涉及用于在分布式计算***的不同节点之间转移事件检测器进程的设备和方法。
背景技术
传感器网络(诸如,例如无线传感器网络)具有广泛的应用。例如,各种技术的无线传感器网络可以被用于定位目的,诸如定位人类和/或其它对象。在这里,“定位”意指地理定位或位置的检测或确定。一些专门的定位或位置跟踪***可以被用于在体育事件中定位选手和其它对象(例如球),所述体育事件诸如例如英式足球、美式足球、橄榄球、网球等。
在使用收集到的选手和/或球的地理位置或定位数据情况下,可得到与整个体育事件(例如英式足球比赛)相关的或与各个队伍或选手相关的统计信息。这样得到的统计信息可能因各种原因而是有趣的。一方面,存在各种商业利益,因为特定统计量和它们的分析对于在露天大型体育场中和/或在家里的电视机前面的观众来说可以是特别相关的。从而,提供特定统计量可以提高对体育事件的更大兴趣。另一方面,从原始定位数据得到的统计数据也可以被用于训练目的。在这里,可以分析自己的队伍的对手和/或行为以及各个选手的表现和/或健康条件。
前述的定位或位置跟踪***可以是基于各种技术的。例如,可以基于无线无线电信号和/或磁场的评估来确定位置信息。出于这种目的,一般地还被表示为传感器的发射器和/或接收器可以被放置在要被***定位的各个对象(例如选手、球等)处。对应的接收和/或发射装置还可以被安装到在感兴趣的地理区域(如例如,英式足球场)附近的预定位置。信号强度、信号传播时间和/或信号相位的评估几个可能的技术替代方案然后可以导致指示各个选手或对象在不同时刻的地理位置的传感器数据流。典型地,地理位置数据样本与指示在哪一个时刻对象位于在哪一个地理位置处的时间戳相关联。采用这种组合的信息,除包括例如x坐标、y坐标以及z坐标的位置数据之外,也可以提供运动数据(例如速率(速度)、加速度等)。在本说明书的续篇中,由定位传感器***所传送的位置和运动数据还将被称为(原始)传感器数据。
在无线跟踪***的特定示例中,人或对象可以装配有微型发射器,所述微型发射器可以被嵌入在鞋袜、制服以及球中并且其信号被放置在观测下的区域附近的许多天线拾取。接收器单元处理所收集到的信号并且确定它们的到达时间(ToA)。基于传播延迟差的计算,每个发射器的位置然后被连续地确定。此外,与无线跟踪***一起集成的计算机网络可以分析位置或传感器数据以便检测特定事件。在2.4GHz波段下操作,跟踪***是全世界免授权的。
基于从定位或位置跟踪***输出的原始传感器数据流,可以检测到所谓的“事件”。从而事件可以被定义为在一时间点感兴趣的瞬时发生。通常,事件与能够被感测到的相关量的分布中的改变相关联。事件可以是本原事件,其是直接地基于跟踪***的传感器数据(运动数据)的,或复合事件,其是替代地基于先前检测到的其它事件的。也就是说,复合事件不直接地取决于原始传感器数据而是取决于其它事件。在球赛应用中,事件例如可以是“选手X击中球”或“选手X占有球”。更复杂的事件例如可以是“越位”或“犯规”。
在过去几年里,基于底层传感器数据流的事件的检测已经增加了在数据库和分布式***群体中的兴趣。现今广泛且数目日益增长的应用(包括如网络监控、电子商务、保健、金融分析以及安全或前述的体育事件监视的应用)依赖处理对理想地采取事件的时间排序系列的形式的数据流的查询的能力。如在大量供应的传感器数据和/或事件不再能够被人类捕获或者处理的许多应用一样,事件检测表示原始传感器数据和/或事件在无需人为干预的情况下的完全自动化的处理。例如,如果选手和体育对象(例如,球)的高速变化被预期到,则原始传感器(定位或位置跟踪)数据必须由底层(无线)传感器网络以足够高的数据速率来确定。附加地,如果存在大量的选手和/或对象(例如,在存在22个选手和一球的英式足球中)要被跟踪,则特别地相对于实时事件处理要求,每秒总的地理位置和运动数据样本的数量能够变得过高。
从而,即使原始传感器和/或事件数据流被完全自动化地分析并且用信号发送,也可能仍然存在多得太多的信息,其全面可能甚至不是任何感兴趣的。在将来这个问题将甚至变坏,因为越来越多的装置将装配有传感器以及将它们确定的传感器数据(例如,由像智能电话这样的无线装置所确定的天气或温度数据)提供给诸如因特网的公用网络的可能性。由于这个原因,要被进一步处理成感兴趣的特定事件的传感器数据的数量将迅速地增长。自动化事件检测可以通过设法逐条地聚合原始传感器数据并且设法确定更抽象的且相互依赖的事件来为此提供补救,这可以传送比原始传感器数据它本身多得多的信息。例如,除前述的英式足球相关示例之外,这样确定的事件能够包括“汽车X位于路口Y处”或“交通在道路X上堵塞”。
在自动化事件检测中出现的问题是用于对可能整体地并行的传感器和/或事件数据流执行事件检测所要求的计算能力-并且这一切都在至少几乎实时的处理要求下。这个问题可以由事件检测器的并行化来解决,所述事件检测器例如可以在计算机网络的不同的网络节点(其例如可以经由以太网进行通信)上运行。从而事件检测器根据用户的事件规范自动地从事件或传感器数据流中提取感兴趣的特定事件。各个事件检测器可以分布在数据网络的不同的网络节点,其中不同的事件检测器使用事件和/或传感器数据进行通信从而使用不同的网络路线和分支而行进通过网络。从而,可以根据像例如UDP(用户数据报协议)、TCP(传输控制协议)/IP(网际协议)等这样的一些传输协议在数据分组中传输原始传感器数据和/或事件。然而,这个构思相对于在不同的网络节点之中可能不均衡的计算机负荷以及相对于网络内事件数据流的同步引起新的问题。在没有适合的对策的情况下,在不同的网络节点之中的计算负荷是不均衡的并且网络中的各个传感器和/或事件数据流对于彼此而言不是时间同步的,这意味着各个事件可以在它们的原始时间顺序之外到达事件检测器并且由此导致假检测结果。
让我们考察示例性英式足球场景,其中多个并行自动地操作的事件检测器被假定检测从选手A到选手B的传球。为了检测所述“传球”事件,以下前面的事件序列是要求的:
1.“选手A占有球”,
2.“选手A踢球”,
3.“球离开选手A”,
4.“球来到选手B附近”,
5.“选手B击中球”
对于事件“选手X踢球”的事件检测可以是基于事件序列“选手X靠近球”和检测到的球的加速度峰值的。存在用于为所述事件“选手X踢球”建立自动化事件检测器的以下替代方案。
我们可以等待各个要求的事件,一个接着一个。如果我们已按正确的(时间)顺序看到所有所要求的事件(在这里,为了简单起见任何中止准则被忽视),则我们能够说我们已看到或者经历了传球。然而,对于复杂的应用,所有所要求的事件的检测由于事件检测器的并行化而未必发生在单个网络节点或CPU(中央处理单元)上。由于这个原因,未必保证各个要求的事件按正确要求的顺序到达事件检测器。这例如可以是由于网络抖动、变化的和/或不均衡的CPU负荷或增加的网络负荷而导致的。
因此,我们能够设法缓冲事件并且然后搜索缓冲器以得到正确的事件模式。但应该使用哪一个缓冲器尺寸呢?如果我们说传球必须在最大5秒钟内发生,则我们将必须考虑在第一相关事件之后在最大5秒钟的时间段内的事件,直到我们已检测到传球为止或者直到我们中止为止。然而,同样有可能最后一个相关事件是计算上相当复杂的,这要求小规模的附加的缓冲器。但这个附加的缓冲器的尺寸是什么呢?并且与要求“传球”事件作为输入事件的复合事件检测器相关的缓冲器尺寸是什么呢?事件信令延迟取决于整个***/网络配置(即,事件检测器的分布)以及网络负荷和CPU负荷。最后的***配置和负荷场景均不可以在编译时被预见到。
大多数现有的事件检测***不考虑前述的事件信令延迟或负荷均衡问题,因为在许多情况下,事件处理或传播延迟不是相关的。然而,特别对于诸如在金融或位置跟踪场景中的高度复杂的实时事件检测***来说,情况不是这样的。
以下英式足球相关的示例在频繁地要求的“越位”事件检测场景的基础上例示了事件延迟问题,其在图1中被示意性地图示。
选手100将球110向前传给他的队友120。在传球的实际(真实)时间,即,球110经历加速度摆动或峰值(见图1,左边)所在的时间,选手120位于越位位置中差几厘米。因此,将必须中断比赛。
然而,为了能够区分第一选手100的直接传球或控球,仅当球120实际上离开第一选手100时可以检测从第一选手100到第二选手120的传球。由于传感器数据的有限数据速率,这个区分判定可以花费至少几个毫秒的附加的“自然”延迟。然而,在这个自然延迟之后,第二选手120可以不再处于越位位置中(见图1,右边)。
在这里,只考虑参与的自动地生成的事件的时间顺序不足以做出越位判定。而且,它们必须被排序。不仅事件计算时间或网络传播延迟是相关的,而且必须考虑有原因的实时变化。所检测到的传球事件的时间戳必须被重置到过去,即其中球经历加速度峰值的时刻。
除要求的一般***稳定性之外,同样由于事件的时间顺序对于正确的跟随判定或事件的重要性而在分布式计算***中期望确保得到可能相等的计算负荷分布。
发明内容
为了检测事件,诸如本原和/或复合事件,各种事件检测器可以在分布式计算***的不同节点上运行。从而,本原事件典型地只基于或者得自(原始)传感器数据,然而复合事件典型地是基于本原事件或其它前面的复合事件的。传感器数据可以源于耦合到分布式***的传感器网络,其中根据一些实施方式,传感器网络可以特别是无线定位跟踪网络或***。在这种情况下,传感器数据可以包括运动数据,所述运动数据包括地理位置数据样本、速率数据样本和/或加速度数据样本,其中各个数据样本分别对应于预定义样本时间间隔。因此,事件可以由事件检测器基于先前的事件和/或源于地理定位***的并行传感器数据流来检测。
取决于***的条件和/或取决于事件检测器的底层算法的计算复杂性和/或要被分析的传感器数据,这样的事件检测器可以在它们相应的关联的节点和/或整个分布式计算***上引起不同的负荷。因此,在改变原始***配置的前提或条件的场景中,事件检测器到各个网络节点上的原始分布能够证明相对于计算负荷均衡是次优的,或者甚至能够导致分布式计算***的崩溃。
这样不合乎需要的负荷不均衡可以被本发明的实施方式抵制。例如,如果至少一个事件延迟到达过高的值,则这可以是源事件检测器进程是过载的或者经历一些其它问题的事实的指示器,对应的事件从所述源事件检测器进程到达目的地事件检测器进程。在这样的场景中,可能期望将恶意的源事件检测器进程转移或者再定位到分布式计算***的一些其它硬件资源。例如,恶意的源事件检测器进程可以被从其当前节点转移到分布式计算***的另一物理上分离且不同的节点,其具有更多可用的硬件资源。
出于这种目的,本发明的实施方式提供了一种用于将分布式计算***的第一节点的第一事件检测器进程转移到分布式计算***的第二节点的第二事件检测器进程的设备。第二节点物理上不同于第一节点。所述设备包括用于将第一事件检测器进程的进程内容拷贝到第二事件检测器进程的装置、用于协调第一事件检测器进程的输入事件使得第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理的装置、以及用于验证第一事件检测器进程的输入事件是否在第一事件检测器进程和第二事件检测器进程两者处导致相同的输出事件的装置,所述第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理。
根据一些实施方式,事件检测器进程将被理解为在分布式***的节点上被执行的计算机程序的实例。事件检测器进程包括计算机程序的程序代码及其当前活动。例如,分布式***可以是分布式计算机网络或多核处理器。在计算机网络情况下,节点(即,网络节点)可以包括例如经由以太网或一些其它形式的网络技术与其它网络节点进行通信的计算机装置或其处理单元(例如CPU)。
根据一些实施方式,事件检测器进程可以包括状态机,所述状态机可以被理解为用来设计事件检测器进程的底层计算机程序的行为模型。状态机由与转变相关联的(有限)数目的状态组成,其中转变是从一个状态开始并且在另一(或相同的)状态下结束的一组动作。转变由触发器来开始,其中这样的触发器例如可以是输入到事件检测器进程的本原或复合事件或原始传感器数据。因此,根据本发明的方面,事件检测器进程可以包括状态机并且事件检测器进程的内容或存储器可以将所述状态机的当前状态反映为例如各个变量或阵列或变量。对于事件检测器进程,状态机可以是基于软件的状态机,例如统一建模语言(UML)状态机。
用于转移的设备(其还可以被称为转移设备)例如可以被实现分布式计算***的中央实体。所述中央实体可以具有与在分布式***中沿着不同的路线而行进的事件信号的更多或全部延迟相关的信息。从而,事件的延迟例如可以是由于不同的网络路径或路线的不同的抖动、不同的处理能力和/或不同的信号传播时间而导致的。替换地或附加地,中央转移设备可以具有与各个节点的更多或全部负荷情形(例如CPU负荷)相关的信息和/或指示总体***负荷的信息。因此,根据一些实施方式,转移设备可以具有总体***参数知识。根据又一些实施方式,转移设备还可以是非中央的,即,分布在多个网络节点上。在这种情况下,网络节点可以仅具有指示它自己的负荷或事件延迟情形的有限信息。因此,在一些实施方式中,总体***参数知识可能不是可用的。
***的事件检测器进程可以根据特定事件检测器进程分布准则而被分布在网络节点当中,所述特定事件检测器进程分布准则取决于转移设备的总体***参数或***情形知识水平,可以或多或少是最优的。耦合到至少多个网络节点的中央转移设备可以比被仅耦合到单个或几个网络节点的转移设备的实施方式具有更多可用的***信息。
转移设备的实施方式可以包括用于基于(最优的)事件检测器进程分布准则在一组可能的第二节点之中确定第二节点的装置。取决于什么被认为是“最优的”,最优的事件检测器进程分布准则可以导致分布式计算***中的所有事件的最小总体延迟、分布式计算***中的最小数目的安全事件订阅、分布式计算***的给定节点的负荷的最小变化、或最小总体分布式计算***负荷中的一个。从而,事件检测器进程或与其相关联的事件调度器可以订阅由事件检测器进程用于确定其(一个或多个)输出事件所要求的事件。如果特定输入事件对于事件检测器来说是绝对地强制的,则它可以“安全地订阅”所述输入事件。在这种情况下,所讨论的事件可以经由错误受控传输构思(例如自动重复请求(ARQ))而被传输到事件检测器/调度器。
根据一些实施方式,转移设备可以包括用于在第二节点上创建进程实例以获得第二事件检测器进程的装置,所述进程实例与第一事件检测器进程相对应。实例将被理解为对象的发生或拷贝,而无论当前执行与否。类或进程的实例共享相同的一组属性,然而将典型地在那些属性包含什么的方面不同。事件检测器进程转移过程例如可以借助于控制分布式计算***的操作***(OS)来执行。例如,OS从而将被理解为一组程序,所述程序管理分布式***的计算机硬件资源,并且为应用程序软件(例如事件检测器进程)提供公共服务。这样的OS服务还可以包括实例化功能性,即用于创建进程实例的功能性,用于拷贝进程内容的装置可以访问所述实例化功能性。也就是说,创建装置可以包括用于访问控制分布式***的操作***的进程实例化功能性的装置。
只要第二事件检测器进程(其是第一事件检测器进程的实例)在第二节点上已被实例化,它就可以订阅第一节点的第一事件检测器进程已经订阅的相同的(一个或多个)事件,以便从分布式***接收(一个或多个)相同的事件或事件流作为输入信号。换句话说,用于创建实例的装置可以在第二节点上实例化第二事件检测器进程之后可操作以向第二事件检测器进程订阅与第一事件检测器进程相同的输入事件。
操作***服务可以进一步包括拷贝功能性,用于拷贝进程内容的拷贝装置能够访问所述拷贝功能性。也就是说,拷贝装置可以包括用于访问在分布式***的计算节点或一些其它控制实体上运行的操作***的进程拷贝功能性的装置。拷贝装置还可操作以在预定时刻“冻结”第一事件检测器进程的进程内容,从而获得第一事件检测器进程在冻结时刻的定义条件。从而,“冻结”意味着事件检测器进程被带入确定的状态并且在冻结时刻停止对其输入做出响应。换句话说,可以在冻结时刻暂停第一事件检测器进程以便将其内容拷贝到经实例化的第二事件检测器进程。
因此,拷贝装置可以被适配成将经冻结的进程内容从第一事件检测器进程拷贝到第二事件检测器进程以便在第二事件检测器进程处获得相同的确定的状态或定义的条件。从而,用于拷贝的装置可操作以将进程内容从第一事件检测器进程迭代地拷贝到第二事件检测器进程,使得将在拷贝进程的剩余部分期间不改变的进程内容被首先拷贝。也就是说,在每次迭代中,仅在剩余的拷贝过程期间将不改变的进程内容被拷贝。这允许在不用显式地暂停事件检测器进程的同时拷贝的情况下拷贝进程内容。因此,在第一事件检测器进程中包含的数据可以在多次迭代中被从第一节点拷贝到第二节点。从而,应该定义哪一个数据属于事件检测器的状态信息。例如,在进程的情况下,这是进程存储器。当迭代地拷贝进程内容时,要被拷贝的进程内容的差异或间隙(即增量)变得越来越小,直到差异保持小但不为零为止。也就是说,进程内容增量拷贝将不是零,因为非冻结事件检测器可以连续地改变其状态。因此,在拷贝最后的内容增量之前,事件检测器进程可以有利地被冻结。
在新近实例化的(即第二)事件检测器进程在第二节点上开始或者接通之前,两个事件检测器进程的(相同的)输入数据可以被缓冲,使得两个事件检测器进程还从预定时刻(即“冻结”时刻)开始获得相同的外部输入数据,所述两个事件检测器进程由于拷贝而理想地已经具有相同定义的内部条件。因此,用于拷贝的装置还可操作以在将进程内容从第一事件检测器进程拷贝到第二事件检测器进程期间和/或之后缓冲第一事件检测器进程的输入事件。
当相关进程内容的一切已被从第一(即旧实例)事件检测器进程拷贝到第二(即新的实例)事件检测器进程并且输入数据已被缓冲时,假设第一事件检测器进程和第二事件检测器进程两者都是在相同的内部条件或状态下,两个事件检测器进程可以被开启以用于并行处理(理想地相同的)缓冲的输入数据(事件)。也就是说,两个事件检测器可以在拷贝和缓冲过程之后被接通并且可以并行地处理经分支的以及因此相同的输入数据。出于这种目的,用于协调的装置可操作以对进程内容拷贝、第一事件检测器进程的输入事件的缓冲和处理进行调度,使得第一事件检测器进程和第二事件检测器进程两者从预定(冻结)时刻开始并且基于所拷贝的进程内容并行地运行。以这种方式,在不同的网络节点上运行的两个进程实例可以产生相同的输出。并且,例如,出于那种目的,协调装置可以能够访问OS。
用于验证的装置(其例如可以包括比较器)然后可以验证两个事件检测器进程是否分别实际上导致相同的输出。如果情况是这样的,则旧的(即第一)事件检测器进程可以被关掉。从而第一节点的负荷可以减少。如果两个事件检测器进程不导致相同的输出,则前面的拷贝和/或缓冲过程可能已失败并且可以关闭新的(即第二)事件检测器进程以从开头起开始整个事件检测器转移过程。因此,根据一些实施方式,用于验证的装置可操作以在在第一事件检测器进程和第二事件检测器进程两者处的输出事件是相同的情况下关闭第一事件检测器进程,或者,可操作以在在第一事件检测器进程和第二事件检测器进程两者处的输出事件不是相同的情况下关闭第二事件检测器进程。
根据本发明的另一个方面,还提供了一种用于基于至少一个(原始)传感器数据流来确定事件的分布式计算***。所提供的分布式计算***(其可以是计算机网络)包括多个分布式节点,每个都具有与其相关联的事件检测器进程,以及用于在分布式计算***的分布的节点之间转移事件检测器进程的设备的至少一个实施方式。
在一些实施方式中,分布式计算***可以被耦合到定位***以用于定位和/或跟踪在预定地理区域内的对象,其中定位***将至少一个传感器数据流提供给分布式计算***,所述传感器数据流承载指示被定位对象的地理位置的数据。定位***可以是基于无线传感器网络的,所述无线传感器网络在本说明书的引言部分中已经被描述了。
不管转移事件检测器进程如何,即便当事件检测器(几乎)最优地分布在分布式***中,沿着不同的路径或路线而行进通过分布式***的事件也仍然可以经历不同的延迟。这可以是由于不同的传播延迟、信号处理时间和/或网络抖动而导致的。事件延迟差可以导致不期望的假复合事件检测,因为事件检测器可以按不对应于它们的原始发生顺序的时间顺序消费输入事件。因此,除了为了最优地将事件检测器分布在各种网络节点当中,经由不同的网络路径到达事件检测器以及因此经历不同的处理和/或传播延迟的事件的原始时间顺序的恢复对于最优结果可能也是所希望的。
这可以通过在将事件转发或者中继到后续事件检测器之前适当地使事件延迟来实现。事件所被中继到后续事件检测器在的时间可以是基于相应事件的原始时间戳以及由后续事件检测器为了确定其输出事件所要求的所有输入事件的处理和/或传播延迟的。
出于这种目的,本发明的实施方式还提供了一种用于使第一事件与第二事件同步的设备。第一事件具有基于公共时钟信号的与其相关联的第一事件定时值,第二事件具有基于公共时钟信号的与其相关联的第二事件定时值。第一事件和第二事件行进通过分布式计算***的不同的路径,并且分别经历不同的延迟。至少一个输出事件将由事件检测器基于第一事件和第二事件来确定。根据实施方式,用于同步的设备包括与事件检测器相关联的延迟补偿器,其中延迟补偿器包括用于接收第一事件和第二事件的输入端和用于将所接收到的第一事件和第二事件的中继版本转发到相关联的事件检测器的输出端。延迟补偿器可操作以基于所经历的延迟并且基于相关联的第一和第二事件定时值而将第一事件和第二事件中继或者转发到相关联的事件检测器,所述第一和第二事件定时值分别还可以被称为反映原始事件发生时间的事件时间戳。
根据本发明的又一个方面,用于转移第一事件检测器进程的设备可以被优选地但非排他地与用于使第一和第二事件同步的设备相结合地集成到分布式计算***中。因此,这样的分布式计算***可以包括多个分布式节点,其中所述多个分布式节点中的每一个都包括用于根据本发明的实施方式同步的设备,以及用于将分布式计算***的第一节点的第一事件检测器进程转移到分布式计算***的第二节点的第二事件检测器进程的设备,其中用于转移的设备包括前述特征。
换句话说,实施方式提供了一种用于基于至少一个(原始)传感器数据流来确定事件的分布式计算***。该分布式计算***(其可以是计算机网络)包括多个分布式节点。分布式计算***包括根据本发明的转移设备的实施方式。另外地,所述多个分布式计算节点中的每一个都可以包括用于使第一事件(具有基于公共时钟信号的与其相关联的第一事件定时值)和第二事件(具有基于公共时钟信号的与其相关联的第二事件定时值)同步的设备,其中第一事件和第二事件行进通过分布式计算***的不同的路径,并且经历不同的时延。至少一个输出事件将由事件检测器基于第一事件和第二事件来确定。用于同步的设备包括与事件检测器相关联的延迟补偿器,所述延迟补偿器具有用于接收第一事件和第二事件的输入端并且具有用于将所接收到的第一事件和第二事件的中继版本转发到相关联的事件检测器的输出端,其中延迟补偿器可操作以基于所经历的延迟并且基于相关联的第一和第二原始事件定时值而将第一事件和第二事件中继到相关联的事件检测器。
在不同节点当中的前述不合需要的负载不均衡例如可以被同步设备或其延迟补偿器的实施方式检测到。例如,如果至少一个事件延迟达到过高的值,则这可以是源事件检测器进程是过载的或者经历一些其它问题的事实的指示器,其中,对应的事件从所述源事件检测器进程到达延迟补偿器。在这样的场景中,可能期望将恶意的源事件检测器进程转移或者再定位到分布式计算***的一些其它硬件资源。例如,恶意的源事件检测器进程可以被从其当前源节点转移到分布式计算***的具有更多可用的硬件资源的另一物理上分离且不同的目的地节点。用于转移事件的设备和用于使事件同步的设备因此都可以以所描述的方式协作。也就是说,用于同步的设备可以检测延迟,以及因此检测分布式计算***内的负荷异常,而用于转移的设备可以转移事件检测器进程以便更好地使事件检测器的分布均衡,导致较小的总体延迟和较低的负荷。
本发明的更进一步的方面还提供了一种用于将分布式计算***的第一节点的第一事件检测器进程转移到分布式计算***的第二节点的第二事件检测器进程的方法,所述第二节点不同于所述第一节点。所述方法包括将第一事件检测器进程的进程内容拷贝到第二事件检测器进程的步骤、协调第一事件检测器进程的输入事件使得第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理的步骤、以及验证第一事件检测器进程的输入事件是否在第一事件检测器进程和第二事件检测器进程两者处导致相同的输出事件的步骤,所述第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理。
一些实施方式包括安装在用于执行用于转移第一事件和第二事件的方法的设备内的数字控制电路。这样的数字控制电路(例如,数字信号处理器(DSP))需要被相应地编程。因此,更进一步的实施方式还提供了一种计算机程序,所述计算机程序具有用于在计算机程序在计算机或数字处理器上被执行时执行所述方法的实施方式的程序代码。
本发明的实施方式的一个有益效果是,事件可以被识别/检测并且仅以最小延迟转发到后续事件检测器。本发明的实施方式可以被实现使得以较低延迟转发事件在不用冒错误的后续事件检测的危险的情况下不是容易地可能的。并且,采用本发明的实施方式,事件检测器的开发者不需要关于特定事件延迟的任何特殊知识,因为该分布式***的实施方式可以自动地测量和管理那些事件延迟。
可以在根据本发明的实施方式的分布式计算***的自我组织中看到另一有益效果。这样的分布式计算***可以通过在网络节点之间转移事件检测器进程而起作用于改变***条件,使得该分布式***或网络总是能够执行鲁棒且高效的事件信号处理。
附图说明
将仅通过示例并且参考附图在下文中对设备和/或方法的一些实施方式进行描述,在附图中
图1图示了英式足球特定的越位事件检测场景;
图2示意性地示出了根据本发明的实施方式、用于使第一事件与第二事件同步的设备的框图;
图3示意性地示出了本发明的实施方式,其中用于使第一事件与第二事件同步的设备被实现为分布式网络与关联的事件检测器软件之间的中间件;
图4示出了由事件检测器所要求的四个事件A、B、C以及D的定时表;
图5示意性地图示了根据本发明的实施方式的事件调度;
图6示意地示出了用于使第一事件与第二事件同步的示例性方法的流程图;
图7示出了用于基于至少一个传感器数据流来确定事件的分布式计算***的实施方式,其中分布式计算***包括多个分布式计算节点,其中所述多个分布式计算节点中的每一个都包括用于使事件同步的设备的实施方式;
图8示意性地图示了用于将分布式计算***的第一节点的第一事件检测器进程转移到分布式计算***的第二节点的第二事件检测器进程的设备的实施方式;以及
图9示意性地图示了用于将分布式计算***的第一节点的第一事件检测器进程转移到分布式计算***的第二节点的第二事件检测器进程的方法的实施方式的流程图。
具体实施方式
现将参考附图更全面地描述各种示例实施方式,在附图中一些示例实施方式被图示。在图中,为了清楚,层和/或区的厚度可以被放大。
因此,虽然示例实施方式能够各种修改和替代形式,但是其实施方式在图中通过示例来示出并且将在本文中被详细地描述。然而,应该理解的是,没有将示例实施方式限制于所公开的特定形式的意图,而是相反,示例实施方式将涵盖落入本发明的范围内的所有修改、等同物以及替代方案。同样的附图标记在图的所有描述中指的是同样的或类似的元素。
将理解的是,当元件被称为被“连接”或者“耦合”到另一元件时,它能够被直接地连接或者耦合到另一个元件或者可以存在中间元件。相比之下,当元件被称为被“直接地连接”或者“直接地耦合”到另一元件时,没有中间元件存在。应该以同样的方式来解释用来描述元件之间的关系的其它词语(例如,“在...之间”对“直接地在...之间”、“相邻”对“直接地相邻”等等)。
本文中所用的术语仅用于描述特定实施方式的目的并且不旨在限制示例实施方式。如本文中所用的那样,除非上下文另外清楚地指示,否则单数形式“一”、“一个”以及“该”均旨在也包括复数形式。将进一步理解的是,术语“含”、“含有”、“包含”和/或“包括有”当被用在本文中时,指定陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其它特征、整体、步骤、操作、元件、组件和/或它们的组合的存在或添加。
除非另外定义,否则本文中所用的所有术语(包括技术术语和科学术语)都具有与由示例实施方式所属于的领域内的普通技术人员所通常理解的相同的意义。将进一步理解的是,术语(例如,在通常使用的词典中所定义的那些)应该被解释为具有与它们在相关技术的上下文中的意义一致的意义,并且除非在本文中明确地如此定义,否则将不在理想化的或太正式的意义上被解释。
图2示意地图示了用于使第一事件202与第二事件204同步的设备200的实施方式。
第一事件202具有基于公共时钟参考信号与其相关联的第一原始事件定时值或时间戳。第二事件204也具有基于公共时钟信号与其相关联的第二原始事件定时值或时间戳。第一和第二原始事件定时值表示原始事件发生时刻。公共时钟信号产生总体***时间,其对于分布式计算***中的所有不同的节点都是有效的。在到达用于使事件同步的设备200之前,第一事件202和第二事件204行进通过分布式计算***(未在图2中示出)的不同的路径或路线,并且每个都经历不同的延迟。基于两个事件202、204,至少一个输出事件206可以由事件检测器208来确定,所述事件检测器208可以被布置在用于使事件202、204同步的设备200之后(接连)或下游。
在一些实施方式中,还可以被认为是用于事件检测器208的事件调度器的同步设备200包括还被称为延迟补偿设备的延迟补偿器210,其与后续事件检测器208相关联或相关。延迟补偿器210具有用于从分布式网络接收第一事件202和第二事件204的输入端212-1、212-2。进一步地,延迟补偿器具有用于将所接收到的第一事件202和第二事件204的中继版本中继或者转发到所关联的事件检测器208的输出端214-1、214-2,所述关联的事件检测器208可以被布置在延迟补偿器210之后或下游。延迟补偿器210可操作以基于事件202、204的所经历的延迟并且基于所关联的第一和第二原始事件定时值或链接到两个事件202、204的时间戳将第一事件202和第二事件204中继到所关联的事件检测器208。
在图3中示意性地描绘了分布式计算***300(具有网络的形式)、各种事件检测器208以及用于使多个事件同步的设备200的实施方式的示例性布置。
图3示意性地图示了分布式网络300,事件302和原始传感器数据304从该分布式网络300到达同步设备200,所述同步设备200在图3中被示例性地表示为“事件核(EventCore)”。同步设备200可以一方面通过从底层网络300接收事件302和/或原始传感器数据304、以及另一方面通过在特定要求的输出端或中继时间实例处将它们转发到耦合至同步设备200的多个事件检测器208来作为事件调度器。同步设备200被适配成使由后续的事件检测器208所要求的不同事件302和/或传感器数据304同步。从而,可以以分布式方式实现同步设备200,使得它能够各自地使由后续的事件检测器208中的每一个所要求的事件302或304同步。也就是说,事件核设备200可以包括多个延迟补偿器210或其实例,其中所述多个延迟补偿器210中的每一个都与所述多个后续的事件检测器208中的一个相关联。从而,延迟补偿器实例210和关联的事件检测器208可以优选地被实现在一个公共网络节点上。根据一些实施方式,同步设备200及其延迟补偿器实例210可以被实现为网络300与事件检测器208之间的中间件。
公共时钟信号306被提供给同步设备200或者提供给其不同的实例,从而使能图3中所描绘的分布式***架构的所有延迟补偿器和/或事件检测器实例210、208的时间同步。因此,每个延迟补偿器210都能够访问相同的公共时基。换句话说,所有(分布式)同步设备或延迟补偿器实例200、210都可以在任何给定时间检索相同的***时间戳。在延迟补偿器实例210接收到事件302或304情况下,它可以缓冲针对关联的后续事件检测器实例208的所述事件持续要求量的时间,其对应于没有由事件检测器实例208所要求的并且承载较早时间戳的其它事件将被接收到的足够高的概率。
为得到更多细节,让我们考察以下示例:任意事件检测器208要求输入事件A、B、C以及D以便能够基于所述输入事件来正确地确定或者检测复合输出事件E。因为每个网络实例都被全局公共时钟信号306同步,所以可使检测时间与每个事件相关联(见图4,中间列)。从而,事件的检测时刻由于有限的处理速度而必定比事件的实际发生时刻(见图4,左列)要晚。
在这个示例中,事件A的发生时间t事件,A是10,然而,它仅被事件检测器在检测时间t检测,A=14处检测到。用于检测复合事件E的后续事件检测器在接收时间tED,A=16处接收到所要求的事件A。类似地,事件B实际上发生在t事件,B=12处并且得以被一些事件检测器在t检测,B=13处检测到。用于检测复合事件E的后续复合事件检测器在时刻tED,A=15处检索到事件B。也就是说,用于事件E的复合事件检测器在它接收到事件A之前接收到B,然而事件A实际上比事件B发生更早。由于处理和网络传播延迟,事件C(其实际上比事件A出现得晚)也被比后续的复合事件检测器更早地接收。
从这个示例,在不使用本发明的实施方式的情况下,可以看到,用于事件E的后续的复合事件检测器按时间顺序(见图4,最右列)接收所要求的事件A、B、C以及D,所述时间顺序不同于所述事件的原始原因或时间顺序(见图4,最左列)。因此,本发明的实施方式的任务是适当地对所要求的事件A、B、C以及D进行排序,以便在将所要求的事件A、B、C以及D转发到后续的复合事件检测器之前恢复对应于原始时间顺序的时间顺序。出于那种目的,同步设备200的实例可以连同关联的事件检测器208一起被实现在每个网络节点上。
根据实施方式,(可能分布式)同步设备200的延迟补偿器210可操作以将多个要求的事件中继到关联的事件检测器,使得所要求的事件A、B、C以及D(其在延迟补偿器210处已被接收到)的中继版本的时间顺序对应于多个要求的事件A、B、C以及D的原始时间顺序。出于该目的,延迟补偿器210可以中继多个事件A、B、C以及D中的每一个,使得各个中继的事件之间的相对时间差分别对应于各个事件A、B、C以及D之间的原始相对时间差。为了恢复原始时间事件顺序,延迟补偿器210可以为所述多个事件A、B、C以及D中的每一个确定输出时间实例。从而事件在其对应的输出时间实例处被中继到所关联的事件检测器210。可以基于事件A、B、C以及D的公共延迟值和原始发生时间实例来确定事件的输出时间实例。
以上述示例为例,同步设备实例200以及因此包括在其中的延迟补偿器实例210可以基于它们相应的接收时间和反映它们的实际发生的它们相应关联的原始事件定时值来测量或者确定以下事件延迟:
事件A:16-10=6
事件B:15-12=3
事件C:15-14=1
事件D:18-15=3
显然,事件A在延迟补偿器210处的接收与由后续的复合事件检测器所要求的其它事件B、C以及D相比基本上费时更长。例如,这可能是由于在导致通过网络300的长传播时间的遥远的计算节点上的事件A的检测而导致的,或者是由于事件A通过具有更长计算时间的计算更复杂的算法检测而导致的。在示例性情况下,事件A的长延迟可能是由于花费四个时钟周期或时间间隔的事件检测而导致的。
让我们假定我们已足够频繁地测量或者确定了感兴趣的所有事件的所有延迟并且我们是在以下位置处:在时刻tDC,C=1000处事件C到达包括延迟补偿器210的用于同步的设备200。事件C携带事件定时值t事件,C=999,其指示事件C在时刻999处已发生了。延迟补偿器210考察感兴趣的所有事件(即,由所关联的后续复合事件检测器208所要求的所有事件A、B、C以及D)的延迟,并且确定事件C直到它可以被转发到所关联的后续事件检测器208为止必须被延迟有多久。注意的是,延迟补偿器210仅知道事件A、B、C以及D是所关联的后续事件检测器208要求的,但不知道按哪一个顺序以及用于哪一个目的。
用于将事件C中继到所关联的后续事件检测器208的输出时间实例可以根据如下等式来确定。
tout,C=t事件,C+max(Δ(A),Δ(B),Δ(C),Δ(D))
=999+max(6,3,1,3)=999+6=1005(1)
在等式(1)中,A、B、C以及D分别表示第一事件至第***,Δ(.)表示事件从其发生到与所关联的后续事件检测器208相关联的延迟补偿器210的输入端的延迟,max(.)表示最大值运算符,以及tout,C表示经延迟的事件C的输出时间实例。
通常,延迟补偿器210可操作以基于如下等式来确定用于中继来自一组K个要求事件的事件ej的输出时间实例。
tout,ej=t事件,ej+max(△(e1),△(e2),...,△(ej),...,△(eK))(2)
在具有网络300的改变的负荷情形的动态分布式计算***中,各个节点的可能改变的处理能力和/或可能动态地改变的网络路径、到达延迟补偿器实例210的事件的传播或处理延迟很可能随着时间的推移而改变,而不是静态的。延迟补偿器210可以通过基于针对来自一组K个事件的事件ej的当前的和多个先前测量的或确定的事件延迟确定所述事件ej的事件延迟值Δ(ej)来说明这个。从而,更近的事件延迟可以比它们前面的时间延迟被加权更多。在特定实施方式中,延迟补偿器可以被适配成基于如下等式确定事件ej的事件延迟Δ(ej):
其中k表示一组k个已经确定的事件延迟,△ej(i)表示事件ej的第i个确定的延迟,其中i=1对应于最迟确定的延迟,σ(ej)表示最迟确定的延迟Δ(ej)的标准方差,并且其中θ表示安全因子。在一些实施方式中,为了事件j的事件延迟Δ(ej)的较容易的且不太复杂的计算,因子θ还可以被设置为零。等式(3)的各个被加项根据几何行被加权。因子1/2用作归一化因子,因为对于足够大的“k”,几何行朝2收敛。考虑最迟测量值的标准方差,项θ.σ(ej)可以用作安全缓冲。例如,在θ=3情况下,它可以起99.975%安全的作用。从而,99.975%安全意味着根据等式(3)而计算或者预测的延迟在99.975%的概率情况下不小于对应的实际的或真实的网络延迟。例如,安全缓冲θ.σ(ej)可以被适配为网络相对于延迟变化的稳定性。
回到上述简单的示例,事件C可以在输出时间实例tout,C=1005处被转发到所关联的后续事件检测器208。这确切地是我们可以说事件A、B以及D不在事件C之前有原因地发生的时刻。在我们的示例中,所关联的后续事件检测器208在以下表中所指示的中继或输出时间实例处获得转发的以下事件:
事件发生在延迟补偿器处接收被中继到事件检测器
如一个人能够从上述表所看到的,事件A、B、C以及D已由延迟补偿器210转发到根据它们的原始发生时间顺序正确地排序的所关联的后续事件检测器208。
包括延迟补偿器210的同步设备200的工作原理由图5来示意性地描绘。
由附图标记502所表示的入事件包括原始事件定时值t事件和事件标识符(事件ID)。进一步地,输出时间值tout与事件502相关联。事件的输出或延迟时间tout可以基于原始事件时间t事件和公共延迟值δ来确定,所述公共延迟值δ在图5中所描绘的示例中是79。上面已经对公共延迟值的可能的计算进行了描述。要被中继到后续或下游事件检测器208的事件502然后可以被***到同步设备200的中继或调度缓冲器504中。入事件到缓冲器504中的***可以是基于它们的确定的输出时间实例tout的,在所述输出时间实例tout处,事件将被转发到所关联的后续事件检测器208。对于已刚到达延迟补偿器210的输入端的示例性事件502,输出时间实例tout已被计算为367。由于那个原因,它被***在将分别在输出时间364和369处被调度(即转发)的两个缓冲的事件之间。在事件已根据当前的公共延迟值δ(其在所描绘的示例中是79)被延迟之后,事件缓冲器504中的事件被调度或者通知(即转发)到后续关联的事件检测器208。在事件已被转发到所关联的事件检测器208之后,可以在缓冲器504中的下一个事件被调度之前删除该事件。
图6示意性地示出了根据本发明的实施方式、用于使第一事件202和第二事件204同步的方法600的流程图。
如之前提到的那样,两个事件202、204分别具有基于公共时钟信号306的与其相关联的第一和第二事件时间戳t事件,e1、t事件,e2。此外,第一事件和第二事件两者行进通过分布式计算***300的不同的路线,并且经历不同的延迟Δ(e1)、Δ(e2)。为了使事件202、204同步,同步方法600包括在延迟补偿器210处将第一事件202和第二事件204中继到所关联的事件检测器208的步骤602,其中,第一事件202和第二事件204基于所经历的延迟Δ(e1)、Δ(e2)并且基于所关联的第一和第二原始事件时间戳t事件,e1、t事件,e2而被中继到事件检测器208。进一步地,方法600包括在与延迟补偿器210相关联的事件检测器208处基于经中继的第一输入事件202’和经中继的第二输入事件204’来检测至少一个输出事件206的步骤604。经中继的第一输入事件202’和经中继的第二输入事件204’还可以被表示为第一输入事件和经中继的第二输入事件的中继的版本。典型地,这些中继的版本分别与第一事件202和第二事件204相同。然而,它们可以被同步设备200或其延迟补偿器210在时间上延迟。
仅当确定的或测量的事件延迟是可用的时,所描述的构思才可靠地工作。就在***启动之后,事件延迟是未知的。然而,可在***启动之后将初始事件延迟提供给延迟补偿器210。这样的初始事件延迟可以是基于相应事件的最坏情况经历的。替换地,同步设备可以在其关闭之前存储关于事件延迟的它的知识,使得每个同步设备实例200可以检索前一个(网络)状态的配置,并且因此,可以近似当前网络配置的延迟,因为它具有与哪些事件在分布式计算***的哪些节点上被执行相关的信息。
可能已经在不同的网络和/或CPU负荷情形下测量了测量的延迟值。这能够通过对相应的测量的延迟值的适当归一化来说明。例如,反映当前负荷情形的归一化因子能够被应用于在所述当前负荷情形下测量到的延迟值。例如,与正常负荷情形相对应的归一化因子可以是一。如果延迟值在高负荷情形下被确定,则这可以由大于1的归一化因子来反映。相比之下,如果延迟值在低负荷条件下被测量,则这可以由小于1的归一化因子来反映。应用于相应的延迟值的实际权重(例如在等式(3)中)然后能够取决于所测量的延迟的归一化因子和与当前负荷情形相关的当前归一化因子之间的关系。如果当前负荷情形小于其中特定延迟值已被确定的负荷情形,则这样的方法可能导致比实际上测量的延迟值小的归一化的延迟值,以便说明较小的或较低的负荷情形。
图7示意性地图示了本发明的另一个实施方式。
图7示意性地示出了用于基于至少一个传感器或数据流702-1、702-2来确定事件的分布式计算***700。例如可以为分布式计算机网络或多核处理器的分布式计算***700包括多个分布式计算节点704,其中所述多个分布式计算节点704中的每一个都包括根据本发明的实施方式的用于同步的设备200。
根据本发明的实施方式,计算节点704中的每一个都因此可以包括同步设备200以及延迟补偿器210。并且,包括同步设备200的节点700中的每一个都还包括关联的事件检测器208。根据一个示例性实施方式,计算节点704可以是分布式信号处理器或计算机。在一些其它实施方式中,节点704还可以是被实现在相同的计算机装置中、以及因此基本上位于相同的地理位置处的多核处理单元的不同过程。
本发明的实施方式特别地与事件基于源于无线跟踪***的原始传感器数据的检测相关,所述无线跟踪***可以被用于跟踪球类体育事件的选手和所有位置,所述球类体育事件例如为英式足球、美式足球、橄榄球、网球等。因此,分布式计算***700可以被耦合到这样的无线跟踪***或定位***以用于定位和/或跟踪在预定义地理区域内的对象和所有人,所述预定义地理区域可以是例如英式足球场。定位***将至少一个传感器数据流702-1、702-2输入到分布式计算***700,其中传感器数据流承载指示被定位对象的地理位置的数据。此外,传感器数据流还可以承载被定位对象的其它运动数据。
为了检测事件,诸如本原和/或复合事件,各种事件检测器208在分布式计算***700的不同节点704上运行。取决于***700的当前条件或取决于事件检测器208的复杂性和/或要被分析的传感器数据流702-1、702-2,这样的事件检测器或事件检测器实例208可以在它们相应的节点704和/或整个分布式计算***700上引起不同的负荷。因此,在原始***配置(即,事件检测器208在各种网络节点704上的分布)的改变的前提或条件的场景中,当前***配置能够证明是次优的或者能够甚至导致分布式计算***700的崩溃。
这样不合需要的负荷不均衡(其随后还导致不均衡的事件延迟)可以被同步设备200或特别是其延迟补偿器或延迟补偿器实例210检测到。如果至少一个测量的或确定的事件延迟Δ(.)达到过高的值,则这可以指示传送对应事件并且被布置在延迟补偿器210上游的事件检测器进程可能是过载的或者可能经历一些其它问题。在这样的场景中,可能期望将恶意的始发事件检测器进程转移或者再定位到分布式计算***700的一些其它硬件资源或节点704。例如,恶意的事件检测器进程可以被从其当前节点转移到分布式计算***700的另一物理上分离且不同的节点。出于这种目的,根据本发明的另一个方面,还提供了用于在不同的节点704之间转移事件检测器进程的设备800。用于转移的设备800的实施方式可以与同步设备200和/或分布式计算***700的实施方式组合。
图8示意性地图示了用于转移的设备800(其还可以被称为转移设备)的实施方式的示意框图。
转移设备800用于将分布式计算***700的第一节点704-1的第一事件检测器进程转移到分布式计算***700的第二节点704-2的第二事件检测器进程。例如,从而第二节点704-2要么相对于其地理定位要么相对于多核处理器的不同处理单元与第一节点704-1不同。转移设备800包括用于将第一事件检测器进程的进程内容拷贝到第二事件检测器进程的装置802。进一步地,转移设备800包括用于协调第一事件检测器进程的输入事件使得第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理的装置804。而且,设备800包括用于验证第一事件检测器进程的输入事件是否在第一事件检测器进程和第二事件检测器进程两者处导致相同的输出事件的装置806,所述第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理。
进程一般地将被理解为在计算机装置上被执行的计算机程序的实例,所述计算机装置可以被网络节点包括。进程包括计算机程序的程序代码及其当前活动。事件检测器进程可以包括状态机,所述状态机可以被理解为用来设计计算机程序的行为模型。状态机由与转变相关联的(有限)数目的状态组成。转变是从一个状态开始并且在另一(或相同的)状态下结束的一组动作。转变由触发器来开始,其中,这样的触发器例如可以是输入到进程的本原或复合事件。因此,根据本发明的方面,事件检测器进程可以包括状态机,并且事件检测器进程的内容或存储器可以将所述状态机的当前状态反映为例如各个变量或阵列或变量。
在其中存在用于接管第一节点704-1的第一事件检测器进程的一组可能的或替代的第二计算节点704-2的实施方式中,转移设备800可以进一步包括用于基于或者根据最优的事件检测器进程分布准则在该组可能的节点当中确定第二节点704-2的装置808。从而,这样的最优的事件检测器进程分布准则可以导致分布式计算***700中的所有事件的最小总体延迟、分布式计算***700中的最小数目的安全事件订阅、分布式计算***700的给定节点704的负荷的最小变化或最小总体分布式计算***负荷中的一个。
针对用于确定的装置808的装置例如可以包括具有总体网络条件的信息的中央网络实体,所述信息包括各个节点704的负荷和整个***700的负荷。这样的中央网络实体还可以具有与行进通过分布式网络700的事件的事件延迟时间Δ(.)相关的信息。在这样的情况下,中央网络实体可以发起事件检测器进程例如从负荷更重的节点704-1到负荷不太重的节点704-2的转移。或者,它可以在不同的节点704-2、704-2之间发起事件检测器进程转移以便降低分布式***700中的一个或多个事件延迟。
根据另一实施方式,用于确定的装置808还可以包括同步设备200或其延迟补偿器实例210或者被同步设备200或其延迟补偿器实例210包括。延迟补偿器实例210具有它中继到关联的后续或下游事件检测器进程的那些事件的延迟的知识。例如,在延迟补偿器实例210测量到源于始发或上游事件检测器的事件的过高的延迟情况下,延迟补偿器实例210可以发起所述上游事件检测器进程从其当前网络节点到另一网络节点的转移以降低事件延迟。在延迟补偿器实例210没有与在分布式***700中的各个节点704的负荷情形相关的进一步知识情况下,这可能是例如简单的试验和错误过程。
根据一些实施方式,转移设备800可以进一步包括用于在第二节点704-2上创建进程实例以获得第二事件检测器进程的装置810,所述进程实例与第一事件检测器进程相对应。例如,整个进程转移过程例如可以借助于操作***(OS)来执行,所述操作***(OS)将被理解为管理计算机硬件资源并且为应用软件提供公共服务的一组程序,例如事件检测器进程。这样的OS服务还可以包括实例化功能性,用于拷贝进程内容的装置802能够访问所述实例化功能性。也就是说,创建装置810可以包括用于访问在各个计算节点704-1、704-2上运行和/或控制分布式***700的操作***的进程实例化功能性的装置。第二节点704-2的第二事件检测器进程一旦已被实例化了,它就可以订阅第一节点704-1的第一事件检测器进程已订阅的相同的(一个或多个)事件,以便从分布式***接收(一个或多个)相同的事件或事件流作为输入信号。换句话说,用于创建实例的装置810可以在在第二节点704-2上实例化第二事件检测器进程之后可操作以向第二事件检测器进程订阅与第一事件检测器进程相同的输入事件。
OS服务可以进一步包括拷贝功能性,用于拷贝进程内容的拷贝装置802能够访问所述拷贝功能性。也就是说,拷贝装置802可以包括用于访问在分布式***700的计算节点704-1、704-2或一些其它控制实体上运行的操作***的进程拷贝功能性的装置。拷贝装置802还可操作以在预定时刻“冻结”第一事件检测器进程的进程内容以便获得第一事件检测器进程的定义条件。在这里,“冻结”意味着事件检测器进程停止对其输入做出响应。拷贝装置802可以进一步被适配成将经冻结的进程内容从第一事件检测器进程拷贝到第二事件检测器进程以在第二事件检测器进程处获得相同确定的定义条件。从而,用于拷贝的装置802可操作以将进程内容从第一事件检测器进程迭代地拷贝到第二事件检测器进程,使得在拷贝过程的剩余部分期间将不改变的进程内容被首先拷贝。因此,在第一事件检测器进程中包含的数据可以在多次迭代中被从第一节点704-1拷贝到第二节点704-2。从而应该定义哪一个数据属于事件检测器的状态信息。例如,在进程情况下,这是进程存储器。当迭代地拷贝进程内容时,要被拷贝的进程内容的差异或间隙(即增量)变得越来越小直到差异保持小但不为零为止。
在新的(即第二)事件检测器进程在第二节点704-2处被开始或者接通之前,两个事件检测器进程的(相同的)输入数据可以被缓冲使得两个事件检测器进程还从预定时刻(即“冻结”时刻)开始获得相同的外部输入数据,所述两个事件检测器进程理想地已经具有相同定义的内部条件。因此,用于拷贝的装置802还可操作以缓冲第一事件检测器进程在将进程内容从第一事件检测器进程拷贝到第二事件检测器进程期间和/或之后的输入事件。
当有关内容的一切已被从第一(旧的)事件检测器进程拷贝到第二(新的)事件检测器进程时,考虑到第一事件检测器进程和第二事件检测器进程的相同的内部条件或状态,两个事件检测器进程可以被开启以用于并行处理(理想地相同的)缓冲的输入数据(事件)。也就是说,两个事件检测器在拷贝和缓冲过程之后被接通并且并行地处理经分支的以及因此相同的输入数据。出于这种目的,用于协调的装置804可操作以处理从预定(冻结)时刻开始并且基于所拷贝的进程内容的在第一事件检测器进程和第二事件检测器进程两者处并行的第一事件检测器进程的输入事件。并且,例如,出于那种目的,协调装置804能够访问OS。
用于验证的装置806(例如比较器)然后验证两个事件检测器进程是否分别导致相同的输出。如果情况是这样的,则旧的(即第一)事件检测器进程可以被关掉。如果情况不是这样的,则拷贝和/或缓冲过程可能已失败并且新的(即第二)事件检测器进程可以被关闭以从开头开始整个转移过程。因此,根据一些实施方式,用于验证的装置806可操作以在在第一事件检测器进程和第二事件检测器进程两者处的输出事件是相同的情况下关闭第一事件检测器进程,或者,可操作以在在第一事件检测器进程和第二事件检测器进程两者处的输出事件不是相同的情况下关闭第二事件检测器进程。
如上面已经提到的那样,转移设备800的实施方式可以与同步设备200的实施方式组合,因为它们的特征可以彼此协同地补充。因此,本发明的一些方面还提供了用于基于至少一个传感器数据流来确定事件的分布式计算***700,其中该分布式计算***包括多个分布式计算节点704和用于将分布式计算***700的第一节点704-1的第一事件检测器进程转移到分布式计算***700的第二节点704-2的第二事件检测器进程的事件进程转移设备800的实施方式。进一步地,所述多个分布式计算节点704中的每一个都包括用于使第一事件202(具有基于公共时钟信号的与其相关联的第一事件时间t事件,e1)和第二事件204(具有基于公共时钟信号的与其相关联的第二事件时间t事件,e2)同步的设备200,其中第一事件202和第二事件204(或e1和e2)行进通过分布式计算***700的不同的路径或路线,并且经历不同的延迟Δ(e1)、Δ(e2),并且其中至少一个输出事件206将由事件检测器(进程)208基于第一事件202和第二事件204(或e1和e2)来确定。如已经参考图2所解释的那样,用于使事件202、204同步的设备200包括与事件检测器208相关联的延迟补偿器210,延迟补偿器210具有用于接收第一事件202和第二事件204的输入端212-1、212-2并且具有用于将所接收到的第一事件和第二事件的中继版本202’、204’转发到相关联的事件检测器208的输出端214-1、214-2。延迟补偿器210的实施方式可操作以基于所经历的延迟Δ(e1)、Δ(e2)并且基于相关联的第一和第二事件时间t事件,e1、t事件,e2将第一事件202和第二事件204中继到相关联的事件检测器208,如上面已经更详细地解释的那样。
其中事件检测器优选地在它们正被执行或者运行时应该可从一个节点转移到另一节点的本发明的方面还包括用于将分布式计算***700的第一节点704-1的第一事件检测器进程转移到分布式计算***700的第二节点704-2的第二事件检测器进程的方法。在图9中图示了这样的转移方法900的示意流程图。
转移方法900包括将第一事件检测器进程的进程内容拷贝到第二事件检测器进程的步骤902。在那之前,可确定哪一个计算节点或其管理进程将处理过载的事件检测器进程/线程的进程。在一些实施方式中,拷贝步骤902可以包括在多次迭代中将由事件检测器进程组成的数据从第一节点704-1拷贝到第二节点704-2,如上面已经描述的那样。拷贝步骤902从而包括定义哪些数据属于事件检测器的状态信息。例如,在进程的情况下,这是进程存储器。当拷贝时,要被拷贝的进程内容的增量变得越来越小,直到改变保持小但不为零为止。
方法900进一步包括在第一事件检测器进程和第二事件检测器进程两者处并行地处理第一事件检测器进程的输入事件的步骤904。出于那种目的,可以为两个事件检测器缓冲和/或拷贝第一事件检测器的输入数据,使得两个检测器可以处理相同的输入数据流。两个事件检测器然后可以被接通以并行地处理所述输入数据流。
在另外的步骤906中,验证了第一事件检测器进程的输入事件是否在第一事件检测器进程和第二事件检测器进程两者处导致相同的输出事件,所述第一事件检测器进程的输入事件在第一事件检测器进程和第二事件检测器进程两者处被并行地处理。如果情况是这样的,即,在第一事件检测器进程和第二事件检测器进程两者处的输出事件是相同的情况下,可以关闭第一事件检测器进程(见步骤908)。如果情况不是这样的,即,在第一事件检测器进程和第二事件检测器进程两者处的输出事件不是相同的情况下,可以替代地关闭第二事件检测器进程并且转移方法900再次在步骤902处开始。
因此,事件检测器进程在不同的网络节点之间的转移例如可以通过让与不同节点704的事件检测器相关联、像调度器(还被称为事件核进程)这样的管理实例与彼此进行通信来完成。基于这种通信,它们可以决定将事件检测器进程或其算法从***700的一个节点切换到另一节点。
本描述和图仅仅图示了本发明的原理。因此将了解的是,本领域的技术人员将能够设计各种布置,所述各种布置尽管未在本文中明确地描述或者示出,但是具体化本发明的原理并且被包括在其精神和范围内。此外,本文中所记载的所有示例原理上旨在明确地为仅用于教学目的以帮助读者理解本发明的原理和由(一个或多个)发明人贡献来促进本领域的构思,并且将被解释为不限于这样具体地记载的示例和条件。而且,本文中记载本发明的原理、方面以及实施方式及其特定示例的所有声明旨在包含其等同物。
表示为“用于...的装置”的功能块(执行特定功能)应该被理解为包括分别被适配、配置或者可操作用于执行特定功能的电路的功能块。从而,“用于某件事情的装置”也可以被理解为“被适配、配置或可操作以做某件事情的装置”。被适配用于执行特定功能的装置因此不暗示这样的装置必定正在执行所述功能(在给定时刻)。
包括任何功能块、在图中所示出的各种元素的功能可以通过利用专用硬件(如例如处理器)以及能够与适当的软件相关联地执行软件的硬件来提供。当由处理器来提供时,功能可以由单个专用处理器、由单个共享处理器或者由多个各个处理器(其中的一些可以被共享)来提供。而且,术语“处理器”或“控制器”的明确使用不应该被解释为排他地指的是能够执行软件的硬件,并且可以隐式地包括但不限于数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)以及非易失性存储装置。还可以包括其它硬件(常规的和/或定制的)。
本领域的技术人员应该了解的是,本文中的任何框图表示具体化本发明的原理的说明性电路的概念视图。类似地,将了解的是,任何流程图、流图、状态转变图、伪代码等等表示可以基本上用计算机可读介质表示并且由计算机或处理器如此执行的各种进程,而无论这样的计算机或处理器是否被明确地示出。
此外,随附权利要求从而被结合到具体描述中,其中每个权利要求都可以要求独立作为单独的实施方式。虽然每个权利要求可以要求独立作为单独的实施方式,但是应当注意的是-尽管从属权利要求可以在权利要求中指的是与一个或多个其它权利的特定组合-其它实施方式还可以包括从属权利要求与每个其它从属权利要求的主题的组合。除非陈述了特定组合不是有意的,否则这样的组合在文中被提出。此外,即使权利要求未被直接地使得与任何其它独立权利要求相关,也旨在还将该独立权利要求的特征包括到该其它独立权利要求。
应当进一步注意的是,在本说明书中或在权利要求书中所公开的方法可以由具有用于执行这些方法的相应步骤中的每一个的装置的设备来实现。
进一步地,应当理解的是,本说明书或权利要求书中所公开的多个步骤或功能的公开不可以被解释为在特定顺序内。因此,除非这样的步骤或功能由于技术原因而不是可互换的,否则多个步骤或功能的公开将不将这些限制于特定顺序。
此外,在一些实施方式中,单个步骤可以包括或者可以被分解成多个子步骤。除非明确地排除,否则这样的子步骤可以被包括并且是这个单个步骤的公开的一部分。

Claims (17)

1.一种用于将分布式计算***(300;700)的第一节点(704-1)的第一事件检测器进程转移到所述分布式计算***(300;700)的第二节点(704-2)的第二事件检测器进程的设备(800),所述第二节点(704-2)不同于所述第一节点(704-1),其中,所述第一事件检测器进程和所述第二事件检测器进程可操作以基于来自用于跟踪在预定地理区域内的对象的位置跟踪***的至少一个传感器数据流(702)而检测事件,所述传感器数据流(702)承载指示与至少一个对象相关的地理位置或运动数据的原始传感器数据,其中,所述事件是直接地基于所述原始传感器数据的本原事件或基于先前检测到的其它事件的复合事件,所述设备(800)包括:
用于将所述第一事件检测器进程的进程内容拷贝到所述第二事件检测器进程的装置(802);
用于协调所述第一事件检测器进程的输入事件使得所述第一事件检测器进程的所述输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理的装置(804);以及
用于验证所述第一事件检测器进程的所述输入事件是否在所述第一事件检测器进程和所述第二事件检测器进程两者处导致相同的输出事件的装置(806),所述第一事件检测器进程的所述输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理。
2.根据权利要求1所述的设备(800),其中,用于验证的所述装置(806)可操作以在所述第一事件检测器进程和所述第二事件检测器进程两者处的所述输出事件是相同的情况下关闭所述第一事件检测器进程,或者,可操作以在所述第一事件检测器进程和所述第二事件检测器进程两者处的所述输出事件是不相同的情况下关闭所述第二事件检测器进程。
3.根据权利要求1或2所述的设备(800),所述设备(800)进一步包括:
用于基于最优的事件检测器进程分布准则在一组可能的节点当中确定所述第二节点(704-2)的装置(808)。
4.根据权利要求3所述的设备(800),其中,所述最优的事件检测器进程分布准则导致在所述分布式计算***中的所有事件的最小总体延迟、在所述分布式计算***中的最小数目的安全事件订阅、所述分布式计算***的给定节点的负荷的最小变化、或最小总体分布式计算***负荷中的一个。
5.根据权利要求1或2所述的设备(800),所述设备(800)进一步包括:
用于在所述第二节点上创建与所述第一事件检测器进程相对应的实例以获得所述第二事件检测器进程的装置(810)。
6.根据权利要求5所述的设备(800),其中,用于创建所述实例的所述装置(810)在所述第二节点(704-2)上实例化所述第二事件检测器进程之后可操作以向所述第二事件检测器进程订阅与所述第一事件检测器进程相同的输入事件。
7.根据权利要求1或2所述的设备(800),其中,用于拷贝的所述装置(802)可操作以在预定时刻冻结所述第一事件检测器的进程内容并且可操作以将经冻结的进程内容从所述第一事件检测器进程拷贝到所述第二事件检测器进程。
8.根据权利要求7所述的设备(800),其中,用于并行地协调输入事件的所述装置(804)可操作以处理从所述预定时刻开始并且基于所拷贝的进程内容的在所述第一事件检测器进程和所述第二事件检测器进程两者处并行的所述第一事件检测器进程的所述输入事件。
9.根据权利要求1或2所述的设备(800),其中,用于拷贝的所述装置(802)可操作以将所述进程内容从所述第一事件检测器进程迭代地拷贝到所述第二事件检测器进程,使得将在拷贝过程的剩余部分期间不改变的内容被首先拷贝。
10.根据权利要求1或2所述的设备(800),其中,用于拷贝的所述装置(802)可操作以在拷贝所述进程内容期间缓冲所述第一事件检测器进程的所述输入事件。
11.根据权利要求1或2所述的设备(800),其中,事件检测器进程包括状态机,并且其中,所述进程内容反映所述状态机的当前状态。
12.一种用于基于来自用于跟踪在预定地理区域内的对象的位置跟踪***的至少一个传感器数据流(702)来确定事件的分布式计算***(300;700),所述传感器数据流(702)承载指示与至少一个对象相关的地理位置或运动数据的原始传感器数据,其中,所述事件是直接地基于所述原始传感器数据的本原事件或基于先前检测到的其它事件的复合事件,所述分布式计算***(700)包括:
多个分布式计算节点(704);
根据前述权利要求中任一项的用于将所述分布式计算***(700)的第一节点(704-1)的第一事件检测器进程转移到所述分布式计算***(700)的第二节点(704-2)的第二事件检测器进程的设备(800);以及
其中,所述多个分布式计算节点(704)中的每一个都包括用于使第一事件(202)和第二事件(204)同步的设备(200),其中,所述第一事件(202)具有基于公共时钟信号与所述第一事件(202)相关联的第一事件定时值,所述第二事件(204)具有基于所述公共时钟信号与所述第二事件(204)相关联的第二事件定时值,所述第一事件和所述第二事件(202;204)行进通过所述分布式计算***(700)的不同路径并且经历不同的延迟,并且其中,至少一个输出事件(206)将由事件检测器(208)基于所述第一事件和所述第二事件(202;204)来确定,用于同步的所述设备(200)包括:
与所述事件检测器(208)相关联的延迟补偿器(210),所述延迟补偿器(210)具有用于接收所述第一事件和所述第二事件(202;204)的输入端(212)并且具有用于将所接收到的所述第一事件和所述第二事件的延迟版本(202’;204’)转发到相关联的事件检测器(208)的输出端(214),
其中,所述延迟补偿器(210)可操作以基于所经历的延迟并且基于相关联的第一事件定时值和第二事件定时值将所述第一事件和所述第二事件(202;204)转发到相关联的事件检测器,使得所接收到的所述第一事件和所述第二事件(202;204)的所述延迟版本的时间顺序对应于所述第一事件和所述第二事件的原始时间顺序。
13.根据权利要求12所述的分布式计算***(700),其中,所述延迟补偿器(210)可操作以分别转发所述第一事件和所述第二事件,使得所接收到的所述第一事件和所述第二事件的转发版本(202’;204’)之间的相对时间差对应于所述第一事件和所述第二事件(202;204)之间的原始相对时间差。
14.根据权利要求12至13中任一项所述的分布式计算***(700),其中,所述延迟补偿器(210)可操作以基于所述第一事件定时值和所述第二事件定时值以及公共延迟值而确定用于将所述第一事件和所述第二事件(202;204)转发到相关联的事件检测器(208)的输出时间实例。
15.根据权利要求12至13中任一项所述的分布式计算***(700),其中,所述延迟补偿器(210)可操作以基于所述第一事件定时值和所述第二事件定时值以及所述第一事件和所述第二事件的最大事件延迟而确定用于将所述第一事件和所述第二事件(202;204)转发到相关联的事件检测器(208)的输出时间。
16.根据权利要求12至13中任一项所述的分布式计算***(700),其中,所述延迟补偿器(210)可操作以基于所述第一事件或所述第二事件在所述延迟补偿器处的接收时间以及所述第一事件和所述第二事件各自的相关联的原始事件定时值而分别确定所述第一事件和所述第二事件(202;204)的事件延迟。
17.一种用于将分布式计算***(300;700)的第一节点(704-1)的第一事件检测器进程转移到所述分布式计算***(300;700)的第二节点(704-2)的第二事件检测器进程的方法(900),所述第二节点不同于所述第一节点,其中,所述第一事件检测器进程和所述第二事件检测器进程可操作以基于来自用于跟踪在预定地理区域内的对象的位置跟踪***的至少一个传感器数据流(702)而检测事件,所述传感器数据流(702)承载指示与至少一个对象相关的地理位置或运动数据的原始传感器数据,其中,所述事件是直接地基于所述原始传感器数据的本原事件或基于先前检测到的其它事件的复合事件,所述方法(900)包括以下步骤:
将所述第一事件检测器进程的进程内容拷贝(902)到所述第二事件检测器进程;
协调(904)所述第一事件检测器进程的输入事件使得所述第一事件检测器进程的所述输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理;以及
验证(906)所述第一事件检测器进程的所述输入事件是否在所述第一事件检测器进程和所述第二事件检测器进程两者处导致相同的输出事件,所述第一事件检测器进程的所述输入事件在所述第一事件检测器进程和所述第二事件检测器进程两者处被并行地处理。
CN201180074529.2A 2011-10-31 2011-10-31 用于转移事件检测器进程的设备和方法 Active CN104025051B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/069159 WO2013064171A1 (en) 2011-10-31 2011-10-31 Apparatus and method for transferring event detector processes

Publications (2)

Publication Number Publication Date
CN104025051A CN104025051A (zh) 2014-09-03
CN104025051B true CN104025051B (zh) 2017-05-03

Family

ID=45815572

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180074529.2A Active CN104025051B (zh) 2011-10-31 2011-10-31 用于转移事件检测器进程的设备和方法
CN201280052949.5A Active CN103907092B (zh) 2011-10-31 2012-03-14 用于迁移事件检测器处理的设备、方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280052949.5A Active CN103907092B (zh) 2011-10-31 2012-03-14 用于迁移事件检测器处理的设备、方法

Country Status (8)

Country Link
US (2) US9954932B2 (zh)
EP (2) EP2774035B1 (zh)
JP (2) JP5847953B2 (zh)
CN (2) CN104025051B (zh)
AU (2) AU2011380288B2 (zh)
BR (2) BR112014010370B1 (zh)
ES (2) ES2601804T3 (zh)
WO (2) WO2013064171A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2763041A1 (en) * 2013-01-31 2014-08-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for processing out-of-order events
CH709742A1 (de) * 2014-06-05 2015-12-15 Swisstradingbox Ag Börsenhandelssystem.
US10423468B2 (en) 2015-02-10 2019-09-24 Red Hat, Inc. Complex event processing using pseudo-clock
US9891966B2 (en) 2015-02-10 2018-02-13 Red Hat, Inc. Idempotent mode of executing commands triggered by complex event processing
US10151215B2 (en) * 2015-06-01 2018-12-11 Solar Turbines Incorporated High speed recorder for a gas turbine engine
CN105105755B (zh) * 2015-06-25 2017-10-31 简极科技有限公司 一种智能球场***及其数据获取方法
CN105786618B (zh) * 2016-02-24 2019-06-18 华为技术有限公司 加速器网络中路由报文的方法和装置
US11537419B2 (en) * 2016-12-30 2022-12-27 Intel Corporation Virtual machine migration while maintaining live network links
US11143055B2 (en) 2019-07-12 2021-10-12 Solar Turbines Incorporated Method of monitoring a gas turbine engine to detect overspeed events and record related data
US11411969B2 (en) * 2019-11-25 2022-08-09 Red Hat, Inc. Live process migration in conjunction with electronic security attacks
US11354207B2 (en) 2020-03-18 2022-06-07 Red Hat, Inc. Live process migration in response to real-time performance-based metrics
JP2022019145A (ja) * 2020-07-17 2022-01-27 富士通株式会社 イベントストリーム処理方法及びイベントストリーム処理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441528A (zh) * 2007-11-19 2009-05-27 华硕电脑股份有限公司 计算机***的输入装置与其操作方法
CN102223597A (zh) * 2010-04-15 2011-10-19 上海启电信息科技有限公司 一种移动定位装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3231563B2 (ja) 1994-11-10 2001-11-26 日本電気株式会社 メッセージ到着順序制御方式
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
US6052363A (en) 1997-09-30 2000-04-18 Northern Telecom Limited Method for causal ordering in a distributed network
CN100546416C (zh) 2003-01-08 2009-09-30 诺基亚有限公司 用来在工作于分组无线电通信***内的移动节点上进行分组区域定时操作的装置和相关方法
US7010538B1 (en) * 2003-03-15 2006-03-07 Damian Black Method for distributed RDSMS
US7487206B2 (en) * 2005-07-15 2009-02-03 International Business Machines Corporation Method for providing load diffusion in data stream correlations
US9009234B2 (en) * 2007-02-06 2015-04-14 Software Ag Complex event processing system having multiple redundant event processing engines
CN100476742C (zh) 2007-02-09 2009-04-08 华中科技大学 基于对象存储设备的负载平衡方法
US8479216B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
US8370560B2 (en) * 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
JP5504872B2 (ja) 2009-12-16 2014-05-28 日本電気株式会社 データストリーム処理システム及び方法、処理ノード再配置装置及びプログラム
US9116749B2 (en) 2010-04-05 2015-08-25 Futurewei Technologies, Inc. Method for dynamic on demand startup of a process or resource
US8521974B2 (en) * 2010-11-23 2013-08-27 International Business Machines Corporation Migration of data in a distributed environment
US8478743B2 (en) * 2010-12-23 2013-07-02 Microsoft Corporation Asynchronous transfer of state information between continuous query plans

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441528A (zh) * 2007-11-19 2009-05-27 华硕电脑股份有限公司 计算机***的输入装置与其操作方法
CN102223597A (zh) * 2010-04-15 2011-10-19 上海启电信息科技有限公司 一种移动定位装置

Also Published As

Publication number Publication date
CN103907092B (zh) 2017-03-08
BR112014010370A2 (pt) 2017-04-25
US20140280448A1 (en) 2014-09-18
CN104025051A (zh) 2014-09-03
BR112014010370B1 (pt) 2021-08-10
WO2013064273A1 (en) 2013-05-10
BR112014010348A2 (pt) 2017-04-18
US9537937B2 (en) 2017-01-03
ES2601804T3 (es) 2017-02-16
EP2774036A1 (en) 2014-09-10
EP2774035A1 (en) 2014-09-10
US9954932B2 (en) 2018-04-24
JP5847953B2 (ja) 2016-01-27
JP2015501031A (ja) 2015-01-08
CN103907092A (zh) 2014-07-02
EP2774036B1 (en) 2015-09-16
WO2013064171A1 (en) 2013-05-10
AU2011380288A1 (en) 2014-04-17
AU2011380288B2 (en) 2015-09-17
ES2555578T3 (es) 2016-01-05
BR112014010348B1 (pt) 2021-08-03
AU2012331452A1 (en) 2014-04-10
EP2774035B1 (en) 2016-08-03
JP2015501493A (ja) 2015-01-15
JP5847956B2 (ja) 2016-01-27
US20140297800A1 (en) 2014-10-02
AU2012331452B2 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
CN104025051B (zh) 用于转移事件检测器进程的设备和方法
CN104025554B (zh) 用于使事件同步的设备和方法
CN104956333B (zh) 处理无序事件的设备、方法和计算机程序
US9059935B2 (en) Dynamic adaptations for network delays during complex event processing
Mutschler et al. Distributed low-latency out-of-order event processing for high data rate sensor streams
CN108322280A (zh) 一种分布式计算机网络时钟同步延时补偿方法
CN109568948A (zh) 网络游戏中对象的运动状态同步方法及装置
Paci et al. 0, 1, 2, many—A classroom occupancy monitoring system for smart public buildings
Bovenzi et al. A statistical anomaly-based algorithm for on-line fault detection in complex software critical systems
Milic Optimal stopping strategies in collaborative event detection in wireless sensor networks
CN102053864B (zh) 一种基于抽象格结构的异步普适计算环境感知方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant