NET XML专题之 第6章 分布式组件技术.ppt_第1页
NET XML专题之 第6章 分布式组件技术.ppt_第2页
NET XML专题之 第6章 分布式组件技术.ppt_第3页
NET XML专题之 第6章 分布式组件技术.ppt_第4页
NET XML专题之 第6章 分布式组件技术.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级编程技术,第1章 高级开发概述 第2章 组件化开发 第3章 XML技术 第4章文件和数据库访问技术 第5章 线程和异步编程 第6章 分布式组件技术 第7章 XML Web Service 第8章 设计模式与构建 第9章 面向服务的架构(SOA) 第10章 开发智能设备应用程序,第6章 分布式组件技术,分布式组件技术概述 远程处理 远程处理配置文件 参考资料,分布式组件技术概述,分布式组件技术的需求 现有的分布式组件模型概述 为何使用远程处理,6.1 分布式组件技术概述,分布式组件技术的需求,开发人员所面临的难题 异类环境 可扩展性 快速应用程序开发和部署 平台操作和管理 具有网络功能的应用

2、程序 “分布式” 概念与“分布式组件”的出现,6.1.1 分布式组件技术的需求,分布式组件技术在内部网和Internet中的应用,现有的分布式组件模型概述,CORBA 针对多种对象系统在分布式计算环境中如何以对象方式集成而提出 RMI Java所特有的分布式计算技术 DCOM 支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯 .NET 远程处理 支持使用TCP/HTTP协议通信,使用二进制或XML格式化数据,并且具有很好的扩展性,6.1.2 现有的分布式组件模型概述,现有的分布式组件模型概述,应用举例:利用分布式组件技术扩展系统功能,6.1.2 现有的分布式组件模型概述,第

3、6章 分布式组件技术,分布式组件技术概述 远程处理 远程处理配置文件 参考资料,远程处理,6.2 远程处理,远程处理概述,客户端应用程序域,客户端对象,信道,格式化程序,格式化程序,信道,服务器端对象,远程处理体系结构图,服务器端应用程序域,服务器端代理,6.2.1 远程处理概述,远程处理边界,信道和格式化程序,信道用来在客户端和远程对象之间传输消息 客户端选择已经在服务器上注册的信道 在调用远程对象前,客户端以每个应用程序域为基础注册信道 一个计算机上不能有多个信道监听同一个端口 .NET 提供了 HTTP 和 TCP 信道 HTTP 信道默认使用SOAP 协议来传输 XML 消息 TCP

4、信道默认使用TCP 协议来传输二进制消息比SOAP快,但不具备开放性 举例:编程实现在8085端口上注册 TCP 信道,6.2.2 信道和格式化程序,using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; TcpChannel chan = new TcpChannel(8085); ChannelServices.RegisterChannel(chan);,信道和格式化程序,选择信道时要注意的安全性问题 推荐使用HTTP信道,用IIS作为远程对象的宿主 IIS提供了网络级的安全保

5、护,如SSL,NTLM等 TCP信道没有像HTTP信道那样提供强壮的安全认证 不推荐在Internet或不安全局域网内使用TCP信道 可以使用 System.Security.Cryptography 命名空间下的类对传输的数据进行加密,6.2.2 信道和格式化程序,激活和代理,在调用远程对象前,客户端必须先激活它 通过调用 New、Activator.CreateInstance和 Activator.GetObject 来激活远程对象 激活返回被客户端用来访问远程对象的委托 在客户端用委托来代表远程对象 委托封送客户端的调用,并返回调用结果和异常 服务器端激活 服务器自动初始化 Singl

6、e Call 对象只处理单一请求 (无状态) Singleton 对象可服务多个客户端和请求 (有状态) 客户端激活 由客户端显式调用激活 为特定客户端维护方法调用间的状态,6.2 3 激活和代理,基于租约的生存期,租约机制控制客户端激活的远程对象的生存期 一个对象的租约期可以延长 当对象租约期到零时 该对象将与远程处理结构断开连接 当 AppDomain 内对该对象的所有引用都释放后,该对象将由垃圾回收器回收 使用租约管理远程对象的生存期是引用计数的一种替代方法,6.2 4 基于租约的生存期,对象封送处理,远程实例化的对象通过引用返回并被客户端通过委托访问 远程处理中的参数、返回值和字段可以

7、分为如下三类 值封送对象 - 对象的拷贝在应用程序域之间封送 - 值类型必须是可序列化的 引用封送对象 - 在应用程序域之间封送对象的引用 - 类必须是 System.MarshalByRefObject 的派生类 不封送对象 - 只适合在本地使用 - 既不可以由值封送也不可以由引用封送的对象,6.2.5 对象封送处理,服务器端,注册信道 用下列方式注册信道 调用 RegisterWellKnownServiceType 方法 或者使用配置文件,6.2.6 服务器端,RemotingConfiguration.RegisterWellKnownServiceType( typeof(Hello

8、Server), SayHello, WellKnownObjectMode.Single Call);,RemotingConfiguration.Configure(MyHello.exe.config);,客户端,注册信道 使用下列方法激活远程对象 Activator.GetObject 或者用 New 和配置文件,6.2.7 客户端,HelloServer obj = (HelloServer)Activator.GetObject( typeof(RemotingSamples.HelloServer), tcp:/localhost:8085/SayHello);,Remoting

9、Configuration.Configure(MyHello.exe.config); HelloServer obj = new HelloServer();,ChannelServices.RegisterChannel(new TcpChannel();,客户端编译技术,当客户端被编译时,编译器需要服务器端类的信息 服务器端类的信息可通过下列方式取得 提供类所在程序集的引用 把远程对象分为实现类和接口类型 用 Wsdl.exe工具直接从终结点取得需要的元数据,6.2.8 客户端编译技术,第6章 分布式组件技术,分布式组件技术概述 远程处理 远程处理配置文件 参考资料,远程处理配置文件,使用 RemotingConfiguration类上的configure方法 应用程序配置文件是一个XML 文档 配置文件是区分大小写的 可在计算机和应用程序级别上指定配置文件 应用程序级别上的配置比计算机级别上配置优先级高 更多信息请查看.NET FrameworkSDK文档中的 “远程处理配置文件格式”,RemotingConfiguration.Configure(MyApp.exe.config);,6.3 远程处理配置文件,第6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论