java远程通讯技术及简单实现.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java远程通讯技术及简单实现概要

java远程通讯技术及简单实现JavaJMS应用服务器网络协议网络应用???? 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java底层领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、SOAP、EJB和JMS 等,在j2ee中,对java底层远程通讯的技术进行了封装,形成了 Hessian 、HttpInvoker、XFire、 Axis 等多种形式的远程调用技术。但对高级程序员而言仍需要掌握Java底层领域中远程通讯的技术,尤其是rmi,xml-rpc,JMS。?1.远程服务基本原理?1)底层协议?  要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有http、tcp、udp等等,http、tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。?2)应用级协议?  远程服务通讯,需要达到的目标是在一台计算机发起请求,另外一台机器在接收到请求后进行相应的处理并将结果返回给请求端,这其中又会有诸如one way request、同步请求、异步请求等等请求方式,按照网络通信原理,需要实现这个需要做的就是将请求转换成流,通过传输协议传输至远端,远端计算机在接收到请求的流后进行处理,处理完毕后将结果转化为流,并通过传输协议返回给调用端。??? 在java领域中知名的远程通信的应用级协议有:RMI、XML-RPC、Binary-RPC、SOAP、JMS?  ?2.RMI?2.1RMI原理???? RMI,即Java RMI(Java Remote Method Invocation),Java远程方法调用.是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。?  RMI是个典型的为java定制的远程通信协议,RMI全部的宗旨就是尽可能简化远程接口对象的使用。???? RMI的基础是接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。?  来看下基于RMI的一次完整的远程通信过程的原理:?  1)客户端发起请求,请求转交至RMI客户端的stub类;?  2)stub类将请求的接口、方法、参数等信息进行序列化;?  3)基于socket将序列化后的流传输至服务器端;?  4)服务器端接收到流后转发至相应的skelton类;?  5)skelton类将请求的信息反序列化后调用实际的处理类;?  6)处理类处理完毕后将结果返回给skelton类;?  7)Skelton类将结果序列化,通过socket将流传送给客户端的stub;?  8)stub在接收到流后反序列化,将反序列化后的Java Object返回给调用者。?2.2JAVA对RMI的支持???? java.rmi是JAVA提供 RMI 包。RMI是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。调用这样一个对象时,其参数为 marshalled 并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为 unmarshalled)上。该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。如果方法调用导致抛出异常,则该异常将指示给调用方.???? Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。?2.3rmi在java中的应用???? 要使用RMI,必须构建四个主要的类:远程对象的本地接口、远程对象实现、RMI客户机和RMI服务器。RMI服务器生成远程对象实现的一个实例,并用一个专有的URL注册。RMI客户机在远程RMI服务器上查找服务对象,并将它转换成本地接口类型,然后像对待一个本地对象一样使用?它。? 1)远程对象的本地接口?package test.rmi;?import java.rmi.Remote;?import java.rmi.RemoteException;?public interface HelloRMI extends Remote {????????? /**?????? * 简单的返回“Hello World!字样?????? * @return 返回“Hello World!字样?????? * @throws java.r

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档