原生 XML Web Service 概觀
本主題會比較 Microsoft SQL Server 2005 中的原生 XML Web Service 與 Microsoft SQLXML、描述原生 XML Web Service 的運作方式,以及列出一些使用它所得到的好處。
原生 XML Web Service 不適用或不建議用於下列案例:
- 具有即時高度並行存取與短期交易特性的應用程式。
- Web 伺服陣列類型向外延展。
- 作為中間層的取代層,特別是在應用程式架構具有更能容納於中間層元件中的大規模商務邏輯需求。
比較原生 XML Web Service 與 SQLXML
在舊版 SQL Server 中,存取 SQL Server 資料庫需要使用「表格式資料流」(TDS)。TDS 是 Windows 架構之桌上型用戶端必須支援的專屬通訊協定。有時,SQL Server 用戶端必須使用 Microsoft Data Access Components (MDAC)。MDAC 堆疊會安裝於連接到 SQL Server 的用戶端電腦上。若為 SQL Server,SQLXML 3.0 是中間層元件,支援對 SQL Server 的 Web 架構存取,但還是需要使用 Internet Information Services (IIS)。
在 SQL Server 2005 中,藉由將 HTTP 與 SOAP 一起使用,原生 XML Web Service 可提供非 Windows 環境的替代環境,如下圖所示。
因為不再需要安裝於用戶端上的 MDAC,或是在 IIS 的中間層中與其相依的 SQLXML,所以 SOAP 與 HTTP 存取可讓更廣泛的用戶端存取 SQL Server。這些包括使用現有用戶端應用程式的 Web 應用程式,如 Web 瀏覽器。原生 XML Web Service 可讓您更容易使用 Microsoft .NET Framework、Microsoft SOAP Toolkit、Perl,以及其他 Web 開發作業系統與工具集。
下表所示的為每種技術所提供的部份功能。
原生 XML Web Service | Microsoft SQLXML |
---|---|
|
|
原生 XML Web Service 的運作方式
若要在 SQL Server 中使用原生 XML Web Service,必須在伺服器上建立 HTTP 端點。這個端點主要是閘道,HTTP 架構的用戶端可以透過這個閘道查詢伺服器。在建立 HTTP 端點後,可以加入預存程序或使用者自訂函數,或讓端點使用者可以使用它們。建立或更新端點時,就會發生這種情況。啟用程序及函數時,它會指定為*「Web 方法」。設計為要一起使用的 Web 方法集合可稱為「Web 服務」*。
這些 Web 服務可以使用 WSDL 格式來描述。WSDL 格式是由 SQL Server 的執行個體所產生,並會傳回到任何已啟用 WSDL 之 HTTP 端點的 SOAP 用戶端,如下圖所示。如果需要,WSDL 格式可以是自訂解決方案,而不是 SQL Server 所產生的解決方案。端點可以選擇性地設定為不回應 WSDL 要求。
完成此程序之後,可以實作 SQL Server 啟用的 Web 服務集合,並使用它們協助建立及擴展「服務導向架構」(Service-Oriented Architecture,SOA)。如需詳細資訊,請在本 Microsoft 網站 的 MSDN Online Library 搜尋關鍵字 "SOA"。
使用原生 XML Web Service 的好處
可作為它自己之 XML Web Service 運作的 SQL Server 執行個體,提供了下列好處:
- 任何 Web 服務應用程式都可以存取 SQL Server 的執行個體
此為主要好處。因為原生 XML Web Service 是以如 XML 及 HTTP 的已知技術為基礎,所以,任何可以剖析 XML 及提交 HTTP 要求的裝置現在都能存取 SQL Server。這允許更能在異質性環境中存取 SQL Server,因為在這種環境中,於非 Windows 作業系統上執行的應用程式可能需要連接到 SQL Server。通常在這些情況下,使用「Java 資料庫連接」(Java Database Connectivity,JDBC) 或「開放式資料庫連接」(Open Database Connectivity,ODBC) 驅動程式是唯一可用的解決方案。但是 SQL Server 中的原生 XML Web Service 提供了另一種低成本的替代方案。例如,在某些案例中,由於資料庫管理員具有以 Perl 撰寫的指令碼,而這些指令碼能於非 Windows 作業系統上執行,以管理 SQL Server 資源,因此這項功能可能非常有用。 - Microsoft 與協力廠商 Web 開發工具集的改良式整合
透過原生 XML Web Service,SQL 查詢結果可以 XML 格式傳回。利用預先定義的結構描述,具有內建 SOAP/HTTP 支援的智慧型整合開發環境 (IDE),如 Microsoft Visual Studio 2005 或 JBuilder,可以利用原生 XML Web Service,協助產生 Proxy 程式碼,其中含有與 SQL Server 執行個體的通訊摘要。大部份的時間,IDE 會產生並提供用戶端應用程式可以轉而用於 Web 架構之資料存取的物件。 - 為間斷連接或鬆散連接的行動用戶端提供更好的支援
使用原生 XML Web Service 也可隨時啟用 SQL Server 執行個體的存取。這讓您能更容易地為行動裝置或間斷連接裝置開發應用程式。在建立連接且伺服器已開始處理要求之後,使用傳統網路架構的用戶端 (已使用 TDS 及 SQL Server 可使用現有的機制,來監視伺服器。 - 伺服器內建的安全性措施可以減少實作額外防火牆的需求
SQL Server 2005 中的原生 XML Web Service 提供了適用於 Web 存取的內建安全性層級。不同於一般的 Web 伺服器,為了供 SQL Server 使用而建立的 HTTP 端點不允許匿名使用者存取。若要建立端點,首先在伺服器中需要管理員權限,而且端點只會公開在設定端點時要變成公用的儲存方法。
請參閱
概念
其他資源
SQLXML 4.0 Programming
CREATE ENDPOINT (Transact-SQL)