<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      REST與SOA兩種架構下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));
      11 }




      對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 }
      10 }



        

      如下圖所示:


      在REST中調用 GetMonthLog方法,只需將URI 換成http://localhost:27790/RESTService.svc/Get/2011/10即可
      有興趣的朋友可以試試。

      后記:本篇中所述為個人認識,如有偏頗,還望指教,謝謝!

       

      posted @ 2011-10-27 17:19  tyb1222  閱讀(5353)  評論(10)    收藏  舉報
      主站蜘蛛池模板: 丝袜美腿亚洲综合在线观看视频| 中文字幕人妻在线精品| 99riav国产精品视频| 中文字幕国产精品自拍| 亚洲人成网网址在线看| 国产精品va在线观看h| 一本大道无码av天堂| 国产精品亚洲二区在线看| 久久一日本综合色鬼综合色| 亚洲AV日韩AV激情亚洲| 精品人妻中文无码av在线| 国产自产一区二区三区视频| 99热精品毛片全部国产无缓冲| 国产91成人亚洲综合在线| 日本一区不卡高清更新二区| 亚洲一二三区精品美妇| 亚洲精品国产综合麻豆久久99| 国产亚洲精品超碰| 久久婷婷成人综合色综合| 日本不卡一区| 亚洲中文字幕综合网在线| 亚洲一区成人在线视频| 精品国产美女福到在线不卡| 欧美丰满熟妇bbbbbb| 国模精品视频一区二区三区| 久久se精品一区精品二区| 激情综合色综合啪啪开心| 小污女小欲女导航| 欧美国产精品啪啪| 精品无码人妻一区二区三区| 岳西县| 免费久久人人爽人人爽AV| 国产亚洲午夜高清国产拍精品| 国产网友愉拍精品视频手机 | 口爆少妇在线视频免费观看| 亚洲无人区一区二区三区| 给我播放片在线观看| 久久精品免视看国产成人| 动漫AV纯肉无码AV电影网| 黄又色又污又爽又高潮| 国产va免费精品观看精品|