CN1308821C - 基于预订的事件通告方法和系统 - Google Patents

基于预订的事件通告方法和系统 Download PDF

Info

Publication number
CN1308821C
CN1308821C CNB031077390A CN03107739A CN1308821C CN 1308821 C CN1308821 C CN 1308821C CN B031077390 A CNB031077390 A CN B031077390A CN 03107739 A CN03107739 A CN 03107739A CN 1308821 C CN1308821 C CN 1308821C
Authority
CN
China
Prior art keywords
event
action
event notification
reservation
consumer
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
Application number
CNB031077390A
Other languages
English (en)
Other versions
CN1452066A (zh
Inventor
A·埃尔施密
A·E·诺索弗
T·穆勒斯特恩
P·R·肯尼
R·W·麦克科伦姆
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1452066A publication Critical patent/CN1452066A/zh
Application granted granted Critical
Publication of CN1308821C publication Critical patent/CN1308821C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

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)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

基于预订的通告,使用分别对应于特定范围的事件通道。各个通道通过使用模式定义管理通告。事件预订确定在模式定义中任意所需事件通道将取得的位置和属性。该通道然后接收XML报片形式的事件通告,接着确定由模式定义确定的XML报片所取得的位置。该通道确定事件通告的位置和属性是否与事件预订的位置和属性匹配。如果匹配,则复制事件通告并将其转送到在相应预订中指定的接收者。

Description

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

Claims (47)

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所述的系统,其特征在于,各个通告通道还包括下面构件:
安全性模块,构建为检查各个预订请求,以确定是否需要实行预订请求。
CNB031077390A 2002-04-15 2003-03-31 基于预订的事件通告方法和系统 Expired - Fee Related CN1308821C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/122,621 US6931405B2 (en) 2002-04-15 2002-04-15 Flexible subscription-based event notification
US10/122,621 2002-04-15

Publications (2)

Publication Number Publication Date
CN1452066A CN1452066A (zh) 2003-10-29
CN1308821C true CN1308821C (zh) 2007-04-04

Family

ID=28674660

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031077390A Expired - Fee Related CN1308821C (zh) 2002-04-15 2003-03-31 基于预订的事件通告方法和系统

Country Status (5)

Country Link
US (3) US6931405B2 (zh)
EP (1) EP1355232A3 (zh)
JP (1) JP5122722B2 (zh)
CN (1) CN1308821C (zh)
TW (1) TWI290292B (zh)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931405B2 (en) * 2002-04-15 2005-08-16 Microsoft Corporation Flexible subscription-based event notification
US20040088401A1 (en) * 2002-10-31 2004-05-06 Ashutosh Tripathi Method and apparatus for providing a highly available distributed event notification mechanism
CA2429762A1 (en) * 2003-05-23 2004-11-23 Ibm Canada Limited - Ibm Canada Limitee Business to business event communications
US20040260683A1 (en) * 2003-06-20 2004-12-23 Chee-Yong Chan Techniques for information dissemination using tree pattern subscriptions and aggregation thereof
JP2005293410A (ja) * 2004-04-02 2005-10-20 Hewlett-Packard Development Co Lp 情報配信システム
US7607138B2 (en) * 2004-06-17 2009-10-20 Cisco Technology, Inc. System and method for optimizing inter-domain event services
US20060117336A1 (en) * 2004-10-20 2006-06-01 Dolgin Jess Z System and method for instantaneously deploying packetized alert data
US9563875B2 (en) * 2004-12-02 2017-02-07 International Business Machines Corporation Automatically providing notifications regarding interesting content from shared sources based on important persons and important sources for a user
JP4652090B2 (ja) * 2005-03-15 2011-03-16 富士通株式会社 事象通知管理プログラム、事象通知管理装置及び事象通知管理方法
CN100367216C (zh) * 2005-06-20 2008-02-06 南京大学 事件模型中的快速事件匹配方法
US20070067780A1 (en) * 2005-08-24 2007-03-22 Samsung Electronics Co., Ltd. Method and system for asynchronous eventing over the internet
US20070050630A1 (en) * 2005-08-24 2007-03-01 Samsung Electronics Co., Ltd. Authentication method and system for asynchronous eventing over the internet
US7743138B2 (en) * 2005-09-22 2010-06-22 Dot Hill Systems Corporation Method and apparatus for external event notification management over in-band and out-of-band networks in storage system controllers
US7818436B2 (en) * 2005-09-22 2010-10-19 Dot Hill Systems Corporation Method and apparatus for external interface user session management in storage system controllers
US8458725B2 (en) * 2006-04-10 2013-06-04 Oracle International Corporation Computer implemented method for removing an event registration within an event notification infrastructure
US20070260932A1 (en) * 2006-04-11 2007-11-08 Ryan Prichard Event log management system
US9390118B2 (en) * 2006-04-19 2016-07-12 Oracle International Corporation Computer implemented method for transforming an event notification within a database notification infrastructure
US8464275B2 (en) * 2006-05-10 2013-06-11 Oracle International Corporation Method of using a plurality of subscriber types in managing a message queue of a database management system
US7761413B2 (en) 2006-05-10 2010-07-20 Oracle International Corporation Method of ensuring availability of event notification registrations of a database management system
US7895600B2 (en) 2006-05-10 2011-02-22 Oracle International Corporation Method of optimizing propagation of non-persistent messages from a source database management system to a destination database management system
US8346725B2 (en) * 2006-09-15 2013-01-01 Oracle International Corporation Evolution of XML schemas involving partial data copy
US7870163B2 (en) * 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
US20080082654A1 (en) * 2006-09-29 2008-04-03 Rockwell Automation Technologies, Inc. Interrogating controllers for alarms and events
FR2909198B1 (fr) * 2006-11-24 2010-11-26 Canon Kk Procede et dispositif de filtrage d'elements d'un document structure a partir d'une expression.
US20080154936A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation Event generation for xml schema components during xml processing in a streaming event model
US8396881B2 (en) * 2007-05-17 2013-03-12 Research In Motion Limited Method and system for automatically generating web page transcoding instructions
US9083758B2 (en) * 2007-06-11 2015-07-14 Nokia Technologies Oy System and method for using presence information
CN101458637B (zh) * 2007-12-13 2011-11-16 华为技术有限公司 一种实现进程通信的方法、装置及系统
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
CN102027721B (zh) 2008-04-02 2015-05-13 特维里奥公司 处理电话会话的系统和方法
CN101583152B (zh) 2008-05-15 2011-08-24 华为技术有限公司 一种信息传递方法、装置和系统
WO2010040010A1 (en) 2008-10-01 2010-04-08 Twilio Inc Telephony web event system and method
JP5039066B2 (ja) * 2009-01-15 2012-10-03 株式会社東芝 データ処理装置、データ処理方法及びプログラム
EP2404412B1 (en) 2009-03-02 2019-05-01 Twilio Inc. Method and system for a multitenancy telephone network
US8509415B2 (en) 2009-03-02 2013-08-13 Twilio, Inc. Method and system for a multitenancy telephony network
US8549040B2 (en) * 2009-03-10 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) IP multimedia subsystem service configuration
US8935382B2 (en) 2009-03-16 2015-01-13 Microsoft Corporation Flexible logging, such as for a web server
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US20110083179A1 (en) * 2009-10-07 2011-04-07 Jeffrey Lawson System and method for mitigating a denial of service attack using cloud computing
US8582737B2 (en) * 2009-10-07 2013-11-12 Twilio, Inc. System and method for running a multi-module telephony application
US8638781B2 (en) 2010-01-19 2014-01-28 Twilio, Inc. Method and system for preserving telephony session state
WO2011108619A1 (ja) * 2010-03-01 2011-09-09 日本電気株式会社 パターンマッチング装置、パターンマッチング方法及びパターンマッチングシステム
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US9459926B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9459925B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US8416923B2 (en) 2010-06-23 2013-04-09 Twilio, Inc. Method for providing clean endpoint addresses
US9338064B2 (en) 2010-06-23 2016-05-10 Twilio, Inc. System and method for managing a computing cluster
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US20120094600A1 (en) 2010-10-19 2012-04-19 Welch Allyn, Inc. Platform for patient monitoring
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
US9648006B2 (en) 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US9398622B2 (en) 2011-05-23 2016-07-19 Twilio, Inc. System and method for connecting a communication to a client
EP2759123B1 (en) 2011-09-21 2018-08-15 Twilio, Inc. System and method for authorizing and connecting application developers and users
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US20130304928A1 (en) 2012-05-09 2013-11-14 Twilio, Inc. System and method for managing latency in a distributed telephony network
US9240941B2 (en) 2012-05-09 2016-01-19 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US10122598B2 (en) * 2012-07-25 2018-11-06 International Business Machines Corporation Subscription watch lists for event handling
US8738051B2 (en) 2012-07-26 2014-05-27 Twilio, Inc. Method and system for controlling message routing
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
US20140195620A1 (en) * 2013-01-08 2014-07-10 Ebay Inc. Notification routing to a user device
US9253254B2 (en) 2013-01-14 2016-02-02 Twilio, Inc. System and method for offering a multi-partner delegated platform
US9571998B2 (en) 2013-01-15 2017-02-14 Marvell World Trade Ltd. System and method for asynchronous event reporting
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9001666B2 (en) 2013-03-15 2015-04-07 Twilio, Inc. System and method for improving routing in a distributed communication platform
US9338280B2 (en) 2013-06-19 2016-05-10 Twilio, Inc. System and method for managing telephony endpoint inventory
US9240966B2 (en) 2013-06-19 2016-01-19 Twilio, Inc. System and method for transmitting and receiving media messages
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9483328B2 (en) 2013-07-19 2016-11-01 Twilio, Inc. System and method for delivering application content
US9998556B2 (en) * 2013-09-11 2018-06-12 Oath Inc. Unified end user notification platform
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9338018B2 (en) 2013-09-17 2016-05-10 Twilio, Inc. System and method for pricing communication of a telecommunication platform
US20150088655A1 (en) * 2013-09-24 2015-03-26 Nike, Inc. Social media product reservation
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9922350B2 (en) 2014-07-16 2018-03-20 Software Ag Dynamically adaptable real-time customer experience manager and/or associated method
US10380687B2 (en) 2014-08-12 2019-08-13 Software Ag Trade surveillance and monitoring systems and/or methods
US9449218B2 (en) 2014-10-16 2016-09-20 Software Ag Usa, Inc. Large venue surveillance and reaction systems and methods using dynamically analyzed emotional input
EP3210350B1 (en) 2014-10-21 2020-05-20 Twilio, Inc. Method for providing a miro-services communication platform
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US11068487B2 (en) 2015-09-08 2021-07-20 Amazon Technologies, Inc. Event-stream searching using compiled rule patterns
CA3080793A1 (en) * 2015-09-08 2017-03-16 Amazon Technologies, Inc. Event-stream searching using compiled rule patterns
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10649609B2 (en) * 2016-03-31 2020-05-12 Microsoft Technology Licensing, Llc Universal notification pipeline
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US20180091449A1 (en) * 2016-09-26 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Event-driven policy-based distributed container management system
US11082385B2 (en) * 2018-12-03 2021-08-03 Cambia Health Solutions, Inc. Systems and methods for a flexible event service
US10747595B2 (en) * 2018-12-04 2020-08-18 Sap Se Application framework for simulation engineering

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1220018A (zh) * 1996-03-29 1999-06-16 英国电讯有限公司 分布式目标系统中事件的收集
JPH11232126A (ja) * 1998-02-16 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> イベント通知方法及びノティフィケーションネットワーク
US6065009A (en) * 1997-01-20 2000-05-16 International Business Machines Corporation Events as activities in process models of workflow management systems
JP2000244492A (ja) * 1999-02-17 2000-09-08 Nippon Telegr & Teleph Corp <Ntt> ノーティフィケーション・サービスを用いたメッセージ送信方式

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642215B2 (ja) 1988-01-28 1994-06-01 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 分散式監視サブシステム
US5128885A (en) * 1990-02-23 1992-07-07 International Business Machines Corporation Method for automatic generation of document history log exception reports in a data processing system
US5062045A (en) * 1990-02-23 1991-10-29 International Business Machines Corporation System for maintaining a document and activity selective alterable document history log in a data processing system
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
US5251152A (en) * 1991-01-17 1993-10-05 Hewlett-Packard Company Storage and display of historical LAN traffic statistics
US5333302A (en) * 1991-02-28 1994-07-26 Hensley Billy W Filtering event capture data for computer software evaluation
EP0516900B1 (en) * 1991-06-04 1996-05-01 International Business Machines Corporation Data backup and recovery in a data processing system
US5260878A (en) * 1991-09-06 1993-11-09 Automation, Inc. Web press monitoring system
US5745693A (en) * 1992-07-01 1998-04-28 Mci Corporation System for gathering and reporting real time data from an IDNX communications network
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
US5499340A (en) * 1994-01-12 1996-03-12 Isogon Corporation Method and apparatus for computer program usage monitoring
US5737600A (en) * 1994-09-12 1998-04-07 International Business Machines Corporation Method and system for log management in a coupled data processing system
US5612898A (en) * 1995-02-09 1997-03-18 Intel Corporation Communication protocol event logging system for use with various protocols
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US6253195B1 (en) * 1998-09-21 2001-06-26 Microsoft Corporation Optimized query tree
US6367034B1 (en) * 1998-09-21 2002-04-02 Microsoft Corporation Using query language for event filtering and aggregation
US6314533B1 (en) * 1998-09-21 2001-11-06 Microsoft Corporation System and method for forward custom marshaling event filters
US6298378B1 (en) * 1998-12-04 2001-10-02 Sun Microsystems, Inc. Event distribution system for computer network management architecture
US6859829B1 (en) * 1999-02-23 2005-02-22 Microsoft Corp. Method and mechanism for providing computer programs with computer system events
WO2000078001A2 (en) * 1999-06-11 2000-12-21 Microsoft Corporation General api for remote control of devices
EP1130845A3 (en) 2000-02-18 2001-09-12 Agilent Technologies Inc. a Delaware Corporation Publish/subscribe system
US6862594B1 (en) * 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6789077B1 (en) * 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6766368B1 (en) * 2000-05-23 2004-07-20 Verizon Laboratories Inc. System and method for providing an internet-based correlation service
US20030046395A1 (en) * 2000-12-12 2003-03-06 Robert Fleming System and method for bounding the life of an event subscription to the availability of an object
US6931405B2 (en) * 2002-04-15 2005-08-16 Microsoft Corporation Flexible subscription-based event notification
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
US20040002988A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for modeling subscriptions and subscribers as data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1220018A (zh) * 1996-03-29 1999-06-16 英国电讯有限公司 分布式目标系统中事件的收集
US6065009A (en) * 1997-01-20 2000-05-16 International Business Machines Corporation Events as activities in process models of workflow management systems
JPH11232126A (ja) * 1998-02-16 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> イベント通知方法及びノティフィケーションネットワーク
JP2000244492A (ja) * 1999-02-17 2000-09-08 Nippon Telegr & Teleph Corp <Ntt> ノーティフィケーション・サービスを用いたメッセージ送信方式

Also Published As

Publication number Publication date
EP1355232A2 (en) 2003-10-22
US20030208549A1 (en) 2003-11-06
US7526484B2 (en) 2009-04-28
TWI290292B (en) 2007-11-21
JP5122722B2 (ja) 2013-01-16
TW200401989A (en) 2004-02-01
US6931405B2 (en) 2005-08-16
JP2003316610A (ja) 2003-11-07
US20050149533A1 (en) 2005-07-07
EP1355232A3 (en) 2009-08-12
US20050192952A1 (en) 2005-09-01
CN1452066A (zh) 2003-10-29
US7016902B2 (en) 2006-03-21

Similar Documents

Publication Publication Date Title
CN1308821C (zh) 基于预订的事件通告方法和系统
US7747083B2 (en) System and method for good nearest neighbor clustering of text
US8266148B2 (en) Method and system for business intelligence analytics on unstructured data
US7177859B2 (en) Programming model for subscription services
Iwayama et al. Hierarchical Bayesian clustering for automatic text classification
US20040002958A1 (en) System and method for providing notification(s)
US20040002988A1 (en) System and method for modeling subscriptions and subscribers as data
US8533232B1 (en) Method and system for defining relationships among labels
JP2009545060A (ja) 超大規模データベースに対するデータ処理
EP1615101A2 (en) Anti virus for an item store
CN1346464A (zh) 动态过滤和路由事件的方法和装置
US9430520B2 (en) Semantic reflection storage and automatic reconciliation of hierarchical messages
CN1591444A (zh) 整合应用服务和应用程序之间的资源管理的系统和方法
US6754654B1 (en) System and method for extracting knowledge from documents
Sekhar et al. Optimized focused web crawler with natural language processing based relevance measure in bioinformatics web sources
Carrar et al. Knowledge-based computer-aided architectural design
CA2614713A1 (en) Method and tool for searching in several data sources for a selected community of users
CN112506960A (zh) 基于ArangoDB引擎的多模型数据存储方法及系统
JP2000298590A (ja) 発行・引用サービスを提供するメッセージ・ブローカ及び発行・引用環境においてメッセージを処理する方法
CN113795821B (zh) 用于响应于来自用户的请求而使用来自其它源的应用数据生成应用输入内容的自动化助理
Resteanu et al. Distributed and parallel computing in MADM domain using the OPTCHOICE software
CN1667613A (zh) 结构化任务命名
US20060122959A1 (en) Systems and methods for organizing, sharing, and communicating data
Canzi et al. The temporal model of CRONOS-III: a knowledge-based system for production scheduling
France A predicative basis for structured analysis specification tools

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150520

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150520

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070404

Termination date: 20180331

CF01 Termination of patent right due to non-payment of annual fee