![一个RMI的分布式应用的实例_第1页](http://file4.renrendoc.com/view14/M03/1A/39/wKhkGWcV2KGADcIEAAIwvborjBY114.jpg)
![一个RMI的分布式应用的实例_第2页](http://file4.renrendoc.com/view14/M03/1A/39/wKhkGWcV2KGADcIEAAIwvborjBY1142.jpg)
![一个RMI的分布式应用的实例_第3页](http://file4.renrendoc.com/view14/M03/1A/39/wKhkGWcV2KGADcIEAAIwvborjBY1143.jpg)
![一个RMI的分布式应用的实例_第4页](http://file4.renrendoc.com/view14/M03/1A/39/wKhkGWcV2KGADcIEAAIwvborjBY1144.jpg)
![一个RMI的分布式应用的实例_第5页](http://file4.renrendoc.com/view14/M03/1A/39/wKhkGWcV2KGADcIEAAIwvborjBY1145.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个RMI的分
,用RMI编写一个分布式应用,核心有以下三方面、:
•定位远程对象
-.1一个应用可以利用RMI的名字服务功能注册器远程
对象。
-2.可以象操作普通对象一样传送并返回一个远程对象
的引用G旨针)。
与远程对象通信:
-底层的通信由RMI实现,对于系统开发人员来说,远
程调用和标准的Java方法调用没有什么区别。
•为需要传递的对象装载类的字节码
-RMI允许调用者向远程对象传递一个对象,因此RMI
提供这种装载对象的机制。.
、问题的提出
Remote
object
Server
•分布特点:
-engin开发,先运行,task后定义写engin时不对执行什么
任务作任何规定.任务可以是任意定制的.
•前提条件:
-定义任务的类,要规定任务的实现步骤,使得这个任务
能够提交给engin去执行.使用server上的CPU资源.
•技术支持:
-RMI的动态装载功能.
远程对象必须继承远程接口
确定那些方法是远程方法,为此定义远程接口
远程接口只负责提供方法名,不一共实现细节,因此必须由一个对
象来实现接口
•二、设计一个服务器
•核心协议:提交任务,执行任务,返回结果
client---------------►client
•在java中远程调用是通过定义远程接口来实现的,
一个接口只能有一个方法
•不同类型的任多只要他们实现了Task类型,就可
以在engin上运行.
•实现这个接口的类,可以包含任何任务计算需要的
数据以及和任何任务计算需要的方法.
6
(1)定义远程接口
•第一个接口:compute
packagecompute;
importjava.rmi.Remote;
importjava.rmi.RemoteException;
publicinterfaceComputeextendsRemote
{ObjectexecuteTask(Taskt)
throwsRemoteException;}
7
•Coi叩的设计要考虑以下问题:
•1.compute加《是一个类ComputeEngine,它实现
了Compute接口,只要调用该类的方法executeTask,
任务就能提交上来.
•2.提交任务的Client端程序并不知道任务是被下载
到engin上执行的.因此client在定义任务时并不需要
包含如何安装的server端的代码.
•3.返回类型是对象,如果结果是基本类型,需要转化
成相应的对等类.
•4.用规定任务如何执行的代码填写execute方法.
8
(2)实现远程接口
•一般说来,实现一个远程接口的类至少有以下步骤:
•1.声明远程接口
•2.为远程对象定义构造函数
•3.实现远程方法
engin中创建对象的工作可以在实现远程接口类的
main函数中实现:
•L创建一个或更多的远程对象的实例
•2.至少注册一个远程对象
•在构造函数中,通过super。,aUnicastRemoteObject
被启动,即它可以侦听客户端来的请求输入
•只有一个远程方法,参数是客户端远程调用这个方法
时传来的任务.这个任务被下载到engin,远程方法的
内容就是调用客户端任务的方法,并把结果回送给调
用者.实际上这个结果是在客户的任务的方法中体现
•通过引用传递一个对象,意味着任何由于远程调
用引起的变化都能反映在原始的对象中。
•当传递一个远程对象时,只有远程接口是可用的,
而在实现类中定义的方法或者是非远程接口中的
方法,对接收者来说是不可用的
•在远程方法调用中,参数,返回值,异常等非对
象是值传送.这意味着对象的拷贝被传送到接受
方。任何在对象上发生的变化不影响原始的对象
•一旦服务器用rmi注册了,main方法就存在了,
不需要一个守护统程工作维护服务器的工作状态,
只要有一个computerengin吵引用在另一个虚叫/
机,computerengin就不会关闭n
三、实现一个客户程序
•目标:创建一个任务,并规定如何执行这个任务。
packagecompute;client
publicinterfaceTaskextends
java.io.Serializable{
Objectexecute();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度农业机械购置担保合同纠纷起诉状撰写要领
- 散伙协议书(20篇)
- 2025年债权转让协议综述
- 2025年公司变革资产接收合同模板
- 2025年度实习生接收单位协议格式
- 2025年软泡聚醚项目申请报告模范
- 2025年物流服务商战略联盟策划协议
- 2025年公司职员车辆共享合同
- 2025年社交APP项目规划申请报告
- 2025年儿科用药项目提案报告模范
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案)
- 2024年安徽省省情知识竞赛题库及答案
- 2025年伊春职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025版林木砍伐与生态修复工程承包合同2篇
- 课题申报参考:社会网络视角下村改居社区公共空间优化与“土客关系”重构研究
- 2025年八省联考高考语文试题真题解读及答案详解课件
- 《山东胶州秧歌》课件
- 《仓库安全管理培训》课件
- 术前准备与术后护理指南
- GB/T 44963-2024储粮保水技术规范
- 定密培训课件
评论
0/150
提交评论