趙芳云
ZHAO Fang-yun
(貴陽學(xué)院,貴陽 550001)
隨著現(xiàn)代通信技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和高校信息化的飛速發(fā)展,高校信息化建設(shè)正在向全面數(shù)字化的方向邁進(jìn)。許多高校提出了校園信息化統(tǒng)一平臺(tái)的方案,以構(gòu)成統(tǒng)一的用戶管理、統(tǒng)一的資源管理和統(tǒng)一的權(quán)限控制。通過該平臺(tái),管理人員能高效、規(guī)范地進(jìn)行管理,教師能及時(shí)、快捷地進(jìn)行教學(xué),并隨時(shí)和學(xué)生保持一定的互動(dòng),學(xué)生能方便、準(zhǔn)確地學(xué)習(xí)和應(yīng)用先進(jìn)的科學(xué)知識(shí),從而提高教學(xué)質(zhì)量、辦學(xué)水平和辦學(xué)效率[1]。
由于傳統(tǒng)的軟件開發(fā)使用的平臺(tái)、開發(fā)工具、操作系統(tǒng)在結(jié)構(gòu)上的偶合,使得過去校園內(nèi)位置散的各種管理系統(tǒng)如:科研管理系統(tǒng)、教學(xué)輔助系統(tǒng)、財(cái)務(wù)管理系統(tǒng)等逐漸形成了“信息孤島”。為了實(shí)現(xiàn)全校的的管理過程自動(dòng)化,許多高校投入了大量的人力和財(cái)力來進(jìn)行系統(tǒng)集成,許多高校和企業(yè)一樣,采用傳統(tǒng)的企業(yè)應(yīng)用集成(enterprise application integration,EAI)解決方案,EAI有4種類型:數(shù)據(jù)集成,業(yè)務(wù)邏輯集成,函數(shù)或方法集成,用戶界面集成[3]。EAI采用緊密耦合的集成方式,忽視了流程設(shè)計(jì),不利于企業(yè)流程重組和調(diào)整,缺乏可擴(kuò)展性和靈活,難以適應(yīng)現(xiàn)代業(yè)務(wù)快速變化的需求,因而不能實(shí)現(xiàn)必要的靈活性和適應(yīng)性[4]。隨著高校的發(fā)展,學(xué)校可不希望扔掉他們重來,重來的代價(jià)太高,也顯得很不科學(xué),EAI應(yīng)用要求新的軟件系統(tǒng)不再是從底層做起,而是依據(jù)高校邏輯需求重新組織己有的數(shù)據(jù)存儲(chǔ),將現(xiàn)有的數(shù)據(jù)和事務(wù)通過新的渠道呈現(xiàn)給廣大用戶[5]。
隨著計(jì)算機(jī)技術(shù)發(fā)展,Web Service為實(shí)現(xiàn)EAI提供了一種全新的機(jī)制,它為本地和遠(yuǎn)程服務(wù)的定義、發(fā)布和訪問提供了一整套開發(fā)標(biāo)準(zhǔn)的方法。它能徹底地改變傳統(tǒng)EAI中點(diǎn)對(duì)點(diǎn)的集成方式。本文采用基于Web Service的面向服務(wù)的體系結(jié)構(gòu)(service oriented architecture,SOA)的軟件設(shè)計(jì)方法能夠?qū)Ψ?wù)流程化的組織來構(gòu)建分布式系統(tǒng),在不改變學(xué)校各種應(yīng)用底層架構(gòu)的基礎(chǔ)上,可以很好地解決上述問題,它支持在中間層以服務(wù)模塊方式實(shí)現(xiàn)的解決方案,當(dāng)多個(gè)運(yùn)行在不同平臺(tái)和技術(shù)下的應(yīng)用程序需要相互通訊時(shí),這種SOA結(jié)構(gòu)尤其適用。
SOA是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元通過它們之間定義良好的接口和契約聯(lián)系起來,這些功能單元就稱之為服務(wù);而接口是采用中立的方式進(jìn)行定義的,它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言,這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一、通用的方式進(jìn)行交互。
通過采用SOA框架,將傳統(tǒng)校園信息平臺(tái)的集成模式轉(zhuǎn)變?yōu)閼?yīng)用系統(tǒng)之間基于標(biāo)準(zhǔn)協(xié)議對(duì)話的模式,使應(yīng)用系統(tǒng)可以通過校園網(wǎng)進(jìn)行數(shù)據(jù)、信息及服務(wù)的交換。通過采用Web Service,服務(wù)的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)被封裝在通過SOAP/WSDL傳遞的信息流之中,解決了異構(gòu)應(yīng)用系統(tǒng)之間的信息交換和集成的問題。克服了傳統(tǒng)校園信息平臺(tái)建設(shè)模式集成困難、結(jié)構(gòu)復(fù)雜、兼容性差、廠商依賴性大、成本過高等缺陷。
對(duì)于一個(gè)學(xué)校來說,選擇SOA是非常關(guān)鍵的,因?yàn)閷?shí)施SOA策略不僅僅是開發(fā)一個(gè)小軟件那么簡單,它涉及學(xué)校的方方面面,是對(duì)業(yè)務(wù)流程和所有信息系統(tǒng)的整合,涉及將來若干年的業(yè)務(wù)模式、部門之間的協(xié)作、系統(tǒng)的整合。目前,大多數(shù)單位實(shí)現(xiàn)了單位內(nèi)部信息資源的集成應(yīng)用,大多采用直接建立系統(tǒng)之間連接的方法,即開發(fā)應(yīng)用程序?qū)崿F(xiàn)信息共享和集成,應(yīng)用系統(tǒng)之間需要清楚對(duì)方的結(jié)構(gòu),然后通過系統(tǒng)開發(fā)獲得需要的數(shù)據(jù)信息,系統(tǒng)之間聯(lián)系過于緊密,容易造成“牽一發(fā)而動(dòng)全身”的局面。有的用戶干脆全部重新開發(fā)新的信息系統(tǒng),這樣暫時(shí)或者局部解決了問題,但可能又會(huì)造成新的問題,同時(shí)資金、人力投入和工作量非常巨人,效果并不理想。要追求最大程度的信息集成與共享,就要考慮基于SOA的信息資源整合[6,7]。
當(dāng)數(shù)據(jù)分布程度非常高時(shí),使用SOA將操作數(shù)據(jù)的代碼放置在與數(shù)據(jù)較近的位置,然后將其封裝為服務(wù),以供在任何地方進(jìn)行訪問
當(dāng)希望功能具有高可用性時(shí),使用SOA將功能作為服務(wù)部署,在提供的多個(gè)冗余程序中,若其中一些不可使用,可以使用其他的對(duì)等服務(wù)。
當(dāng)應(yīng)用程序的各個(gè)部分需要獨(dú)立開發(fā)、維護(hù)和更新時(shí),使用SOA只要保持各個(gè)部分之間的接口,每個(gè)團(tuán)隊(duì)就可以使用其喜愛的技術(shù)按照自己的計(jì)劃實(shí)現(xiàn)各自的部分。
當(dāng)多個(gè)應(yīng)用程序需要重用功能和數(shù)據(jù)時(shí),使用SOA共享的代碼及重用功能,可使各個(gè)獨(dú)立應(yīng)用程序重用一組共享數(shù)據(jù),而無需將數(shù)據(jù)分發(fā)給所有應(yīng)用程序[8]。
對(duì)于一個(gè)系統(tǒng),能用簡單的SOA解決的,就不必選擇復(fù)雜的SOA。
對(duì)基于SOA的可擴(kuò)展校信息平臺(tái)實(shí)現(xiàn)基于“把握趨勢、兼顧現(xiàn)實(shí)、統(tǒng)一規(guī)劃、逐步實(shí)現(xiàn)”的方針。系統(tǒng)整體采用SOA來實(shí)現(xiàn)各個(gè)子系統(tǒng)之間的通信;在各個(gè)子系統(tǒng)中,可以保持面向?qū)ο蟮脑O(shè)計(jì)來實(shí)現(xiàn)模塊功能。這樣,一方面使各子系統(tǒng)的業(yè)務(wù)部門能緊密聯(lián)系,增強(qiáng)各子系統(tǒng)的安全性和穩(wěn)定性,合理利用原有資源;另一方面可以逐步實(shí)現(xiàn)整體向面向服務(wù)體系結(jié)構(gòu)的過渡,不至于操之過急,對(duì)日常工作造成影響[9]。
各模塊具體開發(fā)實(shí)現(xiàn)過程主要包括4個(gè)部分:首先在SOA下建立Web服務(wù)應(yīng)用程序,其中包括建立Web服務(wù)框架、創(chuàng)建Web服務(wù)的服務(wù)接口、實(shí)現(xiàn)數(shù)據(jù)連接;其次要建立Web服務(wù)的客;戶端應(yīng)用程序;再次是數(shù)據(jù)庫的設(shè)計(jì);最后實(shí)現(xiàn)系統(tǒng)調(diào)試與應(yīng)用。根據(jù)貴陽學(xué)院實(shí)際情況與業(yè)務(wù)要求,結(jié)合SOA思想與Web服務(wù)實(shí)現(xiàn)技術(shù),設(shè)計(jì)該校信息化平臺(tái)系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 基于SOA的學(xué)校信息化平臺(tái)系統(tǒng)結(jié)構(gòu)
校園信息平臺(tái)的實(shí)現(xiàn)很少從全新的項(xiàng)目開始,校園信息 平臺(tái)環(huán)境的創(chuàng)建幾乎總需要涉及到原有遺留系統(tǒng)的集成問題。在基于SOA的校園信息平臺(tái)的體系結(jié)構(gòu)中,集成的方法是將它們分解成服務(wù)、操作、業(yè)務(wù)流程和業(yè)務(wù)規(guī)則,并根據(jù)原有系統(tǒng)提供的功能把它分解成多個(gè)Web服務(wù),每個(gè)服務(wù)都用Web Service技術(shù)進(jìn)行封裝。從服務(wù)使用者的視角去看,只能看到與一個(gè)Web服務(wù)進(jìn)行交互,而Web服務(wù)背后是使用什么樣的技術(shù)細(xì)節(jié)是無需知道的,這樣可以屏蔽系統(tǒng)的實(shí)現(xiàn)技術(shù),以標(biāo)準(zhǔn)方式將它們集成在一起。
校園信息平臺(tái)應(yīng)用系統(tǒng)之間的交互、對(duì)話和連接功能主要通過PSB來實(shí)現(xiàn),它主要由 2部分組成:消息路由器和一系列Web服務(wù)靜態(tài)客戶樁程序。
應(yīng)用系統(tǒng)提供的通常是細(xì)粒度的 API 接口,這與SOA思想中服務(wù)單元粗粒度原則相矛盾,同時(shí)難以滿足校園信息平臺(tái)高可用性、擴(kuò)展性、靈活性的需求。因此,必須通過服務(wù)引擎重新組合使應(yīng)用系統(tǒng)暴露具有一定粒度的服務(wù)接口。
開發(fā)工具為Web服務(wù)的開發(fā)工具采用.NET,使應(yīng)用程序具備跨語言、跨平臺(tái)的能力。數(shù)據(jù)庫采用SQLServer 2005。下面以辦公系統(tǒng)SOA的簡單實(shí)現(xiàn)為例,介紹如構(gòu)建SOA服務(wù),這里采用了基于Apache的Axis2Java編程技術(shù)來進(jìn)行實(shí)現(xiàn)。它的主要實(shí)現(xiàn)過程為:
1)創(chuàng)建實(shí)現(xiàn)服務(wù)的類。
2)創(chuàng)建Services.xml來解析web Service。
3)將其打包成一個(gè)*.aar文檔(Axisrchive)。
4)部署web Service。
首先先實(shí)現(xiàn)一個(gè)評(píng)估服務(wù)類(Evaluate Service),碼如下:


然后打包成為EvaluateService.aar文件,就可以為外界提供評(píng)估服務(wù)了。
例如建立一個(gè)TestEvaluteClient類檢驗(yàn)一下該服務(wù):

目前,基于SOA的校園信息平臺(tái)解決方案已經(jīng)在貴陽學(xué)院的校園信息建設(shè)中得到了初步應(yīng)用。在實(shí)際應(yīng)用過程中,該架構(gòu)主要表現(xiàn)出以下優(yōu)點(diǎn):
1)擺脫了面向技術(shù)的解決方案的束縛,朝著面向服務(wù)的方向發(fā)展,與其他架構(gòu)相比更具彈性,能夠更快地響應(yīng)校園應(yīng)用和需求的變化,滿足未來學(xué)校的業(yè)務(wù)發(fā)展需求。
2)較好地集成了原有應(yīng)用。無須重構(gòu)原有系統(tǒng),只須將原有應(yīng)用系統(tǒng)封裝成標(biāo)準(zhǔn)的服務(wù)組件,通過這些服務(wù)的接口和名稱就可以訪問或合并構(gòu)建在不同的機(jī)器上、運(yùn)行在不同操作系統(tǒng)中的遺留系統(tǒng),有效地保護(hù)了原有資本。
3)服務(wù)設(shè)計(jì)松散、位置透明,服務(wù)協(xié)議是獨(dú)立的,不必與特定的系統(tǒng)或網(wǎng)絡(luò)相連接,服務(wù)間的通信框架使服務(wù)重用成為可能。
4)統(tǒng)一了業(yè)務(wù)架構(gòu),可擴(kuò)展性大大增強(qiáng)。在校園信息平臺(tái)的基礎(chǔ)架構(gòu)上,不同應(yīng)用系統(tǒng)之間的開發(fā)和部署將變得更加一致。現(xiàn)有組件、新開發(fā)組件和從廠商購買的組件可以合并在一個(gè)框架內(nèi)。
5)通過采用基于SOA的校園信息平臺(tái)結(jié)構(gòu),開發(fā)人員可以把精力集中于服務(wù)流程的構(gòu)建和數(shù)據(jù)標(biāo)準(zhǔn)的制定,而無須事先關(guān)注有關(guān)集成或應(yīng)用程序的底層實(shí)現(xiàn)問題,使學(xué)校擺脫了對(duì)具體廠商和具體技術(shù)的依賴,加快了系統(tǒng)集成和開發(fā)的速度,降低了信息平臺(tái)園的建設(shè)成本。
6)基于SOA構(gòu)建可擴(kuò)展的校園信息平臺(tái),與傳統(tǒng)的校園信息平臺(tái)在各模塊的功能上區(qū)別不是很大,它的側(cè)重點(diǎn)在于該系統(tǒng)的實(shí)時(shí)性、安全性和可擴(kuò)展性。當(dāng)某個(gè)部門業(yè)務(wù)變化需要更改內(nèi)部系統(tǒng)時(shí),只要保證使用SOA的通用接口與整個(gè)系統(tǒng)的通信,就不會(huì)影響到整個(gè)系統(tǒng)的運(yùn)行。因此子系統(tǒng)在對(duì)內(nèi)部系統(tǒng)改造時(shí)的顧慮大大減小,新系統(tǒng)的安全性也得到保障。另外,當(dāng)系統(tǒng)需要擴(kuò)展業(yè)務(wù)時(shí),子系統(tǒng)可以很輕松地增加到校園信息平臺(tái)中來,實(shí)現(xiàn)與其他子系統(tǒng)之間良好的通信。在以Web服務(wù)為前提的情況下,運(yùn)用SOA可以實(shí)現(xiàn)安全快捷的消息傳輸,使各業(yè)務(wù)部門能夠靈活變更,任意擴(kuò)展服務(wù),保證整個(gè)系統(tǒng)協(xié)調(diào)工作不受影響,從而提高整個(gè)校園信息平臺(tái)的功能。
傳統(tǒng)EAI技術(shù)點(diǎn)對(duì)點(diǎn)的集成方式不能靈活、低代價(jià)地實(shí)現(xiàn)異構(gòu)系統(tǒng)的集成,難以適應(yīng)企業(yè)快速的業(yè)務(wù)變化需求。SOA架構(gòu)提供了一種松耦合的服務(wù)模式,大大降低了應(yīng)用系統(tǒng)的集成和維護(hù)難度,Web Service技術(shù),能夠去除原來處在不同平臺(tái),使用不同對(duì)象技術(shù)的CORBA,DCOM,EJB構(gòu)架的實(shí)現(xiàn)差異,將其統(tǒng)一在一個(gè)Web Service技術(shù)層面上,這也使得它成為現(xiàn)階段構(gòu)建基于SOA架構(gòu)集成系統(tǒng)的重要手段。然而Web Service技術(shù)現(xiàn)在尚未成熟,應(yīng)該進(jìn)一步針對(duì)面向服務(wù)的SOA體系架構(gòu)的其他實(shí)現(xiàn)技術(shù),進(jìn)行研究和探索,比較其各自的優(yōu)勢和適用范圍,在校園網(wǎng)信息平臺(tái)的構(gòu)建中,能夠根據(jù)原有信息系統(tǒng)的實(shí)際情況,靈活選用不同的SOA技術(shù)手段,高效率地實(shí)現(xiàn)校園信息集成。
[1]楊勇,楊薇薇.Web服務(wù)的一種通用集成模型的研究[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2004,32(1):44-46.
[2]吳渝.基于EAI的企業(yè)數(shù)據(jù)集成技術(shù)的研究[J].微計(jì)算機(jī)信息,2006,22(15):32-34.
[3]李建華,陳松喬.面向服務(wù)架構(gòu)參考模型及應(yīng)用研究[J].計(jì)算機(jī)工程,2006,32(20):100-102.
[4]OASIS SOA Reference Model TC.Mapping of W3C Webservice Architecture Work to SOA RM work [R].USA,2005.
[5]Hammer K.Web Services and Enterprise Integration[J].EAI Journal,2001,11(3):12-15.
[6]Werawarana S.Web services platform architechcture SOAP,WSDL,WS-Policy,WS-Addressing,WS-BPEL,WSReliable messaging and more[M].New Jercy:Prentice Hall,2005:101-120.
[7]柴曉路.Web服務(wù)架構(gòu)與開放互操作技術(shù)[M].北京:清華大學(xué)出版社,2002.
[8]田林,于建軍,王建白,等. Web Service技術(shù)在教育資源整合中的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,(12):2136-2144.
[9]吳敏,劉小強(qiáng),陳家訓(xùn).基于Web服務(wù)的高校管理系統(tǒng)集成框架[J].東華大學(xué)學(xué)報(bào),2004,(2):28-32.