.net Remoting体系主要元素

来源:互联网 发布:ubuntu 源文件 编辑:程序博客网 时间:2024/05/15 23:52

 

 基本元素
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

远程对象:运行在服务器,派生自MarshalByRefObject,供客户端通过代理调用
信道:用户客户端服务端通信,又包括客户端信道,服务端信道
消息:包含远程对象信息,被调用方法名称以及所有参数,通过信道传输
格式标识符:定义信息如何传输到信道,SOAP格式标识符,二进制格式标识符
格式标识符提供程序:用户格式标识符与信道相关联
代理对象:模拟服务端的远程对象被客户端调用
消息接收器:与信道相联系截取进入信道的消息
激活器:激活远程对象供客户端调用
RemotingConfiguration类:配置远程服务器和客户机,注册远程对象
ChannelServices类:注册信道,并把消息分配到信道 

eg:
TcpServerChannel tchannel = new TcpServerChannel(7788); //创建一个监听端口7788的tcp服务端信道
ChannelServices.RegisterChannel(tchannel,false); //注册信道,关闭安全检查
RemotingConfiguration.RegisterWellKnowServiceType(typeof(Demo),"demouri",WellKnowObjectMode.SingleCall);
// 注册远程对象,使用服务器端激活,激活模式为SingleCall,Demo是远程对象类,demouri 对象uri客户端使用Activator.GetObject 激活对象时使用

环境术语
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

默认环境:创建应用程序域时创建,应用程序域可以有不同的环境。
环境作用:把具有相似执行需求的对象组合在一起,用于调用到达对象之情的截取工作。
环境特性:环境特性可以赋给从ContextBoundObject派生的类(ContextBoundObject派生自MarshByRefObjects),实现接口IContextAttribute,可以创建定制的特性类。
环境属性:环境特性定义对象需要的环境属性。环境属性类实现接口IContextProperty
消息接收器:方法调用的截取器。环境属性可以提供消息接收器

远程对象的激活
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SAO,CAO
SAO:不再new或activator.getobject是创建,而在客户端调用代理的第一个方法时创建。
CAO:当客户端调用new或activator.getobject时创建