Java远程方法调用要点解析.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 Java远程方法调用 武汉大学计算机学院计算机应用系 本章学习要点 深入理解RMI实现分布式计算基本原理 深入理解RMI服务器端和客户端程序的基本框架 熟练掌握编写一个RMI应用的基本步骤 熟练运用RMI完成各种分布式计算 / / /ysj/hljdxb/ 11.1 概 述 1. 什么是RMI Java RMI(Remote Method Invocation 远程方法调用)能让一个Java程序调用网络中另外一台计算机上的Java方法,就如同调用本地方法一样。RMI大大增强了Java开发分布式应用的能力,为采用Java实现分布式计算提供了简单而直接的途径。 Java强大的威力体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。在某种程度上,RMI可以被看作是RPC的Java版本。Java RMI可以支持存储于不同地址空间的程序级对象之间彼此进行的通信,实现远程对象之间的无缝远程调用,从而能够比RPC更好地应用于分布式系统。 2. RMI的协议及其特点 RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议。因此,Java RMI也具有Java的“Write Once,Run Anywhere”的优点。用Java RMI开发的应用系统可以在任何支持JRE的平台上运行。 RMI是以Java为核心的,所以它将Java的安全性和可移植性等强大功能带给了分布式计算。RMI可将Agent和服务逻辑等属性移动到网络中最合适的地方。RMI可利用标准Java本机接口(JNI)与现有的和原有的系统相连接。RMI还可利用标准JDBC包与现有的关系数据库连接。RMI/JNI和RMI/JDBC相结合,可帮助用户利用RMI与目前使用非Java语言的服务器进行通信。 3. RMI的结构 RMI应用程序通常包括两个独立的程序:服务器程序和客户机程序。 · 典型的服务器应用程序可以创建多个远程对象,并使这些远程对象能够被引用,然后等待客户机调用这些远程对象上的方法。 · 典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。这种类型的应用程序通常被称为分布式对象应用程序。 RMI中的“客户/服务器” 仅适用于被调用方法的当前调用过程,它们之间客户/服务器的角色不是固定的。运行调用远程方法的计算机本次是客户机,而处理这些被调用对象的计算机则是本次调用的服务器,它们在下一个调用中还可能互换角色。 11.2 一个简单的RMI应用实例 9.6 一个RMI的分布式应用的实例 用RMI编写一个分布式应用,核心有以下三方面: 定位远程对象 1. 一个应用可以利用RMI的名字服务功能注册器远程对象。 2. 可以象操作普通对象一样传送并返回一个远程对象的引用(指针)。 与远程对象通信: 底层的通信由RMI实现,对于系统开发人员来说,远程调用和标准的Java方法调用没有什么区别。 为需要传递的对象装载类的字节码 RMI允许调用者向远程对象传递一个对象,因此 RMI提供这种装载对象的机制。 9.6 一个RMI的分布式应用的实例 实现一个RMI应用程序需要完成以下几个步骤: 1. 定义一个接口扩展远程接口,再定义一个类实现它,同时实现服务器端程序,为远程方法调用提供服务。 2. 完成客户端程序,在该程序中实现远程方法调用。 3. 上述代码编译通过以后,调用rmic命令生成相应的存根(Stub)类和框架(Skel)类。 4. 设置服务器,为运行分布式应用程序作好准备(如果该程序仅在本地机上运行则不需此步)。 5. 在服务器上运行RMI注册程序rmiregistry。 6. 分别执行服务器程序和客户机程序。 9.6 一个RMI的分布式应用的实例 9.6 一个RMI的分布式应用的实例 依照上述的步骤1,先定义一个接口扩展远程接口Remote,再定义一个类实现它,同时实现服务器端程序,为远程方法调用提供服务 9.6 一个RMI的分布式应用的实例 import java.rmi.*; import java.rmi.server.*; public class FirstImpl extends UnicastRemoteObject implements RemoteInterface{ static int number=0; public FirstImpl() throws RemoteException{ super(); } public String FirstMethod() {

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档