成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

REST與SOA兩種架構下WCF的異同比較(含源碼)

開發 后端
REST(Representational State Transfer)與SOA(Service-Oriented Architecture)作為當今軟件架構中主流的兩種架構思想在當前開發過程中已經越來越流行。作為微軟.NET平臺下的下一代通訊技術,WCF也很好的體現了對他們的支持。那么他們到底有哪些差別又有哪些相同之處呢。?

REST(Representational State Transfer)與SOA(Service-Oriented Architecture)作為當今軟件架構中主流的兩種架構思想在當前開發過程中已經越來越流行。作為微軟.NET平臺下的下一代通訊技術,WCF也很好的體現了對他們的支持。那么他們到底有哪些差別又有哪些相同之處呢。?本篇將針對這個問題談談自己的認識,并通過Demo演示程序。

本篇設計的內容如下:

1、REST的特性

2、SOA的特征

3、REST與SOA的共同點

4、REST與SOA的不同點

5、Demo程序說明

*REST的特性。

首先給出一張圖:

 

 

它基于HTTP協議,是一種明確構建在客戶端/服務端體系結構上的一種風格。特征如下:

1、網絡上的資源都被抽象為資源,這些資源都具有唯一的統一資源標識符

(URI:Uniform Resource Identiter),這些資源都是自我們描述的。這些資源使用HTTP內容標頭類型指定。如:XML、JSON、HTML、PNG等。

2、服務的使用者通過HTTP協議的標準動作(Get、Put、Post、Delete)通過統一的接口對資源進行操作。

3、對資源進行的操作不會改變它的URI。

4、客戶端、服務端之間的交互是沒有狀態的。由于這種無狀態行,服務端不需要為每個客戶端維護Context

*SOA的特征

首先給出一張圖:

 

 

1、通過網絡終結點對外提供服務。

2、粗粒度的服務接口。

*REST與SOA的共同點

REST與SOA兩者,雖有不同點,但是他們都作為服務的不同架構風格,具有服務的一般屬性。具體如下:

1、統一的服務契約接口與服務接口

2、松散的耦合。

3、只要有權限都可以進行訪問

*REST與SOA的不同點

1、REST風格下的,只有一種協議,那就是HTTP。而SOA下的WCF就和多種協議了。如:TCP、HTTP、MSMQ等多種協議

2、使用方式上的不同。REST只要客戶端能夠模擬HTTP請求,通過標準的HTTP動作,都可以進行訪問。它使用的是HTTPChannel管道,而SOA下的WCF由于

協議的多樣性,使用的管道有HTTPChannel、TcpChannel、RPC等多種。

3、REST寄宿時,雖然可以選擇多種寄宿方式,但必須有IIS的支持(稍后章節會介紹它的寄宿方式)。SOA下的WCF卻沒有這個限制

*Demo程序

程序沿用了上節使用的實例,分別實現了REST與SOA服務。服務中,契約的定義以及實現完全相同。為了使用用REST相同的協議,SOA服務端采用了wsHttpBinding協議。REST與SOA服務的消費者采用同一個客戶端。

程序結構如下圖:

 

 

客戶端對SOA服務的調用代碼如下:

  1. using (ChannelFactory<ILog> factory = new ChannelFactory<ILog>("SOAService"))  
  2. {  
  3. ILog log = factory.CreateChannel();  
  4. List<LogEntity> listAll = log.GetAll();  
  5. Console.WriteLine(string.Format("GetAll 方法獲取到日志記錄有{0}條", listAll.Count));  
  6. Console.WriteLine();  
  7. const string year = "2011";  
  8. const string month = "10";  
  9. List<LogEntity> list = log.GetMonthLog(year, month);  
  10. Console.WriteLine(string.Format("GetMonthLog 方法獲取到{0}年{1}月日志記錄有{2}條",year,month,list.Count));   

對REST的調用代碼如下:

  1. HttpWebRequest request = WebRequest.Create("http://localhost:27790/RESTService.svc/") as HttpWebRequest;  
  2. request.Method = "GET";  
  3. HttpWebResponse response = request.GetResponse() as HttpWebResponse;  
  4. using (StreamReader reader=new StreamReader(response.GetResponseStream()))  
  5. {  
  6. if (response.StatusCode==HttpStatusCode.OK)  
  7. {  
  8. Console.WriteLine(reader.ReadToEnd());  
  9. }  

如下圖所示:

 

 

在REST中調用 GetMonthLog方法,只需將URI 換成http://localhost:27790/RESTService.svc/Get/2011/10即可

有興趣的朋友可以試試。

源碼下載:http://files.cnblogs.com/tyb1222/WCFStyle.rar

原文:http://www.cnblogs.com/tyb1222/archive/2011/10/27/2226845.html

【編輯推薦】

  1. WCF Web API輕松實現REST
  2. jQuery調用WCF開發實例經驗分享
  3. 手把手教你如何應用WCF中的REST
  4. 不要在using語句中調用WCF服務
  5. 詳解WCF 4安全性以及新WIF框架介紹
責任編輯:陳貽新 來源: tyb1222的博客
相關推薦

2010-02-24 14:25:48

WCF地址

2011-04-01 16:14:17

ADSL接入方式PPPoE

2009-12-25 16:58:19

ADSL接入方式

2010-07-14 16:28:58

配線架

2009-12-07 13:42:24

WCF框架

2009-12-31 13:37:46

多協議GMPLS

2012-10-16 09:40:38

洗牌算法

2009-11-06 12:59:56

WCF服務通信

2018-12-03 09:03:18

SANNAS存儲系統

2024-01-09 09:09:45

RESTGraphQL

2018-06-04 09:43:53

分層存儲Linux

2010-09-06 17:26:54

SQL函數

2010-07-13 10:47:18

Perl面向對象

2009-06-19 17:05:08

MVC框架Struts和Spri

2009-10-20 13:59:59

網絡綜合布線系統

2023-01-30 08:00:00

開發人工智能語言

2009-11-06 14:40:34

WCF REST架構

2009-12-04 17:13:18

2023-05-31 19:10:31

2010-02-23 18:05:40

WCF異常現象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天插天天操 | 99国产视频 | 精品国产精品国产偷麻豆 | 欧美日韩在线成人 | 一级欧美一级日韩片 | 精品一区二区三区四区五区 | 黄色毛片免费看 | 色婷婷精品久久二区二区蜜臂av | 一级中国毛片 | 国产欧美精品一区二区三区 | 国产精品永久免费 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 欧美男人天堂 | 亚洲三区在线观看 | 国产资源在线播放 | 成人在线中文字幕 | 亚洲高清一区二区三区 | 亚洲美女在线视频 | 午夜爽爽爽男女免费观看影院 | 国产精品九九九 | 天天天插| 久久久精品国产 | 日韩成人精品视频 | 久久久久久久久久久久久9999 | 久久伊人免费视频 | 国产亚洲精品久久久优势 | 欧美成人第一页 | 涩涩视频在线观看免费 | 国产 欧美 日韩 一区 | 日韩av成人在线 | 久久成人免费 | 亚洲欧洲在线观看视频 | 一区二区三区国产好 | 免费在线观看一区二区 | 精品视频免费 | 日韩另类 | 欧美激情久久久 | 国产午夜精品一区二区三区嫩草 | 国内自拍偷拍一区 | 国产精品视频不卡 | 欧美一区二区三区在线视频 |