用于提供即时发布的方法和系统的制作方法

文档序号:7627725阅读:171来源:国知局
专利名称:用于提供即时发布的方法和系统的制作方法
技术领域
本发明涉及发布/订阅消息传递系统,更具体地,涉及使用订阅事件模型的发布/订阅消息传递系统。
背景技术
发布/订阅消息传递系统用于向订户发布订阅主题。订阅主题通常提早确定,而订户能够在设计时(在开发订阅软件时)或运行时访问这一列表(由发布者动态提供)。
2003年5月27日对Wewalaarachchi等人的“SERVICE-ORIENTEDCOMMUNITY AGENT(面向服务的公用代理)”授权的美国专利6,571,140公开了一种提供远程实时数据监控的创建和操作的系统和方法以及控制系统,并包括连接到实时设备的通信网关。该通信网关以单一的通用数据格式转换为完全不同的和不可共同操作的系统收集的实时数据。通信网关向对象服务器提供该通信网关所连接的实时设备的列表以及这些实时设备的属性。对象服务器发布这一列表,订户能够访问这一列表并且请求订阅某一设备的特定属性。对象服务器创建对应于所请求信息的数据对象。订户包括访问该对象服务器的服务代理。
2002年9月26日公布的Anderson等人的“FUNCTION/SERVICEBASED DATA EXPORT(基于功能/服务的数据输出)”美国专利申请公布US 2002/0138499公开了一种的数据输出器,其被配备为检测目标应用的存在,识别包括可输出数据的功能/服务溯源的应用的可输出数据,并且以基于功能/服务的方式输出该数据。
2003年3月27日公布的Jacors,JR的“SYSTEM AND METHOD OFPROVIDING INFORMATION FROM A PLURALITY OFINFORMATION SOURCES(从多个信息源提供信息的系统和方法)”美国专利申请公布US 2003/0061348公开了一种向用户提供特定信息的系统,包括从多个度量发布提供者收集度量信息的订阅服务器。用户可以登录到订阅服务器并进行订阅以接收来自多个度量发布提供者的一组特定度量数据。用户可以定义只呈现所选择的度量数据的用户视图。希望经由订阅服务提供度量数据的发布提供者向订阅服务器发送指示它发布哪些度量信息的消息。发布提供者向订阅服务器提供标准化形式的度量信息。
2003年9月25日公布的Degroot的“METHOD AND SYSTEM FORDOC UMENT PRESENTMENT BETWEEN GENERIC PUBLISHERSAND GENERIC SUBSCRIBERS(用于在普通发布者和普通订阅者之间呈现文档的方法和系统)”美国专利申请公布US 2003/0182234公开了一种用于通过因特网呈现电子文档的方法和系统。该系统作为通过经由因特网访问的软件远程定位的普通发布者和普通订阅者之间的媒介,并允许依据发布者和订阅者的相互关系对他们进行分类。
2003年11月6日公布的Gildenblat的“EVENT DRIVENINFORMATION PUBLICATION(事件驱动的信息发布)”美国专利申请公布US 2003/0208539公开了一种事件驱动的信息发布系统,该系统包括一个或多个数字计算机网络以及位于这些计算机网络上的一个或多个节点。节点执行信息发布系统应用或小程序。该节点能够订阅一个或多个信息项种类并且能够接收依据一个或多个信息项种类发布的信息项。该信息发布系统应用处理该信息项,以便显示。
2003年11月20日公布的美国专利申请公布US 2003/02171096公开了一种基于网络的消息传递系统,该系统使得多个代理在多个用户之间实时传送消息。个人代理收集关于其他代理的属性信息并将该信息发布给其他订阅代理。

发明内容
本发明是一种通过使用订阅事件模型提供可发布信息的方法和系统。该订阅事件模型允许该系统根据当前订阅表确定所请求的实际信息,并且每当新的处理订阅特定主题树时更新该订阅表。通过将订阅请求合并为一个服务,而不是要求客户端直接查询每一数据源,来减少该发布/订阅系统可用的数据源上的负荷量。由于只有一个处理在查询数据源并将结果递送给订户,所以本发明还将降低网络利用。本发明通过允许数据收集代理在该发布/订阅系统中注册,还允许分布的数据源提供者。
选择用户希望在新消息到达时得到告警的一组新闻论坛是一种常见的事务处理。最常见的实现这一事务处理的方式是通过周期性地轮询新闻服务器来确定是否新的消息已到达。然而,当用户数量的增长超过某一大小时,这会对新闻服务器带来过度负担(许多连接都查询相同信息)。本发明允许用户订阅一般主题,并定义将要使用的特定论坛。该发布/订阅系统将检测这种订阅,确定订阅的类型,将信息传递给适当的数据源提供者,以将该论坛增加到可发布主题的列表。然后,另一过程(数据源提供者)将周期性地检查每个被请求的论坛,发布消息向所有订户告警新消息已经到达该论坛。这样将新闻服务器上的负荷减少到单个连接,并且有利地利用了该发布/订阅系统的大规模发布能力。由于提供者已了解已经发生了哪些订阅事件,因此还减少了数据源提供者必须监控的论坛数量,提供者只需为至少一个用户已经订阅的论坛发布更新告警,而忽略所有其他论坛,从而减少计算资源。
因此,本发明的一个目的在于使用利用订阅事件作为可发布主题的源的发布/订阅技术。
本发明的另一目的在于提供基于订户所请求的信息的一般分类的订阅信息的实时动态收集。
本发明的又一目的在于提供基于诸如不具有预定主题列表的发布服务的订阅列表的即时按需发布。
本发明的又一目的在于提供在运行时对该系统未知并且不必对订户已知的数据源的动态数量。


从下面结合附图的详细描述中,本发明的这些及其他目的对于本领域的技术人员来说将是显而易见的。
图1是本发明系统的示意图,该系统使得订户从数据源订阅可用主题;图2是示出图1系统的订户的订户动作的流的流程图;以及图3是图1系统的数据源的数据源动作的数据流程图。
具体实施例方式
图1是本发明系统10的示意图。在图1中,一个或多个订户11连接到发布/订阅引擎12,并向其订阅进行订阅的订户11感兴趣的主题。例如,发布/订阅引擎12可以是从纽约Armonk的IBM公司获得的WebSphereBusiness Integration Message Broker。这种发布/订阅引擎在美国专利申请序号10/207711的“INTERACTIVE FILTERING ELECTRONICMESSAGE RECERIVED FROM A PUBLICATION/SUBSCRIPTIONSERVICE(交互过滤从发布/订阅服务接收的电子消息)”(代理机构卷号POU920020088US1)和美国专利申请序号10/207685的“INTERACTIVEONE TO MANY COMMUNICATION IN A COOPERATINGCOMMUNITY OF USERS(在协作的用户群体中一方到多方的交互式通信”(代理机构卷号POU920020089US1)中有所描述,这些申请都由本申请的受让人所拥有,并且在此将这些申请引入作为参考。发布/订阅引擎负责维护到订户11的连接并且将发布的消息递送给适当的订户11。
图1的系统包括具有订阅过程14的即时发布/订阅(sub/pub)消息传递系统13,订阅过程14包括数据源注册库15、匹配过程或例程16以及订阅监控器17。订阅表20包括用户订阅部分21和数据源部分22。订阅监控器17检测订阅并维护用户订阅部分21,数据源注册库维护数据源部分22。仅为方便起见,将订阅部分21和数据源部分22示为一个表的一部分。还应当理解,用户订阅部分21和数据源部分22可以位于单独的表中或结合在如图1所示的一个表中。还应该理解,订阅表20的用户订阅部分21和数据源部分22在计算机存储器中无需是连续的,此外还可以根据需要存储在计算机存储设备的相同或不同部分,或存储在单独的计算机存储设备中。
用户订阅部分21存储订阅主题和分类的统计以及正在请求的详细数据。例如,整个系统可能具有前缀为“subpubT”的数据类型的副主题、特定新闻论坛服务器的第三主题、和要收听的特定形式的第四主题,诸如“/subpub/forum/forums.ibm.com/forums.archi ecture.pubsub”。
数据源部分22由数据源注册库15来维护,数据源部分22中的每个数据源已注册在数据源注册库15中,下面将要讨论。订阅过程14的匹配过程16将注册在数据源部分22中的可用数据源与订阅表20的用户订阅部分21中的用户订阅相匹配。当接收到新的订阅时,或当建立数据源时,或当数据源报告有新的数据要传送时,匹配过程16寻找匹配数据。
一个或多个数据源25连接到订阅过程13,这些数据源25包括论坛25A、RSS馈送25B或其他馈送25C。每个数据源25都连接到数据源过程26(例如,数据源25A连接到数据源过程26A,数据源25B连接到数据源过程26B,数据源25C连接到数据源过程26C)。数据源过程26控制从它们各自的数据源25递送到向数据源订阅信息的订户11的数据。这是通过开启或关闭数据源过程26来完成的,下面将会讨论。
当可从数据源25获得新数据时,其对应的数据源过程26向数据源注册库15报告其数据源存在或可用。然后,该数据源被数据源注册库15在数据源部分22中记录该数据源对订户11是可用的。
应当理解,数据源注册库15和订阅监控器17提供可用数据源和订阅的实时收集。实时意味着一旦数据源可用性和用户订阅被发送到订阅表20,则所记录的信息可由匹配过程16用于向订户提供数据源数据。于是,订阅过程14经由来自发布/订阅引擎12的信息提供实时收集。应当理解,存在的是订阅信息的实时收集,而非来自预定列表的订阅。匹配过程16匹配当前注册的数据源25的可用信息,并确保数据源过程26对特定数据源25是活动的。数据源注册库15将根据由订阅监控器17报告的收听活动,动态地开启和关闭数据源过程26。从而,提供了一种系统,其中在运行时所存在的动态数据源数量对于系统未知,并且对订户来说该动态数据源数量也不必已知。在一个优选实现中,可以将数据源过程26分布到各外部系统,或合并为一个虚拟服务目录中以提供适应性。
当数据源过程26检测到在它所连接的数据源25中已出现变化时,(出现了一个新的论坛点(forum post)),生成消息,并通过发布/订阅引擎12发布该消息,该消息要通过连接28递送给订户。数据源25中的变化还被注册在订阅表20中。此外,如果注册在用户订阅部分21中的订阅数量不等于或不大于所指定的数量,则数据源过程26可能被关闭,以便如果没有订阅或对数据源数据的较低数量的订阅,则数据源25中的变化不会导致一个消息。生成对订户的消息所需的订阅数量可以按照要求依据时间、系统上的负荷、主题订阅或其他因素来动态变化。
图2是示出订户动作的流的流程图。在31,订户11诸如通过可从IBM公司获得的IBM Community Tools对一个主题或者订阅或者退订。在33,订阅监控器17检测订户11的订阅/退订事件。在35,订阅监控器17捕获订阅表20中的订阅的快照,并根据检测到的订阅/退订事件更新该表。该快照包括被订阅的主题和所注册的订阅数量。在37,将该订阅/退订事件通知给数据源注册库15。
在39,匹配过程16寻找与先前记录在订阅表20中的数据源25以及被所报告的订户事件订阅或退订的主题的匹配。在39如果未发现匹配,则在40不采取动作。在39如果存在数据源匹配,则在41,将订阅表20中注册的订阅匹配计数与所要求的数量(例如0)进行比较,以查看是否需要进一步动作。在41如果该计数大于所要求的数量,则在43,数据源注册库确定现有的数据源是否可用(即,它相关的数据源过程开启并且活动)。如果在43发现存在现有数据源,则在40不采取动作。在43如果不存在现有数据源,则在45,数据源注册库15通知适当的数据源过程26,启动数据源。
在41如果订阅匹配计数不在指定阈值(例如0)之上,则在47,检查以确定是否存在数据源。在47如果检查为否,则在40,不采取动作。在47如果存在数据源,则在49,停止该数据源,以便该数据源25的相关数据过程26不会从该数据源向订户11递送消息。因此应当理解,如果数据源未被最小数量的订户所订阅,则关闭该数据源,以便它的消息不被处理,从而节约系统资源。
图3是数据源动作的数据流程图。在50,开始来自图1的数据源25的数据源动作。在52,与具有活动的数据源25相关的数据源过程26检测新的活动。在54,当所订阅的数据主题活动并且具有可用数据时,数据源过程26向发布/订阅引擎12递送消息,该消息要被递送给具有活动的数据源25的订户。应当理解,由于在41订阅匹配计数不在指定阈值水平之上,因此只有在数据源过程26还未在49被停止或关闭时,从该数据源过程26递送该消息,如结合图2所讨论的那样。在56,如果数据源过程26已在45开启,则将来自该数据源过程26的消息通过发布/订阅引擎12递送到向具有活动的数据源25订阅数据的订户11。数据源动作在58结束。应当理解,在本系统中,如果要被发布的数据未被订阅或未被订阅达到某一预置阈值水平以上,则将不会通过该系统传送消息。如上述所提及的,该阈值水平可以根据需要依据时间、系统上的负荷、主题的普及性或任何其他度量来动态地设置或重置。这可以包括基于来自数据源的更新数量以及收听人员数量的负荷的每秒/分钟/小时消息。
应当理解,论坛25A和RSS馈送25B只是示例,其他的馈送25C可以包括多种数据源。例如,数据源可以是具有许多版面和新闻主题的大容量报纸。订户可能只对该报纸的一些版面感兴趣,也许只对涉及特定主题的文章感兴趣。订户会只订阅感兴趣的版面或主题,因而该报纸发布者会基于每个版面或主题的合计订阅计数来发布多种每日版和星期版的期刊或子集。于是,订户会收到具有较少不感兴趣的版面的报纸。这种系统能够被进一步用于电子杂志或其他用于提供完全定制的订阅的发布应用,因而允许信息源确定将要被发布给只对子集感兴趣的订户的信息子集的数量,而不是将所有的出版物发布给所有的订户。
应当理解,其他的馈送25C可以是,例如,论坛、RSS/Atom、Wiki、WebLog、网页、公共数据库和服务器日志或其他可监控信息,可以包括任何通用信息源。
本发明的能力可以以软件、固件、硬件或其某种组合来实现。
作为一个例子,本发明的一个或多个方面可以包括在具有例如计算机可用媒介的制造物品(例如,一个或多个计算机程序产品)中。其中包括有介质,例如,用于提供及有助于本发明的能力的计算机可读程序代码手段。该制造物品可包括为计算机系统的一部分或被单独提供。
此外,可提供至少一种机器可读的程序存储设备,其有形地包括至少一个机器可执行以实现本发明的能力的指令程序。
这里描述的流程图仅是示例。在不背离本发明的精神的情况下,可以对其中描述的这些附图或步骤(或操作)进行多种变换。例如,这些步骤可按照不同的顺序来执行,或者增加、删除或修改这些步骤。所有这些变换都被认为是所要求保护的本发明的一部分。
尽管这里已经例示和描述了本发明的优选实施例,但是应当理解,本发明并不限于这里所公开的确切构造,而是包括在所附权利要求定义的本发明范围内作出的所有变化和修改。
权利要求
1.一种在使得一个或多个订户向一个或多个数据源订阅数据的发布/订阅系统中的即时发布/订阅消息传递系统,包括表,用于记录存在于该系统中的数据源和对于由上述订户订阅的数据源的订阅数量;以及订阅过程,如果所述表中对于被订阅的数据源的订阅数量未超过预定数量,则其使得匹配例程阻止该被订阅的数据源向订户递送消息。
2.权利要求1的发布/订阅消息传递系统,进一步包括订阅监控器,其实时监控来自订户的订阅,并将对于该系统中每一数据源的订阅数量记录在所述表的用户订阅部分中,以便对于来自所述数据源的数据的订阅进行实时收集。
3.权利要求2的发布/订阅消息传递系统,进一步包括数据源注册库,其将具有用于传送给上述订户的数据的每一数据源的存在记录在所述表的数据源部分;以及与每一数据源相关的数据源过程,每一数据源过程由所述匹配过程控制,以便当所述匹配过程确定一数据源还未被所述订户订阅预定次数以上时,与该数据源相关的数据源过程被关闭,以便不会从该数据源向所述订户传送消息。
4.权利要求1的发布/订阅消息传递系统,其中所述预定数量是零。
5.权利要求1的发布/订阅消息传递系统,其中所述预定数量是动态可变的。
6.权利要求5的发布/订阅消息传递系统,其中所述预定数量依据一个或多个时间、或该系统上的消息负荷、或数据源的普及性而变化。
7.权利要求1的发布/订阅消息传递系统,其中所述数据源是动态可变的,并且对上述订户及在运行时对该系统是未知的。
8.一种在使得一个或多个订户向一个或多个数据源订阅数据的发布/订阅系统中提供即时发布/订阅消息的方法,包括在表中记录存在于该系统中的数据源和对于由上述订户订阅的数据源的订阅数量;以及如果所述表中对于被订阅的数据源的订阅数量未超过预定数量,则阻止该数据源向订户递送消息。
9.权利要求8的发布/订阅消息传递方法,进一步包括实时监控来自订户的订阅,并将对于该系统中每一数据源的订阅数量记录在所述表的用户订阅部分中,以便存在对于来自所述数据源的数据的订阅的实时收集。
10.权利要求9的发布/订阅消息传递方法,进一步包括利用数据源注册库将具有用于传送给所述订户的数据的每一数据源的存在记录在所述表的数据源部分;以及如果一数据源还未被所述订户订阅预定次数以上,则利用匹配例程关闭与该数据源相关的任何数据源过程,以便不会从与关闭的数据源过程相关的数据源向上述订户传送消息。
11.权利要求8的发布/订阅消息传递方法,进一步包括将所述预定数量设置为零。
12.权利要求8的发布/订阅消息传递方法,进一步包括动态地改变所述预定数量。
13.权利要求12的发布/订阅消息传递方法,进一步包括依据一个或多个时间、或该系统上的消息负荷、或数据源的普及性来改变所述预定数量。
14.权利要求8的发布/订阅消息传递方法,其中所述数据源是动态可变的,并且对上述订户及在运行时对该系统是未知的。
15.一种计算机程序产品,其用于在使得一个或多个订户向一个或多个数据源订阅数据的发布/订阅系统中使用,所述计算机程序产品包括一个或多个计算机可读介质,这些介质具有记录在其上的用于执行提供即时发布/订阅消息的方法的计算机可读程序指令,所述方法包括在表中记录存在于该系统中的数据源和对于由上述订户订阅的数据源的订阅数量;以及如果所述表中对于被订阅的数据源的订阅数量未超过预定数量,则阻止该数据源向订户递送消息。
16.权利要求15的计算机程序产品,其中所述发布/订阅消息传递方法进一步包括实时监控来自订户的订阅,并将对于该系统中每一数据源的订阅数量记录在所述表的用户订阅部分中,以便存在对于来自所述数据源的数据的订阅的实时收集。
17.权利要求16的计算机程序产品,其中所述发布/订阅消息传递方法进一步包括利用数据源注册库将具有用于传送给所述订户的数据的每一数据源的存在记录在所述表的数据源部分;以及如果一数据源还未被所述订户订阅预定次数以上,则利用匹配例程关闭与该数据源相关的任何数据源过程,以便不会从与关闭的数据源过程相关的数据源向上述订户传送消息。
18.权利要求15的计算机程序产品,其中所述发布/订阅消息传递方法进一步包括将所述预定数量设置为零。
19.权利要求15的计算机程序产品,其中所述发布/订阅消息传递方法进一步包括动态地改变所述预定数量。
20.权利要求19的计算机程序产品,其中所述发布/订阅消息传递方法进一步包括依据一个或多个时间、或该系统上的消息负荷、或数据源的普及性来改变所述预定数量。
21.权利要求15的计算机程序产品,其中所述计算机可读程序指令包括可从数据源读取数据的程序指令,这些数据源是动态可变的并且对上述订户及在运行时对该系统是未知的。
全文摘要
本发明提供一种使得至少一个订户向一个或多个数据源订阅主题的系统、方法和程序产品。对于每一数据源的订阅数量被实时注册在表中。一旦检测到订阅活动,匹配例程便将对于可用数据源注册的订阅数量与预定值进行比较,如果订阅数量超过该预定值,则对应于该数据源的数据源过程将被启动,并且来自该数据源的消息将被发送到该数据源订户,否则,该数据源提供者将被停止并不再发送消息。
文档编号H04L29/06GK1825801SQ20051012351
公开日2006年8月30日 申请日期2005年11月17日 优先权日2004年12月1日
发明者E·P·斯图尔特, M·斯托克斯, M·范德莫伊伦 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1