- 1
- 0
- 约2.39千字
- 约 11页
- 2017-06-07 发布于湖北
- 举报
拓展——Java的反射机制 * 第8章 高级RMI 第7章中,我们以Java RMI为例介绍了分布式对象系统。本章我们将会进一步了解RMI 第一PPT模板网 WWW.1PPT.COM 在本章中我们将会介绍RMI的一些高级特征,分别是: 客户回调(client callback); stub下载(stub downloading); 安全管理器(security manager)。 概述 客户回调 体系结构 客户端增强 服务器端增强 问题思考——聊天室新成员加入时如何通知所有参与者? 方式一:轮询(Poll),让每个用户进程不断重复调用某一远程方法来轮询对象服务器,直到该方法返回真值为止。 优点:操作简单 缺点:非常耗费系统资源 方式二:回调(CallBack)——更为高效的技术。 前一章中介绍的基本RMI API框架中,服务器无法在某一信息可用时,向客户发起一个调用来传递该消息,因为远程方法调用是单向的(从客户到服务器)。 概述 客户回调 体系结构 客户端增强 服务器端增强 客户回调: 其允许对特定事件感兴趣的对象客户在对象服务器上注册自己,以便服务器可以在所等待事件发生时,向对象客户发起一次远程方法调用。 在客户回调中,远程方法调用变成了双向的(全双工)——客户服务器双向通信。 概述 客户回调 体系结构 客户端增强 服务器端增强 客户回调 带客户回调的RMI体系结构 概述 客户回调 体系结构 客户端增强 服务器端增强 概述 客户回调 体系结构 客户端增强 服务器端增强 客户端增强 1.客户远程接口 对于回调,需要对象客户提供一个远程接口——称为客户远程接口。且该接 口至少得包含一个可以被回调服务器调用的方法。(接口声明见教材P181) public string notifyMe(String message) throws java.rmi.RemoteException 2.客户远程接口的实现 以下接口方法的实现: public string nitifyMe(String message)throws java.rmi.RemoteException { String returnMessage = Call back received: + message; System.out.println(returnMessage); return returnMessage; } 概述 客户回调 体系结构 客户端增强 服务器端增强 客户端增强 3.客户类的增强 在对象客户类中,需要为其增加注册代码,以在服务器上注册实现了客户远程接口的对象。注册语句代码如下: //实例化服务器类对象,用于注册对象引用 CallbackServerInterface h= (CallbackServerInterface )Naming.lookup(registerURL); //声明客户回调对象,使用上转型方式实例化 CallbackClientInterface callbackobj = new CallbackClientImpl(); //注册对象引用到服务器上 h.registerForCallback(callbackobj ); 其余代码见书本P182—P184 概述 客户回调 体系结构 客户端增强 服务器端增强 在服务器端,需要提供允许客户为实现回调而向服务器注册的远程方法。即增加一个面向客户的注册方法: public void registerForCallback(CallbackClientInterface callbackClientObject) throws java.rmi.RemoteException; 其中实现客户远程接口(CallbackClientInterface)的对象引用做参数。也可以提供方法来允许客户取消注册(以便客户不再接收回调,比如书本例子中的unregisterForCallback()方法)。 具体代码见书本P184—P187 注意:服务器必须采用某种数据结构,来维护注册回调的客户接口引用列表;客户端注册对象引用和取消回调引用将会公用服务器端一个引用列表,因为这两个方法可是并发执行,所以对这些方法提供互斥保护是非常重要的。可以采用同步方法来保证互斥。 创建带客户回调的RMI应用的步骤 Java中所有的类都有自己特有的一份字节码,当程序调用该类时,JVM 会将这份字节码装载到内存中来。在java中主要有三种方法来得到相应的 字节码对象。 1)通过类的实例的getClass()方法获取,如 Class class=new Date().getClass()得到了Date类的字节码对
您可能关注的文档
- 桐乡市区域规划讲述.ppt
- 投资学第2讲金融工具.ppt
- 动物克隆技术研究的历史、现状和展望.pdf
- 托福写作和美国学术写作的区别-智课教育旗下智课教育.pdf
- 儿童朴素物理学的错误概念与影响概念转换的因素.pdf
- 二叉树的存储和遍历.ppt
- 二叉树类模板的设计和实现.docx
- 往届浙江省高校计算机一级考试操作题与解答.doc
- 二次回路基础知识和高压柜二次回路分析.ppt
- 微电网多目标动态优化调度模型和方法_洪博文.pdf
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)