Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

從SOA到REST -- Web Service、WCF、WebAPI的應用情境

7,775 views

Published on

從SOA服務導向架構的Web Service,走到WCF Service,一路行進到RESTful WebAPI。將與您分享我在公司裡面應用這些技術做過的專案。

簡報最後也提供實作練習(Case Study),透過Visual Studio快速開發簡單的Web Service、WCF Service與WebAPI。

Published in: Internet

從SOA到REST -- Web Service、WCF、WebAPI的應用情境

  1. 1. 從SOA 到 REST Web Service、WCF、Web API的應用情境 MIS2000 Lab. (微軟MVP 2008~2016) mis2000lab@yahoo.com.tw http://www.dotblogs.com.tw/mis2000lab
  2. 2. Agenda  簡介  情境 Scenario (How to do ?)  以前的故事 (EDI、B計畫、C計畫)  WS-*、WCF Service、Web API  What’s RESTful  SOAP v.s. REST  Case Study
  3. 3. 簡 介
  4. 4. 傳統商用程式的作法 Applications 資料來源(DB) ConnectionString
  5. 5. Internet Application (Web-base)  圖片來源 http://mechittechnologies.com/webapp.php 5
  6. 6. 加入Web Service Applications WS-* WCF Service Web API 資料來源(DB) ConnectionStringUri / Url
  7. 7. 適合多種 Client端串連 Desk-top Web Mobile App WS-*
  8. 8. Internet Application (Web Service-base)  圖片來源 http://mechittechnologies.com/webapp.php 8
  9. 9. 情境 Scenario
  10. 10. 全球簡訊發送&管理  故事起源  http://電信業者/?對方電話=...&簡訊內容 =....&編碼=...
  11. 11. OnSite Service 人員外派監控  故事起源  第一版,電話語音卡(CTI),類似信用卡中心、 公司總機  第二版,Mobile App(手機版)  重點是:我負責的程式只有一套,不需改寫。
  12. 12. New Hope Applications 前端 WS-* WCF Service Web API 後端 資料來源(DB)
  13. 13. 以前的故事
  14. 14. Hub & B2Bi Hub Corp A Corp D Corp C Corp B
  15. 15. From EDI To B2Bi  美國 GXS (Global eXchange Service)  EDI、ANSI-X12  XML、RosettaNet 電子商務  HL7(HealthLevelSeven) 健康資訊交換第七層協定  JSON
  16. 16. 企業之間的對話 (RosettaNet)  資料來源 www.ec.ccu.edu.tw/book/xml/slidec/ch11.ppt Request Response Request Response Order Request Receipt Acknowledge Receipt Acknowledge Order Acceptance
  17. 17. HIS 醫療資訊系統 18
  18. 18. Web Service、WCF、Web API
  19. 19. Web Service  WEB服務有多種不同的方法呼叫之:  遠端程序呼叫  WEB服務提供一個分布式函數或方法接口供用戶呼叫,這是一種比較傳統的方式。通常, 在WSDL中對RPC接口進行定義(類似於早期的XML-RPC)。  服務導向架構  遵從服務導向架構(Service-oriented architecture,SOA)概念來 構築WEB服務。在服務導向架構中,通訊由消息驅動,而不再是某個 動作(方法呼叫)。SOA方式更加關注如何連接服務而不是去特定某 個實現的細節。WSDL定義了聯絡服務的必要內容。  表述性狀態轉移  表述性狀態轉移式(Representational state transfer,REST) WEB服務類似於HTTP或其他類似協議,它們把介面限定在一組廣為 人知的標準動作中(比如HTTP的GET、PUT、DELETE)以供呼叫。 此類WEB服務關注與那些穩定的資源的互動,而不是消息或動作。
  20. 20. WCF Service  WCF (Windows Communication Foundation)。  由微軟發展的資料通訊的應用程式開發介面(API),是.NET框 架的一部分,始於.NET Framework 3.0
  21. 21. WCF Service  WCF基本概念是以合約(Contract)來定義雙方溝通的協定, 合約以介面的方式呈現  實際程式碼必須要由合約介面衍生並實作。四種合約:  1.資料合約(Data Contract),雙方溝通時的資料格式。  2.服務合約(Service Contract),服務的定義。  3.營運合約(Operation Contract),服務提供的方法。  4.訊息合約(Message Contract),通訊期間覆寫訊息內容的規範。 22
  22. 22. WCF Service
  23. 23. RESTful 設計風格  REST (Representational state transfer)  REST是設計風格 (Style) 而不是固定的標準。  REST通常基於使用HTTP,URI,和XML以及HTML這些現有的協議和標準。  不像基於SOAP的Web服務,RESTful Web服務並 沒有「正式」的標準。  以主表明細(Master-Detail)為例  列舉所有商品,GET http://www.store.com/products  呈現某一件商品,GET http://www.store.com/product/12345
  24. 24. RESTful 設計風格 三位一體 25
  25. 25. Web API  ASP.NET Web API (application programming interface) 是一個架構,可 輕易建置 HTTP 服務並擴及廣大的用戶端 範圍,包括瀏覽器和行動裝置。  ASP.NET Web API 是一個想理平台, 以 .NET Framework 基礎建置 RESTful 應 用程式。 26
  26. 26. Web API 27
  27. 27. Web API v.s. WCF Service 28
  28. 28. REST v.s. Web API  圖片來源 http://restlet.com/blog/2013/05/02/how-much-rest-should-your-web-api-get/ 29
  29. 29. 30
  30. 30. .NET 4.5起的 One ASP.NET 概念 31
  31. 31. SOAP v.s. REST
  32. 32. SOAP v.s. REST  SOAP is a protocol and REST is architecture  REST supports multi-message formats, but SOAP permits XML only.  REST services are faster and easy to handle.  SOAP is tied with SMTP & HTTP protocols whereas REST relies on HTTP only.  SOAP is more secure and structured format.  REST don’t depend on any specific standards as it supports various messaging formats like JSON, CSV and XML.  SOAP web services allow to build the client with RESTful services.
  33. 33. SOAP v.s. REST  SOAP was for distributed-computing.  After REST’s entry, it accommodated the web by its performance and scalability as a light weight component.  REST is stateless whereas SOAP is a state-ful specification.  REST uses Uniform Resource Identifier (URI) and it has methods like GET, PUT, POST and DELETE to expose their resources.  SOAP uses named operations and interfaces to achieve its business logics.  資料來源 http://www.softwaretestinghelp.com/soapui-tutorial-13-soap-vs-rest-services/ 34
  34. 34. SOAP v.s. REST
  35. 35. SOAP v.s. REST
  36. 36. SOAP與RESTful 程式寫法
  37. 37. Case Study
  38. 38. Case Study  .NET (C# or VB)、工具 Visual Studio (free)  Server端的技術 Web Service WCF Service Web API  Client端的技術 JavaScript jQuery
  39. 39. 我 Blog網站上的文章 與 範例下載  Web Service入門 #1,透過Visual Studio -- VS 2005/2008/2010 撰寫一 個Web Service(系列文章)  https://dotblogs.com.tw/mis2000lab/archive/2008/09/26/webservice_1.aspx  [入門範例] ASP.NET Web Service (asmx) 與 jQuery AJAX  https://dotblogs.com.tw/mis2000lab/archive/2015/05/19/jquery_ajax_web_service.aspx  Web API 超簡單入門 -- Your First ASP.NET Web API v1.0 #1 (C# / VB, 原 作:Mike Wasson)(系列文章)  https://dotblogs.com.tw/mis2000lab/2012/11/01/your_first_web_api_20121101_1

×