亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

面向SQL Server 2005的本機XML Web Services概述(1)
2007-07-29   51CTO.com 

簡介

Microsoft® SQL Server™ 2005 提供了一個標準機制,用于使用 SOAP 通過 HTTP 訪問數據庫引擎。通過使用此機制,可將 SOAP/HTTP 請求發送到 SQL Server 以執行以下內容:

◆Transact-SQL 批處理語句,帶參數或不帶參數。

◆存儲過程,擴展存儲過程以及用戶定義的標量值函數。

在 SQL Server 2005 之前,可用于連接 SQL Server 的唯一機制就是通過名為 Tabular Data Stream (TDS) 的自定義二進制協議。利用 SOAP/HTTP 訪問,我們提供了一種開放的且具有相關文檔的協議,可以作為后備手段,以連接到 SQL Server。提供 SOAP/HTTP 訪問,可以使更多類型的客戶端訪問 SQL Server,其中包括“無痕跡安裝”客戶端,因為已不再需要在客戶端設備上安裝 Microsoft 數據訪問組件 (MDAC) 棧以嘗試連接到 SQL Server。它方便了與各種平臺上的 .NET、SOAP 工具包、Perl 以及更多功能的互操作。由于 SOAP/HTTP 訪問機制基于各種應用廣泛的技術(如 XML 和 HTTP),它能內在地促進異構環境中與 SQL Server 的互操作性及對 SQL Server 的訪問。任何能夠分析 XML 和提交 HTTP 請求的設備現在都能夠訪問 SQL Server。

很多企業都采用異構的環境,其中運行于 UNIX 和 Linux 平臺上的應用程序可能需要連接到 SQL Server。在以前,此類用戶唯一可用的解決方案就是使用 JDBC 或 ODBC 驅動程序。SOAP/HTTP 訪問現在提供另一個低成本的后備方法。對于 DBA 使用 Perl 編寫了運行于 UNIX 上的腳本以管理 SQL Server 資源的場景,這非常有用。在開發使用智能集成開發環境 (IDE)(其中內置了 SOAP/HTTP 支持,如 Microsoft Visual Studio® .NET 或 Jbuilder 就屬于此類 IDE)開發客戶端應用程序時,這也十分有用。這些 IDE 將生成特定的代理代碼,這些代理代碼對 SQL Server 通信進行抽象,并提供客戶端應用程序可以使用的對象。使用 SOAP/HTTP 還實現了隨時隨地對 SQL Server 的訪問,而這使得開發用于移動設備或偶爾連接的設備的應用程序更為容易。一旦建立了連接,并且服務器已開始處理請求,則可以使用 TDS 所基于的客戶端上的現有機制(如使用 SqlClient、ODBC 和 OLEDB)對此進行監視。

要求

SQL Server 2005 本機 Web 服務要求使用 Microsoft Windows Server™ 2003 作為操作系統,因為它們依賴于此版本提供的內核模式 http 驅動程序 http.sys。由于 SQL Server 利用內核模式 http.sys 驅動程序,所以不必安裝 IIS 以在 SQL Server 外公開 Web 服務,這就簡化了管理。

應該根據應用程序要求決定是否安裝 IIS。

例如,特定的應用程序可能從使用顯式中間層而受益。在這種情況下,IIS 將很有用。

HTTP 終結點

為了將 SQL Server 設置為可以本機偵聽 HTTP SOAP 請求的 Web 服務,需要創建 HTTP 終結點并定義該終結點公開的方法。當創建 HTTP 終結點時,必須使用唯一的 URL 進行創建,將使用此 URL 偵聽傳入的 HTTP 請求。例如,如果您使用 URL“http://servername/sql”創建一個終結點,發送到 http://servername/sql 的 SOAP 請求將由 http.sys. 拾取,然后將此 SOAP 請求路由到承載與該 URL 關聯的終結點的 SQL Server 實例。請求將從此處傳遞到 SQL Server 內的 SOAP 處理層。

SQL Server 實例可以具有多個終結點,每個終結點都可以將任意數量的存儲過程(通過使用 Transact-SQL 或 CLR 實現)公開為終結點上的 WebMethod,且可以通過 SOAP 遠程過程調用 (RPC) 而調用。WebMethod 可以具有與所公開的實際存儲過程不同的名稱。WebMethod 名稱就是在 WSDL 中作為操作名稱向用戶顯示的名稱。

注意 務必指出,終結點中的 WebMethod 子句是特定于 SQL Server 2005 的,與 ASMX WebMethod 屬性無關。

用戶可以對終結點執行 AdHoc Transact-SQL 語句。這可以通過使用數據定義語言 (DDL) 中的一個可選子句在終結點上允許進行批處理而實現。允許進行批處理將隱式地將名為“sqlbatch”的 WebMethod 公開給用戶。在接下來的各節中將進一步對這些概念進行說明。

創建 HTTP 終結點

HTTP 終結點是使用 Transact-SQL DDL 創建和管理的。創建 HTTP 終結點是允許 HTTP/SOAP 訪問 SQL Server 2005 的第一步。每個終結點都具有名稱和一個選項集合,這些選項一起定義終結點的行為。

為了演示如何使用“創建 HTTP 終結點”的內容,讓我們看看 Hello World 示例,以了解如何通過 SQL Server Web 服務調用存儲過程。

首先,使用以下 T-SQL 在主數據庫中創建名為“hello world”的存儲過程。此存儲過程只是顯示輸入參數中提供的字符串。

CREATE PROCEDURE hello_world

(@msg nvarchar(256))

AS BEGIN

select @msg as 'message'

END

然后,使用以下 T-SQL 創建 HTTP 終結點,此終結點將允許將此存儲過程作為一個 WebMethod 進行訪問:

CREATE ENDPOINT hello_world_endpoint

STATE = STARTED

AS HTTP (

AUTHENTICATION = ( INTEGRATED ),

PATH = '/sql/demo',

PORTS = ( CLEAR )

)

FOR SOAP (

WEBMETHOD

'http://tempuri.org/'.'hello_world'

(NAME = 'master.dbo.hello_world'),

BATCHES = ENABLED,

WSDL = DEFAULT

)

所有終結點均存儲在主數據庫中,在元數據視圖 master.sys.http_endpoints 中。除非進行定義,否則終結點不會具有任何 SOAP 方法。在上例中,我們將存儲過程 master.dbo.hello_world 作為“hello_world”WebMethod 公開;該 WebMethod 可以使用任何名稱,如可以命名為“http://tempuri.org”命名空間下的“testproc1”。如果將 WSDL 子句的值指定為 DEFAULT,將使終結點使用默認格式對請求 WSDL 生成的 WSDL 進行響應。通過在上面的語句中設置 WSDL=NONE,可以取消 WSDL 生成。在接下來的部分中,我們將對 WSDL 生成的細節進行討論。

熱詞搜索:

上一篇:MS SQL數據庫SA權限入侵的感悟
下一篇:使Oracle能同時訪問多個SQL Server

分享到: 收藏