在多播消息传送环境中订阅应用消息的方法和系统的制作方法

文档序号:7668222阅读:151来源:国知局
专利名称:在多播消息传送环境中订阅应用消息的方法和系统的制作方法
技术领域
本发明的领域是数据处理,或者更具体地说,是用于在多播消息传送 环境中订阅应用消息的方法、系统和产品。
背景技术
消息传送环境通常可用于在消息发送设备与使用消息的消息接收设备 之间提供数据通信。消息是一定量的包括一个或多个数据字段的数据,并 从安装在消息发送设备上的消息发生方传递到安装在消息接收设备上的消 息用户。消息可以例如代表数字或文本信息、图像、加密信息和计算枳一呈 序指令。
消息传送环境可以支持点对点消息传送、发布和订阅消息传送或以上 两者。在点对点消息传送环境中,消息发生方可以将消息提供给单个消息 用户。在发布和订阅消息传送环境中,消息发生方可以向特定频道或主题 发布消息,并且任何订阅了该频道或主题的消息用户接收所述消息。由于 消息发生方和消息用户间接地通过频道或主题在发布和订阅环境中通信, 因此消息发送与消息接收是分离的。因此,发生方与用户都不需要维护关 于彼此的状态,从而减少或消除了交互参与方之间的相关性。因此,发布 和订阅环境可以允许消息发布方和消息订阅方异步地工作。
为了进一步说明消息传送环境,图1是示出用于数据通信的典型消息
传送环境的方块图,所述环境包括消息发送设拟100 )、消息接收设拟104 ) 以及消息管理服务器(102)。消息发送设备(100)是其上安装有消息发 生方(110, 一组用于创建或转换应用消息的计算枳艰序指令)的计算机设 备。消息发生方(110)通常将消息发送到消息管理服务器(102)以便传 输到消息接收设备。在图1的实例中,消息发生方(110)在消息流(106)上将消息发送至消息管理服务器(102)。消息发送设备(100)可以通过 从消息发送设备本身的数据或从某些其他源接收的数据生成消息,来产生 所发送的消息。消息接收设备(104)是其上安装有消息用户(112, 一组 用于接收和使用应用消息的计算机程序指令)的计算机设备。消息用户(112)通常从消息管理服务器(102)接收消息。在图1的实例中,消息 用户(112 )在消息流(108 )上从消息管理服务器(102 )接收消息。在图 1的实例中,消息流(106)和消息流(108)是例如使用用户数据报协议('UDP,)和网际协议('IP,)实现的数据通信频道。
在点对点消息传送环境中或在发布和订阅消息传送环境中,从消息发 送设备传送至消息接收设备的消息通常都经过消息管理服务器(102)。消 息管理服务器(102)是其上安装有消息管理模块(114,用于管理从消息 发生方(110)传送至消息用户(112)的消息的计算枳4呈序指令)的计算 机设备。消息管理模块的实例可以包括IBM WebSphere MQ, Sun Microsystems的Open Message Queue和OpenJMS Group的OpenJMS。 在点对点消息传送环境中,当消息管理模块(114 )接收到从不同消息提供 方发送至用户(112)的消息时,消息管理模块(114)为消息用户(112) 提供消息排队。在发布和订阅消息传送环境中,消息管理模块(114)管理 消息发生方所发布的和消息用户所订阅的各个频道或主题。在任一消息环 境中,消息管理模块(114)还可以提供安全服务,以便确保只有从消息发 生方(110)到达消息传送用户(112)的消息才是消息用户(112)祐:授权 接收以及消息发生方(110)祐:授^L义送的那些消息。
当前的消息传送环境(例如结合图l描述的消息传送环境)具有某些 缺点。从消息发送设备发送到消息管理服务器以便传送到消息接收设备的 消息在消息管理服务器中祐延迟,直到消息管理服务器能够处理该消息。 在消息管理月良务器中进行的消息处理通常增加了消息传送环境的总体消息 传送等待时间,并降低了在数据通信环境中传输数据的总体速度。消息传 送等待时间是在消息发生方发送消息时开始和在消息用户接收到消息时结 束的时间段。
在许多数据通信环境中,即使消息传送等待时间略有增加,其成本也 是高昂的。例如,考虑金融市场数据环境。金融市场数据环境是用于传送 与金融市场和金融市场的参与者有关的信息的数据处理环境。在金融市场 数据环境中,消息通常称为"行情(tick)"并表示诸如金融报价或金融 新闻之类的金融市场数据。金融报价包括任何给定金融证券的出价和要价。 "出价"指买方愿意为证券所支付的最高价格。"要价"指卖方愿意为证 券接受的最低价格。在金融市场数据环境中,消息发生方可以根据实时的 金融市场情况来提供对买卖金融证券的报价,而消息用户可以根据金融报 价来买卖金融证券。当消息用户根据由消息发生方提供的报价价格来买卖 金融证券时,消息用户在金融证^艮价中获得出价或M的能力很大程度 上受金融市场数据环境中的消息传送等待时间的影响。消息传送等待时间可能性就越小。实际上,很不稳定的证券可能会在几秒钟的时间内在价格 上显著地波动。
当前减少消息传送等待时间的解决方案是从消息传送环境中移除消息 管理服务器。在此类当前解决方案中,消息发送设备直接向消息接收设备 发送消息。此类当前解决方案的缺点在于,移除消息管理服务器从消息传 送环境中除去了由消息管理^^务器提供的管理功能。因此,当前解决方案 实际上在需要消息管理服务器的管理功能的消息传送环境中没有提供解决 方案。例如,考虑多播消息传送环境,其中消息接收设备没有关于消息发 送设备的状态或存在的信息,并且消息发送设备发送应用消息而不考虑是 否有任何设备在监听消息。在此类环境中,进一步考虑消息接收设备要求 直到消息接收设备已经建立了接收消息的消息流之后,才进行从消息发送 设备传送消息。从此类金融市场数据环境中移除消息管理服务器除去了能 够将与环境中的各个消息发送设备有关的信息提供给消息接收设备的中央 实体,并且去除了由消息管理服务器提供的排队能力。

发明内容
本发明公开了用于在多播消息传送环境中订阅应用消息的方法、系统
和产品,包括由消息接收设备请求流管理服务器初始化对来自消息发送 设备的应用消息的消息订阅;在所述消息接收设备中从所述流管理服务器 接收来自所述消息发送设备的多播消息流的数据通信端点;由所述消息接 收i殳备开始在所述数据通信端点处监听所述应用消息;以及在开始监听所 述应用消息之后,由所述消息接收设备通知所述消息发送设备在所述数据 通信端点处发布所述应用消息。
在一些实施例中,接收数据通信端点可以包括,除了接收所述数据通 信端点以外,还接收一个或多个备选数据通信端点。在此类实施例中,在 多播消息传送环境中订阅应用消息还可以包括由所述消息接收设备标识 所述数据通信端点的故障状况;以及响应于所述故障状况,所述消息接收 设备从在所述数据通信端点处监听所述应用消息切换为在所述备选数据通 信端点之一处监听所述应用消息。
从以下对附图中示出的本发明示例性实施例的更具体的说明,本发明 的上述和其他目标、特征和优点将是显而易见的,在附图中,相同的标号 通常代表本发明的示例性实施例的相同部分。


图l是示出了用于数据通信的典型消息传送环境的方块图2是示出了根据本发明的示例性实施例的用于在多播消息传送环境 中订阅应用消息的典型系统的网络和方块图3示出了根据本发明的示例性实施例的包括在多播消息传送环境中 订阅应用消息中使用的示例性消息接收设备的自动化计算机器的方块图4是示出了根据本发明的示例性实施例的在多播消息传送环境中订 阅应用消息的示例性方法的流程图5是示出了根据本发明的示例性实施例的在多播消息传送环境中订 阅应用消息的进 一 步示例性方法的流程图6是示出了根据本发明的示例性实施例的在多播消息传送环境中订阅应用消息的进一步示例性方法的流程图;以及
图7是示出了根据本发明的示例性实施例的在多播消息传送环境中订 阅应用消息的进一步示例性方法的流程图。
具体实施例方式
从图2开始,结合附图描述根据本发明的实施例的用于在多播消息传 送环境中订阅应用消息的示例性方法、系统和产品。图2是示出了根据本 发明实施例的用于在多播消息传送环境中订阅应用消息的示例性系统的网 络和方块图。图2的根据本发明实施例的在多播消息传送环境中订阅应用 消息的系统通常按照以下步骤来操作消息接收设备(210 )请求流管理服 务器初始化对来自消息发送设备(208)的应用消息的消息订阅。消息订阅 是消息接收设备被授权从消息发送设备接收的 一组应用消息。消息接收设 备(210 )从流管理服务器(212 )接收来自消息发送设备(208 )的多播消 息流(280)的数据通信端点。消息接收设备(210)开始在数据通信端点 处监听应用消息。当开始监听应用消息之后,消息接收设备(210 )通知消 息发送设备(208 )在数据通信端点处发布应用消息。消息接收设备(210 ) 也可以通知消息发送设备(208 )在数据通信端点处停止发布应用消息。消 息接收设备(210)还可以请求流管理服务器(212)关闭消息订阅。在图 2的示例性系统中,消息接收设备(210)实现为订阅客户端设备,而消息 发送设备(208)实现为馈送适配器。
图2中所示的高速低等待时间数据通信环境(201)包括高速低等待时 间数据通信网络(200)。网络(200)包括馈送适配器(208)、流管理服 务器(212)和订阅客户端设备(210),以及用于将这些设备(208、 212、 210)连接在一起以便进行数据通信的^5出设施。图2的网络(200)称为 '高速低等待时间,,因为在连接到网络(200)的设备之间,在流管理服 务器(212)管理的消息流上发送的应用消息绕过了流管理服务器(212)。 例如,在消息流(280)上从馈送适配器(208)到订阅客户端设备(210) 的应用消息绕过了流管理服务器(212)。尽管此类消息不会因在流管理服务器(212)中进行处理而延迟,但是流管理服务器(212)仍保留对连接 到高速低等待时间数据通信网络(200)的设备之间的流(280)的管理。
为了进一步有助于网络(200)的'高速低等待时间,特性,将注意到 网络(200)不包括路由器,路由器是一种计算机联网设备,其基本功能是 跨网络将数据分组转发到其目的地。相反,每个设备(208、 212、 210 )都通信的路由功能。由于网络(200)不包括专用于路由数据分组的计算机联 网设备,所以图2的网络(200)可以称为"最低程度路由网络"。尽管图 2所示的示例性网络(200)不包括路由器,但是此类最低程度路由网络只 是为了说明。实际上,某些根据本发明的实施例的用于在多播消息传送环 境中订阅应用消息的高速低等待时间网络可以包括路由器。
在图2中所示的高速低等待时间数据通信环境(201)包括多播消息流 (280 )。多播消息流是在发送设备的通信端点与至少 一个接收设备的通信 端点之间的多播数据通信频道。通信端点包括网络地址和用于发送设备或 接收设备的端口。在多播数据通信频道中,在消息的目的地地址与接收设 备的通信端点之间存在一对多的关系。也就是说,每个目的地地址都确定 了一组接收设备(流的每个消息要复制到其)的通信端点。多播数据通信 频道可以例如使用用户数据报协议("UDP")和网际协议("IP")、 实际通用多播("PGM")协议或任何其他本领域的技术人员将想到的多 播数据通信协议来实现。
图2的示例性系统包括通过有线连接(262 )连接到高速低等待时间数 据通信网络(200)的流管理服务器(212)。图2的流管理服务器(212) 是其上安装有流管理模块(228)、认iM^块(230)、授^Uf莫块(234)和 授权策略(235)的计算机设备。流管理模块(228)是包括一组计算机程 序指令的软件组件,所述指令用于代理建立从馈送适配器(208)到订阅客 户端设备(210)的消息流(280)。流管理模块(228)可以通过以下步骤 来代理建立消息流(280):接收来自订阅客户端设备(210)的初始化消 息订阅的请求、认证订阅客户端设备(210)、授权订阅客户端设备(210)从馈送适配器(208 )接收消息流(280)上的应用消息(240 ),以及从消 息发送设备(208)向订阅客户端设备(210)提供消息流(280)的数据通 信端点。除了代理建立消息流(280),流管理模块(228)还包括一组用 于在消息传送环境(201)中执行其他管理功能的计算机程序指令,例如, 响应于从订阅客户端设备(210 )接收到发布通知,通知馈送适配器(208 ) 开始在消息流(280)上发布消息。
图2的认证模块(230 )是一组能够通过暴露的认证应用编程接口 ("API" ) (232)来向流管理模块(228)提供认证安全服务的计算机 程序指令。认证是检验实体的身份的过程。在图2的示例性系统中,认证 模块(230 )检验订阅客户端设备(210 )的身份。认证模块(230 )可以使 用各种安全基础设施(例如,共享密钥基础设施或^H^^i^出设施)来提供 认证安全服务。
图2的授权模块(234)是一组能够通it^露的授权API (236)向流 管理模块(228 )提供授权安全服务的计算机程序指令。授权是仅允许由已 被授权使用资源的资源使用者来使用资源的过程。在图2的实例中,授权 模块(234)标识订阅客户端设备(210 )被授权在消息流(280)上接收的 应用消息。图2的授权模块(234)使用授权策略(235)来提供授权安全 服务。授权策略(235 )是一组管理被授权实体在消息流上发送和接收应用 消息的权限的规则。例如,在金融市场数据环境中,授权实体可以被授权 接收包含某些金融证券(而非其他证券)的金融报价的应用消息。授权策 略(235)可以在单个实体或实体在组中的成员资格的基础上授予权限。
在图2的示例性系统中,馈送适配器(208)通过有线连接(260)连 接到高速低等待时间数据通信网络(200)。馈送适配器(208)是一种计 算机设备,能够将在馈送适配器输入流(214)上接收的具有第一格式的应 用消息转换为在馈送适配器输出流(216)上向订阅客户端设M输的具有 第二格式的应用消息。馈送适配器输入流(214 )是从馈送源到馈送适配器 (208)的消息流。馈送适配器输出流(216)是由流管理服务器(212)管 理的从馈送适配器(208)到订阅客户端设备(210)的消息流。
在图2的实例中,馈送适配器(208)在馈送适配器输入流(214)上 从馈送源(213)接收应用消息。馈送源(213)是一种计算机设备,能够 将数据聚合为应用消息并将所述消息发送至馈送适配器。例如,在金融市 场数据环境中,馈送源(213)可以实现为由可选价糾艮告机构(Options Price Reporting Authority, "OPRA")控制的馈送源。OPRA是由美国 证券买卖交易产生的金融市场信息的证券信息处理器。OPRA所发布的核 心信息是最终的销售报告和报价。金融市场数据环境中的馈送源的其他实 例可以包括由Consolidated Tape Association ( "CTA")或Nasdaq Stock Market, Inc控制的馈送源。CTA监管在纽约股票交易所和美国股票交易 所列出证券的实时交易和报价信息的发布。Nasdaq Stock Market, Inc运作 NASDAQ Market Centers^,后者是美国的基于电子屏幕的股票证券市场。 在金融市场数据环境中,将馈送适配器输入流称为"金融市场数据馈送"。 图2的馈送适配器(208 )上安装有转换模块(220 )、转换表(222 )、 转换功能库(224)、消息库(225)、消息模型(244)、消息传送中间件 (276)以及传输引擎(278)。转换模块(220)是一组计算^4呈序指令, 用于将在馈送适配器输入流(214 )上接收的具有第一格式的应用消息转换 为具有第二格式的应用消息(240),以便在馈送适配器输出流(216)上 传输到订阅设备。
转换模块(220)根据转换表(222)将应用消息从第一格式转换为第 二格式。图2的转换表(222 )是数据结构,该数据结构规定了能够将应用 消息从一种格式转换为另一种格式的转换功能。通过使用多个转换表,转 换模块(220)可以将消息从多种输入格式转换为多种输出格式。在图2 的实例中,转换表(222)规定了能够将从馈送适配器输入流(214)接收 的具有第一格式的应用消息转换为具有第二格式的应用消息(240 )以^f更在 愦送适配器输出流(216)上传输到订阅客户端设备的转换功能。图2的转 换表(222)可以使用结构化文档(例如,可扩展标记语言("XML") 文档)来实现。
图2的转换功能库(224 )是可加载的软件模块,该模块包含一个或多个转换功能,能够将应用消息中的数据字段从一种格式转换为另一种格式, 或将数据字段的值从一个值转换为另一个值。包含在转换功能库中的转换功能可以例如将16位整数转换为32位整数、将存储在字符串字段中的数 字转换为64位双浮点值、将一个数据字段的值增加l,或是本领域的技术 人员将想到的任何其他转换。转换模块(220)通过转换功能库(224)的 转换功能暴露的一组转换功能API (226)来访问转换功能。在图2的实例 中,转换功能库(224)可以实现为在运行时可用于转换模块(220)的动 态链接库、在编译时链接到转换模块(220)的静态链接库、动态加载Java 类,或本领域的技术人员将想到的任何其他实施方式。
在图2的实例中,由馈送适配器(208)传输的应用消息(240)具有 在消息模型(244)中指定的格式。消息模型(244)是定义用于创建、访 问和操纵应用消息(240)(转换自从馈送源(213 )接收的应用消息(未 示出))的结构和格式的元数据。也就是说,消息模型(244)指定了用于 解释应用消息的消息格式并包括一个或多个字段定义。每个字段定义都指 定了在应用消息中存储数据的消息字段并包括消息字段的字段特性。在图 2的实例中,当流管理服务器(212)代理到订阅客户端设备的消息流时, 由流管理服务器(212)在馈送适配器(208)和订阅客户端设备(210)两 者上建立消息;漠型(244)。可以使用结构化文档(如XML文档)、Java 对象、C++对象或本领域的技术人员将想到的任何其他实施方式来实现消 息模型。
在图2的实例中,转换模块(220)和转换功能库(224)的转换功能 使用消息库(225)来处理包含在应用消息(240)中的数据。消息库(225) 是软件模块,其包括一组用于根据消息模型(244)来创建、访问和操纵消 息(240)的功能。通过消息库(225)暴露的消息API (227),转换模块 (220)、转换功能库(224)的转换功能以及消息传送中间件(276)可以 访问消息库(225)。
在图2的转换模块(220)对应用消息执行数据处理之前,转换模块 (220)从馈送源(213)接收具有第一格式的应用消息(未示出)。图2的转换模块(220 )可以通过馈送适配器(208 )的接收传输引擎(未示出) 来接收源流消息。接收传输引擎是工作在网络堆栈的传输层的软件模块, 并且可以根据UDP/IP协议、PGM协议或本领域技术人员将想到的任何其 他数据通信协议来实现。接收传输引擎可以将接收的应用消息直接提供给 转换模块(220),或提供给消息传送中间件(276),后者又将源流消息 提供给转换模块(220)。
在图2的转换模块(220)对从馈送源(213)接收的应用消息执行数 据处理之后,转换模块(220 )将具有第二格式的应用消息提供给消息传送 中间件(276)。图2的消息传送中间件(276)是在馈送适配器(208)、 可能存在的任何备用馈送适配器、订阅客户端设备(210 )以及馈送源(213 ) 之间提供高可用性服务的软件组件。另外,图2的消息传送中间件(276) 包括一组用于根据本发明的实施例在多播消息传送环境中订阅应用消息的 计算机程序指令。消息传送中间件(276)通常通过以下操作来根据本发明 的实施例在多播消息传送环境中订阅应用消息接收发布应用消息的通知, 并且响应于接收到发布应用消息的通知,增加代表用户对所述应用消息的 兴趣的计算机数据元素的值。当代表用户兴趣的值大于零时,消息传送中 间件(276)将具有在发布通知中指定的特性的应用消息提供给传输引擎 (278)以便传输到订阅客户端设备(210)。消息传送中间件(276)通常 从流管理服务器(212)接收发布通知。从转换模块(220)接收提供给传 输引擎(278)的应用消息。转换^^莫块(220)通过消息传送中间件(276) 暴露的消息传送中间件API (266)来与消息传送中间件(276)交互。
在图2的实例中,馈送适配器(208)还提供了停止在消息流上发布特 定应用消息以及停止转换用户不希望发布的消息的能力。也就是说,消息 传送中间件(276 )还通常通过以下操纵来根据本发明的实施例在多播消息 传送环境中订阅应用消息接收停止发布应用消息的通知,响应于接收到 停止发布应用消息的通知,减小代表用户对应用消息的兴趣的计算机数据 元素的值,判定代表用户对应用消息的兴趣的计算机数据元素的值是否低 于预定阈值,以及如果代表用户对应用消息的兴趣的计算机数据元素的值低于预定阈值,则通知数据提供者停止向消息发送设备提供应用消息。在
图2的实例中,将数据提供方实现为馈送源(213 )。当由于馈送适配器(208 ) 不再具有任何对应用消息感兴趣的用户而使代表用户兴趣的值低于零时, 馈送适配器(208)通知馈送源(213)停止提供应用消息。为了区分由馈 送适配器传输的各种类型的消息,馈送适配器可以具有多个值,每个值都 代表用户对特定类型的应用消息的兴趣。
图2的传输引擎(278)是工作在由国际标准化组织所提出的OSI协 议堆栈的传输和网络层的软件组件。传输引擎(278 )在联网的设备之间提 供数据通信服务。可以根据UDP/IP协议、PGM协议或任何其他本领域技 术人员将想到的数据通信协议来实现传输引擎。传输引擎(278 )是软件模 块,包括一组用于向订阅客户端设备(210 )发送应用消息的计算机程序指 令。图2的传输引擎(278)可以通过以下操纵来发送应用消息(240): 从消息传送中间件(276)接收应用消息,将消息传送中间件(276)提供 的应用消息封装成传输分组,以及通过消息流(280)向订阅客户端设备 (210 )发送分組。消息传送中间件(276 )通过传输引擎(278 )暴露的传 输API (268)来操作传输引擎(278)。
图2的示例性系统中的订阅客户端设备(210)通过有线连接(264) 连接到高速低等待时间数据通信网络(200)。图2的订阅客户端设备(210) 是能够订阅由各个馈送适配器发送的消息流的计算机设备。例如,在金融 市场数据环境中,订阅客户端设备可以订阅行情,以便在消息流(由金融 证券代理商控制的馈送适配器提供)上接收特定证券的出价和要价。
在图2的实例中,订阅客户端设备(210)上安装有应用(238)、消 息库(248 )、消息模型(244 )、消息传送中间件(252 )、流管理库(272 ) 以及传输引擎(256)。应用(238)是处理从馈送适配器(208)接收的应 用消息(240)中包含的数据的软件组件。应用(238)可以处理数据以供 订阅客户端设备(210 )自身使用、将所述数据提供给另一个馈送适配器、 或将所述数据用于其他设备。在金融市场数据环境中,安装在订阅客户端应用。所述应用还可以是增值应用,其向行情提供诸如特定证券的最佳买卖价格(通常未包含在馈送源(213)提供的行情中)之类的信息。然后, 订阅客户端设备可以将该行情发送给馈送适配器以重新销售给其他订阅客 户端设备。
应用(238)使用消息库(248)来处理包含在应用消息(240)中的数 据。消息库(248)是包含一组功能的软件模块,所述功能用于根据安装在 馈送适配器(208)和订阅客户端设备(210)两者上的消息模型(244)来 创建、访问和操纵消息(240)。应用(238)可通过消息库(248)暴露的 消息API ( 250 )来访问消息库(248 )。
订阅客户端设备(210)与流管理服务器(212)之间的通信可以使用 流管理库(272)来实现。流管理库(272)是一组包含在动态链接库或静 态链接库中的功能,所述库通过流管理库API(274)而可用于应用(238)。 通过流管理库(272),图2的订阅客户端设备(210)可以请求订阅来自 馈送适配器的消息、修改现有的消息订阅或取消订阅。流管理库(272)包 括一组用于才艮据本发明的实施例在消息传送环境中订阅应用消息的计算机 程序指令。流管理库(272 )通常通过以下操作来根据本发明的实施例在消 息传送环境中订阅应用消息请求流管理服务器(212 )初始化来自消息发 送设备(208 )的应用消息的消息订阅,在消息接收设备中从流管理服务器(212 )接收来自消息发送设备(208 )的多播消息流(280)的数据通信端 点,在数据通信端点处开始监听应用消息,以及在开始监听应用消息之后, 通知消息发送设备(208 )在数据通信端点处发布应用消息。当流管理库272)接收数据通信端点时,流管理库(272)除了接收数据通信端点以 外,还可以接收一个或多个备选数据通信端点。
流管理库(272 )也通常通过以下操作来根据本发明的实施例在消息传 送环境中订阅应用消息通知消息发送设备在数据通信端点处停止发布应 用消息,请求流管理服务器关闭消息订阅。由应用(238)使用的流管理库(272)的功能可以通过调用CORBA对象的成员方法、使用Java远程方 法调用("RMI" ) API调用远程对象的成员方法、使用Web服务,或本领域的技术人员将想到的任何其他通信实施方式来通过网络(200)与流管理服务器(212 )通信。
"CORBA"指公共对象请求代理体系结构,其是对象管理组("OMG")提出的用于可互操作企业应用的计算机工业规范。CORBA 是由OMG于1991年首次发布的用于远程过程调用的标准。CORBA可以 被认为是一种进行远程过程调用的面向对象的方法,尽管CORBA支持在 传统RPC中并不存在的特性。CORBA使用说明性语言(接口定义语言("IDL"))来描述对象的接口。 IDL中的接口描述被编辑以生成用于 客户端侧的"存根,,和用于服务器侧的"构架"。使用此生成的代码,在 面向对象的编程语言(如C+十或Java)中实现的远程方法调用看起来像本 地对象中的本地成员方法的调用。
javaTM远程方法调用API是用于执行由SunMicrosystemsTM发布的远 程过程调用的Java应用编程接口 。 JavaTM RMI API是一种在存在于单独 JavaTM虚拟机(通常在单独的计算机上运行)中的Java对象之间进行远程 过程调用的面向对象的方法。JavaTMRMI API使用远程过程对象接口来描 述位于服务器上的远程对象。在RMI注册表(其中Java客户端可以获得 对远程Java对象的远程接口的引用)中发布远程过程对象接口。通过使用 编辑的用于客户端侧的"存根"和用于服务器侧的"构架"来提供网络连 接操作,JavaTM RMI允许Java客户端像任何其他本地Java对象那样来访 问远程Java对象。
在应用(238 )处理包含在应用消息(240 )中的数据之前,应用(238 ) 从消息传送中间件(252)接收消息(240),消息传送中间件(252)又通 过传输引擎(256)从馈送适配器(208)接收应用消息(240)。消息传送 中间件(252)是在订阅客户端设备(210)、馈送适配器(208)、任何备 用馈送适配器,以及流管理模块(212 )之间提供高可用性服务的软件组件。 消息传送中间件(252 )通过从流管理库(272 )接收消息流(280)的数据 通信端点和一个或多个备选端点来提供此类高可用性服务。消息传送中间 件(252 )包括一组用于通过以下操作来根据本发明的实施例在多播消息传
送环境中订阅应用消息的计算机程序指令标识数据通信端点的故障状况, 以及响应于所述故障状况,从在数据通信端点处监听应用消息切换至在备选数据通信端点之一处监听应用消息。应用(238)和流管理库(272)通过消息传送中间件API (254)来与消息传送中间件(252)交互。
图2的传输引擎(256)是工作在由国际标准化组织提出的OSI协议 堆栈的传输和网络层中的软件组件。传输引擎(256)在联网设备之间提供数据通信服务。可以根据UDP/IP协议、PGM协议或本领域技术人员想到的任何其他数据通信协议来实现传输引擎。传输引擎(256)是用于从馈送 适配器(208)接收应用消息(240)的软件组件。传输引擎(256)通过以下操作来接收应用消息(240)通过消息流(280) 反馈送适配器(208) 接收传输分组,从接收的分组中解封装应用消息(240),以及向订阅客户端设备(210)的消息传送中间件(252 )提供应用消息(240)。在图2 的实例中,消息传送中间件(252)通过传输引擎(256)暴露的传输API (258)来操作传输引擎(256)。
在图2的示例性系统中示出的服务器和其他设备是用于说明而非进行 限制。用于在多播消息传送环境中订阅应用消息的设备可以使用通用计算机来实现,例如,计算机服务器或工作站、手持计算机设备如个人数字助理("PDA")或移动电话,或本领域技术人员所想到的任何其他根据本发明实施例的用于数据处理的自动化计算机器。
构成图2中所示的示例性系统的服务器和其他设备的布置是用于说明 而非进行限制。尽管到图2的网络(200)的连接是以有线连接来示出和描述的,但是读者将注意到,根据本发明的各种实施例,还可以使用无线连接。此外,用于根据本发明的各种实施例的数据处理系统可以包括本领域 技术人员将想到的未在图2中示出的额外服务器、路由器、其他设备和对等体系结构。此类数据处理系统中的网络可以支持多种数据通信协议,包括例如传输控制协议("TCP")、网际协议("IP")、超文本传输协 议("HTTP")、无线接入协议("WAP")、手持设M输协i义("HDTP") 以及其他本领域技术人员将想到的协议。除了图2中示出的以外,本发明的各种实施例还可以在多种硬件平台上实现。
在一些实施例中,根据本发明的在多播消息传送环境中订阅应用消息 可以使用 一个或多个消息接收设备、流管理服务器和消息发送设备来实现。 这些设备和服务器又在某种程度上至少可以作为计算机(即,自动化计算机器)来实现。因此,为了进一步说明,图3示出了才艮据本发明的实施例 的包括在多播消息传送环境中订阅应用消息中使用的示例性消息接收设备(300)的自动化计算机器的方块图。图3的消息接收设备(300)包括至 少一个计算机处理器(156)或"CPU",以及随机存取存储器(168)("RAM"),随M取存储器(168)通过高速存储器总线(166)和总 线适配器(158)连接到处理器(156)和消息接收设备的其他组件。
存储在RAM (168)中的是应用(238 )、消息(240 )、消息模型(244)、 消息库(248 )、消息传送中间件(252 )、流管理库(272 )和传输引擎(256)。 每个应用消息(240)都是一定量的包括一个或多个数据字段的数据,并在 消息流上从一个i殳备发送至另一个设备。如上所述,消息可以代表数字或 文本信息、图像、加密信息、计算机程序指令等。例如,在金融市场数据 环境中,消息通常被称为"行情,,并代表诸如金融才艮价或金融新闻之类的 金融市场数据。可以〗吏用结构化文档(如XML文档)、Java对象、C++ 对象或任何其他本领域技术人员将想到的实施方式来实现每个应用消息(240)。消息模型(244)是定义消息(240)的结构和格式的元数据。消 息模型(244)也可以使用结构化文档(如XML文档)、Java对象、C++ 对象或任何其他本领域技术人员将想到的实施方式来实现。图3所示的应 用(238)、消息库(248)、消息传送中间件(252)、流管理库(272) 和传输引擎(256 )是软件组件,所述软件组件是如上所述根据图2的订阅 客户端设备工作的计算机程序指令。
RAM (168)中还存储了操作系统(154)。根据本发明实施例的在消 息接收设备中使用的操作系统包括UNIXrM, LinuxTM, MicrosoftNTTM, IBM的AIXTM, IBM的i5/OSTM以及本领域技术人员将想到的其他操作系 统。图3的实例中的操作系统(154)、应用(238)、消息(240)、消息模型(244 )、消息库(248)、消息传送中间件(252 )和传输引擎(256 ) 示为在RAM(168)中,但是此类软件的许多组件通常还存储在非易失性 存储器中,例如存储在盘驱动器(170)上。
图3的示例性消息接收设备(300)包括总线适配器(158)、包含用 于高速总线的驱动电子设备的计算机硬件组件、前端总线(162)、视频总 线(164)和存储器总线(166),以及用于较慢的扩展总线(160)的驱动 电子设备。根据本发明实施例的用于消息接收设备的总线适配器的实例包 括Intel北桥、Intel存储器控制器集线器、Intel南桥以及Intel I/O控制器 集线器。根据本发明实施例的用于消息接收设备中的扩展总线的实例可以 包括外围组件互连("PCI")总线和PCI Express ( "PCIe")总线。
图3的示例性消息接收设备(300)还包括盘驱动器适配器(172), 其通过扩展总线(160)和总线适配器(158 )与示例性消息接收i殳备(300 ) 的处理器(156 )和其他组件相连。盘驱动器适配器(172 )以盘驱动器(170 ) 的方式将非易失性数据存储装置连接到示例性消息接收设备(300)。用于 消息接收设备中的盘驱动器适配器包括集成驱动器电子设备("IDE") 适配器、小型计算机系统接口 ( "SCSI")适配器,以及本领域技术人员 将想到的其他适配器。另外,对于消息接收设备,非易失性计算机存储器 可以实现为光盘驱动器、电可擦除可编程只读存储器(所谓的"EEPROM" 或"闪速"存储器)、RAM驱动器等,如本领域的技术人员将想到的。
图3的示例性消息接收设备(300)包括一个或多个输"输出("I/O") 适配器(178)。消息接收设备中的I/O适配器通过例如软件驱动器和计算 才;u更件来实现面向用户的输7W输出,以便控制到显示设备(如计算机显示 屏)的输出以及来自用户输入设备(181)(如键盘和鼠标)的用户输入。 图3的示例性消息接收设备(300)包括视频适配器(209),后者是专用 于向显示设备(180 )(如显示屏或计算机监视器)进行图形输出的I/O适 配器的一个实例。视频适配器(209)通过高速视频总线(164)、总线适 配器(158)和前端总线(162 )(其也是高速总线)连接到处理器(156)。
图3的示例性消息接收设备(300)包括用于与其他计算机(182)进
行数据通信以及与高速低等待时间数据通信网络(200 )进行数据通信的通 信适配器(167)。可以串行地通过RS-232连接、通过如通用串行总线 ("USB")之类的外部总线、通过如IP数据通信网络之类的数据通信网 络以及本领域技术人员将想到的其他方式来实现此类数据通信。通信适配 器实现硬件级别的数据通信,通过通信适配器, 一台计算机直接地或通过 数据通信网络向另 一台计算机发送数据通信。用于根据本发明实施例的在 多播消息传送环境中订阅应用消息的通信适配器的实例包括用于有线拨号 通信的调制解调器、用于有线数据通信网络通信的IEEE 802.3以太网适配 器,以及用于无线数据通信网络通信的IEEE 802.11b适配器。
尽管参考示例性消息接收设备讨论了图3,但是读者应注意到,用于 实现根据本发明实施例的用于在多播消息传送环境中订阅应用消息的示例 性流管理服务器和示例性消息发送设备的自动化计算机器与图3的示例性 消息接收设备(300)是类似的。也就是说,此类示例性流管理服务器和馈 送适配器包括一个或多个处理器、总线适配器、总线、RAM、视频适配器、 通信适配器、I/O适配器、盘驱动器适配器以及其他本领域技术人员将想 到的与图3的示例性消息接收设备(300)类似的組件。
为了进一步说明,图4是示出了根据本发明的实施例的在多播消息传 送环境中订阅应用消息的示例性方法的流程图。图4的方法包括由消息接 收设备请求流管理服务器(400)初始化来自消息发送设备的应用消息的消 息订阅。消息接收设备可以通过向流管理服务器发送订阅初始化请求(402 ) 来请求(400 )流管理服务器初始化来自消息发送设备的应用消息的消息订 阅。订阅初始化请求(402)可以作为XML文档、对消息接收设备上的 RMI对象的成员方法调用,或任何其他本领域技术人员将想到的实施方式 来实现。例如,考虑以下实现为RMI对象的成员方法的示例性订阅初始化 请求
endpoint * initialize—subscription (string topic);
示例性功能"initialize_subscription"指示流管理服务器初始化应用消 息(具有由"topic"的值定义的特性)的消息订阅。示例性功能"initialize—subscription"向计算机存储器地址(该处存在代表数据通信端 点的数据结构)返回指针。读者应注意,上述示例性功能是为了说明而不 是进行限制。实际上,本领域技术人员将想到的其他示例性功能也可以用 于根据本发明实施例的在多播消息传送环境中订阅应用消息。
图4的订阅初始化请求(402 )包括消息接收设备请求从消息发送设备 接收的应用消息的主题(414 )。主题代表消息接收设^^请求接收的消息的 特性。每个应用消息通常都包括描述包含在应用消息中的信息的主题数据 字段。通过使用主题,消息接收设备可以指定该消息接收设备请求从消息 发送设备接收的消息的组。例如,在金融市场数据环境中,消息接收设备 可以使用主题来请求从OPRA馈送源接收行情,该行情包含在芝加哥期权 交易所("CBOE")上交易的IBM期权的报价,其包括在CBOE上的 IBM期权的最佳买卖价格。
图4的订阅初始化请求(402)还包括用于消息接收设备的安全证书
(416)。作为初始化消息订阅的一部分,流管理服务器通常对消息接收设 备的身份进行认证,并判定消息接收设备是否被授权接收所请求的应用消 息。安全证书(416)可以实现为公共密钥基础设施中的数字签名、安全令
起者的身份进行认证的安全数据,安全令牌的实例可以包括在由IBM, Microsoft和VeriSign开发的名为"Web服务安全"("WS-Security") 的Web月良^H^范或由IBM, Microsoft, VeriSign, OpenNetworks, Layer 7, Computer Associates, BEA, Oblix, Reactivity, RSA Security, Ping Identity和Actional开发的名为"Web服务信任语言"("WS-Trust") 的Web服务规范中描述的那些安全令牌。
如果流管理服务器判定消息接收设备被授权接收所请求的应用消息, 则流管理服务器然后可以继续对订阅初始化请求(402 )中指定的应用消息 的消息订阅进行初始化。也就是说,流管理服务器可以创建或修改流管理 服务器中用于管理消息订阅的数据结构,并在流管理服务器上启动用于执 行消息订阅管理的过程。流管理服务器还可以标识和操纵用于管理消息发送设备的服务提供方,从一个或多个消息发送设备获得网络地址(消息发送设备将向其发送在订阅初始化请求(402)中指定的应用消息),以及执 行任何其他本领域技术人员将想到的订阅初始化。
图4的方法还包括在消息接收设备中从流管理服务器接收(404 )来自 消息发送设备的多播消息流的数据通信端点(406)。数据通信端点(406) 代表包括网络地址(消息接收设备可以在该处监听来自消息发送设备的应 用消息)的数据结构。如上所述,流管理服务器通常获取消息接收设备可 以在该处监听来自消息发送设备的应用消息的网络地址。图4的通信端点(406)可以根据UDP/IP协议、PGM协议或任何其他本领域技术人员将 会想到的数据通信协议来实现。
图4的方法还包括由消息接收i殳备开始在数据通信端点(406)处监听(408 )应用消息。消息接收设备可以通过调用安装在消息接收设备(开始 在端点(406)处监听应用消息)上的传输引擎的传输引擎API的功能, 来开始根据图4的方法在数据通信端点(406)处监听(408)应用消息。 考虑以下用于根据本发明实施例在多播消息传送环境中订阅应用消息的示 例性功能
buffer * transport—listen (int endpoint一ID);
示例性功能"transport一listen"指示消息接收设备的传输引擎在由 "endpoint一ID"的值标识的数据通信端点处监听应用消息。示例性功能 "transportjisten"返回计算机存储器中用于緩冲器的地址,传输引擎将 通过数据通信端点接收的应用消息;故置在该緩冲器中。读者将注意到,上 述示例性功能是为了说明而不是为了进行限制。实际上,本领域技术人员 将想到的其他示例性功能也可以用于根据本发明实施例的在多播消息传送 环境中订阅应用消息。
图4的方法还包括在开始监听应用消息之后,由消息接收设备通知 (410)消息发送设备在数据通信端点处发布应用消息。在开始监听应用消 息之后,消息接收设备可以通过向流管理服务器发送消息发布通知(412 ), 来通知(410 )消息发送设备根据图4的方法在数据通信端点处发布应用消
息。流管理服务器随后又可以指示消息发送设备在数据通信端点(406)中 指定的网络地址处发布消息。消息发布通知(412 )可以实现为XML文档、 对消息接收设备上的RMI对象的成员方法的调用,或任何其他本领域技术 人员将想到的实施方式。读者将注意到,在消息接收设备开始监听应用消 息之后通知消息发送设备发布应用消息,有利地确保了消息接收设备不会 丟失在初始化订阅后发送的第 一个消息。
通常在多播消息传送环境中,会在消息发送设备上产生故障,这会阻 止设备正确地向消息接收设备发送应用消息。当发生此类故障时,消息接 收设备可以从在一个数据通信端点处监听来自故障消息发送设备的应用消 息切换为在备选数据通信端点处监听来自另 一个消息发送设备的应用消 息。因此,为了进一步说明,图5是示出了根据本发明实施例的在多播消 息传送环境中订阅应用消息的进一步示例性方法的流程图,所述方法包括 响应于故障状况(506),消息接收设备从在数据通信端点(406)处监听 应用消息切换为(508)在备选^:据通信端点(502)处监听应用消息。
图5的方法与图4的方法类似。也就是说,图5的方法包括消息接 收设备请求(400 )流管理服务器初始化来自消息发送设备的应用消息的消 息订阅;在消息接收设备中从流管理服务器接收(404)来自消息发送设备 的多播消息流的数据通信端点(406);消息接收设备开始在数据通信端点 处监听(408)应用消息;以及在开始监听应用消息之后,由消息接收设备 通知(410)消息发送设备在数据通信端点处发布应用消息。图5的实例还 与图4的实例的类似之处在于,图5的实例包括订阅初始化请求(402)和 消息发布通知(412)。
在图5的方法中,从消息发送设备接收(404)多播消息流的数据通信 端点(406)包括除了接收数据通信端点以外,还接收(500) —个或多个 备选数据通信端点(502)。每个备选数据通信端点(502)都代表包括网 络地址的数据结构,消息接收设备将在所述地址处监听来自备选消息发送 设备的应用消息。如上所述,流管理服务器通常获取消息接收设备可以在 该处监听来自备选消息发送设备的应用消息的网络地址。图4的数据通信端点(406)可以根据UDP/IP协议、PGM协议或任何其他本领域技术人 员将想到的数据通信协议来实现。
图5的方法还包括由消息接收设备标识(504)数据通信端点(406) 的故障状况(506)。故障状况(506) 4戈表数据通信终端(406)的一组约 束,其指示消息接收设备何时应切换至备选端点(502)。例如,如果在一 段预定时间之后,没有从端点(406)接收到消息,则故障状况(506)可 以指定消息接收设备应切换到备选端点。为了进一步说明,当消息接收设 备从消息发送设备接收到故障通知消息时,故障状况(506)可以指定消息 接收设备应切换至备选端点。消息接收设备可以通过定期判定是否出现数 据通信端点(406)的故障状况(506)的约束条件,来才艮据图5的方法确 定(504 )数据通信端点(406)的故障状况(506)。如果出现故障状况(506 ) 的任何约束条件,则消息接收设备确定了故障状况(506)。
图5的方法还包括响应于故障状况(506),消息接收设备从在数据通 信端点(406)处监听应用消息切换为(508)在备选数据通信端点(502) 之一处监听应用消息。所述消息接收设备可以通过以下操纵来根据图5的 方法从在数据通信端点(406)处监听应用消息切换(508)为在备选数据 通信端点(502 )之一处监听应用消息调用来自安装在消息接收设备上的 传输引擎的传输引擎API的功能,所述功能停止在端点(406)处监听应 用消息并开始在备选端点(502)之一处监听应用消息。例如,考虑以下示 例性的用于根据本发明实施例在多播消息传送环境中订阅应用消息的功 能<formula>complex formula see original document page 25</formula>
示例性功能"transport_stop_listen"指示消息接收设备的传输引擎停 止在由"endpoint一ID"的值标识的数据通信端点处监听应用消息。如上所 述,示例性功能"transport—listen"指示消息接收设备的传输引擎在由 "endpoint_ID"的值标识的数据通信端点处监听应用消息。示例性功能 "transport—listen"返回计算机存储器中用于緩冲器的地址,传输引擎将通过数据通信端点接收的应用消息放置在该緩冲器中。读者将注意到,上 述示例性功能是为了说明而不是为了进行限制。实际上,本领域技术人员 将想到的其他示例性功能也可以用于根据本发明实施例的在多播消息传送 环境中订阅应用消息。
在金融市场数据环境中,消息发送设备通常实现为馈送适配器,所述 馈送适配器能够将来自馈送源的具有第一格式的应用消息转换为具有第二 格式的应用消息,以便传输到诸如订阅客户端设备的消息接收设备。运行 馈送适配器的金融成4^艮大程度上取决于馈送适配器从馈送源接收的应用 消息的数量。因此,馈送适配器仅接收该馈送适配器已订阅的应用消息是 有利的。这样,馈送适配器监视由馈送适配器发送的每种类型的应用消息的用户数量。因此,为了进一步说明,图6是示出了才艮据本发明实施例的 在多播消息传送环境中订阅应用消息的进一步示例性方法的流程图,所述 方法包括响应于接收到发布应用消息的通知(412),消息发送设备增加(602)代表用户对应用消息的兴趣的计算机数据元素的值(604)。
图6的方法与图4的方法类似。也就是说,图6的方法包括消息接 收设备请求(400 )流管理服务器初始化来自消息发送设备的应用消息的消 息订阅;在消息接收设备中从流管理服务器接收(404)来自消息发送设备 的多播消息流的数据通信端点(406);消息接收设备开始在数据通信端点 处监听(408)应用消息;以及在开始监听应用消息之后,消息接收设备通 知(410)消息发送设备在数据通信端点(406)处发布应用消息。图6的 实例还与图4的实例的类似之处在于图6的实例包括订阅初始化请求(402)和消息发布通知(412)。
图6的方法还包括在消息发送设备中接收(600)发布应用消息的通知(412 )。消息发送设备可以通过消息管理服务器从消息发送设备或直接从 消息发送设备自身来接收(600)消息发布通知(412)。通常,流管理服 务器或消息发送设备通过可管理的数据通信连接来向消息发送设备发送消 息发布通知(412),该数据通信连接使用UDP/IP、 TCP/IP或任何其他 本领域技术人员将想到的数据通信协议来实现。
图6的方法还包括响应于接收到发布应用消息的通知(412),消息发 送设备增加(602 )代表用户对应用消息的兴趣的计算机数据元素的值 (604)。消息发送设备可以根据图6的方法,通过为每个接收的消息发布 通知(412 )将值(604)递增1来增加(602 )值(604)。通过使用值(604), 消息发送设备可以监视由设备所发送的应用消息的用户的数量。
图6的方法描述了消息发送设备对接收消息发布通知的响应。现在转 到图7:图7描述了消息发送设备对接收到停止发布应用消息的通知的响 应。因此,图7是示出了根据本发明实施例的在多播消息传送环境中订阅 应用消息的进一步示例性方法的流程图,所述方法包括消息接收设备通 知(700 )消息发送设备在数据通信端点处停止发布应用消息。消息接收设 备可以通过向流管理服务器发送停止发布通知(702 )来根据图7的方法通 知(700)消息发送设备在数据通信端点处停止发布应用消息。流管理服务 器然后又可以指示消息发送设备停止在数据通信端点中指定的网络地址处 发布消息。停止发布通知(702)可以使用XML文档、对消息接收设备上 的RMI对象的成员方法的调用,或任何其他本领域4支术人员将想到的实施 方式来实现。
图7的方法还包括在消息发送设备中接收(704 )停止发布应用消息的 通知(702)。消息发送设备可以通过消息管理服务器从消息发送设备或直 接从消息发送设备自身来接收(704)停止发布通知(702)。通常,流管 理服务器或消息发送设备通过可管理的数据通信连接来向消息发送设备发 送停止发布通知(702),所述数据通信连接使用UDP/IP、 TCP/IP或任 何其他本领域技术人员将想到的数据通信协议来实现。
图7的方法包括响应于接收到停止发布应用消息的通知,消息发送设 备减小(706 )代表用户对应用消息的兴趣的计算机数据元素的值(604)。 消息发送设备可以根据图7的方法,通过为每个接收的停止发布通知(412) 将值(604)递减1来减小(706)值(604 )。
图7的方法还包括由消息发送设备判定(710 )代表用户对应用消息的 兴趣的计算机数据元素的值(604)是否低于预定阁值(712)。预定阈值(712 )代表用于确定消息发送设备应何时通知数据提供者停止提供应用消 息的值。通常,将预定阔值(712)设置为1。消息发送设备可以通过将值
(604)与预定阈值(712)相比较来判定(710)值(604)是否低于预定 阈值(712)。如果值(604)小于预定阔值(712),则值(604)低于预 定阈值(712)。如果值(604)大于或等于预定阈值(712),则值(604) 不低于预定阈值(712)。
图7的方法包括如果代表用户对应用消息的兴趣的计算机数据元素的 值(604 )低于预定阈值(712 ),则消息发送设备通知(714 )数据提供者 停止向消息发送设备提供应用消息。消息发送设备可以根据图7的方法, 通过向数据提供者发送停止数据通知(716)来通知(714)数据提供者停 止向数据发送设备提供应用消息。消息发送设备通常通过管理消息流向数 据提供者发送停止数据通知(716),该管理消息流使用UDP/IP、 TCP/IP 或任何其他本领域技术人员将想到的数据通信连接来实现。停止数据通知
(716 )可以作为XML文档、对消息发送设备上的RMI对象的成员方法 的调用,或任何其他本领域技术人员将想到的实施方式来实现。读者将注 意到,在代表用户对应用消息的兴趣的计算机数据元素的值(604)低于预 定阈值(712)的情况下通知(714)数据提供者停止向消息发送设备提供 应用消息,有利地防止了消息发送设备要求重传消息接收设备未订阅的应 用消息。
图7的方法还包括消息接收设备请求(718)流管理服务器关闭消息订 阅,而不管值(604)是否低于预定阈值(712)。消息接收设备可以根据 图7的方法,在通知消息发送设备停止发布应用消息之后,请求(718)流 管理服务器关闭消息订阅。根据图7的方法的请求(718)流管理服务器关 闭消息订阅使流管理服务器能够重新分配任何用于初始化和管理消息接收 设备的消息订阅的计算机资源。
消息接收设备可以通过调用安装在消息接收设备上的流管理库的关闭 消息订阅的API的功能,而才艮据图7的方法来请求(718)流管理月l务器 关闭消息订阅。例如,考虑以下示例性的用于根据本发明实施例在多播消息传送环境中订阅应用消息的功能
void close subscription (int subscription ID);
示例性功能"close_subscription "指示流管理服务器关闭由 "subscription—ID"的值标识的消息订阅。示例性功能"close_subscription" 可以是在消息接收设备上实例化的远程Java RMITM对象或CORBA对象 的一部分。读者将注意到,上述示例性功能是用于说明而不是进行限制。 实际上,本领域技术人员将想到的其他示例性功能也可以用于根据本发明 的实施例在多播消息传送环境中订阅应用消息。
鉴于本文的上述说明,读者将认识到,根据本发明实施例的在多播消 息传送环境中订阅应用消息将提供以下益处
在多播消息传送环境中初始化订阅后,防止消息接收设备丟失所 发送的第一个消息的增强的能力,以及
防止消息发送设备要求重传消息发送设备未订阅的应用消息的能力。
主要在用于在多播消息传送环境中订阅应用消息的完整功能计算机系 统的上下文中描述了本发明的示例性实施例。但是,本领域的读者将认识 到,本发明也可以包含在计算机程序产品中,所述计算机程序产品布置在 与任何适当数据处理系统一起使用的信号承载介质上。此类信号承载介质 可以是用于机器可读信息的传输介质或可记录介质,包括磁介质、光介质 或其他合适的介质。可记录介质的实例包括硬盘驱动器中的磁盘或软盘、 用于光学驱动器的光盘、磁带和本领域技术人员将想到的其他介质。传输 介质的实例包括用于语音通信的电话网和数字数据通信网络,例如 EthernetsTM和使用网际协议和万维网通信的网络,以及无线传输介质,例 如根据IEEE 802.11规范族实现的网络。本领域的技术人员将立即认识到, 任何具有合适的编程装置的计算机系统都能够执行包含在程序产品中的本 发明的方法的步骤。本领域的技术人员将很快认识到,尽管在说明书中描 述的一些示例性实施例面向安装在计算机硬件上并在其上执行的软件,但是作为固件或硬件实现的备选实施例也在本发明的范围之内。
从前面的描述应当理解,可以对本发明的各个实施例进行修改和更改 而不偏离本发明的真实精神。本说明书中的描述只是出于示例并且不应在限制的意义上理解。本发明的范围仅由以下权利要求的语言来限定。
权利要求
1.一种在多播消息传送环境中订阅应用消息的方法,所述方法包括由消息接收设备请求流管理服务器初始化对来自消息发送设备的应用消息的消息订阅;在所述消息接收设备中从所述流管理服务器接收来自所述消息发送设备的多播消息流的数据通信端点;由所述消息接收设备开始在所述数据通信端点处监听所述应用消息;以及在开始监听所述应用消息之后,由所述消息接收设备通知所述消息发送设备在所述数据通信端点处发布所述应用消息。
2. 根据权利要求l所述的方法,其中接收数据通信端点进一步包括除 了接收所述数据通信端点以外,还接收一个或多个备选数据通信端点,并 且所述方法还包括由所述消息接收设备标识所述数据通信端点的故障状况;响应于所述故障状况,所述消息接收设备从在所述数据通信端点处监听所述应用消息切换为在所述备选数据通信端点之一处监听所述应用消息。
3. 根据权利要求l所述的方法,还包括 在所述消息发送设备中接&良布所述应用消息的通知;以及响应于接收到所述发布应用消息的通知,由所述消息发送设备增加代 表用户对所述应用消息的兴趣的计算机数据元素的值。
4. 根据权利要求l所述的方法,还包括由所述消息接收设备通知所述 消息发送设备停止在所述数据通信端点处发布所述应用消息。
5. 根据权利要求l所述的方法,还包括 在所述消息发送设备中接收停止发布应用消息的通知; 响应于接收到所述停止发布应用消息的通知,所述消息发送设备减小代表用户对所述应用消息的兴趣的计算机数据元素的值;所述消息发送设备判定所述代表用户对所述应用消息的兴趣的计算机数据元素的值是否低于预定阈值;以及如果所述代表用户对所述应用消息的兴趣的计算机数据元素的值低于 所述预定阈值,则所述消息发送设备通知数据提供者停止向所述消息发送 设备提供所述应用消息。
6. 根据权利要求l所述的方法,还包括由所述消息接收设备请求所述 流管理服务器关闭所述消息订阅。
7. 根据权利要求1所述的方法,其中所述应用消息包括金融市场数据。
8. —种在多播消息传送环境中订阅应用消息的系统,所述系统包括一 个或多个计算机处理器、可操作地连接到所述一个或多个计算机处理器的 计算扭存储器,所述计算机存储器中布置有计算机程序指令,所述计算机 程序指令能够执行以下步骤由消息接收设备请求流管理服务器初始化对来自消息发送设备的应用 消息的消息订阅;在所述消息接收设备中从所述流管理服务器接收来自所述消息发送设 备的多播消息流的数据通信端点;由所述消息接收设备开始在所述数据通信端点处监听所述应用消息;以及在开始监听所述应用消息之后,由所述消息接收设备通知所述消息发 送设备在所述数据通信端点处发布所述应用消息。
9. 根据权利要求8所述的系统,还包括能够执行以下步骤的计算机程 序指令在所述消息发送设备中接收发布所述应用消息的通知;以及 响应于接收到所述发布应用消息的通知,由所述消息发送设备增加代 表用户对所述应用消息的兴趣的计算机数据元素的值。
10. 根据权利要求8所述的系统,还包括能够执行以下步骤的计算机 程序指令由所述消息接收设备通知所述消息发送设备停止在所述数据通 信端点处发布所述应用消息。
11. 根据权利要求8所述的系统,还包括能够执行以下步骤的计算机 程序指令在所述消息发送设备中接收停止发布应用消息的通知;响应于接收到所述停止发布应用消息的通知,所述消息发送设备减小 代表用户对所述应用消息的兴趣的计算机数据元素的值;所述消息发送设备判定所述代表用户对所述应用消息的兴趣的计算机 数据元素的值是否低于预定阈值;以及如果所述代表用户对所述应用消息的兴趣的计算机数据元素的值低于 所述预定阈值,则所述消息发送设备通知数据提供者停止向所述消息发送 设备提供所述应用消息。
12. 根据权利要求8所述的系统,还包括能够执行以下步骤的计算机 程序指令由所述消息接收设备请求所述流管理服务器关闭所述消息订阅。
13. 根据权利要求8所述的系统,其中接收数据通信端点进一步包括 除了接收所述数据通信端点以外,还接收一个或多个备选数据通信端点, 所述系统还包括能够执行以下步骤的计算机程序指令由所述消息接收设备标识所述数据通信端点的故障状况; 响应于所述故障状况,所述消息接收设备从在所述数据通信端点处监 听所述应用消息切换为在所述备选数据通信端点之一处监听所述应用消
全文摘要
本发明涉及一种在多播消息传送环境中订阅应用消息的方法和系统,包括由消息接收设备请求流管理服务器初始化对来自消息发送设备的应用消息的消息订阅;在所述消息接收设备中从所述流管理服务器接收来自所述消息发送设备的多播消息流的数据通信端点;由所述消息接收设备开始在所述数据通信端点处监听所述应用消息;以及在开始监听所述应用消息之后,由所述消息接收设备通知所述消息发送设备在所述数据通信端点处发布所述应用消息。
文档编号H04L12/18GK101202642SQ20071019996
公开日2008年6月18日 申请日期2007年11月14日 优先权日2006年12月12日
发明者K·S·博加尔, K·W·博根达勒, P·D·刘易斯, R·拉维桑卡尔, 王正平 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1