用于网络单元服务恢复的方法和系统的制作方法

文档序号:7886099阅读:152来源:国知局
专利名称:用于网络单元服务恢复的方法和系统的制作方法
技术领域
本发明涉及用于网络单元服务恢复的方法和系统。虽然本发明特别针对网络客户端服务恢复的领域,并且因此将通过对其的具体参考来描述本发明,但是将理解本发明在其他领域和应用中也可以具有实用性。
背景技术
作为背景技术,很多现代系统通过集成若干网络单元来实现,该网络单元诸如与后端数据库服务器交互的前端web服务器。当这些系统提供重要服务时,通常在多个站点复制它们以最大化服务可用性,特别是在联网装置或设施出现故障或其它使站点托管装置变得不可用或不可访问的可归因于外部的事件之后。虽然面向客户端设备的前端机器(例如,web浏览器)的故障(例如,严重的不可用/无响应)可以通过客户端自动检测到并且触发该客户端以自动将服务恢复至替代站点,但是后端服务器的故障通常将不触发客户端始发的恢复。例如,如果支持电子商务站点的数据库服务器不可用,则典型的实施方式简单地将说明该站点暂时不可用并且稍后再试的网页返回给客户端。因此,现在的标准作法是针对复杂的多单元解决方案,将描述性错误返回给客户端(针对不直接与客户端通信的后端单元的故障)。·如果后端服务器(诸如数据库)出现故障,则传统的策略是充分利用在地理上分散的冗余系统。在这一点上,前端服务器(例如,web服务器)将服务恢复到在地理上远离的站点上的冗余数据库服务器上。然而,这使得消息在两个地理上远离的站点之间被发送。如果这些站点离得很远,并且在web服务器和数据库之间存在很多必需的消息,则这可能显著地增加web服务器的响应时间并且占用站点之间的有效带宽。因此,如果单元位于远程站点,则这种解决方案可能增加延时和网络流量。

发明内容
提供了一种用于网络单元服务恢复的方法和系统。现在的标准作法是针对复杂的多单元解决方案,将描述性错误返回给客户端(针对不直接与客户端通信的后端单元的故障)而不是处理错误以触发自动服务恢复。虽然完全地描述性错误对于一些类别的用户提供大量消息,但是很多其它用户更倾向于使他们的(智能)客户端设备来自动地为他们恢复服务。在一个实施例中,该方法包括由前端服务器检测下游网络单元中的错误或其不可用性,并且,发送响应码至客户端以触发客户端来将服务重定向至替代前端服务器或在替代前端服务器上进行恢复。在另一个实施例中,前端服务器是web服务器。在另一个实施例中,下游网络单元是数据库服务器。在另一个实施例中,该方法进一步包括暂停客户端和前端服务器之间的会话。在另一个实施例中,所述检测包括下述之一:从下游网络单元接收消息或检测超时响应定时器。在另一个实施例中,该方法包括由前端服务器检测下游网络单元中的错误或其不可用性,确定应当执行单元恢复还是群集恢复,如果确定了单元恢复,则由前端服务器切换至与故障的下游网络单元相对应的替代下游网络单元,并且,如果确定了群集恢复,则由前端服务器发送响应码至客户端以触发客户端将服务重定向至替代冗余前端服务器或在替代冗余前端服务器上进行恢复。在另一个实施例中,前端服务器是web服务器。在另一个实施例中,下游网络单元是数据库服务器。在另一个实施例中,该方法进一步包括暂停客户端和前端服务器之间的会话。在另一个实施例中,所述检测包括下述之一:从下游网络单元接收消息或检测超时响应定时器。在另一个实施例中,所述确定基于数据流量。在另一个实施例中,该系统包括前端服务器的控制模块,用于检测下游网络单元中的错误或其不可用性并且发送响应码至客户端以触发客户端将服务重定向至替代前端服务器或在替代前端服务器上进行恢复。在另一个实施例中·,前端服务器是web服务器。在另一个实施例中,下游网络单元是数据库服务器。在另一个实施例中,前端服务器通过从下游网络单元接收消息或检测超时响应定时器来检测错误。在另一个方面中,客户端、前端服务器、下游网络单元、替代前端服务器和替代下游网络单元是IMS单元。在另一个实施例中,系统包括前端服务器的控制模块,其检测下游网络单元中的错误或其不可用性;确定应当执行单元恢复还是群集恢复;如果确定了单元恢复,则由前端服务器切换至与故障的下游网络单元对应的替代下游网络单元;并且如果确定了群集恢复,则由前端服务器发送响应码至客户端以触发客户端将服务重定向至替代前端服务器或在替代前端服务器上进行恢复。在另一个实施例中,前端服务器是web服务器。在另一个实施例中,下游网络单元是数据库服务器。在另一个实施例中,前端服务器通过从下游网络单元接收消息或检测超时响应定时器来检测错误。在另一个实施例中,前端服务器检测基于数据流量。在另一个实施例中,客户端、前端服务器、下游网络单元、替代前端服务器和替代下游网络单元是MS单元。从以下提供的详细描述中本发明的适用性的进一步范围将变得明显。然而,应当理解的是,详细的描述和具体的示例,虽然指示本发明的优选实施例,但是仅通过说明的方式给出,这是因为在本发明的精神和范围内的各种改变和修改对于本领域的技术人员将变得显而易见。


现在仅通过示例的方式,并且参考附图,描述根据本发明的实施例的装置和/或方法的一些实施例,其中:图1是当前所描述的实施例可以被并入其中的示例系统的框图。图2是图示图1的系统的示例操作的框图。图3是图示图1的系统的示例操作的框图。图4是图示根据当前所描述的实施例的示例方法的流程图。图5是图示根据当前所描述的实施例的示例方法的流程图。
具体实施例方式根据当前所描述的实施例,在网络中的下游单元的故障或不可用发生的情况下,前端服务器(例如,web服务器)触发客户端来尝试自动恢复或重定向到运转的系统/站点(例如,冗余或替代路径或群集(cluster))而不是简单地将静态错误说明或其他终端响应返回至客户端。一个目的是当故障的或不可用的服务器被修复或恢复时,将服务自动恢复或重定向至可用系统/站点以避免较长的服务中断。
·
在这点上,根据当前所描述的实施例,前端服务器智能地代理(proxy)由后端服务器(即,通常不直接与客户端交互的下游服务器)返回的错误消息,并且模拟或模仿环境以将服务重定向以远离前端(例如,服务器故障或过载状况)。在至少一种形式中,前端服务器还包括智能或逻辑以确定对客户端进行重定向以将服务恢复至替代(地理上冗余的(georedundant))系统或站点将确保对于客户端有更好的服务可用性/可靠性/体验质量中的至少一个。一般来讲,应用协议通常支持不同类型的响应码,这些响应码中的一些本质上是终极的或描述性的(例如,未找到网页,用户未授权、网关故障),并且响应码中的一些可以触发客户端对相同或不同的服务器采取一些恢复动作(例如,临时移动、服务不可用、太忙、重试等等)。根据当前所描述的实施例,前端服务器将潜在可恢复的错误或困难从后端系统映射至消息中,该消息诸如返回至客户端的响应码。这些映射的响应码触发客户端来重试它们对替代系统/站点的请求。因此,根据当前所描述的实施例,与使web服务器前端将数据库服务器故障或不可用的状况映射至例如用于客户端的错误网页中以进行显示不同,前端web服务器模拟下述环境(例如,故障),该环境使得客户端将服务恢复或重定向至完全运转的系统/站点。应当意识到,以上引用的响应码的类型,如用于实施当前所描述的实施例的码或消息的示例,可以根据应用而改变。例如,当前端服务器检测到下游的故障时,诸如503服务不可用码这样的指示深远(profound)问题的码可以通过前端服务器被赋予新的用途,并且通过前端服务器被传送至客户端以模拟它自身的故障从而触发切换。类似地,当检测到下游过载状况(或其他将使下游单元不可用的状况)时,前端服务器可以将诸如302临时移动码这样的重定向响应发送至客户端以触发至替代群集的重定向。在另外的示例中,在包括故障或不可用的其他状况的所有不可用的环境中,前端服务器可以发送诸如302临时移动码这样的重定向响应。这种情景将否定对于使用指示深远问题的码(诸如以上提到的503服务不可用码)来实施当前所描述的实施例的需要。在另外的示例中,在包括故障或不可用的其它状况的所有不可用的环境中,指示诸如503服务不可用码的深远问题的码可以通过前端服务器被赋予新的用途,并且通过前端服务器发送至客户端以模拟其自身的故障从而触发切换。现在参考附图,其中所示仅是出于说明示例性实施例的目的而不是出于限制所要求保护的主题的目的,图1提供了当前所描述的实施例可以被并入其中的系统100的视图。如所图示的,系统100包括与提供服务“B”的功能实体通信或进行会话的网络单元或客户端A(102)。这个功能实体包括网络单元或服务器BI (104)以及网络单元或服务器B2 (108)。所标注的提供服务B的功能实体与提供服务“C”的功能实体进行通信。这个功能实体包括网络单元或服务器Cl (106)和网络单元或服务器C2 (110)。如所示出的,这些单元Cl和C2是相对于单元BI和B2的下游。此外,每个网络单元被示出为包括控制模块,例如,控制模块103、105、107、109和111。该控制模块被理解为向网络单元提供功能性,并且在一些实施例中,容纳和/或执行合适的例程以实现当前所描述的实施例的功能性。例如,前端服务器BI (104)包括控制模块105,控制模块105在至少一种形式中是可操作为执行与根据当前所描述的实施例的方法(包括以下结合图2-图5所描述的方法)相对应的例程。在所示的配置中,应当意识到,网络单元B2和C2分别用作对网络单元BI和Cl的替代冗余单元(也被称为替代单元或冗余单元)。在这一点,应当意识到这种替代服务器或冗余服务器或替代冗余服务器不必准确地复制其所对应的主服务器。虽然为了便于参考,本文仅示出了一个(例如,·对于BI和Cl)对应的替代冗余单元,但应当理解的是网络单元可以具有多于一个的对应替代冗余单元。如所示出的,单元BI和Cl形成地理上靠近的单元的群集,并且单元B2和C2形成地理上靠近的单元的群集。在至少一个示例形式中,网络单元B I和B2用作诸如web服务器的前端服务器,而网络单元Cl和C2用作诸如数据库服务器的后端服务器。应当意识到,虽然(为了便于参考)示出了单个前端服务器(BI或B2),但是在解决方案中不必只有单个前端服务器。跨整套服务器可以实施复杂的服务(例如,IP电视机首端),其可以在逻辑上被组织为更广泛的解决方案中的较小系统群集。每个这种较小的群集可以具有用作前端服务器的系统。这包括在具有不同前端服务器的较大群集内部包含具有前端服务器的较小群集的递归情况。当然,也可以使用其它类型的网络单元,包括IP多媒体子系统(IMS)单元。同样,应当意识到,可以使用各种信令协议,包括会话发起协议(SIP)。更近一步地,应当意识到,网络单元可以出于一个目的而用作客户端,但是出于另一目的而用作服务器。因此,所示出的配置应当被理解为仅是示例。同样,沿着这些相同的思路,图1包括冗余单元Cl和C2,但是应当理解的是,冗余单元Dl和D2、El和E2等(未示出)也可能在系统中。在至少一种形式中,假设所有主要单元(B1、C1等)位于一个站点处的第一群集(群集I)中,并且在至少一种形式中,假设所有冗余单元(B2、C2等)位于第二站点上的第二群集(群集2)中。通常仅存在一个从与客户端直接交互的群集的“边缘”单元的故障恢复的选项(例如,如果“BI”故障,则客户端必须恢复至“B2”)。然而,根据当前所描述的实施例,对于在边缘中的单元的故障存在两个恢复选项。在这一点上,可以潜在地将单元的群集组织到恢复组中以允许更快或更好的恢复。参考图2,图示了使用用于系统的单元恢复的技术。在这一点上,非边缘单元Cl的故障可以通过单元BI切换至单元C2来恢复。理想地,单元BI检测故障足够快并且用单元C2恢复充足的会话上下文,从而该恢复对于客户端A透明。如可以理解的,单元Al仍与单元BI在路径150上通信,而单元BI与单元C2在路径152上通信。参考图3,图示了使用用于系统的群集恢复的技术。在这一点上,非边缘单元Cl的故障或不可用可以通过将客户端A从群集I切换或重定向至群集2来恢复或解决。在这种情况下,客户端A显式地参与到将服务重建至单元B2中。单元Cl的故障或不可用经由深远响应码被显式地传递到客户端A(例如,503服务不可用或诸如302临时移动的重定向响应),该响应码是响应于单元Cl的故障或不可用而由单元BI返回至客户端A的,并且预期客户端A发起针对替代群集的恢复。在这种情况下,在恢复之后,客户端A与单元B2在路径160上通信,并且单元B2与单元C2在路径162上通信。注意,在群集恢复中,边缘和/或其他单元将故障或不可用响应显式地代理回客户端(例如,客户端A)而不是它自身尝试恢复。该客户端然后重定向或切换至替代群集。此外,隐式故障(例如,暂停过期、心跳损失)同样地被转译为适当的显式故障,其被代理回客户端从而客户端可以重定向或切换服务。注意在单元和群集恢复之间的不同可以对解决方案中的各种单元呈现不同。例如,当单元BI执行图2中的从Cl到C2的单元恢复时,客户端A应当不知道采取的任何恢复动作。同样地,图3中的从站点I到站点2的群集恢复可以向客户端A仅呈现为在BI的明显故障之后针对B2的单元恢复。应当意识到,当前·所描述的实施例可以以各种方式被实施。例如,当前所描述的实施例的方法可以包括前端服务器针对错误或它所接收的其它响应执行群集恢复技术的功能。在另外的实施例中,前端服务器也可以执行逻辑或具有智能以做出关于特定错误或响应检测是应当实施单元恢复还是群集恢复的确定。在任一种情况中,应当意识到的是,根据当前所描述的实施例的方法可以在系统中以各种方式实现。在这一点上,可以使用各种软件例程或硬件配置。例如,执行本申请的方法的软件例程可以被容纳在前端服务器的控制模块上或由前端服务器的控制模块执行,该前端服务器的控制模块诸如前端服务器BI (104)的控制模块105。当然,这种例程也可以分布在合适的网络单元的网络中,其中一些未在图1中示出。因此,现在参考图4,示出了根据当前所描述的实施例的方法200。方法200包括从下游网络单元检测错误或不可用(在202处)。这种检测可以以各种传统方式完成。例如,可以在接收到显式消息或隐式指示(例如,响应定时器的超时)时检测错误或不可用。一旦检测到,前端服务器执行群集恢复技术。这就是说,前端服务器发送故障或重定向消息至客户端以触发客户端来切换至系统中的替代、冗余前端服务器(在204处)。故障或重定向消息可以采用各种形式(例如,503服务不可用或诸如302临时移动的重定向响应)。在这种方式下,前端服务器模拟故障或不可用的状况,从而使得客户端完全切换或重定向服务至冗余路径(例如,切换至替代冗余前端服务器,因此切换至替代群集)。同样,暂停在客户端和最初的前端服务器之间的会话(在206处)以有利于客户端重定向服务至替代服务器。在一些实施例中,在过载的短时间内,过载服务器可以简单地将一些服务请求重定向至替代服务器。因此,主服务器继续运送大量客户端的流量,但是通过其他服务器覆盖一些事务以确保可接受的服务质量(而不是在过载的短时间内传送降级的服务)。如以上提出的,前端服务器也可以包括逻辑或智能以确定使用群集恢复或单元恢复的适当性。在这一点上,参考图5,图示了方法300。当在下游网络单元中检测到错误或不可用时开始方法300 (在402处)。可以以各种传统方式完成这种错误检测。例如,当接收到显式消息或隐式指示(例如,响应定时器的超时)时,可以检测到错误或不可用。在这一点,前端服务器确定恢复策略(在304处)。当然,在至少一种形式中,前端服务器确定是执行单元恢复过程还是群集恢复过程。可以以各种方式完成这种确定。例如,前端服务器可以考虑与故障的或者不可用的服务器交换的数据量(或数据流量)。如果数据交换速率(或数据流量)相对低,则基于可以自适应地或周期地设置的阈值,或者基于子例程的运行,前端服务器可以确定单元恢复对于系统更好。在其他环境中,基于类似的标准,前端服务器可以确定将进行群集恢复。如果确定了单元恢复过程,则前端服务器简单地切换以与对应于故障的网络单元的替代冗余网络单元通信(在306处)。前端服务器继续与客户端的会话(在308处)。然而,如果在304处前端服务器确定将执行群集恢复,则前端服务器发送故障或重定向消息至客户端(在310处)。故障或重定向消息可以采用各种形式(例如,503服务不可用或诸如302临时移动的重定向响应)。当然,如以上提到的,故障或重定向消息将触发客户端以重定向至冗余、替代服务器路径或群集。在客户端和前端服务器之间的会话被暂停(在312处)。如以上所述,在一些变形中,在过载的短时期期间,过载服务器可以简单地重定向一些服务请求至替代服务器。因此,主服务器继续运送大量客户端流量,但是由其它服务器覆盖一些事务以确保可接受的服务质量(而不是在过载的短时期期间传送降级的服务)。在当前所描述的·实施例的其它变形中,具有多于两个单元(例如,D1/D2、E1/E2等)的解决方案部署混合恢复策略,在该策略中通过单元恢复减轻一些单元故障并且通过群集恢复减轻一些。这种情景可以利用与图5中示出的相似的方法。此外,恢复群集可以比在站点的所有解决单元的套件小,因此在站点I上的一个单元的故障可以使得一些服务被恢复至站点2上的单元的小的恢复群集上,而在站点I上的其他单元继续传送服务。可以用具体示例说明当前所描述的实施例。在这一点上,群集恢复的优先权之一是配置每个单元以首先发送它的服务请求至本地服务器,并且如果本地服务器没有一个可用则发送至远程服务器。一种完成这个的方式是用DNS SRV记录,其允许将优先权分配至完全合格的域名(FQDN)池中的每个服务器。使用这种配置,当单元故障并且服务被切换至远程站点时,该单元将发送它自身的请求至远程站点处的其他单元。当在单元之间的最大通信发生在相同的站点内时,并不增加如用于简单单元切换那么多的延迟。在以上的示例中,用于C1/C2服务器的FQDN可以这样被实施。通常,如果客户端没有能够切换至服务器B2,则服务器B2将自动使用本地服务器C2。然而,如果客户端使用服务器BI并且服务器Cl发生故障或变得不可用,则服务器BI将开始发送它的请求至服务器C2。由于这个流量将在地理上远离的站点之间流动,因此将使用附加带宽并且这些请求的延迟将增加。为了根据当前所描述的实施例进行群集故障切换,服务器BI必须具有专用软件逻辑,例如(如本文描述的)以不同地处理C服务器故障。在检测到服务器Cl的故障之后,服务器BI需要显式地返回响应码至所定义的客户端以触发它来启动恢复或重定向至替代服务器。例如,如果在客户端和BI之间的协议是SIP,则BI服务器将返回“503服务不可用”或“302临时移动”响应以触发客户端来故障切换至远程站点。
本领域的技术人员将容易地认识到以上所描述的各方法的步骤可以通过编程的计算机(例如,控制模块103、105、107、109或111)执行。本文中,一些实施例也旨在包括程序存储设备,例如,数字数据存储介质,其可以是机器或计算机可读的并且编码机器可执行或计算机可执行的指令程序,其中所述指令执行以上所描述的方法的步骤的全部或一些。程序存储设备可以是例如,数字存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动、或光学可读数字数据存储介质。实施例也旨在包括被编程以执行以上所描述的方法的所述步骤的计算机。此外,在图中示出的各种单元的功能,包括被标记为网络单元、客户端或服务器的任一功能块可以通过使用专用的·硬件以及能够执行软件和与适当的软件相关联的硬件来提供。当通过处理器提供时,可以通过单个专用处理器、通过单个共享处理器、或通过多个独立的处理器来提供这些功能,多个独立的处理器中的一些可以共享。此外,术语“处理器”或“控制器”或“控制器模块”的明确使用不应当被解释为排他地指能够执行软件的硬件,并且可以隐含地而非限制性地包括数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)以及非易失性存储器。其他硬件、传统和/或定制的硬件也可以被包括。类似地,在图中示出的任何切换仅是概念上的。可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互、或甚至手动地执行它们的功能,根据从上下文中更具体的理解,实施者可选择具体技术。以上描述仅提供本发明的具体实施例的公开内容并且不旨在于限制本发明的目的。因此,本发明不被限制于仅以上所描述的实施例。而是,应当认识到,本领域的技术人员可以设想在本发明的范围内的可替代的实施例。
权利要求
1.一种在网络中用于网络单元服务恢复的方法,所述网络包括可操作地与连接至下游网络单元的前端服务器进行会话的客户端,以及至少一个连接至替代下游网络单元的替代前端服务器,所述方法包括: 由前端服务器检测下游网络单元中的错误或其不可用性;以及 发送响应码至所述客户端以触发所述客户端将服务重定向至替代前端服务器或在所述替代前端服务器上进行恢复。
2.根据权利要求1所述的方法,进一步包括暂停在所述客户端和所述前端服务器之间的会话。
3.根据权利要求1所述的方法,其中所述检测包括下述之一:从所述下游网络单元接收消息或检测超时的响应定时器。
4.一种在网络中用于网络单元服务恢复的方法,所述网络包括可操作地与连接至下游网络单元的前端服务器进行会话的客户端,以及至少一个连接至替代下游网络单元的替代前端服务器,所述方法包括: 由所述前端服务器检测下游网络单元中的错误或其不可用性; 确定应当执行单元恢复还是群集恢复; 如果确定了单元恢复,则由所述前端服务器切换至与故障的或不可用的下游网络单元对应的替代下游网络单元;以及 如果确定了群集恢复,则由所述前端服务器将响应码发送至所述客户端以触发所述客户端将服务重定向至替代前端服务器或在所述替代前端服务器上进行恢复。
5.根据权利要求4所述的方法,进一步包括暂停在所述客户端和所述前端服务器之间的会话。
6.根据权利要求4所述的方法,其中所述检测包括下述之一:从所述下游网络单元接收消息或检测超时的响应定时器。
7.—种在网络中用于网络单元服务恢复的系统,所述网络包括可操作地与连接至下游网络单元的前端服务器进行会话的客户端,以及至少一个连接至替代下游网络单元的替代前端服务器,所述系统包括: 前端服务器的控制模块,所述前端服务器的控制模块检测下游网络单元中的错误或其不可用性并且将响应码发送至所述客户端以触发所述客户端将服务重定向至替代前端服务器或在所述替代前端服务器上进行恢复。
8.根据权利要求7所述的系统,其中所述前端服务器通过从所述下游网络单元接收消息或检测超时的响应定时器来检测所述错误或所述不可用性。
9.一种在网络中用于网络单元服务恢复的系统,所述网络包括可操作地与连接至下游网络单元的前端服务器进行会话的客户端,以及至少一个连接至替代下游网络单元的替代前端服务器,所述系统包括: 所述前端服务器的控制模块,检测下游网络单元中的错误或其不可用性,确定应当执行单元恢复还是群集恢复,如果确定了单元恢复,则由所述前端服务器切换至与故障的或不可用的下游网络单元对应的替代下游网络单元,并且如果确定了群集恢复,则由所述前端服务器将响应码发 送至所述客户端以触发所述客户端将服务重定向至替代前端服务器或在所述替代前端服务器上进行恢复。
10.根据权利要求9所述的系统,其中所述前端服务器通过从所述下游网络单元接收消息或检测超时的响应定时器来检测所述错误 或所述不可用性。
全文摘要
提供了一种用于网络单元恢复的方法和系统。在一种形式中,前端服务器智能地代理由后端服务器返回的错误或不可用消息,并且模拟前端服务器故障。在至少一种形式中,前端服务器也包括智能或逻辑以确定对客户端进行定向从而将服务恢复至替代系统或站点将会确保对于客户端更好的服务可用性、可靠性和/或体验质量。
文档编号H04L29/06GK103222253SQ201180055354
公开日2013年7月24日 申请日期2011年11月9日 优先权日2010年11月17日
发明者E·鲍尔, D·W·尤斯塔斯, R·S·亚当斯 申请人:阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1