摘要:為解決校園網(wǎng)網(wǎng)格應(yīng)用中軟件集成問題,提出了通過基于XML的Java中間件來實現(xiàn)校園網(wǎng)內(nèi)各部門間數(shù)據(jù)的轉(zhuǎn)換與匹配。首先通過Java中間件對校園網(wǎng)內(nèi)舊有異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù)進行XML文檔化轉(zhuǎn)換;在此基礎(chǔ)上給出一套基于開放源代碼的J2EE架構(gòu)來組建以ESB為核心的軟件集成系統(tǒng)以實現(xiàn)校園網(wǎng)格應(yīng)用的基礎(chǔ)架構(gòu);最后以應(yīng)用實例的形式在這一架構(gòu)下完成相應(yīng)網(wǎng)格應(yīng)用,并進行了相關(guān)性能測試,驗證了其有效性和優(yōu)越性。
關(guān)鍵詞:可擴展標記語言;網(wǎng)格;Java中間件
中圖分類號:TP393.02文獻標志碼:A
文章編號:1001-3695(2007)12-0144-02
新的形式下,國內(nèi)高校為順應(yīng)時代發(fā)展的需要,紛紛構(gòu)筑自己的數(shù)字化校園計劃。而數(shù)字化校園的構(gòu)建就其宏觀而言,是為了使學校在管理上實現(xiàn)電子政務(wù),在教學上實現(xiàn)教學資源的共享,在校園金融消費上實現(xiàn)網(wǎng)上金額消費;就其微觀而言,它是一個系統(tǒng)、全面的工程,各類數(shù)據(jù)必須被組織成為一個有機的統(tǒng)一體,即必須實現(xiàn)數(shù)據(jù)集成與軟件集成。在眾多工作中,實現(xiàn)對各異構(gòu)系統(tǒng)中數(shù)據(jù)的共享與集成理所當然地成了該項工程的核心工作與重中之重。
正是基于上述需求,筆者提出先通過Java中間件[1]對校園內(nèi)舊有異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù)進行XML文檔化轉(zhuǎn)換,然后給出一套基于開放源代碼的Mule ESB的J2EE架構(gòu)[2]來組建SOA的軟件集成系統(tǒng)以最終實現(xiàn)校園網(wǎng)格應(yīng)用。
1XML的數(shù)據(jù)交換文檔轉(zhuǎn)換
由于XML是具有很強的數(shù)據(jù)描述能力的標記語言,它提供了豐富的數(shù)據(jù)構(gòu)造和解析方法,能夠適應(yīng)多樣且不斷變化的網(wǎng)絡(luò)應(yīng)用環(huán)境,被廣泛用于異構(gòu)系統(tǒng)間數(shù)據(jù)的交換和互操作應(yīng)用中。筆者主張將校園內(nèi)各部門的數(shù)據(jù)廣泛地進行轉(zhuǎn)換后以XML文檔方式加以表達。
數(shù)據(jù)轉(zhuǎn)換可以分為三個步驟進行:先將源XML數(shù)據(jù)轉(zhuǎn)換為源LCG (lexieal conceptual graph);根據(jù)數(shù)據(jù)轉(zhuǎn)換的需求,通過轉(zhuǎn)換規(guī)則和本體庫將源LCG轉(zhuǎn)換為目標LCG;最后將目標LCG重新構(gòu)造成XML文檔,由接入服務(wù)部件發(fā)送給目標系統(tǒng)。在此步驟中,數(shù)據(jù)交換中間件構(gòu)造如圖1所示。
下面是一個簡單的XML文檔與LCG的對應(yīng)關(guān)系。設(shè)教務(wù)處教學管理系統(tǒng)A中數(shù)據(jù)的XML文檔如下:
〈學生〉
〈學號〉2003100101〈/學號〉
〈姓名〉李四〈/姓名〉
……
〈計算機過級〉75〈/計算機過級〉
〈英語過級〉63〈/英語過級〉
……
〈/學生〉
其對應(yīng)的LCG圖如圖2所示。同時XDDX可以自動構(gòu)建教務(wù)處教學管理系統(tǒng)A的ontology概念關(guān)系如下:
attribute(學生,學號)
value(學號,2003100101)
attribute(學生,姓名)
value(姓名,李四)
……
假設(shè)有學生處管理系統(tǒng)B的ontology為
attribute(student,學號)
attribute(student,是否獲取畢業(yè)證)
……
則教務(wù)處教學管理系統(tǒng)A與學生處管理應(yīng)用系統(tǒng)B間的轉(zhuǎn)換規(guī)則的ontology為
synonym(A:學號,B:學號)//通過XML的名字空間區(qū)分學號
snonym(學生,student)
mp(是否獲取畢業(yè)證,{計算機過級,英語過級,…},{計算機過級>=60,英語過級>=60,…>=60})
根據(jù)以上ontology,獲得學生處管理應(yīng)用系統(tǒng)B的數(shù)據(jù)LCG如圖3所示。
由圖3的LCG可以獲得學生處管理應(yīng)用系統(tǒng)B數(shù)據(jù)的XML表示:
〈student〉
〈學號〉2003100101〈/學號〉
〈是否獲取畢業(yè)證〉.T.〈/是否獲取畢業(yè)證〉
〈/student〉
從而實現(xiàn)了兩部門間數(shù)據(jù)在不同平臺上的轉(zhuǎn)換。
2以ESB為核心的解決方案
傳統(tǒng)的校園網(wǎng)絡(luò)信息整合方式為直接進行應(yīng)用層兩兩互連的方式,該方式下可以使用RPC、RMI、Web services[3]等技術(shù)予以實現(xiàn)。該解決方案下實現(xiàn)N個系統(tǒng)的互連需要n×(n-1)/2個bridge技術(shù),并且需要n×(n-1)/2個domain(每個獨立系統(tǒng)一般都有自已定義的domain)的converter來實現(xiàn)。為維護這些舊有系統(tǒng)的互連或引入新系統(tǒng),需要投入巨大的時間成本并承受相當大的技術(shù)風險。另一種解決方案則是通過一個統(tǒng)一的數(shù)據(jù)倉庫來進行數(shù)據(jù)層集成,如通過WebMethods的數(shù)據(jù)倉庫解決方案等加以完成,此方案會帶來大量舊有系統(tǒng)的數(shù)據(jù)層的重設(shè)計,且集成后的系統(tǒng)性能風險較大。另外,還有一種正在興起的解決方案就是以ESB為核心技術(shù)的SOA解決方案。該方案以成熟的ESB作為基礎(chǔ),而后組織一種以消息流為核心的集成方案。其中的ESB基礎(chǔ)負責關(guān)注更為低層的網(wǎng)絡(luò)交互協(xié)議,開發(fā)者則可更多地關(guān)注各種業(yè)務(wù)流的組織。以這種方式組建的系統(tǒng)具有更好的靈活性和可擴展性,并充分實現(xiàn)軟件復用技術(shù)[4]。當前業(yè)界各大公司,如Sonic、SAP、BEA、IBM等均推出了自己的ESB產(chǎn)品;開源社區(qū)中的Mule與Server-Mix等ESB項目也已發(fā)展得較為成熟。這里所提出的電子商務(wù)的系統(tǒng)就是基于Mule這一J2EE框架下的開源ESB方案來實現(xiàn)的。
基于以上觀點,筆者通過對校園網(wǎng)中現(xiàn)有信息系統(tǒng)功能、技術(shù)框架等進行分析后,將校園網(wǎng)集成環(huán)境用例對象劃分為如下三類,其相互關(guān)系如圖4所示。
1)服務(wù)提供類(S1,S2)元數(shù)據(jù)的提供者或提供某種服務(wù)API,亦可稱之為feed。目前互聯(lián)網(wǎng)上的各類內(nèi)容提供(CP)網(wǎng)站紛紛推出RSS服務(wù),這種RSS就是一種很好的feed。把校園網(wǎng)內(nèi)部的遺留系統(tǒng)(legacy system)作為feed后可以得到充分重用,同時feed可通過開放的協(xié)議進行通信。
2)服務(wù)消費類(C1,C2)通過某種方式找到服務(wù)提供者,并以請求/響應(yīng)這種經(jīng)典pattern與遠程或同一個虛擬機(VM)內(nèi)的服務(wù)提供者通信。服務(wù)消費者可以是一個rich client software,或是Web based application。本文將此類用例對象稱為farm。
3)業(yè)務(wù)組織類(ESB)使用統(tǒng)一的軟件基礎(chǔ)結(jié)構(gòu)ESB來協(xié)調(diào)校園網(wǎng)內(nèi)部各獨立系統(tǒng)(B2B、ERP、C2C、CRM等)的互連與系統(tǒng)之間的消息流轉(zhuǎn);讓校園網(wǎng)外部暴露出服務(wù),接收消費者的SOAP請求,發(fā)送SOAP響應(yīng),向服務(wù)訂閱者(如C2)提供基于OASIS WSN[5]規(guī)范的publish。圖4中,C1先從ESB取得WSDL;然后根據(jù)WSDL的描述向S1發(fā)起一個SOAP請求,ESB接收到SOAP請求后將請求的內(nèi)容轉(zhuǎn)入S1,再將S1處理結(jié)果返回C1,從而完成一個業(yè)務(wù)。
在實際應(yīng)用程序中,前兩類用例有交叉現(xiàn)象。圖5反映了所組建的校園網(wǎng)集成系統(tǒng)的分層結(jié)構(gòu)。
3用JMeter測試SOA系統(tǒng)
這里筆者通過JMeter對上述設(shè)計中基于SOA的校園網(wǎng)格應(yīng)用進行了相關(guān)性能測試,以證明其關(guān)鍵組件如Xfire SOAP engine、mule ESB等的實際工作性能。測試環(huán)境Mule UMO component的配置如下:
〈mule-descriptor name=\"DRPService\" implementation=\"com.sample.DRPServiceImpl\"〉
〈inbound-router〉
〈endpoint address=\"xfire:http://localhost:8080/ services\"/〉
〈/inbound-router〉
〈/mule-descriptor〉
本文的實驗環(huán)境為:以一臺CPU為P4 2.26 GHz、內(nèi)存為1 GB、100 Mbps以太網(wǎng)環(huán)境下的主機為測試服務(wù)器,另一臺相同配置的主機為客戶端。客戶端使用JMeter向DRPService發(fā)送SOAP(每個SOAP消息1 000 Byte以內(nèi),持續(xù)發(fā)送時間20 s)請求。在單用戶與50用戶的不同并發(fā)量下,集成系統(tǒng)中統(tǒng)一用戶認證業(yè)務(wù)性能表現(xiàn)結(jié)果如圖6、7所示。從圖6可以看出,單用戶環(huán)境下,20 s內(nèi)共發(fā)送454個請求,系統(tǒng)吞吐量為1 360個/min。此時響應(yīng)時間偏離較大,主要是因為此時網(wǎng)絡(luò)環(huán)境影響作用得更為明顯。50個用戶并發(fā)情況下,20 s內(nèi)共發(fā)送701個請求,系統(tǒng)吞吐量為2 100個/min,如圖7所示。此時多數(shù)SOAP消息能在3 s內(nèi)較快響應(yīng),能滿足實現(xiàn)應(yīng)用的需要。當然,在實際網(wǎng)絡(luò)環(huán)境中,由于網(wǎng)絡(luò)存在系統(tǒng)響應(yīng)延遲與波動,系統(tǒng)平均響應(yīng)時間會有一定的變化。
4結(jié)束語
本文以Mule ESB為核心,實現(xiàn)了校園網(wǎng)內(nèi)各舊有信息系統(tǒng)的集成和校園網(wǎng)格的相關(guān)應(yīng)用,同時為校園網(wǎng)外部用戶提供Web服務(wù)。一方面提高了學校的網(wǎng)絡(luò)化管理效率,另一方面降低了軟件集成的復雜性與成本,增加了已有軟件的重用性。最后通過實際測試證明了應(yīng)用速度是能夠滿足業(yè)務(wù)需求的。后續(xù)工作中,筆者將對所提出的集成架構(gòu)與WSBEPL[6]的集成與事務(wù)特性進行進一步研究,進一步提升其性能;同時還將在網(wǎng)格的安全性方面展開深入的研究。畢竟一個將投入實際使用的網(wǎng)格系統(tǒng),其安全性才是至關(guān)重要的。
參考文獻:
[1]
周澤華,黃濤,李京.消息中間件管理器的設(shè)計和實現(xiàn)[J].計算機研究與發(fā)展, 2002,39(3):318-323.
[2]蔣雄偉,馬范援.中間件與分布式計算[J].計算機應(yīng)用,2002,22(4): 6-8.
[3]GRAHAM S.Building Web services with JavaTM [M].USA: Sams Publishing,1999:4-22.
[4]MILI H,MILI F,MILI A.Reusing software:issues and research directions[J].IEEE Trans on Software Engineering,1995,21(6):528-562.
[5]HADALIN A, KALER C, HALLAM-BAKER P, et al.Oasis-200401- wss-soap-message-security-1.0.pdf[EB/OL].(2004-04-14). [2006].http://docs.oasis-open.org/wss/2004/01/.
[6]TONY A,F(xiàn)RANCISCO F,HITEST D,et al.Business process execution language for Web services v1.1[EB/OL].[2006].http://www-128.ibm.com/developerworks/library/specification/ws-bpel/.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”