以 Managed 程式碼建立之 Web 服務的程式設計簡介
使用 Web 服務可在異質系統之間使用 XML 訊息格式來交換彈性結合的資料。 雖然遠端存取資料及應用程式邏輯不是新的觀念,但是運用有彈性的方式進行遠端存取是項新的觀念。 如 DCOM、IIOP 和 Java/RMI 之類的先前嘗試需要用戶端與伺服器之間緊密整合。 這些嘗試使用的是作業系統與實作專屬的二進位資料格式,而不是 XML 為基礎的合約。
DCOM、IIOP 和 Java/RMI 需要特殊的元件技術或物件呼叫慣例,而 Web 服務則無此需要。 對於用戶端與伺服器之間的唯一假設,是收件者會了解其所接收到的訊息。 換言之,用戶端與伺服器達成協定,在此情況下是指使用 WSDL 和 XSL 結構描述定義 (XSD) 所定義的協定。 接著,用戶端與伺服器會藉由產生承認協議的訊息,透過如 HTTP 的指定傳輸進行通訊。 因此,使用任何語言撰寫、採用任何元件模型,以及在任何作業系統上執行的程式,都可以存取 Web 服務。 另外,如 XML 文字格式的彈性將使得訊息交換能夠逐漸透過有彈性的方式進行。 在無法同時更新訊息交換中所有部分的環境中,應強制具備彈性。
保留此技術的目的,在為現有應用程式提供回溯相容性,不建議在開發新的應用程式時使用。如需建議替代項目的詳細資訊,請參閱下列主題:
Visual Studio 中的 Windows Communication Foundation 服務和 WCF 資料服務
Web 服務和 .NET Framework
如果您使用 ASP.NET 和 .NET Framework 為基礎的 Managed 程式碼建立 Web 服務,就不需要撰寫「基礎結構程式碼」(Infrastructure Code) 來處理通訊協定或訊息傳輸這類細節。 此外,如果您建立使用 ASP.NET 網頁架構的 Web 服務,您的服務就可以使用 .NET Framework 的許多功能,例如驗證、快取及狀態管理。
在 ASP.NET 應用程式模型中,網頁會使用 .aspx 副檔名。 為了區別 Web 服務與一般 ASP.NET 網頁,Web 服務使用 .asmx 副檔名。
為了使用 Web 服務促進雙向資料交換,開發人員必須:
建立 Web 服務。 當您建立 XML Web Service 時,會一併建立向 XML Web Service 用戶端公開功能的應用程式。
存取 Web 服務。 當您存取 Web 服務時,用戶端應用程式會尋找、參考和使用包含在 Web 服務中的功能。 XML Web Service 的用戶端通常是應用程式。 這個應用程式能夠傳送、接收和處理往來 Web 服務的訊息。
這位開發人員不必建立 Web 服務,就能存取該服務。 某些 Web 服務 (如流量資訊服務) 可能是由單一實體 (例如,美國交通運輸部門) 所建立。 不過,可能有許多網站存取這項服務,例如貨運公司的網站。
Web 服務可以是獨立的應用程式,或是較大型 Web 應用程式的子元件。 例如,假設您建立了線上購書的 Web 應用程式。 您的 Web 應用程式使用 Web 服務的方式可能如下:
建立 Web 服務。 您的應用程式將其訂單流程邏輯公開為 Web 服務。 附屬的網站則可在線上銷售書籍的 Web 應用程式中存取這項服務。
存取 Web 服務。 您的應用程式存取另一家線上公司所開發的 Web 服務,這家線上公司專門為線上書店撰寫書評。 當您線上書店的瀏覽者查看特定書籍的價格時,也會在同一網頁上看到同一本書的評論。
請記得,您可以從許多不同類型的應用程式存取 Web 服務,包括其他 Web 服務、Web 應用程式、Windows 應用程式及主控台應用程式。 不過,用戶端必須能夠將訊息傳送至 Web 服務。