趙芳云
ZHAO Fang-yun
(貴陽學院,貴陽 550001)
隨著現(xiàn)代通信技術、計算機網(wǎng)絡技術和高校信息化的飛速發(fā)展,高校信息化建設正在向全面數(shù)字化的方向邁進。許多高校提出了校園信息化統(tǒng)一平臺的方案,以構成統(tǒng)一的用戶管理、統(tǒng)一的資源管理和統(tǒng)一的權限控制。通過該平臺,管理人員能高效、規(guī)范地進行管理,教師能及時、快捷地進行教學,并隨時和學生保持一定的互動,學生能方便、準確地學習和應用先進的科學知識,從而提高教學質(zhì)量、辦學水平和辦學效率[1]。
由于傳統(tǒng)的軟件開發(fā)使用的平臺、開發(fā)工具、操作系統(tǒng)在結構上的偶合,使得過去校園內(nèi)位置散的各種管理系統(tǒng)如:科研管理系統(tǒng)、教學輔助系統(tǒng)、財務管理系統(tǒng)等逐漸形成了“信息孤島”。為了實現(xiàn)全校的的管理過程自動化,許多高校投入了大量的人力和財力來進行系統(tǒng)集成,許多高校和企業(yè)一樣,采用傳統(tǒng)的企業(yè)應用集成(enterprise application integration,EAI)解決方案,EAI有4種類型:數(shù)據(jù)集成,業(yè)務邏輯集成,函數(shù)或方法集成,用戶界面集成[3]。EAI采用緊密耦合的集成方式,忽視了流程設計,不利于企業(yè)流程重組和調(diào)整,缺乏可擴展性和靈活,難以適應現(xiàn)代業(yè)務快速變化的需求,因而不能實現(xiàn)必要的靈活性和適應性[4]。隨著高校的發(fā)展,學校可不希望扔掉他們重來,重來的代價太高,也顯得很不科學,EAI應用要求新的軟件系統(tǒng)不再是從底層做起,而是依據(jù)高校邏輯需求重新組織己有的數(shù)據(jù)存儲,將現(xiàn)有的數(shù)據(jù)和事務通過新的渠道呈現(xiàn)給廣大用戶[5]。
隨著計算機技術發(fā)展,Web Service為實現(xiàn)EAI提供了一種全新的機制,它為本地和遠程服務的定義、發(fā)布和訪問提供了一整套開發(fā)標準的方法。它能徹底地改變傳統(tǒng)EAI中點對點的集成方式。本文采用基于Web Service的面向服務的體系結構(service oriented architecture,SOA)的軟件設計方法能夠對服務流程化的組織來構建分布式系統(tǒng),在不改變學校各種應用底層架構的基礎上,可以很好地解決上述問題,它支持在中間層以服務模塊方式實現(xiàn)的解決方案,當多個運行在不同平臺和技術下的應用程序需要相互通訊時,這種SOA結構尤其適用。
SOA是一個組件模型,它將應用程序的不同功能單元通過它們之間定義良好的接口和契約聯(lián)系起來,這些功能單元就稱之為服務;而接口是采用中立的方式進行定義的,它獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言,這使得構建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一、通用的方式進行交互。
通過采用SOA框架,將傳統(tǒng)校園信息平臺的集成模式轉變?yōu)閼孟到y(tǒng)之間基于標準協(xié)議對話的模式,使應用系統(tǒng)可以通過校園網(wǎng)進行數(shù)據(jù)、信息及服務的交換。通過采用Web Service,服務的內(nèi)部實現(xiàn)細節(jié)被封裝在通過SOAP/WSDL傳遞的信息流之中,解決了異構應用系統(tǒng)之間的信息交換和集成的問題??朔藗鹘y(tǒng)校園信息平臺建設模式集成困難、結構復雜、兼容性差、廠商依賴性大、成本過高等缺陷。
對于一個學校來說,選擇SOA是非常關鍵的,因為實施SOA策略不僅僅是開發(fā)一個小軟件那么簡單,它涉及學校的方方面面,是對業(yè)務流程和所有信息系統(tǒng)的整合,涉及將來若干年的業(yè)務模式、部門之間的協(xié)作、系統(tǒng)的整合。目前,大多數(shù)單位實現(xiàn)了單位內(nèi)部信息資源的集成應用,大多采用直接建立系統(tǒng)之間連接的方法,即開發(fā)應用程序實現(xiàn)信息共享和集成,應用系統(tǒng)之間需要清楚對方的結構,然后通過系統(tǒng)開發(fā)獲得需要的數(shù)據(jù)信息,系統(tǒng)之間聯(lián)系過于緊密,容易造成“牽一發(fā)而動全身”的局面。有的用戶干脆全部重新開發(fā)新的信息系統(tǒng),這樣暫時或者局部解決了問題,但可能又會造成新的問題,同時資金、人力投入和工作量非常巨人,效果并不理想。要追求最大程度的信息集成與共享,就要考慮基于SOA的信息資源整合[6,7]。
當數(shù)據(jù)分布程度非常高時,使用SOA將操作數(shù)據(jù)的代碼放置在與數(shù)據(jù)較近的位置,然后將其封裝為服務,以供在任何地方進行訪問
當希望功能具有高可用性時,使用SOA將功能作為服務部署,在提供的多個冗余程序中,若其中一些不可使用,可以使用其他的對等服務。
當應用程序的各個部分需要獨立開發(fā)、維護和更新時,使用SOA只要保持各個部分之間的接口,每個團隊就可以使用其喜愛的技術按照自己的計劃實現(xiàn)各自的部分。
當多個應用程序需要重用功能和數(shù)據(jù)時,使用SOA共享的代碼及重用功能,可使各個獨立應用程序重用一組共享數(shù)據(jù),而無需將數(shù)據(jù)分發(fā)給所有應用程序[8]。
對于一個系統(tǒng),能用簡單的SOA解決的,就不必選擇復雜的SOA。
對基于SOA的可擴展校信息平臺實現(xiàn)基于“把握趨勢、兼顧現(xiàn)實、統(tǒng)一規(guī)劃、逐步實現(xiàn)”的方針。系統(tǒng)整體采用SOA來實現(xiàn)各個子系統(tǒng)之間的通信;在各個子系統(tǒng)中,可以保持面向對象的設計來實現(xiàn)模塊功能。這樣,一方面使各子系統(tǒng)的業(yè)務部門能緊密聯(lián)系,增強各子系統(tǒng)的安全性和穩(wěn)定性,合理利用原有資源;另一方面可以逐步實現(xiàn)整體向面向服務體系結構的過渡,不至于操之過急,對日常工作造成影響[9]。
各模塊具體開發(fā)實現(xiàn)過程主要包括4個部分:首先在SOA下建立Web服務應用程序,其中包括建立Web服務框架、創(chuàng)建Web服務的服務接口、實現(xiàn)數(shù)據(jù)連接;其次要建立Web服務的客;戶端應用程序;再次是數(shù)據(jù)庫的設計;最后實現(xiàn)系統(tǒng)調(diào)試與應用。根據(jù)貴陽學院實際情況與業(yè)務要求,結合SOA思想與Web服務實現(xiàn)技術,設計該校信息化平臺系統(tǒng)結構如圖1所示。
圖1 基于SOA的學校信息化平臺系統(tǒng)結構
校園信息平臺的實現(xiàn)很少從全新的項目開始,校園信息 平臺環(huán)境的創(chuàng)建幾乎總需要涉及到原有遺留系統(tǒng)的集成問題。在基于SOA的校園信息平臺的體系結構中,集成的方法是將它們分解成服務、操作、業(yè)務流程和業(yè)務規(guī)則,并根據(jù)原有系統(tǒng)提供的功能把它分解成多個Web服務,每個服務都用Web Service技術進行封裝。從服務使用者的視角去看,只能看到與一個Web服務進行交互,而Web服務背后是使用什么樣的技術細節(jié)是無需知道的,這樣可以屏蔽系統(tǒng)的實現(xiàn)技術,以標準方式將它們集成在一起。
校園信息平臺應用系統(tǒng)之間的交互、對話和連接功能主要通過PSB來實現(xiàn),它主要由 2部分組成:消息路由器和一系列Web服務靜態(tài)客戶樁程序。
應用系統(tǒng)提供的通常是細粒度的 API 接口,這與SOA思想中服務單元粗粒度原則相矛盾,同時難以滿足校園信息平臺高可用性、擴展性、靈活性的需求。因此,必須通過服務引擎重新組合使應用系統(tǒng)暴露具有一定粒度的服務接口。
開發(fā)工具為Web服務的開發(fā)工具采用.NET,使應用程序具備跨語言、跨平臺的能力。數(shù)據(jù)庫采用SQLServer 2005。下面以辦公系統(tǒng)SOA的簡單實現(xiàn)為例,介紹如構建SOA服務,這里采用了基于Apache的Axis2Java編程技術來進行實現(xiàn)。它的主要實現(xiàn)過程為:
1)創(chuàng)建實現(xiàn)服務的類。
2)創(chuàng)建Services.xml來解析web Service。
3)將其打包成一個*.aar文檔(Axisrchive)。
4)部署web Service。
首先先實現(xiàn)一個評估服務類(Evaluate Service),碼如下:
然后打包成為EvaluateService.aar文件,就可以為外界提供評估服務了。
例如建立一個TestEvaluteClient類檢驗一下該服務:
目前,基于SOA的校園信息平臺解決方案已經(jīng)在貴陽學院的校園信息建設中得到了初步應用。在實際應用過程中,該架構主要表現(xiàn)出以下優(yōu)點:
1)擺脫了面向技術的解決方案的束縛,朝著面向服務的方向發(fā)展,與其他架構相比更具彈性,能夠更快地響應校園應用和需求的變化,滿足未來學校的業(yè)務發(fā)展需求。
2)較好地集成了原有應用。無須重構原有系統(tǒng),只須將原有應用系統(tǒng)封裝成標準的服務組件,通過這些服務的接口和名稱就可以訪問或合并構建在不同的機器上、運行在不同操作系統(tǒng)中的遺留系統(tǒng),有效地保護了原有資本。
3)服務設計松散、位置透明,服務協(xié)議是獨立的,不必與特定的系統(tǒng)或網(wǎng)絡相連接,服務間的通信框架使服務重用成為可能。
4)統(tǒng)一了業(yè)務架構,可擴展性大大增強。在校園信息平臺的基礎架構上,不同應用系統(tǒng)之間的開發(fā)和部署將變得更加一致?,F(xiàn)有組件、新開發(fā)組件和從廠商購買的組件可以合并在一個框架內(nèi)。
5)通過采用基于SOA的校園信息平臺結構,開發(fā)人員可以把精力集中于服務流程的構建和數(shù)據(jù)標準的制定,而無須事先關注有關集成或應用程序的底層實現(xiàn)問題,使學校擺脫了對具體廠商和具體技術的依賴,加快了系統(tǒng)集成和開發(fā)的速度,降低了信息平臺園的建設成本。
6)基于SOA構建可擴展的校園信息平臺,與傳統(tǒng)的校園信息平臺在各模塊的功能上區(qū)別不是很大,它的側重點在于該系統(tǒng)的實時性、安全性和可擴展性。當某個部門業(yè)務變化需要更改內(nèi)部系統(tǒng)時,只要保證使用SOA的通用接口與整個系統(tǒng)的通信,就不會影響到整個系統(tǒng)的運行。因此子系統(tǒng)在對內(nèi)部系統(tǒng)改造時的顧慮大大減小,新系統(tǒng)的安全性也得到保障。另外,當系統(tǒng)需要擴展業(yè)務時,子系統(tǒng)可以很輕松地增加到校園信息平臺中來,實現(xiàn)與其他子系統(tǒng)之間良好的通信。在以Web服務為前提的情況下,運用SOA可以實現(xiàn)安全快捷的消息傳輸,使各業(yè)務部門能夠靈活變更,任意擴展服務,保證整個系統(tǒng)協(xié)調(diào)工作不受影響,從而提高整個校園信息平臺的功能。
傳統(tǒng)EAI技術點對點的集成方式不能靈活、低代價地實現(xiàn)異構系統(tǒng)的集成,難以適應企業(yè)快速的業(yè)務變化需求。SOA架構提供了一種松耦合的服務模式,大大降低了應用系統(tǒng)的集成和維護難度,Web Service技術,能夠去除原來處在不同平臺,使用不同對象技術的CORBA,DCOM,EJB構架的實現(xiàn)差異,將其統(tǒng)一在一個Web Service技術層面上,這也使得它成為現(xiàn)階段構建基于SOA架構集成系統(tǒng)的重要手段。然而Web Service技術現(xiàn)在尚未成熟,應該進一步針對面向服務的SOA體系架構的其他實現(xiàn)技術,進行研究和探索,比較其各自的優(yōu)勢和適用范圍,在校園網(wǎng)信息平臺的構建中,能夠根據(jù)原有信息系統(tǒng)的實際情況,靈活選用不同的SOA技術手段,高效率地實現(xiàn)校園信息集成。
[1]楊勇,楊薇薇.Web服務的一種通用集成模型的研究[J].華中科技大學學報:自然科學版,2004,32(1):44-46.
[2]吳渝.基于EAI的企業(yè)數(shù)據(jù)集成技術的研究[J].微計算機信息,2006,22(15):32-34.
[3]李建華,陳松喬.面向服務架構參考模型及應用研究[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服務架構與開放互操作技術[M].北京:清華大學出版社,2002.
[8]田林,于建軍,王建白,等. Web Service技術在教育資源整合中的研究與實現(xiàn)[J].計算機工程與設計,2004,(12):2136-2144.
[9]吳敏,劉小強,陳家訓.基于Web服務的高校管理系統(tǒng)集成框架[J].東華大學學報,2004,(2):28-32.