远程对象和多层架构 一、远程处理(Remoting)技术概述 做为企业级架构,对象的远程处理是必备的功能,非此不能实现大型分布式体系
NET 实现分布式体系主要利用两种体系,一种是建立在 Windows Service 架构下的 Remoting 技术,另一种是建立在 Web Service 架构下的技术,这两种技术各有利弊,合理使用,才能兴利除弊,构造高效的分布式体系
NET 平台提供了一套专门用于远程处理的类
在公共语言运行库中,有一个远程处理结构,它提供了一组丰富的类,这些类使开发人员可以不必考虑大部分部署和管理远程对象的复杂工作,对远程对象调用方法也几乎与调用本地方法相同
这样一来,构造复杂大型的网络系统就成为了可能
并不说有的对象都能在分布式体系中运行的,可远程处理的对象是能在大范围的分布环境中正常运行的对象
有两种主要的可远程处理的对象: 按值封送对象,它们被复制并传出应用程序域
按引用封送对象,将为其创建代理,而该代理由客户端用于远程访问对象
按值封送对象: 按值封送 (MBV) 对象声明它们的序列化规则(通过实现 ISerializable 来实现其自身的序列化,或 者通过 用 SerializableAttribute 修饰 ,该属 性通 知系统 自动序 列化该对 象),但是 不扩 展 MarshalByRefObject
远程处理系统创建这些对象的完整副本并将副本传递到进行调用的应用程序域
一旦副本到达调用方的应用程序域内,对它的调用就是对该副本的直接调用
而且,当 MBV 对象作为参数传递时,也是通过值传递的
除声明 SerializableAttribute 或实现 ISerializable 之外,无需做其他任何事情就可以将类的实例跨应用程序或上下文边界通过值传递
当由于性能或处理原因,将对象的完整状态和任何可执行功能移动到目标应