西安歐亞學院基礎部 李玉翠
隨著信息化進程的不斷深入,網絡技術和校園信息化的快速發展,大量的信息都存儲在許多不同的數據源之中,建立完善的、功能強大的實驗室網站建設已成為目前我校的一個迫切需要解決的問題。目前,我校實驗室已經有可以使用的平臺,但是系統的架構采用的是傳統的BS結構設計實現的,業務代碼和展現層代碼緊密耦合。由于功能的增加,我們面臨一個繼續向已有系統增加功能模塊和重新設計新系統的問題。經過仔細分析論證,我們決定拋棄已有的系統架構,采用SOA和Web Services技術重新構建網站。

圖1 SOA架構模型設計
設計一個好的網站需要一個很好的系統設計思想,根據我校實驗室的需求,本網站的設計從較高層次看,其主要目的是網站要有較高的信息發布功能,并以松耦合原則實現數據間的共享,以滿足大量在線用戶的信息傳遞順利,而且操作簡單,方便。系統后臺對于系統管理員,也力求盡最大可能方便其進行操作。
我校實驗室架構采用傳統的B/S系統,使用服務器來承載了大部分或者全部的數據,所以系統的升級只需要服務器進行即可,客戶端不需要做任何的同步,因為客戶端只是以瀏覽器作為宿主,服務器在Unix還是windows上都沒有關系,客戶端只要可以訪問Internet就可以訪問,瀏覽器對系統性能的要求比較小,所以客戶端可以更加的廣泛。但是B/S系統架構中有著很大的缺陷。客戶端和服務器之間并沒有真正的互操作,業務代碼和展現層代碼緊密耦合。通過使用SOA框架,可以將業務服務構造成現有組件的集合。使用這種新的服務只需要知道它的接口和名稱。服務的內部細節以及在組成服務的組件之間傳送的數據的復雜性都對外界隱藏了。
SOA是一個組件模型,它將應用程序的不同功能單元服務,通過這些服務之間定義良好的接口相互聯系起來。由于我校實驗室有各種各樣的系統、應用程序以及不同時期的技術的系統體系結構,所以異構和改變將變得非常困難。集成來自多個廠商跨不同平臺的產品更是一大難題。因此,隨著功能的增加,這些問題,需要運用SOA面向服務的體系結構加以解決。使系統具有較強的重用性和擴展性。
如果我們選擇Hub的模式來構建SOA基礎架構,可能會出現以下問題。首先,整個SOA架構的性能,如果每個服務的請求都經過中央Hub的中轉,那么Hub的負擔會很重,速度會隨著參與者的增多而愈來愈慢;其次,這樣的系統會很脆弱,一旦Hub出錯,整個SOA架構都會癱瘓;最后,這樣的架構會破壞SOA的開放性原則,參與者運行在一個相對封閉的環境中,擴展起來十分麻煩。因此,我們使用Web Services作為系統與外部交流的接口,數據庫中間件使用hibernate的SOA架構模型。設計了如圖1,圖2所示的SOA架構模型設計和系統類圖。

圖2 系統類圖
Web Services是SOA一種重要的實現方式,提供了一種分布計算的方法,通過網絡集成異構的應用,與所要實現語言、操作系統和硬件環境無關,服務提供者和請求者之間松耦合,基于開放的標準提升了不同應用的互操作能力。Web Services是自描述的,通過Web發布、定位和調用數據。Web Services是一種非常適合實現SOA的技術,Web Services是自描述和模塊化的應用程序,通過服務暴露業務邏輯,這些服務可以在網絡上被發布、發現并調用。使用Web Services作為系統與外部交流的接口,能夠使新的系統和別的系統之間保持松耦合的關系,保持較高的可擴展性。
本文中使用Web Services作為系統與外部交流的接口,Web Services負責按照客戶端提交的請求,并按照業務邏輯提取、過濾和處理數據,并將處理完的數據包返回給客戶端進行顯示,相當于程序架構中封裝了業務邏輯層。本文中主要設計用戶身份驗證Web Services和業務數據Web Services。在系統中都是作為類來實現的。
根據我校實驗室的環境和功能的需求,數據庫中間件使用hibernate,使用業務需求發生變化而數據庫操作代碼的改動降到最低,開發人員只需要改變相應的配置文件,即可完成數據庫表到類之間的映射。交互簡單,具有很好的擴展性和靈活性,這使得作為服務的業務應用程序的分發更加方便,而這種服務對于任何人在任何時間、任何地點和任何平臺上都是可訪問的。基于Web Services的松耦合系統很容易通過重新配置實現功能元素地替換。
本文從實際需求出發,在查閱了大量相關文獻的基礎上,設計了基于SOA架構的模型設計和系統類圖,該系統是基于異構平臺的應用,系統的頁面和服務開發相互分離,這就使得在需求確定的情況下,系統的表現層和服務層的開發能夠同時進行,靈活的架構,大大減少了系統開發周期。可以確定哪些Web服務能夠達到最佳的性能,并且不會發生SOA超載的問題。尤其是使用Web Services作為系統與外部交流的接口,Web Services能夠充分利用Internet上已普遍采用的HTTP作為傳輸的底層協議,使用戶所用的信息服務都能夠成為隨取即用的資源,以服務的形式對外發布,以松耦合原則實現數據間的共享,并可將各種服務快速整合。本架構所不足的是Web Services通常需要大量的CPU資源和內存資源,使用Web Services,XML數據的傳輸需要經過網絡,XML數據的傳遞通常數據量要比二進制的協議要大的多,會耗費一定的網絡資源。
[1]齊德昱,胡鏡林,張鵬.多數據庫中間件的模型研究[J].計算機工程與設計,2005(10):2602-2604.
[2]于振梅.基于SOA模式的企業架構設計[J].中山大學學報論叢,2006,26(8):98-100.
[3]葉宇風.基于SOA的企業應用集成研究[J].微電子學與計算機,2006,23(05):211-213.
[4]http://www.vldb.org.