王德建
(郴州職業(yè)技術(shù)學(xué)院,湖南 郴州 423000)
伴隨著信息技術(shù)的發(fā)展以及軟硬件條件的不斷提高,傳統(tǒng)的面向功能和面向工程的軟件架構(gòu)受到諸多挑戰(zhàn),如更為先進(jìn)的軟件工程管理模式、日趨優(yōu)異的軟件開(kāi)發(fā)平臺(tái)和不斷人性化的開(kāi)發(fā)工具,系統(tǒng)越來(lái)越不能適應(yīng)日新月異的變化和不斷增長(zhǎng)的業(yè)務(wù)需求。而一般的企業(yè)應(yīng)用整合EAI(Enterprise Application Integration)[1]解決方案,在實(shí)施過(guò)程中有較長(zhǎng)的實(shí)施周期,對(duì)于響應(yīng)速度要求較高的信息系統(tǒng)而言,顯然不夠完美,從而影響到?jīng)Q策者對(duì)企業(yè)的宏觀決策。在我國(guó)信息現(xiàn)代化發(fā)展進(jìn)程中,信息管理系統(tǒng)所面臨的主要問(wèn)題是“如何高質(zhì)量地整合各個(gè)子系統(tǒng)而又不影響各個(gè)系統(tǒng)的運(yùn)行;如何優(yōu)化系統(tǒng)的總體架構(gòu)和提高代碼的可重用性”。
拋卻傳統(tǒng)觀念,現(xiàn)有的技術(shù)架構(gòu)具有高耦合性,各個(gè)子系統(tǒng)之間具有較強(qiáng)的依賴性,所以基于以上特點(diǎn),課題采用了面向服務(wù)的架構(gòu)SOA(Service Oriented Architecture)[2],該架構(gòu)遵循請(qǐng)求響應(yīng)模式,能夠?qū)Ω鱾€(gè)服務(wù)請(qǐng)求做出迅速響應(yīng)。通過(guò)企業(yè)服務(wù)總線ESB(Enterprise Service Bus)[3]技術(shù),可以實(shí)現(xiàn)對(duì)各個(gè)服務(wù)的快速重構(gòu)、資源重組以及自由擴(kuò)展等。在SOA架構(gòu)中,服務(wù)封裝了具體的某項(xiàng)功能,這樣業(yè)務(wù)流程演變?yōu)閷?duì)各個(gè)服務(wù)的調(diào)用或者各個(gè)服務(wù)的相互組合,使得系統(tǒng)具有更高的靈活性,便于系統(tǒng)的自由擴(kuò)展,而且提高了系統(tǒng)的響應(yīng)速度。本研究基于SOA架構(gòu),應(yīng)用ESB總線系統(tǒng)將各個(gè)高校教材信息管理子系統(tǒng)進(jìn)行整合,實(shí)現(xiàn)了教材資源的數(shù)據(jù)共享,有效解決了系統(tǒng)可擴(kuò)展性難的問(wèn)題,具有一定的應(yīng)用和科研價(jià)值。
SOA(service-oriented architecture),即面向服務(wù)的體系結(jié)構(gòu),通過(guò)將系統(tǒng)或者是應(yīng)用程序的某項(xiàng)功能封裝為標(biāo)準(zhǔn)服務(wù),并且在服務(wù)之間定義接口和一定的標(biāo)準(zhǔn),使其能夠按照一定的功能聯(lián)系起來(lái)。為了達(dá)到這種效果,接口的定義必須標(biāo)準(zhǔn)化,采用第三方或者獨(dú)立的方式來(lái)定義,使得這些服務(wù)能夠兼容不同的軟硬件平臺(tái),并且能夠通過(guò)統(tǒng)一的方法來(lái)實(shí)現(xiàn)不同服務(wù)間的交互[4]。SOA架構(gòu)的整體設(shè)計(jì)思路是將業(yè)務(wù)轉(zhuǎn)化為一種能相互鏈接的服務(wù)或者是可以重復(fù)業(yè)務(wù)任務(wù),而單個(gè)服務(wù)則是提取自系統(tǒng)原有的功能,是面向?qū)ο髽?gòu)建的。
ESB(Enterprise Service Bus),即企業(yè)服務(wù)總線,是一種體系結(jié)構(gòu)模式,它的出現(xiàn)是伴隨著傳統(tǒng)的中間件技術(shù)、XML標(biāo)準(zhǔn)文檔和Web服務(wù)技術(shù)出現(xiàn)。ESB的出現(xiàn)將很多中間件技術(shù)做出了規(guī)范,將網(wǎng)絡(luò)中各個(gè)神經(jīng)節(jié)點(diǎn)構(gòu)造成系統(tǒng)。由于對(duì)相關(guān)的技術(shù)標(biāo)準(zhǔn)進(jìn)行了規(guī)范,所以在實(shí)現(xiàn)系統(tǒng)的差異性和共同協(xié)調(diào)完成系統(tǒng)運(yùn)作方面具有無(wú)可比擬的優(yōu)勢(shì),能夠?qū)崿F(xiàn)不同系統(tǒng)間互相協(xié)作運(yùn)行,實(shí)現(xiàn)不同服務(wù)之間的通信和整合。
ESB技術(shù)標(biāo)準(zhǔn)的問(wèn)世,使得各個(gè)不同系統(tǒng)之間的差異得以被屏蔽,所以對(duì)于服務(wù)來(lái)說(shuō)是透明的,類似于計(jì)算機(jī)系統(tǒng)的總線結(jié)構(gòu),集成了異構(gòu)的信息系統(tǒng),除此之外,ESB還具有類似計(jì)算機(jī)總線結(jié)構(gòu)的其它特點(diǎn),如高速大容量的傳輸速度、復(fù)雜數(shù)據(jù)的轉(zhuǎn)換,并且兼具了消息的路由和控制管理等功能,它采用了標(biāo)準(zhǔn)化的接口,極具擴(kuò)展性?,F(xiàn)在越來(lái)越多的企業(yè)和高校在整合信息管理系統(tǒng)時(shí)都部署了ESB總線結(jié)構(gòu)。
Web Services能夠使不同的應(yīng)用實(shí)現(xiàn)為web應(yīng)用程序,是SOA架構(gòu)的主要實(shí)現(xiàn)方法。SOA與Web Services所要解決的問(wèn)題不一樣,所描述的也不是同一層次的問(wèn)題。SOA主要是架構(gòu)模式,是一種解決方案,而Web Services則是從技術(shù)途徑對(duì)框架的實(shí)現(xiàn),是一種技術(shù)手段。在SOA框架中,僅僅勾畫(huà)了服務(wù)概念,以及服務(wù)的作用及與應(yīng)用和其他服務(wù)的交互方式,沒(méi)有對(duì)具體的實(shí)現(xiàn)做出實(shí)現(xiàn)。而Web Services則對(duì)實(shí)現(xiàn)以及相關(guān)技術(shù)細(xì)節(jié)做了詳細(xì)的說(shuō)明。從實(shí)現(xiàn)環(huán)節(jié)來(lái)講,SOA模型的實(shí)現(xiàn)是通過(guò)HTTP調(diào)用業(yè)務(wù)對(duì)象執(zhí)行遠(yuǎn)程功能調(diào)用的一種web服務(wù)模型[5]。
如圖1所示為Web Services的協(xié)議棧以及構(gòu)成層次。
圖1 Web Services協(xié)議
其中,Web Services主要利用HTTP和SOAP協(xié)議在web上傳輸數(shù)據(jù),XML和HTTP協(xié)議是其基礎(chǔ),其中XML提供了一種跨平臺(tái)和跨語(yǔ)言環(huán)境編程的語(yǔ)言。除此之外,其協(xié)議棧還包括UDDI(一種目錄服務(wù),用它可以實(shí)現(xiàn)對(duì)web services的注冊(cè)和查找)和WSDL(一種網(wǎng)絡(luò)描述語(yǔ)言,負(fù)責(zé)對(duì)web services的描述)。
面對(duì)各個(gè)高校錯(cuò)綜復(fù)雜的子系統(tǒng),在不修改原有系統(tǒng)基本功能的前提下,將其封裝成Web服務(wù)對(duì)外發(fā)布,由其它的服務(wù)或者應(yīng)用進(jìn)行調(diào)用,有效解決了各個(gè)高校的應(yīng)用請(qǐng)求。SOA架構(gòu)為信息資源的集成提供了技術(shù)途徑,圖2所示為高校教材信息管理系統(tǒng)的集成框架圖。
圖2 基于SOA架構(gòu)的高校教材信息管理系統(tǒng)集成示意圖
系統(tǒng)將各個(gè)高校的子系統(tǒng)或者是功能單元封裝成統(tǒng)一的Web Services服務(wù)對(duì)外發(fā)布,同時(shí)把服務(wù)的描述文檔WSDL映射到UDDI數(shù)據(jù)庫(kù)中,在UDDI注冊(cè)中心對(duì)各個(gè)服務(wù)進(jìn)行注冊(cè),同時(shí)定義各自資源系統(tǒng)的Web服務(wù)接口描述WSDL文檔和UDDI文檔。
系統(tǒng)結(jié)構(gòu)基于SOA架構(gòu)思想,根據(jù)SOA的分層設(shè)計(jì)思想,在設(shè)計(jì)過(guò)程中把系統(tǒng)的架構(gòu)分為系統(tǒng)數(shù)據(jù)庫(kù)層、數(shù)據(jù)訪問(wèn)組件層、業(yè)務(wù)服務(wù)層、服務(wù)總線層和客戶端層。
圖3 基于SOA/ESB的教材信息管理系統(tǒng)總體架構(gòu)圖
通過(guò)應(yīng)用層,用戶除了在實(shí)現(xiàn)基本功能的同時(shí),還能夠很方便地實(shí)現(xiàn)和系統(tǒng)間的交互,良好的用戶體驗(yàn)?zāi)軌驇椭脩舾玫厥褂孟到y(tǒng)。通過(guò)應(yīng)用層界面入口,用戶能夠調(diào)用用戶層次的理解來(lái)實(shí)現(xiàn)相關(guān)服務(wù),而不用去理解服務(wù)的具體封裝,是從技術(shù)到管理方向的過(guò)渡,方便了業(yè)務(wù)系統(tǒng)人員的使用和對(duì)系統(tǒng)的管理。
業(yè)務(wù)總線層主要實(shí)現(xiàn)對(duì)服務(wù)接口的標(biāo)準(zhǔn)化,其中該功能層主要實(shí)現(xiàn)以下功能:實(shí)現(xiàn)對(duì)用戶請(qǐng)求的處理、業(yè)務(wù)處理、服務(wù)處理、安全管理。
本層是系統(tǒng)的核心部分,負(fù)責(zé)將各個(gè)子系統(tǒng)以及老系統(tǒng)的集成,主要解決對(duì)系統(tǒng)中各個(gè)請(qǐng)求的業(yè)務(wù)邏輯控制和管理。通過(guò)對(duì)系統(tǒng)進(jìn)行構(gòu)架使得整合后的系統(tǒng)具有清晰便捷的架構(gòu)和粒度適中劃分能夠解決業(yè)務(wù)層的重要難題。
在業(yè)務(wù)系統(tǒng)的整合以及系統(tǒng)的建模過(guò)程中需要重點(diǎn)解決的問(wèn)題就是如何對(duì)系統(tǒng)進(jìn)行建模,所涉及的就是對(duì)服務(wù)業(yè)務(wù)流程進(jìn)行粒度的劃分,主要有粗細(xì)粒度之分,粗粒度所涉及的服務(wù)和業(yè)務(wù)流程較多,適合封裝接口之后直接供外部調(diào)用,而細(xì)粒度具有“精細(xì)”的業(yè)務(wù)流程,一般需要對(duì)多個(gè)服務(wù)進(jìn)行組合使用才能實(shí)現(xiàn)某一業(yè)務(wù)的功能。
數(shù)據(jù)訪問(wèn)層是為解決業(yè)務(wù)層和數(shù)據(jù)層之間的交互而設(shè)定的,通過(guò)封裝對(duì)數(shù)據(jù)源數(shù)據(jù)的操作使得業(yè)務(wù)層和數(shù)據(jù)層之間分離,這樣既保證了數(shù)據(jù)的安全性,很大程度上也降低了系統(tǒng)的耦合性,為系統(tǒng)提供了穩(wěn)定安全的數(shù)據(jù)訪問(wèn)機(jī)制。數(shù)據(jù)訪問(wèn)層通過(guò)對(duì)數(shù)據(jù)源的直接操作屏蔽了其它層與數(shù)據(jù)源的直接交換,保證了數(shù)據(jù)的安全性。數(shù)據(jù)訪問(wèn)層通過(guò)配置一些參數(shù),將對(duì)數(shù)據(jù)的操作封裝為具體的方法接口提供給上層接口,供其使用。
教材信息管理系統(tǒng)根據(jù)其業(yè)務(wù)流程和功能將功能進(jìn)行拆解,劃分服務(wù)粒度。在具體的業(yè)務(wù)操作中,所有的服務(wù)由總線結(jié)構(gòu)負(fù)責(zé)調(diào)度,來(lái)實(shí)現(xiàn)面向服務(wù)的架構(gòu),同時(shí)ESB總線結(jié)構(gòu)也負(fù)責(zé)對(duì)SOA服務(wù)的生命周期進(jìn)行管理,對(duì)超時(shí)或者其它原因?qū)е碌姆?wù)錯(cuò)誤終止對(duì)該服務(wù)調(diào)用者提供服務(wù)。業(yè)務(wù)組件提供了業(yè)務(wù)流程需要的各種服務(wù),流程引擎提供應(yīng)用的流程支持。在后續(xù)的開(kāi)發(fā)過(guò)程中,業(yè)務(wù)的擴(kuò)展可通過(guò)業(yè)務(wù)組件和流程引擎來(lái)完成。
在ESB服務(wù)總線中,采用了微軟的BizTalk Server來(lái)實(shí)現(xiàn),它不僅能夠?qū)崿F(xiàn)對(duì)異構(gòu)消息的處理,包括對(duì)消息的映射處理等,還能實(shí)現(xiàn)對(duì)業(yè)務(wù)流程和服務(wù)的發(fā)布管理,實(shí)現(xiàn)對(duì)系統(tǒng)的無(wú)縫集成。
從整合方式方面來(lái)講,傳統(tǒng)的方式是將各個(gè)應(yīng)用系統(tǒng)通過(guò)開(kāi)發(fā)不同應(yīng)用間的接口來(lái)將各個(gè)不同的信管系統(tǒng)進(jìn)行連接,而本研究在整合過(guò)程中基于SOA思想,按照服務(wù)的粒度來(lái)進(jìn)行集成,在不同的信管系統(tǒng)之間采用了適配器的方式簡(jiǎn)化了這個(gè)流程,方便簡(jiǎn)潔。
在實(shí)現(xiàn)功能方面,傳統(tǒng)的框架最大的缺點(diǎn)就是具有高耦合性,系統(tǒng)之間依賴性強(qiáng),而且在擴(kuò)展性方面具有較差的表現(xiàn)。而基于SOA的架構(gòu)解決了以上問(wèn)題,并且傳統(tǒng)的集成方案在開(kāi)發(fā)過(guò)程中是以組件甚至是更多的硬件來(lái)實(shí)現(xiàn)基本功能,本解決方案采取的基于服務(wù)的集成方案,在業(yè)務(wù)組合方面具有優(yōu)勢(shì),提高效率、降低成本、實(shí)現(xiàn)業(yè)務(wù)靈活性與創(chuàng)新性。
本研究基于SOA架構(gòu),應(yīng)用ESB總線系統(tǒng)將各個(gè)高校教材信息管理子系統(tǒng)進(jìn)行整合,在實(shí)現(xiàn)信息管理的同時(shí),還實(shí)現(xiàn)了教材資源的數(shù)據(jù)共享,有效解決了系統(tǒng)可擴(kuò)展性難的問(wèn)題。其次將各個(gè)高校的教材信息整合在一起,將各個(gè)高校教材信息的動(dòng)態(tài)情況列入規(guī)劃,如在教材收支平衡方面和教材選擇方面做出決策則具有更實(shí)際的意義。
本研究在實(shí)現(xiàn)了信息資源共享的同時(shí)還存在一些問(wèn)題有待更好地完善。如本研究對(duì)系統(tǒng)尤其是異構(gòu)系統(tǒng)的互聯(lián)整合過(guò)程中的安全性問(wèn)題的研究有待加強(qiáng),對(duì)中間件的服務(wù)性能的優(yōu)化還有待提高。
[1]鄒江,楊璐,孫瑞志.基于SOA的企業(yè)異構(gòu)資源的整合研究.計(jì)算機(jī)應(yīng)用與軟件,2010,27(1):51-53,123.
[2]劉錚.基于SOA架構(gòu)的WEB2.0應(yīng)用系統(tǒng)的研究與應(yīng)用.碩士.北京工業(yè)大學(xué).2009.
[3]杜攀,徐進(jìn).SOA體系下細(xì)粒度組件服務(wù)整合的探討.計(jì)算機(jī)應(yīng)用.2006,26(3):699-702.
[4]Tan He,Bin Tang,Leqiu Qian Study of SOA Component Dynamic Scheduling Based on Mobile Agent Coalitio,The Fourth International Conference on Electronic Business.ICEB 2004:l 193.1196
[5]IBM.Patterns:Service-Oriented Architecture and Web Services.(s9246303)2004,15-20