Remoting学习笔记(一)
分布式:计算机进程与进程间的通信或同一台机器中的一个应用程序和另一个应用程序之间的通信或局域网中的程序通信。
Remoting使用的技术
Xml:可以实现自描述
SOAP:鲜蛋对象传输协议,目的是在Web上传输结构化类型化的信息
序列化:SerializableAttribute,ISerializable,目的是把对象转换成在网络上可传输的格式
Remoting框架图:
远程对象的两种含义:
1、 操作远程对象:使用Transparent Proxy
2、 传输远程对象:将对象拿到本地,操作对象的副本
两种激活对象:
1、 服务器激活(Wellknown)
Singleton:维护状态,客户端调用的都是同一个对象
SingleCall:效率好,无状态,Client端每次调用的对象都是重新实例化的,原来的对象被GC回收
对于值列集:
得到远程对象的副本,操作时不影响远程对象
对于引用列集:
得到远程对象的引用,创建本地代理,通过代理对远程对象访问
2、 客户端激活
通道(Channels)
一个远程对象使用通道发送接收消息。服务器选择一个通道来监听请求,客户端通过通道和服务器通讯。
开发Remoting的三步
1、 创建远程对象:此对象要继承MarshalByRefObject
2、 创建一个“宿主”程序,接受客户请求:注册通道、注册服务器激活的远程对象(Singleton,SingleCall)
3、 创建客户端调用远程对象:注册通道,根据URL获得代理,通过代理获得对象
Remoting的模式
1、 Server/Client模式
2、 Peer-to-Peer