❶ 這個英語單詞是什麼意思
什麼是Remoting,簡而言之,我們可以將其看作是一種分布式處理方式。從微軟的產品角度來看,可以說Remoting就是DCOM的一種升級,它改善了很多功能,並極好的融合到.Net平台下。Microsoft? .NET Remoting 提供了一種允許對象通過應用程序域與另一對象進行交互的框架。這也正是我們使用Remoting的原因。為什麼呢?在Windows操作系統中,是將應用程序分離為單獨的進程。這個進程形成了應用程序代碼和數據周圍的一道邊界。如果不採用進程間通信(RPC)機制,則在一個進程中執行的代碼就不能訪問另一進程。這是一種操作系統對應用程序的保護機制。然而在某些情況下,我們需要跨過應用程序域,與另外的應用程序域進行通信,即穿越邊界。
在Remoting中是通過通道(channel)來實現兩個應用程序域之間對象的通信的。首先,客戶端通過Remoting,訪問通道以獲得服務端對象,再通過代理解析為客戶端對象。這就提供一種可能性,即以服務的方式來發布伺服器對象。遠程對象代碼可以運行在伺服器上(如伺服器激活的對象和客戶端激活的對象),然後客戶端再通過Remoting連接伺服器,獲得該服務對象並通過序列化在客戶端運行。
在Remoting中,對於要傳遞的對象,設計者除了需要了解通道的類型和埠號之外,無需再了解數據包的格式。但必須注意的是,客戶端在獲取伺服器端對象時,並不是獲得實際的服務端對象,而是獲得它的引用。這既保證了客戶端和伺服器端有關對象的鬆散耦合,同時也優化了通信的性能。
Remoting的兩種通道
Remoting的通道主要有兩種:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定義了 IChannel介面。IChannel介麵包括了TcpChannel通道類型和Http通道類型。它們分別對應Remoting通道的這兩種類型。
TcpChannel類型放在名字空間System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基於Socket 的傳輸工具,使用Tcp協議來跨越Remoting邊界傳輸序列化的消息流。TcpChannel類型默認使用二進制格式序列化消息對象,因此它具有更高的傳輸性能。HttpChannel類型放在名字空間System.Runtime.Remoting.Channel.Http中。它提供了一種使用 Http協議,使其能在Internet上穿越防火牆傳輸序列化消息流。默認情況下,HttpChannel類型使用Soap格式序列化消息對象,因此它具有更好的互操作性。通常在區域網內,我們更多地使用TcpChannel;如果要穿越防火牆,則使用HttpChannel。
遠程對象的激活方式
在訪問遠程類型的一個對象實例之前,必須通過一個名為Activation的進程創建它並進行初始化。這種客戶端通過通道來創建遠程對象,稱為對象的激活。在Remoting中,遠程對象的激活分為兩大類:伺服器端激活和客戶端激活。
伺服器端激活,又叫做WellKnow方式,很多又翻譯為知名對象。為什麼稱為知名對象激活模式呢?是因為伺服器應用程序在激活對象實例之前會在一個眾所周知的統一資源標識符(URI)上來發布這個類型。然後該伺服器進程會為此類型配置一個WellKnown對象,並根據指定的埠或地址來發布對象。. Net Remoting把伺服器端激活又分為SingleTon模式和SingleCall模式兩種。
SingleTon模式:此為有狀態模式。如果設置為SingleTon激活方式,則Remoting將為所有客戶端建立同一個對象實例。當對象處於活動狀態時, SingleTon實例會處理所有後來的客戶端訪問請求,而不管它們是同一個客戶端,還是其他客戶端。SingleTon實例將在方法調用中一直維持其狀態。舉例來說,如果一個遠程對象有一個累加方法(i=0;++i),被多個客戶端(例如兩個)調用。如果設置為SingleTon方式,則第一個客戶獲得值為1,第二個客戶獲得值為2,因為他們獲得的對象實例是相同的。如果熟悉Asp.Net的狀態管理,我們可以認為它是一種Application狀態。
SingleCall模式:SingleCall是一種無狀態模式。一旦設置為SingleCall模式,則當客戶端調用遠程對象的方法時, Remoting會為每一個客戶端建立一個遠程對象實例,至於對象實例的銷毀則是由GC自動管理的。同上一個例子而言,則訪問遠程對象的兩個客戶獲得的都是1。我們仍然可以借鑒Asp.Net的狀態管理,認為它是一種Session狀態。
客戶端激活。與WellKnown模式不同, Remoting在激活每個對象實例的時候,會給每個客戶端激活的類型指派一個URI。客戶端激活模式一旦獲得客戶端的請求,將為每一個客戶端都建立一個實例引用。SingleCall模式和客戶端激活模式是有區別的:首先,對象實例創建的時間不一樣。客戶端激活方式是客戶一旦發出調用的請求,就實例化;而SingleCall則是要等到調用對象方法時再創建。其次,SingleCall模式激活的對象是無狀態的,對象生命期的管理是由GC管理的,而客戶端激活的對象則有狀態,其生命周期可自定義。其三,兩種激活模式在伺服器端和客戶端實現的方法不一樣。尤其是在客戶端,SingleCall模式是由 GetObject()來激活,它調用對象默認的構造函數。而客戶端激活模式,則通過CreateInstance()來激活,它可以傳遞參數,所以可以調用自定義的構造函數來創建實例。
遠程對象的定義
前面講到,客戶端在獲取伺服器端對象時,並不是獲得實際的服務端對象,而是獲得它的引用。因此在Remoting中,對於遠程對象有一些必須的定義規范要遵循。
由於Remoting傳遞的對象是以引用的方式,因此所傳遞的遠程對象類必須繼承MarshalByRefObject。MSDN對 MarshalByRefObject的說明是:MarshalByRefObject 是那些通過使用代理交換消息來跨越應用程序域邊界進行通信的對象的基類。不是從 MarshalByRefObject 繼承的對象會以隱式方式按值封送。當遠程應用程序引用一個按值封送的對象時,將跨越遠程處理邊界傳遞該對象的副本。因為您希望使用代理方法而不是副本方法進行通信,因此需要繼承MarshallByRefObject。
在Remoting中能夠傳遞的遠程對象可以是各種類型,包括復雜的DataSet對象,只要它能夠被序列化。遠程對象也可以包含事件,但伺服器端對於事件的處理比較特殊,我將在本系列之三中介紹。
伺服器端
根據第一部分所述,根據激活模式的不同,通道類型的不同伺服器端的實現方式也有所不同。大體上說,伺服器端應分為三步:
1、注冊通道
要跨越應用程序域進行通信,必須實現通道。如前所述,Remoting提供了IChannel介面,分別包含TcpChannel和 HttpChannel兩種類型的通道。這兩種類型除了性能和序列化數據的格式不同外,實現的方式完全一致,因此下面我們就以TcpChannel為例。
注冊TcpChannel,首先要在項目中添加引用「System.Runtime.Remoting」,然後using名字空間: System.Runtime.Remoting.Channel.Tcp。在實例化通道對象時,將埠號作為參數傳遞。然後再調用靜態方法 RegisterChannel()來注冊該通道對象即可。
2、注冊遠程對象
注冊了通道後,要能激活遠程對象,必須在通道中注冊該對象。根據激活模式的不同,注冊對象的方法也不同。
對於WellKnown對象,可以通過靜態方法 RemotingConfiguration.RegisterWellKnownServiceType()來實現,注冊對象的方法基本上和 SingleTon模式相同,只需要將枚舉參數WellKnownObjectMode改為SingleCall就可以了。
3、注銷通道
如果要關閉Remoting的服務,則需要注銷通道,也可以關閉對通道的監聽。在Remoting中當我們注冊通道的時候,就自動開啟了通道的監聽。而如果關閉了對通道的監聽,則該通道就無法接受客戶端的請求,但通道仍然存在,如果你想再一次注冊該通道,會拋出異常。
registered
KK: []
DJ: []
a.
1. 注冊的;登記過的;已掛號的
2. (動物)附有血統證明的
3. (證券等)記名的
❷ 這個英語單詞是什麼意思
神經病患者
❸ 這個單詞是什麼意思用英語說三種寫法
What meaning is this word what does this word mean?What's the meaning of this word?
❹ 這個單詞是什麼意思用英語兩種表達方式
what does this word mean
what is this word』s meaning
❺ 這個英語單詞是什麼意思
杜尼婭 品牌
KOREA韓國產
100%棉
尺寸為M中號
❻ 這個英語單詞是什麼意思啊
Painting
❼ "你什麼意思","這個單詞是什麼意思」用英語什麼說
what do you mean?
what's the meaning of this word?
❽ 你認為這個單詞是什麼意思++翻譯成英語
what do you think this word mean?what's the meaning of this word?