Remoting技术


Microsoft公司的COM最初是为了使同一台机器中的对象到对象的调用更为简 单而设计的。这项目技术使得对象调用更易于代码化,但COM不能实现分布 式应用。Microsoft公司接着发布了DCOM,它使COM对象通过使用授权的 Microsoft通信协议在网上发送请求来调用另一台计算机上的COM对象。 .NET通过一种被称为Remoting的新技术,改进了它原有的DCOM技术。在.NET 的框架结构中,可以发现Remoting和它的子类在System.Runtime.Remoting 名字空间中。 关于Remoting,最大的优点莫过于采用了开放资源技术,如SOAP(Simple Object Access Protocal)和HTTP,实现对象到对象的调用。


Remoting客户机和服务器 客户端对象<---->服务器对象,两者之间形成的连接被称为 通道。


激活与生存期 启动服务器对象称为 激活(Activation),在这个对象一直保持激活状态的这

段时间称为生存期(Life time). 在Remoting里有3种激活方式,每种方式有

自己的生存期。

3种激活类型: Single Call Singleton Client Activated Object ,CAO

通道(channel) 1.TCP通道: 二进制传输,最为快捷、最为高效的Remoting通道。 2.HTTP通道: 能穿越防火墙到达更远的地方。SOAP是基于xml技术,这意味 着消息能自我描述封装过程,并能被任何应用程序读取和创建。没有 tcp通道高效。 3.IPC ??


接收器、端口、通道注册。 Remoting通信 1.Remoting消息 2.Remoting的数据调度 ByVal,ByRef 3.格式化程序 System.Runtime.Serialzation.Formatter名字空间的

Binary.BinaryFormatter类,若使用HTTP通道方式,格式化程序由Soap.SoapFormatter类衍生而得。 4.Remoting中的代理

Remoting服务器配置 a.从配置文件中读取:System.Runtime.Remoting.RemotingConfiguration类。


RemotingConfiguration.Config("remoteserver.cfg"); 配置文件:remoteserver.cfg