(廣西廣播電視無線傳播樞紐臺)
廣西區(qū)無線發(fā)射機(jī)臺站數(shù)據(jù)庫的安全性、完整性是保證遠(yuǎn)程監(jiān)控平臺和臺站計算機(jī)應(yīng)用控制程序正常運(yùn)行的前提與基礎(chǔ),假設(shè)沒有了數(shù)據(jù)庫的支撐,遠(yuǎn)程監(jiān)控平臺的作用將歸結(jié)于零。然而我們總結(jié)發(fā)現(xiàn),在使用數(shù)據(jù)庫過程中會遇到不少的問題,如軟件沖突,系統(tǒng)故障,硬件故障、未知錯誤等導(dǎo)致SQL應(yīng)用程序無法啟動或者數(shù)據(jù)文件丟失。傳統(tǒng)的解決方案是人工找到原來的數(shù)據(jù)庫備份文件進(jìn)行附加解決,備份方式也是采用手動進(jìn)行,無法做自動聯(lián)機(jī)處理,解決不及時,總體效率低下,靈活性不高,操作過程量大且復(fù)雜,需要比較深奧的專業(yè)功底知識,一般人無法完成。針對這些問題提出更加高效,安全,靈活,便捷解決方案,這也是研發(fā)本系統(tǒng)的根本原因,系統(tǒng)投入使用后將為全區(qū)無線廣播電視的安全播出工作發(fā)揮著重要作用。
本系統(tǒng)可以取替?zhèn)鹘y(tǒng)手工操作,輕松實(shí)現(xiàn)自動備份、數(shù)據(jù)還原、聯(lián)機(jī)處理功能。系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)傳輸安全可靠,系統(tǒng)追求友好人機(jī)交互的同時還提供易維護(hù)、可擴(kuò)展等功能。
1.開發(fā)平臺:Microsoft Visual Studio 2010
2.數(shù)據(jù)庫:SQL Server
3.開發(fā)語言:C#
4.依賴框架:Microsoft .net framework 2.0
5.運(yùn) 行 平 臺:Windows2003、Windows XP、Windows7、Windows10
6.內(nèi)存:128MB以上
分中心的臺站計算機(jī)通過內(nèi)網(wǎng)主干網(wǎng)絡(luò)與中心服務(wù)器相連接,其臺站地點(diǎn)、接入計算機(jī)數(shù)量不受限制,網(wǎng)內(nèi)所有計算機(jī)構(gòu)成一張網(wǎng)絡(luò)拓?fù)鋱D。本系統(tǒng)可以架設(shè)在網(wǎng)內(nèi)的任意一臺計算機(jī)上,如中心服務(wù)器、臺站計算機(jī)、辦公室計算機(jī)等,具有不受地點(diǎn)限制的優(yōu)點(diǎn)。并且兼容原有網(wǎng)絡(luò)結(jié)構(gòu),不影響其他計算機(jī)應(yīng)用控制程序正常運(yùn)行。備份時,系統(tǒng)自動從臺站數(shù)據(jù)庫取出數(shù)據(jù),并自動備份到指定計算機(jī)的SQL數(shù)據(jù)庫中,還原則反之。整個操作過程簡單、靈活,數(shù)據(jù)交換安全、可靠,為今后較長時期內(nèi)臺站的無限擴(kuò)充提供了可能性,符合當(dāng)前實(shí)際工作的需要。
圖1 系統(tǒng)架構(gòu)
通常在軟件體系架構(gòu)設(shè)計中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu),本系統(tǒng)采用三層架構(gòu)設(shè)計,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層,如圖1所示。其目的是為了實(shí)現(xiàn)“高內(nèi)聚,低耦合”的設(shè)計思想。各層的作用如下:
1.表示層:位于最上層,主要是指與用戶交互的界面,其與臺站維護(hù)人員或者平臺值班員關(guān)系最為密切,專門用于接收輸入的數(shù)據(jù)和顯示處理后的結(jié)果,用戶需要備份或者還原數(shù)據(jù)時必須在本層點(diǎn)擊界面操作方可實(shí)現(xiàn)。
2.業(yè)務(wù)邏輯層:如同一座橋梁或者一名廚師,位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。其
主要實(shí)現(xiàn)業(yè)務(wù)邏輯,具體包含:驗(yàn)證、計算、業(yè)務(wù)規(guī)則等。
3.數(shù)據(jù)訪問層:其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問,可以訪問數(shù)據(jù)庫系統(tǒng)、二進(jìn)制文件、日志文檔或是XML等。另外,可實(shí)現(xiàn)對某個臺站數(shù)據(jù)的增加、刪除、修改、查詢。將存儲在數(shù)據(jù)庫中的臺站數(shù)據(jù)提交給業(yè)務(wù)邏輯層處理,同時將業(yè)務(wù)邏輯層處理的數(shù)據(jù)保存到數(shù)據(jù)庫。
1.層次分明,結(jié)構(gòu)清晰,有利于標(biāo)準(zhǔn)化設(shè)計。另外開發(fā)人員可以只關(guān)注系統(tǒng)結(jié)構(gòu)中的中某一層,研發(fā)不受城市地點(diǎn)限制,有助于團(tuán)隊快速開發(fā)。
2.可以降低層與層之間的依賴,使復(fù)雜變得更加簡單;
3.利于代碼精簡和各層接口邏輯的復(fù)用。
4.功能可擴(kuò)充,數(shù)據(jù)庫可轉(zhuǎn)移,且可接受MYSQL、ORACLE等類型數(shù)據(jù)庫和不同數(shù)據(jù)庫、不同版本之間的數(shù)據(jù)交換,實(shí)現(xiàn)輕操作,易維護(hù),極大地降低了維護(hù)成本,也為二次開發(fā)提供可行性。
圖2 功能流程圖
1.自動備份:首先,從所有列舉臺站中隨機(jī)選出一個或者多個臺站組成一個備份方案,并提供增加、刪除、修改、啟動、停止等功能;其次,系統(tǒng)運(yùn)行中自動判斷當(dāng)前時間節(jié)點(diǎn)與方案中預(yù)設(shè)的時間點(diǎn)相吻合,將自動備份數(shù)據(jù)到指定服務(wù)器上。若需要備份的臺站通信異常,則自動跳入下一個臺站進(jìn)行備份;最后,若整個備份過程中,進(jìn)行停止備份操作時,系統(tǒng)將失敗原因記錄到日志,并啟動回滾事務(wù)。
2.服務(wù)端恢復(fù):臺站將計算機(jī)接入主干內(nèi)網(wǎng),聯(lián)系管理員或者具有恢復(fù)權(quán)限的值班員進(jìn)行恢復(fù)操作,系統(tǒng)根據(jù)通信情況,自動判斷是否去服務(wù)器取出相應(yīng)臺站的數(shù)據(jù)并恢復(fù),恢復(fù)失敗則做回滾操作。其特點(diǎn)是服務(wù)端可以對單個或多個臺站進(jìn)行數(shù)據(jù)恢復(fù)。
3.客戶端恢復(fù):其與服務(wù)端恢復(fù)的原理及結(jié)果一樣,最終都能使得臺站數(shù)據(jù)恢復(fù)正常。其在恢復(fù)數(shù)據(jù)時,不需要聯(lián)系管理員或者平臺值班員,用戶隨時進(jìn)行恢復(fù),過程簡單,操作便捷。
通過反復(fù)操作,備份一個臺站數(shù)據(jù)只需兩個簡單步驟,一是建立備份方案,二是執(zhí)行方案,耗時較少,后臺備份一個普通臺站的數(shù)據(jù)僅需3~4秒。圖3數(shù)據(jù)顯示,本系統(tǒng)采用層次結(jié)構(gòu)的劃分之后代碼設(shè)計得相對精練,類與類之間的耦合度比較低,繼承深度僅為1度,整個系統(tǒng)的復(fù)雜度盡可能做到簡單化,且功能盡可能完善。另外我們從列表的可維護(hù)性能批標(biāo)中,各層次的得分比較高,總體達(dá)到了82%,大大提高了系統(tǒng)的維護(hù)性能,滿足今后因臺站發(fā)展,數(shù)據(jù)庫轉(zhuǎn)移,技術(shù)更新需要而實(shí)現(xiàn)的擴(kuò)展和升級做了充分的準(zhǔn)備。
圖3 性能參數(shù)
總之,本系統(tǒng)采用三層架構(gòu)設(shè)計,結(jié)構(gòu)清晰,層次分明,功能齊全,操作簡單實(shí)用,能夠?qū)崿F(xiàn)手動備份、自動備份、還原等功能。經(jīng)過測試,系統(tǒng)運(yùn)行穩(wěn)定、安全、可靠,正式應(yīng)用后將大大減輕全區(qū)臺站數(shù)據(jù)備份的繁雜工作,滿足如今遠(yuǎn)程監(jiān)控平臺維護(hù)的實(shí)際需求,對廣播電視的安全播出工作起到保障作用。另外,系統(tǒng)最大限度實(shí)現(xiàn)易維護(hù)、可擴(kuò)展,為今后功能的擴(kuò)充和二次開發(fā)提供有利條件。
[1][美]Christian Nagel.C#高級編程(第8版).清華大學(xué)出版社,2013.10
[2]軟件開發(fā)技術(shù)聯(lián)盟.C#開發(fā)實(shí)例大全(提高卷).清華大學(xué)出版社,2016.01
[3]閆書清.高性能SQL調(diào)優(yōu)精要與案例解析.電子工業(yè)出版,2017.08
[4]白文榮.軟件工程與設(shè)計模式.清華大學(xué)出版社,2017.01