RMI的基本概念和编程简介

RMI的基本概念和编程简介

ID:37491057

大小:126.50 KB

页数:7页

时间:2019-05-24

RMI的基本概念和编程简介_第1页
RMI的基本概念和编程简介_第2页
RMI的基本概念和编程简介_第3页
RMI的基本概念和编程简介_第4页
RMI的基本概念和编程简介_第5页
资源描述:

《RMI的基本概念和编程简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RMI的基本概念和编程简介 RMI的基本概念JavaRMI(RemoteMethodInvocation)--Java的远程方法调用是Java所特有的分布式计算技术,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法,从而使Java编程人员可以方便地在网络环境中作分布式计算。面向对象设计要求每个任务由最适合该任务的对象执行,RMI将这个概念更深入了一步,使任务可以在最适合该任务的机器上完成。RMI定义了一组远程接口,可以用于生成远程对象。客户机可以象调用本地对象的方法一样用相同的语法调用远程对象。RMI

2、API提供的类和方法可以处理所有访问远程方法的基础通信和参数引用要求的串行化。  远程方法调用类似于Sun公司1985年提出的远程过程调用(RPC)特征。RPC也要求串行化参数和返回数值数据,但由于没有涉及对象,情况比较简单。Sun开发了外部数据表示(XDR)系统,支持数据串行化。RPC和RMI之间的一个重要差别是RPC用快速而不够可靠的UDP协议,RMI用低速而可靠的TCP/IP协议。  远程方法调用(RMI)和CORBA都是分布式计算技术,在进行分布式时各有其优缺点,为了有助于了解RMI的特点和用途,有必要讨论一下CORBA和RM

3、I的区别。  CORBA(CommonObjectRequestBrokerArchitecture)是OMG的ObjectManagementArchitecture(对象管理结构),它是面向对象的分布式系统建立所依据的标准。CORBA被设计成一个能供所有编程语言使用的一个开放性说明,就是说一个机器上的Java客户可以要求另一个用SmallTalk或C++的机器服务。正是由于这种语言的独立性使得CORBA这么灵活和吸引人。为了适应语言独立性,CORBA采用了非常通用的标准作为其接口。在不同的语言中,远程调用、签名和对象的引入有各自不

4、同的定义,所以CORBA必须尽可能的中立和开放。正是这种通用性是CORBA的一个弱点。当开发人员都采用CORBA时,他们要用一种新的标准定义语言接口,它要求开发者学习新的编程接口,从而减小了远程模型的透明性。  RMI是为仅在Java对Java的分布式计算中而开发的。远程调用的标准是为了Java和应用Java的自然Java签名和调用而开发的,这使得RMI对Java的开发者相当透明而且易于实现。RMI用Java语言紧密集成从而同CORBA相比能够提供非常好的容错能力及对异常的处理。尽管Java的RMI标准不像CORBA那样语言独立,但J

5、ava本身是一个独立的平台,这就使RMI在跨平台的分布软件开发中是一个很好的选择。  RMI是Java语言在分布式计算上的基本模型,很多Java的分布式系统,包括我们要学习的EJB,都是建立在RMI的思想上的。RMI系统的一般结构RMI系统包括3层,端头/框架层(Stubs/Skeletons)、远程应用层(RemoteReferenceLayer)和传送层(Transport),如图所示:  客户机调用远程方法时,请求用客户机的端头调用。客户机引用端头作为远程机上对象的代表。上图所示的所有基础功能在客户机上都看不到。端头代码由rmi

6、c编译器长生,并用远程引用层(RRL)将方法调用请求传递到服务器对象。  1)端头(Stub)  端头就是代表远程对象的客户机方代理,定义远程对象版本支持的所有接口。端头在客户机上运行的程序像本地对象一样引用,从客户机来看与本地对象相似,它还保持与服务器方对象的连接。客户机方的远程应用层返回端头的调动流。客户方的RRL用调用流与服务器方的RRL通信。端头将参数数据串行化,将串行化的数据传递到调动流。执行完远程方法调用后,RRL将串行化的返回值送回端头,负责反串行化。  2)框架(Skeleton)  框架是与服务器方RRL接口的服务器

7、方构件。框架接受客户机方RRL的方法调用请求。服务器方RRL要反调动发送到远程方法的任何变元。然后框架调用服务器方的实际对象实现。框架还负责接收来自远程对象的返回值并将其调动到调动流中。  3)远程引用层(RemoteReferenceLayer)  远程引用层(RRL)负责维护不与具体端头或框架模型相关的独立应用协议。这个灵活性使RRL的改变不会影响另外两层。RRL涉及低级传送接口,负责向端头和框架层提供流。  RRL通过传送层用客户机方面和服务器方构件通信。客户机方构件包含远程服务器的特定信息。这个信息传递到服务器方构件,因此只依

8、赖于服务方RRL。服务器方RRL负责引用语法和处理这些语法之后再向框架发送远程方法调用。客户机和服务器方构件之间的通信由传送层处理。  4)传送层(TransportLayer)  传送层负责建立并维护客户机和服务器之间

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

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

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