250 likes | 349 Views
.NET Web Service 設計從根札起及最佳經驗. 彭靖灝 微軟開發技術代言人 K2 大中華區技術總監. 課程內容. 設計 Web Service 的最佳經驗 Web Service Software Factory – Model Edition Security Guidance. 最佳經驗. 企業應用系統基礎架構. 通用考量. 只使用用得到的元件 儘可能以一致的方式設計,使用的設計模型越少越好 在決定實際的通訊邊界之前,先瞭解元件通訊的方式 確保在應用程式或服務內的交換訊息格式一致
E N D
.NET Web Service設計從根札起及最佳經驗 彭靖灝 微軟開發技術代言人 K2 大中華區技術總監
課程內容 • 設計Web Service的最佳經驗 • Web Service Software Factory – Model Edition • Security Guidance
通用考量 • 只使用用得到的元件 • 儘可能以一致的方式設計,使用的設計模型越少越好 • 在決定實際的通訊邊界之前,先瞭解元件通訊的方式 • 確保在應用程式或服務內的交換訊息格式一致 • 儘可能讓一些設計原則(安全、管理…)從商務邏輯中抽離出來 • 一開始就確認您要採取的分層原則
商務元件常用的設計樣式 • Pipeline : 循序執行作業程序 • Event : 特定商務條件成立時執行指定程式
Pipeline設計樣式 • 適用時機 • 作業邏輯可以透過循序執行的步驟表現 • 每一個步驟都不需要等待非同步的回應 • 每一個下游作業元件都要根據上游提供的資 料採取得動(但沒有反向要求) • 優點 • 容易實做,也易於形成異動單位 • 缺點 • 無法處理太複雜的程序,也不易處理大量條件判斷的狀況
Event設計樣式 • 適用時機 • 你想要某個功能能以獨立及隔離的方式實做 • 某個實做的回應不影響到其他實做的運作 • 所有的實做都是觸發即忘,商務作業回應的結果不依賴實做內部的內容 • 優點 • 提供維護能力,也允許平行處理,可提高效能,也易於形成異動單位,並允許以同步及非同步的方式執行 • 缺點 • 不易建立複雜的回應,元件也不能依賴其他元件中狀態進行處理作業
Service的類型 • Entity/Capability • 以資料為基礎的,具體的作業對象 • 很明顯看到:資料庫資料服務 • Utility/Messaging • 提供和基礎作業有關的服務 • 例如:Content Router, Security Token… • Process/Activity • 涵蓋作業邏輯的 • 常是橫跨不同部門的
服務介面的考量 • 將服務介面視為你的應用程式的信任邊界 • 如果服務介面要公開給外部使用,必須確保改變內部實做方式時不影響外部的使用 • 服務中同一個商務邏輯可能會由不同前端取用,有可能要發佈多個服務介面 • 不同的服務介面可能定義了不同的通訊管道、訊息格式、驗證機制、服務等級和異動能力 • 服務介面本身不實做商務邏輯 • 提供最大程度的互通能力,避免使用平台特有的資料格式或驗證機制 • 服務介面很可處理自己的認證對象,卻無法傳遞,商務元件在設計時必須考慮這一點
影響執行效能的原因 • 錯誤的通訊機制 • 過多的呼叫 • 錯誤的參數安排 • 大量的序列化作業 • 選用不當的編碼格式 • 缺乏快取機制或使用效率差的快取 • 效率不佳的狀態管理 • 錯誤的執行緒應用 • 缺乏效率的Web method處理
Software Factories • 協助您建立特定的應用程式 • 涵蓋不同的指導內容 • 架構和設計指引、設計樣式及how-to(以文件的形式) • 實做的參考模型(執行檔形式) • 應用程式建構材料(可重複使用) • 指導套件(提供行動作業) • 提供處理程序
指導套件 • 開放 • 透過文件描述操作步驟和自動化的工作 • 可配置 • 主要的配置設定可在Visual Studio取得 • 自動化的指導作業透過XML指示 • 可擴充 • 指導內容可調整配合特殊需要 • 可驗證 • 產生的程式碼可以驗證是否符合特定的標準或規範 • 業界經驗 • 微軟經驗 • Patterns & Practices • 組織單位內 • 解決方案 • 可添加的指引
Web Service Software Factory – Model Edition • 從建構作業模型下手 • 適合架構設計師使用 • 產生的Web Service實做專案可再交給開發人員實做 • 結合測試作業環境
Service Factory Contents • 設計訊息和服務合約 • 可套用例外隔離及處理 • 在領域模型中設計商務實體 • 轉譯訊息成為商務實體或反向作業 • 設計、建立和取用資料存取層 • 同時支援ASMX及WCF服務
發展方向 Entity/Capability Utility/Messaging Process/Activity Enterprise SOA Capabilities & Complexity Choreography Large Messages Deployment Distributed Transactions Metadata Mgmt. Discovery Svc Modeling Management Security Versioning Workflow Capability Interoperability Contract Design Data Access Validation Today Time
系統需求 • Windows XP Professional, Windows Server 2003, 或Windows Vista • Microsoft Visual Studio 2008 (Visual Studio Professional Edition或Visual Studio Team Suite) • Visual Studio 2008 SDK Version 1.0 • Microsoft .NET Framework 3.5 • Guidance Automation Extensions - February 2008 for Visual Studio 2005 and Visual Studio 2008
Web Service Security Guide • 討論以下主題相關設計樣式 • 身份驗證 • 訊息保護 • 傳輸層及訊息層實做 • 資源存取 • 服務部署 • 是WCF Security Guidange Package的基礎
資源 • Web Service Software Factory MSDN Page • http://msdn.microsoft.com/en-us/library/cc487895.aspx • Web Service Software Factory CodePlex Community • http://www.codeplex.com/servicefactory
資源 • Application Architecture for .NET Designing Applications and Services • http://msdn.microsoft.com/en-us/library/ms954595.aspx • Improving .NET Application Performance and Scalability • http://msdn.microsoft.com/en-us/library/ms998530.aspx • Web Service Security Guide • http://www.microsoft.com/downloads/details.aspx?FamilyId=3E02A6C8-128A-47C2-9F39-4082582F3FE1&displaylang=en