国产探花免费观看_亚洲丰满少妇自慰呻吟_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】
==>解決了直接使用接口時無法創建客戶端激活對象的問題


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁牛特旗| 收藏| 海兴县| 阜新市| 大冶市| 岚皋县| 新巴尔虎右旗| 社旗县| 思南县| 莱西市| 东明县| 涿鹿县| 巧家县| 仪陇县| 平江县| 称多县| 宜川县| 抚州市| 陵川县| 布拖县| 新营市| 江安县| 涞源县| 霍林郭勒市| 闵行区| 思南县| 临安市| 北票市| 上饶县| 麻江县| 七台河市| 龙里县| 洛隆县| 巴楚县| 宁津县| 沁水县| 万荣县| 望谟县| 仪征市| 铜陵市| 大余县|