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

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


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

目前,基于SOA的校園信息平臺解決方案已經(jīng)在貴陽學(xué)院的校園信息建設(shè)中得到了初步應(yīng)用。在實際應(yīng)用過程中,該架構(gòu)主要表現(xiàn)出以下優(yōu)點:
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)建在不同的機器上、運行在不同操作系統(tǒng)中的遺留系統(tǒng),有效地保護了原有資本。
3)服務(wù)設(shè)計松散、位置透明,服務(wù)協(xié)議是獨立的,不必與特定的系統(tǒng)或網(wǎng)絡(luò)相連接,服務(wù)間的通信框架使服務(wù)重用成為可能。
4)統(tǒng)一了業(yè)務(wù)架構(gòu),可擴展性大大增強。在校園信息平臺的基礎(chǔ)架構(gòu)上,不同應(yīng)用系統(tǒng)之間的開發(fā)和部署將變得更加一致。現(xiàn)有組件、新開發(fā)組件和從廠商購買的組件可以合并在一個框架內(nèi)。
5)通過采用基于SOA的校園信息平臺結(jié)構(gòu),開發(fā)人員可以把精力集中于服務(wù)流程的構(gòu)建和數(shù)據(jù)標(biāo)準(zhǔn)的制定,而無須事先關(guān)注有關(guān)集成或應(yīng)用程序的底層實現(xiàn)問題,使學(xué)校擺脫了對具體廠商和具體技術(shù)的依賴,加快了系統(tǒng)集成和開發(fā)的速度,降低了信息平臺園的建設(shè)成本。
6)基于SOA構(gòu)建可擴展的校園信息平臺,與傳統(tǒng)的校園信息平臺在各模塊的功能上區(qū)別不是很大,它的側(cè)重點在于該系統(tǒng)的實時性、安全性和可擴展性。當(dāng)某個部門業(yè)務(wù)變化需要更改內(nèi)部系統(tǒng)時,只要保證使用SOA的通用接口與整個系統(tǒng)的通信,就不會影響到整個系統(tǒng)的運行。因此子系統(tǒng)在對內(nèi)部系統(tǒng)改造時的顧慮大大減小,新系統(tǒng)的安全性也得到保障。另外,當(dāng)系統(tǒng)需要擴展業(yè)務(wù)時,子系統(tǒng)可以很輕松地增加到校園信息平臺中來,實現(xiàn)與其他子系統(tǒng)之間良好的通信。在以Web服務(wù)為前提的情況下,運用SOA可以實現(xiàn)安全快捷的消息傳輸,使各業(yè)務(wù)部門能夠靈活變更,任意擴展服務(wù),保證整個系統(tǒng)協(xié)調(diào)工作不受影響,從而提高整個校園信息平臺的功能。
傳統(tǒng)EAI技術(shù)點對點的集成方式不能靈活、低代價地實現(xiàn)異構(gòu)系統(tǒng)的集成,難以適應(yīng)企業(yè)快速的業(yè)務(wù)變化需求。SOA架構(gòu)提供了一種松耦合的服務(wù)模式,大大降低了應(yīng)用系統(tǒng)的集成和維護難度,Web Service技術(shù),能夠去除原來處在不同平臺,使用不同對象技術(shù)的CORBA,DCOM,EJB構(gòu)架的實現(xiàn)差異,將其統(tǒng)一在一個Web Service技術(shù)層面上,這也使得它成為現(xiàn)階段構(gòu)建基于SOA架構(gòu)集成系統(tǒng)的重要手段。然而Web Service技術(shù)現(xiàn)在尚未成熟,應(yīng)該進一步針對面向服務(wù)的SOA體系架構(gòu)的其他實現(xiàn)技術(shù),進行研究和探索,比較其各自的優(yōu)勢和適用范圍,在校園網(wǎng)信息平臺的構(gòu)建中,能夠根據(jù)原有信息系統(tǒng)的實際情況,靈活選用不同的SOA技術(shù)手段,高效率地實現(xiàn)校園信息集成。
[1]楊勇,楊薇薇.Web服務(wù)的一種通用集成模型的研究[J].華中科技大學(xué)學(xué)報:自然科學(xué)版,2004,32(1):44-46.
[2]吳渝.基于EAI的企業(yè)數(shù)據(jù)集成技術(shù)的研究[J].微計算機信息,2006,22(15):32-34.
[3]李建華,陳松喬.面向服務(wù)架構(gòu)參考模型及應(yīng)用研究[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ù)在教育資源整合中的研究與實現(xiàn)[J].計算機工程與設(shè)計,2004,(12):2136-2144.
[9]吳敏,劉小強,陳家訓(xùn).基于Web服務(wù)的高校管理系統(tǒng)集成框架[J].東華大學(xué)學(xué)報,2004,(2):28-32.