CN101523355B - 故障切换系统和方法 - Google Patents

故障切换系统和方法 Download PDF

Info

Publication number
CN101523355B
CN101523355B CN200780035109.7A CN200780035109A CN101523355B CN 101523355 B CN101523355 B CN 101523355B CN 200780035109 A CN200780035109 A CN 200780035109A CN 101523355 B CN101523355 B CN 101523355B
Authority
CN
China
Prior art keywords
server
service
message
master server
client computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200780035109.7A
Other languages
English (en)
Other versions
CN101523355A (zh
Inventor
丘多尔·莫洛森
格利高利·A.·阿伦
维克多·帕夫烈科
本逊·诗杰·林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TSX Inc
Original Assignee
TSX Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TSX Inc filed Critical TSX Inc
Publication of CN101523355A publication Critical patent/CN101523355A/zh
Application granted granted Critical
Publication of CN101523355B publication Critical patent/CN101523355B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Abstract

本发明的一个方面提供了一种用于故障切换的系统,它包括至少一个客户机,选择性地可连接到经由网络连接的至少两个互连的服务器之一。在常规状态下,当被连接到客户机时,服务器中的一个被指定为主服务器,并且当未连接到客户机时,服务器中的剩余服务器被指定为备用服务器。所述至少一个客户机被配置为向主服务器发送消息。该服务器被配置为使用至少一个服务来处理该消息,该服务在每一个服务器中都是相同的。该服务不知道与该服务相关的服务器是作为主服务器还是备用服务器工作。该服务器还被配置为保持一个库或者类似物,该库指明了该服务器是主服务器还是备用服务器。每个服务器中的服务对与其相关的库进行外部调用。主服务器中的库被配置为完成外部调用,并且向主服务器中的服务返回外部调用的结果,并且向备用服务器中的服务转发外部调用的结果。当被第二服务器中的服务要求这样做时,第二服务器中的库不进行外部调用,而是简单地向第二服务器中的服务转发从主服务器接收到的外部调用的结果。

Description

故障切换系统和方法
技术领域
本发明涉及计算机和网络体系结构,并且更具体地涉及故障切换系统和方法。 
背景技术
社会越来越依靠计算机和网络来进行交互和开展业务。为了获得关键系统中要求的高级别可用性,应当将由软件和硬件缺陷引起的计划外停机降低到最小。 
金融服务行业是要求高可用性系统的行业中的一个实例。实际上,当今金融行业中的大量数据处理活动都是由计算机系统支持的。最有趣的是所谓的“实时”和“接近实时”在线交易处理(OLTP)应用,该应用通常在很长的时段中以高速度且低延迟地处理大量商业交易。这些应用通常显示出下述特性:(1)复杂和高速度数据处理,(2)可靠的非易失性数据存储,和(3)高级别可用性,即在基本不受干扰的基础上支持服务的能力。但是在实施时,由于它们对系统行为的互相矛盾的影响,现有的系统倾向于在这些性能要求之间折衷,不存在如同后面将详细描述的、能同时完全满足全部三个特性的方案。 
首先,复杂数据处理指的是以及时的方式执行大量计算、数据库检索/更新等的能力。这可以通过并行处理实现,其中在同一物理机器上或分布式网络上同时执行多个工作单元。在一些系统中,每个交易的结果是基于之前完成的交易的结果。由于竞态条件、操作系统调度任务或者各种网络延迟,这样的系统的并行方面天生就是非确定性的,既不能预测消息和线程执行的顺序,也不能简单地通过将输入消息的副本传递给复制系统来并行地处理该消息和线程执行。非确定性系统具有非恒定的输出,因此它们不是在两个不同计算机器上并行运行的、虽然其本意是在出现故障时用一个代替另一个。 
其次,可靠的非易失性数据存储指的是甚至在系统的一些软件或者硬件组件经历意料之外的故障时,持久地存储数据的能力。这通常是通过在存取或者修改共享数据时,使用原子性、一致性、隔离性和持久性(“ACID”)交易实现的。一个单元的工作一完成,ACID交易就可以保证数据的完整性和持久性。每个提交的ACID交易被写入非易失性计算机存储器(硬盘),该存储器协助确保数据持久性,但是这样很耗费性能,通常拖慢了整个系统。 
第三,高可用性系统尝试确保给定计算机系统的可用性百分比尽可能接近100%的时间。可以通过使用冗余软件和/或硬件实现这样的可用性,当检测到组件故障时,冗余软件和/或硬件接管功能。为了取得成功,故障切换不仅复制数据,还复制处理状态。如同本领域的技术人员所理解的,在非确定性系统(即同样一组事件的计算处理根据这些事件的处理顺序可以获得多于一个结果的系统)中状态复制尤其具有挑战性。 
高可用性软件应用通常被配置在冗余环境中,从而减少和/或消除故障的单一点,该点通常与基础硬件相关。已知的两个常规方法是热故障切换和温故障切换。热故障切换指的是同时在多个系统中处理同一输入,本质上是在这些系统中的出现一个故障时提供完全冗余。温故障切换指的是在备份系统中复制应用的状态(即数据),而不在备份系统中处理该数据,但是具有可以在主系统出现故障时处理加载的数据并且待机的应用。被很多人不视为一种高可用性的冷故障切换指的是简单地唤醒备份系统和将备份系统准备用于承担主系统的处理责任。 
在热故障切换中,应用的两个实例同时运行在两个不同的硬件设备上,处理同一输入的副本。如果它们中的一个经历严重的故障时,附加的同步系统可以确保另一个将继续支持工作负载。在温故障切换配置中,这些系统中的被指定为主要的一个运行该应用;在出现故障时,被指定为备份的、处于待机状态等待的第二系统将“苏醒”,接管和恢复功能。 
现有技术的热故障切换方式至少具有两个缺点。首先,附加软件必须运行从而确保两个系统同步。在不确定性系统的情况下,该同步努力可能导致不能接受的(或者不希望的)性能降低和必须保证事件到达的 顺序完全一致的复杂性。同样,在这样的应用中使用的现有并行系统通常允许多个线程同时执行,因此它们天生就是非确定性的。同样带有服务器和地理上分散的客户机的系统也是非确定性的,其中各种网络延迟以无法预测的顺序向服务器发送消息。 
温故障切换可以被用于克服热故障切换的某些问题。通过将系统数据复制到冗余备份系统,并且随后在第二系统恢复应用功能,温故障切换可以成为实现非确定性系统的故障切换的另一种方式。该方式的缺点在于将数据恢复为一致状态、随后将应用带到功能状态,并且最后,将应用恢复到它从处理中离开的位置这一过程所需要的时间。该过程通常花费几小时,需要人工干涉并且不能完全恢复进行中的交易。 
很多专利试图解决前述问题中的至少一部分。第5,305,200号美国专利所提出的方案本质上是用于顾客/经销商与经纪人(准备买卖未上市证券的经纪人)之间议价贸易场景中通信的反拒认(non-repudiation)机制。提供冗余从而确保在出现故障时反拒认机制能够工作。它没有解决非确定性环境中的在线交易应用的故障切换。简单地说,在经历了网络故障后,第5,305,200号美国专利被用于向下述疑问提供毫不含糊的答案:“是否发送了指令?” 
第5,381,545号美国专利提出了用于备份已存储的数据(在数据库中)同时还对这些数据进行更新的技术。第5,987,432号美国专利提供了用于为区域分布而安装全世界金融市场数据的可容错的市场数据自动收录机系统。这是一个确定性的环境,并且解决方案集中在向消费者提供不受干扰的单向数据流。第6,154,847号美国专利提供了通过将传统非易失性存储器上的交易日志与易失性存储器中的交易列表合并来回滚交易的改进方法。第6,199,055号美国专利提供了一种在系统和便携式处理器之间经由不安全的通信连接进行分布式交易的方法。第6,199,055号美国专利研究的是用于确保与远程设备完整交易的认证,以及在出现故障时重启远程设备。总体而言,前述这些专利都没有解决在非确定性环境中的在线交易应用的故障切换。 
第6,202,149号美国专利提供了用于自动地重分配任务从而减少计算机停机影响的方法和装置。该装置包括至少一个由一个或多个计算系统组成的冗余群组,所述计算系统本身就是由一个或多个计算分区组成的。分区包括数据库模型的副本,数据库模型在每个计算系统部分被复制。冗余群组监视计算系统和计算系统分区的状况,并且根据监视到的计算系统的状况向计算系统分配任务。第6,202,149号美国专利的一个问题是它没有教导在备份系统接管处理交易的责任时,如何恢复工作流,反而采用了效率很差的和/或缓慢的复制整个数据库的方式。进一步,这样的复制可以引起丢失处理中的重要交易信息,特别是在主系统或者连接主系统和备份系统的网络上出现故障时,从而导致了主系统和备份系统之间的状态不一致。整体而言,第6,202,149号美国专利缺少在在线交易处理或类似处理中需要的特定特性,并且由其缺少故障切换非确定性系统所需要的特性。
第6,308,287号美国专利提出了一种方法,其探测组件交易的故障,将其收回,可靠地存储故障指示器以便在系统故障后可以恢复,并且随后使得进一步交易可以使用该故障指示器。它没有解决在非确定性环境中交易应用的故障切换。第6,574,750号美国专利提出了分布式复制对象的系统,其中对象是非确定性的。它提出了一种在出现已复制的对象的故障时,确保一致性并且限制回滚的方法。描述了一种方法,其中对象接收呼入的客户机请求并且将请求ID与对象的副本之前处理的全部请求的日志进行比较。如果找到了相匹配的,随后向客户机返回相关的响应。但是该方法单独不能解决现有的各种问题。 
第6,574,750号美国专利的另一个问题是采用了同步调用链,这对于高性能在线交易处理(“OLTP”)应用是不合适的。对于同步调用,客户机在继续之前需要等待回答或者超时提示。被调用的物体依次将变成另一个对象的客户机,传播同步调用链。结果可以是大范围的同步操作,堵塞了客户机处理,并且需要在源头客户机配置很长的暂停时间。 
发明内容
本发明的一个方面提供了一种用于故障切换的系统,它包括至少一个客户机,选择性地可连接到经由网络连接的至少两个互连的服务器中的一个。在常规状态下,当被连接到客户机时,服务器中的一个被指定 为主服务器,并且当未连接到客户机时,服务器中的剩余服务器被指定为备用服务器。该至少一个客户机被配置为向主服务器发送消息。服务器被配置为使用至少一个服务来处理该消息,该服务在每一个服务器中都是相同的。该服务不知道与该服务相关的服务器是作为主服务器还是备用服务器工作。该服务器还被配置为保持一个执行多种任务的库或者可用代码的其他相异(distinct)一个或多个组,包括指明该服务器是主服务器还是备用服务器。每个服务器中的服务对与其相关的库进行外部调用。主服务器中的库被配置为完成外部调用,并且向主服务器中的服务返回外部调用的结果并且向备用服务器中的服务转发外部调用的结果。当被第二服务器中的服务要求这样做时,第二服务器中的库不进行外部调用,而是简单地向第二服务器中的服务转发从主服务器接收到的外部调用的结果。 
该库被实现为一组或多组相异的可用代码。 
该服务器中的每个都可以被配置为保持共享资源,服务可以在其中存储处理消息的结果。共享资源可以并且例如为了性能的原因,优选地被保持在相关服务器的随机访问存储器中。但是不需要在随机访问存储器中保持共享资源。 
外部调用可以是(作为非限制性的实施例列表)对时间戳的请求、调用在同一服务器上提供的另一个服务、或者调用单独的机器上物理提供的另一个服务。 
系统可以是电子交易系统中的一部分,并且消息因此可以是买入或者卖出证券的指令。这样,外部调用可以是对证券的价格的市场反馈报价(market feed quote)的请求。在系统是电子交易系统时,至少一个服务包括下达指令服务、指令取消服务、指令改变服务、指令匹配服务、进入之前执行的交易的服务或者进入交叉买卖交易(cross trade)的服务中的一个。 
主服务器中的服务可以被配置为仅在备用服务器确认了外部调用的结果已经被成功地转发给备用服务器时,才向所述客户机确认已经处理了消息。 
主服务器中的服务可以被配置为不管所述备用服务器是否确认了 外部调用的结果已经被成功地转发给备用服务器,都向客户机确认已经处理了消息。如果在预定时间段中,备用服务器没有确认外部调用的结果已经被成功地转发给备用服务器,则主服务器将认为备用服务器出现了故障。 
本发明的另一个方面提供了一种用于系统中的故障切换的方法,包括: 
至少一个客户机,选择性地可连接到经由网络连接的至少两个互连的服务器;当被连接到客户机时,服务器中的一个被指定为主服务器,并且当未连接到客户机时,服务器中的剩余服务器被指定为备用服务器;该至少一个客户机被配置为向主服务器发送消息,所述方法包括: 
将服务器配置为使用至少一个服务来处理消息,服务在每一个服务器中都是相同的,并且不知道与服务相关的服务器是作为主服务器还是备用服务器工作; 
将服务器配置为保持一个库,该库指明了该服务器是主服务器还是备用服务器; 
将服务配置为对与其相关的库来进行外部调用;和 
将主服务器中的库配置为完成外部调用,并且向主服务器中的服务返回外部调用的结果并且向备用服务器中的服务转发外部调用的结果。 
本发明的另一个方面提供了一种计算机可读介质,该介质存储了经由网络连接的至少两个互连的服务器中的一个上可以执行的程序指令,服务器选择性地可连接到至少一个客户机。当被连接到客户机时,服务器中的一个被指定为主服务器,在这种情况下,当未连接到所述客户机时,服务器中的剩余服务器被指定为备用服务器。该至少一个客户机被配置为向主服务器发送消息。该程序指令包括: 
用于将服务器配置为使用至少一个服务来处理消息的指令,服务在每一个服务器中都是相同的,并且不知道与服务相关的服务器是作为主服务器还是备用服务器工作; 
用于将服务器配置为保持一个库的指令,该库指明了该服务器是主服务器还是备用服务器; 
用于将服务配置为对于其相关的库来进行外部调用的指令;和 
用于将主服务器中的库配置为完成外部调用的指令,并且向主服务器中的服务返回外部调用的结果并且向备用服务器中的服务转发外部调用的结果。 
附图说明
现在将以举例的方式参照附图来描述本发明,其中: 
图1是根据本发明的一个实施例用于故障切换的系统的示意图; 
图2是图1中的系统工作在常规状态下并且包括在该系统的服务器上执行的各种软件元件的示例性细节的示意图; 
图3是表示在常规状态下操作根据本发明的一个实施例的用于故障切换的系统的方法的流程图; 
图4示出了执行图3中的方法过程中的图2中的系统; 
图5示出了执行图3中的方法过程中的图2中的系统; 
图6示出了执行图3中的方法过程中的图2中的系统; 
图7示出了执行图3中的方法过程中的图2中的系统; 
图8示出了执行图3中的方法过程中的图2中的系统; 
图9示出了执行图3中的方法过程中的图2中的系统; 
图10示出了执行图3中的方法过程中的图2中的系统; 
图11示出了执行图3中的方法过程中的图2中的系统; 
图12示出了执行图3中的方法过程中的图2中的系统; 
图13示出了执行图3中的方法过程中的图2中的系统; 
图14示出了执行图3中的方法过程中的图2中的系统; 
图15是表示根据本发明的另一个实施例的用于故障切换的方法的流程图; 
图16示出了根据本发明的另一个实施例的、服务器中的一个在仅有主服务器的状态下工作的图2中的系统; 
图17示出了根据本发明的另一个实施例的、服务器中的其他服务器在仅有主服务器的状态下工作的图16中的系统; 
图18是示出了根据本发明的另一个实施例的用于操作服务器中的一个服务器在仅有-主服务器的状态下工作的方法的流程图;并且 
图19是示出了根据本发明的另一个实施例的从常规状态向工作在仅有主服务器的状态下的备用服务器进行故障切换的方法的流程图。 
具体实施方式
现在参照图1,由50整体指示用于故障切换的系统。系统50包括多个远程客户机54-1和54-2(此处一般指代“客户机54”和统称指代“客户机组54”。该术语用于附图中的其它元件)。客户机组54与网络58连接。网络58可以是任何类型的计算网络,例如因特网、局域网、广域网或者上述网络的组合。接下来,网络58连接到第一服务器62-1和第二服务器62-2。因此,如同后面将详细描述的,客户机组54中的每一个都可以经由网络58与服务器62-2和服务器62-2通信。 
客户机组54中的每一个都属于将使用它们的相关客户机54向服务器62-2提交请求的个人和/或实体。为了方便,这样的个人或实体在此被称为交易者T,交易者T-1使用客户机54-1,并且交易者T-2使用客户机54-2。每个客户机54通常是计算设备,例如具有键盘和鼠标(或其他输入设备)的个人计算机、显示器(或其他输出设备)以及连接了键盘、鼠标和显示器并且容纳了一个或多个中央处理单元、易失性存储器(即随机访问存储器)、非易失性存储器(即硬盘设备)和允许客户机54在网络58上通信的网络接口的桌面模块。但是应当理解,客户机54可以是任何类型的计算设备,例如个人数字助理、手机、手提电脑、邮件寻呼设备等。 
服务器62可以是能接受和处理来自客户机54的消息的任何类型的计算设备,例如来自加利福尼亚州帕罗奥多的太阳微系统公司的太阳火V480,它运行UNIX操作系统并且具有四个中央处理单元,每个单元在大约900MHZ的频率工作,并且具有大约四十亿字节的随机访问存储器和非易失性存储器设备例如硬盘驱动器。适合服务器62的另一种类型的计算设备是来自科罗拉多州来福兰德市南塔夫脱800号惠普公司的HP ProLiant BL25P。但是,应当强调的是这些特定服务器都仅仅是示意性的,用于服务器62-1和62-2的大量其它类型的计算环境也在本发明的范围之内。由服务器62-1接收和处理的消息的类型并没有具体限制, 但是在本实施例中,服务器62-1运行在线交易系统,并且因此可以处理的消息包括对可以在线交易的证券的买入、卖出和取消等请求。更具体地,服务器62-1可以保持中央匹配引擎(未示出),其中彼此对照并且对照指令的中央知识库来执行请求从而处理证券的交易。 
服务器62-2通常具有与服务器62-1相同的(或者至少基本相同的)计算环境。如同后面将进一步解释的,包括其硬件、操作系统、应用等的计算环境因此被选择为在服务器62-1出现故障时使得服务器62-2可以代替服务器62-1的功能。 
系统50还包括与服务器62-1和服务器62-2互连的副本连接78。在当前实施例中,副本连接78本身包括主连接82和故障保护连接86从而在服务器62-1和服务器62-2之间提供更可靠的通信。 
在后面的描述中,与主服务器62-1、备用服务器62-2和副本连接78相关的更多细节,和通过扩展可以用于实现服务器62-1和62-2的各种硬件类型将变得更清楚。 
在图2中,更详细地示出了服务器62-1和62-2。还要注意的是,在图2中以虚线示出了各种连接,从而表示系统50中的各种元件之间的虚拟连接,这与图1中表示系统50的各种元件之间的物理连接的实线连接不同。因此,图2中示出的这样的连接旨在示出系统50以常规状态工作,由此服务器62-1被指定为主服务器,并且服务器62-2被指定为备用服务器,主服务器62-1服务来自客户机54的请求。将在下面提供关于常规状态的进一步细节和系统50可以工作的其他状态。 
仍然参考图2,服务器62-1和服务器62-2每个都包括多个软件元件,该软件元件在它们各自的硬件环境上执行从而服务来自客户机的请求并且提供故障切换功能。 
服务器62-1和服务器62-2每个都分别包括故障切换代理90-1和90-2。故障切换代理90彼此通信,并且可以周期性地测试连接78和彼此的完整性。在本实施例中,在常规状态中,故障切换代理90-1将周期性地向故障切换代理90-2发送保持-激活信号(例如“你是否激活?”),希望故障切换代理90-2周期性地响应(例如“我是”)该信号。假设这样的请求由故障切换代理90-2响应,并且假设主服务器62-1继续常规 工作,随后系统50将保持处于图2中示出的常规状态。因此,故障切换代理90-1也可以与服务器62-1中的其他软件元件通信,从而指明常规状态可用。 
现在可以知道的是,如同恰当的或者所希望的,故障切换代理90可以操作使用共同组成连接78的主连接82和故障保护连接86。这样,只要主连接82和故障保护连接86之一可以工作,系统50就可以保持常规状态。 
服务器62每个都包括一个或多个可以接收和处理来自一个或多个客户机54的各种请求的服务。服务的类型并不具体受限,并且可以包括任何类型的服务、应用或者处理或者类似的服务,这些服务都需要故障切换。在当前单纯的示范性实施例中,系统50是在线交易系统,服务器62中的每一个都包括指令下达服务94和指令取消服务98。如同名字所暗示的,指令下达服务94被配置为从客户机54接收请求以便为特定的证券下达卖出指令或者买入指令。如同名字所暗示的,指令取消服务98被配置为从客户机54接收请求以便为特定证券取消之前使用服务94下达的,但是在特定指令被实际完成之前的卖出或买入指令。对于电子商务领域的技术人员所知晓的可以实现的其他类型的服务包括但是不限于指令匹配、改变指令、进入交易或者进入交叉交易。在本实施例中,服务94和98是多线程的,但这不是必需的。(如同此处使用的,多线程并不是以狭窄含义使用的,而是指代各种类型的并行处理,其中多个消息被同时处理,这进一步加剧了系统的非确定性本质。例如可以使用多个处理或者使用单一处理的执行中的多个线程来实现多线程。) 
服务器62每个都包括库102,该库可以由相应的服务94和98分别访问。每个库102包括定续器106和高速缓存110。如同在后面将更详细描述的,定续器106响应来自服务94或98对库102的请求而产生顺序编号。定续器106-2在常规状态是未激活的,并且这样的未激活在图2中是由穿过代表定续器106-2的椭圆的斜线表示的。(在其他元件中使用的斜线用于表示该元件在任何给定特定状态是激活的还是未激活的。)高速缓存110是用于由库102执行的外部功能调用的结果的存储区域。 
每个库102还包括保持系统50当前运行状态的状态寄存器114,并且寄存器持续地与它相关的故障切换代理90通信从而确认系统50当前运转的状态。在图2中,系统50在常规状态下工作,并且因此状态寄存器114-1指明服务器62-1当前被指定为主服务器,而状态寄存器114-2指明服务器62-2当前被指定为备用服务器。但是,如同后面将更详细描述的,系统的状态可以根据系统50中的各种不同组件的工作状态改变。 
服务器62中的每一个还包括外部资源代理118,它负责代表服务94和98对外部资源进行外部调用,但是是通过库102进行的。外部资源可以包括在服务94和98之外的但是常驻在每个服务器62上的资源,例如来自操作系统时钟的时间戳(未示出),和/或在每个服务器62之外的资源,例如在电子交易系统的情况下,为各种证券保持市场价格的最新信息的市场反馈(market feed)(未示出),该价格是经由指令下达服务94下达的买入指令或者卖出指令的主题。本领域的技术人员将了解,服务94和98对这样的外部资源进行的调用加剧了系统50的非确定性本质。在常规状态,只有外部资源代理118-1是激活的,而外部资源代理118-2是非激活的。外部资源代理118-2的非激活在图2中是由穿过代表外部资源代理118-2的椭圆的斜线表示的。 
服务器62中的每一个还保持共享的资源122,该资源保持由服务94和98执行的处理步骤的结果,和/或保持可能需要由服务94和98访问的数据。例如,在本实施例的电子交易系统中,共享的资源122保持指令簿,该指令簿仅仅是由服务94下达的一组指令的记录。因此,指令下达服务94可以例如在共享资源122中创建买入指令的记录。这样的买入指令可能需要由指令取消服务98在迟一点时间访问,从而取消买入指令,并且在共享资源122中这样指明。类似地,买入指令将需要被匹配服务(未示出)访问,该匹配服务还在服务器62上执行从而根据市场规则将买入指令与特定对应的卖出指令相匹配,并且更新该买入指令和卖出指令从而指明实现了匹配并且将完成交易。 
服务器62中的每一个都保持复制代理126。在常规状态下,只有复制代理126-2是激活的,而复制代理126-1是未激活的,复制代理126-1的未激活在图2中由穿过代表复制代理126-1的椭圆的斜线表示。如同 后续将详细描述的,激活的复制代理126与对应服务器62中的库102通信从而协助从主服务器向备用服务器镜像信息。 
现在参考图3,用300整体指示根据本发明另一个实施例的在常规状态中处理请求的方法。为了帮助解释该方法,假设使用图2中示出的常规状态下的系统50运行该方法。进一步,方法300的后续讨论将协助进一步了解系统50和它的不同组件。但是仅仅为了方便,方法300的各种处理步骤在图3中被示出为出现在系统50的特定组件中。不能以受限的含义理解这样的指示。但是应当理解,系统50和/或方法30可以变化,并且不需要如同此处所讨论的那样工作,并且方法300中的步骤不需要以所示出的顺序执行。这样的变化在本发明的范围内。这样的变化还适用于此处讨论的其他方法和系统框图。 
首先在步骤310开始,从客户机接收消息。消息的类型并不具体受限,并且通常是用于输入在服务器上执行的一个服务的所期望的类型的补充。当在系统50上执行时,消息因此可以是希望作为指令下达服务94的输入的买入指令或者卖出指令,或者可以是希望用于指令取消服务98的的输入的取消指令。例如,假设由交易者T-1在来自客户机54-1的消息中放入买入指令,并且消息通过网络58发送给指令下达服务94-1,其中根据步骤310,由指令下达服务94-1接收消息。在图4中示出了步骤310的示例性执行,消息M(O1)被显示为来自客户机54-1,并且在指令下达服务94-1处在服务器62-1被接收。表1示出了指令下达消息M(O1)的示例性格式。 
表I
消息M(O 1 )
  字段编号   字段名称   示例性内容
  1   交易者   交易者T-1
  2   证券名称   ABC公司
  3   交易类型   买入
  4   数量   1000单位
更具体地,表I的字段1,名字是“交易者”,它指出了消息M(O1) 的来源交易者是交易者T-1。表II的字段2,名字是“证券名称”,它指出了作为交易的主题的特定证券的名字-在本实施例中是“ABC公司”。表I的字段3,名字是“交易类型”,它指出了该指令是对字段2中指明的证券进行买入、卖出等。在本实施例中,交易类型是“买入”,指明了这是买入的指令。表I的字段4,名字是“数量”,它指明了所希望的证券的数量,在本实施例中,数量是“1000单位”,指明想进行的是买1000个单位的ABC公司的证券。本领域的技术人员现在应该认识到表I中的指令是市场指令,因为指令的价格将基于字段2中的证券的当前市场价格是什么。 
在步骤310已经接收到了消息,方法300前进到步骤315,此时,相关服务将调用用于进一步处理消息而使用的外部数据。继续描述实施例,在步骤315,指令下达服务94-1将向主库102-1进行这样的外部调用。在本实施例中,假设这样的调用是为了: 
i)分配给消息M(O1)中的指令的时间戳,它指明了接收到该指令的时间,和 
ii)在消息M(O1)中的指令中指明的证券的当前市场价格。 
步骤315的执行在图5中示出为点划线,代表从指令下达服务94-1到主库102-1的调用体现在130处。 
接下来,在步骤320,主库102-1将进行调用。主库102-1将咨询故障切换代理114-1从而确定服务器62-1被指定为主服务器,并且系统50处于常规状态。在确认后,主库102-1将响应由服务94-1进行的调用: 
i)对外部资源代理118-1进行外部调用从而获得时间戳; 
ii)对外部资源代理118-1进行进一步的外部调用从而获得当前市场价格。 
因此,在步骤325,外部资源代理118-1将对操作系统时钟(未示出)和市场反馈(未示出)进行外部调用从而分别获得时间戳和当前市场价格。 
步骤320和325的执行在图6中被显示为分别以132和134指明的点划线,代表通过外部资源代理118-1调用时间戳,和通过外部资源代理118-1调用市场价格。 
本领域的技术人员现在应当意识到,外部调用132和134,特别是使得系统50为天生的非确定性,并且因此呈现提供故障切换系统的特别的挑战,即在出现故障切换时,在恢复过程中解决系统的非确定性本质,从而使恢复对于交易者T是透明的。(通过进一步解释,假设系统50是警惕的,这样全部服务器62为每个消息进行外部调用。然而,对于任意给定消息M,对时间戳的调用的精确动作何时发生是至关重要的,从而确保市场公平,服务器62在同样的时间为同样的消息调用时间戳是极不可能,并且因此每个服务器62将为同样的消息M分配不同的时间优先级,导致了同样的机器处理产生不同的结果。类似地,对于任何给定的消息M,进行市场价格调用的准确时刻也是至关重要的,从而确保市场公平,服务器62都在同样的时间为同样的消息调用时间戳是极不可能,并且因此每个服务器62对于同样的消息M具有不同的市场价格。在故障切换时,每个服务器62不一定具有一致的商业数据,并且故障切换将是无意义的。)通过进一步阅读,本领域的技术人员将认识到如何解决这样的问题,同时认识到本发明的其它方面。 
在步骤330,外部调用132和134的结果返回主库102-1。在步骤335,全部调用132和134的结果都存储在高速缓存110-1中,并且返回服务94-1。 
继续讨论实施例,假设调用132的结果是时间戳2000年1月5日12:00PM,并且假设调用134的结果是市场价格$2.00。在表II和图7中示出了高速缓存110-1中存储的这些结果。 
表II
步骤335之后高速缓存110-1的示例性内容
  记录编号   字段编号   字段名称   示例性内容
  1   1   消息   M(O1)
  1   2   时间戳   2000年1月5日  12:00PM
  1   3   市场价格   $2.00
在步骤340,服务接收到全部调用结果。继续描述本实施例,存储 在表II中的调用将返回到也在图7中示出的服务94-1。 
接下来,在步骤345,服务将请求共享的资源。在本实施例中,请求是由服务94-1对库102-1提出的。接下来,在步骤350,库102-1将向共享资源122-1发布指令从而“闭锁”它,并且从而阻止任何其他服务(例如服务98-1,或者服务94-1中的另一个线程)访问共享资源122-1。(如同将在后面详细描述的,如果共享资源122-1已经被闭锁,随后方法300将暂停在步骤345,直到共享资源122-1解锁)。步骤345和350的执行在图8中被显示为点划线,点划线表示了以140指示的共享资源的请求。共享资源122-1的闭锁由挂锁138表示。 
接下来,在步骤355,返回共享的资源顺序编号。该步骤可以由库102-1使用顺序编号106-1执行从而产生与消息M(O1)相关的顺序编号。继续描述本实施例,假设产生了顺序编号“1”。表III和图8中示出了在高速缓存110-1中存储这些结果。注意表III是表II的更新。 
表III
步骤335之后高速缓存110-1的示例性内容
  记录编号   字段编号   字段名称   示例性内容
  1   1   消息   M(O1)
  1   2   时间戳   2000年1月5日  12:00PM
  1   3   市场价格   $2.00
  1   4   顺序编号   1
接下来,在步骤360,请求复制。在本实施例中,由服务94-1执行步骤360,该服务向库102-1发送指令以便执行复制。在步骤365,开始对消息、调用结果和顺序编号的复制。在本实施例中,由库102-1复制表III的内容。下面进一步讨论步骤365。 
在步骤370,使用调用的结果和闭锁的共享资源来处理消息。在本实施例中,由服务94-1执行本实施例步骤370,该服务使用表III的内容,并且执行与服务94-1相关的处理从而从表III产生结果。由于服务94-1是指令下达服务,并且消息M(O1)代表买入指令,随后在步骤370,服 务94-1将产生将被记录在共享资源122-1中的买入指令,用于后续与来自例如交易者T-2卖出指令进行匹配,或者用于其他交易处理,例如使用服务98-1的指令取消。 
为了本实施例,假设在共享资源122-1中没有可以与消息M(O1)匹配的指令,并且因此步骤370的结果将是简单地产生与消息M(O1)相关的买入指令的细节的完整记录。表IV示出了步骤370的执行的示例性结果。 
表IV
步骤370执行结果的示例
  记录编号   字段编号   字段名称   示例性内容
  1   1   时间戳   2000年1月5日  12:00PM
  1   2   市场价格   $2.00
  1   3   顺序编号   1
  1   4   交易者   交易者T-1
  1   5   证券名称   ABC公司
  1   6   交易类型   买入
接下来,在步骤375,步骤370的执行结果被写入共享资源,并且随后共享资源被解锁。在步骤370由服务94-1产生表IV,并且在图9中示出了在步骤375中在共享资源122-1存储的那些结果。 
接下来,在步骤380,服务确认在步骤375已经写好了结果,并且在步骤400已经执行了复制。在当前实施例中,在步骤380,服务94-1将等待来自共享资源122-1的对已经将表IV写入共享资源122-1的确认。类似地,在步骤380,服务94-1将等待来自步骤400的对在步骤365开始的复制已经完成的确认。下面将详细解释步骤365和400。 
(在另一个可选实施例中,步骤380在前进到步骤390之前,不需要等待来自步骤400的确认。但是步骤380将仍然希望最终从步骤400接收到这样的确认,并且如果这样的确认没有出现,那么步骤380将认为服务器62-2出现了故障,其中事件服务器62-1将如后面将解释的那 样执行方法600。本领域的技术人员将认识到这是操作的异步形式,并且是在速度优先于服务器62-2的状况确认的某些环境下的理想选择。) 
接下来,在步骤390,确认被返回给客户机。在当前实施例中,在步骤390服务94-1将向客户机54-1发送确认消息,该消息M(O1)根据交易者T-1所请求的方式被进行处理。 
需要重申的是,方法300的步骤390(即在常规状态中的操作)一直到步骤380才完成,步骤380接下来也是直到在步骤365开始的复制已经完成时才完成。现在返回步骤365,消息、调用结果和共享资源顺序编号都被复制了。在本实施例中,库102-1响应在步骤360来自服务94-1的请求,执行步骤365。因此,库102-1将对表III的内容打包并且将它发送到复制代理126-2。 
图10中示出了步骤365、370、375、395、400和390的执行。(图10基于图9中的步骤370和375的执行)。在步骤365,由142指明的线示出了从库102-1的高速缓存110-1将表III发送给复制代理126-2。在图10中示出了如之前参照图9讨论的步骤370和375。在步骤395,消息、调用结果和共享资源顺序编号的队列由出现在复制代理126-2中的标记有表III的椭圆表示。在步骤400,由144指明的线所代表的是从复制代理126-2向服务94-1(通过库102-1传递)返回复制的确认。在步骤390,由146指明的点划线代表的是从服务94-1向客户机54-1返回确认。 
前述内容基本完成了对常规状态操作中,由主服务器62-1处理一个消息的描述。现在应当理解,根据对步骤310到400进行的上述描述,主服务器62-1可以串行地和/或并行地处理多个消息。例如,当服务94-1处理一个消息M时,类似的服务98-1还可以基本上如同前面描述的那样处理另一个消息M,而库102-1同时与服务94-1和98-1交互。此外,当服务94-1的一个线程处理一个消息M时,服务94-1的另一个线程还可以基本如前面描述的那样处理另一个消息M,而库102-1与服务的两个线程交互。步骤350确保共享资源122-1是闭锁的从而避免服务94-1和98-1(或者其线程)之间的争夺,以便确保在一个时间那些服务中只有一个与共享资源122-1交互。(注意“交互”包括任何类型的功能, 包括但是不限于,读、写和删除。)作为需要被避免的情况的一个实施例,指令取消服务98-1将对共享资源122-1进行读写,同时它是闭锁的以便取消给定的指令,这将阻止匹配服务(未示出)对被取消的指令匹配。 
借助同样的记号(token),步骤355使用定序器106-1为每个消息M产生唯一的顺序编号,并且不考虑服务94-1或者98-1(或者其线程)哪个处理消息M。因此,可能有很多次,当特定服务94-1或者98-1(或者其线程)在步骤345请求共享资源122-1而共享资源122-1是闭锁的的情形,因此特定服务(或者其线程)将在步骤345暂停,直到共享资源122-1被解锁,随后从步骤345继续开始。 
已经描述了常规状态工作中,由主服务器62-1进行的消息处理,对方法300的讨论现在转向步骤405、后续步骤以及由第二服务器62-2进行消息处理的执行。 
再次参考图3,在步骤405,根据共享资源顺序编号发送消息、调用结果和顺序编号。继续讨论前面的实施例,此时,消息M(O1)(即来自表III的记录1的字段1的内容)将被发送到服务94-2,同时调用结果(即来自表III的记录1的字段2和3的内容)和顺序编号(即来自表III的记录1的字段4的内容)将被发送到第二库102-2。 
因此,在步骤310S,服务94-2将从复制代理126-2接收消息M(O1),以在步骤310中服务94-1将从客户机54-1接收消息M(O1)几乎相同的方式。从服务94-2的角度考虑,已经从客户机接收了消息M(O1)。此时,现在变得明显的是,服务94-2基本与服务94-1相同。(类似地,服务98-2基本与服务98-1相同)。服务94-2将以与在服务器62-1中工作的服务94-1相同的方式工作在服务器62-2中。换言之,服务94-2执行的步骤310S、315S、340S、345S、360S、370S、380S和390S的方式,与服务器62-1中服务94-1执行的步骤310、315、340、345、360、370、380和390的方式相同。服务器94-1和服务器94-2都不清楚它们工作在其中的特定服务器是被指定为主服务器还是备用服务器。这体现了本发明的多个优点中的一个,一次可以为两个(或多个)服务器开发服务,而不用必须为被指定为主服务器的服务器开发一组服务,为指定 为备用服务器的服务器开发一组服务。 
但是每个库102,与其相应的故障切换代理90和状态寄存器114沟通后,明了其服务器62是被指定为主服务器还是备用服务器。因此,当服务94-2执行步骤315S时,并且进行调用,库102-2将不会利用外部资源代理118-2,但是在步骤415,将返回由库102-2在步骤410接收到的调用结果(即来自表III的记录1的字段2和3的内容)。 
在图11中示出了步骤405、310S、410的执行。在图12中示出了步骤315S、415和340S的执行。 
借助同样的记号,当服务94-2执行步骤345S并且请求共享资源时,库102-2通过在步骤420闭锁共享资源122-2并且在步骤425通过返回共享资源的顺序编号(即来自表III的记录1的字段4的内容)来进行响应,所述顺序编号由库102-2在步骤410接收,并且没有使用定续器106-2。 
在图13中示出了步骤345S、420和425的执行。 
借助同样的记号,当服务94-2执行步骤360S并且请求复制时,库102-2将在步骤430不是通过实际执行复制、而是在步骤380S向服务94-2返回复制确认来进行响应,基本上模仿步骤400。步骤370S和435因此基本与步骤370和375的执行类似,这样表IV的内容直接由服务94-2单独产生,并且在共享资源122-2中存储。 
在图14中示出的了步骤370S和435的执行。 
类似地,步骤380S和390S以与步骤380和步骤390类似的方式执行,除了在步骤390S返回的确认被返回到复制代理126-2,而不是客户机54-1。 
此时,在方法300的执行的结果处,现在将知道处理消息M(O1)的结果目前被作为表IV而同时存储在共享资源122-1和共享资源122-2中。还可以注意到,步骤310S、315S、340S、345S、360S、370S、380S、390S和步骤310、315、340、345、360、370、380、390的执行之间的延迟实际上非常小。任何这样的延迟可以由在步骤365的网络延迟和步骤395和405的处理确定,该处理非常迅速。无论如何,系统50可以被配置以便延迟比向硬盘中写入备份信息快得多,这也是本发明的另一 个优势。 
因此,方法300可以被用于处理消息从而使用消息94-1(并且如同由服务94-2所跟踪的(shadowed))下达买入和卖出证券的指令。类似地,方法300可以被用于使用服务98-1(并且如同由服务98-2所跟踪的)取消这些指令。附加服务可以被创建并包含在服务器62-1中,也可以被很容易地下达到服务器62-2上从而为那些服务提供可靠的故障切换,但是不需要要求用于该服务的一组代码位于服务器62-1上,而要求用于该服务的另一组代码位于服务器62-2上,两个服务器所需要的是用于特定服务的一组代码。从特定角度考虑可能更为明显的是,在出现故障切换时,系统50可以完全地保护结果,而不会出现通常伴随向硬盘写信息而出现的速度损失。 
由于在常规状态下,服务器62-2保存有在服务器62-1中执行的处理的最新镜像,通过使服务器62-2在服务器62-1出现故障的时候接管服务器62-1的处理任务,可以迅速地恢复服务器62-1的故障。图15示出了一个流程图,该流程图描述了管理一对服务器的方法,其中服务器中的一个被指定为主服务器,而另一个服务器被指定为备用服务器。当使用系统50实现时,在步骤505,确定是否两个服务器都是可用的。通过使用故障切换代理90和状态寄存器114执行步骤505。如果都可用,则步骤505前进至步骤510,在此处系统50以之前参照方法300描述的那样工作于常规状态。步骤505和步骤510继续循环,除非确定了两个服务器不是都可用,在该情况下方法将前进到步骤520。在步骤520,确定是否只有第一服务器是可用的。例如,如果故障切换代理90-1不管因为什么原因不能与故障切换代理90-2建立连接,随后在步骤520确定只有第一服务器是可用的,并且方法500将前进到步骤530,此时系统50将以仅有主服务器状态工作。故障切换代理90-1不能与故障切换代理90-2建立连接的可能原因包括但不限于,服务器62-2出现了致命的损毁或者切断了连接78。 
如果第一服务器不可用,随后方法从步骤520前进到步骤540,在该步骤确定是否只有第二服务器可用。如果不可用,方法500以异常结束。但是如果确定第二服务器可用,则方法500从步骤540前进到步骤 550。在步骤550,系统50进行故障切换,这样由第二服务器执行后续处理。接下来,在步骤560,操作继续,进一步处理是以仅有第二服务器的状态下进行的。方法500随后在步骤560和570之间循环,直到两个服务器重新都变为可用,此时方法500前进到步骤510,并且系统返回到常规状态。 
图16示出了处于仅有主服务器状态下的系统50的实施例,其中服务器62-1被指定为主服务器,而服务器62-2是脱机的(或者由于连接78的故障引起的其他不可用)。在图16中,由于服务器62-1以仅有主服务器状态工作,状态寄存器114-1将指明服务器62-1当前被指定为主服务器,并且以仅有主服务器状态工作。 
尽管在没有示出,注意系统50同时还可以被配置为常规状态,其中服务器62-2被指定为主服务器,同时服务器62-1被指定为备用服务器。 
显示为流程图的图18描述了方法600,该方法用于在服务器62只有一个可用时处理消息。在方法500的步骤530中,方法600将由服务器62-1在方法500的步骤530中执行,或者在方法500的步骤560中由服务器62-2所执行。本领域的技术人员现在应当理解,方法600基本反映了方法300中的主服务器的操作。更具体地,可以注意到方法300的步骤310-360和步骤370-390对应于方法600中的对应步骤,对应步骤带有相同的数字和后缀”F”。但是方法600的步骤365F与方法300的步骤365不同。步骤365F对应于方法300的步骤430,在步骤365F,库102通过简单地模仿副本已经被接收到的确认来响应来自服务94(或98)的进行复制的请求,这样服务94(或98)将在步骤380F接收这样的确认,并且允许方法600前进到步骤390F。 
显示为流程图的图19描述了方法700,该方法用于从主服务器向备用服务器进行故障切换,备用服务器可以被用于实现方法500的步骤550。如果故障切换代理114-2发现服务器62-1出现了故障(例如损毁或者因为任何原因而变得不再可用),例如将由服务器62-2执行方法700。由于客户机54已经在和服务器62-1通信,客户机54将继续与服务器62-1交互,尽管服务器62-2认为服务器62-1发生故障并且服务器62-2认为它是主服务器。在那种情况下,方法700将在步骤710开 始,此时复制代理队列将被清除。在上面讨论的实施例中,根据步骤405(和随后的步骤310S、315S、340S、345S、360S、370S、380S、390S、410、415、420、425、430和435),服务器62-2将继续处理在复制代理126-2中存储的全部数据,以便清除和复制在服务器62-1出现故障之前、在服务器62-1中正在处理的全部消息(和相关外部调用)的处理。在出现服务器62-1在步骤370处出现故障的情况时,服务器62-2将从执行恢复协议的客户机接收副本消息,例如中断(GAP)恢复,或者作为另一个实施例,在申请人同时提交的申请中描述的恢复类型、如同在美国已经公布的申请US20050138461中所描述的那样。由于客户机将不再从服务器62-1接收消息已经被处理的确认。在这种情况下,服务器62-2被配置为识别副本消息,并且简单地返回同样的响应,而不会尝试重新处理同样的消息。 
接下来,在步骤720,复制代理将被去激活。在本实施例中,复制代理126-2将被去激活,这样它将不再保留从服务器62-1接收到的数据队列,或者被配置为向服务94-2和98-2发送消息。在步骤730,外部资源代理和定序器将被激活。在本实施例中,外部资源代理118-2将变为激活,这样它可以被配置为执行在方法600的步骤325F和步骤330F中示出的外部功能调用。类似地,定序器106-2也被激活,这样它将被配置为分配在方法600的步骤355F中示出的顺序编号。接下来,在步骤740,故障切换代理被设定为指明仅有主服务器状态。在实施例中,故障切换代理114-2被设置为指明仅有主服务器状态,这样库102-2知道按照方法600的步骤320F、335F、350F、355F和365F进行操作。接下来,在步骤720,向客户机通知出现了服务器。在本实施例中,服务器62-2将通过网络58向客户机54宣布服务器62-2准备好了从客户机54接收和处理消息。实现该过程的方式并不是特定的,在方法300的开始前,服务器62-1也会以基本相同方式将向客户机54宣告自己。会话协议可以执行中断恢复,这样各方可以重发送对应方可能未接收到的通信。此处,系统50处于图17种示出的状态,其中,服务器62-2被指定为主服务器,并且系统50已经准备好了将服务器62-2作为主服务器,以仅有主服务器的状态工作。此处,该方法可以返回方法500的步骤560, 这样可以根据方法600接收和处理从客户机接收的消息。 
在此处仅仅讨论了本发明的各种特征和组件的特定组合,本领域的技术人员明了可以使用所公开的特征和组件的理想的子集和/或这些特征和组件的变化组合。例如,在系统50包括两个服务器62-1和62-2的同时,可以预期能够使用任何数量的服务器。一个服务器将被指定为主服务器,而任何数量的附加服务器可以被指定为备用服务器,并且使用此处合理的修改的教导以串行或者并行的方式结合在一起。这样的附加服务器将与此处公开的服务器62有基本相同的计算环境和结构,并且无论如何将具有相同的与库和其他软件元件交互的服务从而代表那些服务进行外部调用(在主服务器的情况下),或者从而代表那些服务的镜像副本提供那些外部调用的复制(在备用服务器的情况下)。 
还应当理解方法300可以变化。例如,方法300可以被配置为完全同步工作,这样只要主和第二共享资源中已经写入了由特定服务执行的处理的结果,主服务器将仅仅向客户机确认消息已经被处理,可以通过改变方法300使得只有在步骤380S被执行后才会执行步骤400。 

Claims (6)

1.一种用于故障切换的系统,包括:
至少一个客户机,选择性地可连接到经由网络连接的至少两个互连的服务器之一;当被连接到所述客户机时,所述服务器中的一个被指定为主服务器,并且当未连接到所述客户机时,所述服务器中的剩余服务器被指定为备用服务器;所述至少一个客户机被配置为向所述主服务器发送消息;
所述服务器中的每一个被配置为经由处理不同类型的所述消息的多个服务来处理全部的所述消息;所述服务中的每一个被配置为访问和/或更新由每个所述服务器基于处理所述消息的结果而保持的共享资源;
所述服务器中的每一个都保持与所述服务相关的库;
当由所述主服务器保持时,所述库被配置为通过下述步骤响应来自与所述消息相关的服务的请求:
i)执行对外部资源的至少一个外部调用;
ii)基于来自与所述消息相关的服务的请求来对每个消息确定顺序;
iii)返回所述外部调用和所述顺序的结果给所述消息相关的所述服务,
iv)在由所述服务共享的高速缓存中存储所述外部调用和所述顺序的结果;
并且所述主服务器和所述备用服务器被连接,这样:
i)在所述主服务器接收的来自所述至少一个客户机的消息;以及
ii)所述外部调用在高速缓存中存储的结果;
被镜像到所述备用服务器;
当由所述备用服务器保持时,为了响应来自与所述消息相关的服务的请求,所述库被配置为通过:
i)使用从所述主服务器镜像来的所述被高速缓存存储的结果的内容来返回所述外部调用的结果;
所述备用服务器以与所述主服务器相同的顺序,使用所述高速缓存来处理所述消息,这样在所述主服务器和所述备用服务器中存储的所述共享资源是相同的,并且如果所述主服务器发生故障,备用服务器变成被指定为所述主服务器并且以透明的方式代表所述客户机来继续处理附加消息。
2.根据权利要求1所述的系统,其特征在于,所述高速缓存被保持在易失性存储器中。
3.根据权利要求1所述的系统,其特征在于,所述系统是电子交易系统中的一部分,并且所述服务是交易引擎的一部分;所述系统包括两个附加客户机,每个都向所述主服务器提交两个附加消息;所述附加消息中的每一个被以与权利要求1中所述消息相同的方式被处理。
4.根据权利要求3所述的系统,其特征在于,权利要求1中所述消息中的一个代表买入指令;所述两个附加消息在不同的但是几乎相同的时间被接收到,所述两个附加消息都代表符合所述买入指令的条件的卖出指令;这样如果主服务器发生故障,备用服务器继续处理所述的权利要求1中所述消息中的一个和所述两个附加消息,这样所述卖出指令中的较早的一个与所述买入指令匹配。
5.根据权利要求4所述的系统,其特征在于,所述外部资源是操作系统时间戳和市场反馈。
6.根据权利要求1所述的系统,其特征在于,所述外部资源是操作系统时间戳。
CN200780035109.7A 2006-08-04 2007-02-19 故障切换系统和方法 Expired - Fee Related CN101523355B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/498,802 2006-08-04
US11/498,802 US7725764B2 (en) 2006-08-04 2006-08-04 Failover system and method
PCT/CA2007/000246 WO2008014585A1 (en) 2006-08-04 2007-02-19 Failover system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310234533.1A Division CN103593267A (zh) 2006-08-04 2007-02-19 故障切换系统和方法

Publications (2)

Publication Number Publication Date
CN101523355A CN101523355A (zh) 2009-09-02
CN101523355B true CN101523355B (zh) 2013-07-24

Family

ID=38996808

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310234533.1A Pending CN103593267A (zh) 2006-08-04 2007-02-19 故障切换系统和方法
CN200780035109.7A Expired - Fee Related CN101523355B (zh) 2006-08-04 2007-02-19 故障切换系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310234533.1A Pending CN103593267A (zh) 2006-08-04 2007-02-19 故障切换系统和方法

Country Status (8)

Country Link
US (4) US7725764B2 (zh)
EP (3) EP2049999B1 (zh)
JP (3) JP5355400B2 (zh)
CN (2) CN103593267A (zh)
AU (1) AU2007281055B2 (zh)
CA (2) CA2923373A1 (zh)
MX (1) MX2009001241A (zh)
WO (1) WO2008014585A1 (zh)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7870265B2 (en) 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US8589953B1 (en) * 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US9141481B1 (en) * 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
CN101346634B (zh) 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US8171466B2 (en) 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8001250B2 (en) 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7434096B2 (en) 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US20080086567A1 (en) * 2006-10-10 2008-04-10 Bea Systems, Inc. SIP server architecture for improving latency in message processing
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8195340B1 (en) * 2006-12-18 2012-06-05 Sprint Communications Company L.P. Data center emergency power management
GB0706494D0 (en) * 2007-04-03 2007-05-09 British Telecomm Computer telephony system
US7685044B1 (en) * 2007-05-11 2010-03-23 Morgan Stanley Low latency trading system
CA2630014C (en) * 2007-05-18 2014-05-27 Nec Infrontia Corporation Main device redundancy configuration and main device replacing method
US8201016B2 (en) * 2007-06-28 2012-06-12 Alcatel Lucent Heartbeat distribution that facilitates recovery in the event of a server failure during a user dialog
CN101483495B (zh) 2008-03-20 2012-02-15 华为技术有限公司 一种背景噪声生成方法以及噪声处理装置
US20100017321A1 (en) * 2008-07-18 2010-01-21 Chicago Mercantile Exchange, Inc. Adaptive Implied Spread Matching
US20100070471A1 (en) * 2008-09-17 2010-03-18 Rohati Systems, Inc. Transactional application events
WO2010090325A1 (ja) 2009-02-09 2010-08-12 日本電気株式会社 通信システム、通信装置、制御装置、制御方法及びプログラム
US8682954B2 (en) * 2009-07-15 2014-03-25 International Business Machines Corporation Replication in a network environment
JP5418070B2 (ja) * 2009-08-27 2014-02-19 富士通株式会社 業務操作支援方法及びコンピュータ装置
US8335765B2 (en) * 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US10572937B2 (en) 2010-06-17 2020-02-25 Chicago Mercantile Exchange Inc. Generating implied orders based on electronic requests for quotes
JP5441834B2 (ja) * 2010-06-25 2014-03-12 古野電気株式会社 航法データ共有システム及び航法機器
US8578202B2 (en) * 2010-07-29 2013-11-05 Ca, Inc. System and method for providing high availability for distributed application
JP5481315B2 (ja) * 2010-08-20 2014-04-23 株式会社東芝 証券売買システム及び装置
US9002946B2 (en) * 2010-08-25 2015-04-07 Autodesk, Inc. Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server
US8589732B2 (en) 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
KR101413298B1 (ko) 2010-11-04 2014-06-27 한국전자통신연구원 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법
US8451828B2 (en) 2010-11-23 2013-05-28 Mitel Network Corporation Registering an internet protocol phone in a dual-link architecture
CA2745823C (en) * 2010-11-23 2014-06-17 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8345840B2 (en) 2010-11-23 2013-01-01 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
JP2013025365A (ja) * 2011-07-15 2013-02-04 Nec Corp 二重化システムにおける予備装置の障害通知方法
CN102891762B (zh) * 2011-07-20 2016-05-04 赛恩倍吉科技顾问(深圳)有限公司 连续处理网络数据的系统及方法
US8745157B2 (en) * 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
CN102541498B (zh) * 2011-12-20 2015-02-25 人民网股份有限公司 一种通过移动终端在pc服务器上显示图片的方法及系统
CN103176516B (zh) * 2011-12-23 2016-07-06 英业达股份有限公司 机柜系统及机柜系统的监控方法
JP6026142B2 (ja) * 2012-06-04 2016-11-16 株式会社日立製作所 複数計算機が独立動作する制御システム
US9058326B1 (en) 2012-06-29 2015-06-16 Emc Corporation Recovery and flush of endurant cache
US8862642B1 (en) * 2012-06-29 2014-10-14 Emc Corporation Endurant cache
EP4191431A1 (en) * 2013-03-12 2023-06-07 Toshiba Solutions Corporation Database system, program, and data processing method
WO2014197963A1 (en) * 2013-06-13 2014-12-18 Tsx Inc. Failover system and method
CN105379229A (zh) * 2013-06-13 2016-03-02 多伦多证券交易所 使用分段队列远程数据存取的设备互联失效备援系统和方法
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US9280426B2 (en) * 2013-07-24 2016-03-08 Solar Turbines Incorporated System and method for server redundancy
JP6307858B2 (ja) * 2013-11-29 2018-04-11 富士通株式会社 伝送装置、伝送システム、及び監視制御方法
CN103942127B (zh) * 2014-02-21 2016-08-24 上海华力微电子有限公司 一种wat测试的备份结构及备份方法
WO2015145586A1 (ja) * 2014-03-25 2015-10-01 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム
US9578112B2 (en) * 2014-04-30 2017-02-21 Jive Communications, Inc. Reliability of a connection during a communication session on a network device
CN104052799B (zh) * 2014-05-23 2018-01-26 上海爱数信息技术股份有限公司 一种利用资源环实现高可用存储的方法
CN105629907B (zh) * 2014-10-30 2018-12-28 台达电子工业股份有限公司 区域控制系统及其自动配置方法
TWI556076B (zh) 2014-10-30 2016-11-01 台達電子工業股份有限公司 區域控制系統及其自動配置方法
CN105550064A (zh) * 2015-12-04 2016-05-04 广州中海达定位技术有限公司 基于gnss接收机的存储器固件双重备份方法及装置
CN105573861B (zh) * 2015-12-08 2019-01-25 曙光信息产业股份有限公司 分布式文件系统中小文件的修复方法和装置
CN105550065A (zh) * 2015-12-11 2016-05-04 广州华多网络科技有限公司 一种进行数据库服务器通信管理的方法和装置
CN105573863A (zh) * 2015-12-14 2016-05-11 北京尚易德科技有限公司 一种索引文件恢复方法、装置及视频监控系统
US10248709B2 (en) 2015-12-15 2019-04-02 Microsoft Technology Licensing, Llc Promoted properties in relational structured data
US10235406B2 (en) 2015-12-15 2019-03-19 Microsoft Technology Licensing, Llc Reminder processing of structured data records among partitioned data storage spaces
US10599676B2 (en) 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
US11226985B2 (en) 2015-12-15 2022-01-18 Microsoft Technology Licensing, Llc Replication of structured data records among partitioned data storage spaces
CN106685697B (zh) * 2016-12-06 2020-03-13 中国工商银行股份有限公司 一种异常边际消息数据恢复处理的方法及系统
CN106789257B (zh) * 2016-12-23 2019-03-05 中科星图股份有限公司 一种云系统服务器状态可视化管理方法
CN106648996A (zh) * 2017-01-10 2017-05-10 郑州云海信息技术有限公司 一种存储管理软件的用户数据保护方法
CN111327703B (zh) * 2017-03-28 2022-05-31 创新先进技术有限公司 一种基于区块链的共识方法及装置
CN107480002B (zh) * 2017-07-26 2020-06-30 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107886328B (zh) * 2017-11-23 2021-01-26 深圳壹账通智能科技有限公司 交易处理方法、装置、计算机设备及存储介质
CN108415797A (zh) * 2018-03-05 2018-08-17 山东超越数控电子股份有限公司 一种避免服务器故障切换时数据库数据丢失的方法
DE202019005483U1 (de) * 2018-07-06 2020-10-28 Snowflake Inc. Datenreplikation und Datenausfallsicherung in Datenbanksystemen
CN109472680A (zh) * 2018-10-26 2019-03-15 中国银行股份有限公司 一种账务处理方法及系统
US11489730B2 (en) 2018-12-18 2022-11-01 Storage Engine, Inc. Methods, apparatuses and systems for configuring a network environment for a server
US11176002B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11252019B2 (en) 2018-12-18 2022-02-15 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11178221B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10887382B2 (en) * 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10983886B2 (en) 2018-12-18 2021-04-20 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10958720B2 (en) 2018-12-18 2021-03-23 Storage Engine, Inc. Methods, apparatuses and systems for cloud based disaster recovery
CN109992384B (zh) * 2019-03-18 2020-07-14 北京方鸿智能科技有限公司 服务注册发现协调系统及其方法
CN110298758B (zh) * 2019-07-09 2021-10-01 恒生电子股份有限公司 订单申报方法及装置
US11360866B2 (en) * 2020-04-14 2022-06-14 International Business Machines Corporation Updating stateful system in server cluster
CN112669148A (zh) * 2020-12-22 2021-04-16 深圳市富途网络科技有限公司 一种处理订单的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742792A (en) * 1993-04-23 1998-04-21 Emc Corporation Remote data mirroring
CN1714545A (zh) * 2002-01-24 2005-12-28 艾维西系统公司 容错的数据通信的方法和系统
CN1906593A (zh) * 2003-11-24 2007-01-31 Tsx公司 用于故障解决的系统和方法

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5307481A (en) * 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5305200A (en) 1990-11-02 1994-04-19 Foreign Exchange Transaction Services, Inc. Financial exchange system having automated recovery/rollback of unacknowledged orders
GB9027249D0 (en) * 1990-12-17 1991-02-06 Reuters Ltd Offer matching system
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
DE69119222T2 (de) 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
US5437022A (en) 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
GB2281644A (en) 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
US5987432A (en) 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
JP3611894B2 (ja) * 1995-03-30 2005-01-19 富士通株式会社 二重化構成をもつシステム制御装置
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
GB9601584D0 (en) 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5796934A (en) 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US6101497A (en) 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US6000020A (en) 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US7389312B2 (en) 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6108300A (en) 1997-05-02 2000-08-22 Cisco Technology, Inc Method and apparatus for transparently providing a failover network device
US6490610B1 (en) 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199055B1 (en) 1997-11-05 2001-03-06 E-Stamp Corporation System and method for providing fault tolerant transcriptions over an unsecured communication channel
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
DE19836347C2 (de) 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
US6959323B1 (en) * 1998-08-27 2005-10-25 Lucent Technologies Inc. Scalable atomic multicast
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6202149B1 (en) 1998-09-30 2001-03-13 Ncr Corporation Automated application fail-over for coordinating applications with DBMS availability
GB2343020A (en) 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6697960B1 (en) * 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
US7454372B1 (en) * 1999-07-02 2008-11-18 The Nasdaq Stock Market, Inc. Market event alerts and user access to monitoring data
US7082410B1 (en) * 1999-07-02 2006-07-25 The Nasdaq Stock Market, Inc. Line handler
US8239303B2 (en) 1999-09-23 2012-08-07 The Nasdaq Omx Group, Inc. Match-off of order flow in electronic market system
US6647410B1 (en) * 1999-11-05 2003-11-11 Reuters Limited Method, apparatus and program for delivery and display of information from dynamic and static data sources
US6338126B1 (en) 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6574750B1 (en) 2000-01-06 2003-06-03 Oracle Corporation Preserving consistency of passively-replicated non-deterministic objects
US6480970B1 (en) 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US7058853B1 (en) 2000-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Highly available transaction processing
WO2002001472A1 (en) * 2000-06-26 2002-01-03 Tradingscreen, Inc. Securities trading system with latency check
US6701455B1 (en) * 2000-08-29 2004-03-02 Hitachi, Ltd. Remote copy system with data integrity
US6823336B1 (en) 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US20020120546A1 (en) * 2000-12-18 2002-08-29 Paul Zajac Mutli-interface financial transaction system and method
JP2002189570A (ja) 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
US6681339B2 (en) 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7539746B2 (en) * 2001-02-01 2009-05-26 Emc Corporation Highly available transaction failure detection and recovery for electronic commerce transactions
US7480633B2 (en) * 2001-02-13 2009-01-20 American Express Bank Ltd. Real-time brokerage account application system and method
US6715098B2 (en) * 2001-02-23 2004-03-30 Falconstor, Inc. System and method for fibrechannel fail-over through port spoofing
US6523087B2 (en) 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
US6772363B2 (en) * 2001-03-12 2004-08-03 Hewlett-Packard Development Company, L.P. Fast failover database tier in a multi-tier transaction processing system
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
US20030055776A1 (en) * 2001-05-15 2003-03-20 Ralph Samuelson Method and apparatus for bundling transmission rights and energy for trading
US20020174058A1 (en) * 2001-05-18 2002-11-21 Baghdady George J. System for providing orders from a market analysis platform to the electronic communication network
US6928580B2 (en) * 2001-07-09 2005-08-09 Hewlett-Packard Development Company, L.P. Distributed data center system protocol for continuity of service in the event of disaster failures
DE60233877D1 (de) 2001-07-16 2009-11-12 Sap Ag Parallelisierte nur-redo-protokollierung und behebung für datenbanksysteme mit hochverfügbarem hauptspeicher
JP4295089B2 (ja) * 2001-07-16 2009-07-15 ビーイーエイ システムズ, インコーポレイテッド セッション複製及びフェイルオーバーのための方法及び装置
US6910150B2 (en) 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
US7069468B1 (en) * 2001-11-15 2006-06-27 Xiotech Corporation System and method for re-allocating storage area network resources
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7996517B2 (en) 2002-01-23 2011-08-09 Novell, Inc. Transparent network connection takeover
US20040078625A1 (en) * 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
US7107355B2 (en) * 2002-02-11 2006-09-12 Sun Microsystems, Inc. High availability lightweight directory access protocol service
US20030167224A1 (en) * 2002-02-22 2003-09-04 Periwal Vijay K. Sequential execution system of trading orders
US7143307B1 (en) * 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
GB0206604D0 (en) * 2002-03-20 2002-05-01 Global Continuity Plc Improvements relating to overcoming data processing failures
US6978396B2 (en) * 2002-05-30 2005-12-20 Solid Information Technology Oy Method and system for processing replicated transactions parallel in secondary server
US9311673B2 (en) * 2002-06-05 2016-04-12 Nasdaq, Inc. Security transaction matching
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments
US6928577B2 (en) 2002-07-29 2005-08-09 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US7058850B2 (en) 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
US7752116B2 (en) * 2002-10-30 2010-07-06 Nasdaq Liffe Markets, Llc Liquidity engine for futures trading exchange
US7769650B2 (en) * 2002-12-03 2010-08-03 Jp Morgan Chase Bank Network-based sub-allocation systems and methods for swaps
US20040148247A1 (en) * 2003-01-24 2004-07-29 Lawrence Miller Network-based systems, methods, and software for initiating or executing financial transactions
JP2004259079A (ja) 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
US20050152406A2 (en) * 2003-10-03 2005-07-14 Chauveau Claude J. Method and apparatus for measuring network timing and latency
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US6996502B2 (en) 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US8370247B2 (en) * 2004-02-13 2013-02-05 Omx Technology Ab Multi site solution for securities trading
WO2005094226A2 (en) * 2004-03-04 2005-10-13 United States Postal Service System and method for providing centralized management and distribution of information to remote users
US7478275B1 (en) * 2004-03-29 2009-01-13 Symantec Operating Corporation Method and apparatus for performing backup storage of checkpoint data within a server cluster
JP2005293315A (ja) * 2004-03-31 2005-10-20 Nec Corp データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
US7523341B2 (en) * 2004-05-13 2009-04-21 International Business Machines Corporation Methods, apparatus and computer programs for recovery from failures in a computing environment
US7590706B2 (en) * 2004-06-04 2009-09-15 International Business Machines Corporation Method for communicating in a computing system
US7321906B2 (en) 2004-07-23 2008-01-22 Omx Technology Ab Method of improving replica server performance and a replica server system
JP4491330B2 (ja) * 2004-11-08 2010-06-30 富士通株式会社 ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
JP2008533573A (ja) * 2005-03-10 2008-08-21 テレコム・イタリア・エッセ・ピー・アー 障害回復アーキテクチャー
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US7519859B2 (en) 2005-08-30 2009-04-14 International Business Machines Corporation Fault recovery for transaction server
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US8233384B2 (en) 2005-12-21 2012-07-31 Rockstar Bidco, LP Geographic redundancy in communication networks
ES2307242T3 (es) 2006-02-15 2008-11-16 Software Ag Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor.
US7496579B2 (en) * 2006-03-30 2009-02-24 International Business Machines Corporation Transitioning of database service responsibility responsive to server failure in a partially clustered computing environment
WO2007121258A2 (en) * 2006-04-11 2007-10-25 Fx Alliance, Llc Credit data processing system for controlling electronic trading based on credit arrangements
US8001036B2 (en) * 2006-05-30 2011-08-16 Altex-Ats Ltd System for matching orders for futures contracts which facilitate electronic trading of over the counter futures contracts
US8122144B2 (en) * 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US8676876B2 (en) * 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US7725764B2 (en) 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US8190572B2 (en) 2007-02-15 2012-05-29 Yahoo! Inc. High-availability and data protection of OLTP databases
US7631214B2 (en) 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
WO2010057289A1 (en) 2008-11-21 2010-05-27 Tsx Inc. Method and system for pooling computing server resources
US8745157B2 (en) 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
CA2847953A1 (en) 2011-09-07 2013-03-14 Tsx Inc. High availability system, replicator and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742792A (en) * 1993-04-23 1998-04-21 Emc Corporation Remote data mirroring
CN1714545A (zh) * 2002-01-24 2005-12-28 艾维西系统公司 容错的数据通信的方法和系统
CN1906593A (zh) * 2003-11-24 2007-01-31 Tsx公司 用于故障解决的系统和方法

Also Published As

Publication number Publication date
EP2479670A3 (en) 2013-11-13
US8683257B2 (en) 2014-03-25
WO2008014585A1 (en) 2008-02-07
MX2009001241A (es) 2009-03-26
EP2479671A2 (en) 2012-07-25
US20140115380A1 (en) 2014-04-24
EP2049999A4 (en) 2009-11-18
AU2007281055B2 (en) 2012-01-19
CN101523355A (zh) 2009-09-02
EP2049999A1 (en) 2009-04-22
EP2479670A2 (en) 2012-07-25
CA2659844C (en) 2016-10-18
JP2013033493A (ja) 2013-02-14
US7725764B2 (en) 2010-05-25
CA2659844A1 (en) 2008-02-07
US20080126832A1 (en) 2008-05-29
AU2007281055A1 (en) 2008-02-07
US20110225448A1 (en) 2011-09-15
US7975174B2 (en) 2011-07-05
JP5551749B2 (ja) 2014-07-16
CA2923373A1 (en) 2008-02-07
JP2014002751A (ja) 2014-01-09
US20100198718A1 (en) 2010-08-05
JP5355400B2 (ja) 2013-11-27
US8909977B2 (en) 2014-12-09
EP2479671A3 (en) 2013-11-13
JP2009545788A (ja) 2009-12-24
EP2049999B1 (en) 2014-05-07
CN103593267A (zh) 2014-02-19
JP5536939B2 (ja) 2014-07-02
AU2007281055A2 (en) 2009-02-26

Similar Documents

Publication Publication Date Title
CN101523355B (zh) 故障切换系统和方法
CN100492307C (zh) 用于故障解决的系统和方法
AU2012202229B2 (en) Failover system and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130724

Termination date: 20180219