- 1、本文档共110页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章分布式对象和远程调用 第4章:分布式对象和远程调用 引言 分布式对象间的通信 远程过程调用Remote procedure call Java RMI 实例研究 总结 分布对象技术要解决的基本问题 分布对象技术要解决的基本问题 分布式系统的客户/服务器模型 N层客户/服务器模型 分布对象技术要解决的基本问题 分布对象技术要解决的基本问题 分布对象技术要解决的基本问题 对象请求代理---支持客户访问异地分布对象的核心机制称为对象请求代理ORB(Object Request Broker) 分布对象技术要解决的基本问题 分布对象技术要解决的基本问题 分布式程序设计的模型 远程过程调用(RPC--Remote Procedure Call ) 不同进程之间的过程的调用,但是是相同的语言 环境。 远程方法调用(RMI--Remote Method Invocation ) 一个进程调用另一个进程中对象的方法,两个进 程可以在同一台主机,也可以在不同的主机。 ?事件驱动(Event-based model) 注册一些感兴趣的对象的事件 事件发生时会的到通知 中间件 中间件层 中间件是一种软件,它提供基本的通信模块和其他一些基础服务模块,使得应用程序开发提供平台 中间件要解决的问题 通信协议: 独立于网络底层的传输协议。 硬件: 数据类型在不同的硬件平台上有不同的表示:bigendian,litterendian,可以通过mashell解决。 操作系统: 在操作系统层上提供更高级的抽象API,屏蔽操作系 统的异构 编程语言: CORBA通过IDL,可以使得不同的语言写的代码互相 调用。 中间件技术提供了一个编程的抽象,来屏蔽上述的异质 问题。 中间件---分布对象的核心技术 中间件的特性 位置透明(Location transparency) 通信协议(Communication protocols) 对计算机硬件层的支持 对操作系统层的支持 对程序设计语言层的支持 接口(Interfaces) 接口 一个模块的接口包含了其他模块可访问的方法 的定义(没有实现)和变量。 有些情况,需要调用同一个方法,但是的具体 实现的不同,接口可以做到这一点。 分布式系统中的接口 同一个地址空间,模块之间的通信可以通过访 问公共变量,但是远程调用不能直接访问变量 只能通过属土参数和输出参数 指针不能作为参数传递或者作为结果返回 接口的实例 RPC’s Service interface 对服务器一组过程的说明,定义每个过 程的输入输出参数,供客户端调用。 RMI’s Remote interface 对一个对象的方法的说明。 可以传递一个对象或者远程对象的指针, 也可以返回这两种类型,这是与过程调 用最大的不同。 接口的实例 接口定义语言(IDLs—Interface Definition Languages ) Java RMI中可以直接定义接口,只能 被java语言调用 其它中间件系统提供了IDLs. e.g. CORBA IDL (n1), DCE IDL and DCOM IDL 允许用其它语言实现的对象来调用, 具有跨平台功能 接口的实例 第 4章:分布式对象和远程调用 引言 分布式对象间的通信 远程过程调用Remote procedure call 事件与通知Events and notifications Java RMI 实例研究 总结 分布式对象间的通信 对象模型(The object model) 分布式对象(Distributed objects) 分布式对象模型(The distributed object model) 设计问题 实现 分布式垃圾回收 对象模型 对象的引用(object reference) 访问对象,必须知道对象的引用。可以作为 参数的传递,也可以作为结果返回 接口(interface) 动作(Actions) 一个对象调用了另一个对象的方法则触发一 个动作,两个作用: 对象的状态发生改变 生成一个新的对象 连锁的调用 异常(Exceptions) 垃圾回收(Garbage collection) 分布式对象 除了对象的属性,分布式对象系统的关键是对象之间的通信 引入服务器和客户端的概念 客户/服务器模式,对象相当于server, 调用该对象方法的程序是client.作为 server的对象需要访问其它对象的方法 时,它就是client. 分布式对象模型 进程中可以包含多个对象,本地的和远程的。调 用其它进程的对象叫远程调用,即使在同一台机 器上,不同的地址空间的调用也叫远程调用. 提供可被远程调用方法的对象叫远程对象。 E.g. B F 调用远程对象必须先获得远程对象的引用。E.g
文档评论(0)