基于内容相似性进行消息路由和订阅匹配的方法和系统的制作方法

文档序号:6454861阅读:197来源:国知局
专利名称:基于内容相似性进行消息路由和订阅匹配的方法和系统的制作方法
技术领域
本发明一般地涉及数据处理领域,具体地说,涉及用于基于非结构化 信息有效负载来路由和传送消息的计算机实现的方法、系统和计算机可用 程序代码。
背景技术
发布-订阅消息传送系统具有两类客户机发布方客户机和订阅方客户 机。发布方客户机生成消息,也称为事件。订阅方客户机请求准则(也称 为订阅),用来指定根据已发布的消息要在将来传送的信息的种类。发布 方和订阅方相互使用匿名,意味着发布方不一定知道有多少订阅方或者不 知道这些订阅方的位置;并且订阅方不一定知道发布方的位置。
消息通常具有三个部分标头、属性和正文。消息标头包括若干预定 义的字段,这些字段包含可用于识别和路由消息的值。如果除了消息标头 字段中提供的值以外,还需要添加值,则可以创建消息属性并且设置值。 例如,消息属性可用于通过根据消息指定准则来选择消息。消息正文可用 于发送和接收各种形式的数据。消息属性和消息正文都是可选的并且经常 保留为空。
基于主题的发布-订阅消息传送系统是其中订阅指定主题的消息传送 系统,所述主M订阅方客户机希望接收的消息标头字段。基于内容的发 布-订阅消息传送系统是其中传送给订阅方的消息基于被指定为某些消息 属性的值的已发布消息内容的消息传送系统。订阅准则是可以在每个消息 上测试的与任何其他消息无关的消息属性。例如,过滤器可判定 "topic=stock-ticker/GE,,或"Stock/IBM/trade:volume>1000,,。基于内容或基于主题的发布-订阅消息传送系统是无状态系统,也就是 说,在这些系统中,对一个消息的处理不会影响对任何其他消息的处理。
这些发布-订阅(pubsub)系统经常用于提供动态信息的应用,例如执行实 时股票报价的网页。例如,使用发布-订阅消息传送系统的网页可以在IBM 股价变化时反映这些变化。不是在IBM股价每次变化时刷新页面,而是可 以指定pubsub过滤器,以便仅当股价超过100$时才将变化推送到网页。
基于内容的发布-订阅消息传送系统仅支持有限的过滤能力。为了解决 这一缺陷,可以在传统的消息传送中间件流中引入处理或转换消息的调解。 但是,调解的编程很复杂并且需要外部数据库服务来存储和访问状态。进 而,不能容易地组合一组调解者。
通常,调解检查各个消息并执行与所述各个消息关联的任务。但是, 存在一些检查多个消息甚至多个消息流以执行其任务的调解或消息转换。 一个实例是提供"平均"计算或"联接和过滤"计算的调解。SMILE技术 ( 参见 "Relational Subscription Middleware for Internet-Scale Publish-Subscribe,, , Yuhui Jin和Rob Strom, 2nd International Workshop on Distributed Event-based Systems (DEBS,03 ) , 2003 )可以聚合来自多 个流的信息并根据此聚合传送消息。例如,SMILE技术能够获取代表多个 航班的座位销售的流并为订阅方提供飞往伦敦的K个最便宜航班上的当前 可用座位数。
但是,此类调解仅对简单的文本或数字消息属性起作用,以便将派生 的状态提供给订阅方。进而,消息使用者通常只接收其标头和属性与指定 单个消息或消息历史的订阅中的选择准则匹配的消息。目前,订阅不会根 据消息正文的内容来选择消息。
随着广泛分布的高效无线连接的传感器网络的出现,出现了需要以及 时的方式智能地传送所收集数据的情况。这些分布式传感器网络包括捕获 音频和视频并且可提供大量数据的传感器,所述数据的范围(例如,传感 器视场)和覆盖率(例如,传感器的空间和时间分辨率)可以重叠。这些 数据提供了新的消息类型,其中消息正文包含有意义的内容并且可以在内容质量方面有所不同。虽然Web的M增加了可通过用户的拉操作提供的 信息,但是这些新的情况描述了可通过推送和通过丰富媒体流提供的增加 的信息。这些新的消息类型,除了具有诸如元数据或消息属性之类的数字 或文本数据之外,还包含非结构化信息作为其有效负载或消息正文。
无论消息内容为何,订阅方都只希望接收那些包含相关数据的消息。 与结构化有效负载不同,如果只依靠指定对消息中可用的结构化信息的限 制,则将不4艮精确地描述对包含非结构化信息的消息的订阅。
考虑战地指挥官的问题。战地指挥官必须知道战场上发生的事件。将 捕获低分辨率卫星图像馈给信号、高分辨率坦克图像馈给信号以及其他多 媒体信息,但是指挥官需要在收到所有这些图像之后对其进行排序以获取 信息最全面的图像。需要一种机制来使指挥官能够以这样的方式预先针对 这些多媒体消息建立所需的准则他/她可以选择优先接收最想要的图像。 当前的发布/订阅消息传送系统未提供这种能力。
继续战场的情况,除了战地指挥官之外,还存在其他订阅方,他们具 有用于接收消息正文中包含的图像的不同准则。例如,坦克指挥官希望接 收他的/她的坦克前方的远景图像以防止遭到伏击。必须从可用于战地指挥 官的同一传感器数据来满足该订阅,但是对于该用户而言,准则将是不同 的(例如,坦克前方的视场与整个战场的总体视图不同)。
将通过指定对非结构化信息的限制来为可用传感器数据的各种用户提 供服务,以便描述他们所需的订阅。因此,进一步需要一种根据指定的非 结构化有效负载限制为用户提供消息路由和订阅匹配的机制。具体地说, 需要一种将消息有效负载与订阅进行相似性匹配的机制。
考虑石油管道上的传感器的进一步实例。所述传感器提供与元数据(例 如图像捕获时间、传感器位置等)关联的图像数据。但是,来自该传感器 的消息有效负载包含非常多的有关传感器视场的视觉方面的信息。目前, 此类消息的订阅方必须检查所有消息或检查所有其中元数据满足订阅规范 (例如,在晚上ll点到12点之间捕获的图像)的消息。由于订阅方可能 接收到过多的消息(例如,所有消息)或过少的消息(例如,只有与限制性规范匹配的消息),因此这样可能造成问题。
另外,满足订阅方的订阅规范的消息也许不能提供订阅方感兴趣的数
据。例如,在晚上ll点到12点之间捕获的图像可能全部相同,并且没有 具有区别的信息。因此,需要一种用于指定对来自管道传感器的图像的满 足图像准则(如亮度或图像快速变化)的订阅的机制。
应指出的是,此类非结构化有效负载可能非常大,消息传送^5出结构 应避免不必要地传输无用消息。因此,还需要一种不仅限制接收而且还仅 传输所需消息的机制。这可以允许提高的伸缩性。

发明内容
示例性实施例提供了一种用于路由消息流中的消息的计算机实现的方 法、系统和计算机可用程序代码。用于路由消息流中的消息的计算机实现 的方法包括接收所需消息的规范,所述规范包含有效负栽,以及接收至少 一个消息,所述消息包含有效负载。根据所述规范有效负载和所述规范来 评估所述消息有效负载,并且才艮据所述评估来路由所述消息。示例性实施 例根据消息有效负载与订阅的相似性匹配为用户提供了消息路由和订阅匹 配。所述订阅可以包括非结构化元素(例如示例图像),并且规范指示需 要具有相似有效负载的消息。备选地,所述订阅可以包括需要分析所述消 息有效负载的说明。


所附权利要求中列出了被认为是示例性实施例的特性的新颖特征。但 是,当结合附图阅读时,通过参考下面对所述示例性实施例的详细描述, 可以最佳地理解所述示例性实施例本身以及优选使用方式、进一步的目标 及其优点,这些附图是
图1示出了其中可以实现示例性实施例的数据处理系统网络的图形表
示;
图2示出了其中可以实现示例性实施例的数据处理系统的方块图;图3是示意性地示出了根据示例性实施例的发布-订阅消息传送系统的 代理网络的示意图4是示意性地示出了根据示例性实施例的发布-订阅消息传送系统的 示意图5示出了根据示例性实施例的包含有效负载的消息规范的详细信
息;
图6是根据示例性实施例的用于路由消息流中的消息的方法的流程 图;以及
图7是才艮据示例性实施例的用于路由消息流中的消息的方法的流程 图,其中对订阅进行分类以便最大程度上减少传送。
具体实施例方式
提供了图1-2作为其中可以实现示例性实施例的数据处理环境的示意 图。应当理解,图l-2仅作为示例,并非旨在断言或暗示对其中可以实现 各个方面或示例性实施例的环境的任何限制。可以在不偏离示例性实施例 的精神和范围的情况下对所描述的环境做出许多修改。
现在参考附图,图1示出了其中可以实现示例性实施例的数据处理系 统网络的图形表示。网络数据处理系统100是其中可以实现示例性实施例 的计算机的网络。网络数据处理系统100包含网络102,后者是用于提供 网络数据处理系统100内相互连接的各种设备和计算机之间的通信链路的 介质。网络102可以包括诸如有线、无线通信链路或光纤电缆之类的连接。
在所示实例中,服务器104和服务器106连同存储单元108 —起连接 到网络102。此外,客户才几IIO、 112和114与网络102相连。这些客户机 110、 112和114可以例如是个人计算机或网络计算机。在所示实例中,服 务器104将诸如引导文件、操作系统映像以及应用之类的数据提供给客户 机IIO、 112和114。在此实例中,客户机IIO、 112和114 ;U良务器104 的客户机。网络数据处理系统100可以包括其他服务器、客户机以及其他 未示出的设备。在所示实例中,网络数据处理系统100是因特网,同时网络102代表 全球范围内使用传输控制协i"网际协议(TCP/IP)协议集来相互通信的网 络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线 路的主干,它包括数以千计的商业、政府、教育以及其他路由数据和消息 的计算机系统。当然,网络数据处理系统IOO也可以被实现为许多不同类 型的网络,诸如例如企业内部互联网、局域网(LAN)或广域网(WAN)。 图1旨在作为一个实例,并非旨在作为对不同示例性实施例的体系结构限 制。
现在参考图2,图2示出了其中可以实现示例性实施例的数据处理系 统的方块图。数据处理系统200是诸如图1中的服务器104或客户机110 之类的计算机的实例,其中可以存储实现示例性实施例的过程的计算机可 用代码或指令。
在所示实例中,数据处理系统200采用包括北桥及存储控制集线器 (MCH) 202和南桥及输入/输出(I/O )控制集线器(ICH) 204的集线器 体系结构。处理单元206、主存储器208以及图形处理器210与北桥及存 储控制集线器202相连。图形处理器210通过加速图形端口 (AGP)与北 桥及存储控制集线器202相连。
在所示实例中,局域网(LAN)适配器212与南桥及I/0控制集^器 204相连。音频适配器216、键盘和鼠标适配器220、调制解调器222、只 读存储器(ROM) 224、硬盘驱动器(HDD) 226、光盘驱动器230、通用 串行总线(USB)端口以及其他通信端口 232,以及PCI/PCIe设备234通 过总线238和总线240与南桥及I/O控制集线器204相连。PCI/PCIe设备 可以例如包括以太网适配器、外接卡以及笔记本计算机的PC卡。PCI使 用卡总线控制器,而PCIe则不使用。ROM 224可以例如是闪速二进制输 /v/输出系统(BIOS)。
硬盘驱动器226和光盘驱动器230通过总线240与南桥及I/O控制集 线器204相连。硬盘驱动器226和光盘驱动器230可以例如使用集成驱动 电子设备(IDE)或串行高级技术附件(SATA)接口。超级I/O (SIO)设备236可以与南桥及I/O控制集线器204相连。
操作系统在处理单元206上运行并协调和提供对图2中的数据处理系 统200内的各种组件的控制。作为客户机,操作系统可以是诸如Microsoft Windows XP之类的商用操作系统(Microsoft和Windows是Microsoft Corporation在美国和/或其他国家/地区的商标)。诸如JavaTM编程系统 之类的面向对象的编程系统可以与操作系统一起运行并提供从数据处理系 统200上执行的Java程序或应用对操作系统的调用(Java是Sun Microsystems, Inc.在美国和/或其他国家/地区的商标)。
作为服务器,数据处理系统200可以例如是运行高级交互执4t( AIX ) 操作系统或LINUX操作系统的IBM eServerTM pSeries⑧计算机系统 (eServer、 pSeries和AIX是国际商业机器乂>司在美国和/或其他国家/地区 的商标,而LINUX是Linus Torvalds在美国和/或其他国家/地区的商标)。 数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理 器(SMP)系统。备选地,可以使用单处理器系统。
操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘 驱动器226之类的存储设备上,并且可以被加载到主存储器208以便由处 理单元206执行。所述示例性实施例的过程可以由处理单元206使用计算 机可用程序代码来执行,所述程序代码可以存储在诸如主存储器208、只 读存储器224之类的存储器之中,也可以存储在一个或多个外围设备226 和230中。
本领域中的技术人员将理解图1-2中的硬件可以根据实施方式而不同。 除了图1-2中所示的硬件或代替这些硬件,可以使用诸如闪存、等价的非 易失性存储器或光盘驱动器之类的其他内部硬件或外围设备。此外,所述 示例性实施例的过程还可以应用于多处理器数据处理系统。
在某些示例性实例中,数据处理系统200可以是个人数字助理(PDA ),
性存储器。
总线系统可以包括一个或多个总线,例如图2中示出的总线238或总线240。当然,总线系统可以使用在与通信结构或体系结构相连的不同组 件或设备之间提供数据传输的任何类型的通信结构或体系结构来实现。通 信单元可以包括一个或多个用于传输和接收数据的设备,例如图2的调制 解调器222或网络适配器212。存储器可以例如是主存储器208、只读存储 器224或诸如在图2中的北桥及存储控制集线器202中找到的高速緩存。 图1-2中所示的实例和上述实例并非旨在暗示体系结构限制。例如,除了 采用PDA的形式之外,数据处理系统200还可以是平板计算机、膝上型计 算机或电话设备。
示例性实施例提供了用于调解分布式消息传送系统中的已发布消息流 的计算机实现的方法、系统和计算机可用程序代码。所述分布式消息传送 系统的数据处理设备可以实现为独立的计算设备,或实现为其中使用多个 计算设备执行示例性实施例的各个方面的分布式数据处理系统。
根据示例性实施例,诸如图1中示出的网络数据处理系统100之类的 网络数据处理系统提供了支持订阅的分布式消息传送系统。客户机的子集 (例如图1中的客户机IIO、 112和114的子集)可以^^布客户机,而其 他客户机可以是订阅客户机。还可以由一个或多个服务器(例如图1中的 一个或多个服务器104和106 )生成发布的事件。
图3是示意性地示出了根据示例性实施例的发布-订阅消息传送系统的 代理网络的示意图。所述消息传送系统在称为"代理"的重叠服务机器网 络中实现。图1中的一个或多个服务器104和106可以例如是代理机器。 多个代理机器负责根据订阅客户机请求的消息和订阅的内容将发布客户机 发送的消息传递给订阅客户机。某些代理机器可以专用于托管发布客户机, 称为发布方托管代理(PHB),其他代理机器用于托管订阅客户机,称为 订阅方托管代理(SHB)。在PHB和SHB之间,可以存在任意数量的包 括路由和过滤的中间节点。位于中间节点处的代理称为中间代理或IB。为 了进行说明,假设代理具有上述区分,但是在实际部署中,某些或全部代 理机器可以组合PHB 、 SHB和/或IB的功能。
诸如发布方302a-302d之一的发布客户机通过相应的客户机连接306a-306d之一建立与诸如PHB 304a或304b之类的PHB的连接。独立地, 诸如订阅方312a-312d之一 的订阅客户机通过相应的客户机连接 314a-314d之一建立与诸如SHB 310a或310b之类的SHB的连接。PHB 和SHB借助代理-到-代理链路阵列并经由中间代理308a-308b相连。
在图3中示出的示例性代理网络中, 一个或多个执行引擎可以在网络 中的代理上运行并且可以被互连。所述一个或多个执行引擎可以被互连以 形成分布式执行引擎。在多个代理机器上运行的执行引擎接收输入消息, 使用转换对象处理输入消息,并将输出消息路由给订阅方。代理-到-客户 机和代理-到-代理连接可以例如是任何可靠的先进先出(FIFO)连接,例 如传输控制协议/网际协议(TCP/IP)套接字连接。
图4是示意性地示出了根据示例性实施例的发布-订阅消息传送系统的 示意图。所述系统总体由标号400表示,并且在示例性实施例中,已发布 消息(例如由传感器402、 404、 406和408提供的图像数据)被代理416 和418分组为非重叠的相似性类别412和414。相似性类别的数量可大可 小并且可以针对代理网络410进行配置,代理网络410可以实现为图3中 示出的代理网络300。有用的相似性类别的实例包括人脸近景、人体外形 的远景、烟雾以及火。
根据它们在此类分组中的类别,在代理网络410上将消息路由到最接 近需要这些类别的消息的订阅方的节点。在最接近订阅方的节点处,执行 完全匹配来提供要提供给不同订阅方的订阅有效负载420、 422和424。此 示例性实施例允许将潜在唯一的订阅有效负载保持在受限数量的节点中, 从而不会将它们传播到上游。其他示例性实施例采用重叠类别来取得相似 的效果。
在另一示例性实施例中,在订阅端可能存在大量的订阅,可以将这些 订阅潜在地分组为多个相似性类别,从而获得无需将消息复制到与多个订 阅方最接近的多个节点的益处。通过基于相似性的聚合,将包含类似有效 负载的订阅连接到接收这些类别的消息的节点。此示例性实施例允许具有 大量计算的分析位于尽可能少的节点中。图5示出了根据示例性实施例的包含有效负载的消息规范的详细信 息。所述规范通常由标号500表示并且可以包含但不限于订阅方信息502、 订阅主题504 (如传统发布-订阅系统中理解的那样)、对非结构化消息有 效负载的参数化限制506、与所需非结构化内容关联的关键字或分类508、 示例非结构化有效负载信息510 (或指向示例非结构化有效负载信息的指 针)、真/伪指示器512,以及所请求的匹配度514。真/伪指示器512在订 阅方希望接收所有与描述不符的消息时非常有用,这将在以下说明。
订阅方信息502包括但不限于地址、从属关系(例如,公司)、安 全访问级别、授权服务的类别、备选地址、所需的最大消息大小、调解选 择(例如,语言转换)、允许的消息传送时间、在无法建立通信的情况下 备选的传送目的地等。可以在每次消息订阅的基础上指定此信息,也可以 通过订阅方记录来获取此信息,其中所述订阅方可以是个人、企业或另一 团体。可以通过数据输入、本地存储访问或通过诸如公司局域网或因特网 之类的网络来接收此信息。
订阅主题504可以作为订阅的一部分输入并在传统的发布-订阅系统中 用作消息过滤器。要指出的是,包含非结构化信息的消息也可以包含结构 化信息。例如,在对欺诈检测或伪钞检测很有用的示例性实施例的一个应 用中,可以针对每个购物顾客在零售商的公司网络上传送消息,所述消息 包含收4|*位置和客户的图像。在该实例中,可以使用仅选择在$100以上 的购物的主题过滤器。可使用进一步的过滤器来选择以这样的方式识别的 图像将所述消息限于与关于嫌^A的任何信息匹配的消息。
对非结构化消息内容的参数化限制506包括但不限于对照明、质量(例 如,焦点、图像对比度)、可听度、与所关注对象的距离、比例、视点等 的度量。
关键字508反映了可以从图像分析中获取的知识。此类分析在本领域 中是/>知的并且可以确定细节。可通过图像分析了解的详细信息实例,以 及因此在根据示例性实施例的订阅中有效的关键字实例包括但不限于损 坏的车辆、条形码(例如,图像是否包含条形码)、嵌入的文字(例如,可以在标记图像中找到的文字)、脸、身体、狗、橙子等。要指出的是, 这些不是主题,而是可以从消息有效负载的图像分析中收集的信息。
示例非结构化有效负载信息510可以包括但不限于 一个或多个图4象 (例如,jpg、 tiff以及其他格式)、音频和文本。订阅示例有效负载的实 例包括被盗车辆、丟失儿童、要缉拿的嫌疑人、处于特定空间关系(例如, 在坦克前三十英尺)中的对象以及特殊颜色(例如,灰色背景上的火焰) 的图像。可以包括多个示例有效负载。这可以在需要分类时构建多个订阅 的等同物。
在订阅方希望接收与有效负载示例不同的消息时,将使用真/伪指示器 512。在上述管道实例中,可以将各种正常情况(例如,白天、夜晚、周围 具有动物)下的管道图像用作示例有效负载并将其与伪指示器关联。然后, 订阅指示仅传送与所有示例都不同的消息。这允许选择包含之前未见过的 模式的消息。
在一个示例性实施例中,所请求的匹配度514可以表述为置信度因子, 即,用于判定收到的有效负载是否与示例匹配的匹配算法的置信度因子。 在另一示例性实施例中,匹配度514可以表述为高、中、低,或具有各种 数字校准(例如,在1-10的数值范围内)。如先前那样,可以在每次订阅 的基础上或通过其他方式从用户处交互地获取所需的匹配度。交互式使用 采用选择所生成图像的方式,以允许用户指示所产生的哪个图像与有效负 栽图像足够接近,以便此类消息的传送能够满足用户需求。
图6是根据示例性实施例的用于路由消息流中的消息的方法的流程 图。所述方法通常由标号600表示,并且在图6中示出的示例性实施例中, 未将消息分组为相似性类别,而是单独进行处理。
所述方法始于接收所需消息的至少一个规范,所述规范包括有效负载 (步骤610)。所述规范可以例如是图5中示出的订阅,但是可以理解, 这并非旨在将示例性实施例限于任何特定的规范。
然后接收包含非结构化信息的有效负载的至少一个消息(步骤620)。 接下来,判定消息有效负载是否与示例有效负载和限制匹配(步骤630)。在本领域中,对非结构化信息的分析是公知的。确定质量、焦点、景深以 及其他非结构化信息限制的算法是公知的。进一步地,本领域的技术人员 可以确定响度、嵌入的文字、嵌入的条形码、对象或人脸的存在等。然后, 可以使用所述分析判定关键字或分类是否可能匹配。另外,比较图像可以 确定颜色的相似性、人脸的相似性(例如,面部识别)、声音的相似性(例 如,语音识别)以及损害(例如,坏掉的水果和损坏的汽车)。也就是^兌, 这些分析可以提供有效负载匹配。这些算法可以按顺序执行或并行执行, 并且可能并非在所有节点处都可用。
对于某些消息,传送的及时性不是很重要,并且当处理可用时,可以 使用批模式执行分析。例如,用于质量控制的消息可用于验证或审核过程, 而不是修改正在进行的工作流。例如,当消息从一个服务器流向另一服务 器时,诸如"一致性"检测器或图像或音频区分算法之类的质量控制算法
可以确定有效负载在传输期间未^L篡改。
如果消息有效负载与指定的有效负载以及任何限制匹配(步骤630输 出"是,,),则将消息路由到与规范关联的订阅方处(步骤640),并且 方法结束。如果消息有效负载与指定的有效负载和限制不匹配(步骤630 输出"否"),则方法结束。
图7是根据示例性实施例的用于路由消息流中的消息的方法的流程 图,其中对订阅进行分类以便最大程度上减少传送。所述方法通常由标号 700表示并始于接收所需消息的至少一个规范,所述规范包括订阅方节点 处的有效负载(步骤710),与图6中的步骤610类似。在订阅方节点(即, 接近订阅方的节点)处接收此规范。在示例性实施例中,此节点距订阅方 的网络跃点数最少,以便减少消息传输量。
接下来,确定其中布置订阅的至少一个类别,在图7中称为"类别A" (步骤720)。此确定可以基于(但不限于)对限制的分析、对订阅方 信息的分析,以及有效地对非结构化示例有效负载的分析。订阅方节点中 的此类分析将参与要在消息传送系统内的远程节点中执行的相同非结构化 有效负载分析例程。有用的类别包括但不限于人脸、人、动物、火以及车辆。另外要指出的是,分类中包括的内容不仅仅是简单类别标签、分类 方法或其中所述分类作为子类别的类别层次结构。
然后提供刚确定的类别(类别A)的指示(步骤730)。该指示可以 传送到消息传送网络中的所有节点,也就是说,在完成步骤730之时,所 有节点都知道与该订阅方节点相关的类别A消息订阅都已生效。这允许远 程节点只将类别A消息发送给该订阅方节点,而不是将所有可能的消息都 发送到该节点来进行匹配。
接下来,消息传送节点收到包含非结构化有效负载的消息(步骤740 )。 在步骤750,如在步骤720那样,确定可以将订阅分类到其中的至少一个 类别。如果针对在步骤750中确定的类别的订阅处于活动状态,则消息传 送节点确保将在步骤740中收到的消息传送到与该订阅关联的订阅方节点 (步骤760 )。
然后在订阅方节点处接收消息(步骤770)并判定消息是否满足订阅 准则并且是否与订阅方非结构化信息有效负载具有足够的匹配(步骤 780)。如果具有足够的匹配(步骤780输出"是"),则将消息传送给订 阅方(步骤7卯),并且方法结束。如果没有足够的匹配(步骤780输出 "否"),则方法结束。
因此,示例性实施例提供了一种用于路由消息流中的消息的计算机实 现的方法、系统和计算机可用程序代码。用于路由消息流中的消息的计算 机实现的方法包括接收所需消息的规范,所述规范包含有效负载,以及接 收至少一个消息,所述消息包含有效负载。将根据规范有效负载和规范来 评估消息有效负载,并且根据所述评估来路由所述消息。
本发明可以采取完全硬件实施例、完全软件实施例或同时包含硬件和 软件元素的实施例的形式。在优选实施例中,本发明在软件中实现,所述 软件包括但不限于固件、驻留软件、微代码等。
此外,本发明可以釆取可从计算机可用或计算机可读介质访问的计算 机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算 机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于在此说明的目的,计算机可用或计算机可读介质可以是任何能够 包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所 述指令执行系统、装置或设备结合的有形装置。
所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或 设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁
带、可移动计算机盘、随4A^"取存储器(RAM)、只读存储器(ROM)、硬磁 盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写 (CR-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系 统总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包括 在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供 至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检 索代码的次数的高速緩沖存储器。
输"输出或I/0设备(包括但不限于键盘、显示器、指点设备等)可 以直接或通过中间I/O控制器与系统相连。
网络适配器也可以被连接到系统,以使所述数据处理系统能够通过中
连。调制解调器、电缆调制解调器以及以太网卡只是少数几种当前可用的 网络适配器类型。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在 是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说, 许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解 释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本 领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。
权利要求
1. 一种用于路由消息流中的消息的计算机实现的方法,所述计算机实现的方法包括接收所需消息的规范,所述规范包含规范有效负载;接收至少一个消息,所述消息包含消息有效负载;根据所述规范有效负载和所述规范来评估所述消息有效负载;以及根据所述评估来路由所述消息。
2. 根据权利要求l的计算机实现的方法,其中接收所需消息的规范包 括接收以下项中的至少一项对非结构化消息有效负载的限制、通过分析 所述非结构化消息有效负载确定的描述性信息,以及所述非结构化消息有 效负载的至少一个实例。
3. 根据权利要求2的计算机实现的方法,其中接收对非结构化消息有 效负载的限制包括接收亮度限制、对比度限制、焦点限制、缩放比例、像场限制、焦距 限制、传感器视点、频率范围以及分贝范围中的至少一项。
4. 根据权利要求2的计算机实现的方法,其中接收通过分析非结构化 有效负载确定的描述性信息包括接收颜色描述、音调描述、对象描述、模式描述以及对象规范中的至 少一项。
5. 根据权利要求2的计算机实现的方法,其中接收所述非结构化有效 负载的至少一个实例包括接收图像、图像指示、音频文件以及音频规范指示中的至少一项。
6. 根据权利要求2的计算机实现的方法,其中接收所需消息的规范进 一步包括接收指示是需要相似性还是相异性的指示器,其中根据所述规范有效 负载和所述规范来评估所述消息有效负载包括才艮据所述指示器来评估所述 消息有效负载。
7. 根据权利要求1的计算机实现的方法,其中接收所需消息的规范进 一步包括接收所需匹配度的规范,其中根据所述规范有效负载和所述规范来评 估所述消息有效负载包括根据所述所需匹配度来评估所述消息有效负载。
8. 根据权利要求7的计算机实现的方法,其中接收所需匹配度的规范 包括接收所需置信度因子的指示。
9. 根据权利要求l的计算机实现的方法,其中根据所述规范有效负载 和所述规范来评估所述消息有效负载包括使用置信度因子根据所述规范有效负载和所述规范来评估所述消息有 效负载。
10. 根据权利要求1的计算机实现的方法,还包括 接收已发布消息的相似性类别的规范。
11. 根据权利要求l的计算机实现的方法,还包括 确定与所述至少一个消息的有效负载关联的相似性类别。
12. 根据权利要求l的计算机实现的方法,还包括 确定与所述至少一个消息关联的相似性类别。
13. 根据权利要求12的计算机实现的方法,还包括 才艮据所确定的相似性类别来路由所述至少 一个消息。
14. 一种用于路由消息流中的消息的计算机实现的方法,所述计算机 实现的方法包括接收订阅方规范的指示; 确定订阅有效负载的相似性类别的规范; 接收至少一个消息,所述消息包含有效负载;J巳^J双贝!^万规 及以根据所述评估来路由所述至少 一个消息。
15.根据权利要求14的计算机实现的方法,其中确定订阅有效负载的相似性类别的规范包括接收包含有效负载的至少一个消息;以及 确定所述有效负载的至少一个特征。
16. —种用于路由消息流中的消息的计算机实现的方法,所述计算机 实现的方法包括接收所需消息的规范,所述规范包含有效负栽; 确定与所述有效负载关联的至少一个相似性类别; 提供与所述至少一个相似性类别关联的订阅的指示; 接收消息;确定与所述消息关联的相似性类别;以及才艮据所述相似性类别和与所述至少一个相似性类别关联的订阅的指示 来传送所述消息。
17. —种计算机程序产品,所述计算枳一呈序产品包括计算机可用介质,所述计算机可用介质具有用于路由消息流中的消息 的计算机可用程序代码,所述计算机程序产品包括被配置为接收所需消息的规范的计算机可用程序代码,所述规范包含规范有效负载;被配置为接收至少一个消息的计算机可用程序代码,所述消息包含消 息有效负载;的计算机可用程序代码;以及被配置为根据所述评估来路由所述消息的计算机可用程序代码。
18. 根据权利要求17的计算机程序产品,其中所述被配置为接收所需 消息的规范的计算机可用程序代码包括被配置为接收以下项中的至少一项的计算机可用程序代码对非结构 化消息有效负载的限制、通过分析所述非结构化消息有效负载确定的描述 性信息,以及所述非结构化消息有效负载的至少 一个实例。
19. 根据权利要求18的计算机程序产品,其中被配置为接收对非结构化消息有效负载的限制的计算机可用程序代码包括被配置为接收亮度限制、对比度限制、焦点限制、缩放比例、像场限 制、焦距限制、传感器视点、频率范围以及分贝范围中的至少一项的计算 机可用程序代码。
20. 根据权利要求18的计算机程序产品,其中被配置为接收通过分析 非结构化有效负载确定的描述性信息的计算机可用程序代码包括被配置为接收颜色描述、音调描述、对象描述、模式描述以及对象规 范中的至少 一项的计算机可用程序代码。
21. 根据权利要求18的计算机程序产品,其中被配置为接收所述非结 构化有效负栽的至少 一个实例的计算机可用程序代码包括被配置为接收图像、图像指示、音频文件以及音频规范指示中的至少 一项的计算机可用程序代码。
22. 根据权利要求18的计算机程序产品,其中被配置为接收所需消息 的规范的计算机可用程序代码进一步包括被配置为接收指示是需要相似性还是相异性的指示器的计算机可用程 序代码,其中根据所述规范有效负载和所述规范来评估所述消息有效负载 包括4艮据所述指示器来评估所述消息有效负载。
23. 根据权利要求17的计算才A4呈序产品,其中被配置为接收所需消息 的规范的计算机可用程序代码进一步包括被配置为接收所需匹配度的规范的计算机可用程序代码,其中根据所 述规范有效负栽和所述规范来评估所述消息有效负载包括根据所述所需匹 配度来评估所述消息有效负载。
24. 根据权利要求23的计算机程序产品,其中被配置为接收所需匹配 度的规范的计算机可用程序代码包括被配置为接收所需置信度因子的指示的计算机可用程序代码。
25. 根据权利要求17的计算机程序产品,其中被配置为根据所述规范 有效负载和所述规范来评估所述消息有效负载的计算机可用程序代码包 括被配置为使用置信度因子根据所述规范有效负载和所述规范来评估所 述消息有效负载的计算机可用程序代码。
26. 根据权利要求17的计算机程序产品,还包括 被配置为接收已发布消息的相似性类别的规范的计算机可用程序代码。
27. 根据权利要求17的计算机程序产品,还包括 -陂配置为确定与所述至少一个消息的有效负载关联的相似性类别的计算机可用程序代码。
28. 根据权利要求17的计算机程序产品,还包括被配置为确定与所述至少 一个消息关联的相似性类别的计算机可用程 序代码。
29. 根据权利要求28的计算^l^呈序产品,还包括 被配置为根据所确定的相似性类别来路由所述至少一个消息的计算机可用程序代码。
30. —种用于路由消息流中的消息的发布-订阅消息传送系统,所述系 统包括代理网络,所述代理网络包括用于接收所需消息的规范的订阅方代理,所述规范包含规范有效负载; 用于接收至少一个消息的发布方代理,所述消息包含消息有效负载;以及用于根据所述规范有效负载和所述规范来评估所述消息有效负载,以 及用于根据所述评估来路由所述消息的装置。
31. 根据权利要求30的发布-订阅消息传送系统,其中所需消息的规范 包括以下项中的至少一项对非结构化消息有效负载的限制、通过分析所 述非结构化消息有效负载确定的描述性信息,以及所述非结构化消息有效 负载的至少一个实例。
32. 根据权利要求31的发布-订阅消息传送系统,其中所需消息的规范 进一步包括指示是需要相似性还是相异性的指示器,其中评估装置根据所述指示器来评估所述消息有效负载。
33. 根据权利要求30的发布-订阅消息传送系统,其中所需消息的规范 进一步包括所需匹配度的规范,其中评估装置才艮据所述所需匹配度来评估 所述消息有效负载。
34. 根据权利要求30的发布-订阅消息传送系统,其中评估装置进一步 包括用于使用置信度因子根据所述规范有效负载和所述规范来评估所述消 息有效负载的装置。
35. 根据权利要求30的发布-订阅消息传送系统,其中评估装置进一步 包括用于根据所确定的与所述至少一个消息关联的相似性类别来路由所述 至少一个消息的装置。
全文摘要
本发明提供了一种用于路由消息流(600)中的消息的计算机实现的方法、系统和计算机可用程序代码。用于路由消息流中的消息的计算机实现的方法包括接收所需消息的规范,所述规范包含有效负载(610),以及接收至少一个消息,所述消息包含有效负载(620)。将根据所述规范有效负载和所述规范(630)来评估所述消息有效负载,并且根据所述评估(640)来路由所述消息。
文档编号G06F15/16GK101449260SQ200780018450
公开日2009年6月3日 申请日期2007年5月2日 优先权日2006年5月23日
发明者C·多雷, E·H·斯特恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1