net web service 設計從根札起及最佳經驗
Post on 21-Mar-2016
39 Views
Preview:
DESCRIPTION
TRANSCRIPT
.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– 涵蓋作業邏輯的– 常是橫跨不同部門的
Service的能力和成熟度
服務介面的考量• 將服務介面視為你的應用程式的信任邊界• 如果服務介面要公開給外部使用,必須確保改變內部實做方式時不影響外部的使用• 服務中同一個商務邏輯可能會由不同前端取用,有可能要發佈多個服務介面• 不同的服務介面可能定義了不同的通訊管道、訊息格式、驗證機制、服務等級和異動能力• 服務介面本身不實做商務邏輯• 提供最大程度的互通能力,避免使用平台特有的資料格式或驗證機制• 服務介面很可處理自己的認證對象,卻無法傳遞,商務元件在設計時必須考慮這一點
影響執行效能的原因• 錯誤的通訊機制• 過多的呼叫• 錯誤的參數安排• 大量的序列化作業• 選用不當的編碼格式• 缺乏快取機制或使用效率差的快取• 效率不佳的狀態管理• 錯誤的執行緒應用• 缺乏效率的 Web method 處理
MICROSOFT WEB SERVICE SOFTWARE FACTORY
Software Factories
• 協助您建立特定的應用程式• 涵蓋不同的指導內容
–架構和設計指引、設計樣式及 how-to( 以文件的形式 )– 實做的參考模型 ( 執行檔形式 )– 應用程式建構材料 ( 可重複使用 )– 指導套件 ( 提供行動作業 )
• 提供處理程序
指導套件• 開放
– 透過文件描述操作步驟和自動化的工作• 可配置
– 主要的配置設定可在 Visual Studio 取得– 自動化的指導作業透過 XML 指示
• 可擴充– 指導內容可調整配合特殊需要
• 可驗證– 產生的程式碼可以驗證是否符合特定的標準或規範
• 業界經驗• 微軟經驗• Patterns &
Practices• 組織單位內• 解決方案
• 可添加的指引
Web Service Software Factory – Model Edition
• 從建構作業模型下手• 適合架構設計師使用• 產生的 Web Service 實做專案可再交給開發人員實做• 結合測試作業環境
Service Factory Contents• 設計訊息和服務合約• 可套用例外隔離及處理• 在領域模型中設計商務實體• 轉譯訊息成為商務實體或反向作業• 設計、建立和取用資料存取層• 同時支援ASMX 及 WCF 服務
發展方向C
apab
ilitie
s &
Com
plex
ity
Time
ContractDesign
Capability
InteroperabilityVersioning
Management
Validation
EnterpriseSOADistributed
Transactions
Large Messages
Deployment
Choreography
Metadata Mgmt.
Discovery
Svc Modeling
Workflow
Today
Entity/Capability Utility/Messaging Process/Activity
Security
Data Access
系統需求• 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
示範
SECURITY GUIDANCE
Web Service Security Guide
• 討論以下主題相關設計樣式– 身份驗證– 訊息保護–傳輸層及訊息層實做– 資源存取– 服務部署
• 是 WCF Security Guidange Package 的基礎
資源• Web Service Software Factory MSDN
Page– http://msdn.microsoft.com/en-us/library/cc487
895.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
top related