Remoting技術簡介

2021-06-16 00:32:04 字數 3655 閱讀 5197

remoting技術簡介

一 remoting技術出現的背景

1)分布式應用需求的迅速增長(peer-to-peer, grid等技術的出現)

2)原有的c/s, b/s模式和技術已經不能勝任(串列埠rs232,socket,rpc,dcom技術各有缺點)

二 什麼是romoting?

採用分布式進行程式設計的一種技術,remoting主要用於管理跨應用程式域的同步和非同步rpc 會話。在預設情況下,remoting使用 http 或 tcp 協議,並使用 xml 編碼的 soap 或本機二進位制訊息格式進行通訊。.net remoting 提供了非常靈活和可擴充套件的程式設計框架,並且他可以管理物件的狀態。

remoting優點:

1) 效能: 如果調優.net remoting 的效能,那麼他的效能非常好,速度接近dcom.

2) 可擴充套件:.net remoting 可供你選擇傳輸通道型別(如http,tcp)和格式型別(如binary,soap)。

3) 可配置:可以通過配置檔案配置應用程式。

4) clr和cts的好處:由於.net remoting是基於.net框架的,所以他擁有common type system(cts) 和 common language runtime(clr)所擁有的易於使用和功能強大的特點。

5)互用性(interoperability): .net remoting 支援開發標準(http,soap,wsdl,xml).

6) 安全性

7) 生命週期管理

三 remoting架構:

remoting通過通道(channel)來傳輸訊息。.net remoting支援兩種預設的協議支援通道(http和tcp).

四 遠端物件的兩個含義

操作遠端物件:物件執行在遠端,客戶端向他傳送訊息.

傳遞遠端物件:將遠端的物件拿到本地,或者將本地物件傳送過去,然後我們可以對副本進行操作.

五 啟用物件的兩種方式:伺服器啟用和客戶端啟用

1 伺服器啟用:「伺服器啟用的物件」是由伺服器控制生存期的物件。它們只在客戶端呼叫物件的第乙個方法時,根據需要由伺服器建立。伺服器啟用的物件只支援預設的建構函式。

**:

service

>

/p>

<

wellknown

mode

="singlecall"

type

="hello.helloservice, hello"

objecturi

="helloservice.soap"

/>

/p>

service

>

/p>

上面描述了乙個伺服器啟用的 (wellknown) 型別,其啟用方式設定為singlecall

伺服器啟用的物件有兩種啟用模式:singletonsinglecall.

1) singleton(單例項):

這些物件遵循傳統的singleton 設計模式,在這種模式中,任何時候記憶體中都只有乙個例項,所有客戶端都接受該例項提供的服務。

特點:a.在伺服器段只例項化一次,以後每次呼叫都訪問同乙個例項。

b.可以維持狀態

2) singlecall(單調用)

singlecall遠端伺服器型別總是為每個客戶端請求設定乙個例項。下乙個方法呼叫將改由其他例項進行服務。從設計角度看,singlecall型別提供的功能非常簡單。這種機制不提供狀態管理,如果您需要狀態管理,這將是乙個不利之處;如果您不需要,這種機制將非常理想。也許您只關心負載平衡和 可伸縮性而不關心狀態,那麼在這種情況下,這種模式將是您理想的選擇,因為對於每個請求都只有乙個例項。如果願意,開發人員可以向singlecall物件提供自己的狀態管理,但這種狀態資料不會駐留在物件中,因為每次呼叫新的方法時都將例項化乙個新的物件標識。

特點:a.每次呼叫都例項化新的例項

b.更好地支援無狀態程式設計模型

2 客戶端啟用

「客戶端啟用的物件」是當客戶端呼叫newactivator.createinstance()時在伺服器上建立的。

**:

service

>

/p>

<

activated

type

="hello.helloservice, hello"

objecturi

="helloservice.soap"

/>

/p>

service

>

/p>

上面描述了乙個客戶端啟用的型別。請注意,我們不再需要 url,因為對於客戶端啟用的型別,型別本身就足以啟用了。另外,wellknown標記已被activated標記替代。

六 remoting vs web service

這兩者都是基於分布式的開發,而且.net remoting有時也可以配置為web service,兩者有很多的相同之處。

一般來講,我把他們的不同之處列為5個方面。

1) 開發部署

webservice開發和部署比較簡單,remoting相對webservice開發和部署要稍複雜。

2) 協議的開放性 

兩者都可支援http,tcp,smtp等多種協議。

[一直以為webservice只支援http協議,經idior指點,原來在web services enhancements已有介紹,webservice也支援tcp,smtp等協議。微軟最新發布的wse應該是wse 3.0,以前還沒聽說過,真是汗顏!]

更詳細的內容待續...

3) 支援的型別系統

webservice只支援xsd型別系統,物件的型別的序列化受到限制,而remoting可以通過序列化為binary傳輸資料,支援更為廣泛的資料型別

4) 安全性

由 於 asp.net web 服務依賴於 http,因此它們與標準的 internet 安全性基礎結構相整合。asp.net 利用 iis 的安全性功能,為標準 http 驗證方案(包括基本、簡要、數字證書,甚至 microsoft .net passport)提供了強有力的支援。

一般情況下,.net remoting 管線不能確保跨程序呼叫的安全。使用 asp.net 託管於 iis 中的 .net remoting 端點可以利用 asp.net web 服務可用的所有安全性功能,包括對使用 ssl 確保有線通訊的安全性的支援。

5) 效能

從原始效能方面來講,使用 tcp 通道和二進位制格式化程式時,.net remoting 管線能夠提供最快的通訊。一般情況下,.net remoting的效能要比webservice高。  

python技術簡介 Python簡介

python 簡介 python是乙個高層次的 結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python的設計具有很強的可讀性,相比其他語言經用使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節,類似...

RIA技術簡介

1.的定義應用系統 技術允許我們在網際網路上以一種象使用web一樣簡單的方式來部署富客戶端程式。這是乙個使用者介面,它比用html 能實現的介面更加健壯 反應更加靈敏和更具有令人感興趣的視覺化特性。無論將來ria是否能夠如人們所猜測的那樣完全代替html應用 系統,對於那些採用胖客戶端技術執行複雜應...

WCCP 技術簡介

一 概述 雖然網際網路網路傳輸的資料量巨大,但是其中大部分傳輸來自使用者在任一既定地點上對相同內容的需求,這意味著廣域網大部分基礎設施傳輸著完全相同的內容和完全相同的需求,web 上的大量通訊流都是冗餘的,網路緩衝技術就是將這些被頻繁訪問的資訊,總是放在靠近訪問者一方的技術,使網路內容局域儲存從而更...