使用.NET Remoting 建立分布式应用程序

什么是Remoting
---分布式对象Remote Object
Remoting的优势
---性能,扩展性,可配置性,安全,生存周期管理
Remoting使用的技术
---XML,SOAP(简单对象传输协议),Serializable(序列化)
Demo序列化
   ---二进制,SOAP,XML
Remoting框架
---                          System.Object不可远程化
          passed by reference
          MarshalByRefObject                       Passed by value
 Server-Activated   Client-Activated  Published
  (WellKnown)
     Singleton         Registered                    Serializable
     SingleCall        Created by factory            ISerializable
远程对象
---操作远程对象:对象运行在远程,客户端向他发送消息。MarshalByRefObject
---传递远程对象:将远程对象拿到本地或者将本地对象发送过去,对副本进行操作。[Serializable]或ISerializable
服务器端激活(WellKnown)
---Singleton
---SingleCall
客户端激活
通道(Channels)
---一个远程对象使用通道来发送和接收消息。服务器选择一个通道来监听请求,客户端选择通道来和服务器通讯。
---TCP通道和HTTP通道
Remoting开发的三个步骤
---创建远程对象
   ---创建一个类继承System.MarshalByRefObject,并实现业务
---创建一个应用程序作为“宿主(host)”,以接收客户请求
   ---注册通道(TCP,HTTP)
   ---注册服务器激活的远程对象(WellKnown)
      ---Singleton or SingleCall
      ---URL
   ---运行宿主程序
---创建一个客户端程序
   ---注册通道(TCP,HTTP)
   ---根据URL得到对象代理
   ---使用代理调用远程对象
DEMO
Singleton VS. SingleCall
---都是服务器激活的对象(WellKnown)
---Singleton单实例
   ---在服务器端只实例化一次
   ---以后每次调用都访问同一个实例,不论同一客户端还是不同客户端
   ---可以维持状态
---SingleCall单调用
   ---每次调用都实例化新的实例
   ---更好的支持无状态编程模型
获取远程对象Serialization VS. MarshalByRefObject
按值列集(Serialization)
---得到远程对象的副本
---对副本的操作不影响远程对象
---不论远程对象是Singleton还是SingleCall
按引用列集(MarshalByRefObject)
---得到远程对象的引用,本地创建代理(Proxy)
---通过代理访问远程对象
---Singleton记录更改,SingleCall无状态
Demo
Remoting的模式
---服务器/客户端模式

转载于:https://www.cnblogs.com/hotsoho.net/archive/2006/05/18/403821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值