用于过程控制系统的冗余应用站 【技术领域】
本发明涉及过程控制系统,特别涉及过程控制系统中使用的冗余应用站。
背景技术
诸如在化学、石油或其它过程中使用的过程控制系统,通常包括一个或多个集中过程控制器,它们通过模拟、数字或组合模拟/数字总线以通信方式连接到至少一个主机或操作员工作站以及一个或多个现场装置(field device)。现场装置可以是例如阀门、阀门位置控制器,开关和变送器(例如温度、压力和流速传感器),它们执行诸如打开或关闭阀门以及测量过程参数的功能。过程控制器接收表示由现场装置进行的过程测量的信号和/或关于现场装置的其它信息,使用该信息来执行控制例程并产生控制信号,这些控制信号经由总线或其它通信线路被发送到现场装置以控制过程的操作。来自现场装置和控制器的信息对操作员工作站执行的一个或多个应用可用,以使操作员能够执行有关过程的期望功能,例如浏览当前的过程状态,修改过程的操作等。
许多过程控制系统也包括一个或多个应用站。典型地,使用以通信方式经由局域网(LAN)连接到控制器、操作员工作站和过程控制系统内其它系统的个人计算机、工作站等来实现这些应用站。每个应用站可以运行一个或多个软件应用程序,它们执行过程控制系统内的运行周期(campaign)管理功能、维护管理功能、虚拟控制功能、诊断功能、实时监控功能等。
由于诸如应用站内和/或过程控制系统内其它位置的软件故障或硬件故障(例如网络通信损耗、电源损耗等)产生的应用站故障通常导致失效或故障应用站的功能和应用终止。一些过程控制系统或应用站配置为提供有限的应用站恢复功能。例如,一些公知的应用站存储了与它执行的功能和/或应用相关的配置信息、控制参数和数值、历史数据等。通过由过程控制系统对应用站进行重新开始(例如重新启动),就可以使用存储的历史信息或数据,来恢复由于硬件和/或软件错误或故障而被终止、锁定或不起作用的应用程序。
令人遗憾的是,公知应用站的恢复技术实质上是在由应用站执行地耗时的数据恢复处理和软件应用程序非同步重新例化(re-instantiation)之后进行的应用站的冷重启动或重新启动。尽管这些公知应用站恢复技术可能适合某些过程控制应用,它们并不适合所有的过程控制应用,在一些情况下,可能导致危险和/或代价高昂的后果。特别是,公知应用站恢复技术不是无缝或“无波动(bumpless)”的,因为它们在应用站的故障及其恢复之间通常陷入相当长的延时。因此,由于在相对太长的恢复期间内发生的设备或其它过程条件的改变,在故障之前存储的历史参数值可能已不再适合。在一些情况下,使用这种历史参数值是代价非常高昂的和/或危险的。例如,在虚拟控制和运行周期管理应用的情况下,使用不适当的参数值可能导致成批数据的丢失、人员和/或设备的损伤等。而且,在应用站故障是不可恢复的硬件故障的情况下,这些应用将被终止直到硬件被替换或修理,这可能需要不可接受的长期时间。
【发明内容】
根据本发明一个方面,一种在过程控制系统中使用的应用站包括:冗余管理器和连接到冗余管理器并适配为经由冗余通信链路与第二应用站进行通信的冗余链接子系统。冗余管理器可以建立第二应用站的冗余上下文,并可以使用冗余上下文来跟踪第二应用站的操作。此外,冗余管理器可以适配为经由冗余链路和冗余链接子系统接收来自第二应用站的信息,并响应该信息来将第二应用站的操作切换到应用站的操作。
根据本发明的另一方面,应用站中使用的冗余管理器包括心跳(heartbeat)管理器、应用编程接口和以通信方式连接到心跳管理器和应用编程接口的资源监控器。该心跳管理器可以监控从应用站接收到的操作状态信息。
根据本发明的另一方面,一种用于在具有第一和第二应用站的过程控制系统内建立冗余上下文的系统和方法,将与第一应用站相关的配置下载到第二应用站,确定第一应用站提供了足够的服务质量,并将关于第一应用站使用的一组资源的信息发送到第二应用站。此外,该系统和方法可以确定第二应用站具有存取第一应用站使用的这组资源的入口,并且可以响应确定出第二应用站具有存取第一应用站所使用的这组资源的入口,而在过程控制系统内建立冗余上下文。
【附图说明】
图1是使用本文描述的冗余应用站设备和方法的示例过程控制系统的方框图。
图2是可以实现图1所示的冗余应用站的示例方式的更详细的方框图。
图3是可以实现图2所示的冗余管理器的示例方式的更详细的方框图。
【具体实施方式】
图1是使用本文描述的冗余应用站设备和方法的示例过程控制系统10的方框图。如图1所示,过程控制系统10包括控制器12、操作员工作站14、现用应用站16和备用应用站18,所有这些设备都可以以通信方式经由总线或局域网(LAN)20连接,这通常被称为应用控制网(ACN)。可以使用一个或多个工作站或其它合适的计算机系统或处理单元来实现操作员工作站14和应用站16和18。例如,应用站16和18可以使用单处理器个人计算机、单或多处理器工作站等来实现。此外,局域网LAN 20可以使用任何希望的通信媒介和协议来实现。例如,局域网20可以基于硬连线(hardwired)或无线以太网通信方案,这些都是公知内容因此在此不作更多描述。然而,本领域的普通技术人员能够容易理解,任何其它合适的通信媒介和协议都可以被使用。而且,尽管所显示的是单个LAN,可以使用多个LAN和应用站16和18内合适的通信硬件来提供应用站16和18之间的冗余通信路径。
控制器12可以经由数字数据总线28和输入/输出(I/O)装置30连接到多个智能现场装置22、24和26。智能现场装置22-26可以是适应Fieldbus(场总线)的阀门、转动装置、传感器等,在这种情况下,智能现场装置22-26使用公知的Fieldbus协议进行通信。当然,也可以使用其它类型的智能现场装置和通信协议来代替。例如,智能现场装置22-26可以替换为使用公知Profibus和HART通信协议经由数据总线28进行通信的适应Profibus和HART的装置。附加的I/O装置(类似或等同于I/O装置30)可以连接到控制器12来使附加的智能场装置组能与控制器12通信,这些附加的智能场装置组可以是Fieldbus装置、HART装置等。
除了智能现场装置22-26外,一个或多个非智能场装置32和34可以以通信方式连接到控制器12。这些非智能场装置32和34可以是例如经由相应的硬连线链路36和38与控制器12进行通信的传统4-20毫安培(mA)或0-10伏特直流(VDC)装置。
控制器12可以是例如由Fisher-Rosemount Systems公司出售的DeltaVTM控制器。然而,可以使用任何其它控制器来代替。此外,尽管图1中只示出了一个控制器,可以将任何希望类型或类型组合的附加控制器连接到LAN20。在任何情况下,控制器12可以执行与过程控制系统10有关的一个或多个过程控制例程,它们是由使用操作员站14的系统工程师或其它系统工作员生成并被下载,并且在控制器12中例化。
如图1所示,过程控制器19也可以包括以通信方式经由通信链路42和LAN 44连接到应用站16和18的远程操作员站40。该远程操作员站40可以地理上远离设置,在这种情况下,通信链路42最好,但也并非必需,是无线通信链路、基于因特网或其它基于分组交换的通信网络、电话线(例如数字用户线)或它们的任意组合。
如图1中的示例所描绘,现用应用站16和备用应用站18以通信方式经由LAN 20和冗余链路46连接。冗余链路46可以是在现用应用站16和备用应用站18之间单独的、专用(即不共享)的通信链路。冗余链路46可以使用例如专用以太网链路(例如在相互连接的每个应用站16和18中的专用以太网卡)来实现。然而,在其它示例中,冗余链路46可以,但非必需,使用以通信方式连接到应用站16和18的LAN 20或冗余LAN(未示出)来实现。
一般而言,应用站16和18连续或周期性的经由冗余链路46交换信息(例如响应参数值改变、应用站配置改变等),以建立和维护冗余上下文。冗余上下文使得能够在现用应用站16和备用应用站18之间进行无缝或无波动的控制移交或切换。例如,冗余上下文使得能够响应现用应用站16内的硬件或软件故障或响应于系统用户或系统操作员或过程控制系统10的客户应用程序中的指示,实现从现用应用站16到备用应用站18的控制移交或切换。
在任何情况下,应用站16和18可以表现为LAN 20上作为冗余对的单个节点。特别地,备用应用站18的起“热”备用应用站的作用,在现用应用站16故障或接收来自用户的切换指示的情况下,快速和无缝地采用和继续对应用程序或现用应用站16所执行的功能的控制,而不需要耗时的例化或其它用户干预。为了实现这种“热”备用方案,当前现用应用站(例如现用应用站16)使用冗余上下文将诸如为配置信息,控制参数信息等信息经由冗余链路46通信给其冗余伙伴应用站(例如备用应用站18)。以这种方式,只要备用应用站18就绪并能够承担控制,就能够实现从当前现用应用站(例如现用应用站16)到其冗余伙伴或备用应用站(例如备用应用站18)的无缝或无波动控制转移或切换。
为了确保备用应用站18就绪并能够承担当前由现用应用站16执行的应用控制、虚拟控制功能、通信功能等,冗余上下文确定备用应用站18是否具有存取物理资源(例如LAN 20、其它外部数据资源等)的入口,是否具有要求的编程信息(例如配置和连接信息),以及要求的服务质量(例如处理器速度,存储器需求等)是否可用。此外,将维护冗余上下文以确保备用应用站18始终准备好承担控制。这种冗余上下文维护是通过在冗余应用站16和18之间传送保持操作同步所需的状态信息、配置信息或任何其它信息来实现。
在一些示例中,应用站16和18可以配置为在现用应用站16出现故障并随后恢复为健康状态或被修理或替换(并合适地配置)的情况下,现用应用站16从备用应用站18收回控制,而备用应用站18将其状态恢复为热备用站。然而,如果需要,可以将备用应用站18配置为在没有系统用户同意或一些其它类型的用户干预下,避免恢复应用站收回控制。
现用应用站16通常负责进行(即执行)虚拟控制功能、运行周期管理应用、维护管理应用、诊断应用和/或任何其它希望的功能或应用,这些功能或应用可能与过程控制系统10内所需的过程控制活动、企业优化活动等的管理和/或监控有关。备用应用站18以与现用应用站16相同的方式配置,因此包括了需要在现用应用站16内执行的每个功能和应用的备份。此外,备用应用站18包括硬件和/或存取与现用应用站16可用的资源相同或至少功能上相当的资源的入口。而且,备用应用站18经由冗余链路46跟踪现用应用站16的操作(例如,现用应用站16内执行的应用程序所使用的当前参数值)。
图2是可以实现图1所示冗余应用站的示例方式的更详细的方框图。如图2的示例所示,现用应用站16包括以通信方式连接到一个或多个冗余应用52、虚拟控制模块54、通信子系统56、操作系统58和冗余链接子系统60的冗余管理器50。类似地,备用应用站18包括冗余管理器62,一个或多个冗余应用64,虚拟控制模块66,通信子系统68,操作系统70和冗余链接子系统72。尽管备用应用站18中所示的功能模块62-72提供与现用应用站16中相应的功能模块62-72的功能相同或至少实质上相同的功能,但是对各个功能模块(例如模块50和62)使用不同的标号,以便阐明应用站16和18的操作描述。具体说来,尽管现用应用站16和备用应用站18中的对应功能模块可以提供相同(或实质上相同)的功能,但是它们在各自的应用站16和18内被独立的例化(instantiate),因此,不需要在相同的时刻具备完全相同的操作状态。
通常,功能模块50-60和62-72以协作的方式与其对应的冗余管理器50和62相互作用,以建立和维护冗余上下文。冗余上下文使备用应用站18能够跟踪或尾随现用应用站16的操作。更具体地,应用站16和18经由它们相应的冗余链接子系统60和72和冗余链路46交换信息,以使每个应用站16和18能够确定其它应用站的操作健康(即操作状态)。此外,可以经由冗余链路46在现用应用站16和备用应用站18之间传送操作参数值和其它信息。按照维护与现用应用站16实质上同步和/或尾随现用应用站16的备用应用站18内的操作条件的需要,备用应用站18的冗余管理器62可以将从现用应用站16中接收的参数信息或数值传送到一个或多个冗余应用64、虚拟控制模块66、通信子系统68和/或操作系统70等。
为了更好地理解在冗余管理器50和62及其各自的本地子系统或功能模块52-60和64-70之间的交互作用或协作,接下来将更详细地描述功能模块52-60和64-70的操作。冗余应用52和64包括一个或多个软件应用,如运行周期管理应用,维护管理应用,实时监控应用,诊断应用等。冗余应用52和64典型地但非必需为分层软件应用(即在其它软件应用上成层的软件应用)。例如,运行周期管理应用通常在一个或多个成批管理应用上成层。
冗余应用52和64向它们各自的冗余管理器50和62注册,因此它们完全集成在由冗余管理器50和62建立和维护的冗余上下文内。换句话说,冗余应用52和64可以作为冗余应用对,以便如果例如一个冗余应用52发生故障,随着从现用应用站16到备用应用站18的切换,冗余应用64内对应相同的伙伴应用能够在故障应用停止处继续执行操作。
为了使冗余应用52和64能够参与冗余上下文,应用52和64中对应的一个交换有关现用应用站16、备用应用站18的当前状态以及应用52和64的当前状态。在启动切换的情况下(例如备用应用站18响应现用应用站16的故障或响应来自系统用户的指示来承担对现用应用站16的控制),冗余管理器62可以通知冗余应用64正在进行这种切换。从而,备用应用站18可以产生一个或多个系统报警或事件,它们可以例如经由操作员站14和40中的一个或两个通知和提供给系统用户。而且,例如在现用应用站16检测到备用应用站18发生故障的情况下,冗余应用52将接收到这种情况的通知,如果需要,可以由现用应用站16产生一个或多个适当的报警或事件,并传播给操作员站14和40和/或连接到过程控制系统10的其它系统。在任何情况下,冗余应用52和64内的每个应用都被配置为以对这个应用合适的方式来响应正在进行切换的通知、备用应用站18发生故障的通知等。
虚拟控制模块54和66将需要执行虚拟控制功能的物理资源信息提供给它们各自的冗余管理器50和62,这些信息有如存储器数量、处理器速度、输入/输出信息等。例如,冗余管理器62可以使用物理资源信息来确定备用应用站18在需要进行切换的情况下是否具有接管或承担对现用应用站16的控制的能力(即应用物理资源)。此外,虚拟控制模块54和66向它们各自的冗余管理器50和62提供指示:它们使用的诸如操作数据、调整数据等信息需要在各自的应用站16和18内进行更新。以这种方式,就可以使功能模块执行、排序和成批操作等完全同步。在虚拟控制模块54和66使系统用户、操作员、第三方等能够产生自定义功能模块的情况下,这些自定义功能模块将同样由冗余管理器50和62来同步。因此,虚拟控制模块66可以跟踪(即完全同步)虚拟控制模块54的操作,以使在从现用应用站16到备用应用站18切换的情况下,虚拟控制模块66能够以无缝或无波动的方式承担(即接管)虚拟控制模块54的虚拟控制任务。优选地,虚拟控制模块66采用与在切换点处虚拟控制模块54内的对应参数值相同的参数值开始执行其模块和方法等。
而且,可以将虚拟控制模块54和66配置为提供虚拟控制模块54和66中的一个或两个内存在应该禁止或避免切换的情况的指示。例如,在现用应用站16的配置发生改变而备用应用站18没有更新的情况下,在备用应用站18内的应用(例如一个冗余应用64)发生故障的情况下,可以提供指示。
通信子系统56和68使它们各自的应用站16和18和其中的每个功能模块能够经由LAN 20相互通信,也能与过程控制系统10内的其它系统进行通信。此外,为了允许和便于应用站16和18在由冗余管理器50和62建立和维护的冗余上下文内的协作,通信子系统56和68将服务和/或信息提供给它们相应的冗余管理器50和62。具体说来,通信子系统56和68可以提供多种服务,例如允许通信子系统56和68被禁止的服务、验证现用应用站16连接到与备用应用站18相同LAN(即LAN 20)的服务、提供通信子系统发生故障的指示的服务、和一旦切换便使新的现用应用站(例如备用应用站18)能够承担当前非现用应用站(例如现用应用站16)在LAN 20上的通信任务的服务。例如,新的现用应用站可以经由LAN 20重新建立先前的现用应用站与其它系统和装置的通信连接。
每个通信子系统56和68还可以提供正在管理的数据(即连接信息、路由信息等)发生改变,因而必须在冗余合伙应用站中进行更新的指示。例如,现用应用站16的通信子系统56可以向备用应用站18指示已经建立了到现用应用站16的新连接。这个新连接信息可以由冗余管理器50经由冗余链接子系统60、冗余链路46和冗余链接子系统72而传送到冗余管理器62。接着冗余管理器62可以与通信子系统68进行通信,以建立新的连接来维护冗余上下文。以这种方式,冗余管理器62将备用应用站18维持在发生切换的情况下能够承担现用应用站16的通信任务的条件下。
冗余链接子系统60和72中的每一个提供使应用站16和18中与其相应的一个能够经由冗余链路46建立通信信道或链路的服务。此外,在应用站16和18之间的通信信道或链路发生故障的情况下,冗余链接子系统60和72将指示提供给它们相应的冗余管理器50和62。而且,冗余链接子系统60和72提供使与冗余应用52和64、虚拟控制模块54和66、通信子系统56和68、操作系统58和70等相关的操作数据能在应用站16和18之间交换的服务。
如在下文中更详细的描述,冗余管理器50和62使用其冗余链接子系统60和72以及冗余链路46的信息传送性能来传输有关监控资源的状态信息。这种状态信息可以响应参数值和/或配置的改变等,由例如现用应用站16传输给备用应用站18,以提供指示现用应用站16的健康和/或操作状态的“心跳”信号或信息。结果,如果心跳信号指示出现用应用站16的健康严重损害和/或如果心跳信号完全丢失,则备用应用站18可以启动切换,并承担对发生故障或失效现用应用站16的控制任务。
操作系统58和70可以是任何希望的操作系统,如Windows、Linux等,其中可以接纳应用站16和18的运行时环境。对于在图1所示的过程控制系统10,运行时环境可以是DeltaVTM的运行时环境。操作系统58和70可以将诸如关于与应用站16和18相关的硬件平台的状态、健康、性能等信息提供给冗余管理器50和62。当然,这种信息可以根据用于实现应用站16和18的硬件来改变。例如,在使用多处理器工作站来实现应用站16和18的情况下,或相反,在使用单处理器个人计算机来实现应用站16和18的情况下,可以提供其它类型或数量的信息。
冗余管理器50和62以协作方式与它们各自的冗余应用52和64、虚拟控制模块54和66、通信子系统56和68、操作系统58和70、以及冗余链接子系统60和72进行通信,以建立和维护冗余上下文。此外,冗余管理器50和62要么自动依据当前现用应用站的故障,要么响应来自用户的指示,管理在应用站16和18之间的切换。而且,冗余管理器50和62维护关于冗余上下文的诊断信息。例如,可以通过例如优化应用和/或诊断应用,维护并且在需要时存取和利用状态信息、数据等待时间信息等,这些优化应用和/或诊断应用在冗余应用52和64中,或者可以以下面结合图3中更详细地描述的方式与冗余管理器52和60进行通信的客户应用。
图3是可以实现图2所示冗余管理器50和62的示例方式的更详细的方框图。为清楚起见,采用备用应用站18的冗余管理器62作为图3所示的示例进行描述。然而,图3的详细方框图和下面的描述同样可以应用到现用应用站16的冗余管理器50。在任何情况下,如图3所示,冗余管理器包括心跳管理器100、资源监控器102、冗余管理器应用编程接口(API)104和冗余客户服务106。
冗余管理器API 104使一个或多个冗余应用或客户108能够参与到冗余上下文中,这些冗余应用或客户108可以包括图2所示的冗余应用64和其它应用或客户(未在图2中示出)。换句话说,冗余管理器API 104包含使一个或多个应用或客户108能连到(即与其通信)冗余管理器62,以接收状态事件或信息的改变(例如,给定应用站的切换状态、参数值或配置变化等)的功能。状态信息或由冗余管理器62传送到冗余应用/客户108的信息的变化可以依据从或基于由心跳管理器100从冗余链接子系统72接收到的信息、和/或由资源监控器102从一个或多个资源如通信子系统68和操作系统70接收到的信息得出。
冗余管理器API 104实现应用注册功能,其使冗余应用/客户108内的应用或客户能够与冗余管理器62进行通信。应用注册功能可以对每一个注册应用产生唯一的标识符,以便在需要时使冗余管理器62能够将应用定位在备用应用站18内。此外,应用注册功能可以包括回叫功能(可以使用助手线程来实现),它使冗余管理器62能够将冗余事件(例如切换、配置改变等)传送到已注册应用。
冗余管理器API 104也实现应用注销功能,该应用注销功能从注册应用列表中移除所选择的应用。应用注销功能与冗余管理器62的故障应用可区分,因此它使各种应用能被移除或注销而不需调用不必要的切换。例如,在注销在现用应用站16中注册的应用的情况下,与发生故障相反,在备用应用站18的心跳管理器100识别出有意地注销该应用并不再可用时,备用应用站18将不会自动调用切换。
在由冗余应用/客户108内的应用或客户调用的情况下,冗余管理器API104也提供强制切换功能,使现用应用站16切换到备用应用站18。而且,冗余管理器API 104提供返回冗余管理器62的当前冗余角色的功能,从而返回其中驻留冗余管理器62的应用站(图3中的示例是备用应用站18)的冗余角色。因此,当一个或多个冗余应用/客户108使用冗余角色功能查询时,冗余管理器API 104返回指示冗余管理器62和应用站18正以备用角色工作的信息。如果现用应用站16内对冗余管理器API进行类似查询,冗余管理器API将返回指示现用角色的信息。当然,可以由冗余管理器API 104提供其它任何预期功能。
在操作中,冗余管理器50和62在允许执行切换之前建立冗余上下文。开始,应用站16和18以相同(或至少实质上相同)的方式配置。优选但非必需地,将现用应用站16的配置经由LAN 20下载到例如备用应用站18中。可以在备用应用站18内设置或配置标记或其它标识符,以标明该站具有备用角色。在现用应用站16的配置已经下载到备用应用站18之后,备用应用站18经由冗余链路46启动与现用应用站16的通信。
备用应用站18经由冗余链路46与现用应用站16进行通信,以将有关建立冗余上下文所需的服务质量的信息提供给现用应用站16。例如,服务质量信息可以包括最大可允许数据等待时间参数、最大可允许失控时间、或任何其它可以影响与过程控制系统10相关的性能、安全性、成本等的参数或数值。如果现用应用站16不能提供所需的服务质量,就不能建立冗余上下文。
备用应用站18也可以查询现用应用站16,以确定现用应用站16是否已经参与了与其它应用站的冗余上下文。如果现用应用站16已经担任应用站冗余对的成员,那么将不会建立冗余上下文。
如果现用应用站16已经不作为另一个应用站的冗余伙伴来参与(即已经是其它冗余上下文的一部分),并且能够提供支持建立冗余上下文所需的服务质量,则现用应用站16发送有关采用什么资源来执行现用应用站16的操作的信息。例如,在备用应用站18和现用应用站16之间交换的资源信息包括执行现用应用站16的任务所需要的存储器需求和处理单元等级、现用应用站16支持的代理信息(即客户和服务器)、通信子系统信息(例如插口信息、因特网协议路由信息等)。
在接收资源信息后,备用应用站18确定其是否具有存取所需的资源的入口,如果没有存取所需的资源的入口,备用应用站18给现用应用站16返回合适的错误指示,并且不建立冗余上下文。另一方面,如果备用应用站18具有存取所需的资源的入口,备用应用站18就建立与现用应用站16、通信子系统68和其它任何子系统或装置的通信,以获取来自执行现用应用站18的任务所需要的资源中的信息。只要备用应用站18建立了获取所要求的资源信息所需要的通信,可以设置标记或其它标识符来指示建立了冗余上下文。
只要在现用应用站16和备用应用站18之间建立了冗余上下文,就通过将与现用应用站16相关的任何配置变化、操作参数变化、通信子系统变化、操作员变化、排序信息、成批阶段(batch phase)信息、报警通知、事件信息、资源锁定信息(例如获取装置的共享部分,如标题或反应器(reactor))通知给备用应用站18来维护上下文。例如,如果系统用户或操作员改变了现用应用站16的配置,这些变化将经由冗余链接子系统60和72以及冗余链路46由冗余管理器50通知给冗余管理器62。接着冗余管理器62更新备用应用站18的配置,以与现用应用站16的配置相匹配。类似地,如果与虚拟控制模块54等相关的诸如调整数据、控制回路参数的参数值以影响备用应用站18承担现用应用站16的控制任务的能力的方式发生改变,那么这些参数值要被通知给备用应用站18,并在备用应用站18内更新。因此,现用应用站16内的操作变化要被传送到备用应用站,以使备用应用站18与现用应用站16的操作充分同步。
在现用应用站16的配置发生改变,并将该变化传送给备用应用站18时,冗余管理器50和62就禁止自动切换(即由于现用应用站16内的故障而引起的切换)。尽管禁止了自动切换,改变的配置信息经由冗余链接子系统60和72以及冗余链路46而传送给备用应用站18。如果在备用应用站18内成功地传送和更新了配置信息,就允许自动切换。另一方面,如果配置信息的传送和/或更新失败,就解除或终止冗余上下文,在这种情况下应用站16和18不再作为冗余对。
如上所述,可以在系统用户或操作员的指引下手动地,或响应备用应用站18承担现用应用站16的任务所需要的条件或其它事件自动地,来启动切换。可以通过向冗余管理器API发送合适的功能呼叫来调用手动切换,冗余管理器API在现用应用站16的冗余管理器50内,并与冗余管理器API 104相似或相同。
响应心跳管理器100做出的现用应用站16不再经由冗余链路46发送“心跳”(即表示现用应用站16操作正常的有关监控资源的状态信息)的判定,备用应用站18启动自动切换。因此,在与冗余上下文伙伴(例如备用应用站18是现用应用站16的冗余上下文伙伴)的通信失败的情况下,冗余链接子系统60和72就配置为通知它们相应的冗余管理器50和62。此外,在LAN与应用站16和18中其对应的一个的通信失败的情况下,通信子系统56和68就配置为通知其对应的冗余管理器50和62。例如,如果现用应用站16遭受了LAN 20上的通信故障,则通信子系统56将故障通知给冗余管理器50。然后冗余管理器50使用其冗余链接子系统60将通信故障通知给备用应用站18内的冗余管理器62。
如上所述,可以响应用户的指示来调用切换。具体说来,系统用户或操作员可以经由冗余管理器API 104与一个或多个冗余应用/客户108(图3)相互作用,以呼叫调用切换的功能。优选但非必需地,将切换请求发送到现用应用站16内的冗余管理器50。当冗余管理器50接收切换请求时,冗余管理器50通知虚拟控制模块54进行切换,并且禁止任何支持现用应用站16的代理。此外,向支持现用应用站16的资源告知已经启动切换。例如,通信子系统56被告知已经请求了切换。响应切换通知,通信子系统56确保现用应用站16没有防碍成为现用(即承担控制)的备用应用站18。此外,通信子系统56也确保所有的应用站消息(例如,操作变化请求、调整请求等)都被发送给现用应用站16。
在通知了切换的资源后,冗余管理器50经由冗余链接子系统60和72以及冗余链路46进行通信,以将切换命令或请求发送给备用应用站18中的冗余管理器62。备用应用站18通过通知虚拟控制模块66进行切换并且允许所有支持虚拟控制模块66所需要的(先前在现用应用站16中被禁止的)代理,来响应该命令或请求实现切换。然后向支持虚拟控制模块66的资源通知该切换。例如,通信子系统68被告知正在进行的切换,并且作为响应,可以强制更新因特网协议路由信息,可以强制重建TCP的连接等。当然,切换也可以替代为响应现用应用站16的故障而自动启动。
冗余应用站16和18可被用于执行现用应用16的在线或“热”配置改变。例如,在建立现用应用站16和备用应用站18之间的冗余上下文后,就可以执行将现用应用站16的操作切换到备用应用站18的切换操作。然后临时禁止切换操作或功能,可以以任何希望的方式来改变现用应用站16的配置。配置变化可以包括对一个或多个冗余应用52的更新或改变、对虚拟控制模块54的改变、或任何其它希望的改变。然后再次允许切换操作或功能,并执行将现用应用站16的操作切换到备用应用站18的切换操作。
在应用站16和18的示例中示出的功能模块可以使用希望的软件、固件和硬件的任何组合来实现。例如,一个或多个微处理器、微控制器、专用集成电路(ASIC)等可以存取机器或处理器可存取的存储介质中存储的指令或数据,以实现这里描述的方法和设备。存储介质可以包括任何装置和/或介质的组合,例如包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等的固态存储介质、光存储介质、磁存储介质等。此外,用于实现功能模块的软件可以附加地或可替换地经由因特网、电话线、卫星通信等传送给处理器或执行该软件的其它装置,并且可以由处理器或执行该软件的其它装置来存取。
因此,尽管本发明公开文本提供了特定的示例,但它们仅仅是起说明的作用,而并不限制本发明,本领域的普通技术人员应该明白,在不脱离本发明的精神和范围的情况下,可以对公开的实施例进行改变、增加或删除。