当前位置: 首页 > news >正文

沈阳智能模板建站91大神网站建设

沈阳智能模板建站,91大神网站建设,北京做企业网站,建筑公司资质等级【Java基础】- RMI原理和使用详解 文章目录 【Java基础】- RMI原理和使用详解一、什么RMI二、RMI原理2.1 工作原理图2.2 工作原理 三、RMI远程调用步骤3.1 RMI远程调用运行流程图3.2 RMI 远程调用步骤 四、JAVA RMI简单实现4.1 如何实现一个RMI程序4.2 JAVA实现RMI程序 一、什么…【Java基础】- RMI原理和使用详解 文章目录 【Java基础】- RMI原理和使用详解一、什么RMI二、RMI原理2.1 工作原理图2.2 工作原理 三、RMI远程调用步骤3.1 RMI远程调用运行流程图3.2 RMI 远程调用步骤 四、JAVA RMI简单实现4.1 如何实现一个RMI程序4.2 JAVA实现RMI程序 一、什么RMI RMI远程方法调佣Remort Method Invocation,它支持存储于不同地址空间的程序级对象之间彼此通信实现远程对象之间的无缝远程调用。 JAVA RMI:用于不同虚拟机之间的通信这些虚拟机可以在不同的主机上也可以在同一个主机上一个虚拟机中的对象调用另一个虚拟机上中的对象的方法只不过是允许被远程调用的对象要通过一些标志加以标识。 远程过程调用Remote Procedure Call,RPC可以用于一个进程调用另一个进程很可能在另一个远程主机上中的过程从而提供了过程的分布能力。Java的RMI则在RPC的基础上向前又迈进了一步既提供分布式对象间通讯。 二、RMI原理 2.1 工作原理图 2.2 工作原理 方法调用从客户对象经占位程序Stub)、远程引用层(Remote Reference Layer)和传输层Transport Layer向下传递给主机然后再次经传输层向上穿过远程调用层和骨干网Skeleton到达服务器对象。 占位程序扮演着远程服务器对象的代理的角色使该对象可被客户激活。 远程引用层处理语义、管理单一或多重对象的通信决定调用是应发往一个服务器还是多个。传输层管理实际的连接并且追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端再向上经传输层和远程调用层返回。最后占位程序获得返回值。 实际上客户端只与代表远程主机中对象的Stub对象进行通信丝毫不知道Server的存在。客户端只是调用Stub对象中的本地方法Stub对象是一个本地对象它实现了远程对象向外暴露的接口也就是说它的方法和远程对象暴露的方法的签名是相同的。客户端认为它是调用远程对象的方法实际上是调用Stub对象中方法可以理解为Stub对象是远程对象在本地的一个代理当客户端调用方法的时候Stub对象会将调用通过网络传输给远程对象。 三、RMI远程调用步骤 3.1 RMI远程调用运行流程图 3.2 RMI 远程调用步骤 客户端对象调用客户端辅助对象Stub上的方法。客户端辅助对象打包调用信息变量、方法名通过网络发送给服务端辅助对象。服务端辅助对象将客户端辅助对象发送来的信息解包找出真正被调用的方法以及该方法所在对象。调用真正服务对象上的真正方法并将结果返回给服务端辅助对象。服务端辅助对象将结果打包发送给客户端辅助对象。客户端辅助对象将返回值解包返回给客户对象客户对象获得返回值 四、JAVA RMI简单实现 4.1 如何实现一个RMI程序 1). 创建远程接口 并且继承java.rmi.Remote接口。 2). 实现远程接口并且继承UnicastRemoteObject。 3). 创建服务器程序 createRegistry方法注册远程对象暴露一个监听。 4). 创建客户端程序通过ip和端口连接到指定的服务器并且将数据做封装序列化 5). 服务器端收到请求先反序列化。再进行业务逻辑处理。把返回结果序列化返回 4.2 JAVA实现RMI程序 1). 定义一个远程接口 /*** 必须继承Remote接口。* 所有参数和返回类型必须序列化(因为要网络传输)。* 任意远程对象都必须实现此接口。* 只有远程接口中指定的方法可以被调用。*/ public interface IRemoteMath extends Remote {// 所有方法必须抛出RemoteExceptionpublic double add(double a, double b) throws RemoteException;public double subtract(double a, double b) throws RemoteException; }2). 远程接口实现类 /*** 服务器端实现远程接口。* 必须继承UnicastRemoteObject以允许JVM创建远程的存根/代理。*/ public class RemoteMath extends UnicastRemoteObject implements IRemoteMath {private int numberOfComputations;protected RemoteMath() throws RemoteException {numberOfComputations 0;}Overridepublic double add(double a, double b) throws RemoteException {numberOfComputations;System.out.println(Number of computations performed so far numberOfComputations);return (ab);}Overridepublic double subtract(double a, double b) throws RemoteException {numberOfComputations;System.out.println(Number of computations performed so far numberOfComputations);return (a-b);}}3). 服务器端 /* 注册远程对象,向客户端提供远程对象服务 * 远程对象是在远程服务上创建的你无法确切地知道远程服务器上的对象的名称* 但是将远程对象注册到RMI Service之后客户端就可以通过RMI Service请求* 到该远程服务对象的stub了利用stub代理就可以访问远程服务对象了*/ public class RMIServer {public static void main(String[] args) {try {IRemoteMath remoteMath new RemoteMath(); LocateRegistry.createRegistry(1088); Registry registry LocateRegistry.getRegistry();registry.bind(Compute, remoteMath);System.out.println(Math server ready);} catch (Exception e) {e.printStackTrace();} }}4). 客户端 public class MathClient {public static void main(String[] args) {try { // 如果RMI Registry就在本地机器上URL就是:rmi://localhost:1088/Compute// 否则URL就是rmi://RMIService_IP:1088/ComputeRegistry registry LocateRegistry.getRegistry(localhost); // 从Registry中检索远程对象的存根/代理IRemoteMath remoteMath (IRemoteMath)registry.lookup(Compute);// 调用远程对象的方法double addResult remoteMath.add(5.0, 3.0);System.out.println(5.0 3.0 addResult);double subResult remoteMath.subtract(5.0, 3.0);System.out.println(5.0 - 3.0 subResult); }catch(Exception e) {e.printStackTrace();} } }
http://www.hkea.cn/news/14471607/

相关文章:

  • 我的世界做图片网站威海微网站建设
  • 网站字体大小展馆设计师招聘
  • 个人备案网站经营西安微信商城网站开发
  • 网站服务器指的是什么手表网站欧米茄官方
  • 网站跳出率高的原因网站 内容 营销
  • 可以自学做网站吗网页设计ppt演讲
  • 珠海房地产网站建设墟沟企业建站价格表
  • 网站开发策划书宁波网站关键词优化代码
  • 介绍学校网站怎么做wordpress 下载文件插件
  • 彩票网站开发软件网站开发公司需要那些硬件设备
  • 网站做优化有什么用吗云主机建设网站
  • 家具flash网站模板下载怎么做刷业网站
  • 做网站不会写代码网络舆情监测系统软件
  • 做风投要关注哪些网站有没有做美食的规模网站
  • 成都网站建设哪家专业而且比较便宜网站需求建设关系书
  • 网站建设倒计时自建网站怎么关闭
  • 福清市住房和城乡建设局网站wordpress文章乱码
  • asp网站模板中国互联网协会副会长名单
  • 虚拟主机对网站seo有哪些影响最好的wordpress教程
  • 网站设计的国际专业流程网站买源代码
  • 网站开发的在线支付功能wordpress sql脚本
  • 淮安网站制作设计外链屏蔽逐步解除
  • 建网站哪便宜深圳外贸公司联系电话
  • 查询行业信息的网站济南建设工程交易中心
  • 怎么给自己的网站做seo福州微信网站制作
  • 长沙外贸企业网站建设电商网站建设毕业设计
  • 创办网站公司廊坊网站霸屏
  • 自己创造网站上海个人做网站
  • 扬州做网站公司哪家好制作网站公司
  • 论坛类网站开发报价唐山网站建设公司