用于被复制的服务器的协议制造技术

技术编号:2882318 阅读:164 留言:0更新日期:2012-04-11 18:40
一种容错客户机-服务器系统包括主服务器、备份服务器和客户机。客户机将请求发送给主服务器,主服务器接收并处理请求,其中包括以与任何备份处理无关的方式将响应发送给客户机。所述响应包括主服务器的状态信息。主服务器还执行备份处理,备份处理包括周期性地将主服务器状态信息发送给备份服务器。客户机接收来自主服务器的响应并将主服务器状态信息发送给备份服务器。所述主服务器状态信息包括自从最近将主服务器状态信息从主服务器传至备份服务器以来主服务器业已处理的所有请求-应答对。可根据预定的时间间隔周期性地启动主服务器中的用于执行备份处理的装置。另外,可在主服务器中的用于存储主服务器状态信息的存储器被填加至预定量时启动上述用于执行备份处理的装置。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】
背景本专利技术涉及容错服务器系统,具体地说,本专利技术涉及包括冗余服务器的容错服务器系统。可以使用容错计算机或分布式体系结构来实现远程通信系统中的服务的高度可利用性。但是,使用这种冗余会对其它系统属性产生负面影响。例如,使用硬件层次的冗余会增加成本、物理体积、能耗、出错率等。这就不可能在一个系统内使用多层冗余。例如,分布式系统可包括计算机之间的复制,以便增强其坚固性。如果每个计算机均是容错的,则成本就会加倍。此外,如果以软件的方式保持备份拷贝,则为了能从软件出错中进行恢复,就分布式系统中的多个备份而言,额外存储器的成本会随着容错硬件的成本而加倍。因此,为了保持低成本,建议避免使用多层冗余。由于这种结构选择的结果是仅使用一层冗余,故应选择成尽可能地弥补多种错误和其它故障。硬件出错或软件出错会导致故障。硬件出错的特征在于是永久的或者是暂时的。在每一种情况下,这类错误都可由容错计算机来弥补。由于计算机硬件的快速发展,系统中集成电路和/或器件的总数会不断地下降,每种集成电路和器件均会在可靠性方面不断地改进。总之,当前硬件错误不是系统故障的主要原因,并且,在将来更不会是这样。因此,更难以证明需要用独立的冗余即容错计算机只去处理潜在的硬件错误。就软件错误而言,上述内容也是不成立的。软件的复杂性不断增加,并且,对较短开发时间的要求会阻止在所有可能的配置、操作模式和类似的情况下对日益复杂化的软件进行测试。较好的测试方法应该是充分地调试正常情况。就仅在非常特定偶然情况下出现的错误即所谓的“海森缺陷”(“Heisenbuggs”)而言,并不存在有可能或经济地执行完全测试这样的例外。相反,这种类型的错误需要由系统内的冗余来弥补。进程的松散连接复制几乎可以弥补所有的硬件和软件错误,包括暂时错误。作为一个实例,I.Lee和R.K.Iyer发表《IEEE软件工程学报》1995年5月的Vo1.21,No.5中的“串行保护系统中的软件可靠性”指出,尽管将设置检查点设计到系统内以弥补硬件错误,但设置检查点(即将当前状态拷贝至备用计算机)和重启动(即通过例如读出自最后一个检查点以来出现的事务的日志而从最后一个检查点状态开始执行,然后开始处理新的检查点)在某些位置能弥补软件错误的75%至96%。所述报告中的说明是,在测试期间未识别出的软件错误是错综复杂的并且是由非常特殊的条件所触发的。这些条件(例如存储器状态、时间、竞争条件等)在备份进程接管之后不会在该进程中重新出现,因此,软件错误不会重新出现。网络中复制的问题在于,存在有诸如仲裁中心资源之类的少数服务,这些服务不适于分散。这种类型的服务必须在一个进程中加以实现并且就效率而言需要将其数据保持在堆栈内。为了获得冗余信息,必须在分布式网络内复制这种类型的进程。在高性能远程通信控制系统中,必须用非常低的开销并在不导致任何额外延迟的情况下进行这种复制。依照本专利技术的一个方面,可在这样一种容错客户机-服务器系统中实现上述和其它目的,所述系统包括主服务器、备份服务器和客户机。客户机将请求发送给主服务器。主服务器接收并处理请求,包括以与主服务器所执行的任何备份处理无关的方式将响应发送给客户机,其中,所述响应包括主服务器的状态信息。通过以与备份处理无关的方式发送响应,可以获得较高层次的并发操作,从而使得系统更有效率。主服务器还执行备份处理,包括周期性地将主服务器状态信息发送给备份服务器。客户机接收来自主服务器的响应并将主服务器状态信息从客户机发送给备份处理器。在本专利技术的另一个方面中,所述主服务器状态信息包括自从最近将主服务器状态信息从主服务器传至备份服务器以来主服务器业已处理的所有请求-应答对。在本专利技术的又一个方面中,所述主服器将主服务器状态信息存储在存储装置内。可以响应存储装置被填加至预定量从而进行在主服务器中执行备份处理的操作。在又一个实施例中,可根据预定的时间间隔来周期性地进行在主服务器中执行的备份处理操作。详细说明以下就附图详细说明本专利技术的各种特征,在附图中,相类似的部分用相同的标号表示。附图说明图1是说明冗余服务器在客户机-服务器应用中的用途的框图。具体地说,示出了多个客户机应用程序C。主服务器S101在第一处理器103上运行。独立于第一处理器103的第二处理器105以与主服务器S101相并行的方式运行备份服务器S’107。一般地说,主服务器S101和备份服务器S’107在处理了任何来自客户机应用程序C的特定请求之后出现的一个虚拟时刻T应具有相同的内部状态,因此,在其中的某一个出故障时,另一个可在没有任何一个客户机应用程序C注意到问题的情况下进行接管。(由于备份服务器S’107跟踪主服务器S101,故备份服务器S’107会比主服务器S101更晚地实时地到达上述虚拟时刻)。被复制的服务器进程的存在对使用该服务器的客户应用程序C来说应是不可见的。为了实现这种策略,需要解决下列问题寻址客户应用程序C应在与主服务器S101或备份服务器S’107(或它们两者)是否执行该业务无关的情况下以一致的方式对服务器进行寻址。复制与同步来自不同客户应用程序C的输入请求以及出错和修复通知,会因为处理器之间物理网络的不同而按不同次序到达主服务器S101和备份服务器S’107。然而,这些请求应该按照相同次序分类。出错和修复通知服务器进程出错和新服务器进程的开始必须能由仍在工作的服务器检测到。状态传递 当服务器进程在出错之后重新开始时,正在工作的服务器必须在能开始处理请求之前将其内部状态传给新的服务器。在解决上述问题时,本专利技术的最佳实施例力图达到下列目标--仅解决复制问题一次。实施复制具有多种缺陷并且检验起来很复杂。存在有必须加以弥补的多种可能的错误。--仅增加低开销并仅将这种开销施加于与被复制的进程的通信。--在正常操作下,在出故障时和在重整合新进程时,最坏情况的响应时间均应该是事先知道的并被保持于可接受的水平。--不应将额外的消息添加给临界的定时路径。许多通常的实施技术都违背这一目标。例如,主服务器必须将消息发送给辅助服务器并在将应答发回客户机之前取回一个应答。应该避免这点,从而使系统的实时响应时间不能因所增加的冗余而减慢。--对多个客户和动态客户进行处理。远程通信应用就一个服务器而言一般具有多个可能的客户机。这就意味着不能使用例如在服务器进程出错或恢复时必须对客户机中的信息进行更新的算法。而且,客户机进程一般具有短的寿命(它们仅在一个呼叫期间存在)。这就意味着不能使用需要服务器始终监视客户机的算法。为了使得协议更为简单,本专利技术的最佳实施例实施了几条限制。通过使得协议更为一般化可很容易地提高这些限制中的某些限制。但是,它们所包含的内容有利用说明所涉及的基本机理。这些限制是--仅涉及两个服务器主服务器和备份服务器。本领域的技术人员将会看出,可使协议扩展成包括更多的内容。--一次容许一个错误,即一个客户机或服务器出故障。所述系统必须在容许另一个错误之前进行恢复(例如通过启动一次冷待机)。--简单的网络配置。不考虑例如将网络分解成两个网络、每个网络中有服务器对中的一个的复杂网络出错情况。--没有大的消息。块数据传输及类似的工作可能使缓冲区或队列溢出。--软实时响应。在正常情况下(即在没有任何出错服务器的情况下),就使本文档来自技高网...

【技术保护点】
一种容错客户机-服务器系统,所述系统包括: 主服务器; 备份服务器;以及 客户机; 其中: 所述客户机包括 用于将请求发送给主服务器的装置; 用于接收来自主服务器的响应的装置,其中该响应包括主服务器状态信息; 用于将主服务器状态信息发送给备份服务器的装置; 所述主服务器包括: 用于接收并处理请求的装置; 用于响应上述请求、以与任何备份处理无关的方式将响应发送给客户机的装置;其中,所述响应包括主服务器的状态信息; 用于执行备份处理的装置,所述备份处理包括周期性地将主服务器状态信息发送给备份服务器;以及 所述备份服务器包括: 用于接收来自主服务器的主服务器状态信息的装置; 用于接收来自客户机的主服务器状态信息的装置。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PA霍尔姆贝里
申请(专利权)人:艾利森电话股份有限公司
类型:发明
国别省市:SE[瑞典]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1