并行地执行连续事件处理(cep)查询的制作方法_4

文档序号:9355193阅读:来源:国知局
身份,以及响应于该事件而引起故障的每个操作符的身份。在实施例中,响应于相同的事件多个故障已经被引起的事实可以由从故障引起操作符接收事件作为输入的“父级”操作符检测到,并且可以在此父级操作符处执行所述组合。父级故障然后可以以上面讨论的方式被故障处理器捕捉或重新抛出,而在父级故障内被组合到一起的其它故障可以从系统中被移除,以便不被任何故障处理器单独地捕捉。作为组合的结果,故障处理器可以避免对由相同的事件引起的故障的不必要的重复的故障处理。在本发明的一个实施例中,故障处理器可以被自定义以不同于那些故障处理器处理“简单”故障的方式的方式处理这些“复合的”被组合的故障。
[0063]图4是说明根据本发明的实施例、CEP查询处理器的用户注册的故障处理器可以借以处理由CEP查询的操作符抛出的故障的示例技术400的流程图。虽然在图4中以示例的方式说明某些块,但是本发明的替代实施例可以包含更多、更少、或不同的块,和/或以不同的顺序出现的块。在块402中,表示并行地执行CEP查询的操作符的有向图内的操作符可以针对由那个操作符处理的事件引起故障。在块403中,响应于检测到该故障被引起,CEP查询处理器可以确定任何用户故障处理器是否被用户注册以处理故障。如果是的话,那么控制转到块404。如果不是,控制转到块412。在块404中,CEP查询处理器确定用户注册的故障处理器中的任何一个故障处理器是否还没有针对故障被调用。如果至少一个用户注册的故障处理器还没有针对故障被调用,那么控制转到块406。否则,技术400结束。
[0064]在块406中,CEP查询处理器可以按照注册顺序调用下一个用户注册的故障处理器以处理故障。在块408中,最近被调用的用户注册的故障处理器可以或捕捉并且处理故障或重新抛出故障。在块410中,可以关于最近被调用的用户注册的故障处理器是否捕捉或重新抛出故障做出确定。如果故障被捕捉,那么技术400完成。可替换地,如果故障被重新抛出,那么控制转回到块404。
[0065]可替换地,在块412中,CEP查询处理器可以调用默认故障处理器(不是用户注册的故障处理器)以处理故障。在块414中,默认故障处理器可以捕捉故障并且响应地引起JAVA异常。在块416中,作为包含使得故障在块402中被引起的事件的事件流的源的JAVA适配器的异常处理器,捕捉JAVA异常并且使得事件的修正版本被重新发出到CEP查询处理器。控制然后转回到块402,在其中可以由另一个操作符潜在地引起潜在地与另一个事件有关的另一个故障。
[0066]图5是说明根据本发明的实施例可以使用的系统环境500的组件的简化框图。如所示,系统环境500包括一个或多个客户端计算设备502、504、506、508,其被配置为操作诸如网页浏览器、专有客户端(例如,Oracle Forms)等之类的客户端应用。在各个实施例中,客户端计算设备502、504、506、和508可以与服务器计算机512交互。
[0067]客户端计算设备502、504、506、508可以是通用的个人计算机(包括,例如运行微软视窗(Microsoft Windows)和/或苹果麦金塔(Apple Macintosh)操作系统的各种版本的个人计算机和/或膝上型计算机)、蜂窝电话或PDA (运行诸如Microsoft WindowsMobile的软件并且启用互联网、电子邮件、SMS、Blackberry、或其他通信协议)、和/或运行各种商用的UNIX或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统)中的任何一个的工作站计算机。可替换地,客户端计算设备502、504、506和508可以是能够在网络(例如,下面描述的网络510)上通信的任何其它电子设备,诸如瘦客户机、启用互联网的游戏系统、和/或个人消息设备。虽然具有四个客户端计算设备的示例性系统环境500被示出,但是任何数量的客户端计算设备可以被支持。诸如具有传感器等等的设备之类的其它设备可以与服务器计算机512交互。
[0068]系统环境500可以包括网络510。网络510可以是为那些本领域技术人员所熟知的任何类型的网络,其可以利用各种商用的协议(包括但不限于TCP/IP、SNA、IPX、AppleTalk、等等)中的任何一个协议支持数据通信。仅举例,网络510可以是诸如以太网、令牌环网和/或类似物之类的局域网(LAN);广域网;包括但不限于虚拟专用网络(VPN)的虚拟网络;因特网;内联网;外联网;公用交换电话网(PSTN);红外线网络;无线网络(例如,在IEEE 802.11协议集、本技术领域所知的蓝牙协议、和/或任何其它无线协议中的任何一个协议下运行的网络);和/或这些和/或其他网络的任何组合。
[0069]系统环境500还包括一个或多个服务器计算机512,其可以是通用计算机、专门服务器计算机(包括,例如PC服务器、UNIX服务器、中型服务器、大型计算机、机架式服务器,等等)、服务器场、服务器群集、或任何其它适当的布置和/或组合。在各个实施例中,服务器计算机512可以被调整以运行在上述公开中描述的一个或多个服务或软件应用。例如,服务器计算机512可以对应于连续事件处理服务器。
[0070]服务器计算机512可以运行操作系统,其包括那些上面讨论的任何一个操作系统,以及任何商用的服务器操作系统。服务器计算机512还可以运行各种附加服务器应用和/或中间层应用中的任何一个,包括HTTP服务器、FTP服务器、CGI服务器、Java服务器、数据库服务器以及类似服务器。示例性数据库服务器包括但不限于来自Oracle、Microsoft、Sybase、IBM以及类似公司的那些商用服务器。
[0071]系统环境500还可以包括一个或多个数据库514、516。数据库514、516可以存在于各种位置。举例来说,数据库514、516中的一个或多个数据库可以位于服务器计算机512的本地的(和/或居留在其中的)存储介质之上。可替换地,数据库514、516可以远离服务器计算机512,并且与服务器计算机512经由基于网络的或专用的连接进行通信。在一组实施例中,数据库514、516可以位于那些本领域技术人员所熟知的存储区域网络(SAN)之中。类似地,用于执行服务器计算机512所属的功能的任何必要的文件可以被本地地存储在服务器计算机512上,和/或远程地存储,视情况而定。在一组实施例中,数据库514、516可以包括响应于SQL格式的命令被适配以存储、更新以及检索数据的关系数据库(诸如Oracle 10g)。
[0072]图6是根据本发明的实施例可以使用的计算机系统600的简化框图。例如,可以使用诸如计算机系统600之类的系统实施连续事件处理的服务器。包括可以经由总线624电耦接的硬件元件的计算机系统600被示出。硬件元件可以包括一个或多个中央处理单元(CPU)602、一个或多个输入设备604(例如,鼠标、键盘、等等)、以及一个或多个输出设备606 (例如,显示设备、打印机、等等)。计算机系统600还可以包括一个或多个存储设备608。举例来说,存储设备608可以包括诸如磁盘驱动器、光存储设备之类的设备、和诸如随机存取存储器(RAM)和/或只读存储器(ROM)之类的固态存储设备,其可以是可编程的、闪速可更新的和/或类似的设备。
[0073]计算机系统600另外可以包括计算机可读存储介质读取器612、通信子系统614(例如,调制解调器、网卡(无线或有线)、红外线通信设备等等),以及可以包括如上所述的RAM和ROM设备的工作存储器618。在一些实施例中,计算机系统600还可以包括处理加速单元616,其可以包括数字信号处理器(DSP)、专用的处理器、和/或类似处理器。
[0074]计算机可读存储介质读取器612还可以被连接到计算机可读存储介质610,共同(并且可选地与存储设备608结合)全面地表示远程、本地、固定、和/或可移动的存储设备加上用于临时地和/或更永久地包含计算机可读信息的存储介质。通信系统614可以允许数据与网络1610和/或参照系统环境1600的上面描述的任何其它计算机进行交换。
[0075]计算机系统600还可以包括被显示为当前位于工作存储器618内的软件元件,其包括操作系统620和/或其它代码622 (诸如应用程序(其可以是客户端应用、网络浏览器、中间层应用、RDBMS、等等)之类)。在示例性实施例中,工作存储器618可以包括可执行的代码和用于上面描述的技术的相关联数据结构(诸如高速缓存)。应当理解的是,计算机系统600的替代实施例可以具有和如上所述不同的许多变化。例如,还可以使用自定义的硬件和/或在硬件、软件(包括诸如小程序之类的可移植软件)、或两者中执行特定元件。此夕卜,可以采用与诸如网络输入/输出设备之类的其它计算设备的连接。
[0076]图7示出用于处理根据如上所述的本发明的原理被配置的事件数据流的系统的功能框图。可以通过硬件、软件、或硬件和软件的组合实施系统的功能块以实现本发明的原理。本领域技术人员将理解,图7中描述的功能块可以被组合或分成子块以实施如上所述的本发明的原理。因此,这里的描述可以支持这里描述的功能块的任何可能的组合或分离或进一步的定义。
[0077]参考图7,示出用于处理事件数据流的系统700。系统700可以包括查询分解单元710。查询分解单元710被配置为将连续事件处理(CEP)查询分解成为多个单独的操作符。然后,系统700的第一约束确定单元720可以确定多个单独操作符内的每个特定操作符的单独约束。至少部分地基于第一约束确定单元720已经为多个单独操作符确定的约束,系统700的第二约束确定单元730可以确定CEP查询的约束。系统700还可以包括被配置针对基于CEP查询的约束确定是否可以以并行方式执行CEP查询中的至少一部分的执行确定单元740。响应于确定可以以并行方式执行CEP查询的至少一部分,系统700的线程产生单元750可以产生并行地处理来自事件流的事件的多个执行线程。
[0078]在示例中,系统700还包括第三约束确定单元760,其被配置为至少部分地基于与事件流相关联的约束确定CEP查询的约束。
[0079]在示例中,第一约束确定单元720可以被配置为至少部分地通过至少部分地基于特定操作符从中接收输入的一个或多个其它操作符的一个或多个约束确定特定操作符的约束,来确定多个单独操作符内的每个特定操作符的单独约束。
[0080]在示例中,第一约束确定单元720可以被配置为至少部分地通过至少部分地基于特定操作符的操作类型是否是过滤操作类型确定特定操作符的约束,来确定多个单独操作符内的每个特定操作符的单独约束。
[0081]在示例中,第一约束确定单元720可以被配置为至少部分地通过通过确定约束集合内的最受限的约束确定特定操作符的约束,来确定多个单独操作符内的每个特定操作符的单独约束,所述约束集合包括(a)特定操作符从中接收输入的所有其它操作符的约束和(b)与特定操作符的操作类型相关联的约束。
[0082]在示例中,系统700还包括合并单元770,其被配置为将以下合并成为单个共享操作符,(a)由处理事件流中的事件的第一 CEP查询使用的第一操作符,和(b)由也处理事件流中的事件的第二 CEP查询使用的第二操作符,该合并响应于确定第一操作符和第二操作符都执行特定类型的操作。
[0083]至于合并单元770,在实例中,第一约束确定单元720还可以包括:第一子单元722,其被配置为至少部分地基于共享操作符的约束确定从共享操作符中接收输入的第三操作符的约束;和第二子单元724,其被配置为至少部分地基于共享操作符的约束确定从共享操作符中接收输入的第四操作符的约束。第三操作符由第一 CEP
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1