国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【Remoting-4】

2019-11-14 13:59:41
字體:
來源:轉載
供稿:網友


【服務對象三種激活方式的不同】
【1】客戶端激活方式
【A】對象的創建,對象方法的執行都是在遠程服務端。
【B】服務端為每一個客戶端創建其專屬的對象,為這個客戶提供服務,并且保存狀態
【C】可以從遠程獲取到方法執行的返回值
【D】使用客戶激活方式時候,遠程對象在調用new操作時被創建[敘述了遠程對象何時在服務端被創建]

【2】服務端激活方式--Singleton
【A】在服務端,服務對象的構造函數只會被調用一次
【B】后繼的請求都使用該對象進行服務。==>【有狀態】的激活模式
【C】多個客戶端共享一個遠程對象【的狀態】。
【D】在【客戶端】即時使用new操作符,【服務端】也不會創建一個對象,
只有在【客戶端代理】中對象【代理對象】第一次調用方法時,對象在服務端才會被創建。
==>服務端只會創建一個服務對象

【3】服務端激活-SingleCall
【A】對象對每一次方法調用提供服務。
==>對于客戶端的每一次方法調用,服務端都會創建一個對象為其服務,在方法執行完畢之后,在銷毀對象。
【B】SingleCall無法保存對象狀態==>【無狀態】激活模式。
==>如果保存對象的狀態?==>解決方法:將對象狀態存儲在對象之外。
【C】在【客戶端】即時使用new操作符,【服務端】也不會創建一個對象,
只有在【客戶端代理】中對象【代理對象】調用方法時,對象在服務端才會被創建。
==>每一次調用方法,服務端都會創建一個服務對象

【Remoting的傳值封送】
【1】需要將對象標志位可序列化
【2】構建一個工廠類作為遠程服務對象,然后將實際要傳值封送到客戶端的對象作為過程方法的返回值。
【3】完全沒有必要,如果要將遠程對象傳值封送到客戶端,Remoting存在還有什么意義呢?

【分離服務程序集元數據和代碼實現】
如何將【宿主應用程序域,Host Appdomain】和【客戶應用程序域 Client Appdomain】的服務程序集分離?
【1】使用接口分離服務程序集
==>將類型的元信息和類型的實現分離
【注意】無法創建客戶端激活對象
【A】Activator.GetObject()方法只適用與服務端激活方法
【B】Activator.CreateInstance()方法,作為參數的對象需要滿足兩個條件;(1)繼承MBR,(2)服務端需要為此類型進行注冊

【2】使用空類分離服務程序集
==>服務程序集包含的代碼量較少

【3】使用SoapSuds.exe工具分離程序集
==>生成一個"空類"程序集

【SoapSuds.exe】是.Net提供的一個工具,它允許客戶端通過輸入一個遠程對象的Url,然后生成一個dll程序集文件,這個文件包含了在客戶端穿件代理的全部元數據信息,
但是不包含任何具體的實現==>【"空類"程序集】
【如何使用SoapSuds.exe獲取dll文件?】
【1】服務啟動后,激活遠程對象。【注】
【A】激活的方式只能是服務激活對象[SingleCall/Singleton]
【B】使用Http通道,且消息格式器為SOAP格式器
【C】生成dll程序集之后,無論服務端使用哪種類型的協議或者是格式,客戶端都能訪問到遠程對象。【注】
【2】客戶端使用【vs命令提示】工具,使用soapsuds命令生成服務程序集
soapsuds {-url:schemaUrl | -types:type1,assemblyname[,serviceEndpoint] [;type2,assemblyname][...]] | -is:schemafile | -ia:assemblyfile} [options]
【==>soapsuds -url:serviceObjUrl?wsdl -oa:assemblyname.dll】

【4】使用工廠方法分離
==>接口分離的一種變種
【只適用于客戶端激活方式,但是表現形式上又像服務端激活一樣】
【因為是工廠類,所以服務端激活對象的方式幾乎都是采用Singleton】
==>解決了直接使用接口時無法創建客戶端激活對象的問題


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东源县| 林西县| 五常市| 武强县| 道真| 漠河县| 武穴市| 广平县| 张家界市| 仁化县| 宝兴县| 巍山| 子长县| 正安县| 手机| 崇明县| 龙陵县| 砀山县| 余干县| 汉川市| 潮州市| 且末县| 会昌县| 吉林省| 深圳市| 贡山| 宜兰县| 时尚| 台州市| 奉节县| 田东县| 横山县| 深水埗区| 逊克县| 禹城市| 宜宾市| 历史| 普兰店市| 吴忠市| 苏尼特右旗| 巴林右旗|