SlideShare a Scribd company logo
1 of 41
從SOA 到 REST
Web Service、WCF、Web API的應用情境
MIS2000 Lab.
(微軟MVP 2008~2016)
mis2000lab@yahoo.com.tw
http://www.dotblogs.com.tw/mis2000lab
Agenda
 簡介
 情境 Scenario (How to do ?)
 以前的故事 (EDI、B計畫、C計畫)
 WS-*、WCF Service、Web API
 What’s RESTful
 SOAP v.s. REST
 Case Study
簡 介
傳統商用程式的作法
Applications 資料來源(DB)
ConnectionString
Internet Application (Web-base)
 圖片來源 http://mechittechnologies.com/webapp.php
5
加入Web Service
Applications
WS-*
WCF Service
Web API
資料來源(DB)
ConnectionStringUri / Url
適合多種 Client端串連
Desk-top
Web
Mobile
App
WS-*
Internet Application
(Web Service-base)
 圖片來源 http://mechittechnologies.com/webapp.php
8
情境 Scenario
全球簡訊發送&管理
 故事起源
 http://電信業者/?對方電話=...&簡訊內容
=....&編碼=...
OnSite Service 人員外派監控
 故事起源
 第一版,電話語音卡(CTI),類似信用卡中心、
公司總機
 第二版,Mobile App(手機版)
 重點是:我負責的程式只有一套,不需改寫。
New Hope
Applications
前端
WS-*
WCF Service
Web API
後端
資料來源(DB)
以前的故事
Hub & B2Bi
Hub
Corp
A
Corp
D
Corp
C
Corp
B
From EDI To B2Bi
 美國 GXS (Global eXchange Service)
 EDI、ANSI-X12
 XML、RosettaNet 電子商務
 HL7(HealthLevelSeven) 健康資訊交換第七層協定
 JSON
企業之間的對話 (RosettaNet)
 資料來源 www.ec.ccu.edu.tw/book/xml/slidec/ch11.ppt
Request
Response
Request
Response
Order Request
Receipt Acknowledge
Receipt Acknowledge
Order Acceptance
HIS 醫療資訊系統
18
Web Service、WCF、Web API
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服務關注與那些穩定的資源的互動,而不是消息或動作。
WCF Service
 WCF (Windows Communication Foundation)。
 由微軟發展的資料通訊的應用程式開發介面(API),是.NET框
架的一部分,始於.NET Framework 3.0
WCF Service
 WCF基本概念是以合約(Contract)來定義雙方溝通的協定,
合約以介面的方式呈現
 實際程式碼必須要由合約介面衍生並實作。四種合約:
 1.資料合約(Data Contract),雙方溝通時的資料格式。
 2.服務合約(Service Contract),服務的定義。
 3.營運合約(Operation Contract),服務提供的方法。
 4.訊息合約(Message Contract),通訊期間覆寫訊息內容的規範。
22
WCF Service
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
RESTful 設計風格 三位一體
25
Web API
 ASP.NET Web API (application
programming interface) 是一個架構,可
輕易建置 HTTP 服務並擴及廣大的用戶端
範圍,包括瀏覽器和行動裝置。
 ASP.NET Web API 是一個想理平台,
以 .NET Framework 基礎建置 RESTful 應
用程式。
26
Web API
27
Web API v.s. WCF Service
28
REST v.s. Web API
 圖片來源 http://restlet.com/blog/2013/05/02/how-much-rest-should-your-web-api-get/
29
30
.NET 4.5起的 One ASP.NET 概念
31
SOAP v.s. REST
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.
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
SOAP v.s. REST
SOAP v.s. REST
SOAP與RESTful 程式寫法
Case Study
Case Study
 .NET (C# or VB)、工具 Visual Studio (free)
 Server端的技術
Web Service
WCF Service
Web API
 Client端的技術
JavaScript
jQuery
我 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

More Related Content

What's hot

2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定Enpel
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
 
RESTful services
RESTful servicesRESTful services
RESTful servicesgouthamrv
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
Deep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer ArchitectureDeep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer ArchitectureWSO2
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework Rohit Kelapure
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache TomcatAuwal Amshi
 
Microservices Security
Microservices SecurityMicroservices Security
Microservices SecurityAditi Anand
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTGaurav Roy
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual networkKuniteru Asami
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりShinichi Tomita
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring BootTrey Howard
 

What's hot (20)

2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)
 
Rest assured
Rest assuredRest assured
Rest assured
 
RESTful services
RESTful servicesRESTful services
RESTful services
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Keycloak開発入門
Keycloak開発入門Keycloak開発入門
Keycloak開発入門
 
Deep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer ArchitectureDeep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer Architecture
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
REST API Design
REST API DesignREST API Design
REST API Design
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Introduction to weblogic
Introduction to weblogicIntroduction to weblogic
Introduction to weblogic
 
Microservices Security
Microservices SecurityMicroservices Security
Microservices Security
 
WebLogic FAQs
WebLogic FAQsWebLogic FAQs
WebLogic FAQs
 
Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWT
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 

Viewers also liked

[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生MIS2000 Lab.
 
REST to RESTful Web Service
REST to RESTful Web ServiceREST to RESTful Web Service
REST to RESTful Web Service家弘 周
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享國昭 張
 
淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享Tun-Yu Chang
 
開放源碼的ASP.NET Core & ADO.NET (for VS2015)
開放源碼的ASP.NET Core & ADO.NET (for VS2015)開放源碼的ASP.NET Core & ADO.NET (for VS2015)
開放源碼的ASP.NET Core & ADO.NET (for VS2015)MIS2000 Lab.
 
「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天mailiChrist
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌Tun-Yu Chang
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11twMVC
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发Ace Lee
 
Securing Single Page Applications with Token Based Authentication
Securing Single Page Applications with Token Based AuthenticationSecuring Single Page Applications with Token Based Authentication
Securing Single Page Applications with Token Based AuthenticationStefan Achtsnit
 

Viewers also liked (13)

[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生
 
REST to RESTful Web Service
REST to RESTful Web ServiceREST to RESTful Web Service
REST to RESTful Web Service
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享
 
淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享
 
開放源碼的ASP.NET Core & ADO.NET (for VS2015)
開放源碼的ASP.NET Core & ADO.NET (for VS2015)開放源碼的ASP.NET Core & ADO.NET (for VS2015)
開放源碼的ASP.NET Core & ADO.NET (for VS2015)
 
「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发
 
雲端媒體串流
雲端媒體串流雲端媒體串流
雲端媒體串流
 
AWS Lambda in C#
AWS Lambda in C#AWS Lambda in C#
AWS Lambda in C#
 
Securing Single Page Applications with Token Based Authentication
Securing Single Page Applications with Token Based AuthenticationSecuring Single Page Applications with Token Based Authentication
Securing Single Page Applications with Token Based Authentication
 
JSON and REST
JSON and RESTJSON and REST
JSON and REST
 

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

Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Gelis Wu
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Servicesjavatwo2011
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战fengmk2
 
[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hack[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hackpnig0s pnig0s
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战fengmk2
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web APItwMVC
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8twMVC
 
PHP & AppServ
PHP & AppServPHP & AppServ
PHP & AppServHt Wang
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVCjeffz
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展江華 奚
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0soboring
 
API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseSzuping Wang
 
鼎鈞數位行銷App營運實務全攻略
鼎鈞數位行銷App營運實務全攻略鼎鈞數位行銷App營運實務全攻略
鼎鈞數位行銷App營運實務全攻略淳甫 鄭
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 twMVC
 

Similar to 從SOA到REST -- Web Service、WCF、WebAPI的應用情境 (20)

Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
 
[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hack[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hack
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
 
Intro to REST
Intro to RESTIntro to REST
Intro to REST
 
Intro to rest
Intro to restIntro to rest
Intro to rest
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web API
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
 
PHP & AppServ
PHP & AppServPHP & AppServ
PHP & AppServ
 
Webservice
WebserviceWebservice
Webservice
 
Webservice
WebserviceWebservice
Webservice
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
 
API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime database
 
鼎鈞數位行銷App營運實務全攻略
鼎鈞數位行銷App營運實務全攻略鼎鈞數位行銷App營運實務全攻略
鼎鈞數位行銷App營運實務全攻略
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17
 

More from MIS2000 Lab.

發大財#2 - 初學者上課前 常問的問題 Faq
發大財#2 - 初學者上課前 常問的問題 Faq發大財#2 - 初學者上課前 常問的問題 Faq
發大財#2 - 初學者上課前 常問的問題 FaqMIS2000 Lab.
 
發大財#1 - 寫程式真的能年薪百萬?發大財?
發大財#1 - 寫程式真的能年薪百萬?發大財?發大財#1 - 寫程式真的能年薪百萬?發大財?
發大財#1 - 寫程式真的能年薪百萬?發大財?MIS2000 Lab.
 
ASP.NET MVC 5線上課程(入門前三天)
ASP.NET MVC 5線上課程(入門前三天)ASP.NET MVC 5線上課程(入門前三天)
ASP.NET MVC 5線上課程(入門前三天)MIS2000 Lab.
 
ASP.NET 5 / Core MVC - Shop 網路商城
ASP.NET 5 / Core MVC - Shop 網路商城ASP.NET 5 / Core MVC - Shop 網路商城
ASP.NET 5 / Core MVC - Shop 網路商城MIS2000 Lab.
 
CES 2017 消費電子展 (創新產品)
CES 2017 消費電子展 (創新產品)CES 2017 消費電子展 (創新產品)
CES 2017 消費電子展 (創新產品)MIS2000 Lab.
 
02 C# & VB基本語法 for ASP.NET
02 C# & VB基本語法 for ASP.NET02 C# & VB基本語法 for ASP.NET
02 C# & VB基本語法 for ASP.NETMIS2000 Lab.
 

More from MIS2000 Lab. (6)

發大財#2 - 初學者上課前 常問的問題 Faq
發大財#2 - 初學者上課前 常問的問題 Faq發大財#2 - 初學者上課前 常問的問題 Faq
發大財#2 - 初學者上課前 常問的問題 Faq
 
發大財#1 - 寫程式真的能年薪百萬?發大財?
發大財#1 - 寫程式真的能年薪百萬?發大財?發大財#1 - 寫程式真的能年薪百萬?發大財?
發大財#1 - 寫程式真的能年薪百萬?發大財?
 
ASP.NET MVC 5線上課程(入門前三天)
ASP.NET MVC 5線上課程(入門前三天)ASP.NET MVC 5線上課程(入門前三天)
ASP.NET MVC 5線上課程(入門前三天)
 
ASP.NET 5 / Core MVC - Shop 網路商城
ASP.NET 5 / Core MVC - Shop 網路商城ASP.NET 5 / Core MVC - Shop 網路商城
ASP.NET 5 / Core MVC - Shop 網路商城
 
CES 2017 消費電子展 (創新產品)
CES 2017 消費電子展 (創新產品)CES 2017 消費電子展 (創新產品)
CES 2017 消費電子展 (創新產品)
 
02 C# & VB基本語法 for ASP.NET
02 C# & VB基本語法 for ASP.NET02 C# & VB基本語法 for ASP.NET
02 C# & VB基本語法 for ASP.NET
 

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