RMI 的相关概念

1、java.rmi.server.RemoteObject类
     每一个远程类都有自身的特点,它必须刻画远程对象的行为,并提供基本语义以支持远程的调用,如:必须创建对象后输出到指定的端口以等待被远程调用。要使一个对象扩展远程行为可以有两种方法:
     a、把远程对象自身的引用(this)传送给不同形式的UnicastRemoteObject.exportObject()方法,以显式的形式输出自己。也就是说,在自己的程序中不需要扩展UnicastRemoteObject类,直接在自己的类中加入预计:UnicastRemoteO bject.exportObject(this)即可。
     b、扩展java.rmi.server.RemoteServer类或者子类,以超类的方法输出自己。RemoteServer类有两个子类,一般都是扩展他的子类,他们分别是:UnicastRemoteObject和Activatable类,UnicastRemoteObject类定义了简单的传送远程对象,他要求其引用只有在服务器进程活动时才有效,这种方法是用的比较多的方法;Activatable类可以在其远程方法被调用时激活,并在必要的时候关闭自己,减少服务器上的占用资源。
       这里的“输出”一词封装了远程对象可接收请求的能力,多个对象可以在同一个端口上监听。
       对了,RemoteObject类是什么?他是RemoteServer的超类。
       注意:远程对象在必要是需要准确的实现冲Object类中继承的hashCode方法、equals方法和toString方法。
     2、Stub(存根)和Skeleton(骨架)
     Stub和Skeleton是经过rmic命令生成的,我们的程序要通过远程调用,底层一定是套接字的字节传输,要一个对象序列化成为一个字节数组,传输到服务器或者客户端的对端之后,再把该对象反序列化成为对应的对象,这些网络传输的过程要求安全,稳定等等非常麻烦的操作,Stub驻留客户端,承担着代理远程对象的实现者的角色,Skeleton类帮助远程对象与Stub再RMI连接上进行通信。RMI的客户与Stub进行交换,Stub与Skeleton通信,Skeketon负责与服务器进行交互,因此有了Stub和Skeleton之后我们就不需要实现底层通信的细节,我们进行的远程调用,只需要通过接口对方法进行操作即可,使分布式调用实现了位置上的透明,即:远程调用就像本地调用一样。
       通俗的说,RMI的代理模式迫使方法调用必须通过充当替身的代理对象,即Stub和Skeleton,由这些代理对象将方法传递给实际的对象。
       在远程虚拟机中,每个远程对象都有一个Skeleton对应,Skeleton负责将调用分配给实际的远程对象来实现,他的工作是在服务器端的。在JDK1.2版本以上的环境中不需要Skeleton,因为Jdk1.2推出了附加的Skeleton,并且对底层的协议也进行了修改,性能上有很大提升,默认的rmic命令是不会产生Skeleton类的,如果要想生成Skeleton类可以使用rmic -v1.1 即可。
       Stub的操作任务:
         a、初始化与包含远程对象远程虚拟机的连接
         b、与远程虚拟机参数进行编组 ,也就是调度,包括参数的写入以及传输
         c、等待方法的调用结果
         d、解编返回值和返回的异常 。也就是读取服务器上的返回值,也称为反调度
         e、将结果返回给调用程序。
       Skeleton对应的任务:
         a、读取远程方法的参数,也就是解编
         b、 调用实际远程对象上的方法
         c、将结果或者异常组编(写入并传输)给调用程序
       Stub与Skeleton的关系以及操作是对应的关系 。只要我们有编译好的远程对象的类 ,就可以调用jdk的rmic命令来生成stub和skeleton了 ,关键是我们需要理解Stub是客户 端应用程序的代理 ,Skeleton是服务器端应用程序的代理 ,他们之间协作完成客户端与服务器之间的方法调用时的通信。
       了解者两个概念之后,我们接下来需要了解JNDI以及RMI注册表两个概念,等剩下的两个概念了解了,我们基本上对RMI就可以入门了。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值