【.NetRemoting-2】2015.09.17
【Remoting架构】
【1】是.NetFramework的一个重要组成
【2】框架的两个重要特性
【A】基本实现【B】可扩展/可定制
【各个组成部分】
【1】【客户端,客户端应用程序域】
【组成】
【A】代理【Proxy】
【B】格式器【Formatter】
【C】通道【Channel】
【要点】
1.总是通过代理【Proxy】和服务端对象进行交互的
2.【Proxy】知道远程对象的确切位置
【代理与远程对象】
【A】Client向Proxy请求属性或者方法,Proxy将请求发送给服务端对象==>【典型的代理模式】
【B】代理与远程对象的绑定关系
【Proxy】
【两个部分】
【透明代理,Transparent Proxy】
提供和服务对象一致的接口,将【栈帧,Stack Frame】转换为【消息,Message】
【真实代理,Real Proxy】
负责使用【格式化器,Formatter】将消息序列化,终端客户端程序[block],强序列化之后的消息发送到【通道,Channel中】
【消息,Message】
【客户端发送请求的过程】
【obj】-->【透明代理】-->【真实代理】-->【格式化器】-->【通道】---->【到达服务端】
【2】【服务端,宿主应用程序域】
【组成】
【A】通道【Channel】
【B】格式化器【Formatter】
【C】栈生成器【Stack Builder】
【注意】
【A】宿主程序保持对Remoting所打开的端口监听
【服务端处理过程】
保持监听-->【Channel接受到Message】-->【Formatter,反序列化】-->【Stack Builder,创建或获取对象,并调用对象方法,得到方法返回,并封装为消息】-->【Formatter,序列化】-->
【发送给Channel】----->【返回给客户端】
*【Remoting对象【传引用封送】的三种激活方式】
【共同点】
【服务对象创建且一直保持在宿主程序域中】
【A】客户端激活【Client activated】
==>创立专属的远程对象为其服务,对象的状态一直维持着
==>缺点:
(1)增大服务端压力;(2)浪费服务端系统资源[服务端一直维持对象状态]
【B.1】服务端激活Singleton【Server activated Singleton】
==>所有客户端共享同一个对象,后记的访问不能够重新创建对象,服务类型必须要求提供无参的构造函数
==>考虑线程同步
【B.2】服务端激活SingleCall【Server activated SingleCall】
==>为每一个请求创建一个对象,二在每次方法返回支护销毁对象。
==>不会过久的占用资源
==>不保存对象状态
==>需要求开发者自己写程序逻辑维持状体
==>服务类型必须要求提供无参的构造函数
【服务端激活】==>【Well-KnowOject,WKO】
【.NetRemoting-2】2015.09.17的更多相关文章
- 【.NetRemoting-3】2015.09.18
[Remoting程序的基本实现] [一]服务程序集 [1]服务对象必须要求继承[MBR,MarshalByRefObject] [二]服务端应用程序 [1]注册通道 [两种类型的通道] [A]发送请 ...
- 【Unity|C#】基础篇(17)——字符串处理(String/StringBuilder)
[学习资料] <C#图解教程>(第25章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- 【codeforces】【比赛题解】#855 Codefest 17
神秘比赛,以<哈利波特>为主题……有点难. C题我熬夜切终于是写出来了,可惜比赛结束了,气啊. 比赛链接:点我. [A]汤姆·里德尔的日记 题意: 哈利波特正在摧毁神秘人的分灵体(魂器). ...
- 【JavaScript Weekly】#471 — JANUARY 17, 2020
https://javascriptweekly.com/issues/471 #471 — JANUARY 17, 2020 READ ON THE WEB JavaScript Weekly Ba ...
- 【转帖】2015年2月份最佳的免费 UI 工具包
2015年2月份最佳的免费 UI 工具包 设计师们最喜欢 UI 工具包,这是一种思路拓展的方法,同时可以利用它们来解决各种复杂的项目,同时可用来了解其他设计师的风格.这里我们收集了最近这一个月一些最棒 ...
- 【英语学习】2016.09.11 Culture Insider: Teacher's Day in ancient China
Culture Insider: Teacher's Day in ancient China 2016-09-10 CHINADAILY Today is the 32nd Chinese Te ...
- 【python基础】第09回 数据类型内置方法 01
本章内容概要 1.数据类型的内置方法简介 2.整型相关方法 3.浮点型相关方法 4.字符串相关方法 5.列表相关方法 本章内容详情 1.数据类型的内置方法简介 数据类型是用来记录事物状态的,而事物的状 ...
- 【.Net Remoting-1】
[.NetRemoting]2015.09.16 [分布式应用程序] 应用程序分布在不同计算机上,通过网络来共同完成一项任务 C/S架构[模式] [互操作性,Interoperability]又称[互 ...
- NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat
NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...
随机推荐
- MVC中的View2(转)
MVC中View是专门用来向浏览器显示结果的,它只负责把传入到View的数据展现给用户: 一,自定义view引擎:实现IViewEngine接口 namespaceSystem.Web.Mvc { p ...
- 数据结构算法及应用——二叉树
一.二叉树性质 特性1 包含n (n> 0 )个元素的二叉树边数为n-1 特性2 二叉树的高度(height)或深度(depth)是指该二叉树的层数(有几层元素,而不是有层的元素间隔) 特性3 ...
- CGContext
CGContext又叫图形上下文,相当于一块画布,以堆栈形式存放,只有在当前 context上绘图才有效.iOS有分多种图形上下文,其中UIView自带提供的在drawRect:方法中通过 UIGra ...
- iOS 之URL schemes
添加 URL schemes 步骤: 1.打开info.plist文件. 2.点击 “+ ”号添加,或者在列表上点击鼠标右键,选择 Add Row. 3.选择 URL types. 4.点击三角号展 ...
- [Leetcode] Find the minimum in rotated sorted array
我在Github上新建了一个解答Leetcode问题的Project, 大家可以参考, 目前是Java 为主,里面有leetcode上的题目,解答,还有一些基本的单元测试,方便大家起步. 题目: Su ...
- Java中关于final关键字
final关键字,大学时一直没有理解,伴随到工作,郁闷......也可能大学真的没认真去学习 首先,final给人一看英语单词 不就是最终的嘛,最终的什么的呢 ? 小张现在就带大家 学习下..... ...
- 域名变更后获取cookie
有个朋友问我,域名更换后怎么获取原有域名下的cookie,当时第一反应是域名都不存在还怎么获取cookie. 后面想想似乎是可以的,使用新域名后可以保留原有域名,通过jsonp或iframe跨域获取原 ...
- path类和directory类对文件的路径或目录进行操作
Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO 2.string Path.ChangeExtension(string ...
- CSS3匹配屏幕横竖状态
@media是css3中新定义的,功能非常强大,下面简单讲解一下用css3的@media orientation匹配手机屏幕是横屏还是竖屏. 顾名思义PC是无法匹配横竖屏的,所以orientation ...
- NOI十连测 第三测 T1
这么二逼的题考试的时候我想了好久,我真是太弱了... 首先,由于ans都乘上了i*(i-1)/2,实际上要求的就是每个数的所有可能出现次数*这个数的权值. 我们发现,每个数的本质是一样的,我们记一个s ...