【服务对象三种激活方式的不同】
【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】
==>解决了直接使用接口时无法创建客户端激活对象的问题

转载于:https://www.cnblogs.com/bea084100123/p/4824161.html

【Remoting-4】相关推荐

  1. 【安全漏洞】ProxyShell利用分析2——CVE-2021-34523

    前言 本文将要介绍ProxyShell中第二个漏洞的细节,分析利用思路. 简介 本文将要介绍以下内容: ◼CommonAccessToken ◼Exchange PowerShell Remoting ...

  2. C#设计模式之十二代理模式(Proxy Pattern)【结构型】

    一.引言 今天我们要讲[结构型]设计模式的第七个模式,也是"结构型"设计模式中的最后一个模式,该模式是[代理模式],英文名称是:Proxy Pattern.还是老套路,先从名字上来 ...

  3. 【Jenkins学习 】Jenkins安装 Build User Vars Plugin插件来获取jenkins用户相关信息

    一.需求描述 最近在一台测试服务器上安装最新版本的Jenkins,然后学习Pipeline语法,一切都是正常的.最后编译完成,发送通知的时候,因为需要使用到${BUILD_NUMBER} 变量,如下所 ...

  4. 【阶段小结】协同开发——这学期的Git使用小结

    [阶段小结]协同开发--这学期的Git使用小结 一.Git简介 1. Git简单介绍 2. Git工作流程以及各个区域 3. Git文件状态变化 二.Git安装&Git基本配置 三.个人踩坑 ...

  5. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  6. 【C#实践】三层:初识

    通过一个用户登录的简单功能,第一次真实的接触三层架构. 以前在JSP到是听过一点,但是没有具体的用过,基本不会什么吧! 划分三层原因:将整个业务分为[显示层][业务逻辑层][数据源层] [显示层]:和 ...

  7. 1-2 用Python编写【房价预测】模型----paddle

    课程>我的课程>百度架构师手把手教深度学习>1-2 用Python编写[房价预测]模型> 1-2 用Python编写[房价预测]模型 paddle初级教程第一章 第二节 王然( ...

  8. ❤️让人心跳加速的陌陌案例,大数据必需学会的基础案例!❤️ 【推荐收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 已列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 陌陌案例 一.陌陌案例的需求说明 二.陌陌案例中表设计内容 1. ...

  9. 2021年大数据HBase(七):Hbase的架构!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hbase的架构 一.Client 二.Master ...

  10. 2021年大数据HBase(六):HBase的高可用!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的高可用 一.HBASE高可用的简介 二.搭 ...

最新文章

  1. ssh客户端避免超时的设置
  2. 供应链攻击已成全球企业的“心腹大患”
  3. 自己写编译器学习总结
  4. mysql8 修改密码_最新版本mysql8.0.18windows x64部署手册
  5. 揪出XXL-JOB中的细节
  6. Go-Mutex互斥量
  7. javaSE_base04_集合框架
  8. CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解
  9. 帮MM修电脑的三个步骤-此文绝对实用
  10. python笔记记录(包和模块)
  11. 【java笔记】继承
  12. ES6.3 index Sorting测试
  13. 本地Git仓库关联Github项目
  14. C语言实现走迷宫小游戏
  15. 华为网络模拟器eNSP安装教程
  16. 文本分割之水平投影法基于OpenCV(python)版实现
  17. 【赶紧收藏】福利:Python全国计算机二级等级考试题库免费送!!!!
  18. Python execjs(执行js脚本)
  19. SpringBoot 打成的 jar 包和普通的 jar 包有什么区别
  20. 风口背后:第一批 00 后 Web3 创业者,和他们的「人间清醒」

热门文章

  1. Effective C++ -----条款18:让接口容易被正确使用,不易被误用
  2. 安装inotify-tools,用inotifywait命令监听文件或目录的访问信息
  3. c# access oledb helper class
  4. SpringBoot+jersey实现
  5. k8s认证及ServiceAccount-十五
  6. Perl复制、移动、重命名文件/目录
  7. tomcat无法正常shutdown
  8. 【krpano】多分类缩略图及多分类地图案例
  9. Unix操作系统内核结构报告
  10. HDU2094(产生冠军)题解