摘要
Web Services 是基於網路的分散式應用程式基本建構塊,建立在 HTTP、XML 等開放網際網路標準之上,支援跨平台、跨物件模型、多語言互通,構成 Microsoft .NET 可程式化網路願景的基礎。本文詳細闡述 Web Services 架構、支援技術 (SOAP、WSDL、UDDI/Disco)、.NET Framework 三層架構 (CLR、類別庫、應用程式模型) 及其在簡化分散式應用開發中的關鍵作用。
一、Web Services 概覽
核心特性
- 黑箱功能:像元件一樣提供封裝功能,呼叫者無需知悉實作細節。
- 精確契約:以契約 (Contract) 定義服務介面,支援遠端、本地服務與客製代碼整合。
- 協定中立:使用無所不在的 HTTP、XML 進行通訊,不綁定 DCOM、RMI、IIOP 等特定物件模型協定,解決異構系統整合難題。
- 訊息導向:契約描述 SOAP 訊息格式,而非實作細節,實現語言、平台、物件模型完全中立。
整合範例:線上商店
結合 Microsoft Passport 驗證、第三方個人化服務、信用卡處理、稅務計算、物流追蹤、內部存貨系統等服務,僅需少量膠水代碼即可快速建構完整電商應用。
二、關鍵支援技術
| 技術 | 角色 | 關鍵點 |
| XML | 資料描述元語言 | 標準、可擴展、廠商中立 |
| SOAP | 訊息封裝標準 | 以 XML 表示資料與命令,可擴展支援安全、交易、可靠傳訊 |
| SCL (Service Contract Language) | 服務契約描述 | XML 語法,易於工具產生/解析,早期版本為 SDL |
| Disco (Discovery) | 服務發現 | 標準化服務契約發布與發現機制 |
這些標準由開發平台提供高效能實作,開發者無需手工處理協定細節。
三、Microsoft .NET Framework 架構
1. Common Language Runtime (CLR) — 執行引擎
- 跨語言整合:通用類型系統 (CTS) 定義標準類型與規則,語言編譯器針對 CLR 產生代碼,實現跨語言繼承、例外處理、除錯。
- 自描述組件:中繼資料與可執行代碼打包,無需獨立標頭檔、IDL、Proxy/Stub,版本資訊內建,部署簡單 (XCOPY 部署)。
- 並行執行:應用程式域隔離,同一機器可同時載入多版本組件,解決「DLL Hell」。
- 安全性:程式碼存取安全 (CAS) 基於代碼證據 (發布者、來源、強名稱) 授權;角色基礎安全 (RBS) 基於使用者身分授權。CLR 在載入、執行時強制執行安全策略。
2. Framework Class Library (FCL) — 類別庫
- 基礎類別庫 (BCL):集合、I/O、字串、資料類型、執行緒、網路、圖形、全球化、加密等。
- ADO+ (現 ADO.NET):資料存取核心,支援連線導向 (
DataReader) 與離線模型 (DataSet),資料以 XML 或關聯格式操作,適合 Web Services 傳遞。
- 開發工具支援:除錯、分析服務等。
3. 應用程式模型
- Windows Forms:豐富桌面 UI、ActiveX 相容、安全執行 (下載代碼受 CAS 保護)、並行執行支援。
- Web Forms / ASP.NET:伺服器端控制項、事件驅動、狀態管理、編譯執行、Web Services 原生支援 (`.asmx`)。
四、結語
Web Services 利用現有網際網路架構,提供簡單、彈性、標準化的應用程式整合模型。.NET Framework 在現有開發技能基礎上,提供執行引擎、類別庫與應用程式模型,大幅簡化安全、可靠、可擴展、高可用性 Web Services 的建構、部署與演進。
- 上一篇文章: 談 WCF Data Contract (一):資料合約核心概念與對應機制
- 下一篇文章: 為 Windows 服務新增描述文字
Copyright ©
程式碼之家 All Rights Reserved