吉林工商學(xué)院信息工程學(xué)院 成桂玲
采用基于面向服務(wù)的SOA架構(gòu)的思想來開發(fā)教學(xué)管理系統(tǒng)能夠在不改變原有教學(xué)管理系統(tǒng)底層架構(gòu)的基礎(chǔ)上,通過將教學(xué)管理系統(tǒng)中需要共享的信息封裝成web服務(wù)進行服務(wù),來解決原有教學(xué)管理系統(tǒng)的信息孤島問題。采用基于SOA架構(gòu)的最大優(yōu)勢就是盡最大可能重用已有應(yīng)用程序中的服務(wù)來提高系統(tǒng)的實用性和適應(yīng)能力。
SOA是面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture)的簡稱,它是一類分布式系統(tǒng)的體系結(jié)構(gòu),它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。
SOA架構(gòu)是一種程序設(shè)計的方法,通過任何的程序設(shè)計語言都可以實現(xiàn)。目前隨著Web Service技術(shù)的流行,它成為實現(xiàn)SOA的一種主要手段。Web Service使應(yīng)用功能通過標準化接口(WSDL)提供,使用標準化語言(XML)進行描述,并可基于標準化傳輸方式(HTTP和JMS)、采用標準化協(xié)議(SOAP)進行調(diào)用,并使用XML SCHEMA方式對數(shù)據(jù)進行描述。
如圖1所示,使用SOA架構(gòu)的思想對教學(xué)管理系統(tǒng)進行系統(tǒng)的集成,將原有教學(xué)管理系統(tǒng)中需要共享功能模塊封裝成Web服務(wù)。將每個Web服務(wù)內(nèi)部分為四層——表示層、業(yè)務(wù)服務(wù)層、業(yè)務(wù)邏輯層以及數(shù)據(jù)服務(wù)層。通過Web服務(wù)的發(fā)布和調(diào)用,使原有的教學(xué)管理系統(tǒng)不僅實現(xiàn)了內(nèi)部各部門之間的信息交換,同時,也實現(xiàn)了和外部的信息交換。對內(nèi),各個系部業(yè)務(wù)系統(tǒng)之間可以通過該平臺實現(xiàn)專業(yè)信息的共享,實現(xiàn)內(nèi)部信息的雙向傳送。對外,通過該平臺,實現(xiàn)與外系統(tǒng)、外單位(如教育廳,其他兄弟院校)的信息交互。圖1描述了基于SOA架構(gòu)的教學(xué)管理系統(tǒng)的Web服務(wù)的設(shè)計方案。
圖1 基于SOA架構(gòu)的教學(xué)管理系統(tǒng)的Web服務(wù)的設(shè)計方案
采用基于SOA的架構(gòu)體系來開發(fā)教學(xué)管理系統(tǒng),我們只需要將需要共享的功能模塊封裝成Web服務(wù)發(fā)布即可。進而實現(xiàn)原有教學(xué)管理系統(tǒng)功能模塊的“高內(nèi)聚,低耦合”。下面分析一下Web服務(wù)各層次的實現(xiàn)。
(1)表示層設(shè)計
表示層的職責(zé)主要是接受用戶的輸入和向用戶呈現(xiàn)信息。表示層實際就是一個方便用戶使用系統(tǒng)的界面。
(2)服務(wù)發(fā)布層
服務(wù)發(fā)布層主要提供標準化的服務(wù)接口,從而使得該服務(wù)可以提供給在任何異構(gòu)平臺和任何本地或者遠程用戶使用。通過Web Service發(fā)布各種業(yè)務(wù),接受表示層的調(diào)用,該層是面向服務(wù)的一層,通過該層實現(xiàn)SOA架構(gòu)的服務(wù)發(fā)布。本層的實現(xiàn)我們只將Web服務(wù)發(fā)布到了Windows 2003 Server自帶的UDDI服務(wù)器上,簡單易用。只需在Windows 2003 Server系統(tǒng)中以管理員的身份登陸UDDI組件點擊“發(fā)布”即可。
(3)業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層簡稱BLL(Business Logic Layer),是系統(tǒng)架構(gòu)中體現(xiàn)核心價值的部分。它處于數(shù)據(jù)訪問層與表示層中間,業(yè)務(wù)邏輯層為系統(tǒng)提供服務(wù)接口和邏輯控制,對數(shù)據(jù)交換起到了關(guān)鍵作用。
業(yè)務(wù)邏輯設(shè)計分為三種主要的模式:Transaction Script、Domain Model和Table Module。本系統(tǒng)采用Transaction Script模式來實現(xiàn)。
A.配置數(shù)據(jù)依賴
業(yè)務(wù)邏輯層要加載數(shù)據(jù),只需要在Web.config中配置需要使用的數(shù)據(jù)訪問層。打開Web.config,找到appSettings節(jié)點下的“DAL”項,將其中的value賦予我們要使用的數(shù)據(jù)訪問層工程名稱,例如:要使用student,則這一項寫成:
B.編寫散列加密工具類
因為在業(yè)務(wù)邏輯層的多處需要用到散列加密,所以在Utility工程下寫一個輔助類Encryptor即可。
(4)數(shù)據(jù)層
數(shù)據(jù)層主要提供數(shù)據(jù)信息和數(shù)據(jù)邏輯,提供本系統(tǒng)數(shù)據(jù)訪問;借助于信息資源整合平臺和其他系統(tǒng)進行數(shù)據(jù)交換。數(shù)據(jù)層的數(shù)據(jù)庫存儲我們選用Sql Server 2005平臺來完成。
基于SOA的架構(gòu)思想,通過服務(wù)的封裝,以松散耦合的方式解決了教學(xué)管理系統(tǒng)的代碼重用的問題。本文成功的將SOA的架構(gòu)思想用于教學(xué)管理系統(tǒng)的開發(fā)研究,從而證明了用SOA架構(gòu)思想對原有教學(xué)管理系統(tǒng)進行資源整合的優(yōu)勢。
[1]柴曉路,梁宇奇.Web Services技術(shù)、構(gòu)架和應(yīng)用[M].北京:電子工業(yè)出版社,2003.
[2]郭晉偉.SOA架構(gòu)的管理信息系統(tǒng)設(shè)計與實現(xiàn)[D].沈陽:中國科學(xué)院沈陽計算技術(shù)研究所,2006.
[3]蔣杰,劉友華,曹天瑜.基于SOA的網(wǎng)絡(luò)教學(xué)資源系統(tǒng)集成[J].科學(xué)技術(shù)與工程,2007,8.