(廣西廣播電視無(wú)線傳播樞紐臺(tái))
廣西區(qū)無(wú)線發(fā)射機(jī)臺(tái)站數(shù)據(jù)庫(kù)的安全性、完整性是保證遠(yuǎn)程監(jiān)控平臺(tái)和臺(tái)站計(jì)算機(jī)應(yīng)用控制程序正常運(yùn)行的前提與基礎(chǔ),假設(shè)沒(méi)有了數(shù)據(jù)庫(kù)的支撐,遠(yuǎn)程監(jiān)控平臺(tái)的作用將歸結(jié)于零。然而我們總結(jié)發(fā)現(xiàn),在使用數(shù)據(jù)庫(kù)過(guò)程中會(huì)遇到不少的問(wèn)題,如軟件沖突,系統(tǒng)故障,硬件故障、未知錯(cuò)誤等導(dǎo)致SQL應(yīng)用程序無(wú)法啟動(dòng)或者數(shù)據(jù)文件丟失。傳統(tǒng)的解決方案是人工找到原來(lái)的數(shù)據(jù)庫(kù)備份文件進(jìn)行附加解決,備份方式也是采用手動(dòng)進(jìn)行,無(wú)法做自動(dòng)聯(lián)機(jī)處理,解決不及時(shí),總體效率低下,靈活性不高,操作過(guò)程量大且復(fù)雜,需要比較深?yuàn)W的專業(yè)功底知識(shí),一般人無(wú)法完成。針對(duì)這些問(wèn)題提出更加高效,安全,靈活,便捷解決方案,這也是研發(fā)本系統(tǒng)的根本原因,系統(tǒng)投入使用后將為全區(qū)無(wú)線廣播電視的安全播出工作發(fā)揮著重要作用。
本系統(tǒng)可以取替?zhèn)鹘y(tǒng)手工操作,輕松實(shí)現(xiàn)自動(dòng)備份、數(shù)據(jù)還原、聯(lián)機(jī)處理功能。系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)傳輸安全可靠,系統(tǒng)追求友好人機(jī)交互的同時(shí)還提供易維護(hù)、可擴(kuò)展等功能。
1.開(kāi)發(fā)平臺(tái):Microsoft Visual Studio 2010
2.數(shù)據(jù)庫(kù):SQL Server
3.開(kāi)發(fā)語(yǔ)言:C#
4.依賴框架:Microsoft .net framework 2.0
5.運(yùn) 行 平 臺(tái):Windows2003、Windows XP、Windows7、Windows10
6.內(nèi)存:128MB以上
分中心的臺(tái)站計(jì)算機(jī)通過(guò)內(nèi)網(wǎng)主干網(wǎng)絡(luò)與中心服務(wù)器相連接,其臺(tái)站地點(diǎn)、接入計(jì)算機(jī)數(shù)量不受限制,網(wǎng)內(nèi)所有計(jì)算機(jī)構(gòu)成一張網(wǎng)絡(luò)拓?fù)鋱D。本系統(tǒng)可以架設(shè)在網(wǎng)內(nèi)的任意一臺(tái)計(jì)算機(jī)上,如中心服務(wù)器、臺(tái)站計(jì)算機(jī)、辦公室計(jì)算機(jī)等,具有不受地點(diǎn)限制的優(yōu)點(diǎn)。并且兼容原有網(wǎng)絡(luò)結(jié)構(gòu),不影響其他計(jì)算機(jī)應(yīng)用控制程序正常運(yùn)行。備份時(shí),系統(tǒng)自動(dòng)從臺(tái)站數(shù)據(jù)庫(kù)取出數(shù)據(jù),并自動(dòng)備份到指定計(jì)算機(jī)的SQL數(shù)據(jù)庫(kù)中,還原則反之。整個(gè)操作過(guò)程簡(jiǎn)單、靈活,數(shù)據(jù)交換安全、可靠,為今后較長(zhǎng)時(shí)期內(nèi)臺(tái)站的無(wú)限擴(kuò)充提供了可能性,符合當(dāng)前實(shí)際工作的需要。

圖1 系統(tǒng)架構(gòu)
通常在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見(jiàn),也是最重要的一種結(jié)構(gòu),本系統(tǒng)采用三層架構(gòu)設(shè)計(jì),從下至上分別為:數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層、表示層,如圖1所示。其目的是為了實(shí)現(xiàn)“高內(nèi)聚,低耦合”的設(shè)計(jì)思想。各層的作用如下:
1.表示層:位于最上層,主要是指與用戶交互的界面,其與臺(tái)站維護(hù)人員或者平臺(tái)值班員關(guān)系最為密切,專門用于接收輸入的數(shù)據(jù)和顯示處理后的結(jié)果,用戶需要備份或者還原數(shù)據(jù)時(shí)必須在本層點(diǎn)擊界面操作方可實(shí)現(xiàn)。
2.業(yè)務(wù)邏輯層:如同一座橋梁或者一名廚師,位置很關(guān)鍵,它處于數(shù)據(jù)訪問(wèn)層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。其
主要實(shí)現(xiàn)業(yè)務(wù)邏輯,具體包含:驗(yàn)證、計(jì)算、業(yè)務(wù)規(guī)則等。
3.數(shù)據(jù)訪問(wèn)層:其功能主要是負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問(wèn),可以訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、日志文檔或是XML等。另外,可實(shí)現(xiàn)對(duì)某個(gè)臺(tái)站數(shù)據(jù)的增加、刪除、修改、查詢。將存儲(chǔ)在數(shù)據(jù)庫(kù)中的臺(tái)站數(shù)據(jù)提交給業(yè)務(wù)邏輯層處理,同時(shí)將業(yè)務(wù)邏輯層處理的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)。
1.層次分明,結(jié)構(gòu)清晰,有利于標(biāo)準(zhǔn)化設(shè)計(jì)。另外開(kāi)發(fā)人員可以只關(guān)注系統(tǒng)結(jié)構(gòu)中的中某一層,研發(fā)不受城市地點(diǎn)限制,有助于團(tuán)隊(duì)快速開(kāi)發(fā)。
2.可以降低層與層之間的依賴,使復(fù)雜變得更加簡(jiǎn)單;
3.利于代碼精簡(jiǎn)和各層接口邏輯的復(fù)用。
4.功能可擴(kuò)充,數(shù)據(jù)庫(kù)可轉(zhuǎn)移,且可接受MYSQL、ORACLE等類型數(shù)據(jù)庫(kù)和不同數(shù)據(jù)庫(kù)、不同版本之間的數(shù)據(jù)交換,實(shí)現(xiàn)輕操作,易維護(hù),極大地降低了維護(hù)成本,也為二次開(kāi)發(fā)提供可行性。

圖2 功能流程圖
1.自動(dòng)備份:首先,從所有列舉臺(tái)站中隨機(jī)選出一個(gè)或者多個(gè)臺(tái)站組成一個(gè)備份方案,并提供增加、刪除、修改、啟動(dòng)、停止等功能;其次,系統(tǒng)運(yùn)行中自動(dòng)判斷當(dāng)前時(shí)間節(jié)點(diǎn)與方案中預(yù)設(shè)的時(shí)間點(diǎn)相吻合,將自動(dòng)備份數(shù)據(jù)到指定服務(wù)器上。若需要備份的臺(tái)站通信異常,則自動(dòng)跳入下一個(gè)臺(tái)站進(jìn)行備份;最后,若整個(gè)備份過(guò)程中,進(jìn)行停止備份操作時(shí),系統(tǒng)將失敗原因記錄到日志,并啟動(dòng)回滾事務(wù)。
2.服務(wù)端恢復(fù):臺(tái)站將計(jì)算機(jī)接入主干內(nèi)網(wǎng),聯(lián)系管理員或者具有恢復(fù)權(quán)限的值班員進(jìn)行恢復(fù)操作,系統(tǒng)根據(jù)通信情況,自動(dòng)判斷是否去服務(wù)器取出相應(yīng)臺(tái)站的數(shù)據(jù)并恢復(fù),恢復(fù)失敗則做回滾操作。其特點(diǎn)是服務(wù)端可以對(duì)單個(gè)或多個(gè)臺(tái)站進(jìn)行數(shù)據(jù)恢復(fù)。
3.客戶端恢復(fù):其與服務(wù)端恢復(fù)的原理及結(jié)果一樣,最終都能使得臺(tái)站數(shù)據(jù)恢復(fù)正常。其在恢復(fù)數(shù)據(jù)時(shí),不需要聯(lián)系管理員或者平臺(tái)值班員,用戶隨時(shí)進(jìn)行恢復(fù),過(guò)程簡(jiǎn)單,操作便捷。
通過(guò)反復(fù)操作,備份一個(gè)臺(tái)站數(shù)據(jù)只需兩個(gè)簡(jiǎn)單步驟,一是建立備份方案,二是執(zhí)行方案,耗時(shí)較少,后臺(tái)備份一個(gè)普通臺(tái)站的數(shù)據(jù)僅需3~4秒。圖3數(shù)據(jù)顯示,本系統(tǒng)采用層次結(jié)構(gòu)的劃分之后代碼設(shè)計(jì)得相對(duì)精練,類與類之間的耦合度比較低,繼承深度僅為1度,整個(gè)系統(tǒng)的復(fù)雜度盡可能做到簡(jiǎn)單化,且功能盡可能完善。另外我們從列表的可維護(hù)性能批標(biāo)中,各層次的得分比較高,總體達(dá)到了82%,大大提高了系統(tǒng)的維護(hù)性能,滿足今后因臺(tái)站發(fā)展,數(shù)據(jù)庫(kù)轉(zhuǎn)移,技術(shù)更新需要而實(shí)現(xiàn)的擴(kuò)展和升級(jí)做了充分的準(zhǔn)備。

圖3 性能參數(shù)
總之,本系統(tǒng)采用三層架構(gòu)設(shè)計(jì),結(jié)構(gòu)清晰,層次分明,功能齊全,操作簡(jiǎn)單實(shí)用,能夠?qū)崿F(xiàn)手動(dòng)備份、自動(dòng)備份、還原等功能。經(jīng)過(guò)測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定、安全、可靠,正式應(yīng)用后將大大減輕全區(qū)臺(tái)站數(shù)據(jù)備份的繁雜工作,滿足如今遠(yuǎn)程監(jiān)控平臺(tái)維護(hù)的實(shí)際需求,對(duì)廣播電視的安全播出工作起到保障作用。另外,系統(tǒng)最大限度實(shí)現(xiàn)易維護(hù)、可擴(kuò)展,為今后功能的擴(kuò)充和二次開(kāi)發(fā)提供有利條件。
[1][美]Christian Nagel.C#高級(jí)編程(第8版).清華大學(xué)出版社,2013.10
[2]軟件開(kāi)發(fā)技術(shù)聯(lián)盟.C#開(kāi)發(fā)實(shí)例大全(提高卷).清華大學(xué)出版社,2016.01
[3]閆書(shū)清.高性能SQL調(diào)優(yōu)精要與案例解析.電子工業(yè)出版,2017.08
[4]白文榮.軟件工程與設(shè)計(jì)模式.清華大學(xué)出版社,2017.01