一種空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)及控制方法
【專利摘要】一種空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)及控制方法。系統(tǒng)包括第一、第二服務器和狀態(tài)監(jiān)控終端,第一、二服務器為兩臺完全相同的用于運行空管自動化軟件的空管服務器,分別與專用空管網(wǎng)絡相連接;狀態(tài)監(jiān)控終端為用于監(jiān)控第一、二服務器工作狀態(tài)的專用計算機,其與空管網(wǎng)絡相連接;空管網(wǎng)絡上還連接有多個客戶端。本發(fā)明的系統(tǒng)及控制方法的優(yōu)點:不受操作系統(tǒng)限制,可在各種操作系統(tǒng)平臺上運行;完全由軟件實現(xiàn),不受服務器硬件的限制,任意兩類服務器都可以組成雙機熱備系統(tǒng);不需要共享介質,節(jié)省空間,降低硬件成本;兩臺服務器的主用、備用狀態(tài)的切換由獨立的服務器工作狀態(tài)監(jiān)控終端實現(xiàn),減輕了兩服務器的負擔,提高了服務器運行的穩(wěn)定性。
【專利說明】一種空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)及控制方法
【技術領域】
[0001]本發(fā)明屬于航空控制自動化【技術領域】,特別是涉及一種空管自動化系統(tǒng)中的雙服 務器熱備系統(tǒng)及控制方法。
【背景技術】
[0002]近年來,隨著我國國民經(jīng)濟的不斷發(fā)展,我國航空管理部門對于空中交通自動化 管制系統(tǒng)的需求越來越強烈。在我國,為了保障飛機飛行安全,保障我國的領空權,制定了 嚴格的空中交通管理法規(guī),并且建立了各種的空中交通管制機構,為各個航空部門購置了 相應的設備和設施。為了確??展茏詣踊到y(tǒng)中各關鍵模塊的服務器能夠長期穩(wěn)定運行, 對服務器的電源、網(wǎng)卡、硬盤等部分器件提供了冗余設計。但是,如果空管自動化系統(tǒng)的重 要服務器的一些關鍵部件發(fā)生故障,如中央處理器故障、內存故障、主板故障等,整個服務 器就會停止運行,無法繼續(xù)提供服務,結果會嚴重影響整個空管自動化系統(tǒng)的運行和空域 的管理,導致空中交通事故的發(fā)生。
[0003]為了在一臺服務器發(fā)生故障的情況下,另一臺服務器能夠在最短的時間內代替其 提供服務。硬件供應商以及操作系統(tǒng)供應商一般都會提供集群方案,比如惠普公司隨其 Alpha機提供的基于Tru64操作系統(tǒng)的True Cluster集群服務器包;微軟公司的Windows NT Server4.0Enterprise Edition 提供的 MSCS (Microsoft Clustering Server)技術, 以及Windows2000Advanced Server 與Windows2000Datacenter Server提供的Microsoft Cluster Service等等,使用這些操作系統(tǒng)提供的集群能力,可以較為方便地提高系統(tǒng)的可 靠性,增強故障恢復能力和部件冗余功能。
[0004]雖然這些操作系統(tǒng)提供了集群功能,但是對于開發(fā)空管自動化系統(tǒng)而言,這些集 群方案也有許多限制,具體說來,主要有以下幾點:
[0005](I)增加額外成本。這些集群服務器一般都不是免費提供的,需要用戶花費較多的 經(jīng)費購買。
[0006](2)程序移植不方便。這些集群方案,大多數(shù)既需要供應商提供硬件的支持,也需 要同一家供應商的軟件支持,一旦決定采用一家公司的集群方案之后,往往只能被動地綁 定在該公司的平臺上,對于以后移植空管系統(tǒng)到其它平臺非常不方便。
[0007](3)無法完全滿足ATC (Air Traffic Control,空中交通管制)系統(tǒng)要求。這些集 群方案,大多數(shù)立足于通用的系統(tǒng)數(shù)據(jù)庫存儲方案,使用磁盤陣列存儲,重點放在保障數(shù)據(jù) 庫數(shù)據(jù)上。但是ATC系統(tǒng)不但要求保障數(shù)據(jù)庫數(shù)據(jù)完整性,而且還要求保障整個系統(tǒng)能夠 在出現(xiàn)故障時,盡可能地連續(xù)服務。這些要求,常規(guī)的操作系統(tǒng)集群方案無法直接提供。
[0008](4)無法直接與ATC系統(tǒng)集成。由供應商提供的集群方案往往需要使用供應商提 供的應用程序相配合,如果用戶需要使自己的應用程序能夠利用這些集群功能,則需要自 己編程調用供應商提供的API (Application Programming Interface,應用程序接口),而 不能直接利用現(xiàn)成的方案。
【發(fā)明內容】
[0009]為了解決上述問題,本發(fā)明的目的在于提供一種空管自動化系統(tǒng)中的雙服務器熱 備系統(tǒng)及控制方法。
[0010]為了達到上述目的,本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)包括: 第一服務器、第二服務器和狀態(tài)監(jiān)控終端,其中:第一服務器和第二服務器為兩臺完全相同 的用于運行空管自動化軟件的空管服務器,分別與專用空管網(wǎng)絡相連接;狀態(tài)監(jiān)控終端為 用于監(jiān)控第一服務器和第二服務器工作狀態(tài)的專用計算機,其與空管網(wǎng)絡相連接;同時,在 空管網(wǎng)絡上還連接有多個客戶端。
[0011]本發(fā)明提供的雙服務器熱備系統(tǒng)的控制方法分為初始啟動的SI階段、啟動成功 的S2階段和主備運行的S3階段;其中:S1階段為上電啟動和初始化階段,在此階段中,第 一服務器A、第二服務器B和狀態(tài)監(jiān)控終端C均處在上電啟動狀態(tài),其各自進行自身的自檢 和初始化操作,均不對外發(fā)送信息,也不接收外部的信息;啟動完成后進入S2階段;
[0012]所述的S2階段為啟動成功后完成主/備機初始設置階段,在此階段中:
[0013]I)兩個服務器,即:第一服務器和第二服務器分別加載自身的空管應用程序,同時 分別通過空管網(wǎng)絡向狀態(tài)監(jiān)控終端發(fā)送心跳信息,并接收狀態(tài)監(jiān)控終端發(fā)出的控制信息;
[0014]2)兩個服務器均不向客戶端發(fā)送數(shù)據(jù),也不接收客戶端發(fā)送的數(shù)據(jù);
[0015]3)狀態(tài)監(jiān)控終端對兩個服務器實施主/備狀態(tài)初始設置,即通過空管網(wǎng)絡捕獲兩 個服務器發(fā)出的心跳信息,并通過心跳信息獲得兩臺服務器的運行情況,并根據(jù)運行情況, 發(fā)出主/備設置指令,將兩臺服務器分別設置為主用狀態(tài)和備用狀態(tài);
[0016]4)兩個服務器在收到狀態(tài)監(jiān)控終端的初始設置指令后,根據(jù)指令的內容,將自身 設置為主用狀態(tài)或備用狀態(tài);此后,進入S3階段;
[0017]所述的S3階段為主備運行階段,在此階段中:
[0018]I)兩臺服務器均通過空管網(wǎng)絡定時向狀態(tài)監(jiān)控終端發(fā)送心跳信息,并接收狀態(tài)監(jiān) 控終端發(fā)出的控制信息;
[0019]2)兩臺服務器均運行空管應用程序,并同時接收客戶端發(fā)送的數(shù)據(jù),實現(xiàn)兩臺服 務器的數(shù)據(jù)同步;
[0020]3)工作于主用狀態(tài)的主服務器通過空管網(wǎng)絡向客戶端發(fā)送實時數(shù)據(jù);而工作于備 用狀態(tài)的備用服務器并不向客戶端發(fā)送數(shù)據(jù);
[0021]4)狀態(tài)監(jiān)控終端接收主用服務器和備用服務器發(fā)出的心跳信息,通過心跳信息實 時監(jiān)測主用服務器、備用服務器的工作狀態(tài)和空管應用程序的運行狀態(tài),如果監(jiān)測到服務 器的工作狀態(tài)異常或服務器的空管應用程序的運行狀態(tài)異常時,狀態(tài)監(jiān)控終端將發(fā)出異常 告警信息,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服務器的主用、備用狀態(tài)的切換; 如果監(jiān)測到服務器的工作狀態(tài)恢復正常或服務器的空管應用程序的運行狀態(tài)恢復正常時, 狀態(tài)監(jiān)控終端將發(fā)出異?;謴托畔?,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服務器 的主用、備用狀態(tài)的切換。
[0022]在所述的S2階段和S3階段中,所述的心跳信息包含服務器的機器標識、服務器當 前的工作狀態(tài)、服務器中要監(jiān)測的空管應用程序的運行狀態(tài)信息。
[0023]在S2階段中,所述的主/備狀態(tài)初始設置方法包括按順序執(zhí)行的下列步驟:
[0024]步驟一,接收心跳信息并提取應用程序狀態(tài)信息的S201階段:狀態(tài)監(jiān)控終端C通過空管網(wǎng)絡接收某臺服務器發(fā)送的心跳信息,提取并保存該服務器當前的狀態(tài)信息;
[0025]步驟二,判斷應用程序是否啟動成功的S202階段:從收到的心跳信息中判斷相應 的服務器中的空管應用程序是否全部啟動成功,如果判斷結果為“是”,則進入下一步S203 階段;否則返回到S201階段的入口處,繼續(xù)接收心跳信息;
[0026]步驟三,判斷是否有主用服務器的S203階段:狀態(tài)監(jiān)控終端C通過收到的心跳信 息的內容判斷該服務器是否為主用服務器,如果判斷結果為“是”,則進入下一步S204階 段;否則下一步進入S205階段;
[0027]步驟四,發(fā)送將該服務器設為主用服務器的命令的S204階段:狀態(tài)監(jiān)控終端C發(fā) 送初始設置命令,將該服務器設為主用服務器,然后下一步進入S206階段;
[0028]步驟五,發(fā)送將該服務器設為備用服務器的命令的S205階段:狀態(tài)監(jiān)控終端發(fā)送 初始設置命令,將該服務器設為備用服務器,然后下一步進入S206階段;
[0029]步驟六,判斷兩臺服務器全部完成初始設置的S206階段:狀態(tài)監(jiān)控終端判斷當前 兩臺服務器是否已全部完成初始設置,即兩臺服務器均完成主用服務器或備用服務器的設 置;如果判斷結果為“是”,則主備狀態(tài)初始設置流程至此結束;否則返回到S201階段的入 口處,下一步繼續(xù)執(zhí)行S201階段。
[0030]在所述的S3階段中,所述的服務器中空管應用程序運行狀態(tài)監(jiān)測方法包括按順 序執(zhí)行的下列步驟:
[0031]步驟一,接收心跳信息的S301階段:狀態(tài)監(jiān)控終端接收主/備用服務器定時發(fā)送 的心跳信息,并對心跳信息進行解析,獲取和記錄主用、備用服務器中空管應用程序的運行 狀態(tài)信息;
[0032]步驟二,記錄接收的心跳信息個數(shù)的S302階段:分別記錄主/備用服務器各自所 發(fā)送的心跳信息的個數(shù);
[0033]步驟三,提取心跳信息中的應用程序狀態(tài)信息的S303階段:提取該服務器中的空 管應用程序的運行狀態(tài)信息;
[0034]步驟四,判斷應用程序狀態(tài)是否正常的S304階段:狀態(tài)監(jiān)控終端通過該服務器心 跳信息中空管應用程序的運行狀態(tài)信息,判斷該服務器中的空管應用程序運行是否正常, 如果判斷結果為“是”,下一步進入S305階段;否則,認為該服務器的空管應用程序的運行 狀態(tài)有異常,則下一步進入S306階段;
[0035]步驟五,判斷前一時刻應用程序狀態(tài)是否正常的S305階段:狀態(tài)監(jiān)控終端通過查 看該服務器前一個時刻的工作狀態(tài)判斷在前一個時刻該服務器接收的心跳信息個數(shù)和空 管應用程序的運行狀態(tài)是否正常,如果判斷結果為“是”,退出本流程;否則,認為該服務器 的空管應用程序的運行狀態(tài)恢復正常,則下一步進入S307階段;
[0036]步驟六,發(fā)出異常告警信息并執(zhí)行異常處理流程的S306階段:狀態(tài)監(jiān)控終端C發(fā) 出服務器的空管應用程序異常告警信息,然后執(zhí)行異常處理流程;服務器中應用程序的工 作狀態(tài)判斷流程至此結束;
[0037]步驟七,發(fā)出異常恢復信息并執(zhí)行異?;謴吞幚砹鞒痰腟307階段:狀態(tài)監(jiān)控終端 C發(fā)出服務器的空管應用程序異?;謴托畔?,然后執(zhí)行異?;謴吞幚砹鞒?;服務器中應用 程序的工作狀態(tài)的判斷流程至此結束。
[0038]在所述的S3階段中,所述的服務器的工作狀態(tài)的監(jiān)測方法包括按順序執(zhí)行的下列步驟:
[0039]步驟一,定時查看接收的心跳信息的個數(shù)是否變化的S401階段:狀態(tài)監(jiān)控終端定 時查看主/備用服務器定時發(fā)送的心跳信息的個數(shù)是否在變化,如果判斷結果為“是”,下 一步進入S402階段;否則,認為該服務器的工作狀態(tài)異常,則下一步進入S403階段;
[0040]步驟二,判斷前一時刻服務器的工作狀態(tài)是否正常的S402階段:狀態(tài)監(jiān)控終端通 過查看該服務器前一個時刻的工作狀態(tài)判斷該服務器在前一個時刻的工作狀態(tài)是否正常, 如果判斷結果為“是”,退出本流程;否則,認為該服務器的工作狀態(tài)恢復正常,則下一步進 A S404階段;
[0041]步驟三,發(fā)出故障告警信息并執(zhí)行異常處理流程的S403階段:狀態(tài)監(jiān)控終端發(fā)出 該服務器的工作狀態(tài)異常的故障告警信息,然后執(zhí)行異常處理流程;服務器的工作狀態(tài)判 斷流程至此結束;
[0042]步驟四,發(fā)出故障恢復信息并執(zhí)行異?;謴吞幚砹鞒痰腟404階段:狀態(tài)監(jiān)控終端 發(fā)出該服務器的工作狀態(tài)恢復正常的故障恢復信息,然后執(zhí)行異?;謴吞幚砹鞒蹋环掌?的工作狀態(tài)判斷流程至此結束。
[0043]在所述的S3階段的S306階段或S403階段中,所述的異常處理流程的操作方法包 括按順序執(zhí)行的下列步驟:
[0044]步驟一,接收服務器異常信息的S501階段:狀態(tài)監(jiān)控終端讀取當前的服務器的異 常告警信息(服務器中空管應用程序的運行狀態(tài)異常告警信息或服務器的工作狀態(tài)異常告 警息);
[0045]步驟二,判斷是否為主用服務器的S502階段:狀態(tài)監(jiān)控終端判斷當前出現(xiàn)異常的 服務器是否為主用服務器,如果判斷結果為“是”,進入下一步S503階段,否則,不執(zhí)行任何 操作,退出本流程;
[0046]步驟三,發(fā)送主用/備用狀態(tài)切換命令的S503階段:狀態(tài)監(jiān)控終端C分別向兩個 服務器發(fā)送主備狀態(tài)切換命令;
[0047]步驟四,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用 服務器的S504階段:收到狀態(tài)監(jiān)控終端所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務器 將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后,主 /備狀態(tài)切換流程至此結束。
[0048]在S3階段的S307階段或S404階段中,所述的異?;謴吞幚砹鞒痰牟僮鞣椒ò?按順序執(zhí)行的下列步驟:
[0049]步驟一,收到服務器異?;謴托畔⒌腟601階段:狀態(tài)監(jiān)控終端C讀取當前的異常 恢復信息;
[0050]步驟二,判斷主備服務器是否都異常的S602階段:狀態(tài)監(jiān)控終端判斷主用和備用 服務器是否都出現(xiàn)異常,如果判斷結果為“是”,進入下一步S603階段,否則,不執(zhí)行任何操 作,退出本流程;
[0051]步驟三,判斷異?;謴偷姆掌魇欠駷閭溆梅掌鞯腟603階段:狀態(tài)監(jiān)控終端判 斷從異常中恢復的服務器是否為備用服務器,如果判斷結果為“是”,進入下一步S604階 段,否則,不執(zhí)行任何操作,退出本流程;
[0052]步驟四,發(fā)送主用/備用狀態(tài)切換命令的S604階段:狀態(tài)監(jiān)控終端C分別向兩個服務器發(fā)送主備狀態(tài)切換命令;
[0053]步驟五,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用 服務器的S605階段:收到狀態(tài)監(jiān)控終端所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務器 將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后,主 /備狀態(tài)切換流程至此結束。
[0054]與現(xiàn)有技術相比,本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)及控制方 法的優(yōu)點是:(a)本發(fā)明提供的方法不受操作系統(tǒng)的限制,可以在各種操作系統(tǒng)平臺上運 行;(b)本發(fā)明完全由軟件實現(xiàn),提供的方法不受服務器硬件的限制,任意兩類服務器都可 以組成雙機熱備系統(tǒng);(C)本發(fā)明不需要共享介質,節(jié)省空間,降低硬件成本;(d)本發(fā)明中 的兩臺服務器的主用、備用狀態(tài)的切換由獨立的服務器工作狀態(tài)監(jiān)控終端實現(xiàn),減輕了兩 服務器的負擔,提高了服務器運行的穩(wěn)定性;(e)本發(fā)明中管理員可以通過服務器工作狀 態(tài)監(jiān)控終端查詢每臺服務器及其應用程序的運行狀態(tài),對服務器進行維護,同時可以實現(xiàn) 兩臺服務器的主用、備用狀態(tài)切換;(f)兼容性好,已有的單機系統(tǒng)可以方便地升級為雙機 熱備系統(tǒng)。
【專利附圖】
【附圖說明】
[0055]圖1是本發(fā)明提供的空管自動化系統(tǒng)中雙服務器熱備系統(tǒng)組成示意圖;
[0056]圖2是本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)控制方法的主/備狀 態(tài)初始設置操作流程圖;
[0057]圖3是本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)服務器中空管應用 程序的運行狀態(tài)監(jiān)測方法流程圖;
[0058]圖4是本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)中服務器的工作狀 態(tài)監(jiān)測方法流程圖;
[0059]圖5是本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)中服務器的異常處 理操作流程圖;
[0060]圖6是本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)中服務器的異?;?復處理操作流程圖。
【具體實施方式】
[0061]下面結合附圖和具體實施例對本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備 系統(tǒng)及控制方法進行詳細說明。
[0062]如圖1所示,本發(fā)明提供的空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng)包括:第一服 務器A、第二服務器B和狀態(tài)監(jiān)控終端C,其中:第一服務器A和第二服務器B為兩臺完全相 同的用于運行空管自動化軟件的空管服務器,分別與專用空管網(wǎng)絡L相連接;狀態(tài)監(jiān)控終 端C為用于監(jiān)控第一服務器A和第二服務器B工作狀態(tài)的專用計算機,其與空管網(wǎng)絡L相 連接;同時,在空管網(wǎng)絡L上還連接有多個客戶端K。
[0063]所述的空管自動化系統(tǒng)中雙服務器熱備系統(tǒng)的控制方法將整個控制過程分為三 個階段,即:初始啟動的SI階段、啟動成功的S2階段和主備運行的S3階段;其中:所述的 SI階段為上電啟動和初始化階段,在此階段中,第一服務器A、第二服務器B和狀態(tài)監(jiān)控終端C均處在上電啟動狀態(tài),其各自進行自身的自檢和初始化等操作,均不對外發(fā)送信息,也 不接收外部的信息;啟動完成后進入S2階段;
[0064]所述的S2階段為啟動成功后完成主/備機初始設置階段,在此階段中:
[0065]I)兩個服務器,即:第一服務器A和第二服務器B分別加載自身的空管應用程序, 同時分別通過空管網(wǎng)絡L向狀態(tài)監(jiān)控終端C發(fā)送心跳信息,并接收狀態(tài)監(jiān)控終端C發(fā)出的 控制信息;
[0066]2)兩個服務器均不向客戶端K發(fā)送數(shù)據(jù),也不接收客戶端K發(fā)送的數(shù)據(jù);
[0067]3)狀態(tài)監(jiān)控終端C對兩個服務器實施主/備狀態(tài)初始設置,即通過空管網(wǎng)絡L捕 獲兩個服務器發(fā)出的心跳信息,并通過心跳信息獲得兩臺服務器的運行情況,并根據(jù)運行 情況,發(fā)出主/備設置指令,將兩臺服務器分別設置為主用狀態(tài)和備用狀態(tài);
[0068]4)兩個服務器在收到狀態(tài)監(jiān)控終端C的初始設置指令后,根據(jù)指令的內容,將自 身設置為主用狀態(tài)或備用狀態(tài);此后,進入S3階段;
[0069]所述的S3階段為主備運行階段,在此階段中:
[0070]I)兩臺服務器均通過空管網(wǎng)絡L定時向狀態(tài)監(jiān)控終端C發(fā)送心跳信息,并接收狀 態(tài)監(jiān)控終端C發(fā)出的控制信息;
[0071]2)兩臺服務器均運行空管應用程序,并同時接收客戶端K發(fā)送的數(shù)據(jù),實現(xiàn)兩臺 服務器的數(shù)據(jù)同步;
[0072]3)工作于主用狀態(tài)的主服務器通過空管網(wǎng)絡L向客戶端K發(fā)送實時數(shù)據(jù);而工作 于備用狀態(tài)的備用服務器并不向客戶端K發(fā)送數(shù)據(jù);
[0073]4)狀態(tài)監(jiān)控終端C接收主用服務器和備用服務器發(fā)出的心跳信息,通過心跳信息 實時監(jiān)測主用服務器、備用服務器的工作狀態(tài)和空管應用程序的運行狀態(tài),如果監(jiān)測到服 務器的工作狀態(tài)異?;蚍掌鞯目展軕贸绦虻倪\行狀態(tài)異常時,狀態(tài)監(jiān)控終端C將發(fā)出 異常告警信息,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服務器的主用、備用狀態(tài)的切 換;如果監(jiān)測到服務器的工作狀態(tài)恢復正?;蚍掌鞯目展軕贸绦虻倪\行狀態(tài)恢復正常 時,狀態(tài)監(jiān)控終端C將發(fā)出異?;謴托畔?,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服 務器的主用、備用狀態(tài)的切換。
[0074]在S2階段和S3階段中,兩臺服務器啟動后,定時向服務器工作狀態(tài)監(jiān)控終端發(fā)送 心跳信息;所述的心跳信息包含服務器的機器標識、服務器當前的工作狀態(tài)、服務器中要監(jiān) 測的空管應用程序的運行狀態(tài)等信息。
[0075]在S2階段中,所述的主/備狀態(tài)初始設置操作方法為:狀態(tài)監(jiān)控終端C通過接收 的心跳信息判斷該服務器中受監(jiān)控的應用程序是否全部啟動成功,如果服務器的應用程序 全部啟動成功,且系統(tǒng)中還沒有主用服務器,狀態(tài)監(jiān)控終端C將發(fā)送設置主機指令,將該服 務器置為主用服務器;如果系統(tǒng)中已經(jīng)有主用服務器,則發(fā)送設置備機指令,將該服務器置 為備用服務器。
[0076]在S2階段中,狀態(tài)監(jiān)控終端C將實時記錄心跳信息中每臺服務器的工作狀態(tài)以及 服務器中受監(jiān)控的應用程序的運行狀態(tài)。
[0077]如圖2所示,在S2階段中,所述的主/備狀態(tài)初始設置操作方法包括按順序執(zhí)行 的下列步驟:
[0078]步驟一,接收心跳信息并提取應用程序狀態(tài)信息的S201階段:狀態(tài)監(jiān)控終端C通過空管網(wǎng)絡L接收某臺服務器發(fā)送的心跳信息,提取并保存該服務器當前的狀態(tài)信息;
[0079]步驟二,判斷應用程序是否啟動成功的S202階段:從收到的心跳信息中判斷相應 的服務器中的空管應用程序是否全部啟動成功,如果判斷結果為“是”,則進入下一步S203 階段;否則返回到S201階段的入口處,繼續(xù)接收心跳信息;
[0080]步驟三,判斷是否有主用服務器的S203階段:狀態(tài)監(jiān)控終端C通過收到的心跳信 息的內容判斷該服務器是否為主用服務器,如果判斷結果為“是”,則進入下一步S204階 段;否則下一步進入S205階段;
[0081]步驟四,發(fā)送將該服務器設為主用服務器的命令的S204階段:狀態(tài)監(jiān)控終端C發(fā) 送初始設置命令,將該服務器設為主用服務器,然后下一步進入S206階段;
[0082]步驟五,發(fā)送將該服務器設為備用服務器的命令的S205階段:狀態(tài)監(jiān)控終端C發(fā) 送初始設置命令,將該服務器設為備用服務器,然后下一步進入S206階段;
[0083]步驟六,判斷兩臺服務器全部完成初始設置的S206階段:狀態(tài)監(jiān)控終端C判斷當 前兩臺服務器是否已全部完成初始設置,即兩臺服務器均完成主用服務器或備用服務器的 設置;如果判斷結果為“是”,則主備狀態(tài)初始設置流程至此結束;否則返回到S201階段的 入口處,下一步繼續(xù)執(zhí)行S201階段。
[0084]如圖3所示,在S3階段中,所述的服務器中空管應用程序的運行狀態(tài)的監(jiān)測方法 包括按順序執(zhí)行的下列步驟:
[0085]步驟一,接收心跳信息的S301階段:狀態(tài)監(jiān)控終端C接收主/備用服務器定時發(fā) 送的心跳信息,并對心跳信息進行解析,獲取和記錄主用、備用服務器中空管應用程序的運 行狀態(tài)信息;
[0086]步驟二,記錄接收的心跳信息個數(shù)的S302階段:分別記錄主/備用服務器各自所 發(fā)送的心跳信息的個數(shù);
[0087]步驟三,提取心跳信息中的應用程序狀態(tài)信息的S303階段:提取該服務器中的空 管應用程序的運行狀態(tài)信息;
[0088]步驟四,判斷應用程序狀態(tài)是否正常的S304階段:狀態(tài)監(jiān)控終端C通過該服務 器心跳信息中空管應用程序的運行狀態(tài)信息,判斷該服務器中的空管應用程序運行是否正 常,如果判斷結果為“是”,下一步進入S305階段;否則,認為該服務器的空管應用程序運行 狀態(tài)有異常,則下一步進入S306階段;
[0089]步驟五,判斷前一時刻應用程序狀態(tài)是否正常的S305階段:狀態(tài)監(jiān)控終端C通過 查看該服務器前一個時刻的工作狀態(tài)判斷在前一個時刻該服務器接收的心跳信息個數(shù)和 空管應用程序的運行狀態(tài)是否正常,如果判斷結果為“是”,退出本流程;否則,認為該服務 器的空管應用程序的運行狀態(tài)恢復正常,則下一步進入S307階段;
[0090]步驟六,發(fā)出異常告警信息并執(zhí)行異常處理流程的S306階段:狀態(tài)監(jiān)控終端C發(fā) 出服務器的空管應用程序異常告警信息,然后執(zhí)行異常處理流程;服務器中應用程序的工 作狀態(tài)判斷流程至此結束;
[0091]步驟七,發(fā)出異?;謴托畔⒉?zhí)行異?;謴吞幚砹鞒痰腟307階段:狀態(tài)監(jiān)控終端 C發(fā)出服務器的空管應用程序異?;謴托畔ⅲ缓髨?zhí)行異?;謴吞幚砹鞒?;服務器中應用 程序的工作狀態(tài)判斷流程至此結束。
[0092]如圖4所示,在S3階段中,所述的服務器的工作狀態(tài)監(jiān)測方法包括按順序執(zhí)行的下列步驟:
[0093]步驟一,定時查看接收的心跳信息的個數(shù)是否變化的S401階段:狀態(tài)監(jiān)控終端C 定時查看主/備用服務器定時發(fā)送的心跳信息的個數(shù)是否在變化,如果判斷結果為“是”, 下一步進入S402階段;否則,認為該服務器的工作狀態(tài)異常,則下一步進入S403階段;
[0094]步驟二,判斷前一時刻服務器的工作狀態(tài)是否正常的S402階段:狀態(tài)監(jiān)控終端C 通過查看該服務器前一個時刻的工作狀態(tài)判斷該服務器在前一個時刻的工作狀態(tài)是否正 常,如果判斷結果為“是”,退出本流程;否則,認為該服務器的工作狀態(tài)恢復正常,則下一步 進入S404階段;
[0095]步驟三,發(fā)出故障告警信息并執(zhí)行異常處理流程的S403階段:狀態(tài)監(jiān)控終端C發(fā) 出該服務器的工作狀態(tài)異常的故障告警信息,然后執(zhí)行異常處理流程;服務器的工作狀態(tài) 的判斷流程至此結束;
[0096]步驟四,發(fā)出故障恢復信息并執(zhí)行異常恢復處理流程的S404階段:狀態(tài)監(jiān)控終端 C發(fā)出該服務器的工作狀態(tài)恢復正常的故障恢復信息,然后執(zhí)行異?;謴吞幚砹鞒?;服務 器的工作狀態(tài)的判斷流程至此結束。
[0097]如圖5所示,在S3階段的S306階段和S403階段中,所述的異常處理流程的操作 方法包括按順序執(zhí)行的下列步驟:
[0098]步驟一,接收服務器異常信息的S501階段:狀態(tài)監(jiān)控終端C讀取當前的服務器的 異常告警信息(服務器中空管應用程序的運行狀態(tài)異常告警信息或服務器的工作狀態(tài)異常 告警信息);
[0099]步驟二,判斷是否為主用服務器的S502階段:狀態(tài)監(jiān)控終端C判斷當前出現(xiàn)異常 的服務器是否為主用服務器,如果判斷結果為“是”,進入下一步S503階段,否則,不執(zhí)行任 何操作,退出本流程;
[0100]步驟三,發(fā)送主用/備用狀態(tài)切換命令的S503階段:狀態(tài)監(jiān)控終端C分別向兩個 服務器發(fā)送主備狀態(tài)切換命令;
[0101]步驟四,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用 服務器的S504階段:收到狀態(tài)監(jiān)控終端C所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務 器將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后, 主/備狀態(tài)切換流程至此結束。
[0102]如圖6所示,在S3階段的S307階段和S404階段中,所述的異常恢復處理流程的 操作方法包括按順序執(zhí)行的下列步驟:
[0103]步驟一,收到服務器異?;謴托畔⒌腟601階段:狀態(tài)監(jiān)控終端C讀取當前的異常 恢復信息(服務器中空管應用程序的運行狀態(tài)的異?;謴托畔⒒蚍掌鞯墓ぷ鳡顟B(tài)的異常 恢復信息);
[0104]步驟二,判斷主備服務器是否都異常的S602階段:狀態(tài)監(jiān)控終端C判斷主用和備 用服務器是否都出現(xiàn)異常(服務器中空管應用程序的運行狀態(tài)異?;蚍掌鞯墓ぷ鳡顟B(tài)異 常),如果判斷結果為“是”,進入下一步S603階段,否則,不執(zhí)行任何操作,退出本流程;
[0105]步驟三,判斷異?;謴偷姆掌魇欠駷閭溆梅掌鞯腟603階段:狀態(tài)監(jiān)控終端C 判斷從異常中恢復的服務器是否為備用服務器,如果判斷結果為“是”,進入下一步S604階 段,否則,不執(zhí)行任何操作,退出本流程;[0106]步驟四,發(fā)送主用/備用狀態(tài)切換命令的S604階段:狀態(tài)監(jiān)控終端C分別向兩個 服務器發(fā)送主備狀態(tài)切換命令;
[0107]步驟五,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用 服務器的S605階段:收到狀態(tài)監(jiān)控終端C所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務 器將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后, 主/備狀態(tài)切換流程至此結束。
[0108]所述的狀態(tài)監(jiān)控終端C接收每臺服務器發(fā)送的心跳信息,判斷并記錄每臺服務器 的工作狀態(tài)和每臺服務器中的空管應用程序的運行狀態(tài);這樣管理人員可以通過狀態(tài)監(jiān)控 終端C查詢每臺服務器及其空管應用程序的工作狀態(tài),對服務器進行維護;同時管理人員 也可以通過狀態(tài)監(jiān)控終端C對主/備服務器進行切換。
【權利要求】
1.一種空管自動化系統(tǒng)中的雙服務器熱備系統(tǒng),其特征在于:所述的系統(tǒng)包括:第一服務器A、第二服務器B和狀態(tài)監(jiān)控終端C,其中:第一服務器A和第二服務器B為兩臺完全相同的用于運行空管自動化軟件的空管服務器,分別與專用空管網(wǎng)絡L相連接;狀態(tài)監(jiān)控終端C為用于監(jiān)控第一服務器A和第二服務器B工作狀態(tài)的專用計算機,其與空管網(wǎng)絡L相連接;同時,在空管網(wǎng)絡L上還連接有多個客戶端K。
2.一種如權利要求1所述的雙服務器熱備系統(tǒng)的控制方法,其特征在于:所述的控制方法分為初始啟動的SI階段、啟動成功的S2階段和主備運行的S3階段;其中:S1階段為上電啟動和初始化階段,在此階段中,第一服務器A、第二服務器B和狀態(tài)監(jiān)控終端C均處在上電啟動狀態(tài),其各自進行自身的自檢和初始化操作,均不對外發(fā)送信息,也不接收外部的信息;啟動完成后進入S2階段; 所述的S2階段為啟動成功后完成主/備機初始設置階段,在此階段中: 1)兩個服務器,即:第一服務器A和第二服務器B分別加載自身的空管應用程序,同時分別通過空管網(wǎng)絡L向狀態(tài)監(jiān)控終端C發(fā)送心跳信息,并接收狀態(tài)監(jiān)控終端C發(fā)出的控制信息; 2)兩個服務器均不向客戶端K發(fā)送數(shù)據(jù),也不接收客戶端K發(fā)送的數(shù)據(jù); 3)狀態(tài)監(jiān)控終端C對兩個服務器實施主/備狀態(tài)初始設置,即通過空管網(wǎng)絡L捕獲兩個服務器發(fā)出的心跳信息,并通過心跳信息獲得兩臺服務器的運行情況,并根據(jù)運行情況,發(fā)出主/備設置指令,將兩臺服務器分別設置為主用狀態(tài)和備用狀態(tài); 4)兩個服務器在收到狀態(tài)監(jiān)控終端C的初始設置指令后,根據(jù)指令的內容,將自身設置為主用狀態(tài)或備用狀態(tài);此后,進入S3階段; 所述的S3階段為主備運行階段,在此階段中: 1)兩臺服務器均通過空管網(wǎng)絡L定時向狀態(tài)監(jiān)控終端C發(fā)送心跳信息,并接收狀態(tài)監(jiān)控終端C發(fā)出的控制信息; 2)兩臺服務器均運行空管應用程序,并同時接收客戶端K發(fā)送的數(shù)據(jù),實現(xiàn)兩臺服務器的數(shù)據(jù)同步; 3)工作于主用狀態(tài)的主服務器通過空管網(wǎng)絡L向客戶端K發(fā)送實時數(shù)據(jù);而工作于備用狀態(tài)的備用服務器并不向客戶端K發(fā)送數(shù)據(jù); 4)狀態(tài)監(jiān)控終端C接收主用服務器和備用服務器發(fā)出的心跳信息,通過心跳信息實時監(jiān)測主用服務器、備用服務器的工作狀態(tài)和空管應用程序的運行狀態(tài),如果監(jiān)測到服務器的工作狀態(tài)異常或服務器的空管應用程序的運行狀態(tài)異常時,狀態(tài)監(jiān)控終端C將發(fā)出異常告警信息,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服務器的主用、備用狀態(tài)的切換;如果監(jiān)測到服務器的工作狀態(tài)恢復正?;蚍掌鞯目展軕贸绦虻倪\行狀態(tài)恢復正常時,狀態(tài)監(jiān)控終端C將發(fā)出異?;謴托畔?,并根據(jù)具體情況發(fā)出主備切換指令,實施兩臺服務器的主用、備用狀態(tài)的切換。
3.根據(jù)權利要求2所述的控制方法,其特征在于:在所述的S2階段和S3階段中,所述的心跳信息包含服務器的機器標識、服務器當前的工作狀態(tài)、服務器中要監(jiān)測的空管應用程序的運行狀態(tài)信息。
4.根據(jù)權利要求2所述的控制方法,其特征在于:在S2階段中,所述的主/備狀態(tài)初始設置方法包括按順序執(zhí)行的下列步驟:步驟一,接收心跳信息并提取應用程序狀態(tài)信息的S201階段:狀態(tài)監(jiān)控終端C通過空管網(wǎng)絡L接收某臺服務器發(fā)送的心跳信息,提取并保存該服務器當前的狀態(tài)信息; 步驟二,判斷應用程序是否啟動成功的S202階段:從收到的心跳信息中判斷相應的服務器中的空管應用程序是否全部啟動成功,如果判斷結果為“是”,則進入下一步S203階段;否則返回到S201階段的入口處,繼續(xù)接收心跳信息; 步驟三,判斷是否有主用服務器的S203階段:狀態(tài)監(jiān)控終端C通過收到的心跳信息的內容判斷該服務器是否為主用服務器,如果判斷結果為“是”,則進入下一步S204階段;否則下一步進入S205階段; 步驟四,發(fā)送將該服務器設為主用服務器的命令的S204階段:狀態(tài)監(jiān)控終端C發(fā)送初始設置命令,將該服務器設為主用服務器,然后下一步進入S206階段; 步驟五,發(fā)送將該服務器設為備用服務器的命令的S205階段:狀態(tài)監(jiān)控終端C發(fā)送初始設置命令,將該服務器設為備用服務器,然后下一步進入S206階段; 步驟六,判斷兩臺服務器全部完成初始設置的S206階段:狀態(tài)監(jiān)控終端C判斷當前兩臺服務器是否已全部完成初始設置,即兩臺服務器均完成主用服務器或備用服務器的設置;如果判斷結果為“是”,則主備狀態(tài)初始設置流程至此結束;否則返回到S201階段的入口處,下一步繼續(xù)執(zhí)行S201階段。
5.根據(jù)權利要求2所述的控制方法,其特征在于:在所述的S3階段中,所述的服務器中空管應用程序運行狀態(tài)監(jiān)測方法·包括按順序執(zhí)行的下列步驟: 步驟一,接收心跳信息的S301階段:狀態(tài)監(jiān)控終端C接收主/備用服務器定時發(fā)送的心跳信息,并對心跳信息進行解析,獲取和記錄主用、備用服務器中空管應用程序的運行狀態(tài)息; 步驟二,記錄接收的心跳信息個數(shù)的S302階段:分別記錄主/備用服務器各自所發(fā)送的心跳信息的個數(shù); 步驟三,提取心跳信息中的應用程序狀態(tài)信息的S303階段:提取該服務器中的空管應用程序的運行狀態(tài)信息; 步驟四,判斷應用程序狀態(tài)是否正常的S304階段:狀態(tài)監(jiān)控終端C通過該服務器心跳信息中空管應用程序的運行狀態(tài)信息,判斷該服務器中的空管應用程序運行是否正常,如果判斷結果為“是”,下一步進入S305階段;否則,認為該服務器的空管應用程序的運行狀態(tài)有異常,則下一步進入S306階段; 步驟五,判斷前一時刻應用程序狀態(tài)是否正常的S305階段:狀態(tài)監(jiān)控終端C通過查看該服務器前一個時刻的工作狀態(tài)判斷在前一個時刻該服務器接收的心跳信息個數(shù)和空管應用程序的運行狀態(tài)是否正常,如果判斷結果為“是”,退出本流程;否則,認為該服務器的空管應用程序的運行狀態(tài)恢復正常,則下一步進入S307階段; 步驟六,發(fā)出異常告警信息并執(zhí)行異常處理流程的S306階段:狀態(tài)監(jiān)控終端C發(fā)出服務器的空管應用程序異常告警信息,然后執(zhí)行異常處理流程;服務器中應用程序的工作狀態(tài)判斷流程至此結束; 步驟七,發(fā)出異常恢復信息并執(zhí)行異?;謴吞幚砹鞒痰腟307階段:狀態(tài)監(jiān)控終端C發(fā)出服務器的空管應用程序異常恢復信息,然后執(zhí)行異?;謴吞幚砹鞒?;服務器中應用程序的工作狀態(tài)的判斷流程至此結束。
6.根據(jù)權利要求2所述的控制方法,其特征在于:在所述的S3階段中,所述的服務器的工作狀態(tài)的監(jiān)測方法包括按順序執(zhí)行的下列步驟: 步驟一,定時查看接收的心跳信息的個數(shù)是否變化的S401階段:狀態(tài)監(jiān)控終端C定時查看主/備用服務器定時發(fā)送的心跳信息的個數(shù)是否在變化,如果判斷結果為“是”,下一步進入S402階段;否則,認為該服務器的工作狀態(tài)異常,則下一步進入S403階段; 步驟二,判斷前一時刻服務器的工作狀態(tài)是否正常的S402階段:狀態(tài)監(jiān)控終端C通過查看該服務器前一個時刻的工作狀態(tài)判斷該服務器在前一個時刻的工作狀態(tài)是否正常,如果判斷結果為“是”,退出本流程;否則,認為該服務器的工作狀態(tài)恢復正常,則下一步進入S404階段; 步驟三,發(fā)出故障告警信息并執(zhí)行異常處理流程的S403階段:狀態(tài)監(jiān)控終端C發(fā)出該服務器的工作狀態(tài)異常的故障告警信息,然后執(zhí)行異常處理流程;服務器的工作狀態(tài)判斷流程至此結束; 步驟四,發(fā)出故障恢復信息并執(zhí)行異常恢復處理流程的S404階段:狀態(tài)監(jiān)控終端C發(fā)出該服務器的工作狀態(tài)恢復正常的故障恢復信息,然后執(zhí)行異常恢復處理流程;服務器的工作狀態(tài)判斷流程至此結束。
7.根據(jù)權利要求4或5所述的控制方法,其特征在于:在所述的S3階段的S306階段或S403階段中,所述的異常處理流程的操作方法包括按順序執(zhí)行的下列步驟: 步驟一,接收服務器異常信息的S501階段:狀態(tài)監(jiān)控終端C讀取當前的服務器的異常告警信息(服務器中空管應用程序的運行狀態(tài)異常告警信息或服務器的工作狀態(tài)異常告警信息); 步驟二,判斷是否為主用服務器的S502階段:狀態(tài)監(jiān)控終端C判斷當前出現(xiàn)異常的服務器是否為主用服務器,如果判斷結果為“是”,進入下一步S503階段,否則,不執(zhí)行任何操作,退出本流程; 步驟三,發(fā)送主用/備用狀態(tài)切換命令的S503階段:狀態(tài)監(jiān)控終端C分別向兩個服務器發(fā)送主備狀態(tài)切換命令; 步驟四,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用服務器的S504階段:收到狀態(tài)監(jiān)控終端C所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務器將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后,主/備狀態(tài)切換流程至此結束。
8.根據(jù)權利要求4或5所述的控制方法,其特征在于:在S3階段的S307階段或S404階段中,所述的異?;謴吞幚砹鞒痰牟僮鞣椒òò错樞驁?zhí)行的下列步驟: 步驟一,收到服務器異?;謴托畔⒌腟601階段:狀態(tài)監(jiān)控終端C讀取當前的異?;謴托畔ⅲ? 步驟二,判斷主備服務器是否都異常的S602階段:狀態(tài)監(jiān)控終端C判斷主用和備用服務器是否都出現(xiàn)異常,如果判斷結果為“是”,進入下一步S603階段,否則,不執(zhí)行任何操作,退出本流程; 步驟三,判斷異?;謴偷姆掌魇欠駷閭溆梅掌鞯腟603階段:狀態(tài)監(jiān)控終端C判斷從異常中恢復的服務器是否為備用服務器,如果判斷結果為“是”,進入下一步S604階段,否則,不執(zhí)行任何操作,退出本流程;步驟四,發(fā)送主用/備用狀態(tài)切換命令的S604階段:狀態(tài)監(jiān)控終端C分別向兩個服務器發(fā)送主備狀態(tài)切換命令; 步驟五,主用服務器收到命令降為備用服務器,備用服務器收到命令后升為主用服務器的S605階段:收到狀態(tài)監(jiān)控終端C所發(fā)送的主備狀態(tài)切換命令后,當前的主用服務器將轉換成為備用服務器,同時,當前的備用服務器將轉換成為主用服務器;轉換完成后,主/備狀態(tài)切換流程至此結束。.
【文檔編號】H04L12/24GK103441863SQ201310343825
【公開日】2013年12月11日 申請日期:2013年8月8日 優(yōu)先權日:2013年8月8日
【發(fā)明者】屈景怡, 楊俊 , 吳仁彪, 高澤英, 劉海濤 申請人:中國民航大學