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

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

ID:5728816

大小:63.38 KB

页数:13页

时间:2017-12-23

java远程通讯技术及简单实现_第1页
java远程通讯技术及简单实现_第2页
java远程通讯技术及简单实现_第3页
java远程通讯技术及简单实现_第4页
java远程通讯技术及简单实现_第5页
资源描述:

《java远程通讯技术及简单实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、java远程通讯技术及简单实现JavaJMS应用服务器网络协议网络应用    在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java底层领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、SOAP、EJB和JMS等,在j2ee中,对java底层远程通讯的技术进行了封装,形成了Hessian、HttpInvoker、XFire、Axis等多种形式的远程调用技术。但对高级程序员而言仍需要掌握Java底层领域中远程通讯的技术,尤其是rmi,xml-rpc,JMS。 1.远程服务基本原理 1)底层协议   要实现网络机器间的通讯,首先

2、得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有http、tcp、udp等等,http、tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。 2)应用级协议   远程服务通讯,需要达到的目标是在一台计算机发起请求,另外一台机器在接收到请求后进行相应的处理并将结果返回给请求

3、端,这其中又会有诸如onewayrequest、同步请求、异步请求等等请求方式,按照网络通信原理,需要实现这个需要做的就是将请求转换成流,通过传输协议传输至远端,远端计算机在接收到请求的流后进行处理,处理完毕后将结果转化为流,并通过传输协议返回给调用端。   在java领域中知名的远程通信的应用级协议有:RMI、XML-RPC、Binary-RPC、SOAP、JMS    2.RMI 2.1RMI原理    RMI,即JavaRMI(JavaRemoteMethodInvocation),Java远程方法调用.是Java编程语言里,一种用于实现远程过程调用的应用程序编程接

4、口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。   RMI是个典型的为java定制的远程通信协议,RMI全部的宗旨就是尽可能简化远程接口对象的使用。    RMI的基础是接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。   来看下基于RMI的一次完整的远程通信过程的原理:   1)客户端发起请求,请求转交至RMI客户端的stub类;   2)stub类将请求的接口、方法、参数等信息进行序列化;   3)基于socket将序列化后的流传输至服务器端;   4)服务器端接收到流后转发

5、至相应的skelton类;   5)skelton类将请求的信息反序列化后调用实际的处理类;   6)处理类处理完毕后将结果返回给skelton类;   7)Skelton类将结果序列化,通过socket将流传送给客户端的stub;   8)stub在接收到流后反序列化,将反序列化后的JavaObject返回给调用者。 2.2JAVA对RMI的支持    java.rmi是JAVA提供RMI包。RMI是一种机制,能够让在某个Java虚拟机上的对象调用另一个Java虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。调用这样一个对象时,其参数为"marsh

6、alled"并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为"unmarshalled")上。该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。如果方法调用导致抛出异常,则该异常将指示给调用方.    Remote接口用于标识其方法可以从非本地虚拟机上调用的接口。 2.3rmi在java中的应用    要使用RMI,必须构建四个主要的类:远程对象的本地接口、远程对象实现、RMI客户机和RMI服务器。RMI服务器生成远程对象实现的一个实例,并用一个专有的URL注册。RMI客户机在远程RMI服务器上查找服务对象,并将它转换成本地接口类型,然后像对待一个

7、本地对象一样使用 它。  1)远程对象的本地接口 packagetest.rmi; importjava.rmi.Remote; importjava.rmi.RemoteException; publicinterfaceHelloRMIextendsRemote{         /**      *简单的返回“HelloWorld!"字样      *@return返回“HelloWorld!"字样      *@throwsjava.rmi.RemoteException      */     publicStrin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。