Java网络编程精解chapter11.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网络编程精解chapter11

Java网络编程精解 作者:孙卫琴 参考书籍:Java网络编程精解 技术支持网址: 第11章 RMI框架 11.1 RMI的基本原理 11.2 创建第一个RMI应用 11.3 远程对象工厂设计模式 11.4 远程方法中的参数与返回值传递 11.5 回调客户端的远程对象 11.6 远程对象的并发访问 11.7 分布式垃圾收集 11.8 远程对象的equals()、hashCode()和clone()方法 11.9 使用安全管理器 11.10 RMI应用的部署以及类的动态加载 11.11 远程激活 第11章 RMI框架 如图11-1所示,在实际应用中,为了合理的分配软硬件资源,会把各个对象分布在不同的网络节点上,这些对象之间能相互发送消息。 第11章 RMI框架 分布式对象模型的实现系统应该具备以下功能: (1)把分布在不同节点上的对象之间发送的消息转换为字节序列,这一过程称为编组(marshalling)。 (2)通过套接字建立连接并且发送编组后的消息,即字节序列。 (3)处理网络连接或传输消息时出现的各种故障。 (4)为分布在不同节点上的对象提供分布式垃圾收集机制。 (5)为远程方法调用提供安全检查机制。 (6)服务器端运用多线程或非阻塞通信机制,确保远程对象具有很好的并发性能,能同时被多个客户访问。 (7)创建与特定问题领域相关的各种本地对象和远程对象。 第11章 RMI框架 如图11-2所示,RMI框架封装了所有底层通信细节,并且解决了编组、分布式垃圾收集、安全检查和并发性等通用问题。有了现成的框架,开发人员就只需专注于开发与特定问题领域相关的各种本地对象和远程对象。 11.1 RMI的基本原理 RMI采用客户/服务器通信方式。在服务器上部署了提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法。 如图11-3所示,HelloServiceImpl是一个远程对象,它运行在服务器上,客户端请求调用HelloServiceImpl对象的echo()方法。 11.1 RMI的基本原理 如图11-4所示,RMI框架采用代理来负责客户与远程对象之间通过Socket进行通信的细节。 RMI框架为远程对象分别生成了客户端代理和服务器端代理。位于客户端的代理类称为存根(Stub),位于服务器端的代理类称为骨架(Skeleton)。 11.1 RMI的基本原理 存根采用一种与平台无关的编码方式,把方法的参数编码为字节序列,这个编码过程称为参数编组。 RMI主要采用Java序列化机制进行参数编组。接着,存根把以下请求信息发送给服务器: 被访问的远程对象的名字。 被调用的方法的描述。 编组后的参数的字节序列。 11.1 RMI的基本原理 服务器端接收到客户端的请求信息,然后由相应的骨架对象来处理这一请求信息,骨架对象执行以下操作: 反编组参数,即把参数的字节序列反编码为参数。 定位要访问的远程对象。 调用远程对象的相应方法。 获取方法调用产生的返回值或者异常,然后对它进行编组。 把编组后的返回值或者异常发送给客户。 11.2 创建第一个RMI应用 大致说来,创建一个RMI应用包括以下步骤: (1)创建远程接口:继承java.rmi.Remote接口。 (2)创建远程类:实现远程接口。 (3)创建服务器程序:负责在rmiregistry注册表中注册远程对象。 (4)创建客户程序:负责定位远程对象,并且调用远程对象的方法。 11.2 创建第一个RMI应用 图11-5是本节要创建的RMI应用的类框图。其中HelloService是一个远程接口,它继承了java.rmi.Remote接口,HelloServiceImpl类实现了该接口,并且继承了java.rmi.server.UnicastRemoteObject类。 SimpleClient和SimpleServer类分别是客户程序和服务器程序。 11.2.1 创建远程接口 远程接口中声明了可以被客户程序访问的远程方法。RMI规范要求远程对象所属的类实现一个远程接口,并且远程接口符合以下条件: 直接或间接继承java.rmi.Remote接口。 接口中的所有方法声明抛出java.rmi.RemoteException。 11.2.1 创建远程接口 以下例程11-1是HelloService接口的源程序。在这个接口中声明了echo()和getTime()两个方法,它们都声明抛出RemoteException。 例程11-1 HelloService.java package hello; import java.util.Date; import java.rmi.*; public

文档评论(0)

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

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

1亿VIP精品文档

相关文档