張軍
摘 要:基于SOAP協(xié)議的Web Services已經(jīng)成為網(wǎng)絡(luò)應(yīng)用發(fā)展的主流,利用Web Services技術(shù)完成組織內(nèi)部各業(yè)務(wù)系統(tǒng)異構(gòu)數(shù)據(jù)的交換與共享也成為較主流的解決方案?;诖?,設(shè)計了基于Web Services的數(shù)據(jù)交換平臺,文章對平臺系統(tǒng)的框架設(shè)計做了重點闡述,同時對平臺系統(tǒng)的功能以及具體實現(xiàn)方法做了說明。平臺系統(tǒng)使用Web Services實現(xiàn)對各個不同業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)進行交換與共享,有效提高了系統(tǒng)的擴展性和模塊化程度,同時降低了開發(fā)成本,提高了開發(fā)效率,對類似系統(tǒng)的建設(shè)具有示范及借鑒意義。
關(guān)鍵詞:Web Services;數(shù)據(jù)交換;數(shù)據(jù)共享
中圖分類號:TP315 文獻標識碼:A
Abstract:As web services based on SOAP protocol has become the mainstream of the development of network applications,the heterogeneous data exchange and sharing among internal business systems through Web Services technology has become a quite commonly adopted solution.A data exchange platform is designed based on Web Services.The paper elaborates on the framework of the platform system,and specifies the functions and the implementation methods of the platform system.Web Services technology is applied in the system to implement the data exchange and sharing among different business systems,which effectively improves the system expansibility and modularity,reduces the development cost,improves the development efficiency,and offers some reference to the construction of similar systems.
Keywords:web services;data exchange;data sharing
1 引言(Introduction)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,很多組織先后構(gòu)建了滿足不同功能需求的業(yè)務(wù)管理系統(tǒng),這些系統(tǒng)大多采用不同的開發(fā)技術(shù)和數(shù)據(jù)格式,這就形成了一個巨大的異構(gòu)數(shù)據(jù)環(huán)境。隨著信息化程度的提高,各業(yè)務(wù)系統(tǒng)間就會存在各種協(xié)議交換和業(yè)務(wù)流程的關(guān)聯(lián),當業(yè)務(wù)處理過程中所產(chǎn)生的數(shù)據(jù)不能進行統(tǒng)一的管理,就會出現(xiàn)數(shù)據(jù)遺漏、不同步、不統(tǒng)一、不實時等一系列問題[1]。
數(shù)據(jù)交換就是要實現(xiàn)在異構(gòu)的網(wǎng)絡(luò)環(huán)境中,不同的操作平臺、不同地方和不同的數(shù)據(jù)結(jié)構(gòu),以統(tǒng)一的、標準的數(shù)據(jù)展現(xiàn)給終端使用者[2];解決各個業(yè)務(wù)系統(tǒng)間共享數(shù)據(jù)的一致、實時、安全、準確等問題。為企業(yè)提供全局的數(shù)據(jù)視圖和完善的數(shù)據(jù)權(quán)限管理,讓各種數(shù)據(jù)能夠互聯(lián)互通,從而產(chǎn)生更為完善的信息服務(wù)。本文以湖南鐵道職業(yè)技術(shù)學院數(shù)據(jù)中心數(shù)據(jù)交換平臺開發(fā)為背景,闡述了利用Web Services等技術(shù)實現(xiàn)數(shù)據(jù)共享與數(shù)據(jù)交換的基本方法、技術(shù)原理和思路。
2 系統(tǒng)設(shè)計(System design)
不同業(yè)務(wù)系統(tǒng)間要實現(xiàn)異構(gòu)數(shù)據(jù)的交換主要面臨以下兩個關(guān)鍵問題,首先是怎么解決不同業(yè)務(wù)異構(gòu)數(shù)據(jù)源所產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換問題,其次是要解決不同業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)傳輸和交互問題。本文采用了Web Services技術(shù)來解決數(shù)據(jù)交換和互操作問題,以期實現(xiàn)多業(yè)務(wù)系統(tǒng)間異構(gòu)數(shù)據(jù)的交流和共享。Web Services是利用SOAP協(xié)議傳輸標準的XML數(shù)據(jù),采用這種方式使得系統(tǒng)具有良好的跨平臺性[3]。同時,Web Services也具有良好的復(fù)用性和擴展性,當組織部署了新的業(yè)務(wù)系統(tǒng),需要與原有系統(tǒng)產(chǎn)生數(shù)據(jù)交換時,只需要在數(shù)據(jù)交換平臺配置好相關(guān)數(shù)據(jù)源,發(fā)布對應(yīng)的Web Services接口即可,不需要對系統(tǒng)功能及數(shù)據(jù)庫進行任何的變動。
2.1 Web Services
Web Services采用基于XML協(xié)議格式來封裝數(shù)據(jù)用以在因特網(wǎng)上傳輸,使用SOAP協(xié)議來實現(xiàn)訪問服務(wù)。這兩項技術(shù)的使用使得Web Services具有良好的封裝性和松散耦合,對于使用者而言,只能看到服務(wù)的描述,對與調(diào)用者來說,Web Services實現(xiàn)的任何操作都是透明的。Web Services也同時具有標準的協(xié)議規(guī)范以及高度的可集成性等特點[4]。Web Services體系結(jié)構(gòu)主要有服務(wù)請求者、服務(wù)注冊中心和服務(wù)提供者三種角色,交互主要是服務(wù)發(fā)布、服務(wù)查找和服務(wù)綁定三種操作。服務(wù)提供者完成Web Services的定義和服務(wù)的描述并將其發(fā)布至服務(wù)代理中心,服務(wù)請求者先從服務(wù)代理中心查找到相關(guān)服務(wù)的描述,然后根據(jù)服務(wù)描述完成與服務(wù)提供者的綁定,通過SOAP完成服務(wù)的調(diào)用[5]。圖1給出了Web Services的基本框架結(jié)構(gòu)。
2.2 系統(tǒng)架構(gòu)設(shè)計
數(shù)據(jù)交換中心采用Web Services技術(shù)進行數(shù)據(jù)操作的封裝,不會對原有業(yè)務(wù)系統(tǒng)的功能和業(yè)務(wù)操作產(chǎn)生任何影響,只是將業(yè)務(wù)系統(tǒng)需要公開共享的數(shù)據(jù)操作當作一種服務(wù),包裝成Web Services,通過對Web Services的請求和調(diào)用來實現(xiàn)業(yè)務(wù)系統(tǒng)間對數(shù)據(jù)的交換和共享的需求。數(shù)據(jù)交換中心的總體結(jié)構(gòu)是采用當前主流的三層B/S架構(gòu)。B/S結(jié)構(gòu)能夠很好的滿足當前網(wǎng)絡(luò)開放、互聯(lián)、信息隨處可見的需求,采用WWW瀏覽器技術(shù)簡化了客戶端,使用通用瀏覽器就可以實現(xiàn)原來專用客戶端軟件才能實現(xiàn)的強大功能。瀏覽器端僅處理一下簡單的數(shù)據(jù)展示和交互等相關(guān)功能,將系統(tǒng)主要的業(yè)務(wù)邏輯處理和數(shù)據(jù)操縱處理移至應(yīng)用服務(wù)器,從而形成了典型的三層分布式框架結(jié)構(gòu),即展示層、邏輯處理層及數(shù)據(jù)庫訪問層。
數(shù)據(jù)交換中心不存儲各業(yè)務(wù)系統(tǒng)所提供的數(shù)據(jù),只提供所發(fā)布的Web Services訪問接口和數(shù)據(jù)定義,用戶或其他業(yè)務(wù)系統(tǒng)只需要發(fā)出服務(wù)請求,數(shù)據(jù)交換中心就能夠根據(jù)請求的數(shù)據(jù)定義獲取數(shù)據(jù)再返回給數(shù)據(jù)請求者。當業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)定義或是數(shù)據(jù)類別發(fā)生的變更,只需將相關(guān)的Web Services接口進行修改或是增刪,然后重新發(fā)布即可,無需對數(shù)據(jù)交換中心做任何改動,這就實現(xiàn)了系統(tǒng)的松散耦合性,增強了系統(tǒng)靈活性和擴展性。
平臺中數(shù)據(jù)請求角色(包括用戶和其他業(yè)務(wù)系統(tǒng))通過Web Services來實現(xiàn)具體的數(shù)據(jù)請求操作,Web Services通過數(shù)據(jù)庫庫訪問層與業(yè)務(wù)系統(tǒng)目標數(shù)據(jù)庫完成數(shù)據(jù)交換,將處理后的數(shù)據(jù)返回給請求方。結(jié)合Web Services的工作原理和機制,圖2展示了三層分布式數(shù)據(jù)交換平臺的基本框架結(jié)構(gòu)。
3 系統(tǒng)實現(xiàn)(System implementation)
根據(jù)前面對平臺系統(tǒng)的結(jié)構(gòu)分析,數(shù)據(jù)交換平臺采用微軟的ASP.NET技術(shù),使用的開發(fā)環(huán)境為Microsoft Visual Studio 2012,用C#語言來構(gòu)造應(yīng)用程序。為提升系統(tǒng)的界面友好性和交互效果,在平臺系統(tǒng)的應(yīng)用表示層使用了大量的jQuery庫中相關(guān)插件,平臺系統(tǒng)邏輯處理層主要以Web服務(wù)的形式組織封裝,功能模塊都被封裝成Web Services發(fā)布,供表示層和其他需要數(shù)據(jù)交換的業(yè)務(wù)系統(tǒng)調(diào)用,大大提高了系統(tǒng)的模塊化程度,簡化了開發(fā)難度,提升了開發(fā)效率,而且使得系統(tǒng)具有良好的可擴展性和可維護性。下面我們以獲取科研管理系統(tǒng)相關(guān)科研數(shù)據(jù)為例,簡要說明一下Web Services的實現(xiàn)數(shù)據(jù)交換的過程??蒲泄芾硐到y(tǒng)主要包括科研項目管理和科研成果管理兩大核心功能,其產(chǎn)生的科研數(shù)據(jù)和論文數(shù)據(jù)需要交付給人事管理系統(tǒng)作為師資職稱評定的依據(jù)。因篇幅有限,在此僅以獲取教師發(fā)表論文數(shù)據(jù)為例來說明服務(wù)的實現(xiàn)。下面提供了Web服務(wù)端和客戶端的關(guān)鍵代碼和實現(xiàn)過程。
數(shù)據(jù)訪問層主要采用ADO.NET組件來完成數(shù)據(jù)庫的連接,數(shù)據(jù)的檢索和更新操作。ADO.NET提供了多種對象模型來完成的數(shù)據(jù)源的不同訪問功能,本例使用了SqlDataAdapter對象完成與數(shù)據(jù)庫的交互。該對象通過Fill方法將數(shù)據(jù)源數(shù)據(jù)填充到DataSet或者DataTable中,填充完成后就與數(shù)據(jù)庫服務(wù)器的連接斷開。
上述代碼利用ADO.NET組件構(gòu)建了一個數(shù)據(jù)訪問對象,從系統(tǒng)配置文檔中獲取目標數(shù)據(jù)庫的連接字符串,根據(jù)傳遞的參數(shù)創(chuàng)建數(shù)據(jù)查詢語句,然后將數(shù)據(jù)庫訪問字符串和查詢語句傳遞給數(shù)據(jù)庫操縱類,完成數(shù)據(jù)的查詢操作。再由Web Services將查詢結(jié)果返回給調(diào)用者。因篇幅有限,此處僅展示測試頁面,如圖3所示。
輸入相關(guān)參數(shù),即可獲得響應(yīng),如圖4所示。
4 結(jié)論(Conclusion)
通過該系統(tǒng)的建設(shè)能夠全面滲透到組織內(nèi)部的各項業(yè)務(wù)管理環(huán)節(jié),能夠?qū)Ω鱾€業(yè)務(wù)系統(tǒng)構(gòu)建一個溝通交互的橋梁,并能形成一個實時、高效的數(shù)據(jù)共享平臺和數(shù)據(jù)管理中心。通過實踐可以證明,Web Services等技術(shù)的應(yīng)用能夠為信息化建設(shè)過程中各業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)共享、交互提供有效的解決方案,消除了信息孤島。該系統(tǒng)目前已經(jīng)在湖南鐵道職業(yè)技術(shù)學院實施部署,完成了科研、人事、辦公系統(tǒng)以及資產(chǎn)等數(shù)據(jù)的交互與共享,系統(tǒng)運行穩(wěn)定,滿足了各類用戶的需求,達到了數(shù)據(jù)共享交互的目的,同時對類似系統(tǒng)的建設(shè)具有示范及借鑒意義。
參考文獻(References)
[1] 王濤.數(shù)據(jù)共享與數(shù)據(jù)交換系統(tǒng)的設(shè)計與實現(xiàn)[D].大連:大連理工大學,2015.
[2] 劉嘉.基于XML和Web Services數(shù)據(jù)交換系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:華南農(nóng)業(yè)大學,2016.
[3] Xiao WX,Liu Z.The Development of Web Service Composition Based on XML Security Models and AJAX Technology.International Journal of Advancements in Computing Technology,2012,4(19):83-90.
[4] 尚龍華,安毅生,張紹陽.基于Web服務(wù)的交通數(shù)據(jù)交換過程[J].計算機系統(tǒng)應(yīng)用,2015,24(3):260-264.
[5] 郭曉陽.Web Services性能測試方法的設(shè)計和實現(xiàn)[D].北京:北京郵電大學,2010.
作者簡介:
張 軍(1984-),男,碩士,講師.研究領(lǐng)域:可信軟件,數(shù)據(jù)分析與處理.