專利名稱:冗余管理器的制作方法
技術領域:
本發(fā)明涉及過程控制系統(tǒng),特別涉及過程控制系統(tǒng)中使用的冗余應用站。
背景技術:
諸如在化學、石油或其它過程中使用的過程控制系統(tǒng),通常包括一個或多個集中過程控制器,它們通過模擬、數字或組合模擬/數字總線以通信方式連接到至少一個主機或操作員工作站以及一個或多個現場裝置(field device) 0現場裝置可以是例如閥門、閥門位置控制器,開關和變送器(例如溫度、壓力和流速傳感器),它們執(zhí)行諸如打開或關閉閥門以及測量過程參數的功能。過程控制器接收表示由現場裝置進行的過程測量的信號和 /或關于現場裝置的其它信息,使用該信息來執(zhí)行控制例程并產生控制信號,這些控制信號經由總線或其它通信線路被發(fā)送到現場裝置以控制過程的操作。來自現場裝置和控制器的信息對操作員工作站執(zhí)行的一個或多個應用可用,以使操作員能夠執(zhí)行有關過程的期望功能,例如瀏覽當前的過程狀態(tài),修改過程的操作等。許多過程控制系統(tǒng)也包括一個或多個應用站。典型地,使用以通信方式經由局域網(LAN)連接到控制器、操作員工作站和過程控制系統(tǒng)內其它系統(tǒng)的個人計算機、工作站等來實現這些應用站。每個應用站可以運行一個或多個軟件應用程序,它們執(zhí)行過程控制系統(tǒng)內的運行周期(campaign)管理功能、維護管理功能、虛擬控制功能、診斷功能、實時監(jiān)控功能等。由于諸如應用站內和/或過程控制系統(tǒng)內其它位置的軟件故障或硬件故障(例如網絡通信損耗、電源損耗等)產生的應用站故障通常導致失效或故障應用站的功能和應用終止。一些過程控制系統(tǒng)或應用站配置為提供有限的應用站恢復功能。例如,一些公知的應用站存儲了與它執(zhí)行的功能和/或應用相關的配置信息、控制參數和數值、歷史數據等。 通過由過程控制系統(tǒng)對應用站進行重新開始(例如重新啟動),就可以使用存儲的歷史信息或數據,來恢復由于硬件和/或軟件錯誤或故障而被終止、鎖定或不起作用的應用程序。令人遺憾的是,公知應用站的恢復技術實質上是在由應用站執(zhí)行的耗時的數據恢復處理和軟件應用程序非同步重新例化(re-instantiation)之后進行的應用站的冷重啟動或重新啟動。盡管這些公知應用站恢復技術可能適合某些過程控制應用,它們并不適合所有的過程控制應用,在一些情況下,可能導致危險和/或代價高昂的后果。特別是,公知應用站恢復技術不是無縫或“無波動(bumpless) ”的,因為它們在應用站的故障及其恢復之間通常陷入相當長的延時。因此,由于在相對太長的恢復期間內發(fā)生的設備或其它過程條件的改變,在故障之前存儲的歷史參數值可能已不再適合。在一些情況下,使用這種歷史參數值是代價非常高昂的和/或危險的。例如,在虛擬控制和運行周期管理應用的情況下,使用不適當的參數值可能導致成批數據的丟失、人員和/或設備的損傷等。而且,在應用站故障是不可恢復的硬件故障的情況下,這些應用將被終止直到硬件被替換或修理,這可能需要不可接受的長期時間。
發(fā)明內容
根據本發(fā)明一個方面,一種用于應用站的冗余管理器,包括心跳管理器;應用編程接口 ;以及以通信方式連接心跳管理器和應用編程接口的資源監(jiān)控器。根據本發(fā)明一個方面,一種在過程控制系統(tǒng)中使用的應用站包括冗余管理器和連接到冗余管理器并適配為經由冗余通信鏈路與第二應用站進行通信的冗余鏈接子系統(tǒng)。 冗余管理器可以建立第二應用站的冗余上下文,并可以使用冗余上下文來跟蹤第二應用站的操作。此外,冗余管理器可以適配為經由冗余鏈路和冗余鏈接子系統(tǒng)接收來自第二應用站的信息,并響應該信息來將第二應用站的操作切換到應用站的操作。根據本發(fā)明的另一方面,應用站中使用的冗余管理器包括心跳(heartbeat)管理器、應用編程接口和以通信方式連接到心跳管理器和應用編程接口的資源監(jiān)控器。該心跳管理器可以監(jiān)控從應用站接收到的操作狀態(tài)信息。根據本發(fā)明的另一方面,一種用于在具有第一和第二應用站的過程控制系統(tǒng)內建立冗余上下文的系統(tǒng)和方法,將與第一應用站相關的配置下載到第二應用站,確定第一應用站提供了足夠的服務質量,并將關于第一應用站使用的一組資源的信息發(fā)送到第二應用站。此外,該系統(tǒng)和方法可以確定第二應用站具有存取第一應用站使用的這組資源的入口, 并且可以響應確定出第二應用站具有存取第一應用站所使用的這組資源的入口,而在過程控制系統(tǒng)內建立冗余上下文。
圖1是使用本文描述的冗余應用站設備和方法的示例過程控制系統(tǒng)的方框圖。圖2是可以實現圖1所示的冗余應用站的示例方式的更詳細的方框圖。圖3是可以實現圖2所示的冗余管理器的示例方式的更詳細的方框圖。
具體實施例方式圖1是使用本文描述的冗余應用站設備和方法的示例過程控制系統(tǒng)10的方框圖。 如圖1所示,過程控制系統(tǒng)10包括控制器12、操作員工作站14、現用應用站16和備用應用站18,所有這些設備都可以以通信方式經由總線或局域網(LAN) 20連接,這通常被稱為應用控制網(ACN)。可以使用一個或多個工作站或其它合適的計算機系統(tǒng)或處理單元來實現操作員工作站14和應用站16和18。例如,應用站16和18可以使用單處理器個人計算機、 單或多處理器工作站等來實現。此外,局域網LAN 20可以使用任何希望的通信媒介和協(xié)議來實現。例如,局域網20可以基于硬連線(hardwired)或無線以太網通信方案,這些都是公知內容因此在此不作更多描述。然而,本領域的普通技術人員能夠容易理解,任何其它合適的通信媒介和協(xié)議都可以被使用。而且,盡管所顯示的是單個LAN,可以使用多個LAN和應用站16和18內合適的通信硬件來提供應用站16和18之間的冗余通信路徑??刂破?2可以經由數字數據總線觀和輸入/輸出(I/O)裝置30連接到多個智能現場裝置22、M和26。智能現場裝置2246可以是適應Fieldbus (場總線)的閥門、轉動裝置、傳感器等,在這種情況下,智能現場裝置2246使用公知的Fieldbus協(xié)議進行通信。當然,也可以使用其它類型的智能現場裝置和通信協(xié)議來代替。例如,智能現場裝置2216可以替換為使用公知ftOfibus和HART通信協(xié)議經由數據總線28進行通信的適應ftOfibus 和HART的裝置。附加的I/O裝置(類似或等同于I/O裝置30)可以連接到控制器12來使附加的智能場裝置組能與控制器12通信,這些附加的智能場裝置組可以是Fieldbus裝置、 HART裝置等。除了智能現場裝置2246外,一個或多個非智能場裝置32和34可以以通信方式連接到控制器12。這些非智能場裝置32和34可以是例如經由相應的硬連線鏈路36和38 與控制器12進行通信的傳統(tǒng)4-20毫安培(mA)或0_10伏特直流(VDC)裝置。控制器12可以是例如由Fisher-Rosemount Systems公司出售的DeltaV 控制器。然而,可以使用任何其它控制器來代替。此外,盡管圖1中只示出了一個控制器,可以將任何希望類型或類型組合的附加控制器連接到LAN20。在任何情況下,控制器12可以執(zhí)行與過程控制系統(tǒng)10有關的一個或多個過程控制例程,它們是由使用操作員站14的系統(tǒng)工程師或其它系統(tǒng)工作員生成并被下載,并且在控制器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連續(xù)或周期性的經由冗余鏈路46交換信息(例如響應參數值改變、應用站配置改變等),以建立和維護冗余上下文。冗余上下文使得能夠在現用應用站16和備用應用站18之間進行無縫或無波動的控制移交或切換。例如,冗余上下文使得能夠響應現用應用站16內的硬件或軟件故障或響應于系統(tǒng)用戶或系統(tǒng)操作員或過程控制系統(tǒng)10的客戶應用程序中的指示,實現從現用應用站16到備用應用站18的控制移交或切換。在任何情況下,應用站16和18可以表現為LAN 20上作為冗余對的單個節(jié)點。特別地,備用應用站18的起“熱”備用應用站的作用,在現用應用站16故障或接收來自用戶的切換指示的情況下,快速和無縫地采用和繼續(xù)對應用程序或現用應用站16所執(zhí)行的功能的控制,而不需要耗時的例化或其它用戶干預。為了實現這種“熱”備用方案,當前現用應用站(例如現用應用站16)使用冗余上下文將諸如為配置信息,控制參數信息等信息經由冗余鏈路46通信給其冗余伙伴應用站(例如備用應用站18)。以這種方式,只要備用應用站18就緒并能夠承擔控制,就能夠實現從當前現用應用站(例如現用應用站16)到其冗余伙伴或備用應用站(例如備用應用站18)的無縫或無波動控制轉移或切換。為了確保備用應用站18就緒并能夠承擔當前由現用應用站16執(zhí)行的應用控制、虛擬控制功能、通信功能等,冗余上下文確定備用應用站18是否具有存取物理資源(例如 LAN 20、其它外部數據資源等)的入口,是否具有要求的編程信息(例如配置和連接信息), 以及要求的服務質量(例如處理器速度,存儲器需求等)是否可用。此外,將維護冗余上下文以確保備用應用站18始終準備好承擔控制。這種冗余上下文維護是通過在冗余應用站 16和18之間傳送保持操作同步所需的狀態(tài)信息、配置信息或任何其它信息來實現。在一些示例中,應用站16和18可以配置為在現用應用站16出現故障并隨后恢復為健康狀態(tài)或被修理或替換(并合適地配置)的情況下,現用應用站16從備用應用站18 收回控制,而備用應用站18將其狀態(tài)恢復為熱備用站。然而,如果需要,可以將備用應用站 18配置為在沒有系統(tǒng)用戶同意或一些其它類型的用戶干預下,避免恢復應用站收回控制?,F用應用站16通常負責進行(即執(zhí)行)虛擬控制功能、運行周期管理應用、維護管理應用、診斷應用和/或任何其它希望的功能或應用,這些功能或應用可能與過程控制系統(tǒng)10內所需的過程控制活動、企業(yè)優(yōu)化活動等的管理和/或監(jiān)控有關。備用應用站18 以與現用應用站16相同的方式配置,因此包括了需要在現用應用站16內執(zhí)行的每個功能和應用的備份。此外,備用應用站18包括硬件和/或存取與現用應用站16可用的資源相同或至少功能上相當的資源的入口。而且,備用應用站18經由冗余鏈路46跟蹤現用應用站16的操作(例如,現用應用站16內執(zhí)行的應用程序所使用的當前參數值)。圖2是可以實現圖1所示冗余應用站的示例方式的更詳細的方框圖。如圖2的示例所示,現用應用站16包括以通信方式連接到一個或多個冗余應用52、虛擬控制模塊M、 通信子系統(tǒng)56、操作系統(tǒng)58和冗余鏈接子系統(tǒng)60的冗余管理器50。類似地,備用應用站 18包括冗余管理器62,一個或多個冗余應用64,虛擬控制模塊66,通信子系統(tǒng)68,操作系統(tǒng)70和冗余鏈接子系統(tǒng)72。盡管備用應用站18中所示的功能模塊62-72提供與現用應用站16中相應的功能模塊62-72的功能相同或至少實質上相同的功能,但是對各個功能模塊 (例如模塊50和6 使用不同的標號,以便闡明應用站16和18的操作描述。具體說來,盡管現用應用站16和備用應用站18中的對應功能模塊可以提供相同(或實質上相同)的功能,但是它們在各自的應用站16和18內被獨立的例化(instantiate),因此,不需要在相同的時刻具備完全相同的操作狀態(tài)。通常,功能模塊50-60和62-72以協(xié)作的方式與其對應的冗余管理器50和62相互作用,以建立和維護冗余上下文。冗余上下文使備用應用站18能夠跟蹤或尾隨現用應用站16的操作。更具體地,應用站16和18經由它們相應的冗余鏈接子系統(tǒng)60和72和冗余鏈路46交換信息,以使每個應用站16和18能夠確定其它應用站的操作健康(即操作狀態(tài))。此外,可以經由冗余鏈路46在現用應用站16和備用應用站18之間傳送操作參數值和其它信息。按照維護與現用應用站16實質上同步和/或尾隨現用應用站16的備用應用站18內的操作條件的需要,備用應用站18的冗余管理器62可以將從現用應用站16中接收的參數信息或數值傳送到一個或多個冗余應用64、虛擬控制模塊66、通信子系統(tǒng)68和/ 或操作系統(tǒng)70等。為了更好地理解在冗余管理器50和62及其各自的本地子系統(tǒng)或功能模塊52-60 和64-70之間的交互作用或協(xié)作,接下來將更詳細地描述功能模塊52-60和64-70的操作。 冗余應用52和64包括一個或多個軟件應用,如運行周期管理應用,維護管理應用,實時監(jiān)控應用,診斷應用等。冗余應用52和64典型地但非必需為分層軟件應用(即在其它軟件
6應用上成層的軟件應用)。例如,運行周期管理應用通常在一個或多個成批管理應用上成層。冗余應用52和64向它們各自的冗余管理器50和62注冊,因此它們完全集成在由冗余管理器50和62建立和維護的冗余上下文內。換句話說,冗余應用52和64可以作為冗余應用對,以便如果例如一個冗余應用52發(fā)生故障,隨著從現用應用站16到備用應用站18的切換,冗余應用64內對應相同的伙伴應用能夠在故障應用停止處繼續(xù)執(zhí)行操作。為了使冗余應用52和64能夠參與冗余上下文,應用52和64中對應的一個交換有關現用應用站16、備用應用站18的當前狀態(tài)以及應用52和64的當前狀態(tài)。在啟動切換的情況下(例如備用應用站18響應現用應用站16的故障或響應來自系統(tǒng)用戶的指示來承擔對現用應用站16的控制),冗余管理器62可以通知冗余應用64正在進行這種切換。從而,備用應用站18可以產生一個或多個系統(tǒng)報警或事件,它們可以例如經由操作員站14和 40中的一個或兩個通知和提供給系統(tǒng)用戶。而且,例如在現用應用站16檢測到備用應用站18發(fā)生故障的情況下,冗余應用52將接收到這種情況的通知,如果需要,可以由現用應用站16產生一個或多個適當的報警或事件,并傳播給操作員站14和40和/或連接到過程控制系統(tǒng)10的其它系統(tǒng)。在任何情況下,冗余應用52和64內的每個應用都被配置為以對這個應用合適的方式來響應正在進行切換的通知、備用應用站18發(fā)生故障的通知等。虛擬控制模塊M和66將需要執(zhí)行虛擬控制功能的物理資源信息提供給它們各自的冗余管理器50和62,這些信息有如存儲器數量、處理器速度、輸入/輸出信息等。例如, 冗余管理器62可以使用物理資源信息來確定備用應用站18在需要進行切換的情況下是否具有接管或承擔對現用應用站16的控制的能力(即應用物理資源)。此外,虛擬控制模塊 54和66向它們各自的冗余管理器50和62提供指示它們使用的諸如操作數據、調整數據等信息需要在各自的應用站16和18內進行更新。以這種方式,就可以使功能模塊執(zhí)行、排序和成批操作等完全同步。在虛擬控制模塊M和66使系統(tǒng)用戶、操作員、第三方等能夠產生自定義功能模塊的情況下,這些自定義功能模塊將同樣由冗余管理器50和62來同步。 因此,虛擬控制模塊66可以跟蹤(即完全同步)虛擬控制模塊M的操作,以使在從現用應用站16到備用應用站18切換的情況下,虛擬控制模塊66能夠以無縫或無波動的方式承擔 (即接管)虛擬控制模塊討的虛擬控制任務。優(yōu)選地,虛擬控制模塊66采用與在切換點處虛擬控制模塊M內的對應參數值相同的參數值開始執(zhí)行其模塊和方法等。而且,可以將虛擬控制模塊M和66配置為提供虛擬控制模塊M和66中的一個或兩個內存在應該禁止或避免切換的情況的指示。例如,在現用應用站16的配置發(fā)生改變而備用應用站18沒有更新的情況下,在備用應用站18內的應用(例如一個冗余應用64) 發(fā)生故障的情況下,可以提供指示。通信子系統(tǒng)56和68使它們各自的應用站16和18和其中的每個功能模塊能夠經由LAN 20相互通信,也能與過程控制系統(tǒng)10內的其它系統(tǒng)進行通信。此外,為了允許和便于應用站16和18在由冗余管理器50和62建立和維護的冗余上下文內的協(xié)作,通信子系統(tǒng)56和68將服務和/或信息提供給它們相應的冗余管理器50和62。具體說來,通信子系統(tǒng)56和68可以提供多種服務,例如允許通信子系統(tǒng)56和68被禁止的服務、驗證現用應用站16連接到與備用應用站18相同LAN(即LAN 20)的服務、提供通信子系統(tǒng)發(fā)生故障的指示的服務、和一旦切換便使新的現用應用站(例如備用應用站18)能夠承擔當前非現用應用站(例如現用應用站16)在LAN 20上的通信任務的服務。例如,新的現用應用站可以經由LAN 20重新建立先前的現用應用站與其它系統(tǒng)和裝置的通信連接。每個通信子系統(tǒng)56和68還可以提供正在管理的數據(即連接信息、路由信息等) 發(fā)生改變,因而必須在冗余合伙應用站中進行更新的指示。例如,現用應用站16的通信子系統(tǒng)56可以向備用應用站18指示已經建立了到現用應用站16的新連接。這個新連接信息可以由冗余管理器50經由冗余鏈接子系統(tǒng)60、冗余鏈路46和冗余鏈接子系統(tǒng)72而傳送到冗余管理器62。接著冗余管理器62可以與通信子系統(tǒng)68進行通信,以建立新的連接來維護冗余上下文。以這種方式,冗余管理器62將備用應用站18維持在發(fā)生切換的情況下能夠承擔現用應用站16的通信任務的條件下。冗余鏈接子系統(tǒng)60和72中的每一個提供使應用站16和18中與其相應的一個能夠經由冗余鏈路46建立通信信道或鏈路的服務。此外,在應用站16和18之間的通信信道或鏈路發(fā)生故障的情況下,冗余鏈接子系統(tǒng)60和72將指示提供給它們相應的冗余管理器 50和62。而且,冗余鏈接子系統(tǒng)60和72提供使與冗余應用52和64、虛擬控制模塊M和 66、通信子系統(tǒng)56和68、操作系統(tǒng)58和70等相關的操作數據能在應用站16和18之間交換的服務。如在下文中更詳細的描述,冗余管理器50和62使用其冗余鏈接子系統(tǒng)60和72 以及冗余鏈路46的信息傳送性能來傳輸有關監(jiān)控資源的狀態(tài)信息。這種狀態(tài)信息可以響應參數值和/或配置的改變等,由例如現用應用站16傳輸給備用應用站18,以提供指示現用應用站16的健康和/或操作狀態(tài)的“心跳”信號或信息。結果,如果心跳信號指示出現用應用站16的健康嚴重損害和/或如果心跳信號完全丟失,則備用應用站18可以啟動切換,并承擔對發(fā)生故障或失效現用應用站16的控制任務。操作系統(tǒng)58和70可以是任何希望的操作系統(tǒng),如Windows 、Linux 等,其中可以接納應用站16和18的運行時環(huán)境。對于在圖1所示的過程控制系統(tǒng)10,運行時環(huán)境可以是DeltaV 的運行時環(huán)境。操作系統(tǒng)58和70可以將諸如關于與應用站16和18相關的硬件平臺的狀態(tài)、健康、性能等信息提供給冗余管理器50和62。當然,這種信息可以根據用于實現應用站16和18的硬件來改變。例如,在使用多處理器工作站來實現應用站16和 18的情況下,或相反,在使用單處理器個人計算機來實現應用站16和18的情況下,可以提供其它類型或數量的信息。冗余管理器50和62以協(xié)作方式與它們各自的冗余應用52和64、虛擬控制模塊 54和66、通信子系統(tǒng)56和68、操作系統(tǒng)58和70、以及冗余鏈接子系統(tǒng)60和72進行通信, 以建立和維護冗余上下文。此外,冗余管理器50和62要么自動依據當前現用應用站的故障,要么響應來自用戶的指示,管理在應用站16和18之間的切換。而且,冗余管理器50和 62維護關于冗余上下文的診斷信息。例如,可以通過例如優(yōu)化應用和/或診斷應用,維護并且在需要時存取和利用狀態(tài)信息、數據等待時間信息等,這些優(yōu)化應用和/或診斷應用在冗余應用52和64中,或者可以以下面結合圖3中更詳細地描述的方式與冗余管理器52和 60進行通信的客戶應用。圖3是可以實現圖2所示冗余管理器50和62的示例方式的更詳細的方框圖。為清楚起見,采用備用應用站18的冗余管理器62作為圖3所示的示例進行描述。然而,圖3 的詳細方框圖和下面的描述同樣可以應用到現用應用站16的冗余管理器50。在任何情況下,如圖3所示,冗余管理器包括心跳管理器100、資源監(jiān)控器102、冗余管理器應用編程接口 (API) 104和冗余客戶服務106。冗余管理器API 104使一個或多個冗余應用或客戶108能夠參與到冗余上下文中,這些冗余應用或客戶108可以包括圖2所示的冗余應用64和其它應用或客戶(未在圖 2中示出)。換句話說,冗余管理器API 104包含使一個或多個應用或客戶108能連到(即與其通信)冗余管理器62,以接收狀態(tài)事件或信息的改變(例如,給定應用站的切換狀態(tài)、 參數值或配置變化等)的功能。狀態(tài)信息或由冗余管理器62傳送到冗余應用/客戶108 的信息的變化可以依據從或基于由心跳管理器100從冗余鏈接子系統(tǒng)72接收到的信息、和 /或由資源監(jiān)控器102從一個或多個資源如通信子系統(tǒng)68和操作系統(tǒng)70接收到的信息得出ο冗余管理器API 104實現應用注冊功能,其使冗余應用/客戶108內的應用或客戶能夠與冗余管理器62進行通信。應用注冊功能可以對每一個注冊應用產生唯一的標識符,以便在需要時使冗余管理器62能夠將應用定位在備用應用站18內。此外,應用注冊功能可以包括回叫功能(可以使用助手線程來實現),它使冗余管理器62能夠將冗余事件 (例如切換、配置改變等)傳送到已注冊應用。冗余管理器API 104也實現應用注銷功能,該應用注銷功能從注冊應用列表中移除所選擇的應用。應用注銷功能與冗余管理器62的故障應用可區(qū)分,因此它使各種應用能被移除或注銷而不需調用不必要的切換。例如,在注銷在現用應用站16中注冊的應用的情況下,與發(fā)生故障相反,在備用應用站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在允許執(zhí)行切換之前建立冗余上下文。開始,應用站16和18以相同(或至少實質上相同)的方式配置。優(yōu)選但非必需地,將現用應用站16 的配置經由LAN 20下載到例如備用應用站18中??梢栽趥溆脩谜?8內設置或配置標記或其它標識符,以標明該站具有備用角色。在現用應用站16的配置已經下載到備用應用站18之后,備用應用站18經由冗余鏈路46啟動與現用應用站16的通信。備用應用站18經由冗余鏈路46與現用應用站16進行通信,以將有關建立冗余上下文所需的服務質量的信息提供給現用應用站16。例如,服務質量信息可以包括最大可允許數據等待時間參數、最大可允許失控時間、或任何其它可以影響與過程控制系統(tǒng)10相關的性能、安全性、成本等的參數或數值。如果現用應用站16不能提供所需的服務質量,就不能建立冗余上下文。備用應用站18也可以查詢現用應用站16,以確定現用應用站16是否已經參與了與其它應用站的冗余上下文。如果現用應用站16已經擔任應用站冗余對的成員,那么將不會建立冗余上下文。如果現用應用站16已經不作為另一個應用站的冗余伙伴來參與(即已經是其它冗余上下文的一部分),并且能夠提供支持建立冗余上下文所需的服務質量,則現用應用站 16發(fā)送有關采用什么資源來執(zhí)行現用應用站16的操作的信息。例如,在備用應用站18和現用應用站16之間交換的資源信息包括執(zhí)行現用應用站16的任務所需要的存儲器需求和處理單元等級、現用應用站16支持的代理信息(即客戶和服務器)、通信子系統(tǒng)信息(例如插口信息、因特網協(xié)議路由信息等)。在接收資源信息后,備用應用站18確定其是否具有存取所需的資源的入口,如果沒有存取所需的資源的入口,備用應用站18給現用應用站16返回合適的錯誤指示,并且不建立冗余上下文。另一方面,如果備用應用站18具有存取所需的資源的入口,備用應用站 18就建立與現用應用站16、通信子系統(tǒng)68和其它任何子系統(tǒng)或裝置的通信,以獲取來自執(zhí)行現用應用站18的任務所需要的資源中的信息。只要備用應用站18建立了獲取所要求的資源信息所需要的通信,可以設置標記或其它標識符來指示建立了冗余上下文。只要在現用應用站16和備用應用站18之間建立了冗余上下文,就通過將與現用應用站16相關的任何配置變化、操作參數變化、通信子系統(tǒng)變化、操作員變化、排序信息、 成批階段(batch phase)信息、報警通知、事件信息、資源鎖定信息(例如獲取裝置的共享部分,如標題或反應器(reactor))通知給備用應用站18來維護上下文。例如,如果系統(tǒng)用戶或操作員改變了現用應用站16的配置,這些變化將經由冗余鏈接子系統(tǒng)60和72以及冗余鏈路46由冗余管理器50通知給冗余管理器62。接著冗余管理器62更新備用應用站18 的配置,以與現用應用站16的配置相匹配。類似地,如果與虛擬控制模塊M等相關的諸如調整數據、控制回路參數的參數值以影響備用應用站18承擔現用應用站16的控制任務的能力的方式發(fā)生改變,那么這些參數值要被通知給備用應用站18,并在備用應用站18內更新。因此,現用應用站16內的操作變化要被傳送到備用應用站,以使備用應用站18與現用應用站16的操作充分同步。在現用應用站16的配置發(fā)生改變,并將該變化傳送給備用應用站18時,冗余管理器50和62就禁止自動切換(即由于現用應用站16內的故障而引起的切換)。盡管禁止了自動切換,改變的配置信息經由冗余鏈接子系統(tǒng)60和72以及冗余鏈路46而傳送給備用應用站18。如果在備用應用站18內成功地傳送和更新了配置信息,就允許自動切換。另一方面,如果配置信息的傳送和/或更新失敗,就解除或終止冗余上下文,在這種情況下應用站 16和18不再作為冗余對。如上所述,可以在系統(tǒng)用戶或操作員的指引下手動地,或響應備用應用站18承擔現用應用站16的任務所需要的條件或其它事件自動地,來啟動切換??梢酝ㄟ^向冗余管理器API發(fā)送合適的功能呼叫來調用手動切換,冗余管理器API在現用應用站16的冗余管理器50內,并與冗余管理器API 104相似或相同。響應心跳管理器100做出的現用應用站16不再經由冗余鏈路46發(fā)送“心跳”(即表示現用應用站16操作正常的有關監(jiān)控資源的狀態(tài)信息)的判定,備用應用站18啟動自動切換。因此,在與冗余上下文伙伴(例如備用應用站18是現用應用站16的冗余上下文伙伴)的通信失敗的情況下,冗余鏈接子系統(tǒng)60和72就配置為通知它們相應的冗余管理器50和62。此外,在LAN與應用站16和18中其對應的一個的通信失敗的情況下,通信子系統(tǒng)56和68就配置為通知其對應的冗余管理器50和62。例如,如果現用應用站16遭受了 LAN 20上的通信故障,則通信子系統(tǒng)56將故障通知給冗余管理器50。然后冗余管理器 50使用其冗余鏈接子系統(tǒng)60將通信故障通知給備用應用站18內的冗余管理器62。如上所述,可以響應用戶的指示來調用切換。具體說來,系統(tǒng)用戶或操作員可以經由冗余管理器API 104與一個或多個冗余應用/客戶108(圖3)相互作用,以呼叫調用切換的功能。優(yōu)選但非必需地,將切換請求發(fā)送到現用應用站16內的冗余管理器50。當冗余管理器50接收切換請求時,冗余管理器50通知虛擬控制模塊M進行切換,并且禁止任何支持現用應用站16的代理。此外,向支持現用應用站16的資源告知已經啟動切換。例如,通信子系統(tǒng)56被告知已經請求了切換。響應切換通知,通信子系統(tǒng)56確?,F用應用站 16沒有防礙成為現用(即承擔控制)的備用應用站18。此外,通信子系統(tǒng)56也確保所有的應用站消息(例如,操作變化請求、調整請求等)都被發(fā)送給現用應用站16。在通知了切換的資源后,冗余管理器50經由冗余鏈接子系統(tǒng)60和72以及冗余鏈路46進行通信,以將切換命令或請求發(fā)送給備用應用站18中的冗余管理器62。備用應用站18通過通知虛擬控制模塊66進行切換并且允許所有支持虛擬控制模塊66所需要的 (先前在現用應用站16中被禁止的)代理,來響應該命令或請求實現切換。然后向支持虛擬控制模塊66的資源通知該切換。例如,通信子系統(tǒng)68被告知正在進行的切換,并且作為響應,可以強制更新因特網協(xié)議路由信息,可以強制重建TCP的連接等。當然,切換也可以替代為響應現用應用站16的故障而自動啟動。冗余應用站16和18可被用于執(zhí)行現用應用16的在線或“熱”配置改變。例如, 在建立現用應用站16和備用應用站18之間的冗余上下文后,就可以執(zhí)行將現用應用站16 的操作切換到備用應用站18的切換操作。然后臨時禁止切換操作或功能,可以以任何希望的方式來改變現用應用站16的配置。配置變化可以包括對一個或多個冗余應用52的更新或改變、對虛擬控制模塊M的改變、或任何其它希望的改變。然后再次允許切換操作或功能,并執(zhí)行將現用應用站16的操作切換到備用應用站18的切換操作。在應用站16和18的示例中示出的功能模塊可以使用希望的軟件、固件和硬件的任何組合來實現。例如,一個或多個微處理器、微控制器、專用集成電路(ASIC)等可以存取機器或處理器可存取的存儲介質中存儲的指令或數據,以實現這里描述的方法和設備。存儲介質可以包括任何裝置和/或介質的組合,例如包括隨機存取存儲器(RAM)、只讀存儲器 (ROM)、電可擦除可編程只讀存儲器(EEPROM)等的固態(tài)存儲介質、光存儲介質、磁存儲介質等。此外,用于實現功能模塊的軟件可以附加地或可替換地經由因特網、電話線、衛(wèi)星通信等傳送給處理器或執(zhí)行該軟件的其它裝置,并且可以由處理器或執(zhí)行該軟件的其它裝置來存取。因此,盡管本發(fā)明公開文本提供了特定的示例,但它們僅僅是起說明的作用,而并不限制本發(fā)明,本領域的普通技術人員應該明白,在不脫離本發(fā)明的精神和范圍的情況下, 可以對公開的實施例進行改變、增加或刪除。
權利要求
1.一種用于應用站的冗余管理器,包括 心跳管理器;應用編程接口 ;以及以通信方式連接心跳管理器和應用編程接口的資源監(jiān)控器。
2.如權利要求1所述的冗余管理器,其中心跳管理器監(jiān)控從應用站接收到的信息,其中該信息與應用站的操作狀態(tài)相關。
3.如權利要求1所述的冗余管理器,其中應用編程接口包括應用注冊功能、應用注銷功能以及定向切換功能的其中之一。
4.如權利要求1所述的冗余管理器,其中應用編程接口被適配為使多個客戶與冗余管理器對接。
5.如權利要求1所述的冗余管理器,其中資源監(jiān)控器以通信方式連接到多個應用站資源。
全文摘要
一種用于應用站的冗余管理器,包括心跳管理器;應用編程接口;以及以通信方式連接心跳管理器和應用編程接口的資源監(jiān)控器。
文檔編號G06F15/177GK102426415SQ201110335850
公開日2012年4月25日 申請日期2004年1月2日 優(yōu)先權日2003年1月2日
發(fā)明者肯.比奧特, 馬克.J.尼克松 申請人:費舍-柔斯芒特系統(tǒng)股份有限公司