首先了解一下不同应用程序域中的对象的通信方式有两种:

一种是跨应用程序域边界传输对象副本

一种是使用代理交换消息。

简单来讲,继承此类的对象可以跨越应用程序域边界被引用,甚至被远程引用.

当一个对象需要长途跋涉到另一个环境中时,需要将其marshal成一个可以传输的形态(比如在.NET Remoting中对象将被打包成一个serializable的ObjRef实例——这个ByRef就是指ObjRef这种形态);同理,当打包以后传输到目标地点,还要执行unmarshal的操作将其还原为内存中的对象

你实际上只拥有对这个对象的一个远程引用,虽然你可以调用它的方法,但实际上这些操作都是发生在远程的(就是前面讲过的过程)

别外解释一下WebService,

Web services 使用 XML 来编解码数据,并使用 SOAP(通信协议)来传输数据。大家可以发现WebService代理类的MarshalByRefObject对象的。

remoting 是MarshByReference的,可以传变量的引用,直接对服务器对象操作。速度快,适合intranet(企业内部互联网)。
 webservice 是MarshByValue的,必须传对象的值。速度慢,可以过FIREWALL,配置比较简单,适合internet(因特网)。

概括的说Remoting与Web Services的区别是:
(1)既支持TCP信道又支持HTTP信道,传输速度快
(2)即可传输XML的SOAP包又可传输二进制流,效率高
(3)Remoteing主要用于C/S结构项目
(4)不一定要依赖IIS服务器

一般来说,remoting是和平台相关的,需要客户和服务器都是.NET,但可配置特性比较好,可以自定义协议。web service可以做到跨平台通信,但必须采用SOAP协议。

MarshalByRefObject浅析相关推荐

  1. 浅析 JavaScript 中的 函数 uncurrying 反柯里化

    柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...

  2. 浅析Python中bytes和str区别

    本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...

  3. 学习《Linux设备模型浅析之设备篇》笔记(深挖一)

    这篇文章既然说了是浅析,那就是跳过了一些东西,我们把这些跳过的东西给它尽可能的补回来 今天登陆 lxr.free-electrons.com 发现内核版本已经升级到3.15了,那以后都使用3.15的源 ...

  4. 学习《Linux设备模型浅析之设备篇》笔记(一)

    最近在学习Linux设备模型,前面几篇文章也是读这篇的时候遇到问题,然后为了搞清楚先转去摸索才写出来的. 当然了,刚开始是先读到<Linux那些事儿之我是Sysfs>,搞不清楚才去读的&l ...

  5. 架构周报| 浅析MySQL JDBC连接配置上的两个误区

    经典案例 \\ 浅析MySQL JDBC连接配置上的两个误区:相信使用MySQL的同学都配置过它的JDBC驱动,多数人会直接从哪里贴一段URL过来,然后稍作修改就上去了,对应的连接池配置也是一样的,很 ...

  6. 超级账本(Hyperledger Fabric)之权限管理浅析

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 超级账本(Hyperledger Fabric)之权限管理浅析 超级账本是联盟链的代表,而其相对于共链(例如比特币,以太 ...

  7. linux内核SMP负载均衡浅析

    需求       在<linux进程调度浅析>一文中提到,在SMP(对称多处理器)环境下,每个CPU对应一个run_queue(可执行队列).如果一个进程处于TASK_RUNNING状态( ...

  8. CAS、原子操作类的应用与浅析及Java8对其的优化

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:CoderBear juejin.im/post/5c7a8 ...

  9. Python标准库queue模块原理浅析

    Python标准库queue模块原理浅析 本文环境python3.5.2 queue模块的实现思路 作为一个线程安全的队列模块,该模块提供了线程安全的一个队列,该队列底层的实现基于Python线程th ...

最新文章

  1. 我国第一台微型计算机诞生于哪一年,2015计算机一级《MSOffice》章节练习题及答案(1)...
  2. Learning ImageMagick 4: 批处理
  3. Android关闭USB的ADB调试和文件传输功能(禁用USB)
  4. linux-----shell高级编程----sed应用
  5. 【玩转cocos2d-x之三十一】弱联网与服务器的通讯
  6. Vmware10组建局域网
  7. 中国军用装甲车和反IED车市场趋势报告、技术动态创新及市场预测
  8. 插入排序详解(Java实现)
  9. 微信动图表情包制作教程(ok时隔一年我来把它写完了)
  10. 视频怎么加水印?这里有你想要的答案
  11. Qt 常用文件对话框及消息对话框使用
  12. 2021-2027中国服务器机箱市场现状研究分析与发展前景预测报告
  13. - **体感试衣镜等功能代码工程分享**
  14. 数据相关的在职研究生_西南政法大学拟清理20名博士研究生的学籍!
  15. 【老鸟进阶】deepfacelab如何让融合更自然(二)清晰度篇
  16. CIO40知识星球—论IT人(挨踢)的自我修炼
  17. 实现单选框的css,7款纯CSS实现不错的自定义单选框
  18. javascript简易留言板制作 -- 案例
  19. python快速整理文件_Python实现自动整理文件
  20. 自主研发数据库TDSQL和TBase核心架构揭秘和实践

热门文章

  1. 用vmware-converter4把linux 迁移到ESX4.1中
  2. 开机explorer无法启动,无法进入桌面
  3. (技能篇)双机热备之Oracle切换故障处理
  4. javascript 练习(2)——js数组去重
  5. hdfs 操作 入门api
  6. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单
  7. mysql group_concat时间用法
  8. Javascript闭包概念剖析
  9. 初探Stage3D(一) 3D渲染基础原理
  10. 自己实现的atof()和atoi()代码 (转)