首页> 中国专利> 在高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器

在高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器

摘要

本发明公开了在高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的方法、装置和产品,其包括:由流管理服务器安排从主动馈送适配器建立到订阅客户设备的主动消息流,主动消息流能够通信主动应用消息;由服务器安排从备用馈送适配器建立到客户设备的备用消息流,备用消息流能够通信备用应用消息;在备用适配器的备用消息传送中间件中接收来自主动适配器的主动消息传送中间件的主动馈送适配器状态;由备用馈送适配器确定备用馈送适配器状态是否与主动馈送适配器状态同步;并由备用馈送适配器依据该确定来管理备用适配器的工作。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-12-21

    授权

    授权

  • 2009-08-05

    实质审查的生效

    实质审查的生效

  • 2009-06-10

    公开

    公开

说明书

技术领域

本发明的领域是数据处理,或者更明确地,是在高速、低等待时间数据通信环境中用于同步主动(active)馈送适配器和备用(backup)馈送适配器的方法、设备和产品。

背景技术

消息传送环境通常用于利用应用消息在消息发送设备和消息接收设备之间提供数据通信。应用消息是包括一个或多个数据区并从安装在消息发送设备上的消息产生器传送到安装在消息接收设备上的消息使用者的一些数据。应用消息具有由在数据通信协议栈的应用层中运行的应用软件识别的消息形式—例如与分别在传输层和网络层中识别的消息形式的传输消息或网络消息相对照。应用消息可以表示例如数字或文本信息、图像、加密信息和计算机程序指令。

消息传送环境可以支持点对点消息传送,发布和订阅消息传送,或对两者都支持。在点对点消息传送环境中,消息产生器可以向单个消息使用者提供应用消息。在发布和订阅消息传送环境中,消息产生器可以向特殊信道或主题发布应用消息,而订阅该信道或主题的任何消息使用者都接收消息。由于消息产生器和消息使用者在发布和订阅环境中经由信道或主题相互之间并非直接通信,所以消息发送与消息接收分开。因此,产生器和使用者都不需要保存关于彼此的状态,并且交互的参与者之间的依赖性被减小或消除。因此,发布和订阅环境可以允许消息发布者和消息订户异步工作。

为了进一步解释消息传送环境,图1显示方块图,示出用于数据通信的典型消息传送环境,包括消息发送设备(100)、消息接收设备(104)和消息管理服务器(102)。消息发送设备(100)是计算机设备,具有安装于其上的消息产生器(110)、配置用于将应用消息发送给消息管理服务器(102)以便传递给消息接收设备的一组计算机程序指令。在图1的例子中,消息产生器(110)在消息流(106)上将应用消息发送给消息管理服务器(102)。消息发送设备(100)可以通过由消息发送设备自身的数据或从其他一些源接收到的数据产生应用消息来产生要发送的消息。消息接收设备(104)是计算机设备,具有安装于其上的消息使用者(112)、配置用于接收来自消息管理服务器(102)的应用消息的一组计算机程序指令。在图1的例子中,消息使用者(112)在消息流(108)上接收来自消息管理服务器(102)的应用消息。在图1的例子中,消息流(106)和消息流(108)是使用例如用户数据报协议(“UDP”)和因特网协议(“IP”)实现的数据通信信道。

在点对点消息传送环境或发布和订阅消息传送环境中,从消息发送设备发送给消息接收设备的应用消息通常经过消息管理服务器(102)。消息管理服务器(102)是计算机设备,具有安装于其上的消息管理模块(114)、配置用于管理从消息产生器(110)发送到消息使用者(112)的消息的计算机程序指令。消息管理模块的例子可以包括 MQ,来自Sun Microsystem的开放式消息队列(OpenMessage Queue),和来自The OpenJMS Group的开放式Java消息服务)(OpenJMS)。在点对点消息传送环境中,当消息管理模块(114)收到由不同消息提供者提交给使用者(112)的应用消息时,消息管理模块(114)为消息使用者(112)提供消息队列。在发布和订阅消息环境中,消息管理模块(114)对消息产生器发布和消息使用者订阅的不同信道或主题进行管理。在任一消息环境中,消息管理模块(114)还可以提供安全服务,以确保只有从消息产生器(110)到达消息使用者(112)的消息是消息使用者(112)被授权接收且消息产生器(110)被授权发送的那些消息。另外,在消息产生器(110)上发生错误的情况下,消息管理模块(114)还可以将来自备用消息产生器的备用消息协调提供给消息使用者。(IBM和WebSphere是在美国、其他国家、或两者国内的国际商业机器公司(International Business Machines Corporation)的注册商标;其他公司、产品或服务名称可能是其他的商标或服务标记)

例如参考诸如图1在以上描述的消息传送环境的当前消息环境具有某些缺点。由消息发送设备发送给消息管理服务器、用于传递给消息接收设备的应用消息在消息管理服务器中被延迟,直到消息管理服务器能够处理该消息。消息管理服务器中发生的消息处理增加了消息传送环境的整体消息传送等待时间并降低了在数据通信环境中用于发送数据的整体速度。消息传送等待时间是开始于消息产生器发送应用消息而结束于消息使用者接收应用消息的时间段。

在许多数据通信环境中,即使消息传送等待时间的轻微增加也是代价昂贵。例如,考虑金融市场数据环境。金融市场数据环境是用于通信关于金融市场和金融市场的参与者的信息的数据处理环境。在金融市场数据环境中,应用消息一般被称为“分笔成交消息(tick)”并表示金融市场数据,例如金融报价或金融新闻。金融报价包括对任何给定金融证券的出价和要价。“出价”是指买方愿意为证券支付的最高价格。“要价”是指卖方愿意为证券接受的最低价格。在金融市场数据环境中,消息产生器可以基于实时金融市场状况为金融证券的买卖提供报价,而消息使用者可以基于金融报价来买卖金融证券。当消息使用者基于由消息产生器提供的报价买卖金融证券时,消息使用者为金融证券在报价中获得出价或要价的能力受到金融市场数据环境中消息传送等待时间的很大影响。消息传送等待时间越长,越不可能在金融报价中报出的价格处或附近执行由消息使用者产生的买卖命令。实际上,高度不稳定的证券在价格方面可能在几秒钟的时间段内显著波动。

减少消息传送等待时间的现有解决方案是从消息传送环境中去除消息管理服务器。在这种现有解决方案中,消息发送设备把应用消息直接发送给消息接收设备。这种现有解决方案的缺点在于去除消息管理服务器就从消息传送环境中去除了由消息管理服务器提供的管理功能。因此,现有解决方案在需要消息管理服务器的管理功能的消息传送环境中不能有效提供解决方案。再次考虑上述的金融市场数据环境例子,在这种示例性金融市场数据环境中,考虑消息接收设备仅被授权接收某些金融证券的金融报价,或仅被授权接收至少15分钟之前的金融报价。从这种金融市场数据环境中去除消息管理服务器就去除了在金融市场数据环境中对由消息接收设备接收的来自消息发送设备的消息进行管理的能力。

现有消息传送环境的另外的缺点,例如参考图1在以上描述的例子包含一种情形,其中消息管理服务器接收来自主动消息发送设备和备用消息发送设备两者的应用消息,以便在主动消息发送设备出故障的情况下提供冗余。在现有消息传送环境中从主动消息发送设备故障转移到备用消息发送设备常常花费许多秒并导致整体消息传送等待时间实际增加。这样,很需要改进现有技术。

发明内容

本发明公开了在高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的方法、装置和产品,其包括:由流管理服务器安排从主动馈送适配器建立到订阅客户设备的主动消息流,主动馈送适配器的特征在于主动馈送适配器状态,主动消息流能够把主动应用消息通信给订阅客户设备,每个主动应用消息的特征在于主动源流序列号和主动消息序列号;由流管理服务器安排从备用馈送适配器建立到订阅客户设备的备用消息流,备用馈送适配器的特征在于备用馈送适配器状态,备用消息流能够把表示主动应用消息的复制的备用应用消息通信给订阅客户设备,每个备用应用消息的特征在于备用源流序列号和备用消息序列号;在备用馈送适配器的备用消息传送中间件(messaging middleware)中接收来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态;由备用馈送适配器确定备用馈送适配器状态是否与主动馈送适配器状态同步;由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理备用馈送适配器的工作。

附图说明

本发明的示例性实施例将仅仅作为例子并参考附图进行描述:

图1显示方块图,示出用于数据通信的典型消息传送环境。

图2显示网络和方块图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的示例性计算机数据处理系统。

图3显示自动计算机器的方块图,包括在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的订阅客户设备的例子。

图4显示流程图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的示例性方法。

图5显示流程图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的另一种示例性方法。

图6显示流程图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的又一种示例性方法。

图7显示流程图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的再一种示例性方法。

图8显示流程图,示出在根据本发明示例性实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的再一种示例性方法。

相同的附图标记通常表示本发明示例性实施例的相同部分。

具体实施方式

从图2开始,参考附图描述在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的示例性方法、装置和产品。图2显示网络和方块图,示出在根据本发明实施例的高速、低等待时间数据通信环境(201)中用于同步主动馈送适配器和备用馈送适配器的示例性计算机数据处理系统。图2的系统通常工作在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器,如下所述:流管理服务器(212)安排从主动馈送适配器(208)建立到订阅客户设备(210)的主动消息流(280),其中主动馈送适配器(208)的特征在于主动馈送适配器状态。馈送适配器状态是馈送适配器在任何给定时刻用于执行数据处理的计算机存储器中值的集合。主动消息流(280)能够把主动应用消息通信给订阅客户设备(210),其中每个主动应用消息的特征在于主动源流序列号和主动消息序列号。流管理服务器(212)安排从备用馈送适配器(206)建立到订阅客户设备(210)的备用消息流(282),其中备用馈送适配器(206)的特征在于备用馈送适配器状态。备用消息流(282)能够把表示主动应用消息的复制的备用应用消息通信给订阅客户设备。每个备用应用消息的特征在于备用源流序列号和备用消息序列号。备用馈送适配器(206)的备用消息传送中间件(277)接收来自主动馈送适配器(208)的主动消息传送中间件(276)的主动馈送适配器状态。备用馈送适配器(206)确定备用馈送适配器状态是否与主动馈送适配器状态同步。备用馈送适配器(206)依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理备用馈送适配器(206)的工作。

图2中示出的高速、低等待时间数据通信环境(201)包括高速、低等待时间数据通信网络(200)。网络(200)包括主动馈送适配器(208)、备用馈送适配器(206)、流管理服务器(212)和订阅客户设备(210),以及将这些设备(206,208,212,210)连接在一起用于数据通信的基础设施。图2的网络(200)被称为“高速、低等待时间”,这是因为在与网络(200)相连的设备之间在由流管理服务器(212)管理的消息流上发送的应用消息旁路通过流管理服务器(212)。例如,在主动消息流(280)上从主动馈送适配器(208)到订阅客户设备(210)的应用消息旁路通过流管理服务器(212)。类似地,在备用消息流(282)上从备用馈送适配器(206)到订阅客户设备(210)的应用消息旁路通过流管理服务器(212)。虽然对于流管理服务器(212)中的处理而言这种消息不被延迟,但是流管理服务器(212)在与高速、低等待时间数据通信网络(200)相连的设备之间保留对流(280,282)的管理。

进一步有助于网络(200)的“高速、低等待时间”性,读者将注意到网络(200)不包括路由器,其是一种计算机网络设备,主要功能是将数据包向前传送到它们的目的地。相反,每个设备(206,208,212,210)通过与连接到网络(200)的其它设备直接连接来提供它自身用于数据通信的路由功能。因为网络(200)不包括专用于路由数据包的计算机网络设备,所以可以将图2的网络(200)称为“最小化路由网络”。

虽然图2中示出的示例性网络(200)不包括路由器,但是这种最小化路由网络仅用于说明。实际上,在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的一些高速、低等待时间网络可以包括路由器。

如上所述,图2中描绘的高速、低等待时间数据通信环境(201)包括两个消息流(280,282)。消息流是发送设备的通信端点和至少一个接收设备的通信端点之间的数据通信信道。通信端点包括用于发送设备或接收设备的网址和端口。可以将消息流实施为多点传送数据通信信道。在多点传送数据通信信道中,“一对多”关系存在于消息的目的地地址和接收设备的通信端点之间。即,每个目的地地址识别一组接收设备的通信端点,流的每个消息被复制到所述接收设备上。可以使用例如用户数据报协议(“UDP”)和因特网协议(“IP”)实现多点传送数据通信信道。除了多点传送数据通信信道之外,还可以将消息流实现为单点传送数据通信信道。在单点传送数据通信信道中,“一对一”关系存在于消息的目的地地址和接收设备的通信端点之间。即,每个目的地地址唯一识别单个接收设备的单个通信端点。可以使用例如传输控制协议(“TCP”)和IP来实现单点传送数据通信信道。

图2的示例性系统包括通过有线连接(262)与高速、低等待时间数据通信网络(200)相连的流管理服务器(212)。图2的流管理服务器(212)是计算机设备,具有安装于其上的流管理模块(228)、馈送适配器库(202)、认证模块(230)、授权模块(234)和授权策略(235)。流管理模块(228)是一组计算机程序指令,配置成用于在根据本发明实施例的高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器。通过安排从主动馈送适配器(208)建立到订阅客户设备(210)的主动消息流(280)、以及安排从备用馈送适配器(206)建立到订阅客户设备(210)的备用消息流(282),流管理模块(228)通常工作用于在根据本发明实施例的高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器。另外,流管理模块(228)可以通过提供例如认证订阅客户设备(210)并授权该订阅客户设备(210)在消息流(280,282)上接收来自馈送适配器(206,208)的应用消息的安全服务来管理消息流。

可以使用馈送适配器库(202)来实施流管理模块(228)和馈送适配器(206,208)之间的通信。馈送适配器库(202)是通过馈送适配器库API(204)提供给流管理模块(228)的动态链接库或静态链接库中包含的一组函数。流管理服务器(212)的流管理模块(228)可以通过馈送适配器库(202)来管理馈送适配器(206,208),包括向馈送适配器(206,208)提供来自订阅客户设备的对于消息流的请求。由流管理模块(228)使用的馈送适配器库(202)的函数可以经由网络(200)通过使用JavaTM远程方法调用(“RMI”)API、使用网络服务、或本领域技术人员想到的任何其它通信实施方式调用CORBA对象的成员方法(member method)、调用远程对象的成员方法而与主动馈送适配器(208)通信(Java和所有基于Java的商标和标识都是在美国、其他国家、或两者国内的SunMicrosystems公司的商标。)

“CORBA”是指公共对象请求代理体系结构,一种由对象管理组(“OMG”)生产的用于可互操作企业应用的计算机工业规范。CORBA是用于由OMG在1991年首次公布的远程过程调用的标准。CORBA可以被认为是一种产生远程过程调用的面向对象的方式,虽然CORBA也支持在传统RPC中不存在的特征。CORBA使用陈述性语言,接口定义语言(“IDL”),来描述对象的接口。IDL方式的接口描述被编译以产生用于客户方面的“存根”和服务器方面上的“骨架”。使用这种产生的代码,在例如C++或Java的面向对象编程语言中实现的远程方法调用看似在局域对象中局域成员方法的调用。

JavaTM远程方法调用API是一种用于执行由Sun MicrosystemsTM公布的远程程序调用的Java应用程序接口。JavaTM RMI API是一种在独立Java虚拟机器(通常在独立计算机上运行)中存在的Java对象之间进行远程程序调用的面向对象的方式。JavaTM RMI API使用远程程序对象接口来描述驻留在服务器上的远程对象。远程程序对象接口在RMI注册表中被公布,Java客户可以在这里获得对远程Java对象的远程接口的参考。使用为客户方面编译的“存根”和服务器方面上的“骨架”来提供网络连接操作,Java RMI允许Java客户象任何其他本地Java对象那样访问远程Java对象。

除了管理馈送适配器(206,208)之外,图2的流管理模块(228)通过提供安全服务,例如认证订阅客户设备(210)和授权订阅客户设备(210)在消息流(280,282)上接收来自馈送适配器(206,208)的应用消息,而对消息流进行管理。图2的认证模块(230)是能够通过暴露的认证应用编程接口(“API”)(232)把认证安全服务提供给流管理模块(228)的一组计算机程序指令。认证是一种验证实体身份的过程。在图2的示例性系统中,认证模块(230)验证订阅客户设备(210)的身份。认证模块(230)可以使用例如共享密钥基础设施或公共密钥基础设施的多种安全基础设施来提供认证安全服务。

图2的授权模块(234)是能够通过暴露的授权API(236)给流管理模块(228)提供授权安全服务的一组计算机程序指令。授权是只允许资源被已经获得授权使用该资源的资源使用者使用的一种过程。在图2的例子中,授权模块(234)对订阅客户设备(210)被授权在消息流(280,282)上接收的应用消息进行识别。图2的授权模块(234)使用授权策略(235)来提供授权安全服务。授权策略(235)是管理认证实体的特权、以在消息流上发送或接收应用消息的一组规则。在金融市场数据环境中,例如,可以授权认证实体接收包括用于一些金融证券而非其他证券的金融报价的应用消息。授权策略(235)可以基于个别实体或组中实体成员关系准予特权。

在图2的示例性系统中,主动馈送适配器(208)通过有线连接(260)与高速、低等待时间数据通信网络(200)相连。主动馈送适配器(208)是计算机设备,有将具有第一格式的主动馈送适配器源流(214)上的应用消息转换成具有第二格式的主动馈送适配器输出流(216)上的应用消息、并将主动馈送适配器输出流(216)上的应用消息发送给订阅客户设备的能力。图2的主动馈送适配器源流(214)是从馈送源到主动馈送适配器(208)的消息流。图2的主动馈送适配器输出流(216)是受到流管理服务器(212)管理从主动馈送适配器(208)到订阅客户设备(210)的消息流。虽然主动馈送适配器在主动馈送适配器源流(214)上接收具有第一格式的应用消息并在主动馈送适配器输出流(216)上发送具有第二格式的应用消息,但是读者应该注意到在馈送适配器源流上接收的应用消息在本说明书中被称为“源流消息”,以将这种消息与在馈送适配器输出流上发送给订阅客户设备的应用消息区分开。

在图2的例子中,主动馈送适配器(208)在主动馈送适配器源流(214)上接收来自馈送源(213)的主动源流消息。馈送源(213)是计算机设备,能够将数据聚集到源流消息中并在一个或多个馈送适配器源流上将该消息发送给馈送适配器。在金融市场数据环境中,例如,可以将馈送源(213)实施为受期权价格报告管理局(Options PriceReporting Anthority)(“OPRA”)控制的馈送源。OPRA是用于由美国国内证券期权的交易产生的金融市场信息的证券信息处理器。OPRA发布的核心信息是最近的卖出报告和报价。金融市场数据环境中馈送源的其他例子可以包括受控于证券买卖汇总记录带协会(“CTA”)或Nasdaq Stock Market公司的馈送源。CTA监视纽约股票交易所和美国股票交易所中所列证券的实时交易和报价信息的散布。Nasdaq StockMarket公司操作NASDAQ Market CenterSM,其是美国国内基于电子屏幕的权益证券市场。在金融市场数据环境中,馈送适配器源流被称为“金融市场数据馈送”。

读者将注意到图2示出两个主动馈送适配器源流(214)。图2的每个馈送适配器源流(214)在主动馈送适配器中由主动源流标识符进行识别。图2的馈送源(213)可以使用多于一个的馈送适配器源流将源流消息发送给主动馈送适配器(208),这是因为在单个源流上发送消息所需的带宽是不可用的。在金融市场数据环境中,例如,馈送源可以在一个消息流上为其订单符号开始于字母“A”至“M”的金融证券发送分笔成交消息,而在另一个消息流上为开始于字母“N”至“Z”的金融证券发送分笔成交消息。

图2的主动馈送适配器(208)具有安装在其上的转换模块(220)、转换器表(222)、转换器函数(224)、消息(284)、消息模型(244)、消息传送中间件(276)和传输引擎(278)。转换模块(220)是软件组件,包括计算机程序指令,配置用于将具有第一格式在主动馈送适配器源流(214)上接收的源流消息转换成具有第二格式的应用消息,以用于在主动馈送适配器输出流(216)上发送给订阅设备。转换模块(220)还包括计算机程序指令,配置成用于保存、访问和修改例如主动消息转换应用状态和主动消息转换应用健康状态的主动馈送适配器状态。

主动消息转换应用状态是主动馈送适配器的计算机存储器中存储的值的集合,转换模块(220)使用所述主动馈送适配器以将源流上接收的源流消息转换成用于在输出流上发送的应用消息。图2的转换模块(220)可以在源流消息上增加主动消息转换应用状态的值以产生应用消息,或可以使用主动消息转换应用状态的值执行管理服务。通常主动消息转换应用状态包括从一系列源流消息推导出的计算值。在金融市场数据环境中,例如,主动消息转换应用状态可以包括表示证券的日交易量、该日证券交易的最高价格、或该日证券交易的最低价格的值。

主动消息转换应用健康状态是由主动馈送适配器或一些其他馈送适配器使用的主动馈送适配器的一个或多个度量,用于估计与其他馈送适配器相比主动馈送适配器的相对性能。可以将主动消息转换应用健康状态实施为主动馈送适配器上可用的计算机存储器、主动馈送适配器的处理器使用率、对主动馈送适配器的误差计数、对主动馈送适配器的消息传送速率、或对本领域技术人员想到的任何其他度量的测量。

转换模块(220)根据转换器表(222)将应用消息从第一格式转换到第二格式。图2的转换器表(222)是指定能够将应用消息从一种格式转换到另一种格式的转换器函数(224)的表格。利用多个转换器表,转换模块(220)就可以将消息从多种输入格式转换到多种输出格式。在图2的例子中,转换器表(222)指定能够将接收到的主动源流消息从具有第一格式的主动馈送适配器源流(214)转换到具有第二格式的应用消息,以用于在主动馈送适配器输出流(216)上发送给订阅客户设备的转换器函数(224)。可以使用例如可扩展标记语言(“XML”)文档的结构化文档实施图2的转换器表(222)。

图2中的转换器函数(224)是能够将应用消息中的数据区从一种格式转换成另一种格式、或将数据区的值从一个值转换成另一个值的函数。转换器函数(224)可以例如将16位整数转换成32位整数,将存储在字符串区中的数转换成64位双浮点值,通过本领域技术人员想到的一种或任何其他的转换来增加特定数据区的值。图2的转换模块(220)通过由转换器函数(224)暴露的一组转换器函数API(226)访问转换器函数(224)。

在图2的例子中,转换模块(220)使用转换器函数(224)将主动源流消息转换成主动应用消息(284)。图2的主动应用消息(284)表示用于发送给订阅客户设备(210)的主动应用消息。消息(284)的格式在消息模型(244)中被指定。消息模型(244)是定义消息(284)的结构和格式的元数据。可以将消息模型(244)附于主动应用消息(284)并与后者一起发送给订阅客户设备(210)。但是,通常当流管理服务器(212)安排消息流(280)时,订阅客户设备(210)和馈送适配器(206,208)可以从流管理服务器(212)接收消息模型(244)或其标识符。可以使用例如XML文档、Java对象、C++对象的结构化文档、或本领域技术人员想到的任何其他实施方式来实施消息模型。

在图2的转换模块(220)在源流消息上执行数据处理之前,转换模块(220)从馈送源(213)接收源流消息。图2的转换模块(220)可以通过主动馈送适配器(208)的接收传输引擎(未示出)来接收源流消息。接收传输引擎是在网络堆栈的传输层中工作的软件模块,并可以根据TCP/IP协议、UDP/IP协议、或本领域技术人员想到的任何其他数据通信协议来实施。接收传输引擎可以把接收到的源流消息直接提供给转换模块(220)或提供给消息传送中间件(276),其随后将源流消息提供给转换模块。

在图2的转换模块(220)对从馈送源(213)接收的应用消息执行数据处理之后,转换模块(220)将该应用消息提供给消息传送中间件(276)。图2的消息传送中间件(276)是软件组件,包括配置成用于管理从转换模块(220)接收的应用消息并将该应用消息提供给传输引擎(278)、以在主动馈送适配器输出流(216)上发送给订阅客户设备的计算机程序指令。转换模块(220)通过由消息传送中间件(276)暴露的消息传送中间件API(266)与消息传送中间件(276)交互。

除了管理应用消息之外,图2的消息传送中间件(276)还在主动馈送适配器(208)、备用馈送适配器(206)和订阅客户设备(210)之间提供高度可应用的服务,并在主动馈送适配器(208)和备用馈送适配器(206)之间提供同步服务。这种同步服务包括将主动馈送适配器状态发送给备用馈送适配器。图2的消息传送中间件(276)通过主动馈送适配器(208)和备用馈送适配器(206)之间的数据通信信道使用例如RMI对象的成员方法、CORBA对象的成员方法、网络服务、或本领域技术人员想到的任何其他通信实施方式提供同步服务。

如上所述,主动馈送适配器状态是主动馈送适配器在任何给定时刻用于执行数据处理的计算机存储器中值的集合。主动馈送适配器状态可以包括例如以上讨论的主动消息转换应用状态或主动消息转换应用健康状态。但是,主动馈送适配器状态可以包括在数据处理中使用的其他值,例如主动消息流状态。主动消息流状态是从主动馈送适配器(208)到订阅客户设备(210)的主动消息流(280)的状态。主动消息流状态的特征可在于用于发送给订阅客户设备(210)的主动消息传送中间件(276)中下一个主动应用消息的主动消息序列号的值和主动源流序列号的值。

可以通过对每个消息流状态的消息序列号和源流序列号的值进行比较,使用两个馈送适配器的消息流状态来确定来自两个馈送适配器的消息流是否同步。源流序列号唯一标识特定应用消息的内容。具有相同源流序列号的两个消息具有相同内容。无论消息的内容怎样,由馈送适配器发送的每个应用消息都被分配消息序列号。当备用消息流和主动消息流上消息的相同消息序列号是指具有相同内容的消息时,认为备用消息流与主动消息流同步。即,当主动消息流状态的主动消息序列号和主动源流序列号的值的组合与备用消息流状态的备用消息序列号和备用源流序列号的值的组合匹配时,消息流被称为“同步”。

图2的传输引擎(278)是在由国际标准化组织发布的OSI协议堆栈的传输层和网络层中工作的软件组件。传输引擎(278)在网络连接设备之间提供数据通信服务。可以根据UDP/IP协议、TCP/IP协议或本领域技术人员想到的任何其他数据通信协议实施传输引擎。传输引擎(278)包括能够将由消息传送中间件(276)提供的应用消息封装到包中并通过主动消息流(280)将包发送给订阅客户设备(210)的一组计算机程序指令。消息传送中间件(276)经过由传输引擎(278)暴露的传输API(268)来操作传输引擎(278)。

在图2的示例性系统中,通过有线连接(270)使备用馈送适配器(206)与高速、低等待时间数据通信网络(200)相连。备用馈送适配器(206)是计算机设备,拥有将备用馈送适配器源流(218)上具有第一格式的备用消息转换成备用馈送适配器输出流(217)上具有第二格式的备用消息、并将备用馈送适配器输出流(217)上的备用消息发送给订阅客户设备的能力。备用馈送适配器源流(218)是从馈送源(213)到备用馈送适配器(206)的消息流。备用馈送适配器输出流(217)是受流管理服务器(212)管理、从备用馈送适配器(206)到订阅客户设备(210)的消息流。

图2的备用馈送适配器(206)已经在其上安装了转换模块(221)、转换器表(223)、暴露转换器函数API(290)的转换器函数(225)、用于从备用馈送适配器(206)发送给订阅客户设备(210)的备用应用消息(288)、消息模型(244)、暴露消息传送中间件API(267)的消息传送中间件(277)、和暴露传输引擎API(269)的传输引擎(279)。安装在备用馈送适配器(206)上的组件以类似于安装在主动馈送适配器(208)上组件的方式进行工作。

另外,图2的备用馈送适配器(206)的消息传送中间件(277)包括一组计算机程序指令,用于在根据本发明实施例的高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器。图2的消息传送中间件(277)一般在根据本发明实施例的高速、低等待时间数据通信环境中用于通过接收来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态、确定备用馈送适配器状态是否与主动馈送适配器状态同步、依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理备用馈送适配器的工作、以及接收多个备用馈送适配器的每个的备用消息转换应用健康状态,同步主动馈送适配器和备用馈送适配器。例如,备用馈送适配器的消息传送中间件(277)可以接收来自主动馈送适配器的主动消息流状态,确定主动消息流状态是否与备用消息流状态匹配,并将备用消息流状态设置成与主动消息流状态匹配。

类似于消息传送中间件(277),图2例子中备用馈送适配器(206)的转换模块(221)还包括一组计算机程序指令,用于在根据本发明实施例的高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器。图2的转换模块(221)一般在根据本发明实施例的高速、低等待时间数据通信环境中用于通过确定备用馈送适配器状态是否与主动馈送适配器状态同步、并依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理备用馈送适配器的工作,同步主动馈送适配器和备用馈送适配器。例如,备用馈送适配器的转换模块(221)可以接收来自备用馈送适配器的消息传送中间件的主动消息转换应用状态,确定主动消息转换应用状态是否与备用消息转换应用状态匹配,并设置备用消息转换应用状态与主动消息转换应用状态匹配。

图2示例性系统中的订阅客户设备(210)通过有线连接(264)与高速、低等待时间数据通信网络(200)相连。图2的订阅客户设备(210)是能够订阅由不同馈送适配器发送的消息流的计算机设备。在金融市场数据环境中,例如,订阅客户设备可以在由受金融证券经纪人控制的馈送适配器提供的消息流上订阅分笔成交消息来接收对特定证券的出价和要价。

在图2的例子中,订阅客户设备(210)已经在其上安装了应用(238)、消息库(248)、流管理库(272)、消息传送中间件(252)和传输引擎(256)。图2的应用(238)是对从馈送适配器(208,206)之一接收的应用消息(240)中包含的数据进行处理的软件组件。应用(238)可以处理数据以便由订阅客户设备(210)自身使用、以便将数据供给另一个馈送适配器、或以便将数据供给一些其他设备。在金融市场数据环境中,安装在订阅客户设备上的应用可以是基于分笔成交消息中包含的报价来买卖金融证券的程序交易应用。该应用也可以是增值型应用,其为分笔成交消息供给例如用于特定证券的最佳出价和要价的信息,这通常不包括在由馈送源(213)提供的分笔成交消息中。接着订阅客户设备可以将该分笔成交消息发送给馈送适配器,以便再卖给其他订阅客户设备。

在图2的例子中,应用消息(240)表示从馈送适配器(206,208)中之一接收且具有由消息模型(244)指定的格式的应用消息。图2的应用(238)使用消息库(248)处理包含在应用消息(240)中的数据。消息库(248)是作为用于根据消息模型(244)产生、访问和操纵消息(240)的计算机程序指令的一组函数。消息库(248)可通过由消息库(248)暴露的消息API(250)而由应用(238)访问。

可以使用流管理库(272)实施订阅客户设备(210)和流管理服务器(212)之间的通信。流管理库(272)是通过流管理库API(274)提供给应用(238)的动态链接库或静态链接库中包含的一组函数。订阅客户设备(210)的应用(238)可以通过流管理库(272)例如请求订阅来自馈送适配器的消息、修改现存消息订阅、或取消消息订阅。应用(238)使用的流管理库(272)的函数可以经由网络(200)通过使用Java RMI API、使用网络服务、或本领域技术人员想到的任何其它通信实施方式调用CORBA对象的成员方法、调用远程对象的成员方法来与流管理服务器(212)通信。

在应用(238)处理消息(240)中包含的数据之前,应用(238)从消息传送中间件(252)接收消息(240),消息传送中间件(252)随后通过传输引擎(256)接收来自馈送适配器(208,206)之一的应用消息(240)。消息传送中间件(252)是在订阅客户设备、主动馈送适配器(208)和备用馈送适配器(206)之间提供高度可用服务的软件组件。另外,消息传送中间件(252)为流管理服务器(212)提供消息管理服务。这种消息管理服务可以包括将应用(238)在消息流上收发消息的能力限制到满足某些约束的消息。应用(238)和流管理库(272)通过消息传送中间件API(254)与消息传送中间件(252)交互。

图2的传输引擎(256)是在由国际标准化组织发布的OSI协议堆栈的传输层和网络层中工作的软件组件。传输引擎(256)在网络连接设备之间提供数据通信服务。可以根据UDP/IP协议、TCP/IP协议或本领域技术人员想到的任何其他数据通信协议实施传输引擎。传输引擎(256)包括从馈送适配器(208,206)通过消息流(280,282)接收包、由接收到的包解封装应用消息、并将应用消息提供给消息传送中间件(252)的一组计算机程序指令。消息传送中间件(252)通过由传输引擎(256)暴露的传输API(258)操作传输引擎(256)。

图2的示例性系统中示出的服务器和其他设备只用于说明,而非限制。可以使用例如计算机服务器或工作站的通用计算机、例如个人数字助理(“PDA”)或移动电话的手持计算机设备、或本领域技术人员想到的配置用于根据本发明实施例的数据处理的任何其他自动计算机器来实施在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的设备。

构成图2中所示示例性系统的服务器和其他设备的布置只用于说明,而非限制。虽然与图2中网络(200)的连接被描绘和描述成有线连接的方式,但是读者将注意到可以根据本发明的多种实施例使用无线连接。另外,用于根据本发明多种实施例的数据处理系统可以包括本领域技术人员想到的图2中未示出的其他服务器、路由器、其他设备和对等结构。这种数据处理系统中的网络可以支持许多数据通信协议,包括例如传输控制协议(“TCP”)、因特网协议(“IP”)、超文本传输协议(“HTTP”)、无线接入协议(“WAP”)、手持设备传输协议(“HDTP”)、和本领域技术人员想到的其他协议。在除了图2中所示之外,本发明的多种实施例还可以在多种硬件平台上实施。

在某些实施例中,在根据本发明的高速、低等待时间数据通信环境中同步主动馈送适配器和备用馈送适配器可以利用一个或多个订阅客户设备、流管理服务器、和馈送适配器、计算机,即自动计算机器来实施。因此,为了进一步解释,图3显示自动计算机器的方块图,包括在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的订阅客户设备(210)的例子。图3的订阅客户设备(210)包括至少一个计算机处理器(156)或“CPU”以及随机存取存储器(168)(“RAM”),其通过高速存储总线(166)和总线适配器(158)连接至处理器(156)和订阅客户设备的其他组件。

RAM(168)中存储的是应用(238)、应用消息(240)、消息模型(244)、消息库(248)、消息传送中间件(252)、流管理库(272)和传输引擎(256)。每个应用消息(240)是包括一个或多个数据区并在消息流上从一个设备发送给另一个设备的一定量的数据。应用消息通常由网络协议堆栈的网络层和传输层之上的应用层中工作的应用产生和处理。如上所述,应用消息可以表示数字或文本信息、图像、加密信息、计算机程序指令等。例如,在金融市场数据环境中,消息通常被称为“分笔成交消息”并表示例如金融报价或金融新闻的金融市场数据。可以使用例如XML文档、Java对象、C++对象的结构化文档、或本领域技术人员想到的任何其他实施方式来实施每个应用消息(240)。消息模型(244)是定义消息(240)的结构和格式的元数据。也可以使用例如XML文档、Java对象、C++对象的结构化文件、或本领域技术人员想到的任何其他实施方式来实施消息模型(244)。图3中示出的应用(238)、消息库(248)、消息传送中间件(252)、流管理库(272)和传输引擎(256)都是软件组件,即计算机程序指令,如参考图2所上所述地工作。

RAM(168)中还存储操作系统(154)。用于根据本发明实施例的订阅客户设备中的操作系统包括、、、IBM的、IBM的,和本领域技术人员想到的其他操作系统。图3例子中的操作系统(154)、应用(238)、消息(240)、消息模型(244)、消息库(248)、消息传送中间件(252)和传输引擎(256)都在RAM(168)中示出,但是这种软件的许多组件通常也存储在非易失性存储器中,例如存储在盘驱动器(170)上。

UNIX是美国和其他国家国内The Open Group的注册商标;Linux是美国、其他国家或两者国内Linus Torvalds的注册商标;Microsoft Windows和Windows NT是美国、其他国家或两者国内Microsoft Corporation的商标;而IBM,AIX和i5/OS是美国、其他国家或两者国内国际商业机器公司(International Business MachinesCorporation)的注册商标。

图3的示例性订阅客户设备(210)包括总线适配器(158)、包含用于高速总线的驱动电子装置的计算机硬件组件、前侧总线(162)、视频总线(164)和存储总线(166)、以及用于更慢扩展总线(160)的驱动电子装置。根据本发明实施例使用订阅客户设备中的总线适配器的例子包括 Northbridge、Intel Memory Controller Hub、Intel Southbridge和Intel I/O Controller Hub。用于根据本发明实施例的订阅客户设备中所用的扩展总线的例子可以包括外围设备互连(“PCI”)总线和PCIExpress(“PCIe”)总线。

图3的示例性订阅客户设备(210)还包括通过扩展总线(160)和总线适配器(158)与处理器(156)和示例性订阅客户设备(210)的其他组件相连接的盘驱动适配器(172)。盘驱动适配器(172)以盘驱动器(170)的形式将非易失数据储存器连接到示例性订阅客户设备(210)。用于订阅客户设备的盘驱动适配器包括电子集成驱动器(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器、以及本领域技术人员想到的其他适配器。另外,非易失性计算机存储器可以为订阅客户设备实施为光盘驱动器、电可擦除可编程只读存储器(被称为“EEPROM”或“Flash”存储器)、RAM驱动器等,如本领域技术人员所想到的。

图3的示例性订阅客户设备(210)包括一个或多个输入/输出(“I/O”)适配器(178)。订阅客户设备中的I/O适配器通过例如软件驱动器和计算机硬件实施面向用户的输入/输出,所述软件驱动器和计算机硬件用于控制输出到例如计算机显示屏的显示设备、以及来自例如键盘和鼠标的用户输入设备(181)的用户输入。图3的示例性订阅客户设备(210)包括视频适配器(209),其是I/O适配器的一个例子,特别设计用于图形输出到例如显示屏或计算机监视器的显示设备(180)。视频适配器(209)通过高速视频总线(164)、总线适配器(158)和同样是高速总线的前侧总线(162)与处理器(156)相连。

图3的示例性订阅客户设备(210)包括通信适配器(167),用于与其他计算机(182)数据通信和用于与高速、低等待时间数据通信网络(200)数据通信。这种数据通信可以通过RS-232连接、通过例如通用串行总线(“USB”)的外部总线、通过例如IP数据通信网络的数据通信网络、以及本领域技术人员想到的其他方式来串行执行。通信适配器实施数据通信的硬件级,通过数据通信的硬件级一台计算机直接或通过数据通信网络将数据通信发送给另一台计算机。在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的IEEE 802.3以太网适配器、和用于无线数据通信网络通信的IEEE 802.11b适配器。

虽然参考示例性订阅客户设备讨论了图3,但是读者将注意到包含在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的示例性流管理服务器和示例性馈送适配器的自动计算机器类似于图3的示例性订阅客户设备(210)。即,这种示例性流管理服务器和馈送适配器包括一个或多个处理器、总线适配器、总线、RAM、视频适配器、通信适配器、I/O适配器、盘驱动适配器和本领域技术人员想到的类似于图3的示例性订阅客户设备(210)的其他组件。

为了进一步解释,图4显示流程图,示出在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的示例性方法。图4的方法包括由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280)。主动馈送适配器的特征在于主动馈送适配器状态(406)。图4的主动馈送适配器状态(406)表示计算机存储器中指定主动馈送适配器的特定状态的值。主动馈送适配器状态可以包括例如如上所述的主动消息流状态、主动消息转换应用状态、或主动消息转换应用健康状态。

图4的主动消息流(280)表示订阅客户设备的通信端点和馈送适配器的通信端点之间的数据通信信道。消息流可以被实施为使用UDP/IP协议的多点传送数据通信信道或使用TCP/IP协议的单点传送数据通信信道,如上参考图2所述。主动消息流(280)能够从主动馈送适配器到订阅客户设备通信主动应用消息(404)。每个主动应用消息(404)表示用于由主动馈送适配器在主动消息流(280)上发送给订阅客户设备的应用消息。

图4的每个主动应用消息(404)的特征在于主动源流序列号(408)和主动消息序列号(410)。图4的主动源流序列号(408)表示在由主动馈送适配器在相同源流上接收的其他主动源流消息之中,唯一标识由主动馈送适配器接收的源流消息的序列号,所述源流消息被转换成主动应用消息(404)。主动源流序列号(408)也为特定主动源流消息提供相对于主动馈送适配器中接收的其他主动源流消息的相关发送顺序。

图4的主动消息序列号(410)表示在用于从特定主动馈送适配器发送给订阅客户设备的其他应用消息之中唯一标识主动应用消息的序列号。类似于主动源流序列号(408),主动消息序列号(410)为特定主动应用消息提供相对于从主动馈送适配器发送的其他主动应用消息的相关发送顺序。

在图4的方法中,由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280)可以通过接收来自订阅客户设备的订阅请求以订阅来自馈送适配器的消息来执行。可以将订阅请求实施为XML文档、在订阅客户设备上对RMI对象的成员方法的调用、或本领域技术人员想到的任何其他实施方法。订阅请求可以包括订阅客户设备请求从馈送适配器接收的消息的主题。主题表示订阅客户设备请求的消息的特征。订阅客户设备可以使用主题来指定用于从馈送适配器接收的消息的组。在金融市场数据环境中,例如,订阅客户设备可以使用主题从OPRA馈送源请求分笔成交消息,所述OPRA馈送源包括在芝加哥期权交易所(Chicago Board OptionsExchange“CBOE”)上交易的IBM期权的报价,其包括在CBOE上对IBM期权的最佳出价和最佳要价。

根据图4的方法由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280)还可以包括向订阅客户设备提供馈送适配器的目的地地址。用于馈送适配器的目的地地址是订阅客户设备用于收听来自馈送适配器的消息的多点传送地址或单点传送地址。订阅客户设备可以使用由流管理服务器提供的目的地地址来建立从馈送适配器到订阅客户设备的主动消息流(280)。

在流管理服务器为馈送适配器提供目的地地址之前,图4例子中的流管理服务器可以执行几个安全服务,以确保订阅客户设备仅接收订阅客户设备被授权接收的来自馈送适配器的消息。在图4的方法中,由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280)也可以通过认证订阅客户设备并授权订阅客户设备在消息流(280)上接收来自馈送适配器的消息来执行。可以通过验证由订阅客户设备利用订阅请求提供的客户安全证书来执行认证订阅客户设备。可以将客户安全证书实施成公共密钥基础设施中的数字签名、安全令牌、或本领域技术人员想到的任何其他安全数据,用于认证订阅请求发起者的身份。授权订阅客户设备在消息流(280)上接收来自馈送适配器的消息可以通过依据授权策略来识别与被认证订阅客户设备有关的特权来执行。授权策略是对请求从馈送适配器接收数据的被认证订阅客户设备的特权进行管理的一组规则。

图4的方法还包括由流管理服务器安排(402)从备用馈送适配器建立到订阅客户设备的备用消息流(282)。备用馈送适配器的特征在于备用馈送适配器状态(416)。图4的备用馈送适配器状态(416)表示计算机存储器中指定备用馈送适配器的特定状态的值。类似于主动馈送适配器状态,备用馈送适配器状态可以包括例如备用消息流状态、备用消息转换应用状态、或备用消息转换应用健康状态。在图4的方法中,由流管理服务器安排(402)从备用馈送适配器建立到订阅客户设备的备用消息流(282)可以用类似于通过流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280)的方式执行,如上所述。

图4的备用消息流(282)表示订阅客户设备的通信端点和馈送适配器的通信端点之间的数据通信信道。备用消息流(282)能够通信备用应用消息(414),其表示主动应用消息(404)从备用馈送适配器到订阅客户设备的复制。每个备用应用消息(414)表示由备用馈送适配器在备用消息流(282)上发送给订阅客户设备的应用消息。

图4的每个备用应用消息(414)的特征在于备用源流序列号(418)和备用消息序列号(420)。图4的备用源流序列号(418)表示在由备用馈送适配器在相同源流上接收的其他备用源流消息之中,唯一标识由备用馈送适配器接收的源流消息的序列号,所述源流消息被转换成备用应用消息(414)。备用源流序列号(418)也为特定备用源流消息提供相对于备用馈送适配器中接收的其他备用源流消息的相关发送顺序。

图4的备用消息序列号(420)表示在用于从特定备用馈送适配器发送给订阅客户设备的其他应用消息之中唯一标识备用应用消息的序列号。类似于备用源流序列号(418),备用消息序列号(420)为特定备用应用消息提供相对于从备用馈送适配器发送的其他备用应用消息的相关发送顺序。

图4的方法还包括在备用馈送适配器的备用消息传送中间件中接收(422)来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态。根据图4方法在备用馈送适配器的备用消息传送中间件中接收(422)来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态可以包括由主动消息传送中间件取回主动馈送适配器状态、并由主动消息传送中间件通过数据通信信道将主动馈送适配器状态发送给备用消息传送中间件,使用例如RMI对象的成员方法、CORBA对象的成员方法、网络服务、或本领域技术人员想到的任何其他实施方式实施所述数据通信信道。主动消息传送中间件可以从主动消息传送中间件自身中存储的值、或从主动馈送适配器的消息转换应用获得主动馈送适配器状态。

图4的方法还包括由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步。由备用馈送适配器根据图4的方法确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步可以通过确定主动消息流状态是否匹配备用消息流状态、并确定主动消息转换应用状态的值是否匹配备用消息转换应用状态(706)的值来执行,如下参考图5和图7所述。

图4的方法还包括由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作。由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作可以通过下述方法执行,即,如果备用馈送适配器状态与主动馈送适配器状态不同步则将备用消息流状态的值设置成匹配主动消息流状态的值;如果备用馈送适配器之前已经发送了备用应用消息,其具有与主动消息流状态的主动源序列号的值匹配的备用源序列号的值,则降低备用馈送适配器的备用流发送速率;如果备用馈送适配器状态与主动馈送适配器状态不同步,则将备用消息转换应用状态的值设置成匹配主动消息转换应用状态的值;而如果备用馈送适配器状态与主动馈送适配器状态不同步,则依据每个备用馈送适配器的备用消息转换应用健康状态(804)中断多个备用馈送适配器之一;如参考图5、6、7和8在下面讨论的那样。

因此,为了进一步解释,图5显示流程图,示出在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的另一种示例性方法,其包括:如果备用馈送适配器状态(506)与主动馈送适配器状态(504)不同步,则将备用消息流状态(506)设置(502)成匹配主动消息流状态(504)。图5方法类似于图4方法之处在于,图5的方法包括由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280),由流管理服务器安排(402)从备用馈送适配器建立到订阅客户设备的备用消息流(282),在备用馈送适配器的备用消息传送中间件中接收(422)来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态,由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步,和由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作。

图5例子类似于图4例子之处还在于,图5的主动馈送适配器的特征在于主动馈送适配器状态(406),主动消息流(280)能够将主动应用消息(404)通信给订阅客户设备,每个主动应用消息(404)的特征在于主动源流序列号(408)和主动消息序列号(410),图5的备用馈送适配器的特征在于备用馈送适配器状态(416),备用消息流(282)能够将表示主动应用消息(404)的复制的备用应用消息(414)通信给订阅客户设备,而每个备用应用消息(414)的特征在于备用源流序列号(418)和备用消息序列号(420)。

在图5的例子中,主动馈送适配器状态(504)包括主动消息流状态(504)。主动消息流状态(504)表示从主动馈送适配器到订阅客户设备的主动消息流(280)的状态。图5的主动消息流状态(504)的特征在于用于发送给订阅客户设备的、在主动消息传送中间件中下一个主动应用消息的主动消息序列号的值和主动源流序列号的值。主动馈送适配器的消息传送中间件通过从存储下一个应用消息的主动消息序列号的数据区或寄存器取回主动消息序列号的值,可以识别用于发送给订阅客户设备的下一个主动应用消息,其中下一个应用消息待由主动馈送适配器进行处理以供发送。

在图5的例子中,备用馈送适配器状态(506)包括备用消息流状态(506)。图5的备用消息流状态(506)表示从备用馈送适配器到订阅客户设备的备用消息流(282)的状态。图5的备用消息流状态(506)的特征在于用于发送给订阅客户设备的备用消息传送中间件中下一个备用应用消息的备用消息序列号的值和备用源流序列号的值。备用馈送适配器的消息传送中间件通过从存储下一个应用消息的备用消息序列号的数据区或寄存器取回备用消息序列号的值,可以识别用于发送给订阅客户设备的下一个备用应用消息,其中下一个应用消息待由备用馈送适配器进行处理以供发送。

在图5的方法中,由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步包括确定(500)主动消息流状态(504)是否匹配备用消息流状态(506)。根据图5方法确定(500)主动消息流状态(504)是否匹配备用消息流状态(506)可以通过对主动消息流状态(504)的主动消息序列号和主动源流序列号的值与备用消息流状态(506)的备用消息序列号和备用源流序列号的值进行比较来执行。如果主动消息流状态(504)的主动消息序列号和主动源流序列号的值的组合与备用消息流状态(506)的备用消息序列号和备用源流序列号的值的组合匹配,则备用馈送适配器状态(416)与主动馈送适配器状态(406)同步。如果主动消息流状态(504)的主动消息序列号和主动源流序列号的值的组合与备用消息流状态(506)的备用消息流序列号和备用源流序列号的值的组合不匹配,则备用馈送适配器状态(416)与主动馈送适配器状态(406)不同步。

在图5的方法中,由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作包括:如果备用馈送适配器状态(506)与主动馈送适配器状态(504)不同步,则将备用消息流状态(506)设置(502)成匹配主动消息流状态(504)。根据图5的方法将备用消息流状态(506)设置(502)成匹配主动消息流状态(504)可以通过下列方法执行,即,如果备用馈送适配器之前没有发送具有与主动源流序列号数值相同的备用源流序列号(418)的备用应用消息(414),则调节消息序列号计数器,以使备用馈送适配器将主动消息流状态(504)的主动消息序列号的值分配给备用应用消息(414)的备用消息序列号,所述备用应用消息(414)具有与主动消息流状态(504)的主动源流序列号数值相同的备用源流序列号(418)。消息序列号计数器是产生将要分配给应用消息的下一个备用消息序列号的备用消息传送中间件中的逻辑电路。

当备用馈送适配器之前已经发送了具有与主动源流序列号数值相同的备用源流序列号的备用应用消息时,可以通过降低备用馈送适配器的备用流发送速率来执行备用馈送适配器的管理工作。因此,为了进一步解释,图6显示流程图,示出在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的又一种示例性方法,其中备用馈送适配器的管理(426)工作包括:如果备用馈送适配器之前已经发送了备用应用消息,其具有与主动消息流状态的主动源序列号的数值匹配的备用源序列号的值,则降低(600)备用馈送适配器的备用流发送速率(602)。在图6的例子中,备用流发送速率(602)表示备用馈送适配器在一段时间内发送给订阅客户设备的备用应用消息的数量。备用流发送速率(602)可以用例如“消息/秒”的单位来表达。

在图6的例子中,如果备用馈送适配器之前已经发送了具有与主动消息流状态的主动源序列号的数值匹配的备用源序列号的值的备用应用消息、则降低(600)备用馈送适配器的备用流发送速率(602)可以通过在预定时间段中反复暂停备用应用消息的发送来执行。备用馈送适配器可以在发送每个备用应用消息之后、发送每个其他备用应用消息之后、或本领域技术人员想到的任何其他频率下暂停发送。降低备用馈送适配器的备用流发生速率使主动馈送适配器能够在给订阅客户设备发送信息的发送序列中超前于备用馈送适配器。当在发送序列中主动馈送适配器超前于备用馈送适配器时,备用馈送适配器可以再次确定主动消息流状态是否匹配备用消息流状态,而如果备用馈送适配器状态与主动馈送适配器不同步,则将备用消息流状态设置成匹配主动消息流状态,如上参考图5的方法所述。

图6方法中的其他步骤以类似于图5方法的方式工作。图6的方法包括由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280),由流管理服务器安排(402)从备用馈送适配器建立到订阅客户设备的备用消息流(282),在备用馈送适配器的备用消息传送中间件中接收(422)来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态,由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步,由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作。图6例子类似于图5例子之处还在于,图6的主动馈送适配器的特征在于包括主动消息流状态(504)的主动馈送适配器状态(406),主动消息流(280)能够将主动应用消息(404)通信给订阅客户设备,每个主动应用消息(404)的特征在于主动源流序列号(408)和主动消息序列号(410),图6的备用馈送适配器的特征在于包括备用消息流状态(506)的备用馈送适配器状态(416),备用消息流(282)能够将表示主动应用消息(404)的复制的备用应用消息(414)通信给订阅客户设备,而每个备用应用消息(414)的特征在于备用源流序列号(418)和备用消息序列号(420)。

如上所述,依据备用馈送适配器状态是否与主动馈送适配器状态同步的备用馈送适配器的管理工作可以通过下列方法执行,即,如果备用馈送适配器状态与主动馈送适配器状态不同步,则将备用消息转换应用状态的值设置成匹配主动消息转换应用状态的值。因此,为了进一步解释,图7显示流程图,示出在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的再一种示例性方法,其包括,如果备用馈送适配器状态(416)与主动馈送适配器状态(406)不同步,则将备用消息转换应用状态(706)的值设置(702)成匹配主动消息转换应用状态(704)的值。

图7方法类似于图4方法之处在于,图7的方法包括由流管理服务器安排(400)从主动馈送适配器建立到订阅客户设备的主动消息流(280),由流管理服务器安排(402)从备用馈送适配器建立到订阅客户设备的备用消息流(282),在备用馈送适配器的备用消息传送中间件中接收(422)来自主动馈送适配器的主动消息传送中间件的主动馈送适配器状态,由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步,和由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作。图7例子类似于图4例子之处还在于,图7的主动馈送适配器的特征在于主动馈送适配器状态(406),主动消息流(280)能够将主动应用消息(404)通信给订阅客户设备,每个主动应用消息(404)的特征在于主动源流序列号(408)和主动消息序列号(410),图7的备用馈送适配器的特征在于备用馈送适配器状态(416),备用消息流(282)能够将表示主动应用消息(404)的复制的备用应用消息(414)通信给订阅客户设备,而每个备用应用消息(414)的特征在于备用源流序列号(418)和备用消息序列号(420)。

在图7的例子中,主动馈送适配器状态(406)包括主动馈送适配器的主动消息转换应用的主动消息转换应用状态(704)。如上所述,主动消息转换应用状态(704)表示由主动消息转换应用用于将馈送适配器中接收的源流消息转换成要发送给订阅客户设备的应用消息的、在主动馈送适配器的计算机存储器中存储的值的集合。主动消息转换应用的例子可以包括参考图2的上述主动馈送适配器的转换模块。主动消息转换应用可以给源流消息增加主动消息转换应用状态(704)的值以产生应用消息,或可以使用主动消息转换应用状态的值来执行管理服务。主动消息转换应用状态(704)通常包括从一系列源流消息推导出的计算值。例如,在金融市场数据环境中,主动消息转换应用状态可以包括表示证券的日交易量、当日证券交易的最高价格、或当日证券交易的最低价格的值。

在图7的例子中,备用馈送适配器状态(416)包括备用馈送适配器的备用消息转换应用的备用消息转换应用状态(706)。类似于主动消息转换应用状态(704),备用消息转换应用状态(706)表示由备用消息转换应用用于将馈送适配器中接收的源流消息转换成要发送给订阅客户设备的应用消息的、在备用馈送适配器的计算机存储器中存储的值的集合。备用消息转换应用的例子可以包括参考图2的上述备用馈送适配器的转换模块。

在图7的方法中,由备用馈送适配器确定(424)备用馈送适配器状态(416)是否与主动馈送适配器状态(406)同步可以通过确定(700)主动消息转换应用状态(704)的值是否匹配备用消息转换应用状态(706)的值来执行。根据图7方法确定(700)主动消息转换应用状态(704)的值是否匹配备用消息转换应用状态(706)的值可以通过下列方法执行,即,由备用消息转换应用从备用馈送适配器的备用消息传送中间件接收主动消息转换应用状态(704),并由备用消息转换应用对主动消息转换应用状态(704)的值与备用消息转换应用状态(706)的值进行比较。如果主动消息转换应用状态(704)的值与备用消息转换应用状态(706)的值相等,则备用馈送适配器状态(416)与主动馈送适配器状态(406)同步。如果主动消息转换应用状态(704)的值与备用消息转换应用状态(706)的值不等,则备用馈送适配器状态(416)与主动馈送适配器状态(406)不同步。

在图7的方法中,由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作包括:如果备用馈送适配器状态(416)与主动馈送适配器状态(406)不同步,则将备用消息转换应用状态(706)的值设置(702)成匹配主动消息转换应用状态(704)的值。根据图7方法将备用消息转换应用状态(706)的值设置(702)成匹配主动消息转换应用状态(704)的值可以通过由备用消息转换应用利用主动消息转换应用状态(704)的值对备用消息转换应用状态(706)的值进行更新来执行。

如上所述,本发明的一些示例性实施例可以包括多个备用馈送适配器,其中每个备用馈送适配器都能够在备用消息流上将备用应用消息发送给订阅客户设备。当备用馈送适配器之一反复确定备用馈送适配器状态与主动馈送适配器状态不同步时,备用馈送适配器的备用消息传送中间件可以工作,以便中断备用馈送适配器。即,备用馈送适配器的备用消息传送中间件使备用馈送适配器离线,从而该备用馈送适配器不再可用于提供冗余。不过,另一个备用馈送适配器常比其备用馈送适配器状态反复与主动馈送适配器状态不同步的备用馈送适配器执行得更差。因此在中断反复不同步的备用馈送适配器之前,备用消息传送中间件可考虑其他备用馈送适配器的健康状态。因此,为了进一步解释,图8显示流程图,示出在根据本发明实施例的高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的还一种示例性方法,其包括:如果备用馈送适配器状态与主动馈送适配器状态不同步,则依据每个备用馈送适配器(802)的备用消息转换应用健康状态(804)中断(806)备用馈送适配器之一。

图8的例子包括多个备用馈送适配器(802)。每个备用馈送适配器(802)表示计算机设备,其拥有将具有第一格式的备用馈送适配器源流上的备用源流消息转换成具有第二格式的备用馈送适配器输出流上的备用应用消息、并在备用消息流上将该备用应用消息发送给订阅客户设备的能力。每个备用馈送适配器(802)的特征在于备用馈送适配器状态(416)。如上所述,备用馈送适配器状态(416)表示备用馈送适配器用于在任何给定时刻执行数据处理的计算机存储器中的值的集合。

图8的备用馈送适配器状态(416)包括备用消息转换应用健康状态(804)。备用消息转换应用健康状态(804)表示由备用馈送适配器使用用于评估与其他馈送适配器相比较该备用馈送适配器的相对性能的备用馈送适配器的一个或多个度量。可以将备用消息转换应用健康状态实施为对备用馈送适配器上可用的计算机存储器、备用馈送适配器上处理器的使用率、备用馈送适配器的误差计数、备用馈送适配器的消息传送速率的测量,或本领域技术人员想到的任何其他度量。

图8的方法包括在每个备用馈送适配器的备用消息传送中间件中接收(800)每个备用馈送适配器(802)的备用消息转换应用健康状态(804)。在每个备用馈送适配器的备用消息传送中间件中接收(800)每个备用馈送适配器(802)的备用消息转换应用健康状态(804)可以通过由每个备用馈送适配器(802)的备用消息传送中间件从每个备用馈送适配器(802)的备用消息转换应用取回备用消息转换应用健康状态(804)来执行。当由备用消息转换应用轮询(poll)时,备用消息传送中间件可以通过调用由备用消息转换应用的API暴露的函数、或通过请求备用消息转换应用健康状态(804)而取回备用消息转换应用健康状态(804)。在每个备用馈送适配器的备用消息传送中间件中接收(800)每个备用馈送适配器(802)的备用消息转换应用健康状态(804)可以进一步通过下列方法执行,即,通过使用例如RMI对象的成员方法、CORBA对象的成员方法、网络服务、或本领域技术人员想到的任何其他实施方式实施的数据通信信道,将备用消息转换应用健康状态(804)从每个备用馈送适配器(802)的备用消息传送中间件发送到其他备用馈送适配器(802)的备用消息传送中间件。

在图8的方法中,由备用馈送适配器依据备用馈送适配器状态是否与主动馈送适配器状态同步来管理(426)备用馈送适配器的工作包括:如果备用馈送适配器状态与主动馈送适配器状态不同步,则依据每个备用馈送适配器(802)的备用消息转换应用健康状态(804)而中断(806)备用馈送适配器之一。根据图8方法依据每个备用馈送适配器(802)的备用消息转换应用健康状态(804)而中断(806)备用馈送适配器之一可以通过下列方法执行,即,如果被管理的备用馈送适配器的备用消息转换应用健康状态(804)的值在从每个其他备用馈送适配器接收的备用消息转换应用健康状态中是最低的,则从与其他馈送适配器的消息传送中间件的通信中去除该备用馈送适配器。

读者将注意到,如果被管理的备用馈送适配器的备用消息转换应用健康状态(804)的值在从每个其他备用馈送适配器接收的备用消息转换应用健康状态中是最低的、则从与其他馈送适配器的消息传送中间件的通信中去除该备用馈送适配器只用于解释,而非限制。实际上,根据图8方法依据每个备用馈送适配器(802)的备用消息转换应用健康状态(804)而中断(806)备用馈送适配器之一还可以通过下列方法执行,即,如果被管理的备用馈送适配器的备用消息转换应用健康状态(804)的值仅比从其他备用馈送适配器接收的备用消息转换应用健康状态的值的其中之一要低、或满足本领域技术人员想到的任何其他方式,则从与其他馈送适配器的消息传送中间件的通信中去除该备用馈送适配器。

鉴于本文中上述给出的解释,读者将认识到在根据本发明实施例的高速、低等待时间数据通信环境中实践主动馈送适配器和备用馈送适配器的同步提供下列好处:

·从主动馈送适配器故障转移到备用馈送适配器所需的时间从很多秒降低到几毫秒,这是因为来自馈送适配器的消息流保持同步,

·由冗余馈送适配器提供给订阅客户设备的数据是相同的,并且

·如果现存所有其他备用馈送适配器的执行情况都更差,则不中断与主动馈送适配器反复不同步的备用馈送适配器。

主要在高速、低等待时间数据通信环境中用于同步主动馈送适配器和备用馈送适配器的全功能计算机系统的情况下描述了本发明的示例性实施例。不过,本领域技术人员读者将认识到本发明还可以实施成在单个承载介质上布置的可用于任何适当的数据处理系统的计算机程序产品。这种单个承载介质可以是用于机器可读信息的发送介质或可记录介质,包括磁性介质、光学介质或其他适当的介质。可记录介质的例子包括硬盘驱动器或磁盘中的磁性盘、用于光驱的致密盘、磁带、和本领域技术人员想到的其他介质。发送介质的例子包括用于语音通信的电话网络和数字数据通信网络,例如以太网和利用因特网协议通信的网络和万维网,以及无线发送介质,例如根据IEEE802.11规范家族实施的网络。本领域技术人员将立刻意识到具有适当编程装置的任何计算机系统都将能够执行本发明方法的步骤,正如程序产品中实施的那样。本领域技术人员将立刻意识到,虽然本说明书中描述的一些示例性实施例面向计算机硬件上安装和执行的软件,然而,实施为固件或硬件的可选实施例也是在本发明的范围内。

由上述描述将理解,在不背离本发明真实精神的情况下可以在本发明的多种实施例中进行更改和变化。本说明书中的描述只是以说明为目的而不构成限制。本发明的范围仅由所附根据权利要求的语言进行限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号