(1.四川大學(xué) 計(jì)算機(jī)學(xué)院, 成都 610065; 2.西安通信學(xué)院, 西安 710106)
摘 要:
介紹了一種基于B/S模式的異地容災(zāi)系統(tǒng),并結(jié)合系統(tǒng)的通信需求,設(shè)計(jì)了一種安全有效的通信協(xié)議來(lái)滿足系統(tǒng)要求,給出了協(xié)議的具體制定和最終實(shí)現(xiàn)。該系統(tǒng)采用Web方式進(jìn)行遠(yuǎn)程管理,結(jié)構(gòu)合理、操作便捷。測(cè)試實(shí)驗(yàn)表明系統(tǒng)運(yùn)行穩(wěn)定、性能優(yōu)越,具有較高的應(yīng)用和推廣價(jià)值。
關(guān)鍵詞:容災(zāi)系統(tǒng);瀏覽器/服務(wù)器;通信協(xié)議;控件
中圖分類號(hào):TP309.3文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2009)04-1389-02
Web-based remote disaster tolerant system
JIA Zhao1,2, ZHAO Kui1, LU Zheng-tian1, LI Guo-feng1, LI Yuan-bin1
( 1.School of Computer, Sichuan University, Chengdu 610065, China; 2. Xi’an Communication Institute, Xi’an 710106, China)
Abstract:The paper introduced a disaster tolerant system based on B/S mode and proposed a safe and effective communication protocol that combined with communicational needs. This system had adopted remote management based on Webso that its construction was reasonable and operation was convenient. Through test, the system is excellent in performance and stable in working, and is valuable for application and promotion.
Key words:disaster tolerant system; B/S; communication protocol; ActiveX
隨著信息技術(shù)在各個(gè)領(lǐng)域的廣泛應(yīng)用,計(jì)算機(jī)數(shù)據(jù)的完整性和安全性變得日趨重要,數(shù)據(jù)的丟失或損壞帶來(lái)的損失難以估量[1]。這就要求企業(yè)采取完備有效的容災(zāi)方案和災(zāi)難恢復(fù)策略來(lái)應(yīng)對(duì)突發(fā)的數(shù)據(jù)災(zāi)難事件。傳統(tǒng)的容災(zāi)方法存在著架構(gòu)單一[2]、只有數(shù)據(jù)庫(kù)實(shí)時(shí)備份而沒(méi)有提供數(shù)據(jù)庫(kù)的全面?zhèn)浞輀3]等缺點(diǎn),無(wú)法很好地滿足企業(yè)的需求。相比而言,一種基于Internet的異地容災(zāi)系統(tǒng)[4,5]則考慮得較為完善,它是一個(gè)構(gòu)建在Internet之上的大容量數(shù)據(jù)備份中心,主要用于存儲(chǔ)客戶服務(wù)器上的有用數(shù)據(jù)以及為客戶提供數(shù)據(jù)備份和實(shí)時(shí)鏡像服務(wù)。當(dāng)本地發(fā)生災(zāi)難后,存儲(chǔ)在遠(yuǎn)程災(zāi)備中心的數(shù)據(jù)可以恢復(fù)到用戶的客戶服務(wù)器,將用戶的數(shù)據(jù)損失降到最小,對(duì)企業(yè)而言是一種更為全面的解決方案。
本文結(jié)合該異地容災(zāi)系統(tǒng)中客戶與災(zāi)備中心之間的通信需求,提出了一種自定義通信協(xié)議,并用控件技術(shù)給予實(shí)現(xiàn)。管理員可以通過(guò)Web瀏覽器,使用SSL連接登錄管理平臺(tái),在ActiveX控件的協(xié)助下完成服務(wù)器間消息的收發(fā)和解析。通過(guò)Web頁(yè)面,操作人員就可以方便地根據(jù)容災(zāi)計(jì)劃完成系統(tǒng)各災(zāi)備功能的管理和使用[6]。
1 系統(tǒng)結(jié)構(gòu)
由于B/S模式管理平臺(tái)具有使用簡(jiǎn)單、維護(hù)方便、廣泛的通用性和跨平臺(tái)性及安全性好等優(yōu)點(diǎn),系統(tǒng)采用基于Web的方式來(lái)進(jìn)行管理。系統(tǒng)分為本地系統(tǒng)和遠(yuǎn)程災(zāi)備中心兩大部分。本地系統(tǒng)由客戶服務(wù)器和訪問(wèn)主機(jī)構(gòu)成,位于同一內(nèi)網(wǎng),災(zāi)備中心的管理服務(wù)器和存儲(chǔ)服務(wù)器也位于同一內(nèi)網(wǎng),兩者之間通過(guò)Internet或者專用網(wǎng)相連,系統(tǒng)拓?fù)鋱D如圖1所示。
1)客戶服務(wù)器 它是用戶需要備份數(shù)據(jù)所在服務(wù)器,服務(wù)器上運(yùn)行有客戶端消息監(jiān)聽模塊和消息處理模塊[7]。該處的消息是指容災(zāi)系統(tǒng)內(nèi)部用于通信的、有著自己協(xié)議格式的數(shù)據(jù)。消息監(jiān)聽模塊在系統(tǒng)加載并初始化之后開始工作,進(jìn)行客戶端與ActiveX通信控件的消息通信。通信控件是一個(gè)嵌入到Web頁(yè)面中的Internet控件,主要負(fù)責(zé)訪問(wèn)主機(jī)的Web頁(yè)面與客戶服務(wù)器的消息通信。客戶服務(wù)器對(duì)控件發(fā)來(lái)的消息進(jìn)行接收并解析,然后調(diào)用消息處理模塊執(zhí)行該條消息所對(duì)應(yīng)的操作請(qǐng)求,執(zhí)行相應(yīng)操作;操作執(zhí)行完畢之后,將結(jié)果再以消息的形式發(fā)送回通信控件,控件將執(zhí)行結(jié)果通過(guò)Web頁(yè)面告知管理服務(wù)器。
2)遠(yuǎn)程災(zāi)備中心 容災(zāi)系統(tǒng)的管理服務(wù)器和存儲(chǔ)服務(wù)器位于遠(yuǎn)程災(zāi)備中心。管理服務(wù)器上部署有Web服務(wù)器,后臺(tái)數(shù)據(jù)庫(kù)部署在系統(tǒng)的存儲(chǔ)服務(wù)器上。管理服務(wù)器用于整個(gè)系統(tǒng)的配置管理,存儲(chǔ)服務(wù)器用于接收處理實(shí)時(shí)備份數(shù)據(jù),它們位于同一局域網(wǎng)內(nèi)并且相互之間擁有較大的通信帶寬,可快速訪問(wèn)服務(wù)器的數(shù)據(jù)庫(kù)讀寫存儲(chǔ)數(shù)據(jù)。管理服務(wù)器的Web模塊是災(zāi)難恢復(fù)系統(tǒng)的重要組成部分,用戶通過(guò)Web模塊提供的頁(yè)面來(lái)使用容災(zāi)系統(tǒng)。Web模塊的主要功能是配置容災(zāi)任務(wù)、監(jiān)控容災(zāi)任務(wù)的實(shí)時(shí)狀態(tài)并控制容災(zāi)任務(wù)的運(yùn)行,提供的界面主要包括建立任務(wù)、任務(wù)初始化、啟動(dòng)任務(wù)災(zāi)難恢復(fù)等。出于安全方面的考慮,有時(shí)需要徹底清除存儲(chǔ)服務(wù)器中的一些敏感數(shù)據(jù)。存儲(chǔ)服務(wù)器提供了數(shù)據(jù)銷毀模塊來(lái)完成對(duì)這些數(shù)據(jù)的徹底清除,銷毀有自動(dòng)銷毀和命令銷毀兩種方式可供選擇。
2 通信協(xié)議制定
本文設(shè)計(jì)的消息通信協(xié)議是一個(gè)基于TCP的應(yīng)用層協(xié)議,主要為了完成異地容災(zāi)系統(tǒng)中客戶服務(wù)器端與管理服務(wù)器端的交互任務(wù)。為了確保消息傳遞的保密性、完整性,所有的數(shù)據(jù)交互都是建立在SSL之上的,通過(guò)采用不對(duì)稱加密技術(shù)不但可以實(shí)現(xiàn)會(huì)話雙方之間消息的安全傳遞,還可以鑒別會(huì)話雙方的身份,防止消息竄改[8]。
2.1 消息結(jié)構(gòu)定義
消息是容災(zāi)系統(tǒng)內(nèi)部用于通信和自定義協(xié)議格式的數(shù)據(jù)結(jié)構(gòu)??紤]到極端情況下消息的長(zhǎng)度及其可擴(kuò)展性,將消息的長(zhǎng)度定義為1 024 Byte,消息格式定義如圖2所示。
消息各部分含義如下:
a)MsgID,消息類型。不同消息有對(duì)應(yīng)的結(jié)構(gòu)和解析方式。
b)Flag,標(biāo)志位。Web服務(wù)器可根據(jù)返回消息的flag值判斷客戶服務(wù)器端任務(wù)是否存在,或者任務(wù)執(zhí)行成功與否。
c)Local_IP,客戶服務(wù)器在內(nèi)網(wǎng)中的IP。這個(gè)必須由客戶機(jī)通過(guò)Web頁(yè)面來(lái)告知管理服務(wù)器。
d)Local_Port,是客戶服務(wù)器用于監(jiān)聽的端口號(hào)。,是由客戶機(jī)通過(guò)Web頁(yè)面來(lái)告知管理服務(wù)器。
e)Data,管理服務(wù)器發(fā)送給客戶服務(wù)器的具體任務(wù)命令,以結(jié)構(gòu)的方式存放于消息之中。對(duì)應(yīng)于不同的msgID,data中的結(jié)構(gòu)也有所不同。
2.2 協(xié)議描述
定義1Msg表示發(fā)送給客戶服務(wù)器的消息,msgssl′表示返回給管理服務(wù)器的消息,data′表示管理服務(wù)器最終所需的任務(wù)處理返回結(jié)果。
定義2Msgssl為經(jīng)過(guò)SSL加密后的消息。
定義3‘|’表示字符串連接,如A|B表示字符串AB。
定義4ClientProcess為客戶服務(wù)器端消息解析和處理函數(shù),serverProcess為Web服務(wù)器消息解析函數(shù)。
定義5Ti表示類型為i的消息從發(fā)送到收回消息所允許的最長(zhǎng)消息通信時(shí)間,Ti值根據(jù)消息類型而定;t表示自消息發(fā)送開始計(jì)時(shí)器的計(jì)時(shí)數(shù)值。
下面給出協(xié)議應(yīng)用的具體描述:
a)訪問(wèn)主機(jī)通過(guò)Web方式將local_IP和local_port提交給Web服務(wù)器,Web服務(wù)器根據(jù)這些信息以及要執(zhí)行的任務(wù)來(lái)生成要發(fā)送給客戶服務(wù)器的消息msg。
msg=msgID|flag|local_IP|local_port|data
(1)
b)通過(guò)CA模塊建立SSL連接,將消息發(fā)送給客戶服務(wù)器,同時(shí)啟動(dòng)定時(shí)器timer開始計(jì)時(shí)。
msgssl=CA(msg)
(2)
c)客戶服務(wù)器接收到消息后對(duì)消息進(jìn)行解析和處理,根據(jù)返回結(jié)果生成返回消息msgssl′。
msgssl′=clientProcess(msgssl)
(3)
d)Web服務(wù)器將返回的消息進(jìn)行解析,得到所需的數(shù)據(jù)data′。
data′=serverProcess(msgssl′)
(4)
e)斷開SSL連接,在頁(yè)面上顯示執(zhí)行結(jié)果。如果為超時(shí)操作,則提示用戶并給出是否重新連接的提示。
值得注意的是,在步驟b)后,隔一段時(shí)間要將t和Ti進(jìn)行比較,當(dāng)發(fā)現(xiàn) t > Ti時(shí),說(shuō)明有異常情況造成連接超時(shí),這時(shí)要轉(zhuǎn)到步驟e)。
3 ActiveX控件實(shí)現(xiàn)
在系統(tǒng)中,使用ActiveX控件來(lái)實(shí)現(xiàn)消息通信。ActiveX是Microsoft提供的一組符合COM規(guī)范的工具[9],開發(fā)人員能夠通過(guò)它把計(jì)算機(jī)桌面環(huán)境與構(gòu)成Internet及其大量資源的環(huán)境集成起來(lái)。ActiveX技術(shù)中,最基本和最重要的成員就是ActiveX控件,通常形式為動(dòng)態(tài)鏈接庫(kù)DLL或者OCX控件,它可用于所有支持COM規(guī)范的容器中,也可作為Internet控件嵌入到Web頁(yè)面中。ActiveX控件是一種標(biāo)準(zhǔn)的客戶機(jī)/服務(wù)器結(jié)構(gòu),將消息收發(fā)和解析封裝到一個(gè)ActiveX控件中,不僅方便了代碼重用,而且可以實(shí)現(xiàn)跨進(jìn)程間的消息傳遞。
3.1 ActiveX控件工作流程
通信控件是一個(gè)嵌入到Web頁(yè)面中的Internet控件,主要負(fù)責(zé)訪問(wèn)主機(jī)的Web頁(yè)面與客戶服務(wù)器的消息通信。根據(jù)協(xié)議結(jié)構(gòu)把自定義的消息協(xié)議按照組件的結(jié)構(gòu)進(jìn)行封裝,然后按照流程圖添加處理消息的代碼即可??丶?duì)于災(zāi)備中心與客戶服務(wù)器的消息處理流程圖如圖3所示。
Web頁(yè)面通過(guò)ActiveX控件的一個(gè)公用接口action()把符合內(nèi)部通信協(xié)議格式的消息傳送給控件;控件根據(jù)msgID調(diào)用相應(yīng)的任務(wù)模塊來(lái)解析消息,再將消息通過(guò)SSL方式發(fā)送給客戶服務(wù)器;客戶服務(wù)器進(jìn)行處理后,將處理結(jié)果以消息的形式返回給控件,控件再將該消息作為公用接口的返回值傳遞給Web,從而通過(guò)該ActiveX控件完成一次“訪問(wèn)主機(jī)—客戶服務(wù)器”的消息交互。對(duì)于在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù),要充分考慮其安全性,所以對(duì)訪問(wèn)主機(jī)與客戶服務(wù)器之間的消息通信全部采用SSL方式進(jìn)行傳輸處理,保證了傳輸數(shù)據(jù)的安全。
3.2 Web應(yīng)用實(shí)現(xiàn)
用戶通過(guò)Web方式來(lái)進(jìn)行災(zāi)難備份任務(wù)的管理。當(dāng)用戶登錄系統(tǒng)進(jìn)入Web頁(yè)面時(shí),頁(yè)面首先會(huì)對(duì)客戶機(jī)是否安裝控件進(jìn)行判斷。如果檢測(cè)到控件已被用戶安裝過(guò),控件在頁(yè)面中注明的classID就能夠在訪問(wèn)機(jī)的注冊(cè)表內(nèi)查找得到,用戶可以通過(guò)Web頁(yè)面正常進(jìn)行各項(xiàng)災(zāi)備任務(wù)的操作;如果頁(yè)面經(jīng)檢測(cè)發(fā)現(xiàn)控件沒(méi)有安裝,則會(huì)給用戶發(fā)出提示,然后網(wǎng)頁(yè)會(huì)自動(dòng)跳轉(zhuǎn)到控件下載頁(yè)面,用戶可以按照頁(yè)面說(shuō)明實(shí)現(xiàn)控件的下載和控件在本地的安裝注冊(cè)。當(dāng)控件在訪問(wèn)主機(jī)上安裝后,就成為訪問(wèn)機(jī)的本地資源,用戶就可以成功地進(jìn)行災(zāi)備任務(wù)的操作。
若控件進(jìn)行了版本升級(jí),瀏覽器也會(huì)通過(guò)版本信息判斷出有高版本的控件存在,同樣會(huì)進(jìn)行頁(yè)面跳轉(zhuǎn),提示用戶下載新版本進(jìn)行升級(jí)。新版本的控件在安裝時(shí)自動(dòng)覆蓋舊版本控件。
4 系統(tǒng)性能分析與測(cè)試
在100 Mbps網(wǎng)速的網(wǎng)絡(luò)環(huán)境中,對(duì)采用控件通信的該異地容災(zāi)系統(tǒng)進(jìn)行測(cè)試,實(shí)驗(yàn)環(huán)境如表1所示。
選取的測(cè)試指標(biāo)為系統(tǒng)對(duì)數(shù)據(jù)的恢復(fù)性能。選取100~500 MB不同大小的數(shù)據(jù)來(lái)進(jìn)行災(zāi)備中心到客戶服務(wù)器的遠(yuǎn)程數(shù)據(jù)恢復(fù)以測(cè)試數(shù)據(jù)所花費(fèi)的時(shí)間。
表1 實(shí)驗(yàn)環(huán)境
CPU內(nèi)存存儲(chǔ)系統(tǒng)OS
訪問(wèn)主機(jī)Intel P41.6 GHz256 MB一塊80 GB磁盤Win XP SP2
客戶服務(wù)器Intel Celeron(R) 2.4GHz512 MB一塊160 GB磁盤Linux2.4.31
存儲(chǔ)服務(wù)器Intel Celeron(R) 2.4 GHz1.5 GB四塊320 GB磁盤組建RAID0Linux2.6.18
測(cè)試結(jié)果如圖4所示。
由圖4可知,對(duì)于一般應(yīng)用而言,該異地容災(zāi)系統(tǒng)能夠在2 min內(nèi)完成災(zāi)備中心到客戶服務(wù)器的數(shù)據(jù)恢復(fù)。隨著數(shù)據(jù)量的增加,所耗時(shí)間呈線性增加,可以在較短時(shí)間內(nèi)完成對(duì)系統(tǒng)數(shù)據(jù)的恢復(fù)。
5 結(jié)束語(yǔ)
本文介紹了一種基于Web管理平臺(tái)的異地容災(zāi)系統(tǒng),該系統(tǒng)采用B/S架構(gòu)的管理方式,通過(guò)自行設(shè)計(jì)的通信協(xié)議進(jìn)行消息傳遞和任務(wù)管理。對(duì)于用戶而言界面友好、使用方便,有著很好的易用性;該系統(tǒng)無(wú)須專用的硬件支持,為企業(yè)提供了一種性價(jià)比較高的異地容災(zāi)解決方案。
參考文獻(xiàn):
[1]李濤.網(wǎng)絡(luò)安全概論[M].北京:電子工業(yè)出版社,2004.
[2]SUZUKI J, SUDA T. Middleware support for disaster response infrastructure[C]//Proc of the 1st IEEE Workshop on Disaster Recovery Networks. 2002.
[3]LLOYD S J, PEKHAM J, LI Jian, et al. RORIB: an economic and efficien solution for real-time online remote information backup[J]. Journal of Database Management, 2003,14(3): 56-73.
[4]孫潔,劉曉潔,李濤.一種基于Internet的異地容災(zāi)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究, 2007,24(7):171-172.
[5]沙金川,劉曉潔,李濤,等.一種基于安全控制的異地災(zāi)備系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究, 2007,24(8):152-154.
[6]WANG Kun, ZHOU Li-hua, CAI Zhen, et al. A disaster recovery system model in an e-government system[C]//Proc of the 6th International Conference on Parallel and Distributed Computing Applications and Technologies. 2005:247-250.
[7]SOURCE A. SANs sharing storage to infinity and beyond[J]. Electronic Design, 2004,52(9):50-59.
[8]LIULan-juan. SCM security solution based on SSL protocol[C]//Proc ofIEEE International Conference on Service Operations and Logistics, and Informatics. 2006:814-817.
[9]MICHENER J.R, ACAR T. Managing system and active-content integrity[J]. Computer, 2000,33(7):108-110.