李敏盛 蘇志偉 羅歡 李克文 黃慧
(廣西廣播電視無線傳播樞紐臺)
隨著業(yè)務(wù)的發(fā)展,廣西廣播電視各無線發(fā)射臺站舊有的主控程序需要添加或更改功能來滿足業(yè)務(wù)的需要,但是要同時更新升級100多個臺站的主控程序需要一個一個的進入臺站主控電腦中,進行更換舊有程序;各個臺站主控程序的設(shè)置項配置都是不一樣的,所以需要單獨每個臺站進行備份。以前做備份需要一個一個進入臺站通過復(fù)制、粘貼的笨辦法來備份主控程序,這種升級和備份方法非常不便,既浪費人力又浪費時間,為此我們設(shè)計和編寫了能實現(xiàn)在數(shù)據(jù)中心服務(wù)端一鍵升級臺站主控的程序,同時實現(xiàn)自動定時或手動備份功能。
本方案的設(shè)計思路是在數(shù)據(jù)中心的一臺服務(wù)器中部署遠程升級的服務(wù)端程序,在另外一臺服務(wù)器中部署FTP和WEB服務(wù),然后在臺站的主控電腦中部署遠程升級的客戶端程序。數(shù)據(jù)中心服務(wù)器使用windows server 2012系統(tǒng),遠程升級程序的服務(wù)端和客戶端都是使用.net framework框架,C#語言編寫的WinForm窗口程序。服務(wù)端和客戶端使用UDP協(xié)議進行通信。圖1為系統(tǒng)架構(gòu)圖。
圖1
遠程升級程序客戶端隨主控電腦系統(tǒng)啟動后,會立即自動連接服務(wù)端程序,如果連接不成功,會以10秒為周期再次連接,直到連接成功為止,服務(wù)端接收到客戶端的連接信息后,會以列表的形式保存各個客戶端的信息,包括臺站編號,Socket端口,上報時間等。為了確保雙方的通訊狀態(tài),客戶端每隔10秒會向服務(wù)端發(fā)送心跳包,服務(wù)端接收到心跳包后,會更新客戶端的Socket端口和上報時間,確保服務(wù)端下發(fā)指令時,客戶端能正常收到。圖2為客戶端與服務(wù)端的UDP通訊連接流程。
圖2
在服務(wù)端的窗口界面上選擇要更新的一個或多個程序,點擊上傳,服務(wù)端就會讀取文件,然后上傳至FTP服務(wù)器,上傳成功后,服務(wù)端記錄下上傳的路徑和文件名;然后選擇一個或多個臺站,點擊更新,服務(wù)端就會先判斷該臺站的遠程升級客戶端是否在線,如果不在線,退出升級流程,并在窗口中提示,如果在線,就會下發(fā)升級指令,內(nèi)容包括下發(fā)時間、要升級的主控程序列表以及該主控程序在FTP服務(wù)中的路徑和文件名等信息??蛻舳耸盏缴壷噶詈?,先判斷要升級的主控程序在該臺站中是否使用,如果沒有使用則返回信息給服務(wù)端,如果使用,則會連接FTP服務(wù)器下載所需要的文件,下載成功后,關(guān)閉當(dāng)前主控程序,然后覆蓋舊有程序,覆蓋成功后,返回更新成功信息給服務(wù)端。服務(wù)端收到返回信息,在窗口顯示升級結(jié)果。圖3服務(wù)端下發(fā)升級指令到客戶端的工作流程。
圖3
在服務(wù)端界面窗口上選擇要備份的一個或多個臺站,點擊備份按鈕,服務(wù)端會判斷選擇的臺站是否在線,如果不在線,退出工作流程,并在窗口提示臺站不在線,如果在線,則下發(fā)備份指令??蛻舳耸盏絺浞葜噶詈?,復(fù)制所有主控程序所在的目錄,并進行壓縮上傳至FTP服務(wù)器,最后將備份結(jié)果返回給客戶端,內(nèi)容包括備份成功與否、完成時間、備份文件在FTP服務(wù)器中的路徑和文件名等。服務(wù)端收到返回結(jié)果后,將備份信息存儲至數(shù)據(jù)庫中,并在窗口顯示備份成功與否。圖4為備份流程。
圖4
為了以后更好的拓展客戶端的功能,客戶端增加了自我升級的功能。當(dāng)編譯出新版本后,使用FTP客戶端軟件把新程序上傳至FTP服務(wù)器固定的目錄中,再將版本號更新在WEB服務(wù)器的一個頁面上??蛻舳嗣扛?0秒就會訪問該頁面,獲取最新版本號,當(dāng)發(fā)現(xiàn)新的版本號后,會下載FTP服務(wù)器中的文件,進行自我更新并再次啟動。圖5為自我升級流程。
圖5
目前更換臺站主控電腦時,還需手動從FTP服務(wù)器中下載最近的備份程序來還原主控程序,下一步將在遠程升級客戶端增加自動還原功能,當(dāng)程序啟動后,掃描該主控電腦指定目錄是否存在主控程序,如果不存在,則向服務(wù)端請求最新的備份路徑,然后從FTP服務(wù)器中下載,還原到指定的目錄下。
圖6 遠程升級程序客戶端
圖7 遠程升級程序服務(wù)端
本程序使用.net framework框架,C#語言編寫,其中使用了UDP傳輸協(xié)議進行服務(wù)端與客戶端的通訊,文件的上傳下載都是使用FTP服務(wù)器,目前該程序部署在全區(qū)三級以上臺站的主控電腦,已正常使用1年多,運行良好,為新遠程監(jiān)控系統(tǒng)的更新改造提供了很好的助力。