Java编程与应用教程 作者 张莉 java_13.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文档。上传文档
查看更多
第十三章 Java分布式应用RMI 本章主要内容有 远程方法调用与RMI 创建RMI实例 编写远程接口 服务器主程序和RMI注册表 提供远程调用的网络连接 编写客户端程序 部署和运行RMI应用 利用servlet的分布式计算 13.1 远程方法调用与RMI 本地对象之间相互调用的正常途径 13.1 远程方法调用与RMI 服务器端对于每一次远程方法调用请求都执行以下的操作: 1.反调度参数(明确调用的方法和提取参数) 2.定位被调度的对象 3.调用所期待的方法 4.捕捉和调度返回值或这次调度抛出的异常。 5.发送结果数据报到客户端的stub对象。 13.1 远程方法调用与RMI 远程方法调用的信息流动过程 13.2 创建RMI实例 开发RMI应用一般可以下按如下步骤完成: 1.定义用于远程对象的接口。这个接口定义了客户机能够远程调用的方法。 2.编写实现远程接口的服务器类。 3.编写在服务器上运行的主程序。这个程序必须实例化一个或多个步骤2中编写的服务器对象。然后,将远程对象注册到 RMI 名称注册表,这样客户机就能够找到对象。 4.使用JDK中提供的程序rmic为服务器类生成用于生成用于自动通讯的stub和seketlon类。 5.编写客户端程序。 6.启动RMI注册表。 7.运行服务器主程序。 8.启动客户端程序。 13.2 创建RMI实例 1. 编写远程接口 13.2 创建RMI实例 几个额外的规定: 1.远程接口必须直接或间接的扩展(extends)自接口java.rmi.Remote。 2.远程接口必须为public。 3.除了与应用程序本身可能抛出的Exception外,远程接口中的每一个方法都必须在自己的throws子句中声明java.rmi.RemoteException异常。 4.所有传递的参数或返回值都必须是基本数据类型(int,double等)或实现了java.io.Serializable的类。 13.2 创建RMI实例 一个远程接口的定义 (源程序RemoteDate.java) package examples.rmi; import java.rmi.*; import java.util.Date; /** 远程接口 public interface RemoteDate extends java.rmi.Remote { /** 用于获取远端服务器系统时间的方法 */ public Date getRemoteDate() throws java.rmi.RemoteException; } 13.2 创建RMI实例 2. 实现远程接口的服务器类 要遵守如下一些必要的编程规定: (1)所有的服务器类都必须直接或间接的继承类java.rmi.server.RemoteServer。 在实际开发中,我们一般继承的是RemoteServer的子类UniCastRemoteObject, 下图展示了RMI中一些重要的类之间的继承关系。 13.2 创建RMI实例 一些重要的类之间的继承关系 13.2 创建RMI实例 (2)所有的服务器类都必须有一个无参数的构造函数。虽然在Java中,如果用户没有为某个类定义任何的构造函数的话,编译器会自动地为该类添加一个无参数的构造函数,但在此我们还是推荐大家显式地定义自己的无参数构造函数,本例中,构造函数所执行的操作是简单地调用上一级父类的构造函数。 13.2 创建RMI实例 3. 服务器主程序和RMI注册表 服务器主程序完成的工作主要有: (1)创建并安装一个安全管理器(SecurityManager)。创建和安装的过程可以使用: System.setSecurityManager(new RMISecurityManager()); (2)创建一个或多个服务器对象的实例。 (3)向RMI注册表注册创建的服务器对象 在Windows环境下可以通过以下的命令完成 start rmiregistry 在Linux中,可以使用以下的命令完成: rmiregistry 13.2 创建RMI实例 4. 提供远程调用的网络连接 rmic的命令格式为: rmic SomeRemoteObject 当rmic命令执行完后,JDK自动为用户生成两个新的类: SomeRemoteObject_Stub.class SomeRemoteObject_Skel.class 13.2 创建RMI实例 5. 编写客户端程序 在客户端应用程序要做工作主要包括: (1)建立并安装安全管理器

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档