馮 揚(yáng),張立新,廖明耀,齊志超
(北京中電普華信息技術(shù)有限公司, 北京 100192)
摘 要: 為了保障國(guó)家電網(wǎng)數(shù)據(jù)(災(zāi)備)中心的安全建設(shè),通過(guò)對(duì)比國(guó)內(nèi)外中間件產(chǎn)品的技術(shù)現(xiàn)狀,提出了一套適合國(guó)家電網(wǎng)的中間件應(yīng)用服務(wù)器的基本框架和主要功能,并對(duì)交易服務(wù)、快照服務(wù)和日志服務(wù)三個(gè)模塊做出了詳細(xì)介紹。之后,搭建了測(cè)試環(huán)境,對(duì)功能和性能做出了測(cè)試,結(jié)果滿(mǎn)足設(shè)計(jì)要求和國(guó)家電網(wǎng)的要求。對(duì)該產(chǎn)品的進(jìn)一步研發(fā)有助于提升數(shù)據(jù)(災(zāi)備)中心的應(yīng)用服務(wù)自我恢復(fù)能力和數(shù)據(jù)(災(zāi)備)中心的建設(shè),起到了基礎(chǔ)應(yīng)用軟件支持的作用。
關(guān)鍵詞: 數(shù)據(jù)(災(zāi)備)中心; 中間件; 交易服務(wù);快照服務(wù);日志服務(wù)
0 引言
數(shù)據(jù)(災(zāi)備)中心建設(shè)按照國(guó)家公司集中式數(shù)據(jù)中心建設(shè)發(fā)展要求,已經(jīng)審議通過(guò)。在集中式數(shù)據(jù)中心建設(shè)方案中明確提出要進(jìn)一步提高IT軟硬件資源利用率,降低整體建設(shè)及運(yùn)維成本,滿(mǎn)足不斷快速調(diào)優(yōu)需求,提升可控和在控、安全可靠運(yùn)行、容災(zāi)和恢復(fù)的能力[1]。
數(shù)據(jù)(災(zāi)備)中心建設(shè)一方面為國(guó)網(wǎng)私有云的建設(shè)提供了數(shù)據(jù)安全存儲(chǔ)和備份的保障,另一方面因體系中包含中間件,云環(huán)境采用X86集群[2]方式實(shí)現(xiàn)會(huì)大量應(yīng)用中間件?,F(xiàn)有的應(yīng)用中間件,由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),配置、管理方式千差萬(wàn)別,每個(gè)系統(tǒng)都獨(dú)立部署,且難以統(tǒng)一使用、復(fù)用和維護(hù)。國(guó)家電網(wǎng)公司迫切需要一個(gè)統(tǒng)一高效安全的中間件產(chǎn)品來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)(災(zāi)備)中心建設(shè)的支持。
1 背景概述
1.1 研究背景
國(guó)網(wǎng)的安全體系中,網(wǎng)絡(luò)層面安全已經(jīng)非常規(guī)范和細(xì)粒度,做到了網(wǎng)絡(luò)隔離、傳輸加密、統(tǒng)一權(quán)限、單點(diǎn)登錄等。而應(yīng)用中間件層次、數(shù)據(jù)庫(kù)中間件層次的加密技術(shù)和安全架構(gòu)仍然較模糊,此項(xiàng)目可以通過(guò)對(duì)中間件級(jí)別的安全技術(shù)研發(fā),來(lái)實(shí)現(xiàn)更底層的安全防護(hù)。
1.2 研究現(xiàn)狀
現(xiàn)有公司的中間件組件的使用均采用國(guó)外產(chǎn)品,版本不統(tǒng)一,且每個(gè)系統(tǒng)都需要獨(dú)立采購(gòu)。從歷史上看應(yīng)用中間件在國(guó)際上已經(jīng)形成了標(biāo)準(zhǔn),同時(shí)國(guó)網(wǎng)的已建成項(xiàng)目在開(kāi)發(fā)中也遵循了這些共通標(biāo)準(zhǔn)。國(guó)內(nèi)外的研究現(xiàn)狀具體情況如表1所示。
1.2.1 Oracle WebLogic Server
WebLogic是美國(guó)Oracle公司出品的一個(gè)Application Server,確切地說(shuō)是一個(gè)基于Java(J2EE)架構(gòu)的中間件,WebLogic是用于開(kāi)發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫(kù)應(yīng)用的Java應(yīng)用服務(wù)器,也是國(guó)網(wǎng)部署最廣泛的的應(yīng)用服務(wù)中間件之一。
1.2.2 IBM WebSphere Application Server
IBM WebSphere Application Server提供了一個(gè)面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)需要的安全可擴(kuò)展的應(yīng)用程序基礎(chǔ)架構(gòu)。并通過(guò)J2EE 5認(rèn)證,支持Java Development Kit (JDK) 6.0、EJB 3.0 和Java Persistence API(JPA),為構(gòu)建可重用的持久性對(duì)象提供了簡(jiǎn)化的編程模式;對(duì)WebSphere MQ的預(yù)置支持和對(duì)WebSphere ESB的高度整合,這些產(chǎn)品的組合能夠構(gòu)成一個(gè)強(qiáng)大的企業(yè)服務(wù)總線(xiàn)(Enterprise Service Bus),可以整合多種類(lèi)的應(yīng)用程序和環(huán)境。
1.2.3 東方通TongWeb應(yīng)用服務(wù)器
TongWeb應(yīng)用服務(wù)器也是一個(gè)獲得Java EE 5認(rèn)證的Java應(yīng)用服務(wù)器,它實(shí)現(xiàn)了Java EE 5規(guī)范、最新的Web服務(wù)標(biāo)準(zhǔn)和主流的互操作標(biāo)準(zhǔn)。它提供高級(jí)消息傳輸、Web服務(wù)、高可用性、集群和多平臺(tái)支持。通過(guò)配置TongWeb應(yīng)用服務(wù)器集群,可以實(shí)現(xiàn)負(fù)載均衡,增強(qiáng)應(yīng)用的擴(kuò)展性。通過(guò)將高度優(yōu)化的會(huì)話(huà)服務(wù)器添加到TongWeb應(yīng)用服務(wù)器標(biāo)準(zhǔn)版,TongWeb應(yīng)用服務(wù)器企業(yè)版的集群提供從一個(gè)服務(wù)器至另一個(gè)服務(wù)器的無(wú)縫移植以及故障切換,從而可確保關(guān)鍵應(yīng)用和服務(wù)的持續(xù)運(yùn)行,幫助企業(yè)應(yīng)對(duì)應(yīng)用程序宕機(jī)或者服務(wù)意外無(wú)法訪問(wèn)等情況。
1.2.4 Red Hat JBoss EAP
JBoss的企業(yè)應(yīng)用平臺(tái)(JBoss EAP)是市場(chǎng)領(lǐng)先的、開(kāi)源的企業(yè)級(jí)Java創(chuàng)新性和可擴(kuò)展的Java應(yīng)用程序開(kāi)發(fā)和部署平臺(tái)?;谄髽I(yè)用戶(hù)對(duì)企業(yè)版JBoss的巨大需求,紅帽公司作為開(kāi)源解決方案廠商中的佼佼者,推出了企業(yè)版JBoss產(chǎn)品—JBoss EAP,得到了廣大企業(yè)級(jí)、電信級(jí)客戶(hù)的認(rèn)同。紅帽資深JBoss專(zhuān)家表示,企業(yè)版JBoss在JBoss AS的基礎(chǔ)上,進(jìn)行了大幅度改進(jìn),二者的差異主要體現(xiàn)在產(chǎn)品、技術(shù)、安全性、可管理性、服務(wù)支持、軟件責(zé)任風(fēng)險(xiǎn)與法律問(wèn)題等方面。
1.3 問(wèn)題分析
從產(chǎn)品的延續(xù)性和兼容性上來(lái)說(shuō)要求應(yīng)用中間件應(yīng)用服務(wù)器既能符合國(guó)際標(biāo)準(zhǔn),又能適用于云平臺(tái)。能夠承載服務(wù)化的應(yīng)用是對(duì)應(yīng)用中間件的最大要求[3],這兩種需求的難點(diǎn)也體現(xiàn)在目前國(guó)網(wǎng)的云平臺(tái)環(huán)境尚未完全建成(中間件本身也是云平臺(tái)的核心之一),在開(kāi)發(fā)中如何能與云平臺(tái)的建設(shè)保持同步,甚至超前是在制定業(yè)務(wù)目標(biāo)時(shí)需要著重考慮的。
對(duì)比國(guó)內(nèi)外常用的四種中間件產(chǎn)品和采用技術(shù),需確定哪一種更能方便云平臺(tái)的在變化中的構(gòu)建模式,更適合在國(guó)家電網(wǎng)海量的不同類(lèi)型的應(yīng)用服務(wù)器上部署和運(yùn)用。通過(guò)各方面全面分析和對(duì)比,最終采用了Jboss中間件技術(shù),它能夠便捷、低成本地實(shí)現(xiàn)目前建設(shè)所需的功能和性能指標(biāo)。
2 關(guān)鍵技術(shù)和服務(wù)
2.1 中間件架構(gòu)
Jboss中間件架構(gòu)全面實(shí)現(xiàn)了Java EE 5的規(guī)范、最新的Web服務(wù)標(biāo)準(zhǔn)和主流的互操作標(biāo)準(zhǔn),它提供高級(jí)消息傳輸、Web服務(wù)、高可用性、高穩(wěn)定性,并提供對(duì)多種主流平臺(tái)的全面支持[4]。各種模塊以服務(wù)形式體現(xiàn),架構(gòu)如圖1所示。
核心8個(gè)服務(wù)中有3個(gè)是根據(jù)現(xiàn)有需求改進(jìn)和開(kāi)發(fā)的,分別是交易服務(wù)、快照服務(wù)和日志服務(wù)。
2.2 交易服務(wù)
交易服務(wù)屬于SG-APS中間件的一個(gè)功能模塊,開(kāi)啟此功能可以處理因宕機(jī)等非正常運(yùn)行而產(chǎn)生的中斷的事務(wù)。在事務(wù)開(kāi)始時(shí)、事務(wù)準(zhǔn)備提交時(shí)以及提交后都有日志記錄,如果服務(wù)器意外不能正常工作,在服務(wù)器重新啟動(dòng)的時(shí)候會(huì)分析不能正常工作前的日志記錄,復(fù)原事務(wù)現(xiàn)場(chǎng),提交不能正常工作前中斷的事務(wù)。此模塊適用于standalone場(chǎng)景。
2.3 日志服務(wù)
日志服務(wù)實(shí)現(xiàn)日志模塊配置、日志級(jí)別設(shè)置、日志輪轉(zhuǎn)設(shè)置、日志輸出方式配置并可實(shí)現(xiàn)自定義日志擴(kuò)展[5]。日志管理內(nèi)容包括執(zhí)行日志記錄、獲取模塊描述、讀取xml文件元素、解析日志元素、解析根日志元素、添加資源屬性描述、添加設(shè)置參數(shù)描述、覆蓋服務(wù)。
2.4 快照服務(wù)
快照服務(wù)記錄了系統(tǒng)不同時(shí)間的工作狀態(tài),可以根據(jù)需要定制快照模式,也可以在系統(tǒng)出現(xiàn)故障時(shí),根據(jù)原記錄來(lái)恢復(fù)和回放??煺展ぞ叩闹饕δ馨ǎ何募煺斩ㄖ?、文件快照生成、快照文件回放、快照文件存儲(chǔ)[6、7]和管理。
3 實(shí)現(xiàn)流程
3.1 系統(tǒng)啟動(dòng)
3.1.1 客戶(hù)端日志啟動(dòng)
客戶(hù)端日志啟動(dòng)后,發(fā)送日志配送文件。日志發(fā)送配置文件包括發(fā)送文件存在的路徑及發(fā)送的目的地。配置文件讀取模塊加載配置文件,接下來(lái)發(fā)送日志數(shù)據(jù),包括請(qǐng)求發(fā)送、確定上次發(fā)送的位置。將讀入的文件內(nèi)容發(fā)送到服務(wù)端。
3.1.2 日志服務(wù)端管理
包括參數(shù)管理、日志數(shù)據(jù)接收和日志查詢(xún)下載功能。服務(wù)端的配置文件參數(shù)包括文件的存儲(chǔ)路徑定義。
配置文件主要是對(duì)上傳的日志文件存儲(chǔ)位置的定義,此外還有日志記錄解析格式的定義。格式包括如何區(qū)分不同日志和日志如何解析。
3.1.3 日志數(shù)據(jù)處理
服務(wù)端提供的服務(wù)主要包括:查詢(xún)上次的傳輸位置,生成通信id;接收傳輸?shù)臄?shù)據(jù),服務(wù)端系統(tǒng)時(shí)間。
系統(tǒng)收到的每一個(gè)日志文件有一個(gè)對(duì)應(yīng)的信息文件,記錄相關(guān)的記錄數(shù)。
系統(tǒng)控制文件對(duì)應(yīng)最后的信息文件,如果通信正常,則控制文件指向最后這個(gè)文件。如果不是,則說(shuō)明通信異常,最后的這個(gè)文件就應(yīng)該是上次完成的文件。如果不存在,則取最新文件的前一個(gè)文件。
為了確保操作的可控,控制文件先將記錄當(dāng)前位置的文件改名,再建立新的傳輸控制文件。
3.2 事務(wù)記錄與恢復(fù)
在系統(tǒng)啟動(dòng)之后可以開(kāi)啟中間件服務(wù)器,開(kāi)始事務(wù)模塊的運(yùn)行,并生成事務(wù)日志。日志生成記錄事務(wù)工作情況,正常啟動(dòng)流程如圖2所示。
當(dāng)系統(tǒng)發(fā)生異常狀態(tài)關(guān)閉時(shí),再次啟動(dòng)后將出現(xiàn)事務(wù)異常的提示,需要開(kāi)啟數(shù)據(jù)恢復(fù)服務(wù),根據(jù)事務(wù)日志恢復(fù)到最近標(biāo)記過(guò)的正常狀態(tài),從而實(shí)現(xiàn)中間件的啟動(dòng)。恢復(fù)過(guò)程如圖3所示。
3.3 快照定制和回放
通過(guò)快照的定制和回放,實(shí)現(xiàn)系統(tǒng)和程序的定期備份和追溯,按時(shí)間記錄當(dāng)天、一周前、一個(gè)月前等的記錄和回放以及快照存儲(chǔ)、增量備份、冗余刪除等[8]。管理員快照操作的權(quán)限如圖4所示.
4 測(cè)試與結(jié)果
4.1 測(cè)試環(huán)境
搭建測(cè)試環(huán)境包括硬件環(huán)境和軟件環(huán)境。
硬件環(huán)境:CPU: 至少2GHz,內(nèi)存:至少需要1GMB的內(nèi)存,硬盤(pán)空間:至少需要2GMB磁盤(pán)空間,監(jiān)視器:圖形界面安裝需要256色,字符界面安裝沒(méi)有色彩要求,瀏覽器:Microsoft IE7或Firefox3.0及以上版本。軟件環(huán)境:JDK1.6,開(kāi)發(fā)IDE工具:Eclipse 4.4、Maven 3.0.2,操作系統(tǒng):Windows 7,數(shù)據(jù)庫(kù):mySQL 5.2,中間件:Jboss 7.1.1 Final。
4.2 數(shù)據(jù)庫(kù)恢復(fù)結(jié)果
首先安裝開(kāi)發(fā)測(cè)試Java環(huán)境,搭建maven(Jboss的構(gòu)建方式)工程,在standalone模式下啟動(dòng)Jboss集群,創(chuàng)建Mysql數(shù)據(jù)庫(kù),并創(chuàng)建測(cè)試數(shù)據(jù)??蛻?hù)端添加日志。然后,突然關(guān)閉應(yīng)用服務(wù)器,模擬服務(wù)器故障,數(shù)據(jù)庫(kù)數(shù)據(jù)斷電丟失。重新開(kāi)機(jī)啟動(dòng)交易恢復(fù)模塊,數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)成功。數(shù)據(jù)恢復(fù)前界面如圖4,恢復(fù)成功后界面如圖5。
4.3 快照回放和刪除
快照回放,根據(jù)快照記錄恢復(fù)歷史狀態(tài)下的系統(tǒng)或程序。刪除功能可以刪除歷史快照。功能顯示如圖7所示。
4.4 日志下載查詢(xún)
管理用戶(hù)可以通過(guò)網(wǎng)絡(luò)遠(yuǎn)程對(duì)收到的日志文件進(jìn)行查詢(xún),同時(shí)提供下載。
對(duì)于后臺(tái)日志10 min建立一個(gè)文件,如果一次只能看10 min的內(nèi)容,將會(huì)很不方便,因此系統(tǒng)提供可以跨時(shí)間段的多文件查詢(xún)。日志下載界面如圖8所示。
5 結(jié)束語(yǔ)
通過(guò)實(shí)驗(yàn)和測(cè)試得出了該中間件產(chǎn)品能夠?qū)崿F(xiàn)預(yù)期功能,經(jīng)測(cè)試后的性能指標(biāo)能夠滿(mǎn)足目前云平臺(tái)和設(shè)計(jì)要求。具體指標(biāo)參數(shù)見(jiàn)表2。
為提高云計(jì)算平臺(tái)數(shù)據(jù)(災(zāi)備)中心的高可用(靠)性,應(yīng)用中間件對(duì)應(yīng)用提供自我恢復(fù)的能力管控,即知道應(yīng)用是否有問(wèn)題,以及支撐的Java容器是否出現(xiàn)故障,對(duì)出現(xiàn)問(wèn)題的應(yīng)用進(jìn)程和組件提供分析、恢復(fù)、重啟的能力??梢愿鶕?jù)不同的定制策略,選擇性重新啟動(dòng)恢復(fù)。并對(duì)數(shù)據(jù)(災(zāi)備)中心建設(shè)提供了安全的基礎(chǔ)應(yīng)用軟件支持。
參考文獻(xiàn):
[1]姜可.淺析企業(yè)數(shù)據(jù)災(zāi)備系統(tǒng)的建設(shè)[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2013(1):111-112.
[2]馮揚(yáng) 云安全技術(shù)研究.電力信息與通信技術(shù)[J]. 2014,12(1).
[3]魏勇,張權(quán).中間件技術(shù)研究[J].電子技術(shù)應(yīng)用,2004,30(11):1-4.
[4]李捷.基于SOA應(yīng)用JMX和JMS技術(shù)的RFID中間件設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010,36(4):119-122.
[5]陳莉君,康華,賈威威.云存儲(chǔ)日志文件系統(tǒng)中快照的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(7):205-208.
[6]周煒,譚懷亮,易樂(lè)天.基于帶外存儲(chǔ)虛擬化的邏輯卷高性能快照[J].計(jì)算機(jī)研究與發(fā)展,2012,49(3):637-643.
[7]陽(yáng)小珊,朱立谷,羅洪元.IP網(wǎng)絡(luò)存儲(chǔ)的日志系統(tǒng)研究[J].計(jì)算機(jī)研究與發(fā)展,2011,48(z1):366-369.
[8]趙志恒,羅宇.基于細(xì)粒度快照的遠(yuǎn)程容災(zāi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2008,30(7):151-154.