net web service 設計從根札起及最佳經驗

25
.NET Web Service 設設設設設設設設設設設 設設設 設設設設設設設設設 K2 設設設設設設設設

Upload: dawn

Post on 21-Mar-2016

39 views

Category:

Documents


1 download

DESCRIPTION

.NET Web Service 設計從根札起及最佳經驗. 彭靖灝 微軟開發技術代言人 K2 大中華區技術總監. 課程內容. 設計 Web Service 的最佳經驗 Web Service Software Factory – Model Edition Security Guidance. 最佳經驗. 企業應用系統基礎架構. 通用考量. 只使用用得到的元件 儘可能以一致的方式設計,使用的設計模型越少越好 在決定實際的通訊邊界之前,先瞭解元件通訊的方式 確保在應用程式或服務內的交換訊息格式一致 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NET Web Service 設計從根札起及最佳經驗

.NET Web Service設計從根札起及最佳經驗彭靖灝

微軟開發技術代言人K2 大中華區技術總監

Page 2: NET Web Service 設計從根札起及最佳經驗

課程內容• 設計 Web Service 的最佳經驗• Web Service Software Factory –

Model Edition• Security Guidance

Page 3: NET Web Service 設計從根札起及最佳經驗

最佳經驗

Page 4: NET Web Service 設計從根札起及最佳經驗

企業應用系統基礎架構

Page 5: NET Web Service 設計從根札起及最佳經驗

通用考量• 只使用用得到的元件• 儘可能以一致的方式設計,使用的設計模型越少越好• 在決定實際的通訊邊界之前,先瞭解元件通訊的方式• 確保在應用程式或服務內的交換訊息格式一致• 儘可能讓一些設計原則 ( 安全、管理… ) 從商務邏輯中抽離出來• 一開始就確認您要採取的分層原則

Page 6: NET Web Service 設計從根札起及最佳經驗

商務元件互動

Page 7: NET Web Service 設計從根札起及最佳經驗

商務元件常用的設計樣式• Pipeline : 循序執行作業程序• Event : 特定商務條件成立時執行指定程式

Page 8: NET Web Service 設計從根札起及最佳經驗

Pipeline設計樣式• 適用時機

– 作業邏輯可以透過循序執行的步驟表現– 每一個步驟都不需要等待非同步的回應– 每一個下游作業元件都要根據上游提供的資料採取得動 ( 但沒有反向要求 )

• 優點– 容易實做,也易於形成異動單位

• 缺點 – 無法處理太複雜的程序,也不易處理大量條件判斷的狀況

Page 9: NET Web Service 設計從根札起及最佳經驗

Event設計樣式• 適用時機

– 你想要某個功能能以獨立及隔離的方式實做– 某個實做的回應不影響到其他實做的運作

– 所有的實做都是觸發即忘,商務作業回應的結果不依賴實做內部的內容• 優點

– 提供維護能力,也允許平行處理,可提高效能,也易於形成異動單位,並允許以同步及非同步的方式執行• 缺點

– 不易建立複雜的回應,元件也不能依賴其他元件中狀態進行處理作業

Page 10: NET Web Service 設計從根札起及最佳經驗

Service的類型• Entity/Capability

– 以資料為基礎的,具體的作業對象– 很明顯看到:資料庫資料服務

• Utility/Messaging– 提供和基礎作業有關的服務– 例如: Content Router, Security Token…

• Process/Activity– 涵蓋作業邏輯的– 常是橫跨不同部門的

Page 11: NET Web Service 設計從根札起及最佳經驗

Service的能力和成熟度

Page 12: NET Web Service 設計從根札起及最佳經驗

服務介面的考量• 將服務介面視為你的應用程式的信任邊界• 如果服務介面要公開給外部使用,必須確保改變內部實做方式時不影響外部的使用• 服務中同一個商務邏輯可能會由不同前端取用,有可能要發佈多個服務介面• 不同的服務介面可能定義了不同的通訊管道、訊息格式、驗證機制、服務等級和異動能力• 服務介面本身不實做商務邏輯• 提供最大程度的互通能力,避免使用平台特有的資料格式或驗證機制• 服務介面很可處理自己的認證對象,卻無法傳遞,商務元件在設計時必須考慮這一點

Page 13: NET Web Service 設計從根札起及最佳經驗

影響執行效能的原因• 錯誤的通訊機制• 過多的呼叫• 錯誤的參數安排• 大量的序列化作業• 選用不當的編碼格式• 缺乏快取機制或使用效率差的快取• 效率不佳的狀態管理• 錯誤的執行緒應用• 缺乏效率的 Web method 處理

Page 14: NET Web Service 設計從根札起及最佳經驗

MICROSOFT WEB SERVICE SOFTWARE FACTORY

Page 15: NET Web Service 設計從根札起及最佳經驗

Software Factories

• 協助您建立特定的應用程式• 涵蓋不同的指導內容

–架構和設計指引、設計樣式及 how-to( 以文件的形式 )– 實做的參考模型 ( 執行檔形式 )– 應用程式建構材料 ( 可重複使用 )– 指導套件 ( 提供行動作業 )

• 提供處理程序

Page 16: NET Web Service 設計從根札起及最佳經驗

指導套件• 開放

– 透過文件描述操作步驟和自動化的工作• 可配置

– 主要的配置設定可在 Visual Studio 取得– 自動化的指導作業透過 XML 指示

• 可擴充– 指導內容可調整配合特殊需要

• 可驗證– 產生的程式碼可以驗證是否符合特定的標準或規範

• 業界經驗• 微軟經驗• Patterns &

Practices• 組織單位內• 解決方案

• 可添加的指引

Page 17: NET Web Service 設計從根札起及最佳經驗

Web Service Software Factory – Model Edition

• 從建構作業模型下手• 適合架構設計師使用• 產生的 Web Service 實做專案可再交給開發人員實做• 結合測試作業環境

Page 18: NET Web Service 設計從根札起及最佳經驗

Service Factory Contents• 設計訊息和服務合約• 可套用例外隔離及處理• 在領域模型中設計商務實體• 轉譯訊息成為商務實體或反向作業• 設計、建立和取用資料存取層• 同時支援ASMX 及 WCF 服務

Page 19: NET Web Service 設計從根札起及最佳經驗

發展方向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

Page 20: NET Web Service 設計從根札起及最佳經驗

系統需求• 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

Page 21: NET Web Service 設計從根札起及最佳經驗

示範

Page 22: NET Web Service 設計從根札起及最佳經驗

SECURITY GUIDANCE

Page 23: NET Web Service 設計從根札起及最佳經驗

Web Service Security Guide

• 討論以下主題相關設計樣式– 身份驗證– 訊息保護–傳輸層及訊息層實做– 資源存取– 服務部署

• 是 WCF Security Guidange Package 的基礎

Page 24: NET Web Service 設計從根札起及最佳經驗

資源• 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

Page 25: NET Web Service 設計從根札起及最佳經驗

資源• 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