JavaRMI(精)课件讲解讲义.pptx

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9^6—用RMI编写一个分布式应用,核心有以下三方面: 定位远程对象-1. 一个应用可以利用RMI的名字服务功能注册器远程 对象。-2.可以象操作普通对象一样传送并返回一个远程对象 的引用(指针)。与远程对象通信:-底留通信由RMI实现,对于系统开发人员来说,远 群调用4咨准的Java方法调用没有什么区别。为需要传递曾象装载类的字节码-RMI允许调用者向远程对象传递一个对象,因此RMI 提供这种装载对象的机制。,Web ServerClientRL protocol \Server ?.................................................. registryURL protocol9.6 —个RM[的分竺、问题的提出bd.京大学计算机系 代亚非Remote objectClientComputeenginClientServerClient39.6一个RMI的[用的实0匕d.?分布特点:-engin开发,先运行,task后定义.^engin时不对执行什么 任务作任何规定.任务可以是任意定制的.?前提条件:-定义任务的类,要规定任务的实现步骤,使得这个任务 能够提交给engin去执行.使用server上的CPU资源.?技术饕寺:-RM瑯i动态装载功能.京大学计算机系 代亚非4北京大学计算机系 代亚非远程对饗须继承远程接口确定那些方髒远程方法,为此定义远程接口远程接口只负责鬱供方法名,不一共实现细节,因此必须由一个对 象来实现接口59^6—设计一个服务器?核心协议:提交任务,执行任务,返回结果? clientclient______________ p ?在java中远程调用是通过定义远程接口来实现的, 丄个接口只能有一个方法69.6 —个RMI的以@北京大学计算机系 代亚非?在构造函数中,通过super。, a UnicastRemoteObject 被启动,即它可以侦听客户端来的请求输入?只有一个远程方法,参数是客户端远程调用这个方法 时传来的任务?这个任务被下载到engin,远程方法的 内容就是调用客户端任务的方法,并把结果回送给调 用者险际上这个结果是在客户的任务的方法中体现式应用的实09.6 —个 RMI 的?参数传递规则: _________北京大学计算机系 代亚非?1?远程对象通常通过引用传递.一个远程对象的用是一个stub,它是客户端的代理.它实现远程对象 中的远程接口的内容?2.本地对象通过串行化拷贝到目的.如果不作制 定,对象的所有成员都将被拷贝.9.6 _6RMI 的?通过引用传递一个对象,意味着任何由于远程调 用引起的变化都能反映在原始的对象中。?当传递一个远程对象时,只有远程接口是可用的, 而在实现类中定义的方法或者是非远程接口中的 方法,对接收者来说是不可用的?在远程方法调用中,参数,返回值,异常等非对 象是值传送.这意味着对象的拷贝被传送到接受 方。任何疋对象上发生的变化不影响原始的对象 注册了,main方法就存在了, 不需要一个守樓程工作维护服务器的工作状态, 只要有一个computer engin的引用在另一个虚扌以 机,computer engin)<不会关闭139.6一个RMI的分4bd.三、实现一个客户程序京大学计算机系 代亚非?目标:创建一个任务,并规定如何执行这个任务。clientpackage compute;public interface Task extends I java.io.Serializable { I Object execute();1} \m n _____Pi computePiexecuteQ ExecuteTaskQ? task不是远程接口,但是需要传递到服务器,因 此用申行化,49.6_6RMI的分血? computePi 的作用装载安全管理器生成一个远程对象compLook up(ComputeEngin),获得了 stub生成任务对象Pi task=new Pi()ngin的远程方法调用CComp.executeTask(task)算结果package client;import java.rmi.*; import java.math.*; import compute.*; public class ComputePi {public static void main(String args[]) {if (System,getSecurityManager() = null){ System.setSecurityManager(new RMISecurityManager());} try { String name = + args[0] + /Compute”;Compute comp =

文档评论(0)

yanxiaosa1 + 关注
实名认证
内容提供者

大家好!本人在此郑重声明:本账号所有文档均出自网络,如有侵权请联系删除。收集归纳不易,请手下留情。

1亿VIP精品文档

相关文档