美文网首页我爱编程
讲讲如何使用RMI

讲讲如何使用RMI

作者: 预言之上 | 来源:发表于2018-04-10 12:27 被阅读78次

    大家好,我是IT修真院深圳分院的学员,一枚正直善良的JAVA程序员。今天给大家带来的是0

    讲讲Rmi

    1.背景介绍

    RMI(Remote Method Invocation)是JAVA早期版本(JDK 1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中。

    随着互联网应用的发展,分布式处理任务也随之复杂起 来,WebService也得到普遍的推广和应用。

    2.知识剖析           

    RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。

    可以用此方法调用的任何对象必须实现该远程接口。

    调用这样一个对象时,其参数为 "marshalled" 并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为 "unmarshalled")上。

    该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。

    如果方法调用导致抛出异常,则该异常将指示给调用方。

    3.常见问题

    1.如何搭建一个RMI服务?

    4.解决方案

    如何搭建一个RMI服务的过程分为以下7步;

    1,创建远程方法接口,该接口必须继承自Remote接口

    2,创建远程方法接口实现类,该实现类必须继承UnicastRemoteObject类,并且抛出RemoteException

    3.创建服务器程序,在rmiregistry注册表中注册远程对象;

    4.创建客户端程序,负责定位远程对象,并且调用远程方法。

    Spring中如何使用RMI

    在服务端,可以通过Spring的org.springframework.remoting.rmi.RmiServiceExporter可以暴露你的服务;

    在客户端,通过org.springframework.remoting.rmi.RmiProxyFactoryBean可以使用服务端暴露的服务,非常方便。

    5.编码实战

    6.更多讨论

    7.参考文献

    文章链接:https://blog.csdn.net/xiaoyaoyulinger/article/details/51452674

    文章作者:子不语xuan

    文章链接:https://blog.csdn.net/lmy86263/article/details/72594760

    文章作者:lmy86263

    8.更多讨论

    1.RMI有什么优点?

    优点:避免重复造轮子;

    缺点:调用过程很慢,而且该过程是不可靠的,容易发生不可预料的错误,比如网络错误等;

    2.RMI中 如何随时改变调用的IP?

    在服务端分别向不同的IP注册服务,然后客户端根据需要,随时加载所需要bean。这个过程是在程序运行的时候完成的,而不需要程序重新启动。

    3.RMI的框架有哪些?

    RMI

        RMI是个典型的为java定制的远程通信协议, 我们都知道,在single vm中,我们能够通过直接调用java object instance来实现通信,那么在远程通信时,假设也能依照这样的方式当然是最好了。这样的远程通信的机制成为RPC(RemoteProcedure Call),RMI正是朝着这个目标而诞生的。

        传输的标准格式是Java Object Stream;基于Java串行化机制将请求的Java Object信息转化为流。传输协议是Socket。

    XML-RPC

          XML-RPC也是一种和RMI类似的远程调用的协议,它和RMI的不同之处在于它以标准的xml格式来定义请求的信息(请求的对象、方法、參数 等),这种优点是在跨语言通讯的时候也能够使用。所以RMI与RPC的差别之中的一个是RPC是跨语言的。

          传输的标准格式是XML。将XML转化为流。传输协议是HTTP。

    Binary-RPC

          Binary-RPC和XML-RPC是差点儿相同,不同之处仅在于传输的标准格式由XML转为了二进制的格式。

          传输的标准格式是二进制文件。将二进制文件转化为传输的流。传输协议是HTTP。

    SOAP

            SOAP(SimpleObject Access Protocol),是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议,能够觉得SOAP是XML RPC的高级版。两者的原理全然同样。都是http+XML,不同的仅在于两者定义的XML规范不同。SOAP也是Webservice採用的服务调用协 议标准。

    CORBA

          Common Object Request BrokerArchitecture(公用对象请求代理[调度]程序体系结构),是一组用来定义“分布式对象系统”的标准,由OMG(Object Menagement Group)作为发起和标准制定单位。CORBA的目的是定义一套协议,符合这个协议的对象能够互相交互,不论它们是用什么样的语言写的。不论它们执行于 什么样的机器和操作系统。CORBA是个类似于SOA的体系架构。涵盖可选的远程通信协议,但其本身不能列入通信协议。

    JMS

          JMS。是实现java领域远程通信的一种手段和方法。基于JMS实现远程通信时和RPC是不同的。尽管能够做到RPC的效果,但由于不是从协议 级别定义的。因此我们不觉得JMS是个RPC协议,但它确实是个远程通信协议,在其它的语言体系中也存在着类似JMS的东西,能够统一的将这类机制称为消 息机制。而消息机制呢,一般是高并发、分布式领域推荐的一种通信机制,这里的主要一个问题是容错。JMS注重的是消息交换,RMI注重的是对象方法调用,所以目的不同。JMS大多时候是异步的松耦合,RMI大多时候是同步的紧耦合。

          JMS规定的传输格式是Message,将參数信息放入Message中,传输协议不限。基于JMS也是经常使用的实现远程异步调用的方法之中的一个。

    PPT链接:戳这里看PPT

    腾讯视频:腾讯视频

    技能树.IT修真院

    “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

    这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

    直接点击此链接:http://www.jnshu.com/login/1/10985551

    相关文章

      网友评论

        本文标题:讲讲如何使用RMI

        本文链接:https://www.haomeiwen.com/subject/kcashftx.html