關於Remoting和一些概念比較

2021-04-06 20:06:56 字數 2697 閱讀 3987

remoting是乙個分布式處理服務。伺服器端首先建立通道(channel),並自動開啟監聽通道。根據客戶端發出的請求,傳遞遠端物件。

因此,編寫

remoting程式,主要分為三部分:

1、被傳遞的遠端物件;

2、伺服器端監聽程式;

3、客戶端請求和處理物件程式;

一、remoting的優缺點?

優點:

1、能讓我們進行分布式開發

2、tcp通道的remoting速度非常快

3、雖然是遠端的,但是非常接近於本地呼叫物件

4、可以做到保持物件的狀態

5、沒有應用程式限制,可以是控制台,winform,iis,windows服務承載遠端物件

缺點: 1、非標準的應用因此有平台限制

2、脫離iis的話需要有自己的安全機制

二、remoting和web service

web service大體上分為5個層次:

1.http傳輸通道

2.xml的資料格式

3.soap封裝格式

4.wsdl的描述方式

5.uddi

總體上來講,.net 下的 web service結構比較簡單,也比較容易理解和應用:

一般來講在.net結構下的webservice應用都是基於.net framework以及iis的架構之下,所以部署(dispose)起來相對比較容易點.

從實現的角度來講,

首先webservice必須把暴露給客戶端的方法所在的類繼承於:system.web.services.webservice這個基類

其次所暴露的方法前面必須有[webmethod]或者[webmethodattribute]

webservice的執行機理

首先客戶端從伺服器的到webservice的wsdl,同時在客戶端聲稱乙個**類(proxy class)

這個**類負責與webservice伺服器進行request 和response

當乙個資料(xml格式的)被封裝成soap格式的資料流傳送到伺服器端的時候,就會生成乙個程序物件並且把接收到這個request的soap包進行解析,然後對事物進行處理,處理結束以後再對這個計算結果進行soap包裝,然後把這個包作為乙個response傳送給客戶端的**類(proxy class),同樣地,這個**類也對這個soap包進行解析處理,繼而進行後續操作。

這就是webservice的乙個執行過程。

下面我們對.net remoting進行概括的闡述:

.net remoting 是在dcom等基礎上發展起來的一種技術,它的主要目的是實現跨平台、跨語言、穿透企業防火牆,這也是他的基本特點,與webservice有所不同的是,它支援http以及tcp通道,而且它不僅能傳輸xml格式的soap包,也可以傳輸傳統意義上的二進位製流,這使得它變得效率更高也更加靈活。而且它不依賴於iis,使用者可以自己開發(development)並部署(dispose)自己喜歡的宿主伺服器,所以從這些方面上來講webservice其實上是.net remoting的一種特例。

再次我們對webservice 以及remoting做乙個比較

webservice的特點是:平**立性(platform-independent)、跨語言(只要能支援xml的語言都可以)以及穿透企業防火牆

但是它的缺點也很明顯,就是需要部署一台web server;而且速度比較慢;

.net remoting的特點是

他的優點是使用者既可以使用tcp通道方式進行二進位製流方式通訊,也可以使用http通道進行soap格式的性通訊

效率相對webservice要高不少;但是它的缺點也很明顯,.net remoting只能應用於ms 的.net framework之下。

從效能上來講remoting的效率和傳統的dcom、com+的效能很相近!

三、remoting和socket

socket與remoting根本就不是設計成一樣的用途的,remoting主要用於跨越應用程式邊界的物件傳輸,大部分功能相當於webservice

首先,.net remoting不過是建立在socket上的高階應用。

其次socket是用來傳輸資料的,而.net remoting是遠端呼叫物件的,兩個根本就不是幹一件事的。

四、remoting和web服務的區別?

asp.net web 服務基礎結構通過將 soap 訊息對映到方法呼叫,為 web 服務提供了簡單的 api。通過提供一種非常簡單的程式設計模型(基於將 soap 訊息交換對映到方法呼叫),它實現了此機制。asp.net web 服務的客戶端不需要了解用於建立它們的平台、物件模型或程式語言。而服務也不需要了解向它們傳送訊息的客戶端。唯一的要求是:雙方都要認可正在建立和使用的 soap 訊息的格式,該格式是由使用 wsdl 和 xml 架構 (xsd) 表示的 web 服務合約定義來定義的。

. net remoting 為分布式物件提供了乙個基礎結構。它使用既靈活又可擴充套件的管線向遠端程序提供 .net 的完全物件語義。asp.net web 服務基於訊息傳遞提供非常簡單的程式設計模型,而 .net remoting 提供較為複雜的功能,包括支援通過值或引用傳遞物件、**,以及多物件啟用和生命週期管理策略等。要使用 .net remoting,客戶端需要了解所有這些詳細資訊,簡而言之,需要使用 .net 建立客戶端。.net remoting 管線還支援 soap 訊息,但必須注意這並沒有改變其對客戶端的要求。如果 remoting 端點提供 .net 專用的物件語義,不管是否通過 soap,客戶端必須理解它們。

關於KVM一些概念

kvm kernel virtual machine核心虛擬機器 是乙個linux核心模組,可以用modprobe去載入kvm模組。載入模組後,才能進一步通過其他工具建立虛擬機器。但僅有kvm模組是不行的,因為使用者無法直接控制核心模組去作事情,所以還要有乙個使用者空間的工具才行。這個使用者空間的工...

關於uboot一些概念

u boot的環境變數值得注意的有兩個 bootcmd和bootargs。bootcm bootargs bootargs是環境變數中的重中之重,甚至可以說整個環境變數都是圍繞著bootargs來設定的。bootargs的種類非常非常的多,我們平常只是使用了幾種而已.bootargs非常的靈活,核心...

關於多核的一些概念和區別

多核處理器 cmp 就是將多個計算核心整合在乙個處理器晶元中,從而提高計算能力。按計算核心的對等與否,cmp可分為同構多核和異構多核。計算核心相同,地位對等的稱為同構多核。反之稱為異構多核。多處理器指多個cpu,每個cpu可以是單核或多核的。雖然同時使用多個cpu,但是從管理的角度來看,它們的表現就...