摘 要 對(duì)基于SOA思想的Web服務(wù)技術(shù)進(jìn)行研究,以“培訓(xùn)信息管理系統(tǒng)”為設(shè)計(jì)案例,設(shè)計(jì)一個(gè)基于SOA的應(yīng)用軟件系統(tǒng),討論Web服務(wù)模型中的概念層、邏輯層和物理層的具體內(nèi)容,分析Web服務(wù)架構(gòu)的優(yōu)點(diǎn)以及還需要解決的一些問題,并運(yùn)用JSP的Web服務(wù)技術(shù)在系統(tǒng)原型上實(shí)現(xiàn)這種架構(gòu),為正在建設(shè)中的校園網(wǎng)管理系統(tǒng)的集成提供一個(gè)可參考方案。
關(guān)鍵詞 SOA;Web服務(wù);管理系統(tǒng)模型
中圖分類號(hào) G434 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1671-489X(2008)18-0044-02
當(dāng)前,大學(xué)校園無論在教學(xué)管理還是行政管理方面都進(jìn)行了多年的信息化建設(shè)。很多部門正在使用的管理系統(tǒng)可能是在不同時(shí)期、由不同廠商或自主開發(fā)的軟件,基于不同的軟硬件平臺(tái)和網(wǎng)絡(luò)結(jié)構(gòu)環(huán)境。對(duì)于新、老系統(tǒng)之間的數(shù)據(jù)如何集成和共享,如何按需要實(shí)現(xiàn)它們之間的相互調(diào)用,成為一道難題。
SOA(SOA,service-oriented architecture)——面向服務(wù)架構(gòu),為解決以上問題提供了有效的技術(shù)解決方案。
1 基于SOA的培訓(xùn)信息管理系統(tǒng)模型構(gòu)建
1.1 基于SOA的系統(tǒng)架構(gòu)方案面向服務(wù)的集成完全是開放的,能夠解決培訓(xùn)管理系統(tǒng)的異構(gòu)集成、互操作問題;另一方面,也是更重要的一點(diǎn),SOA提供了一個(gè)服務(wù)協(xié)作和事務(wù)的業(yè)務(wù)流程自動(dòng)化框架實(shí)現(xiàn)服務(wù)的編排。根據(jù)以上分析,從安全性、可集成性等方面考慮,本培訓(xùn)信息管理系統(tǒng)架構(gòu)如圖1所示。
培訓(xùn)信息管理系統(tǒng)各用戶訪問系統(tǒng)形式如下:
1)培訓(xùn)管理內(nèi)部,如培訓(xùn)部主任、系統(tǒng)管理員等使用三層C/S結(jié)構(gòu)的客戶端程序來訪問數(shù)據(jù)庫,使用Windows版的應(yīng)用程序;
2)各學(xué)院成人教育部門以及各學(xué)院任課教師可利用瀏覽器通過校園網(wǎng)訪問數(shù)據(jù)庫,屬于校園網(wǎng)B端用戶,使用Web版應(yīng)用程序;
3)普通用戶、校外參加培訓(xùn)的學(xué)員通過Internet訪問數(shù)據(jù)庫,瀏覽系統(tǒng)資源,屬于三層B/S架構(gòu)的B端用戶,使用Web版應(yīng)用程序;
4)把所有公用功能單元邏輯從系統(tǒng)中抽取出來,以Web服務(wù)的形式發(fā)布到校園網(wǎng)Web服務(wù)器的私有UDDI(Universal Description,Discovery and Integration),以便其他業(yè)務(wù)層或系統(tǒng)集成使用。
1.2 用Web服務(wù)實(shí)現(xiàn)的系統(tǒng)邏輯架構(gòu)由Web服務(wù)的工作原理,結(jié)合三層分布式體系結(jié)構(gòu)計(jì)算模型,設(shè)計(jì)出培訓(xùn)信息管理系統(tǒng)的Web服務(wù)邏輯架構(gòu),如圖2所示。
培訓(xùn)信息管理系統(tǒng)Web服務(wù)架構(gòu)分為以下幾個(gè)層次。
1)表示層。表示層實(shí)際上是一個(gè)接入終端,可以是瀏覽器,也可以是用戶自己定制的應(yīng)用程序等。其功能主要是發(fā)出應(yīng)用請(qǐng)求,比如登錄、檢索、數(shù)據(jù)管理等。
2)Web服務(wù)層。該層是各種服務(wù)的集合,負(fù)責(zé)向表示層提供應(yīng)用服務(wù)。
3)業(yè)務(wù)邏輯層,包括完成各種子功能的方法。
4)數(shù)據(jù)層,主要是支持各種異構(gòu)的操作系統(tǒng)、異構(gòu)數(shù)據(jù)庫系統(tǒng)、異構(gòu)網(wǎng)絡(luò)系統(tǒng)。
2 基于SOA的培訓(xùn)信息管理系統(tǒng)模型實(shí)現(xiàn)
培訓(xùn)信息管理系統(tǒng)大量的業(yè)務(wù)體現(xiàn)在數(shù)據(jù)的操作中,尤其體現(xiàn)在對(duì)數(shù)據(jù)的添加、刪除、查詢等處理上。比如要查詢學(xué)員信息,只要通過SQL查詢就可以實(shí)現(xiàn)。如果把SQL所支持的存儲(chǔ)過程和Web 服務(wù)結(jié)合起來實(shí)現(xiàn)對(duì)信息的查詢,將使整個(gè)系統(tǒng)的開發(fā)速度與運(yùn)行質(zhì)量得到提高?,F(xiàn)在大多開發(fā)工具都直接支持將SQL查詢和存儲(chǔ)過程轉(zhuǎn)化為Web服務(wù)。以下是開發(fā)的一個(gè)Web服務(wù)的示例,功能為對(duì)學(xué)員信息的查詢。
2.1 數(shù)據(jù)層的實(shí)現(xiàn)數(shù)據(jù)訪問管理是應(yīng)用程序用來存儲(chǔ)、檢索和管理數(shù)據(jù)的方式,旨在優(yōu)化性能,在本系統(tǒng)實(shí)踐中主要采用以下2個(gè)策略。
1)存儲(chǔ)過程的使用。數(shù)據(jù)訪問層對(duì)數(shù)據(jù)庫的訪問要盡量采用存儲(chǔ)過程的方式進(jìn)行,該策略有效利用了SQL Server數(shù)據(jù)庫系統(tǒng)對(duì)性能優(yōu)化的特點(diǎn)。在基于SOA的系統(tǒng)設(shè)計(jì)上,把存儲(chǔ)過程用在Web服務(wù)的設(shè)計(jì)中,同樣能夠簡化程序的設(shè)計(jì),隱藏系統(tǒng)內(nèi)部的細(xì)節(jié),并提高系統(tǒng)的靈活性。
2)在JSP中使用JDBC訪問數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)中主要操作對(duì)象是數(shù)據(jù),因此優(yōu)化數(shù)據(jù)的操作設(shè)計(jì)對(duì)于系統(tǒng)整體性能的提高起著積極的作用。JDBC API為Java開發(fā)者使用數(shù)據(jù)庫提供統(tǒng)一的編程接口,它由一組Java類和接口組成。
2.2 業(yè)務(wù)層的實(shí)現(xiàn)通過Web服務(wù)協(xié)議可暴露應(yīng)用程序的一個(gè)Web方法。以下程序清單定義了一個(gè)接口,它用來暴露一個(gè)EJB方法,該方法列出符合查詢條件的學(xué)員記錄。該接口擴(kuò)充了遠(yuǎn)程接口,并將selectstudent()方法標(biāo)記為拋出RemoteException異常。接口定義了一個(gè)方法,該方法將查詢到的學(xué)員記錄作為字符串返回。
一個(gè)查詢功能的Web服務(wù)接口(Service.java)
Package wsexampls;
Import java.rmi.*;
public interface Service extends Remote
{ public String[] selectstudent(String List) throws RemoteException; }
2.3 表示層的實(shí)現(xiàn)表示層實(shí)現(xiàn)的任務(wù)實(shí)質(zhì)是調(diào)用服務(wù)程序。對(duì)于客戶端程序的服務(wù)調(diào)用,需先給客戶端工程添加Web引用,實(shí)質(zhì)上就是將Web Service的代理類對(duì)應(yīng)的DLL文件導(dǎo)入客戶端。完成添加代理類后,即可通過調(diào)用代理類來調(diào)用Web 服務(wù)。主要有通過創(chuàng)建Web 服務(wù)中定義類的實(shí)例、調(diào)用類的方法等完成。
下例說明表示層完成服務(wù)調(diào)用的實(shí)質(zhì)性工作:
1)添加Web引用;
2)StudentGetSet GETSET=new StudentGetSet()‘創(chuàng)建類的實(shí)例,本例為GETSET;
3)list =GETSET.selectstudent(StudentId)‘調(diào)用類的方法,本例為selectstudent()。
由于采用Web 服務(wù)中間層,客戶端不直接操作數(shù)據(jù)庫,提高了系統(tǒng)的安全性和可靠性。同時(shí),由于對(duì)Web服務(wù)的訪問(使用SOAP協(xié)議訪問)可以穿透防火墻,所以Web 服務(wù)有較好的可復(fù)用性。例如將學(xué)員基本信息查詢功能整合到其他系統(tǒng)中時(shí),只需開發(fā)客戶端程序,并調(diào)用完成學(xué)員信息查詢的Web 服務(wù)即可。
3 結(jié)束語
由于目前Web服務(wù)技術(shù)還在發(fā)展中,筆者只對(duì)與本課題應(yīng)用的相關(guān)部分進(jìn)行學(xué)習(xí)和研究。本課題所開發(fā)的Web服務(wù)系統(tǒng)還不完整,只是以一個(gè)簡單Web服務(wù)為原型示例,為整個(gè)系統(tǒng)的開發(fā)提供一個(gè)參考模型,做一些基于SOA技術(shù)上的準(zhǔn)備。