在发布预订系统中跟踪通知的系统和方法

文档序号:6650413阅读:145来源:国知局
专利名称:在发布预订系统中跟踪通知的系统和方法
技术领域
本发明涉及发布/预订系统,尤其涉及用于在发布/预订系统中跟踪通知的系统。
背景技术
发布/预订(publish/subscribe)通信范例描述了分布式计算设置中的已知交互形式。在发布/预订系统中,预订者可以登记意向或预订与给定题目有关的事件;此后,预订者接收发布者生成的、这类事件的通知。
在发布/预订系统中,数据的发布者或发送者不直接与预订者或接收者通信;而是,发布者和预订者通过这里称为通道(channel)、而在现有技术中由各种其它名称(譬如,通知服务器、中介器或事件服务等)命名的中间实体交互。发布者可以通过首先用特定题目标记这些通知,来在通道上发布有关事件发生的通知。预订者以消息的形式从通道接收有关与他们登记了感兴趣的题目相符的事件的通知。由于消息生产者(发布者)和消费者(预订者)通过通道彼此间接通信,所以消息发送与消息接收是脱离的。结果,生产者和消费者都不需要维护彼此的状态,从而降低或消除了交互参与者之间的依赖性。因此,由于发布者和预订者可以不同时开始和结束,所以发布/预订方案比诸如点到点消息传输之类的其它通信范例更灵活。
发布/预订机制相当好地适用于其中许多传感器监视某个基层系统的动态变化状态和将测量数据转发给中心服务站的消息传输系统。接收测量数据的中心服务器站通常应用服务器使用处理信息,将它存储在数据库中,并且为应用用户提供接口。随着处理器变得越来越便宜,并且随着在无线通信方面取得进展,可以将许多简单传感器加入现有系统中,以便改进对它们的监视和管理。传感器生成有关基层系统的状态变化的通知,因此,被模型化成特定类型事件或题目的发布者。在这种背景下,传感器被模型化成特定类型事件或题目的发布者,而监视事件的系统被模型化成预订者。这里,术语“事件”指的是基层系统中的状态变化。
在传感器网络中,传感器通过通知消息将事件的发生通知应用服务器。大型分布式系统可能存在许许多多个传感器,并且它们发送通知的频率可能非常高。例如,在使用RFID标签跟踪产品在超市中的流动的应用中,如果连锁店中的每个超市中的每次物品拾取都被当作一个通知发送到超市链的后端服务器,那么,通知的数量可能上升到每秒数万个。因此,如果将每个通知都发送给应用服务器,可能使应用服务器过载。
为了减轻应用服务器上的负载,可以在传感器和应用服务器之间放置体系结构实体。把这个实体叫作边缘服务器,因为它在逻辑上位于网络的边缘。边缘服务器预处理原始传感器数据并且可以汇集信息,以使某些传感器应用变成可扩展的。因此,边缘服务器可以拦截通知、处理它们并将它们包含的信息的汇集或总结发送到应用服务器。
边缘服务器就有关给定题目预定通道并且可以就有关相同或不同题目将消息发送给在可能不同的通道上的应用代码。应用服务器或边缘服务器只“想”从传感器接收最浓缩或集中形式的通知;也就是说,既接收“原始”通知又接收其中包含许多原始通知的总结并没有好处。
尽管如此,基于边缘服务器的结构还是向人们提出了大量技术挑战。理由之一是,部署大量边缘服务器意味着系统部件的故障通常会频繁发生,以致于发生故障是正常的,不发生故障倒是反常的。这个问题因如下事实而加重,即,从边缘服务器通常被部署在“区域”之外、而不像在大型集中服务器农场(farm)内那样容易受到保护的意义上来说,边缘服务器往往在比应用服务器更不友好或更不好保护的环境下运行。在这样的情况下,从许多发布者(譬如,传感器或其它边缘服务器)正常收集数据的边缘服务器出现故障带来的麻烦是在发布者缺乏在别处获悉它们现在应该发布消息的手段的情况下,数据通常会丢失。
从传感器到边缘服务器、从边缘服务器到边缘服务器和从边缘服务器到应用服务器的通信要求也向人们提出了挑战。传感器发送的消息通常通过无线链路传输。因此,消息传输系统需要考虑无线通信的特殊性,即,(i)带宽通常不如固定网络中富裕;和(ii)无线通信更容易受到噪声和干扰影响。由于边缘服务器生成的消息通常是预处理步骤的结果,因此信息内容比传感器生成的消息更高,因此更有价值,并且必须更好地防止丢失。另外,应用服务器通常使用功能丰富并遵从某些标准的消息传输系统。结果,如果要将边缘服务器部署在大型分布式传感器网络中,需要可能存在大量独立的通道的几种不同消息传输系统。
已知消息传输系统提出的另一个挑战是整个系统的管理随基于边缘服务器的结构而变得越来越复杂。如果部署大量边缘服务器,那么,人工配置它们的每一个,以便所有实体知道它们应该预订哪些通道以及它们应该向哪些通道发布是极其困难的。已知系统也难以随着负载变化,或随着边缘服务器或通道停止和开始而重新配置。
因此,本申请人相信,在发布/预订系统中需要对通知进行更有弹性的和可扩展的跟踪。

发明内容
本发明改进了现有技术并消除了包括上面讨论的那些在内(但不局限于那些)的、与现有技术有关的许多问题。本发明的目的和优点是通过如下所述的权利要求的特征实现的。
根据本发明的第一方面,提供了一种在含有每一个被配置成消息发布者、通道和/或消息预订者的一个或多个实体的发布/预订系统中、跟踪从消息发布者到消息预订者的通知消息的方法,其中,该方法包括预订描述系统中的其它通道的行为的通道(从现在开始称为元通道(meta-channel));和从元通道接收通道描述和/或转换描述的摘要,以便于跟踪从原始形式到进一步处理形式的消息转换。原始形式的消息或消息描述可以包括已经被诸如传感器之类系统中的实体收集或检测的原始数据,该实体可以向另一个实体发布原始数据。进一步处理形式的消息转换包括含有经汇集的来自许多其它实体的数据或含有取决于应用、以某种方式丰富(enrich)或转换的、来自一个或多个实体的数据的消息或消息描述。
本发明的方法可以使实体之一能够响应跟踪某些消息转换来预订第一通道。可以响应于确定第一通道以进一步处理形式发布一个或多个消息而放弃对第二通道的预订。并且,该方法可以包括发布汇集的或转换的消息。最好,按照XML(可扩展标记语言)规范格式化在元通道上发布的控制消息。
本发明的方法利用了描述通道和/或元通道的通道描述。可以使用通道描述中的信息使得本发明运行的系统的弹性和/或响应性。例如,如果在通道描述中交流通道或元通道上的负载,该方法使实体能够区分提供相似功能的通道,以便确定发布或预订的地方,尤其是在确定通道之一是否过载的情况下。通道描述还可以包括有关与通道描述的发布之间的时间相对应的刷新速率或刷新间隔的信息。通道或元通道可以利用刷新速率来确定另一个实体是否已经停止工作,尤其是当与刷新间隔相比经过了足够长间隔之后还没有接收到通道描述时。也可以将元通道的刷新间隔发布给它控制的通道。本发明的方法据此为通道调整刷新间隔,从而控制元通道上的负载。
在本发明的另一个方面中,提供了一种用于跟踪从消息发布者到消息预订者的通知消息的发布/预订系统。该系统包括通过电子网络相互可操作地连接的数个实体,并且每个实体包括配置成消息发布者、通道和/或消息预订者的至少一个处理器。在新发明的系统中,至少一个实体被配置成分配给起元通道作用的功能的信道,并包括如下(i)用于接收一个或多个通道描述或转换描述的装置;和(ii)用于发布通道描述或转换描述的摘要以便于跟踪从原始形式到处理形式的消息转换的装置。该系统可以拥有不止一个元通道,并且元通道可以彼此预订和发布。
根据本发明的再一个方面,提供了一种用于跟踪从消息发布者到消息预订者的通知消息的设备,其中,该设备包括起如下作用的至少一个处理器(i)预订第一消息发布者以便接收通道描述的摘要;和(ii)确定第二消息发布者是否以汇集形式发布一个或多个通知。如果第二消息发布者以更集中形式发布一个或多个通知,处理器可操作来预订第二消息发布者。
如本领域的普通技术人员将认识到的那样,本发明可以以各种方式实现。下面将给出使用发布/预订消息传输的分布式数据处理系统中的具体应用。并且,正如下面参照附图更详细描述的那样,本发明使消息传输系统内的实体能够动态地跟踪通知,以便接收最集中形式的通知。因此,本发明既实现了弹性又实现了可扩展性,尤其是对于在大型分布式系统内运行的应用和处理器。


图1是能够实现本发明的分布式信息处理系统的方块图;图2示意性地示出了根据本发明优选实施例的通道和元通道之间的关系;图3是例示根据本发明优选实施例的发布者和预订者之间的关系的示意图;以及图4A、4B、4C和4D示意性地例示了如何根据本发明的优选实施例跟踪消息转换。
具体实施例方式
下面的详细描述旨在提供分布式消息传输系统利用传感器监视事件并且将事件数据转发给服务器的本发明的例子。但是,应该认识到,这种描述不应该被当作将本发明的范围限制在使用传感器的消息传输系统上。更一般地,本发明可以在其中处理器向通知接收器发布通知的任何分布式消息传输系统中实现。
根据优选实施例,本发明可以应用在采用传感器来监视基层系统的状态并且将测量数据转发给中心服务器的分布式系统中。这样消息传输系统的示范性应用包括监视水道中水位的洪水警告系统、利用射频标识(RFID)跟踪货物的位置和数量的库存管理应用或监视交通工具的行为以便检测和预测交通堵塞的汽车流量警告方案。
本发明可以在这样的消息传输系统中实现,这种消息传输系统使用能力可能非常有限的传感器来获悉它们应该发布它们的消息的地方或获悉该消息传输系统随通道移动、失效、关闭、被重新配置等而发生的演化。例如,传感器可能在不能从外部对它们供电的环境中工作。它们可能依赖于内部电池,因而可能不得不非常简单以降低它们的功耗。它们可能具有在它们之间通信或预订通道来获悉它们应该发布它们的消息的地方的能力,或者可替代地,它们可能简单地向预配置目的地广播或发送消息。
参照图1,示出了其中可以实现本发明的自动通知跟踪系统的分布式系统10的方块图。分布式系统10最好包括传感器20-44、数据通道50、60、边缘服务器70、80、应用服务器90和数据库100。传感器20-44、边缘服务器70、80和应用服务器90利用一种或多种不同技术通过一个或多个消息传输通道通信。事件数据可以由传感器20-44收集,转发给通道50、60,它们的每一个最好支持发布/预订交互模式。通道50、60可以向在边缘服务器70、80上运行的应用代码130、140、150发布有关事件的消息110、120,边缘服务器70、80是在数据到达最终目的地之前可以处理、过滤和/或重新格式化数据的中间计算平台。
在边缘服务器70、80上运行的应用代码130、140、150可以从一个或多个通道50、60中读取、处理消息,丰富或汇集在消息中接收的数据。因此,边缘服务器70、80最好在将进一步处理形式的消息转发给应用服务器90之前,至少对原始数据进行一些预处理。例如,如图1所示,传感器(例如,20-26)将消息(160-166)发送到边缘服务器70上的通道50,其中,应用代码130在边缘服务器70上运行,从通道50中读取消息110,并且将处理消息170写入应用服务器90中。类似地,传感器30-38将消息180-188发送到应用代码140、150驻留在上面的第二边缘服务器80上的第二通道60。应用代码130可以处理从通道50和第二通道60两者接收的消息110、190,然后,可以向第二通道60发布汇集或转换的消息200。第二通道60上的应用代码150可以处理消息120和/或进一步处理在第二边缘服务器80上接收的消息200,然后,可以将处理消息210写入在应用服务器90上运行的、诸如消息组件(bean)220、222之类的软件部件。
取决于应用,最好可以使用流水线处理,以便多级边缘服务器处理消息数据,然后将与处理数据有关的消息转发给应用服务器。应用服务器90包括可以在一台或多台机器上运行的软件平台。主应用程序运行在可以与最终用户交互的应用服务器90上。
通道(例如,50)可以像图1所示那样在边缘服务器70上运行,或者,可以由应用服务器(例如,90)来支持,或者,甚至由传感器(例如,20)来支持。数据通道50、60可以由本领域普通技术人员已知的不同消息传输技术来支持,例如IBMWebSphereMQSeries中间件系统或CORBA(公共对象请求代理体系结构)通知服务那样。IBM、WebSphere和MQSeries是美国、其它国家或两者的国际商用机器公司(International Business MachineCorporation)的商标。CORBA是美国和/或其它国家的Object MangermentGroup,Inc.的商标。CORBA指的是Object Mangerment Group,Inc.(OMG)发行的、有关计算机应用程序用来在网络上一起工作的体系结构和基础架构的一套规范。OMG在他们的网站http//www.omg.org上将该规范与其它当前文档一起维护。可以预期,有关CORBA的规范将随时间而发展。
如图2所示,系统10内的每个通道250、260与通道控制器270、280相联系,通道控制器270、280提取有关通道250、260的控制信息,并且可以周期性地将它发布给另一个通道,例如,290。通道控制器可以驻留在与通道相同的进程内或驻留在完全不同的进程内。给定进程可以包含一个或多个通道的一个或多个控制器,但最好通道控制器270、280驻留在与它控制的通道(分别是250、260)相同的机器300、310上,以降低系统10内不一致的可能性。通道控制器270、280可以利用像例如CORBA通知服务中的订单那样的基层通道中的机制、或通过与作为正常预订者的通道的交互(例如,通过取样通行量)确定在它的基层通道250、260上哪些题目可用。
如图2所示,本发明使用一个或多个元通道290,以便于通道控制器270能够向网络中的其它通道260发布控制信息或控制消息。元通道290携带有关其它通道250、260的信息,并且与它们的相似之处在于它支持发布/预订交互。元通道290可以只携带控制信息,或者,它也同时用于携带正常数据消息。消息传输系统中对生成和预订数据消息感兴趣的参与者可以首先预订元通道。正如下面进一步详细描述的那样,(例如,在边缘服务器320上的)消费者可以利用标准预订机制选择控制信息,并且可以利用元通道290来确定生成消费者感兴趣的类型的消息的通道的位置。诸如通道控制器270、280之类的生产者可以在元通道290上发布通道描述信息330、340。一般来说,生产者(例如320)可以从元通道290中获悉例如可用于生成生产者320感兴趣的类型的消息的其它通道(例如260)。因此,元通道290可以利用发布/预订语义(semantics)来分配有关数据通道(例如,250、260)的状态的控制消息350。
取决于实现本发明的分布式系统,可以使用不止一个元通道290,也就是说,元通道可以分布在系统10中的几个实体上,并且可以防止单个元通道成为瓶颈的状况。如果使用不止一个元通道,每一个都可以利用发布/预订消息传输来相互分发控制消息。
正如本文使用的那样,词汇“类型”或“题目”最好指一类消息或通知正如本领域的普通技术人员认识到的那样,取决于使用的预订方案,它可以指关键字、主题、位置、属性、数据源、数据提供者的角色、通知属性或对象。尽管基层技术可能支持更丰富的类型信息,但根据本发明的优选实施例,每个消息具有通过简单字符串标识的类型,以便允许使用同一种机制来控制可由不同消息传输技术支持的通道。通过简单字符串标识的消息类型可以例如直接被映射到基于主题的消息传输系统上的主题。于是,本发明不要求数据通道250、260和控制通道(譬如,元通道290)使用相同的消息传输技术。例如,数据通道可以使用使用消费语义的消息传输系统,以便它的消息一直保持到恰好一个消费者从那个数据通道接收到消息为止,而诸如CORBA通知通道之类的机制可以用于向许多预订者广播控制信息。
通道控制器(例如,280)可以在元通道290上发布通道描述信息。通道描述可以包含像如下那样的信息正在使用的消息传输系统的类型;与通道260连接所需的信息(例如,地址、端口);通道260接受的一种或数种消息类型;当前发布和预订的一种或数种消息类型;负载和刷新速率(下面进一步详细讨论)等。通道描述信息可以以许多种方式提高系统的响应性和弹性。
例如,通道描述中与通道上的负载有关的信息可以使系统中的另一个实体能够区分提供相似功能的通道。负载信息可以指示例如预订通道和向通道发布的预订者和/或发布者的数量。负载信息可以用存储器使用(memoryusage)的术语来表示,譬如,通过将存储器消耗表示成可以在时间窗上计算的占最大存储器的百分比。在一种情形中,消息生成通道可能过载并且可能能够通过它的通道描述中的负载信息将这个事实传达给其它实体。接收通道描述的消息消费者或发布者可以在获悉重负载的时候,分别确定预订经受较轻负载的另一个通道或向经受较轻负载的另一个通道发布。
刷新速率指的是通道描述的发布之间的时间间隔。这个时间间隔可以用于帮助消息接收者确定通道是否失效了。例如,接收者通常可能预计每N秒接收一个通道描述,其中,N在通道描述中被声明为刷新间隔或刷新速率。如果接收者在与以前接收通道描述的时间间隔成比例的时间间隔内没有接收到通道描述,那么,接收者可以推断通道失效了(即,如果接收者在,比方说,2N秒之后没有接收到通道描述,接收者可以确定通道失效了)。
通道描述中的信息可以以电子文档的形式,最好,以便于在各种平台上交换数据的标准格式发送,譬如,可扩展标记语言(XML)文档。XML是基于万维网联盟(W3C)定义的基于文档齐全标准的技术。诸如XML之类的标准格式是优选的,因为,即使分布式网络中的生产者或消费者使用不同的发布/预订消息传输技术,也可以使用它。还可以将附加信息加入消息中,以帮助特定技术中的过滤。例如,如果通道描述包含有关通道支持的消息类型的信息,那么,消费者可以指定他们只对有关携带特定类型的消息的通道的信息感兴趣。这可以通过例如将通道支持的消息类型加入CORBA消息的可变首标部分中来完成。可替代地,例如,如果通道支持Java消息服务(JMS)消息,则JMS消息可以在属性字段中包含有关消息类型的信息。JMS是用于企业消息传输的公用API的规范。JMS规范可在网站http/www.java.sun.com上获得。Java是美国和其它国家的Sun Microsystems,Inc.的商标。本领域的普通技术人员将认识到当利用其它发布/预订消息传输技术时传送消息类型信息的其它方式。
根据本发明的优选实施例,分布式消息传输系统10可以采用不止一个元通道290,以便支持可扩展性和弹性。每个元通道290都具有元通道控制器370,使可在一个元通道290上获得的控制信息能够传送到其它元通道360。元通道控制器370可以创建有关它控制的元通道290上的所有通道描述的摘要(未示出),并且可以在包括它自己290的其它元通道360上发布摘要380。该摘要最好包含数据通道250、260的通道描述的列表,以及元通道290的通道描述。
因此,数据消息生产者和消费者只需预订控制摘要,以便获取所需信息380。通道控制器270、280可以例如将摘要用作正在读取它们的控制信息330、340的确认。它们也可以利用诸如刷新间隔之类,与元通道控制器370有关的摘要信息380来支配它们的行为和/或它们自己控制消息330、340的内容。如果通道控制器270、280将来自元通道控制器290的通道描述的刷新间隔用作它们自己控制消息的最小单位,元通道控制器290可以对通道控制器270、280施加反压,以降低它们的发送速率。例如,如果通道250具有N秒的刷新速率,但通过摘要信息380获悉元通道290的刷新间隔是3N秒,通道控制器270可以将它的通道250的刷新间隔向下调整到3N。因此,系统10可以使它的响应性作为随元通道(例如,290)上的负载的函数。
通道控制器270也可以预订元通道290来获悉有关另一个可能更合适的元通道360的情况,以便发布它的控制信息330。另一个元通道控制器390可以预订元通道控制器370来获悉有关系统10中的其它元通道的情况。系统中的所有实体最好使用下面更详细描述的软状态(softstate)模型,以便周期性地刷新信息。
现在参照图2更详细地描述通道和元通道之间的优选预订关系。图2展示了诸如传感器400和402之类的发布者分别在通道250和260上发布有关类型X和Y的事件的消息410,412。通道控制器270和280通过在它们的相关元通道290上分别发布330和340来报告事件。元通道290可以将事件信息380的摘要转发给其它已知元通道360。
根据图2中的例示,边缘服务器320可以包含另一个通道或元通道运行的软件平台,和/或在预处理和/或汇集数据之后,它可以将数据转发给另一个边缘服务器或应用服务器(未示出)。边缘服务器320预订元通道290,从而最终获悉边缘服务器320感兴趣的事件类型Y。然后,边缘服务器320可以预订(420)通道260以获得有关类型Y的事件的更新。
在边缘服务器320上运行的应用代码可以处理包括有关事件Y(420)的消息数据的数据,以便生成和发布如图4进一步所示的那样,有关类型Z(430)的事件的消息。有关类型Z的事件的消息可以是在边缘服务器320上接收的数据的汇集或转换。如果向通道260发布(430)类型Z的事件,相关通道控制器280可以更新和在元通道290上发布它的通道描述440。元通道控制器370可以将这个信息450转发给其它元通道360。
因此,边缘服务器320可以消费来自可以起数据通道或元通道作用、诸如传感器或其它边缘服务器之类的发布者的消息。另外,边缘服务器320可以利用消息数据(例如,420)来生成边缘服务器320可以使它可用于其它边缘服务器或应用服务器的、如上面参照图3所述的新消息430。例如,边缘服务器可以取包含有关在传感器上测量的温度的信息的一组消息,以便生成包含平均温度的的汇集消息。可替代地,边缘服务器可以通过转换或丰富原始数据来处理它。例如,边缘服务器320可以接收包含全球定位系统(GPS)数据的一个或数个消息和可以将GPS数据转换成地图上的位置,例如,街道名。地图是边缘服务器320然后可以以新消息形式发布的消息转换的例子。
如上面参照图2所述,边缘服务器320可以从元通道290中获悉有关它感兴趣的信息当前可用的通道(例如,250、260)的情况。边缘服务器320可以根据当前可用信息(例如,350)作出局部判决,以确定边缘服务器应该消费来自哪个小组可用通道的消息。类似地,边缘服务器320可以局部确定它应该将在边缘服务器320上进行的预处理所得的新消息放在哪些通道(例如,260)上。由于通道(例如,250,260)的出现和消失和由于资源使用的波动,在边缘服务器320上所作的判定可以随时间而变化。边缘服务器320可以生成又可以进一步处理生成甚至更集中消息的汇集消息。根据本发明的优选实施例,由于可以根据一种消息传输方案读取或接收消息,并且可以根据不同机制处理、汇集和发送消息,多种不同消息传输技术可以共存在一个系统内。
本发明的重要方面是使消息传输系统10的实体(譬如,边缘服务器320)可以动态地确定它们应该预订的地方,以便接收最集中形式的通知。因此,本发明使消息消费者能够获悉(i)生成给定类型的消息的地方;(ii)这些消息是否已经转换或变成更集中形式;和(iii)如果是的话,向其发布转换或汇集的消息的地方。为了完成上面的任务,由于这些消息转换随时间而变化,消息消费者必须能够跟踪这些消息转换的演化。
因此,根据本发明的关键方面,诸如边缘服务器之类的实体可以消费来自一个通道或一组通道的消息和利用该消息生成可以发送给另一个通道或另一组通道的新消息。边缘服务器最好利用转换描述消息将这个信息发布给元通道。也就是说,正如下面参照图4更详细描述的那样,边缘服务器发布它正在预订一个通道上有关一个题目的通知和正在利用通知信息生成可能在另一个通道上有关另一个题目的通知的事实。
最好将包含这个信息的转换描述消息当作软状态模型来对待,即,信息必须定期更新,否则,它将失效。转换描述消息与上述的通道描述消息类似,因为,它最好是XML文档,并且它可以提供包括如下的信息(i)一组有关边缘服务器320正在读取的所有消息的通道名和消息-类型对;(ii)一组有关边缘服务器320正在写入的所有消息的通道名和消息-类型对;和(iii)刷新间隔等。也可以将附加标签加入转换XML文档以有助于过滤的特定技术消息格式中。
最好,消息消费者可以预谋元通道来接收不仅有关正在发布给定类型的消息的通道,而且有关那些消息的任何转换的信息。此外,诸如边缘服务器之类的发布者可以从同一输入中生成多个汇集或转换消息例如,边缘服务器可以生成包含一组温度读取值的平均值的消息,并且可以生成包含一组温度读取值的范围的消息。
现在参照图4描述可以跟踪消息转换的方式的非限制性例子。图4描述了本发明可以用于帮助监视位于特定环境中的传感器500,502检测的温度数据,以便确定,比方说,平均温度的示范性例子。
正如图4A所描述的那样,传感器500,502将一个或多个温度读取值510,512发送到通道1(550),通道1(550)将有关它预订的温度数据的控制信息560发送到元通道590。
图4B例示了元通道590将控制信息600发送到预订元通道590以便获悉系统10中的其它通道的情况的应用服务器或边缘服务器610。担当确定传感器500,502检测的温度的平均值的任务的应用服务器610预订(620)通道1(550)。未示出的是应用服务器610也可以预订许多其它通道来接收原始温度数据,以便能够确定许多传感器检测的平均温度的事实。
如图4C所示,另一个应用服务器或边缘服务器630预订(640)通道1(550)来获取温度数据510,512。应用服务器630还从系统10中的其它传感器或通道接收温度数据(未示出)和根据来自通道1(550)和来自其它温度数据生产者的温度计算平均温度。然后,应用服务器630向通道2(660)发布平均温度650。平均温度代表消息转换,即,有关根据从系统内的一个或多个实体接收的原始数据汇集或转换的数据的消息。
如图4D示意性例示的那样,应用服务器630还以控制信息670的形式向元通道590发布转换描述消息。控制信息670包括(i)应用服务器630预订的事件的描述(譬如,来自通道1的温度数据);和(ii)应用服务器630向通道2(660)发布汇集温度数据的通知。通道2(660)能够将平均温度存储在存储器中,还能够发布平均温度。元通道590向它包括应用服务器610在内的预订者发布另一个控制消息(例如,600)。作为接收这个控制信息或转换信息600的结果,应用服务器610现在意识到通道2(660)发布平均温度。应用服务器610放弃对通道1(550)的预订(620)和预订(670)通道2(660)。
未示出的是应用服务器610现在可能放弃了它可能已经向其它发布者作出的许多其它预订的事实,因为,应用服务器610现在可以从单个生产者600获取汇集的数据。应用服务器还可以通过丰富或转换汇集的数据,进一步处理它,而且可以在一个或多个其它通道上发布进一步的消息转换。此外,附加通道可以进一步汇集或处理可在通道2(660)和/或应用服务器630上获得的消息转换(譬如,上面例子中的平均温度)。
随着数据变化或随着消息传输系统内实体结束或开始交互,可以周期性地更新控制信息,以便更新信息变得可用。因此,正如上面讨论的那样,通道控制器和元通道控制器可以在它们的总结描述中发布应该重新发送控制数据的刷新速率。这些刷新间隔的发布使控制器可以施加反压,以防止系统内的通道被控制信息阻塞或对控制信息负担过重。最好可以时常改变刷新速率,以便提高系统对变化的反应能力。但是,这个目的应该权衡伴随着较高刷新速率的较高控制开销。因此,例如,对于一些应用,刷新间隔在数秒量级上也许更可取,以便降低排队和/或传播延迟造成的影响。
应该认识到,本文使用的术语“处理器”旨在包括像例如包括CPU(中央处理单元)的处理设备那样的任何处理设备。本文使用的术语“存储器”旨在包括像例如RAM(随机访问存储器)、ROM(只读存储器)、固定存储设备(例如,硬盘)、可拆卸式存储设备(例如,软盘)等那样,与处理器或CPU相联系的存储器。还应该明白,与处理器相联系的各种单元可以被其它处理器共享。于是,像本文所述那样,包括执行本发明的方法的指令或代码的软件部件可以存储在相关存储设备(例如,ROM、固定或可换式存储器)的一个或多个中,并且当准备使用时,部分或全部装载(例如,装入RAM中)并被CPU执行。
因此,按照本发明的方法可以至少部分利用软件,例如,计算机程序来实现,本发明可以提供当安装在数据处理装置中时特别适合执行上述方法的计算机软件。本发明可以被具体化成供计算机系统使用的计算机程序产品。这样的实现可以包括固化在像计算机可读媒体那样的有形媒体上,或可通过调制解调器或其它接口设备在像光学或模拟通信线那样的有形媒体上或无形地利用无线传输技术发送到计算机系统的一系列计算机可读指令。一系列计算机可读指令具体化了上文所述的全部或部分功能。
尽管本文参照附图描述了本发明的示范性实施例,但应该明白,本发明不局限于那些确切实施例,本领域的普通技术人员可以作出各种其它改变和修改而不偏离本发明的范围或精神。
权利要求
1.一种在发布/预订系统中跟踪从消息发布者到消息预订者的通知消息的方法,其中所述发布/预订系统含有每一个被配置成消息发布者、通道和消息预订者中的一个或多个的一个或多个实体,该方法包括预订元通道;和从元通道接收包括一个或多个通道描述的摘要,以便于跟踪从原始形式到处理形式的消息转换。
2.根据权利要求1所述的方法,还包括接收一个或多个转换描述消息。
3.根据权利要求1所述的方法,还包括响应于跟踪消息转换,预订第一通道;和响应于确定第一通道以比来自第二信息的通知进一步处理形式发布一个或多个消息,放弃对第二通道的预订。
4.根据权利要求1所述的方法,其中,处理形式的消息转换包括原始形式的消息的汇集。
5.根据权利要求1所述的方法,其中,处理形式的消息转换包括原始形式的消息的转换。
6.根据权利要求1所述的方法,还包括发布汇集的通知。
7.根据权利要求1所述的方法,还包括发布转换的通知。
8.根据权利要求1所述的方法,其中,按照XML规范格式化消息转换。
9.根据权利要求1所述的方法,其中,一个或多个通道描述描述通道和元通道的一个或多个。
10.根据权利要求1所述的方法,其中,一个或多个通道描述中的每一个包括如下的一个或多个发布/预订系统的类型;连接与通道描述相联系的通道所需的信息;与通道描述相联系的通道接受的一种或多种消息类型;和与通道描述相联系的通道当前发布或预订的一种或多种消息类型。
11.根据权利要求1所述的方法,其中,一个或多个通道描述中的每一个包括与关于通道描述相联系的通道的负载信息。
12.根据权利要求1所述的方法,还包括响应于负载信息,区分提供相似功能的第一和第二通道。
13.根据权利要求12所述的方法,还包括响应于确定第二通道过载,预订第一通道。
14.根据权利要求12所述的方法,还包括响应于确定第二通道过载,向第一通道发布。
15.根据权利要求1所述的方法,其中,一个或多个通道描述中的每一个包括与第一通道描述的发布和第二通道描述的发布之间的刷新间隔有关的信息。
16.根据权利要求15所述的方法,还包括响应于与刷新间隔有关的信息,并且响应于在与刷新间隔成比例的时间间隔之后没有接受第二通道描述,确定通道已经停止发布通知。
17.根据权利要求16所述的方法,还包括响应与元通道的刷新间隔有关的信息,调整通道的刷新间隔。
18.根据权利要求2所述的方法,其中,与实体有关的转换描述消息包括如下的一个或多个标识实体正在读取的消息的一组通道和消息类型的信息;标识实体正在写入的消息的一组通道和消息类型的信息;和刷新间隔。
19.一种用于跟踪从消息发布者到消息预订者的通知消息的发布/预订系统,其中,数个实体通过电子网络相互可操作地连接,每个实体包括配置成消息发布者、通道和消息预订者的一个或多个的至少一个处理器,其中,配置成通道的至少一个实体被分配给起元通道作用的功能,并包括(i)用于接收一个或多个通道描述的装置;和(ii)用于发布一个或多个通道描述的摘要以便于跟踪从原始形式到处理形式的消息转换的装置。
20.根据权利要求19所述的系统,还包括用于接收一个或多个转换描述的装置。
21.根据权利要求19所述的系统,还包括用于发布一个或多个转换描述的装置。
22.根据权利要求19所述的系统,其中,配置成通道的至少一个附加实体被分配给起一个或多个附加元通道作用的功能。
23.根据权利要求22所述的系统,其中,元通道预订一个或多个附加元通道。
24.根据权利要求19所述的系统,其中,元通道被适配来发布刷新速率,以便于控制元通道上的负载。
25.根据权利要求19所述的系统,其中,通道描述的至少一个包括经汇集或转换的数据。
26.一种用于跟踪从消息发布者到消息预订者的通知消息的设备,该设备包括可操作来起如下作用的至少一个处理器(i)预订第一消息发布者以便接收通道描述的摘要;和(ii)确定第二消息发布者是否以汇集形式发布一个或多个通知;其中,如果第二消息发布者以更集中形式发布一个或多个通知,处理器可操作来预订第二消息发布者。
全文摘要
提供一种用于跟踪从消息发布者到消息预订者的通知消息的系统和方法。该系统包括通过电子网络相互可操作地连接的数个实体,并且每个实体包括配置成消息发布者、通道和/或消息预订者中的至少一个处理器。根据本发明,至少一个被配置成通道的实体被分配给起元通道作用的功能,并包括(i)用于接收一个或多个通道描述的装置;和(ii)用于发布一个或多个通道描述和/或消息转换的摘要以便于跟踪从原始形式到处理形式的消息转换的装置。该系统可以拥有不止一个元通道,并且元通道可以彼此预订和发布。
文档编号G06Q10/00GK1848732SQ20051012013
公开日2006年10月18日 申请日期2005年11月4日 优先权日2004年11月4日
发明者肖恩·G·鲁尼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1