摘 要:Web Service是新興的技術,將Web Service技術運用到數據抽取中,可以快速、準確地將數據抽取出來,并且能夠在不同網絡環境下進行數據處理。闡述Web Service 的優點和結構,從Web Service的原理入手,以網格項目做背景,設計數據抽取的模型,討論Web Service在數據抽取中的設計方法,并進行通過Web Service進行數據抽取的相關實驗。
關鍵詞:Web Service;數據抽取;抽取線程;數據庫
中圖分類號:TP392文獻標識碼:B
文章編號:1004-373X(2008)08-100-03
Research and Design of Data Extraction Based on Web Service
SUN Weijian1,WANG Yuding2,JIA Li1,ZHANG Xiaofang1
(1.School of Information Control Engineering,Xi′an University of Architecture Technology,Xi′an,710055,China;
2.Xi′an Communication Institute,Xi′an,710106,China)
Abstract:Web Service is a new technology,and using Web Service to extract data is exactly and quickly,and it can process the data in different environment.This paper expounds the advantage and structure.The paper also designs the model of data extraction based on the Web Service′s principle and a grid project,and discusses the design method of designing Web Service in data extraction,and makes an experiment correlative data extraction through Web Service.
Keywords:Web Service;data extraction;extraction thread;database
1 引 言
在現代數據庫的設計和操作中,由于數據庫中的數據在不斷更新,往往需要操作人員提取更新的數據,這個過程成為數據抽取。數據抽取是數據庫操作的基礎,也是使用人員獲得最新數據的方法,數據抽取技術已成為當今研究的一個熱點,利用數據抽取技術,通過對特定數據庫結構和數據項特征分析,可以將新數據或是感興趣信息準確的抽取出來,并保存在相應的數據庫以供查詢和其他應用程序的使用。
本文在一個數據庫網格項目中運用Web Service進行數據的抽取,系統使用Microsoft.Net平臺,C#開發語言;在Microsoft Visual Studio.Net 集成開發環境中開發。系統穩定,抽取數據快速準確,體現了Web Service在數據抽取中的優勢。
2 Web Service概述
Web Service 是完全基于XML (可擴展標記語言)、XSD(XML Schema)的獨立于平臺、獨立于軟件供應商的標準,是創建可互操作的、分布式應用程序的新平臺。Web Service的主要目標是實現跨平臺的可互操作性,是目前最有生命力的跨平臺技術。
2.1 Web Service 工作原理
Web Service 主要利用HTTP 和SOAP 協議使數據在網絡上傳輸,SOAP 通過HTTP 調用對象執行遠程功能調用,Web 用戶能夠使用SOAP 和HTTP 通過Web 調用的方法調用遠程對象。具體地說就是客戶端根據自己的業務工作流需求,使用瀏覽或直接獲取2種查找模式查找通過UDDI 發布在網上滿足自己需要的Web Service,獲得這些Web Service 的WSDL,生成客戶端代理。使用該客戶端代理就像使用本地組件,而代理通過SOAP 協議去激活遠程方法,實現數據存取。具體工作模式如圖1所示。

2.2 Web Service 平臺及組成部分
Web Service 的核心技術包括XML,SOAP,WSDL 和UDDI。WSDL(Web service description language) 是描述應用系統的邏輯接口,描述應用系統對外提供的服務, 定義了服務的位置, 以及使用什么通信協議與服務進行通信。UDDI(Universal Description Discovery and Integration) UDDI 是為Web Service 提供的、信息注冊中心的實現標準規范, 為客戶提供動態查找其他Web service 的機制。使用UDDI 接口, 商務處理可以動態地連接到外部的合作者提供的服務上。SOAP 是Web service 的通信協議, 是一個用來在分布式的環境中交換信息的簡單協議。他定義傳遞XMLencoded 數據時的統一方式, 他還定義使用HTTP 作為底層通信協議時執行遠程調用(RPC)的方法。他是一個基于XML的協議,可以用來在不同的計算機體系結構,不同語言和不同的操作系統之間進行通信, 可以運行在任何其他傳輸協議上。
3 模型設計
建立系統模型如圖2所示,用3個服務器分別作系統數據庫、數據庫中心服務器和UDDI服務器,數據抽取其核心思想將多個不同的本地業務系統數據“抽取”到中心數據庫,使中心數據庫和本地業務系統數據庫保持同步。由于各本地業務系統數據庫使用不同的數據庫,目前主要使用“Oracle,SQL Server,FoxPro”,為了讓“抽取”這一操作“透明化”,“抽取”在實施具體動作時利用“Web Service”技術,當中心數據庫的用戶需要抽取數據時,系統會啟動抽取線程,抽取線程將捕捉需要抽取的數據,如果發現有數據需要抽取,抽取線程將會根據自己的服務名向UDDI請求部署到相應系統Web Service的URL,隨后調用系統的Web service。在這里Web service會提供數據庫表操作的方法,進而完成對需要抽取數據庫的操作,部署在系統上的Web Service把操作的結果以SOAP方式發送給抽取線程,完成遠程對象的調用,最后抽取線程將結果返回到中心數據庫,實現數據抽取。

4 數據抽取設計
4.1 部署Web service應用程序
由于數據庫網格要集成多種大量的數據庫,因此Web Service的優勢很好體現出來,系統使用Web Service 技術實現各系統之間的消息和數據傳遞以及各系統到中心數據庫的數據傳遞。這樣保證了各系統之間可以很容易的分離和整合, 也可以工作在不同的操作系統平臺上(Windows 或Linux 等)。
部署到系統數據庫的Web service大致分為以下3類方法,其中方法2,3用DataSet作為數據類型是因為DataSet類型是以XML的形式來進行數據交流的,他可以跨越防火墻通信,這樣就可以使處于不同位置不同系統中的數據在網格中無障礙傳輸,保證了抽取的高效與準確。
[HTH]方法1:[HTSS]
bool RegisterUDDI(string UDDIIP,string URL,string bindingKey,string userName,string password)
{
//作用:注冊Web Service
}
[HTH]方法2:[HTSS]
DataSet GetAll(string tableName)
{
//作用: 根據表名將此表的數據全部抽取出來,也稱之為整表抽取。
}
[HTH]方法3:[HTSS]
DataSet GetUpdateOne(string tableName)
{
//作用:根據表名對此表所作的操作記錄下來,并將所更新的數據抽取到中心數據庫,也稱之為更新抽取。
}
兩種抽取方式比較來看,整表抽取是最為直接簡單的數據同步的方式,但是他的工作量很大,他將所有的有關需要抽取數據的表全部進行抽取,當數據庫很多時,這種抽取方式會影響效率,并且可能會出錯,針對這些問題,這里采用更新抽取方式,對于支持觸發器的數據庫(Oracle,SQL Server)可以利用在本地業務系統數據庫對要抽取的目標增加3個觸發器分加在表的“Insert”,“Update”,“Delete”動作上,當目標表有數據操作時,記錄當前操作的動作類型和標識此記錄的條件并保存下來。當抽取線程以更新的方式抽取數據時,Web Service就會通過以保存下來的信息返回相應的數據,而不是返回這個全部的數據。所以這種方式所占用的資源少并且不會影響效率。
4.2 抽取線程設計
抽取線程是數據抽取的核心程序,部署在I2S中,由一個C#.NET的新開一個線程來運行,針對每一個系統數據庫由與之相對應的一個抽取線程來抽取數據,他與部署在每一個系統上的Web Service相應。
在啟動抽取線程之后,線程調用RunThread方法在各個系統之間隔設定的時間段輪詢查找,并調用FindOperations方法查找將要抓取的業務部門,如果有系統需要抽取數據,線程將調用該系統的Web Service數據抽取到中心數據庫。
5 實驗分析與總結
在所集成30個系統中做實驗,所抽取數據與所用時間如下表所示,數據抽取沒有任何錯誤。在實際應中,大數據量抽取應用比較廣泛,比如一個月整個單位人員工資發放的數據等。所以大數據量抽取也是衡量數據抽取的條件之一。從表1可以看出,隨著抽取數據條數增加,抽取時間并不是在按比例增加,而是相對來說時間更長一些,因為還存在網絡流量等方面的因素。通過設計和試驗發現,利用Web service抽取數據是分布式數據庫集成設計的又一大突破,他很好地體現了客戶端和服務器端操作的透明性,由企業發布的完成特別商務需求的應用服務,其他公司或應用軟件能夠通過Internet訪問并使用這項服務。用戶只要在客戶端輸入一定的查詢條件而不需要知道對應的數據庫是什么結構,在什么位置,也不必知道服務器是怎么實現。此外,客戶和服務器的耦合程度很低,之間是透明的,服務器暴露出遠程對象的接口,客戶端就好像在使用本地對象的接口一樣,這樣就實現了不同平臺之間的互操作性。而且,Web Service 技術構建的應用程序可以跨越防火墻通信。Web 服務使用被廣泛支持的標準的XML描述其數據格式,所有支持這種標準的系統都可以理解Web 服務的消息。

6 結 語
Web Service 技術一個重要的應用方向在數據抽取技術上,基于Web Service 技術的整個數據抽取準確、高效,系統具有可擴展性與可維護性。本文設計通過Web Service抽取數據,并做了實驗。
參 考 文 獻
[1]柴曉路,梁宇奇.Web Service技術、架構和應用[M].北京:電子工業出版社,2003.
[2]Mickey Williams.Microsoft Visual C #.NET Core Reference [M].北京:清華大學出版社,2003.
[3]段云峰,吳唯寧.數據倉庫及其在電信領域中的應用[M].北京:電子工業出版社,2003.
[4]何強,林宏基.基于web service 的分布式應用系統的研究及應用[J].福建電腦,2006(1):136137.
[5]張成洪,古曉洪,白延紅.Web數據抽取技術研究進展[J].計算機科學,2004,31(2):129131,151.
[6]Arocena G,Mendelzon A.WebOQL:Restruvturing Documents,Databases and Webs\\[C\\].In:Proc.of the Intl.Conf.on Data Engineering,IEEE Computer Society,1998.
[7]劉瑛,白振興,褚文奎.基于數據挖掘的OLAP分析技術及應用\\[J\\].現代電子技術,2006,29(1):7274.[HJ0]
作者簡介 孫偉艦 男,1982年出生,內蒙古鄂爾多斯人,西安建筑科技大學碩士研究生。主要研究方向為網絡及其應用技術。
王于丁 男,1984年出生,河北石家莊人,解放軍西安通信學院碩士研究生。主要研究方向為數據庫與網格設計開發。
賈 麗 女,1981年出生,河北邢臺人,西安建筑科技大學碩士研究生。主要研究方向為分布式系統與計算機網絡應用。