.NETRemoting
. NET 遠端處理(. NET Remoting)係微軟 . NET Framework 中个一種網路通訊技術,摎 XML Web Service 無共樣个係,佢做得用 SOAP 以外个協定來通訊,還過在伺服端摎使用者端之間所操作个方法將近差毋多共樣,使用者做得毋使考慮使用个協定,就做得有伺服端所開放个物件。這個技術摎係由 Distributed COM 所發展來个,摎 DCOM 盡大个無共樣係,DCOM 有限制使用 TCP Port,毋過 . NET Remoting 做得選擇使用 TCP 抑係 HTTP 个方式通訊,還過資料可以利用 SOAP 或者係二進位傳輸个方式在網路上流動,二進位个傳輸效能係 SOAP 所做毋得比个,毋過 SOAP 嗄做得得著同 Web Service 相互溝通个能力,故所 . NET Remoting 个設計彈性較大。
. NET Remoting 技術目前已經整合到 Windows Communication Foundation 中。
原理
. NETRemoting 用吔信道摎序列化機制來串接兩臺機器之間个物件,信道係負責處理網路通訊个部份,續下來序列化係處理物件還有串流資料个處理工作。
- 信道支援吔 IPC(行程中通訊)、 TCP 摎 HTTP 通訊協定。
- 序列化支援兩進位(binary)抑係 XML(SOAP)通訊協定个資料串流。
用个路做伺服端設定好使用个通道摎協定過後, 使用者端必須愛跈等伺服端个設定,還過依伺服端決定个活化模型來啟動,而程式設計个方法摎一般个呼喊元件个簡單。
組態設定
. NET Remoting 个設計理念,就係為著愛簡化網路頂項个物件通訊,還過愛分開發人員毋使忒過在通信个底層傷腦筋,故所在網路通訊協定頂項做吔當多个包裝,還過做得在 Configuration File(app . config)中直接設定,也係由 . NET Remoting 个 Configuration API 來設定就做得,故所組態設定个選項複雜度較高,設計較複雜个 . NET Remoting 應用程式在組態个設定上往往會相當个複雜。
以下為設定 . NET Remoting 使用者端个範例設定:
活化模型
活化(Activation)係指使用者端啟動伺服端元件个方式,. NET Remoting 中支援了兩種方式:
- Single-Call:每一次使用者端呼喊个時節都生成一隻執行个個體。
- Single-ton:在第一擺喊个時節就生成執行个個體,過後逐擺呼籲都使用共樣个執行個體。
物件傳達
在 . NET Remoting 中,無論係傳值抑係傳址,每一個物件都定著愛繼承System . MarshalByRefObject類別,正做得利用 . NET Remoting 來傳輸。
用下程式碼做伺服端个 Remoting 元件: