灵活的基于预订的事件通告的制作方法

文档序号:6443469阅读:186来源:国知局
专利名称:灵活的基于预订的事件通告的制作方法
技术领域
本发明涉及事件通告技术。具体而言,本发明涉及基于对通告通道的预订执行事件通告的方法,系统和计算机程序产品。
一些访问信息方法是同步的或“基于拉”的。换言之,每访问一次信息就需要递交一次对信息的请求。这样有时就不能有效地同步访问信息。例如,可能会访问到一些相关联但不希望要的信息。当然,用户或应用程序一般不会知道所请求的信息不是希望的。因此,人们研究了一种技术,当需关心的事件异步发生时,能够通告用户或应用程序,换言之,不要求相关的请求以询问事件是否发生。
需关心的事件可包括,例如,如果知道计算机正变得不稳定而自从可能想要存储数据以来已计算机发生的错误。又如,用户可能想要知道特定的数据字段是否有特定值或数据字段的组合是否具有数据值的特定组合。例如,投资人可能想要知道在一年的某一特定时间中股票价格是否跌落到某一特定值以下。又如,用户可能想要知道其它的异步事件,如从特定的发送者接收的电子邮件。
一种被通告事件发生的特定应用程序是事件日志记录,一般常规的日志记录了关于许多各类主题的大量事件,而不顾各个应用程序或用户对所给出的事件是否感兴趣。如果用户希望了解一个特定的事件序列,则用户一般需要浏览整个日志记录并通过目视跟踪所关心的事件以得出适当的结论。例如,假定计算机系统崩溃了,则网络管理员需要调查事件日志记录,详查所有的信息并将相关信息和不相关信息区分开,然后根据相关信息得出为何计算机系统会崩溃的结论。
人们普通认同,人脑能够进行令人惊奇的精神事件处理。例如,人类常常能够轻而易举地从不相关事件中区分出相关事件,并根据相关事件形成判断,甚至在怎样表示信息的结构一致性很小时也可以。然而,计算机系统对于没有可预测结构的信息的解释能力方面就更有限了。
因此,日志的事项具有一些可预测的结构,使计算机能具有某些解释信息的能力。例如,一个常规的事件日志记录技术为各个事件项目分配了有限数目的字段。这类字段可包括事件ID,事件源ID,事件类型(例如,信息,警告,或增加严重性等级的出错)和描述。用于表示事件项目的字段和类型一般是不可扩充的。因此,会被记录的事件信息的类型是十分受约束的。
一种稍能减少这种约束的常规方法是为应用程序在事件项目的描述字段中设计具有一些预定结构的描述。这样,理解这样结构的应用程序可从该描述中进行筛分,并用该预定结构提取所需意义。不过,这需要解释该描述的应用程序具有对所述预定结构的理解。各个应用程序在写入事件描述时一般采用其自己的预定结构。因此,因为缺乏应该如何构造描述字段的标准,各个事件的事件描述还是难以解释。
此外,由于事件日志记录记录了所有的事件,而不顾应用程序或用户对此事件是否感兴趣,宝贵的计算机处理和存储资源将被浪费在写入并不关心的事件项目上。
因此,需要一种事件通告技术,能够广泛解释事件,并当处理不太感兴趣的事件时减小处理和存储资源。
根据本发明,分布式计算机网络或单个计算机系统可以包括许多事件源或许多事件消费者。在事件源和事件消费者间建立了许多通告“通道”。各个通道可以相应于一个特定范围,例如,一个通道接收调试出错事件,另一个通道用于电子邮件相关事件,而另一个通道用于日历提醒事件。各个通道可接收对具有特定特征的事件通告的预订,此外,每个通道还可以保持自己的用于确定预订者和发布者在通道中权限的安全性。将整个通告服务划分为多个通道,能够更好地控制各个通道的安全性。
各个通告通道可通过使用模式定义控制通告。由事件消费者接收的事件预订使用识别在模式定义中会取得的任意所需事件通告位置的语句。事件预订也可以识别在那个位置的所关心事件的相关特性和属性。用识别模式定义中的节点位置和所关心的子节点属性的常规XPATH语句可以完成上述操作。
然后通道接收来自一个或更多的事件源的事件通告。事件通告可采用XML报片形式。然后通道确定由模式定义确定的接收到的XML报片的位置。通道为各个预订和各个事件通告将事件通告和预订匹配。具体而言,通道确定事件通告的位置和属性与事件预订的位置和属性是否相匹配,如果匹配,则复制事件并发送到在相应预订中指定的接收者,如果不匹配,则不复制事件。
完成这个匹配操作的一种方法是为各个预订请求分配一个过滤器。各个过滤器设计为接收事件通告并将那些事件通告与特定预订匹配。这对小量的预订很有效,但对大量预订无效。
为使过滤操作更有效,或将预订请求转化为过滤器的判定树。例如,假定预定只与两个处理引发的事件有关,其中,一个有标识符5,一个有符识符6。判定树的根过滤器执行测试,以确定是否有除处理5或6以外的处理引发事件的预订。如果是这样,则在根过滤器立即将事件通告过滤出去。因此,在该树中的其它过滤器不需要浪费处理那个事件通告的资源。该树可响应各个预订请求重构,从而减少各个事件通告所需的平均处理资源。在该结构中,可进行足够有效的处理,支持实时事件通告处理。
注意,该事件通告系统允许事件消费者控制事件通告的过滤。因此,根据事件消费者的需要,可将事件通告过滤出以保留处理。如果事件消费者是日志记录应用程序,则只记录那些感兴趣的事件通告。与一般需要记录大量事件而不顾是否有事件消费者对事件感兴趣的常规日志记录机制相比,该方式反差巨大。
还需注意,事件通告具有由模式定义确定的特定位置。各个特定事件类型可具有与事件类型相应的模式。事件消费者可使用相应的模式,不仅从事件通告中读取数据,而且理解数据的意义并根据该数据进行智能判断。该模式定义也允许扩充事件类型的数目,并增加与任意给定事件类型相关的字段数目。因此,日志记录不需要局限于字段的具体固定数目和类型,而可更适用于给定的事件类型。
在下面的描述中将阐述本发明的附加特征和优点,通过该描述或通过实施该描述将清楚其一部分。通过附加的权利要求特别指出的手段及其结合可得到和实现本发明的特征和优点。从下面的描述和附加的权利要求,或通过实施下述的发明内容,将对本发明的这些和其它特征更为全面地理解。
然后通道接收来自一个或更多的事件源的事件通告。事件通告可采用XML报片形式。然后通道确定由模式定义确定的XML报片的位置。通道匹配事件通告和预订。具体而言,通道确定在模式定义中事件通告的位置和属性是否与事件预订的位置和属性相匹配,如果匹配,则复制事件并发送到在相应预订中指定的接收者,如果不匹配,则不复制事件。
本发明的实施例包括通用或专用的计算机系统,包括各种计算机硬件组件,将在下面详细描述。在本发明范围中的实施例也包括用于记录或具有计算机可执行指令或数据结构的计算机可读媒介。这样的计算机可读介质可以是任意有效的可由通用或专用计算机系统访问的介质。举例说,(但不加限制)这样的计算机可读介质可包括诸如RAM,ROM,EPROM,CD-ROM或其它光盘存储装置,磁盘存储装置或其它磁存储装置的物理存储介质,或任何其它可用于记录或存储所需的以计算机执行指令或数据结构出现的程序代码、并可由通用或专用计算机系统访问的介质。
当通过网络或其它通信连接(硬件、无线或硬件与无线的组合)将信息传递或提供给计算机系统或计算机装置时,该连接一般可看作计算机可读介质。这样,任何这样的连接可称作计算机可读介质。计算机可读介质的范围也包括上述的组合。计算机执行指令包括,例如,使通用计算机系统或专用计算机系统执行某一功能或一组功能的指令和数据。
本领域的普通技术人员将清楚本发明用于具有各类计算机系统结构的网络计算机环境,这些计算机结构包括个人计算机,膝上型计算机,手提式计算机,多处理器系统,基于微处理器或编程的电子消费品,网络PCs,微型计算机,大型机,移动电话,PDAs,寻呼机等等。本发明也可用于分布式计算环境,其中本地和远程计算机系统通过电信网络链接(通过硬连线链路,无线链路或通过这两者的组合)并执行任务。在分布式计算机环境中,程序模块可位于本地和远程存储装置中。


图1和下述描述提供可实施本发明的适当计算机环境的简要、概括描述。虽然不需要,本发明将以计算机执行指令的通用环境来描述,诸如由计算机系统执行的程序模块。通常,计算机模块包括例程,程序,对象,组件,数据结构等等,执行特定任务或应用具体特定数据类型。计算机可执行指令,相应的数据结构和程序模块,代表了用于执行上述方法步骤的的程序代码方法的例子。这些执行指令的特定序列或相应数据结构代表了实现上述步骤功能的操作。
参考图1,用于本发明原则的适宜操作环境包括作为常规计算装置120的通用计算装置,它包括处理单元121,系统存储器122,耦合包括系统存储器122的各种系统元件处理单元121的系统总线123。系统总线123可以是任意若干种类型的总线结构,包括存储器总线或存储器控制器,外围总线,和采用任何各种总线结构的局部总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统(BIOS)126,具有在诸如启动时协助传输计算机120中器件间信息的基本例程,存储在ROM124中。
计算机120也可以包括用于对磁硬盘139进行读写的磁硬盘驱动器127,用于对活动磁盘129进行读写的磁盘驱动器128,和对诸如CD-ROM或其它光学介质的活动磁盘131进行读写的光盘驱动器130。磁硬盘驱动器127,磁盘驱动器128,和光盘驱动器130分别通过硬盘驱动接口132,磁盘驱动接口133和光驱接口134连接到系统总线123。该驱动器和其相应的计算机可读介质为计算机120提供了计算机执行指令,数据结构,程序模块和其它数据的非易失性存储。虽然这里所述的示例环境采用了磁硬盘139,移动式磁盘129和移动式光盘131,可以使用用于存储数据的其它类型计算机可读介质,包括磁带、闪存卡、数字通用盘、Bernouolli卡盘,RAMs,ROMs等等。
包括一个或多个程序模块的程序编码装置可存储在硬盘139、磁盘129、光盘131、ROM 124或RAM 125中,包括操作系统135、一个或更多的应用程序136、其它程序模块137和程序数据138。
用户可以通过键盘140、定点装置142或诸如麦克风、操纵杆、游戏盘、圆盘式卫星盘,扫描器等其它输入装置(没有示出)将命令或信息键入到计算机120中。这些和其它的输入装置常常通过一系列与系统总线123耦合的通信接口146连接到处理单元121。另外一种方式是,输入装置可通过诸如并行接口、游戏接口或通用串行总线(USB)与其它接口连接。监测器147或另一个显示装置也通过诸如视频适配器148的接口连接到系统总线123。除了监测器外,个人计算机通常包括诸如扬声器或打印机之类的其它外围输出装置(没有示出)。
计算机120可以工作在采用逻辑连接到一个或多个远程计算机(例如远程计算机149a和149b)的网络环境中。远程计算机149a和149b可以是另一个个人计算机、服务器、路由器、网络PC、对等装置或其它公用网络节点,并且虽然只在图1中示出了存储器装置150a和150b及其相关联的应用程序136a和136b,它通常还包括许多或所有关于上述计算机120的器件。在图1中示出的逻辑连接包括局部区域网(LAN)151和广域网(WAN)152,这里仅为示例而不做限制。这些网络环境在办公室或企业计算机网络,内联网和国际互连网是普通的。
当用于LAN网络环境中时,计算机120通过网络接口或适配器153连接到局域网151。当用于WAN网络环境中时,计算机120可包括为调制解调器154,无线联接,或在诸如Internet的广域网152中建立联接的其它装置。调制解调器154,可以是内部或外部的,通过串行口接口146连接到系统总线123。在网络环境中,关于计算机120描述的程序模块或部分可存储在远程存储装置中。须理解,所示网络连接是示范性的,也可采用在广域网152中建立连接的方法。
虽然图1描述了用于本发明的适宜操作环境,本发明的原则可用于任意能够采用本发明原则的情况,必要时可进行适宜的修改。图1示出的环境只是示范性的,仅是本发明原则可用的广阔范围的一小部分。
图2示出了通过许多通告通道220(包括通道221和222)结合许多事件消费者230(包括通过236的消费者231)的许多事件源210(包括通过215的源211)。各个事件源210可以是产生或输送事件通告的任意事件源。各个事件消费者230可以是能够处理事件通告的任意事件消费者(即使它只是将事件通告输送到另一个事件消费者)。通道的意义将在下面详细描述。虽然在图2示例中示出了5个事件源,6个事件消费者和2个通道,本发明不限制事件源,事件消费者和通道的具体数目。事实上,本发明原理的一个优点是能够用于任意数目的事件源,事件消费者或通道。
事件源210和事件消费者230可以位于诸如参考图1描述的计算机120的单一计算机系统中。不过,至少一些事件源210和/或事件消费者230可位于其它分布式环境中的计算机系统中。
通道220表示5个分别用于某一类型使用者的事件流。任意的事件源210可发布事件到通道中以用于该使用者(以进行安全检查)。该通道可为公知的通用通道,或是个人应用通道。在图2的例子中,事件源211、213和214有发布信息到通道221的安全权,而消费者232,233和234有预订由通道221提供的事件的安全权。事件源214和215有发布信息到通道222的安全权,而消费者234和235有预订由通道222提供事件的安全权。
单个事件源能够被发布到多个通道中。例如,事件源214将事件发布到通道221和222中,而另一个源(例如源212)不能发布事件到任何通道中。同样,单个消费者能够预订多个通道。例如,消费者234可预订通道221和222,而另一方面,消费者(例如,消费者231和236)也不能够预订任何通道。
通道可是任意用于特定使用者的事件流。使用者可是“任何人”,这时可将任何事件发布到通道中。不过,如果使用者更具体的话,可取得特定的优点。例如,一个通道可是“磁盘存取”通道,其中只发布关于磁盘存取的事件。更具体的通道可是“磁盘读访问”通道,只发布关于磁盘读请求的事件。又如,另一个通道可为“中断通道”,只允许发布关于中断的事件。再如,一个通道可是“网络通道”,只涉及关于通过网络发送或接收的事件。另一个更具体的通道可是“电子邮件接收”通道,只涉及关于电子邮件的事件。
广范的事件消费者会关心特定的通道类型。例如,调试应用程序会关注来自磁盘访问,磁盘读取访问,和通道中断的事件。电子邮件和报文应用程序会关注网络和电子邮件通道。通过上述描述,本领域的普通技术人员可理解采用本发明原理的通道的类型和范围是无止境的。
事件消费者的一个具体类型是日志记录应用程序。各个通道可有零个,一个或多个与其连接的事件日志记录。因为事件日志记录是在任意关注通道中的公共应用程序,日志记录应用程序本身可加入到通道中。不过,在概念上,日志记录应用程序从概念上说只是另一个事件消费者。因此,在本描述的多数情况下,记录应用程序就被看作和任意其它事件消费者是相同的。
图3更详细地示出通道300的结构。通道300可以是如图2所示的一个通道200,包括含有接收来自事件消费者230的预订请求的预订模块303的几个组件。预订请求可用于具有让特定性质被转送到递交该请求的相同实体的事件通告。不过,请求实体和事件消费者可以是不同的实体。换言之,预订请求可代表另一个事件消费者作出。
预订模块303使用安全模块302确定是否要授予预订请求。具体而言,安全模块302可用于确定在几种粒度等级上的安全裕度(clearance)。例如,如果请求实体具有有订购所需请求特性的事件的安全权,或如果请求实体有订购被转送到特定事件消费者的事件的安全权,则安全模块302可以用于确定请求实体是否有预订在通道300中公布事件的安全权。
也可将安全措施应用于来自事件源210的发布请求以确定对应于发布请求的事件源是否具有发布事件到通道300的安全权。或该事件源是否具有把具有特定特性的事件发布到通道安全权。通过使用安全模块302,由通道接收的事件类型可如所需被约束。因此,通道可专用于特定主题,或按需要而用得更为广泛。通道可作得可实际上被任何事件消费者或源广泛地公开地可访问。另一方面,通道也可指定为只由一个或少数事件源和消费者专用。
通道300接收事件,然后将事件转送到任何预订该事件的事件消费者。除了将各个事件与各个预订请求比较以确定哪个事件消费者将被转送事件,通道300使用具有通过各个可能的事件消费者的逻辑路径的过滤器310。在示例中,只有两个预订请求,分别由相应的请求过滤器311和312产生。不过,对于较大数目的预订请求,过滤器310可采用过滤树,如图4过滤树400所示。对于该过滤树400及其作用将在下面详细描述。
通道300也包括模式定义301。根据模式定义301所接收事件可以是自描述的或具有可被映象到特定位置的特定结构。同样,根据模式定义可将预订请求映象到特定位置。例如,所接收事件通告是可扩展标记语言(XML)报片,而模式定义301是XML模式定义(XSD)文件。在此例中,预订请求可包括描述由模式定义301所定义的特定位置的XPATH语句。可将事件通告提供给各个请求过滤器。
如果事件通告和对应于询问过滤器的订购请求是匹配的,则允许事件通告通过访问过滤器。否则,如果不匹配,则采用查询过滤器过滤出事件通告。如果由模式定义指示的由事件通告占据的位置与由预订请求预订的被模式定义指定的由事件占据的位置相符,则确定匹配。另一个匹配的所需条件是在预订请求中指定的所需事件属性符合事件通告。
对所有预订请求完成过滤操作的一种方法是对每个预订请求专用一个过滤器(例如查询过滤器311和312)。对于少量预订请求,这允许通用实时事件通告发生。不过,如果有大量订购请求,实时事件通告也会发生问题。在此例中,这些大量的处理请求需要专用存储和处理资源,来过滤事件通告。
图4示出一例可用于图3的过滤器310中的过滤树400。过滤树400设计为使必需用于处理事件通告的过滤器数目减少或最少。例如,假定事件预订只用于通过识别器5或识别器6识别的处理而引发的事件。过滤树400中的根过滤器401可过滤任何不由识别器5或6引发的事件通告。在如图4所示的范例中,事件通过过滤器401。在过滤器接收的事件用指向过滤器左部的箭头表示,通过过滤器的事件由通过过滤器右部出射的箭头表示。添加“X”的箭头表示那里将有具有还未被上游过滤器过滤的事件的事件流。没有加上“X”的箭头表示事件通告还未被上游过滤器过滤出去。
在这个例子中,第二级过滤器408过滤出事件通告,因此,从过滤器409到412不需要处理事件通告。而第二级过滤器402通过事件通告,第三级过滤器404过滤出事件通告,而第三级过滤器403通过事件通告。第四级过滤器406过滤出事件通告,而第四级过滤器405和407通过事件通告。因此,事件通告传送到七个可能的事件消费者中的两个,由两个带圈的箭头表示。
通过使用这样的过滤树可以减少处理事件通告所需的平均处理和存储源,特别是对那些具有较大量事件通告的情况。例如,每次收到预订请求可重构判定树。另外,预订请求可在临时基础上分配其自身的根目录直到周期重构过滤树的时间到来。虽然这样的过滤树通常不会使给定资源的处理和存储资源更少,但平均每次事件处理和存储资源可明显地减少。
图5示出了根据本发明的用于执行基于预订的事件通告的方法500。该方法包括从一个或多个事件消费者接收一个或多个预订的步骤(步骤501),以及从一个或多个事件源接收一个或多个事件通告的步骤(步骤502)。虽然步骤501和502是顺序示出的,其实订购和事件可在任何时候接收。
接着方法500包括将事件通告和从一个或多个事件消费者接收的一个或多个预订的匹配步骤(步骤503)。该匹配步骤可采用图3中的过滤器310执行。接着过滤器执行用于过滤一个或多个预订的事件通告的步骤(步骤504)。这种功能性,面向结果的步骤可包括任意相应的能完成指定结果的步骤。在一个例子中,步骤504包括使事件通告传送给消费者(后者递交与事件通告匹配的预订)的各个相应步骤(步骤505),以及过滤事件通告而不发送事件通告到任何事件消费者(后者不递交与事件通告匹配的预订)的相应步骤(步骤506)。
再参考图2,通道通过应用程序接口(API)与事件源和事件消费者通信。只要API能由通道,事件源和事件消费者辩认,精确的API对本发明并不重要。可定义PAI使其功能广泛,本领域的普通技术人员回顾一下本描述就将清楚。
例如,本发明的原理可用于执行灵活的日志记录和进发的实时事件通告。例如,一个事件消费者可以是日志记录应用程序,它递交其对通道的预订请求。然后通道只提供那些与对日志记录的预订请求相符的事件。现在,代替记录通过通道的各个事件,日志只记录与其预订最相关的事件。日志记录应用程序本身可结合到通道中。网络管理员也使用用户接口,使日志记录应用程序递交网络管理员感兴趣的相应的特定预订请求。
另外,其它事件消费者不必记录事件,但可以使用实时事件通告。该实时事件通告可采用用于日志记录的相同机制来控制。也就是,实时事件消费者为感兴趣的事件递交定购请求。然后,基本上在通道接收事件的同时,相关事件从通道传送到事件消费者。
此外,在一些实施例中,本发明的原理使用遵循特定模式的事件。这种模式定义足够灵活,使许多广泛的名字值对对应特定的事件。另外,模式定义是可扩展的。当用于特定事件的名字值对的需要上升时,事件消费者或事件源可递交请求,扩展模式定义使之包括特定的名字值对。例如,假设有定义关于接收电子邮件事件的特定模式,该模式提供接收时间,发送者名字,设定尺寸,副本清单和主题行。现在假设需要了解在电子邮件文本中的前十个字。事件源或发布者可递交API以扩展模式定义以包括对电子邮件文本中前十个字的容限。
通过使用由事件源、通道和事件消费者了解的模式,可更智能化地解释事件的含义。例如,股票应用程序不仅能够读取值2025.57,也可以理解特定索引基金的当前封盘价。然后,应用程序也能够执行带有上述值的任务,(如果不理解那个值的含义就不能执行)。因此,本发明的原则可灵活、可扩充地表示关于事件的有意义的信息。
本发明的其它优点是通过控制在特定通道中可接收哪个事件源和事件类型,可使事件通过由特定用户需要的通道。因此,事件消费者可只处理那些感兴趣的事件通道。这产生了管理和组织事件的有效手段。
在不背离本发明的精神和实质特点时,本发明由其它的特定形式体现。所述实施例只是用于示范而不加限制。因此,本发明的范围是由附加的权利要求指示的,而不是上述详细描述。在权利要求的等价技术方案的意义和范围中的变化处于它们的范围中。
美国专利所要求保护的内容请见权利要求书。
权利要求
1.在包括一个或多个事件源和一个或多个事件消费者的系统中,一种用于基于接收的预订由一个或多个事件消费者并由一个或多个事件源引发的有条件处理事件的方法,其特征在于,该方法包括下面步骤从事件源接收事件通告的行动;将事件通告与从一个或多个事件消费者接收的一个或多个预订相匹配的行动;和根据一个或多个订购过滤事件通告的步骤。
2.如权利要求1所述的方法,其特征在于,还包括确定没有一个或多个预订与事件通告相匹配的行动,其中基于一个或多个预订过滤事件通告的步骤包括下面步骤过滤出事件通告而不发送事件通告到任何事件消费者的行动。
3.如权利要求1所述的方法,其特征在于,还包括确定至少一些预订与事件通告相匹配的行动,其中基于预订过滤事件通告的步骤包括下面步骤发送事件通告到各个递交了匹配事件通告的预订的事件消费者的行动;和过滤出事件通告而不发送事件通告到任何未递交匹配事件通告的预订的事件消费者的行动。
4.如权利要求1所述的方法,其特征在于,还包括从一个或多个事件消费者接收一个或多个预订的行动。
5.如权利要求4所述的方法,其特征在于,从一个或多个事件消费者接收一个或多个预订的行动包括为使具有特定的特性被发送到接收事件消费者的事件通告,从请求实体接收预订请求的步骤。
6.如权利要求5所述的方法,其特征在于,请求实体是接收事件消费者。
7.如权利要求5所述的方法,其特征在于,请求实体不同于那个接收事件消费者。
8.如权利要求5所述的方法,其特征在于,还包括确定请求实体是否具有预订事件通告的安全权的行动。
9.如权利要求8所述的方法,其特征在于,确定请求实体是否具有预订事件通告的安全权的行动,包括确定请求实体是否具有被发送到接收事件消费者的预订事件通告的安全权的行动。
10.如权利要求8所述的方法,其特征在于,确定请求实体是否具有预订事件通告的安全权的行动,包括确定请求实体是否具有被发送到接收事件消费者的具有特定特性的预订事件通告的安全权的行动。
11.如权利要求5所述的方法,其特征在于,还包括下面行动;构成包括许多互连的过滤器的过滤器树的行动,过滤器树将预订请求与其它先前接收的预订请求合并。
12.如权利要求5所述的方法,其特征在于,还包括下面行动根据事件通告的分类,确定事件通告将与模式定义符合的位置的行动。
13.如权利要求12所述的方法,其特征在于,从请求实体中接收预订请求的步骤包括下面行动接收代表模式定义中位置的请求的行动。
14.如权利要求13所述的方法,其特征在于,将事件通告与一个或多个预订匹配的行动包括下面行动确定由预订请求代表的模式定义的位置是否符合事件通告将适合模式定义的位置的行动。
15.如权利要求14所述的方法,其特征在于,从请求实体接收预订请求的步骤包括下面行动接收代表在模式定义中节点特性预订请求的行动。
16.如权利要求15所述的方法,其特征在于,将事件通告与一个或多个预订匹配的行动还包括下面行动确定由预订请求代表的模式定义的位置是否对应于事件通告将适合模式定义的位置的行动;和确定由预订请求代表的节点特性是否与处于使通告适合模式定义的位置的节点特性相符合的行动。
17.如权利要求5所述的方法,其特征在于,从请求实体接收订购的行动包括下面行动接收代表模式定义中节点特性的预订请求的行动。
18.如权利要求17所述的方法,其特征在于,将事件通告与一个或多个预订相匹配的行动还包括下面行动确定由预订请求代表的模式定义位置是否对应于使事件通告符合模式定义的位置的行动;和确定由预订请求代表的节点特性是否与通告符合模式定义处所相应的节点特性相对应的行动。
19.如权利要求5所述的方法,其特征在于,还包括下面行动;只接收在第一通告通道中第一种类型事件通告的行动,其中只接收第一种类型的事件通告包括从事件源接收事件通告的行动。
20.如权利要求19所述的方法,其特征在于,还包括下面步骤只接收在第二通告通道中的第二类型事件通告的行动。
21.如权利要求5所述的方法,其特征在于,接收预订请求的行动包括下面行动接收预订请求以记录具有特定特性的事件的行动。
22.如权利要求5所述的方法,其特征在于,接收预订请求的行动包括下面行动接收预订请求以接收具有特定特性的实时事件的行动。
23.如权利要求1所述的方法,其特征在于,事件源和至少事件消费者的一个位于单个计算机系统中。
24.如权利要求1所述的方法,其特征在于,事件源和至少事件消费者的一个位于不同的计算机系统中。
25.在包括一个或多个事件源和一个或多个事件消费者的系统中,一种用于基于接收的预订由一个或多个事件消费者并由一个或多个事件源引发的有条件地处理事件的方法,其特征在于,该方法包括下面的行动从事件源接收事件通告的行动;将事件通告与从一个或多个事件消费者接收的一个或多个预订相匹配的行动;发送事件通告到各个递交与事件通告匹配的预订的事件消费者的行动;过滤出事件通告,不发送事件通告到任何未递交匹配事件通告的预订的事件消费者的步骤。
26.如权利要求25所述的方法,其特征在于,还包括下面行动从一个或多个事件消费者接收一个或多个预订的行动。
27.如权利要求26所述的方法,其特征在于,从一个或多个事件消费者接收一个或多个预订的行动,包括下面行动从请求实体为具有使特定特性被发送给接收事件消费者的事件通告接收预订请求的行动。
28.如权利要求27所述的方法,其特征在于,请求实体是接收事件消费者。
29.如权利要求27所述的方法,其特征在于,请求实体不是接收事件消费者。
30.如权利要求27所述的方法,其特征在于,还包括下面行动确定请求实体是否具有预订事件通告的安全权的行动。
31.如权利要求30所述的方法,其特征在于,确定请求实体是否具有预订事件通告的安全权的行动包括确定请求实体是否具有预订被发送到接收事件消费者的事件通告的安全权的行动。
32.如权利要求30所述的方法,其特征在于,确定请求实体是否具有预订事件通告的安全权的行动包括下面行动确定请求实体是否具有被发送到接收事件消费者的具有特定特性的预订事件通告的安全权的行动。
33.如权利要求27所述的方法,其特征在于,还包括下面行动构建包括多个互连的过滤器的过滤器树的行动,过滤器树将预订请求和其它先前接收的预订请求合并。
34.如权利要求27所述的方法,其特征在于,还包括下面行动根据事件通告的分类,确定事件通告符合模式定义处位置的行动。
35.如权利要求34所述的方法,其特征在于,从请求实体接收预订请求的行动,包括下面行动接收代表模式定义中位置的请求的行动。
36.如权利要求35所述的方法,其特征在于,将事件通告与一个或多个预订相匹配的行动包括下面行动确定由预订请求代表的模式定义位置是否对应于事件通告符合模式定义的位置的行动。
37.如权利要求36所述的方法,其特征在于,从接收实体接收预订请求的行动包括下面行动接收在模式定义中代表节点特性的预订请求的行动。
38.如权利要求37所述的方法,其特征在于,将事件通告与一个或多个预订相匹配的行动,还包括下面行动;确定由预订请求模式定义位置是否与事件通告符合模式定义处的位置相对应的行动;和确定由预订请求代表的节点特性是否与通告符合模式定义处的位置节点特性相对应的步骤。
39.如权利要求27所述的方法,其特征在于,从请求实体接收预订请求的行动包括下面行动接收在模式定义中代表节点特性的预订请求的行动
40.如权利要求39所述的方法,其特征在于,将事件通告与一个或多个预订相匹配的行动包括下面行动确定由预订请求代表的模式定义位置是否与相应于模式定义的事件通告位置相对应的行动;确定由预订请求代表的节点特性是否与通告符合模式定义处所相应的节点特性相对应的行动。
41.如权利要求27所述的方法,其特征在于,还包括下面行动只接收在第一通告通道中第一种类型事件通告的行动,其中只接收第一种类型的事件通告的行动包括从事件源接收事件通告的行动。
42.如权利要求41所述的方法,其特征在于,还包括下面行动只接收在第二通告通道中的第二类型事件通告的行动。
43.如权利要求25所述的方法,其特征在于,事件源和至少事件消费者的一个位于单个计算机系统中。
44.如权利要求43所述的方法,其特征在于,事件源和至少事件消费者的一个位于不同的计算机系统中。
45.一种计算机程序产品,用于包括一个或多个事件源和一个或多个事件消费者的系统中,该计算机程序产品用于基于接收的预订由一个或多个事件消费者并由一个或多个事件源引发的有条件地处理事件的方法,其特征在于,该计算机程序产品包括存储了具有下面特征的一个或多个计算机可读介质用于检测从事件源接收事件通告的计算机可执行指令;用于将事件通告与从一个或多个事件消费者接收的一个或多个预订相匹配的计算机可执行指令;用于发送事件通告到各个递交与事件通告匹配的预订的事件消费者的计算机可执行指令;用于过滤出事件通告,不发送事件通告到任何未递交匹配事件通告的预订的事件消费者的计算机可执行指令。
46.如权利要求45所述的计算机程序产品,其特征在于,一个或多个计算机可读介质是物理存储介质。
47.如权利要求45所述的计算机程序产品,其特征在于,一个或多个计算机可读介质还存储下列指令用于从请求实体为具有特定特性的发送给接收事件消费者的事件通告接收预订请求的计算机可执行指令。
48.如权利要求47所述的计算机程序产品,其特征在于,一个或多个计算机可读介质还存储下列指令用于确定请求实体是否具有预订事件通告的安全权的计算机可执行指令。
49.如权利要求47所述的计算机程序产品,其特征在于,一个或多个计算机可读介质还存储下列指令用于构建包括多个互连的过滤器的过滤器树的计算机可执行指令,过滤器树将预订请求和其它先前接收的预订请求合并。
50.如权利要求47所述的计算机程序产品,其特征在于,一个或多个计算机可读介质还存储下列指令用于根据事件通告的分类,确定事件通告符合模式定义处位置的计算机可执行指令。
51.如权利要求50所述的计算机程序产品,其特征在于,从请求实体检测接收预订请求的计算机可执行指令包括下面指令用于检测接收代表模式定义中位置的请求的计算机可执行指令。
52.如权利要求51所述的计算机程序产品,其特征在于,将事件通告与一个或多个预订相匹配的计算机可执行指令,包括下面指令;用于确定由预订请求代表的模式定义位置是否与相应于模式定义的事件通告位置相对应的计算机可执行指令。
53.一种系统,其特征在于,包括下面构件一个或多个事件源;一个或多个事件消费者;一个或多个通告通道,构建各个通告通道接收特定分类的事件通告,各个通告通道包括下面构件模式定义模块,构建为维持模式定义;预订模块,构建为接收代表模式定义中位置的预订请求;和至少一个过滤器,构建为确定事件通告符合模式定义处的位置,并构建为过滤出那些不具有与一个或多个预订请求代表位置相对应的模式定义中位置的事件通告。
54.如权利要求53所述的系统,其特征在于,至少一个过滤器构建为过滤器树。
55.如权利要求53所述的系统,其特征在于,各个通告通道还包括下面构件安全性模块,构建为检查各个预订请求,以确定是否需要实行预订请求。
全文摘要
基于预订的通告,使用分别对应于特定范围的事件通道。各个通道通过使用模式定义管理通告。事件预订确定在模式定义中任意所需事件通道将取得的位置和属性。该通道然后接收XML报片形式的事件通告,接着确定由模式定义确定的XML报片所取得的位置。该通道确定事件通告的位置和属性是否与事件预订的位置和属性匹配。如果匹配,则复制事件通告并将其转送到在相应预订中指定的接收者。
文档编号G06F11/34GK1452066SQ03107739
公开日2003年10月29日 申请日期2003年3月31日 优先权日2002年4月15日
发明者A·埃尔施密, A·E·诺索弗, T·穆勒斯特恩, P·R·肯尼, R·W·麦克科伦姆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1