Web Service
Web Service是基于網絡的、分布式的模塊化組件,它的跨平臺的操作特點以及它所基于的完全開放性的XML技術使得它可以通過統一的界面檢索分布式異構數據庫中的數據并將檢索結果集成提供給用戶。
1.Web Service的關鍵技術。Web Service是使用標準網絡協議可以訪問的應用程序邏輯編程接口,它提供一套標準,用于不同平臺、編程語言和組件模型中的不同類型系統進行無縫通信和數據共享。目前這些協議主要有:
(1)XML和XSD。XML是Web Service平臺中表示數據的基本格式。具有易建立、易分析和與平臺無關的優點。
Web Service平臺是用XSD來作為數據類型系統的。
(2)SOAP。SOAP是用于交換XML編碼信息的輕量級協議,可以運行在任何其他傳輸協議上。
2.Web Service的特點。(1)Web Service是一種部署在Web上的對象,具備對象的良好封裝性。(2)Web Service使用標準的描述語言(WSDL)來描述界面所提供的功能、Web Service的集成、跨Web Service的事務、工作流等,具有使用協約的規范性。(3)Web服務采取標準Web協議作為組件界面描述和協同描述規范,完全屏蔽了不同軟件平臺的差異,實現了在當前環境下最高的可集成性。
.NET環境下的開發
Microsoft.NET平臺內建了對Web Service的支持,包括Web Service的構建和使用。其中的ADO.NET提供對SQL Server等數據源以及通過XML公開的數據源的一致訪問。
SQL數據庫與Web Service交互訪問實例
基于.NET的Web Service訪問SQL Server 2000中的數據相對簡單,但是SQL Server 2000沒有現成的組件直接訪問Web Service,然而這種訪問方式對信息的共享往往又是非常重要的,我們利用SQL Server 2000的優越性能實現這種交互訪問。
首先為企業B在.NET中新建一個Servicel的Web服務,連接所訪問的數據庫,這里我們建一個供企業A訪問的接口函數DataB()如下所述,它返回的是一個記錄集,然后在IIS服務器端部署這個Servicel服務,這里不再贅述。以企業A訪問企業B提供的Web Service接口為例,先為企業A新建一個控制臺應用程序,命名為AGetDataFromB,然后為其添加Web引用http://www.Company B.CN/Web Service/Servicel,Web引用命名為Company B。如訪問企業B提供的接口函數DataB()如下:
[WebMethod]
PublicDataSetDataB(DataSetds)
{SqlconnectionConnection=newSqlConnetion(connectionString);//數據追加
Connection.Open();
SqlDataAdapterda=new
SqlDataAdapter(“select*frommaster”,connection);
DataSetds=newDataSet();
Da.Fill(ds);
Connection.Close();
returnds;
}
控制臺應用程序AGetDataFromB如下:
NamespaceAGetDataFromB
{
classClassl
{[STAThread]
StaticintMain(string[]args)
{CompanyB.Servicel
myservice=newCompanyB.Servicel();
Myservice.DataB();
編譯后生成可執行文件AGetDataFrom.exe,下面建立訪問它的存儲過程pr_useCompanyBServices如下:
CREATEPROCEDURE[dbo].[pr_useCompanyBServices]
@paravarchar(250)――參數變量
AS
DECLARE@cmdsysname,@varsysname
set@cmd=’path¥AGetDataFromB.exe’+@para――path為AGetDataFromB.exe存放路徑
exec@return=master..xp_cmdshell@cmd,no_output
return
GO
利用存儲過程與使用T-SQL語句查詢相比可以顯著改善性能和簡化維護,并且大大提高數據庫服務器的安全。通過SQL查詢分析器輸入相應的參數執行此存儲過程,可以得到企業B所提供的數據集。這種方法對于其它一些數據庫如Oracle、Sybase等信息共享的具有一定的借鑒意義。
這種方法雖然實現了Web Service與SQL Server 2000的交互通信, 但是效率較低,隨著Web Service技術和計算機硬件技術的發展,這些問題將逐步解決。
[1]牛敬效.Web服務同數據庫的信息交換,計算機世界,2004.
[2]張志強,張景,張志剛等.基于Webselvice的應用系統開發初探區計算機應用,2003.
劉勇,河南科技大學電信學院
李永英,平頂山工業職業技術學院計算機系