郭學(xué)英,佘?chē)?guó)誠(chéng),姜 穎
(中國(guó)民航大學(xué)a.基礎(chǔ)實(shí)驗(yàn)中心;b.航空工程學(xué)院,天津 300300)
一體化環(huán)境下部署數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
郭學(xué)英a,佘?chē)?guó)誠(chéng)a,姜 穎b
(中國(guó)民航大學(xué)a.基礎(chǔ)實(shí)驗(yàn)中心;b.航空工程學(xué)院,天津 300300)
針對(duì)信息系統(tǒng)運(yùn)行需要部署數(shù)據(jù)作為支撐和系統(tǒng)在安裝時(shí)通過(guò)導(dǎo)入安裝配置文件,自動(dòng)填充部署信息完成安裝可以提高部署效率的情況,提出一體化環(huán)境下,使用部署數(shù)據(jù)管理系統(tǒng)以提供數(shù)據(jù)同步及安裝配置文件輸出功能。介紹了系統(tǒng)開(kāi)發(fā)框架及相關(guān)技術(shù),通過(guò)需求分析對(duì)系統(tǒng)功能進(jìn)行設(shè)計(jì),并對(duì)主要模塊進(jìn)行了詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),通過(guò)測(cè)試及結(jié)果分析,表明該系統(tǒng)可以作為一個(gè)通用工具被應(yīng)用在一體化環(huán)境下。
部署數(shù)據(jù);數(shù)據(jù)同步;Web服務(wù);XML
隨著信息一體化在政府機(jī)關(guān)、企業(yè)、高校等單位的不斷深入,部署數(shù)據(jù)逐漸成為信息系統(tǒng)運(yùn)行的支撐性數(shù)據(jù)。另外,在信息系統(tǒng)推廣部署期間,實(shí)施人員在進(jìn)行系統(tǒng)安裝過(guò)程中需要手動(dòng)填寫(xiě)許多部署信息,例如系統(tǒng)安裝IP地址、商用軟件信息等,這些信息不但復(fù)雜,而且極容易出錯(cuò),導(dǎo)致安裝失敗。在這樣的背景下,設(shè)計(jì)開(kāi)發(fā)了部署數(shù)據(jù)管理系統(tǒng),該系統(tǒng)的應(yīng)用提高了一體化環(huán)境下信息系統(tǒng)推廣部署的實(shí)施效率,降低了差錯(cuò)率,為信息系統(tǒng)的運(yùn)行提供了數(shù)據(jù)保障功能。
1.1 系統(tǒng)功能設(shè)計(jì)
通過(guò)部署數(shù)據(jù)管理系統(tǒng)在一體化環(huán)境下的需求,確定其業(yè)務(wù)功能分為4大部分:系統(tǒng)基礎(chǔ)管理、部署數(shù)據(jù)同步、安裝配置文件輸出及數(shù)據(jù)庫(kù)。其中系統(tǒng)基礎(chǔ)管理又包括6個(gè)子功能模塊:系統(tǒng)管理、信息系統(tǒng)定義管理、部署節(jié)點(diǎn)管理、部署數(shù)據(jù)模板管理、部署數(shù)據(jù)初始化、部署數(shù)據(jù)管理,如圖1所示。
1)系統(tǒng)基礎(chǔ)管理 為整個(gè)部署數(shù)據(jù)管理系統(tǒng)提供基礎(chǔ)保障,包括信息系統(tǒng)定義管理、部署節(jié)點(diǎn)管理、部署數(shù)據(jù)管理等,其中部署數(shù)據(jù)初始化是將系統(tǒng)中模板型部署數(shù)據(jù)轉(zhuǎn)化為某一部署節(jié)點(diǎn)下的實(shí)際部署數(shù)據(jù)。
2)安裝配置文件輸出 提供信息系統(tǒng)安裝時(shí)需要導(dǎo)入的安裝配置文件。
3)部署數(shù)據(jù)同步 向信息系統(tǒng)提供數(shù)據(jù)同步功能,保障信息系統(tǒng)中部署數(shù)據(jù)的一致性。
圖1 部署數(shù)據(jù)管理系統(tǒng)功能建模圖Fig.1 Function model diagram of deployment data management system
4)數(shù)據(jù)庫(kù) 存儲(chǔ)系統(tǒng)需要的數(shù)據(jù)。
1.2 部署數(shù)據(jù)同步模塊的設(shè)計(jì)
1.2.1 解決方案
在信息一體化建設(shè)過(guò)程中,所開(kāi)發(fā)出來(lái)的信息系統(tǒng)可能需要不同類(lèi)型的操作系統(tǒng)和數(shù)據(jù)庫(kù),Web服務(wù)可以在各種異構(gòu)平臺(tái)基礎(chǔ)上附加一個(gè)通用的、開(kāi)放的、與平臺(tái)無(wú)關(guān)的Web服務(wù)接口,該接口可以被各種不同平臺(tái)的應(yīng)用層進(jìn)行調(diào)用,從而實(shí)現(xiàn)各個(gè)系統(tǒng)之間的信息共享[1]。部署數(shù)據(jù)管理系統(tǒng)以Web服務(wù)接口的形式向其他系統(tǒng)提供部署數(shù)據(jù)同步功能,有效保證了信息系統(tǒng)間部署數(shù)據(jù)狀態(tài)的一致性。
部署數(shù)據(jù)管理系統(tǒng)向其他信息系統(tǒng)提供的部署數(shù)據(jù)采用XML作為數(shù)據(jù)內(nèi)容的載體,XML是Internet環(huán)境中跨平臺(tái)的、依賴(lài)于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具[2],可以方便地轉(zhuǎn)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)到XML中。
1.2.2 結(jié)構(gòu)設(shè)計(jì)
部署數(shù)據(jù)同步模塊按照功能共劃分了4個(gè)層次,分別為變化數(shù)據(jù)獲取層、數(shù)據(jù)包裝層、數(shù)據(jù)轉(zhuǎn)換層、數(shù)據(jù)同步服務(wù)接口層,如圖2所示。
圖2 數(shù)據(jù)同步模塊結(jié)構(gòu)示意圖Fig.2 Schematic diagram of data synchronization module
1)變化數(shù)據(jù)獲取層 變化數(shù)據(jù)獲取層是系統(tǒng)對(duì)外同步的部署數(shù)據(jù)的提供者,采用觸發(fā)器機(jī)制和變化審計(jì)表對(duì)數(shù)據(jù)庫(kù)需要同步的變化數(shù)據(jù)進(jìn)行捕獲。首先為同步源表創(chuàng)建一個(gè)審計(jì)表,審計(jì)表中包含源表的主鍵字段和一些基本的控制信息,審計(jì)表結(jié)構(gòu)如表1所示。在源表上建立插入、修改和刪除3種觸發(fā)器,當(dāng)源表中某個(gè)記錄發(fā)生更改時(shí),審計(jì)表中同主鍵的記錄也被修改,觸發(fā)器自動(dòng)將源表的相應(yīng)信息記錄在審計(jì)表里,進(jìn)行同步時(shí),只需要根據(jù)審計(jì)表就可以知道源表的變化數(shù)據(jù)。
表1 審計(jì)表結(jié)構(gòu)Tab.1 Audit table structure
2)數(shù)據(jù)包裝層 數(shù)據(jù)包裝層是將獲取的變化數(shù)據(jù)按照操作類(lèi)型(如增加、修改、刪除)分別封裝到不同的數(shù)據(jù)集合中。
3)數(shù)據(jù)轉(zhuǎn)換層 數(shù)據(jù)轉(zhuǎn)換層是將封裝在不同數(shù)據(jù)集合中的變化數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,實(shí)現(xiàn)從數(shù)據(jù)庫(kù)到XML字符串的映射。
4)數(shù)據(jù)同步服務(wù)接口層 部署數(shù)據(jù)管理系統(tǒng)對(duì)外提供的數(shù)據(jù)同步功能是以Web服務(wù)接口的形式提供的,根據(jù)一體化環(huán)境下信息系統(tǒng)的需求定義相應(yīng)的數(shù)據(jù)同步接口。
1.3 安裝配置文件輸出模塊的設(shè)計(jì)
1.3.1 解決方案
部署數(shù)據(jù)管理系統(tǒng)提供的安裝配置文件采用XML形式,在Web項(xiàng)目中,基于Freemarker[3]模板輸出XML文件是最常用的一種方法。但Freemarker模板技術(shù)在應(yīng)用過(guò)程中,其模板中的變量必須要賦值,如果不賦值,就會(huì)拋出異常。
部署數(shù)據(jù)管理系統(tǒng)提出了一種輸出安裝配置文件的方法,該方法的流程為:首先依據(jù)每個(gè)系統(tǒng)安裝時(shí)需要導(dǎo)入的信息,設(shè)計(jì)制作一個(gè)統(tǒng)一的安裝配置文件模板;然后在安裝配置文件輸出路徑下新建與模板內(nèi)容一致的安裝配置文件;最后解析安裝配置文件,查詢(xún)部署數(shù)據(jù),將數(shù)據(jù)替換文件中的占位符,形成附有具體數(shù)據(jù)的系統(tǒng)安裝配置文件。
1.3.2 結(jié)構(gòu)設(shè)計(jì)
圖3為安裝配置文件輸出方法的結(jié)構(gòu)示意圖,整體結(jié)構(gòu)分為4個(gè)模塊:安裝配置文件模板設(shè)計(jì);新建安裝配置文件;解析安裝配置文件;數(shù)據(jù)查詢(xún)、組織及替換文件中占位符。
圖3 安裝配置文件輸出方法結(jié)構(gòu)示意圖Fig.3 Schematic diagram of installation and configuration file output method
1)安裝配置文件模板設(shè)計(jì) 安裝配置文件模板采用XML形式,基于XML的語(yǔ)法規(guī)則和信息系統(tǒng)安裝時(shí)需要導(dǎo)入的信息,設(shè)計(jì)安裝配置文件模板,模板中需要填充數(shù)據(jù)的地方預(yù)留替換占位符,這里的預(yù)留占位符設(shè)計(jì)為以$符號(hào)開(kāi)頭的字符串,$符號(hào)后面的字符串與數(shù)據(jù)庫(kù)中相應(yīng)表的字段名對(duì)應(yīng)。某TYSFSQ系統(tǒng)的安裝配置文件模板信息片段,如圖4所示。
圖4 安裝配置文件模板信息片段Fig.4 Information of installation and configuration file template
2)新建安裝配置文件 在安裝配置文件輸出路徑下,新建與模板內(nèi)容一致的安裝配置文件。
3)解析安裝配置文件 基于Dom4j技術(shù)解析安裝配置文件,程序邏輯比較簡(jiǎn)單,性能上比較占有優(yōu)勢(shì)。
4)數(shù)據(jù)查詢(xún)、組織及替換文件中占位符 依據(jù)安裝配置文件中標(biāo)記的含義進(jìn)行相應(yīng)的數(shù)據(jù)查詢(xún),并將查詢(xún)出來(lái)的部署數(shù)據(jù)封裝成Map類(lèi)型,其中key值為數(shù)據(jù)庫(kù)中相應(yīng)表的字段名,value為數(shù)據(jù)庫(kù)中該字段對(duì)應(yīng)的數(shù)值。key值與模板中的預(yù)留占位符是相對(duì)應(yīng)的,因此可以利用key/value來(lái)定位并替換模板中的預(yù)留占位符,當(dāng)某value值為空的時(shí)候,預(yù)留占位符將被空串替換,因此不會(huì)拋異常。安裝配置文件信息片段,如圖5所示。
圖5 安裝配置文件信息片段Fig.5 Information of installation and configuration file
系統(tǒng)采用S2SH技術(shù)進(jìn)行研發(fā),S2SH即Struts2、Spring和Hibernate當(dāng)前主流的J2EE輕量級(jí)框架技術(shù),用戶(hù)界面層采用Struts2以及Ajax技術(shù)實(shí)現(xiàn),業(yè)務(wù)邏輯層采用Spring技術(shù)實(shí)現(xiàn),數(shù)據(jù)訪問(wèn)層和數(shù)據(jù)實(shí)體層通過(guò)Hibernate技術(shù)實(shí)現(xiàn)[4]。服務(wù)器結(jié)構(gòu)采用服務(wù)器/瀏覽器(B/S)模式,數(shù)據(jù)庫(kù)采用SQL Server2008,Web服務(wù)器采用Weblogic,能夠支持很大的用戶(hù)并發(fā)訪問(wèn)量。
2.1 數(shù)據(jù)同步服務(wù)實(shí)現(xiàn)
Apache CXF是一個(gè)開(kāi)放源代碼框架,用于方便地構(gòu)建和開(kāi)發(fā)Web服務(wù)的可靠基礎(chǔ)架構(gòu),部署數(shù)據(jù)管理系統(tǒng)基于CXF與Spring整合框架進(jìn)行數(shù)據(jù)同步服務(wù)的開(kāi)發(fā)和部署,簡(jiǎn)化了服務(wù)的部署工作。在spring-cxf. xml文件中配置發(fā)布的Web Service,代碼如下:
2.1.1 服務(wù)接口的實(shí)現(xiàn)
部署數(shù)據(jù)管理系統(tǒng)對(duì)外提供的數(shù)據(jù)同步接口共8個(gè),如圖6所示,包括最大審計(jì)流水號(hào)獲取,部署數(shù)據(jù)獲取等接口。其中部署數(shù)據(jù)獲取接口的返回值封裝為一個(gè)類(lèi)對(duì)象,為了對(duì)異構(gòu)信息系統(tǒng)提供不同的適應(yīng)性,通用的情況是將增加和修改記錄封裝在一起,但有的系統(tǒng)需要分開(kāi)封裝,因此在返回對(duì)象上進(jìn)行了多種處理。返回對(duì)象包含的屬性描述如圖7所示。
圖6 部署數(shù)據(jù)同步服務(wù)提供的接口Fig.6 Service interface of deployment data synchronization
圖7 部署數(shù)據(jù)同步接口返回值的封裝Fig.7 Return value package of deployment data synchronization interface
2.1.2 批量同步的實(shí)現(xiàn)
在一體化項(xiàng)目建設(shè)過(guò)程中,隨著大量信息系統(tǒng)上線運(yùn)行,部署數(shù)據(jù)管理系統(tǒng)的業(yè)務(wù)量將會(huì)明顯提高,數(shù)據(jù)同步服務(wù)的壓力也將會(huì)逐漸增大,為了避免信息系統(tǒng)在大規(guī)模并發(fā)調(diào)用數(shù)據(jù)同步服務(wù)時(shí),出現(xiàn)內(nèi)存溢出及服務(wù)器宕機(jī)等問(wèn)題,系統(tǒng)對(duì)數(shù)據(jù)同步模塊進(jìn)行了優(yōu)化,信息系統(tǒng)在進(jìn)行部署數(shù)據(jù)同步時(shí)會(huì)涉及到大量的本地化保存操作,因此占用數(shù)據(jù)同步服務(wù)連接資源的時(shí)間就比較長(zhǎng),部署數(shù)據(jù)管理系統(tǒng)采取了分批同步機(jī)制,每批同步的部署數(shù)據(jù)量可以通過(guò)配置文件進(jìn)行配置,這樣可以通過(guò)配置較小的數(shù)據(jù)同步量來(lái)降低一次同步數(shù)據(jù)所占用服務(wù)資源的時(shí)間,同時(shí)也降低了同時(shí)刻數(shù)據(jù)同步服務(wù)的并發(fā)訪問(wèn)量。批量數(shù)據(jù)同步流程,如圖8所示。
圖8 批量數(shù)據(jù)同步流程Fig.8 Flow chart of batch data synchronization
2.1.3 XML字符串封裝的實(shí)現(xiàn)
數(shù)據(jù)同步服務(wù)返回的部署數(shù)據(jù)為XML字符串格式,將數(shù)據(jù)對(duì)象轉(zhuǎn)換為XML字符串,為了獲取數(shù)據(jù)字段,采取了Java反射技術(shù)。Java反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)對(duì)象,都能夠知道這個(gè)對(duì)象的所有屬性和方法,這在構(gòu)建XML字符串上帶來(lái)了很大的便利。XML字符串封裝流程圖,如圖9所示。
圖9 XML字符串封裝流程圖Fig.9 Flow chart of XML string package
2.2 安裝配置文件輸出模塊實(shí)現(xiàn)
在安裝配置文件輸出模塊的開(kāi)發(fā)過(guò)程中遇到了一些問(wèn)題,大部分系統(tǒng)的部署方式為三級(jí)或兩級(jí)部署,安裝時(shí)有時(shí)需要同級(jí)、上級(jí)或最高級(jí)其他系統(tǒng)的部署信息,因此在安裝配置文件模板中建立關(guān)聯(lián)參數(shù)節(jié)點(diǎn)
將部署數(shù)據(jù)管理系統(tǒng)及數(shù)據(jù)庫(kù)部署在一臺(tái)DELL服務(wù)器上,該服務(wù)器的硬件配置:Intel雙核(主頻3.4 GHz);內(nèi)存4 G;服務(wù)器操作系統(tǒng):Windows Server 2008;硬盤(pán):500 GB。
圖10 安裝配置文件輸出流程圖Fig.10 Flow chart of installation and configuration file output
在穩(wěn)定性測(cè)試方面,利用Loadrunner 11.0對(duì)部署數(shù)據(jù)管理系統(tǒng)的基礎(chǔ)模塊(包括系統(tǒng)定義增加、部署節(jié)點(diǎn)增加、部署數(shù)據(jù)模板增加、部署數(shù)據(jù)初始化、安裝配置文件生成、部署數(shù)據(jù)同步)分別進(jìn)行腳本錄制及自動(dòng)化測(cè)試,每個(gè)模塊的測(cè)試設(shè)置:并發(fā)用戶(hù)為100個(gè)、執(zhí)行時(shí)間為0.5 h。測(cè)試執(zhí)行期間,DELL服務(wù)器的系統(tǒng)資源消耗情況如圖11所示,圖中曲線自下而上分別表示磁盤(pán)利用率、CPU利用率、所有進(jìn)程工作集內(nèi)存、系統(tǒng)可用內(nèi)存。由圖11部署數(shù)據(jù)管理系統(tǒng)未見(jiàn)明顯異常,服務(wù)器的CPU利用率低于50%,比較穩(wěn)定,系統(tǒng)可用內(nèi)存率無(wú)明顯降低,磁盤(pán)利用率無(wú)明顯上升現(xiàn)象(操作日志在不斷記錄),系統(tǒng)運(yùn)行比較穩(wěn)定。
性能測(cè)試主要測(cè)試部署數(shù)據(jù)同步服務(wù)的并發(fā)訪問(wèn)情況,針對(duì)queryDataByIDstable接口進(jìn)行壓力測(cè)試,設(shè)置并發(fā)用戶(hù)為100個(gè),每批同步的部署數(shù)據(jù)量為100條。測(cè)試結(jié)果如圖12所示,部署數(shù)據(jù)同步模塊在并發(fā)用戶(hù)量為100個(gè)時(shí),運(yùn)行比較穩(wěn)定,響應(yīng)時(shí)間控制在11 s以?xún)?nèi),系統(tǒng)沒(méi)有出現(xiàn)內(nèi)存溢出情況,全部執(zhí)行成功,表明數(shù)據(jù)同步服務(wù)可支持100個(gè)并發(fā)訪問(wèn)量。
圖11 服務(wù)器資源監(jiān)控圖Fig.11 Monitoring of server resource
圖12 數(shù)據(jù)同步接口并發(fā)測(cè)試結(jié)果Fig.12 Concurrent test result of data synchronization interface
針對(duì)一體化系統(tǒng)在推廣部署時(shí)存在的問(wèn)題,設(shè)計(jì)和研發(fā)了部署數(shù)據(jù)管理系統(tǒng),并對(duì)該系統(tǒng)的主要模塊進(jìn)行了測(cè)試,表明部署數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是合理的,可滿(mǎn)足一體化環(huán)境下信息系統(tǒng)對(duì)部署數(shù)據(jù)的需求,大大簡(jiǎn)化了系統(tǒng)的安裝過(guò)程,降低了差錯(cuò)率,提高了信息系統(tǒng)推廣部署的效率。該系統(tǒng)已在消防一體化生產(chǎn)環(huán)境下部署運(yùn)行,并可作為一個(gè)通用的部署數(shù)據(jù)管理工具而被應(yīng)用到其他一體化環(huán)境下。
[1]賈青梅.基于WebService的數(shù)據(jù)同步[D].北京:北京郵電大學(xué),2010.
[2]徐瑞雪.基于JAVA/XML的分布式數(shù)據(jù)同步系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連海事大學(xué),2011.
[3]耿曉君,陳章其.Struts2下基于FreeMarker的XML數(shù)據(jù)輸出與ExtJS的解析實(shí)現(xiàn)[J].江蘇廣播電視大學(xué)學(xué)報(bào),2009(5):59-62.
[4]黃大秀,梁 弼.基于S2SH的大學(xué)生綜合素質(zhì)評(píng)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013,12(1):86-88.
[5]鄭揚(yáng)飛,金 輝,張 勇,等.消防一體化環(huán)境下的信息交換平臺(tái)關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(7):1-4.
[6]石 勇.Web服務(wù)安全問(wèn)題及其對(duì)策研究[D].北京:北京師范大學(xué),2008.
[7]胡 博.通用數(shù)據(jù)采集的研究及基于規(guī)則的數(shù)據(jù)轉(zhuǎn)發(fā)的設(shè)計(jì)和實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2006.
[8]黃健榮,郭昌言,于蕭榕.基于SOA的房產(chǎn)信息系統(tǒng)研究和應(yīng)用[J].現(xiàn)代電子技術(shù),2010(6):67-70.
[9]夏威威.基于XML的內(nèi)外網(wǎng)數(shù)據(jù)同步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2011.
[10]李亦飛.基于B/S架構(gòu)的輕量級(jí)Web框架的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2008.
[11]刁書(shū)濱.Web系統(tǒng)間信息交換接口的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2011.
(責(zé)任編輯:黨亞茹)
Design and implementation of deployment data management system in integration environment
GUO Xue-yinga,SHE Guo-chenga,JIANG Yingb
(a.Basic Experiment Center;b.College of Aeronautical Engineering,CAUC,Tianjin 300300,China)
The operation of information system requires deployment data as support in integration environment;system fills deployment information automatically by importing installation and configuration files,in which way the deployment efficiency can be improved.Deployment data management system is proposed to achieve data synchronization and perform installation configuration file output function.System development framework and related technologies are introduced.System functions are planed through needs analysis.Main modules are designed and implemented in details.Test results show that the current system can be applied in integrated environments as a general tool.
deployment data;data synchronization;Web service;XML
TP311
:A
:1674-5590(2014)08-0031-05
2014-01-06;
:2014-03-02
中央高?;究蒲袠I(yè)務(wù)費(fèi)專(zhuān)項(xiàng)資金(ZXH2012D003)
郭學(xué)英(1983-),女,河北邯鄲人,助理實(shí)驗(yàn)師,碩士,研究方向?yàn)樾畔⑾到y(tǒng)管理、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù).