长途要领挪用RMI详解,和RPC的思绪很相似
副问题[/!--empirenews.page--]
RMI的界说 RPC (Remote Procedure Call):长途要领挪用,用于一个历程挪用另一个历程中的进程,从而提供了进程的漫衍手段。 RMI(Remote Method Invocation):长途要领挪用,即在RPC的基本上有向前迈进了一步,提供漫衍式工具间的通信。应承运行在一个java 假造机的工具挪用运行在另一个java假造机上工具的要领。这两个假造机可所以运行在沟通计较机上的差异历程中,也可所以运行在收集上的差异计较机中。 RMI的全称宗旨就是只管简化长途接口工具的挪用。 RMI大大加强了java开拓漫衍式应用的手段,譬喻可以将计较要领伟大的措施放在其他的处事器上,主处事器只必要去挪用,而真正的运算是在其他处事器长举办,最后将运算功效返回给主处事器,这样就减轻了主处事器的承担,进步了服从(可是也有其他的开销)。 RMI收集模子 在计划初始阶段,我们真正想要的是这样一种机制,客户端措施员以通例方法举办要领挪用,而无需劳神将数据发送到收集上可能理会相应之类的题目。以是才有了如下的收集模子:在客户端为长途工具安装一个署理。署理是位于客户端假造机中的一个工具,它对付客户端措施来说,就像是要会见的长途工具一样。客户端挪用此署理时,只需举办通例的要领挪用。而客户端署理则认真行使收集协议与处事器举办接洽。 ![]() 此刻的题目在于署理之间是怎样举办通讯的?凡是有三种要领: 1、CORBA:通过工具哀求署理架构,支持任何编程说话编写的工具之间的要领挪用。 2、SOAP 3、RMI:JAVA的长途要领挪用技能,支持java的漫衍式工具之间的要领挪用。 个中CORBA与SOAP都是完全独立于言语的,可以行使C、C++、JAVA来编写,而RMI只合用于JAVA。 RMI的事变道理 一、术语先容 1、存根:当客户端要挪用长途工具的一个要领时,现实上挪用的是署理工具上的一个平凡要领,我们称此署理工具为存根(stub)。存根位于客户端呆板上,而非处事器上。 2、参数编组:存根会将长途要领所需的参数打包成一组字节,对参数编码的进程就称为参数编组。参数编组的目标是将参数转换成得当在假造机之间举办转达的名目,在RMI协议中,工具是行使序列化机制举办编码的。 二、编程模子 为了先容RMI的编程模子,我下面会编写一个DEMO。长途工具暗示的是一个客栈,而客户端措施向客栈扣问某个产物的价值。 1、接口界说 长途工具的手段是由在客户端和处事器之间共享的接口所暗示的: ![]() 长途工具的接口必需扩展Remote接口,它位于java.rmi包中。接口中全部的要领必需声明抛出RemoteException非常。这是由于长途要领老是存在失败的也许,以是java编程说话要求每一次长途要领的挪用都必需捕捉RemoteException,而且指明当挪用不乐成时应执行的响应处理赏罚操纵。 2、接口的实现 ![]() 你可以看出这个类是长途要领挪用的方针,由于它扩展自UnicastRemoteObject,这个类的结构器使得它的工具可供长途会见。 3、RMI注册表:通过JNDI宣布RMI处事
如:rmi://regserver.mycompany.cmo:99/central_warehouse 假如我们是在当地宣布RMI处事,那么host就是“localhost”,另外RMI默认的端标语是“1099”,虽然我们也可以自行配置,只要不与其他端口一再即可。 service现实上是基于统一个host与port下独一的处事名。 宣布RMI处事: ![]() 运行功效:
4、挪用RMI处事 ![]() 运行功效:
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |