天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

回顧.NET Remoting分布式開發

  記得在下第一次接觸.NET Remoting分布式開發是在2003年,那時候是Framework1.0初次亮相之時,Remoting分布式開發是Framework1.0其中一個亮點。經過多年的發展,在2005年,WCF隨著Framework2.0首先亮相。WCF是結合Remoting,Web服務,TCP/IP套接字,MSMQ信息,P2P,WSE等多方通訊的混合體。

  隨著WCF的出現是否意昧著Remoting即將沒落,答案是否定的。因為Remoting有其獨到之處,在通訊效率,信息交換,安全性等多方面都有其特點,所以在企業內部系統的信息化交換層的開發當中,很多時候會使用Remoting進行開發,在下面幾章為大家回顧一下Remoting的開發。

  一、基礎概念

  Remoting是采用分布式進行編程的一種技術,主要用于管理跨應用程序域的同步和異步RPC 會話。在默認情況下,Remoting可從使用 HTTP 或 TCP 協議進行信息通訊,并使用 XML 編碼的 SOAP 或二進制消息格式進行數據交換。.NET Remoting 提供了非常靈活和可擴展的編程框架,并且可以管理對象的狀態。Remoting跟Web服務不同,它并不依賴于IIS,用戶可以自己開發(Development)并部署(Dispose)宿主服務器,只需要服務器支持Framework。

  二、Remoting的特點

  Remoting可以靈活的定義其所基于的協議,比如http,tcp等。在使用TCP/IP的時候,Remoting能發揮更高的效率,其性能接近于DCOM。

  Remoting一般需要通過一個應用程序或是Windows服務來承載,也可以使用iis部署。

  Remoting必須要在一個支持Framework的開發環境下進行開發,無論客戶端跟服務器端都必須支持Framework。

  Remoting 支持許多狀態管理選項,并且可能與來自同一個用戶的多個調用相關或不相關,這取決于您選擇的對象生命周期架構。

  三、利用Remoting實現分布式開發的優點

  • 容錯性

  容錯性是指一個系統在出現故障時,系統應當能及時恢復。利用Remoting實現分布式應用開發可以建立容錯軟件系統,當某個功能發生錯誤時,不會影響整體系統的工作。使系統能夠及時維護及更新。

    • 可擴展性

      可擴展性是指系統可以利用性能上的遞增處理日益增加的負載量。利用Remoting實現分布式開發,可以將最重要的核心功能模塊放置于性能強大的幾臺主機上,把其他的功能放置于功能稍差的客戶端機上,隨著客戶的增加而加大客戶端主機的服務。這樣做可以減少開發成本,提高主體性能。

    • 易于管理

      一個大型計算機管理系統是非常復雜的,可能涉及的是異地機器之間的代碼調節。利用Remoting實現分布式開發,可以把核心的功能代碼移植到中央服務器,把頁面層,UI層等功能于客戶端實現。這樣系統的性能調節,代碼升級都可以在中央服務器里綜合實現,而忽略對客戶端的影響。

      四、Remoting體系結構

      下面詳細介紹一下Remoting的體系結構,如下圖。

      在客戶發送請求時可以通過Activator.GetObject()和Activator.CreateInstance()返回一個透明代理對象。實際上透明代理就像一個遠程對象,它執行遠程對象的所有公共方法,這些方法調用真實對象的Invoke()方法,傳送包含方法調用的消息。

      當消息進入Channel通道后,就會經過接收器處理。接收器包含格式接收器、通道接收器和傳輸接收器,其中格式接收器和傳輸接收器是必要的。首先格式接收器會使用SoapFormatter或BinaryFormatter的方式對傳輸的對象進行序列化,如果用戶設定了通道接收器,系統將會對其進行對應處理,最后把信息送到傳輸接收器,對應設定TCP或HTTP傳輸方式加入傳輸接收器頭。當信息發送到服務器服務器將會根據傳輸接收器頭對信息進行處理,然后在格式化接收器中對信息進行反序列化,最后通過真實代理處理遠程對象。至于通道接收器的處理方式,將在后幾章為大家進一步地介紹。


      五、簡單實例

      說了這么多,下面就以一個簡單的例子說明一下Remoting的開發過程吧。

      首先建立一個Model.dll,注意因為對象要進行序列化轉化,必須對其加上Serializable特性!

    代碼
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace Model
    {
    [Serializable]
    public class Person
    {
    public int ID
    {
    get;
    set;
    }

    public String Name
    {
    get;
    set;
    }

    public int Age
    {
    get;
    set;
    }
    }
    }

    NET技術回顧.NET Remoting分布式開發,轉載需保留來源!

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

    主站蜘蛛池模板: 午夜天堂AV久久久噜噜噜 | 野花影院手机在线观看 | 久久综合老色鬼网站 | 欧美一区二区日韩一区二区 | AV天堂午夜精品蜜臀AV | 国产精品视频第一区二区三区 | 啦啦啦视频在线观看WWW | 成年女人免费播放影院 | 野花日本手机观看大全免费3 | 男男被强bl高h文 | 六度影院最新 | 男同志china免费视频 | 亚洲永久免费视频 | 国产精品久久自在自2021 | www亚洲欲色成人久久精品 | 办公室日本肉丝OL在线 | 国产免费久久爱久久啪 | 儿子好妈妈的HD3中字抢劫 | 黄色小说男男 | 99精品电影 | 久久久99精品成人片中文 | 日韩黄色软件 | 午夜福利小视频400 午夜福利网国产A | 日本不卡不码高清免费 | 国产探花在线精品一区二区 | 亚洲国产综合久久久无码色伦 | 王晶三级作品 | 国产精品无码中文在线AV | yellow视频免费观看高清在线 | 女人吃男人的鸡鸡 | 北条麻妃のレズナンパ | 秋霞伦理电影在2017韩国在线伦 | 欧美XXXX69学生HD | 夜夜狂射影院欧美极品 | 九九99国产香蕉视频 | 午夜十八岁禁 | 中文日产无乱码AV在线观 | 538视频这里只有精品 | 亚洲一区日韩一区欧美一区a | 亚洲男人97色综合久久久 | 视频一区二区中文字幕 |