建置 SQL Server 2005 Web Services

 

 

SQL Server 2005 (YUKON) 預計在 2005年六月份上市,目前的版本為 Beta 2,若想先睹為快,您必須是MSDN Subscriptions的付費訂閱者,才能下載測試版的軟體 ( Library 訂閱層級除外)。若確定擁有訂閱者的權限,那你就可以到 http://msdn.microsoft.com/subscriptions/ 登入後下載 YUKON beta 2 版本。

 

由於 SQL Server 2005 有推出免付費的版本,SQL Server 2005 Express,目前的版本也是 Beta 2,但不支持本文的主題:Web Services,所以如果您要參考本文做練習,請不要下載這個版本。

 

另外,SQL Server 2005 (YUKON) 已經將 Web Services 的建置功能獨立出來,不需要另外安裝 IIS Web Server,也不再以 SQLXML ISAPI 來建置,改以 HTTP.SYS建立 Web Services,由於 HTTP.SYS Windows 2003 Server 才提供,所以如果要達成在 SQL Server 2005 (YUKON) 直接將資料操作轉成 Web Services,必須將SQL Server 2005 (YUKON) 安裝在 Windows 2003 Server 上。

假設一切安裝就緒,開始執行 SQL Server 2005 (YUKON) 中的SQL Server Management Studio,輸入帳號和密碼連線選取的 SQL Server

 

 SQL Server 2005 Management Studio

19 

由於 SQL Server 2005 (YUKON) Beta 2 裡面並沒有範例資料庫,所以我從 SQL Server 2000 中將 Northwind 資料庫匯入到SQL Server 2005 中,供測試之用。

 

SQL Server 2005(YUKON) 中,可以將 Store Procedure User Define Function (UDF) 來建立 Web Services,筆者以 Store Procedure做範例,先建立一個名為 queryEmployees Store Procedure,供下面所要設定的 Web 方法來對應:

 

以 Store Procedure 設定的 Web 方法來對應 

 

20

輸入 Store Procedure 程式碼:

 

(queryEmployees)

ALTER PROCEDURE [dbo].[queryEmployees]

           @EmployeeID [int]

WITH EXECUTE AS CALLER

AS

SELECT         EmployeeID, LastName, FirstName,Title,TitleOfCourtesy, Address, City,Country

FROM             Employees

where EmployeeID >= @EmployeeID

 

SQL Server 2005(YUKON) Web Services 稱為 HTTP Endpoint,可以使用CREATE ENDPOINT的方式,來建立Web Services

 

 

HTTP Endpoint 建立Web Services 

21

 

點選『New SQL Server Query』,輸入 CREATE ENDPOINT 陳述式:

CREATE ENDPOINT Yukon_ws

    STATE = STARTED

AS HTTP

(

    PATH = '/Northwind',

    AUTHENTICATION = (INTEGRATED),

    PORTS = (CLEAR),

    SITE = 'localhost'

)

FOR SOAP

(

    WEBMETHOD 'queryEmployees'

        (NAME='SQLServerName.dbo.queryEmployees'),

    BATCHES = DISABLED,

    WSDL = DEFAULT,

    DATABASE = 'Northwind',

)

CREAT ENDPOINT 所用到的 HTTP 參數:

 

參數 

說明 

PATH

Web Services 所在的虛擬路徑

AUTHENTICATION

Web 方法的認證方式,有BASIC, DIGEST, INTEGRATED 三種

其中INTEGRATED 採用Kerberos-based 的認證方式,最為安全。當無法使用INTEGRATED認證時才考慮DIGEST的認證方式,BASIC 則是這三種方式當中最不安全的方式,BASIC 認證方式需要 SSL(見下面的 PORTS 參數)

PORTS

CLEAR:一般HTTP - 預設使用port 80 連線

SSLHTTPS - 預設使用port 443連線

SITE

Web Services 所位於的伺服器名稱

 

 

然後點選『!Excute』執行,Web Services 就建立起來了!不要懷疑,就是這麼簡單。

馬上用 ASP.NET 來測試,將 SP_Sample.aspx.vb Web 參考重設為 http://localhost/Northwind/Yukon_ws?wsdl,再執行一次程式,會得到如圖 16 的結果,證明了 SQL Server 2005 (YUKON) 建立的 Web Services 是成功的 

 

結語

本文以實務的經驗說明建置多層式架構的目的及優點,分別探討SQL Server 2000利用 SQLXML 3.0建置 Web Services,及 SQL Server 2005(YUKON) 在資料庫層建置 Web Services 的方法。 

SQLXML 3.0所建置的 Web Services,以 ASP 透過soapClientDataIslandRecordSet ASP.NET透過 DataSet存取 SQL Server 2000SQL Server 2005 (YUKON) 則以 CREAT ENDPOINT 的方式建立 Web Services,範例包含內容相當豐富,熟悉每種 SQL Server Web Services 上的支援方式,對於往後開發多層式資料庫存取應用程式,將有許多的助益。 

Mr. Zabo 版權所有,歡迎轉載,但請註明出處及連結!

創作者介紹

Mr. Zabo - 網路、趨勢、技術、新概念

Zabo 發表在 痞客邦 PIXNET 留言(0) 人氣()