RMI与分布式计算.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
蓝豹技术小组 假期讲座之三 分布式数据与计算 -----------RMI编程与分布式 另一个Asn.1熟悉 内容 RMI 一个实际例子 RMI分布式数据与计算 云计算 一个云计算的例子 JAVA--RMI Java的RMI(Remote Method Invocation, 远程方法调用)允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个Java虚拟机可以是运行在相同的机器上的不同进程里,也可以是通过TCP/IP连接的不同计算机上。 ??? RMI的编程思想 ??? ??? 对于客户机端,需要一些特定的代码来引用远程对象。而对于服务器端,必须定义类并实例化类的远程对象,服务器端的代码必须能够登记这些对象,并将他们的方法向客户机导出。 ??? 而客户端与服务器都要实现一个接口,这个接口定义了可以远程调用的方法。 ??? 最后一点是,客户机可能将对象当做参数来传递,而远程对象上的方法可以返回一个对象。这点是靠Java对象序列化来实现的。 RMI的一个简单编程过程 ?RMI的接口和类 ???stub(体)与skeleton(架构) ???Java RMI 编译器:rmic ???RMI版的Hello World (见BBS) ???使用RMI技术实现分布式数据库操作 66/viewthread.jsp?tid=2132frombbs=1 RMI的编程实例 用RMI编写一个分布式应用,核心有以下三方面: 定位远程对象 1. 一个应用可以利用RMI的名字服务功能注册器远程对象。 2. 可以象操作普通对象一样传送并返回一个远程对象的引用(指针)。 与远程对象通信: 底层的通信由RMI实现,对于系统开发人员来说,远程调用和标准的Java方法调用没有什么区别。 为需要传递的对象装载类的字节码 RMI允许调用者向远程对象传递一个对象,因此 RMI提供这种装载对象的机制。 RMI的编程实例 提出:远程的对象可否传送 分布式RMI的第一步 分布特点: engin开发,先运行,task后定义.写engin时不对执行什么任务作任何规定.任务可以是任意定制的. 前提条件: 定义任务的类,要规定任务的实现步骤,使得这个任务能够提交给engin去执行.使用server上的 CPU资源. 技术支持: RMI的动态装载功能. 分布式RMI的第二步 设计一个服务器 核心协议:提交任务,执行任务,返回结果 (1)定义远程接口 第一个接口:compute 注意事项 Compute engin的设计要考虑以下问题: 1. compute engine是一个类 ComputeEngine ,它实现了 Compute接口,只要调用该类的方法executeTask, 任务就能提交上来. 2. 提交任务的Client 端程序并不知道任务是被下载到engin上执行的.因此client在定义任务时并不需要包含如何安装的server端的代码. 3. 返回类型是对象,如果结果是基本类型,需要转化成相应的对等类. 4. 用规定任务如何执行的代码填写execute方法. (2)实现远程接口 一般说来,实现一个远程接口的类至少有以下步骤: 1. 声明远程接口 2. 为远程对象定义构造函数 3. 实现远程方法 engin中创建对象的工作可以在实现远程接口类的main函数中实现: 1. 创建并安装安全管理器 2. 创建一个或更多的远程对象的实例 3. 至少注册一个远程对象 在构造函数中,通过super(), a UnicastRemoteObject 被启动,即它可以侦听客户端来的请求输入 只有一个远程方法,参数是客户端远程调用这个方法时传来的任务.这个任务被下载到engin,远程方法的内容就是调用客户端任务的方法,并把结果回送给调用者.实际上这个结果是在客户的任务的方法中体现的. 目的 参数传递规则: 1. 远程对象通常通过引用传递.一个远程对象的引用是一个stub,它是客户端的代理.它实现远程对象中的远程接口的内容 2. 本地对象通过串行化拷贝到目的. 如果不作制定,对象的所有成员都将被拷贝. 结论之一 通过引用传递一个对象,意味着任何由于远程调用引起的变化都能反映在原始的对象中。 当传递一个远程对象时,只有远程接口是可用的, 而在实现类中定义的方法或者是非远程接口中的方法,对接收者来说是不可用的 在远程方法调用中,参数,返回值,异常等非对象是值传送. 这意味着对象的拷贝被传送到接受方。任何在对象上发生的变化不影响原始的对象 一旦服务器用rmi注册了,main方法就存在了,不需要一个守护线程工作维护服务器的工作状态,只要有一个co

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档