摘要:Web Service是Internet上新興的應用通信和集成技術(shù),本文先簡(jiǎn)單介紹了XML和Web Service技術(shù),然后著(zhù)重討論了基于Web Service的系統集成技術(shù)的特點(diǎn)和優(yōu)勢,以及通過(guò)實(shí)際的開(kāi)發(fā)實(shí)例介紹了基于Web Service的系統集成技術(shù)在網(wǎng)絡(luò )教育平臺實(shí)現中的應用。
關(guān)鍵詞:Web Service;系統集成;網(wǎng)絡(luò )教育平臺
System Integration Technique Based on Web Service and its Application in E-education Platform Realization
【Abstract】Web Service is a new technique for communication and integration of applications on Internet. In this article there’s a view of XML and Web Service, and a discussion about the characters and advantages of system integration technique based on Web Service. By actual developing samples, I show how to use system integration technique in E-education platform realization.
【Key words】Web Service;System Integration;E-education Platform
1 引言
隨著(zhù)信息技術(shù)與網(wǎng)絡(luò )技術(shù)的發(fā)展和普及,基于Internet和Intranet的網(wǎng)絡(luò )教育蓬勃發(fā)展;網(wǎng)絡(luò )教育作為一種嶄新的遠程教育方式逐漸運用到實(shí)際的教學(xué)活動(dòng)中,成為“數字化校園”重要的組成部分。
作為網(wǎng)絡(luò )教育的后臺支持系統,網(wǎng)絡(luò )教育平臺也得到相應的發(fā)展,出現了很多成型的系統和實(shí)際產(chǎn)品,它們基本上實(shí)現了網(wǎng)絡(luò )教育平臺需要的三個(gè)基本系統——課程及教學(xué)資料開(kāi)發(fā)系統,教學(xué)支持系統(同步教學(xué)和異步教學(xué))和教學(xué)管理系統[1]。但是,縱觀(guān)現有的網(wǎng)絡(luò )教育系統和產(chǎn)品,一定程度上存在著(zhù)一些不足:教學(xué)和交互方式比較單一,不同的教學(xué)和交互子系統很難集成在一起,大多處于相對分離的狀態(tài);缺少通用的數據編輯和保存形式,不同操作系統和數據庫平臺上的子系統很難交互和共享數據;缺少有效的模塊集成手段,基于不同平臺的模塊很難集成,系統的擴展性和伸縮性比較差。
現有的網(wǎng)絡(luò )教育平臺的這些缺陷,在很大程度上與現有的系統集成技術(shù)的缺陷有關(guān)。針對現有網(wǎng)絡(luò )教育系統和產(chǎn)品的不足之處,我們在實(shí)際的網(wǎng)絡(luò )教育平臺的設計和開(kāi)發(fā)過(guò)程中,采用基于Web Service的系統集成技術(shù),處理系統模塊間控制和數據的集成,很大程度上提高了系統數據的通用性,降低了模塊間的耦合程度,從而提高了網(wǎng)絡(luò )教育系統的擴展性、伸縮性和兼容性,便于系統分擔負載,提高網(wǎng)絡(luò )教育系統的服務(wù)質(zhì)量。
2 XML及Web Service
XML(eXtensible Markup Language,可擴展標記語(yǔ)言)是Internet上數據表示和數據交換的新標準。它是ISO(International Organization for Standardization,國際標準化組織)的SGML(Standard for General Markup Language,通用標記語(yǔ)言標準)的一個(gè)簡(jiǎn)化子集。XML關(guān)注信息本身,是Web上表示結構化信息的一種標準文本格式。與傳統的注重頁(yè)面信息顯示的HTML(Hypertext Markup Language, 超文本鏈接標示語(yǔ)言)相比,關(guān)注于內容的XML具有以下諸多優(yōu)點(diǎn)[5]:良好的可擴展性,語(yǔ)言簡(jiǎn)單有效,可自行定義標記;內容與形式的分離,主要刻畫(huà)數據內容,不考慮顯示效果;有嚴格的語(yǔ)法要求,便于分析統一和與數據庫信息轉換;便于傳輸,為純文本形式,可通過(guò)Http協(xié)議直接傳輸,可跨越防火墻;等等。XML的出現和發(fā)展對于Internet和Intranet產(chǎn)生了巨大的影響。
在XML基礎上發(fā)展起來(lái)的Web服務(wù)(Web Service)是一種革命性的分布是計算技術(shù)。它使用基于XML的消息處理作為基本的數據通訊方式,消除使用不同組件模型、操作系統和編程語(yǔ)言的系統之間存在的差異,使異類(lèi)系統能夠作為計算網(wǎng)絡(luò )的一部分協(xié)同運行。開(kāi)發(fā)人員可以使用像過(guò)去創(chuàng )建分布式應用程序時(shí)使用組件的方式,創(chuàng )建由各種來(lái)源的Web服務(wù)組合在一起的應用程序。由于Web服務(wù)是建立在一些通用協(xié)議的基礎上,如HTTP(Hypertext Transfer Protocol, WWW服務(wù)程序所用的協(xié)議),SOAP(Simple Object Access Protocol,簡(jiǎn)單對象訪(fǎng)問(wèn)協(xié)議),XML,WSDL(Web Services Description Language,Web服務(wù)描述語(yǔ)言),UDDI(Universal Description,Discovery,and Integration,通用描述發(fā)現和集成協(xié)議)等,這些協(xié)議在涉及到操作系統、對象模型和編程語(yǔ)言的選擇時(shí),沒(méi)有任何傾向,因此Web服務(wù)將會(huì )有很強的生命力。關(guān)于Web服務(wù)的W3C(World Wide Web Consortium,萬(wàn)維網(wǎng)聯(lián)盟)標準逐漸出臺;兩個(gè)應用程序通過(guò)Web服務(wù)進(jìn)行遠程通信時(shí),所需的標準核心構件[7]如下圖所示:
圖1 Web Service的核心構件塊
各大廠(chǎng)商也逐步推出了相關(guān)的Web Service開(kāi)發(fā)環(huán)境和解決方案;在目前主流的操作系統平臺上都有相應的開(kāi)發(fā)環(huán)境,如:Windows平臺上的Microsoft Visual Studio.Net;Windows和Linux平臺上的Sun One Studio,IBM的WebSphere Studio;以及BEA 的WebLogic Workshop等。
3 基于Web Service的系統集成
在軟件系統的開(kāi)發(fā)過(guò)程中,系統集成主要實(shí)現系統的各部分(模塊)之間的通訊和整合,將相對分散的子系統組成一個(gè)統一的整體,實(shí)現子系統間的功能控制和信息交互與共享?;诰W(wǎng)絡(luò )的系統集成技術(shù)已有了很多[6],如:DCOM(Distributed Component Object Model,分布式組件對象模型)、CORBA(Common Object Request Broker Architecture,公用對象請求代理程序體系結構)和Java RMI(Java Remote Method Invocation,Java遠端函數調用)等。但是這些傳統的集成技術(shù)在很大程度上受到網(wǎng)絡(luò )環(huán)境的限制,大多使用專(zhuān)有協(xié)議通過(guò)特別的端口進(jìn)行遠程通信,不能很好的支持客戶(hù)段和服務(wù)器通過(guò)Internet進(jìn)行通信。
基于Web Service的集成技術(shù)作為一種新的面向函數和方法的應用集成技術(shù),在很大程度上解決了原有集成技術(shù)在Internet遠程通信方面的問(wèn)題。Web Service基于XML文檔進(jìn)行服務(wù)描述,服務(wù)請求和反饋結果,可以在Internet上通過(guò)HTTP協(xié)議進(jìn)行傳遞,很容易的被訪(fǎng)問(wèn)和返回結果。同時(shí),由于Web Service的相關(guān)標準都是W3C的開(kāi)放協(xié)議,與平臺和操作系統無(wú)關(guān),不同的平臺和操作系統上的Web Service的實(shí)現在很大程度上可以做到互操作,這就使異構平臺上應用的集成變得很容易。此外,過(guò)去使用的基于RPC(RPC - Remote Procedure Call,遠程過(guò)程調用)和API(Application Programming Interface,程序編程接口)的集成技術(shù)都是一種函數級的靜態(tài)解決方案(即使它們在客戶(hù)機和服務(wù)器通訊時(shí)使用XML);Web Service則是一種動(dòng)態(tài)的集成方案,所有的服務(wù)都可以通過(guò)UDDI標準動(dòng)態(tài)地被發(fā)現、綁定和使用,容易適應系統的變動(dòng),提高系統的靈活性和伸縮性。
使用Web Service技術(shù)進(jìn)行系統集成和過(guò)去使用其它面向函數和方法的技術(shù)進(jìn)行集成類(lèi)似:在進(jìn)行初始設計的時(shí)候主要考慮不同應用之間,系統不同模塊之間消息及數據傳遞的需求;根據具體需求設置相應的接口,描述接口特性;針對不同應用的平臺選擇相應的Web Service組件,進(jìn)行相應設置;實(shí)現不同應用的接口,進(jìn)行相應調試;實(shí)際運行,應用程序間進(jìn)行協(xié)同調試。
使用Web Service進(jìn)行系統集成的基本模式(不同應用之間)[8],如下圖:
圖2 Web服務(wù)應用架構(應用間集成)
4 基于Web Service的系統集成技術(shù)在網(wǎng)絡(luò )教育平臺實(shí)現中的應用
我們開(kāi)發(fā)的遠程教育系統的初始版本,是完全基于Windows平臺的。整個(gè)系統集中在一個(gè)服務(wù)器上,采用兩層的Web開(kāi)發(fā)架構,各個(gè)模塊直接對數據庫進(jìn)行操作,通過(guò)Form提交數據,直接引用等方式進(jìn)行消息傳遞。造成系統模塊間的耦合過(guò)于緊密,系統的可移植性,擴展性和均衡負載等方面都比較差。
在進(jìn)行新版本系統的設計時(shí),考慮到原有系統的諸多不足,我們在提高系統的可擴展性,降低各個(gè)系統模塊之間的耦合程度等方面多了許多考慮,在模塊集成方面主要使用應用層面上的基于Web Service系統集成技術(shù),使用基于不同平臺上的Web Service技術(shù)實(shí)現系統模塊之間的消息和數據傳遞。
我們的網(wǎng)絡(luò )教育平臺的基本模塊結構如下圖:
圖3 遠程教育系統模塊結構圖
接下來(lái)以教學(xué)管理模塊和同步教學(xué)模塊之間的集成,來(lái)說(shuō)明如何在實(shí)際的遠程教育開(kāi)發(fā)過(guò)程中使用Web Service集成技術(shù)。
教學(xué)管理模塊主要完成遠程教學(xué)的教學(xué)組織和人員管理;同步教學(xué)模塊是具體教學(xué)應用中的一部分,主要提供實(shí)時(shí)的網(wǎng)絡(luò )課堂教學(xué)功能。同步教學(xué)模塊中所需要的課程信息,學(xué)生和教師等信息都需要從教學(xué)管理模塊中獲得。在原有系統中,兩個(gè)模塊工作在同一個(gè)平臺上,訪(fǎng)問(wèn)同一個(gè)數據庫,獲取相應的信息,關(guān)聯(lián)比較強。為了減少這兩個(gè)模塊之間的關(guān)聯(lián),我們在重新設計的時(shí)候,考慮將這兩個(gè)模塊獨立起來(lái),在學(xué)生或教師進(jìn)入同步教學(xué)模塊的時(shí)候只傳遞最必要的信息,如課程號和用戶(hù)序號;其他大部分的相關(guān)用戶(hù)和系統信息都進(jìn)行抽象,通過(guò)Web Service方式在教學(xué)管理模塊中實(shí)現,在實(shí)時(shí)教學(xué)系統中進(jìn)行訪(fǎng)問(wèn)。這樣保證了兩個(gè)模塊之間可以很容易的分離和整合,也可以工作在不同的操作系統平臺上(Windows或Linux等)。
這兩個(gè)模塊之間集成的具體實(shí)現過(guò)程(以Microsoft.Net平臺的實(shí)現為例)。
(1) 系統需求分析
(2) 系統設計,劃分系統模塊
確定教學(xué)管理和同步教學(xué)分別獨立成一個(gè)模塊,教學(xué)管理模塊主要實(shí)現對網(wǎng)絡(luò )遠程教學(xué)的教學(xué)組織和人員管理。
(3) 確定模塊間的接口描述
根據需求分析和系統模塊設計,確定模塊之間接口的類(lèi)型,需要傳遞的參數和數據類(lèi)型。
教學(xué)管理模塊需要提供的接口:
用戶(hù)信息:用戶(hù)類(lèi)型,編號;
教師賬戶(hù):姓名,性別,……;
學(xué)生賬戶(hù):姓名,性別,屆,班級,……。
課程信息:課程名,授課時(shí)間,授課地點(diǎn),……。
同步教學(xué)模塊需要提供的接口:
授課情況:學(xué)生出勤情況,教師出勤情況,課程實(shí)際時(shí)間,……。
(4) 確定實(shí)現方法
使用基于Microsoft.Net的Web Service支持平臺,C#開(kāi)發(fā)語(yǔ)言;在Microsoft Visual Studio.Net集成開(kāi)發(fā)環(huán)境中開(kāi)發(fā)。抽象出一下需要實(shí)現的接口:
教師個(gè)人信息(姓名,性別),學(xué)生個(gè)人信息(姓名,性別,屆,班級),課程信息(課程名,授課時(shí)間,授課地點(diǎn)),學(xué)生出勤情況,教師出勤情況。
(5) 具體實(shí)現,測試
以查詢(xún)教師個(gè)人信息(姓名,性別)為例:
教學(xué)管理模塊:
定義WebSearchTeacherInfo命名空間;
定義結構:
包括教師ID,姓名,性別和結構信息有效標志。
public struct teacherInfo
{
public string ID;
public string Name;
public string Sex;’M-male,F-female
public boolean valid;’if this info is valid
}
接口實(shí)現:
public teacherInfo GetTeacherInfo(string id)
{
teacherInfo myReturn = new teacherInfo();
根據參數,查詢(xún)相應的數據表;如果有對應信息,則將查詢(xún)值賦給結構myReturn,同時(shí)給結構myReturn的valid子項置為true;如果參數不合法或是查詢(xún)不到對應信息,將結構myReturn的valid子項置為false;將結構myReturn作為返回值返回。
}
同步教學(xué)模塊:
代碼中引入Web服務(wù)相應的命名空間;在其他代碼中可以通過(guò)調用GetTeacherInfo方法,調用遠端的Web服務(wù)程序,查詢(xún)相應的教師個(gè)人信息。
Visual Studio.Net集成開(kāi)發(fā)中,Web Service中使用SOAP等協(xié)議傳輸會(huì )話(huà)的機制大部分都已經(jīng)被封裝,對于一般開(kāi)發(fā)者是透明的,在很大程度上提高了開(kāi)發(fā)效率;但同時(shí)也造成開(kāi)發(fā)人員對于系統的可控程度下降。使用J2EE平臺實(shí)現的時(shí)候,需要定義SOAP消息頭等XML腳本,以能夠實(shí)現基本的Web服務(wù)功能。在不同平臺開(kāi)發(fā)的時(shí)候,需要注意采用W3C的Web Service標準和模式,盡量不使用具體實(shí)現平臺的擴展功能,以免影響系統的兼容性。
(6) 發(fā)布Web服務(wù),進(jìn)行安全等方面的工作,完成系統集成
使用WSDL實(shí)用程序生成代理代碼,發(fā)布Web服務(wù)程序;在統一的服務(wù)發(fā)布服務(wù)器上,通過(guò)UDDI服務(wù)實(shí)現發(fā)現Web服務(wù)功能,便于查詢(xún)系統各模塊提供的Web Service服務(wù)。同時(shí)使用Web服務(wù)的身份驗證和授權技術(shù),提高系統的安全性。由于Web Service在安全性方面的標準剛剛出臺,還沒(méi)有實(shí)際應用,所以系統在身份認證和授權技術(shù)方面的實(shí)現還比較簡(jiǎn)單,只提供簡(jiǎn)單的密碼和授權認證。
通過(guò)使用基于Web Service的系統集成技術(shù),我們比較容易的把基于不同操作系統平臺和數據庫平臺的子應用集成在一起。比如:基于Windows2000操作系統和Microsoft SQL Server數據庫的異步教學(xué)系統,基于Linux操作系統和Postgres數據庫的教學(xué)論壇系統,等。
5 結束語(yǔ)
使用Web Service技術(shù)進(jìn)行系統集成,提高了系統的可擴展性和兼容性,增強了網(wǎng)絡(luò )教育平臺的適應能力,提高了系統的服務(wù)質(zhì)量。因為Web Service的標準還在發(fā)展過(guò)程中,逐漸會(huì )有新的特性加入進(jìn)來(lái),特別是在安全性方面。此外,基于Web Service的應用在開(kāi)發(fā)中還有許多地方需要改進(jìn),如實(shí)現API化,組件化,類(lèi)似轉發(fā)器的集成方式,等等。作為新興的Web應用的實(shí)現方式,Web Service會(huì )有個(gè)很好的發(fā)展前景,在網(wǎng)絡(luò )教育平臺的設計和開(kāi)發(fā)中也將發(fā)揮更多更重要的作用。
參考文獻
[1] ANIDO-RIFON L, FERNANDEZ-IGLESIAS M J, LLAMAS-NISTAL M.A Component Model for Standardized Web-Based Education .ACM Journal of Educational Resources in Computing Vol.1,No.2, 2001.
[2] IBM.Web Services for J2EE, Version 1.0.www.ibm.com,2002-08.
[3] SUN.Sun One 白皮書(shū).http://www.sun.com.cn,2002.1.
[4] W3C.Web Service 相關(guān)標準.http://www.w3c.org,2003-06.
[5] Morrison M.XML 揭秘——入門(mén)應用精通.陸新年,陸新宇,等.北京:清華大學(xué)出版社, 2001.
[6] Pritchard J.COM與CORBA本質(zhì)和互用.徐金梧,張曉彤,屈蓉,王海峰.北京:清華大學(xué)出版社,2002.
[7] Short S.構建XML Web服務(wù)——基于Microsoft.Net平臺.戴榮,馬方平,吳健,等.北京: 清華大學(xué)出版社,2002.
[8] ZDNet China.http://www.cn-java.com/target/news.php news_id=1648,2002-05.