〔摘 要〕研究了使用XML結合SOAP、WSDL等技術解決校園信息化建設中數(shù)據(jù)重復和信息孤島等問題的方案。首先進行數(shù)據(jù)建模,將校園異構系統(tǒng)信息表述為標準的XML格式,通過SOAP封裝、WSDL描述實現(xiàn)對信息的請求、響應和傳輸,解決校園分布式環(huán)境下數(shù)據(jù)格式不一致的難題,實現(xiàn)異構系統(tǒng)之間的通訊,實現(xiàn)的資源共享。
〔關鍵詞〕可擴展標記語言;簡單對象訪問協(xié)議;Web服務描述語言;統(tǒng)一描述、發(fā)現(xiàn)和集成
〔中圖分類號〕G203 〔文獻標識碼〕A 〔文章編號〕1008-0821(2009)07-0076-03
Research and Design on the Campus Information
Shared Scheme Based on XML/SOAPDu Juan
(College of Economy and Management,Southwest University of Science and Technology,Mianyang 621010,China)
〔Abstract〕This paper studied the scheme that solved the problems of data repetition and isolated information island in the campus information construction using XML and SOAP,WSDL and other Web services technology.First,set data modeling,described the campus heterogeneous systems information to standard XML format,then realized the request,response and transmission of information through SOAP packaging and WSDL description,solved the difficult problem of inconsistent data formats in campus distributed environment,realized the communications of heterogeneous systems,realized resources sharing.
〔Key words〕XML;SOAP;WSDL;UDDI
現(xiàn)階段高校內部教學、科研、辦公、管理等各方面事務都逐漸從單純的手工、文檔管理方式向信息化、系統(tǒng)化管理發(fā)展。然而,在實現(xiàn)多個基于本地數(shù)據(jù)庫的信息管理系統(tǒng)的同時,出現(xiàn)了信息重復、資源浪費、交互困難的情況,隨之而來的還有信息不同步、形成資源孤島等問題。
以XML作為信息存儲和交換的格式,可以很好的解決校園中存在的“信息孤島”問題,實現(xiàn)不同系統(tǒng)之間的集成與交互以及異構數(shù)據(jù)庫間的數(shù)據(jù)共享。XML不僅提供具有意義的數(shù)據(jù),也提供了驗證的方式(XML Schema),使得程序能輕易地獲得內容,并能夠徹底地完成內容數(shù)據(jù)和表達方式的分離。將XML作為標準的信息表示格式,同時利用基于XML的開放的數(shù)據(jù)接口和分布式數(shù)據(jù)管理能力,實現(xiàn)對跨平臺、各種異構數(shù)據(jù)庫的統(tǒng)一數(shù)據(jù)交換和管理,實現(xiàn)數(shù)據(jù)在全校部門、學院之間順暢的流通。數(shù)據(jù)交換的核心問題是信息的標準化,主要解決信息的可理解性問題,包括人和機器對信息的理解,最重要的是機器對信息的識別,并能根據(jù)數(shù)據(jù)進行自動處理。XML為信息的標準化提供了有力的工具。在校園信息平臺中,各部門、學院之間使用XML作為數(shù)據(jù)交換的統(tǒng)一格式,用XML統(tǒng)一表示來自不同數(shù)據(jù)源的數(shù)據(jù),可以實現(xiàn)系統(tǒng)間的數(shù)據(jù)交換,實現(xiàn)信息共享[4]。
其次,還必須有一種方法來進行消息的傳遞?;赬ML的簡單對象訪問協(xié)議SOAP可以和任何的傳輸協(xié)議聯(lián)合使用,可以方便地穿越防火墻,面向服務體系結構中的發(fā)布、查找和綁定操作都可以得到SOAP的支持。將SOAP+HTTP應用于校園分布式信息平臺中,實現(xiàn)對校園分布式環(huán)境中XML格式的數(shù)據(jù)的封裝和傳輸,進而實現(xiàn)部門之間的便利信息交互。另外,使用WSDL來描述Web服務,對服務的實現(xiàn)和接口進行標準化的定義,為部門、學院之間的服務調用提供具體的方法。
1 數(shù)據(jù)建模
在XML的項目中,首先應該創(chuàng)建標準的數(shù)據(jù)格式。為此我們首先要考慮在本校園分布式信息平臺的開發(fā)模塊中涉及到哪些數(shù)據(jù),定義描述數(shù)據(jù)交換中所涉及事實的數(shù)據(jù)模型。具有高置信度的模型一旦被創(chuàng)建,數(shù)據(jù)模型便可以轉換成為schema,然后才能繼續(xù)開展以后的工作。
首先,讓我們對校園信息化建設中的“黨建”、“人事”信息進行數(shù)據(jù)分析。學校的“黨建”管理工作的目的在于管理全校黨員的黨建信息,其中的黨建信息涉及到很多數(shù)據(jù)項。通過走訪和調查,經過分析和整理,得到“黨建”管理模塊的數(shù)據(jù)邏輯結構,其中包括姓名、所在支部、申請入黨時間、黨校學習情況、入黨時間、轉正時間等數(shù)據(jù)項。同理,“人事”管理模塊的數(shù)據(jù)邏輯結構包括編號、姓名、性別、出生年月、參加工作時間、職稱、學歷等數(shù)據(jù)項,如圖1所示。
接下來,為了可以結構化地定義有關數(shù)據(jù),需要對以上兩個模塊進行數(shù)據(jù)建模。一般來說,就是定義Schema文件,在定義了Schema后,所有的數(shù)據(jù)都將按照這個Schema來組織和檢查。XML Schema是一種控制文檔結構的方法,使用XML語法,具有XML的特點。作為XML語言的主要模塊,Schema對標識的標準化模式起著極其重要的作用。因為模式在發(fā)送者和接收者之間規(guī)定了強制性的協(xié)議,有利于文檔之間的信息交流,而且可以在不同的群體之間共享,使得在不同的應用程序間創(chuàng)建、管理和處理相同的文件變得容易,共享數(shù)據(jù)模式極大地簡化了XML詞匯的創(chuàng)建和維護,提高了數(shù)據(jù)的可靠性[5]。
在開發(fā)過程中,我們采用Axis這個Soap引擎來實現(xiàn)對數(shù)據(jù)的建模:
首先在服務提供方開發(fā)Java接口和類,然后使用Axis中的Java2WSDL工具從Java接口和類創(chuàng)建WSDL,WSDL中的types元素描述了數(shù)據(jù)的Schema。數(shù)據(jù)項信息體現(xiàn)在定義的Java類中,該類的編寫符合JavaBean的規(guī)范,簡單地說就是通過get/set方法來定義數(shù)據(jù)項。例如,組織部定義“黨建”模塊的Java類:
public class Dangjian implements java.io.Serializable{
private java.lang.String JPTime;∥定義“入黨時間”
……
public java.lang.String getJPTime(){
? return JPTime;}
public void setJPTime(java.lang.String JPTime){
? this.JPTime=JPTime;}
……}
同時,把方法的參數(shù)和返回值數(shù)據(jù)類型設為對象,比如提供一個接口用來發(fā)送短信息,那么希望接口的參數(shù)是一個消息對象,這個消息對象封裝了一條信息的所有內容包括發(fā)送者、接收者、發(fā)送時間、信息內容等等。因為如果把每個內容都做成一個參數(shù),那這個接口的參數(shù)可能會非常的多,因此封裝成對象是很有必要的。Axis要求復雜類型對象的編寫必須符合JavaBean的規(guī)范,就是對象的屬性是通過get/set方法來訪問的。
創(chuàng)建的Java接口部分代碼如下:
public interface DangjianService extends java.rmi.Remote{
public dj7.Dangjian getDangjianInfo(java.lang.String in0);∥查詢單條記錄的方法
public boolean deleteDangjianInfo(java.lang.String in0);∥刪除記錄的方法
public dj7.Dangjian[] getAllDangjianInfo(java.lang.String in0);∥查詢多條記錄的方法
public boolean addDangjianInfo(java.lang.String[] in0);∥添加記錄的方法
public boolean modifyDangjianInfo(java.lang.String[] in0);∥修改記錄的方法
public int getRowCount(java.lang.String in0);∥返回記錄條數(shù)
}
用Java2WSDL工具從上述接口、類創(chuàng)建WSDL文件。生成的WSDL文檔的types元素是Dangjian這個JavaBean到WSDL的映射,它描述了Web服務與用戶之間交換的消息的所有數(shù)據(jù)類型,XML Schema是默認的類型系統(tǒng)。部分WSDL文檔:
上述Schema文件分別定義了Web Services環(huán)境中傳輸“黨建信息”“人事信息”時所要遵守的的格式。如:人事處的“人事信息”包含“姓名”、“職稱”、“學歷”等項,元素ZhiChen為string類型,可以為空……組織部的“黨員信息”包含“入黨時間”、“共青團推優(yōu)時間”、“入黨證書編號”等項,元素JPTime為string類型,可以為空……人事處、組織部服務器端將包含調用結果的實例對象按照這個Schema文件的格式要求轉換成客戶端所要求的XML文檔,進而構造返回給客戶端的SOAP消息,完成服務的請求;客戶端可以根據(jù)這個Schema文件完成對響應SOAP消息的解析(具體通過WSDL中types元素映射生成的類來實現(xiàn),該類實現(xiàn)了序列化接口)。
2 信息的傳輸
其次,是要實現(xiàn)將XML格式的數(shù)據(jù)通過SOAP進行傳輸。采用Axis引擎實現(xiàn)數(shù)據(jù)的SOAP傳輸,主要通過jaxrpc來實現(xiàn)。對于客戶端,主要使用Call類來完成調用Web服務,在客戶端的stub類中,設置一個org.apache.axis.client.Call對象來調用服務,實際上,服務的請求和響應都是靠Call類中的invoke()方法來實現(xiàn)的,在調用invoke()方法前,需要對Call的屬性進行設置,其中,setTargetEndpointAddress()方法設置了服務的endpoint,這個標志著服務地址的參數(shù)是從Locator類中傳來的,在本系統(tǒng)中的值為:http:∥222.196.35.143:8080/axis/services/DangjianService7,setOperationName()方法設置了服務操作名稱及其方法。invoke()方法把Call對象轉換成XML SOAP請求,并把請求發(fā)送給endpoint,當返回應答后,invoke()方法返回一個java.lang.Object對象,這個對象中包含的或者是客戶端需要得到的服務器應答,或者是錯誤信息。服務器端響應過程如圖2所示。
在Axis處理SOAP消息時,會涉及到序列化或反序列化問題。序列化指的是把一個Java對象寫到一個XML文檔上的過程;反序列化則指從一個XML文檔中讀取一個對象定義并基于該定義創(chuàng)建一個Java對象的過程。Axis提供了許多類來實現(xiàn)內建支持類型的序列化和反序列化,用Java的基本數(shù)據(jù)類型及其對象形式作為方法參數(shù)時是無縫的,不需要考慮序列化和反序列化的問題。Call對象的registerTypeMapping()方法起到為序列化/反序列化器注冊類型映射信息的作用。
實現(xiàn)了SOAP封裝后,信息以一個標準的xml格式在校園分布式環(huán)境中進行傳輸。同理,其他部門如科技處、學生處等也能制訂自己的模式文件,以XML格式表述信息,解決數(shù)據(jù)格式不一致的難題和異構系統(tǒng)之間的通訊,從而使不同應用系統(tǒng)之間交換數(shù)據(jù)變得容易,實現(xiàn)校園分布式環(huán)境下的資源共享。符合模式文件,含有黨員信息的XML示例文件如下:
?
?
?
?
3 服務的發(fā)布和發(fā)現(xiàn)
最后,我們需要讓所設計的Web服務能夠讓其他部門所找到,所以要應用一些方法來讓服務開發(fā)者發(fā)布服務,讓服務的使用者發(fā)現(xiàn)Web服務,UDDI確定了一種機制,使得校園分布式環(huán)境下的Web服務提供者可以為其Web服務作廣告,也使得Web服務調用者能找到其感興趣的Web服務。
參考文獻
[1]張云濤,溫浩宇.應用Web Services降低供應鏈信息系統(tǒng)總擁有成本[J].現(xiàn)代情報,2008,(7):53-55.
[2]柳巧玲,叢秋實,等.基于Web服務的業(yè)務流程管理集成應用研究[J].情報雜志,2007,(2):51-52.
[3]Fu X,Bultan T,Su J.WSAT:A Tool for Formal Analysis of Web Services[C].Proceedings of the 16th International Conference on Computer Aided Verification,2004.7.
[4]孫霞.基于XML的數(shù)字化校園信息發(fā)布與交換技術研究[D].武漢:武漢理工大學,2005:4-26.
[5]李益紅,王娟.XML及其在電子商務中的應用[J].福建電腦,2004,(3):34.