原文网址:
http://docs.oracle.com/javase/6/docs/platform/rmi/spec/rmiTOC.html
1.1 概述
在目前的程序设计中,分布式计算常常会被提及。所谓分布式计算,它代表一种程序设计模式,其中的程序,处理的数据和实际的计算都可以广泛的分布于网络之上,换言之,分布式计算允许远程获得商业逻辑和数据,这既是为了平衡各个计算机的处理能力,也归因于应用程序本身的特点。分布式对象技术是近几年发展起来的技术,目录流行的几种分布式对象技术有CORBA,Java RMI和MS的DCOM技术。
Java Remote Method invocation(RMI-Java远程方法调用)允许您使用Java编写分布式对象,不同的Java虚拟机(JVM)之间对象间的通讯。这些JVM可以在一台或者多台计算机上,使得应用程序可以远程调用方法,共享各个系统的资源和处理能力。RMI为采用Java对象的分布式计算提供了简单而直接的途径。它将Java的安全性和可移植性等强大功能带给分布式计算。
1.2 优点
从最基本的角度看,RMI是Java的远程过程调用(RPC)机制。与传统的RPC系统相比,RMI具有若干优点,因为它是Java面向对象方法的一部分。
RMI的主要优点如下:
面向对象:
RMI可将完整的对象作为参数和返回值进行传递,而不仅仅是预定义的数据类型。对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能。您可以将类似Java Hashtable这样的复杂类型作为一个参数进行传递。而在目前的RPC系统中,您只能依靠客户机将此类对象分解与基本数据类型,然后传递这些数据类型,最后在服务器端重新创建对象。
可移动属性:
RMI可将属性(类实现程序)从客户机移动到服务器,或者从服务器移动到客户机。例如,您可以定义一个检查雇员开支报告的接口,以便察看雇员是否遵守了公司目前实行的政策。在开支报告创建后,客户机就会从服务器端获得实现该接口的对象。如果政策发生变化,服务端就会开始返回使用了新政策的该接口的另一个实现程序。您不必在用户系统上安装任何新的软件。
安全:
RMI使用Java内置的安全机制保证下载执行程序时用户系统的安全。RMI使用专门为保护系统免遭恶意小应用程序侵害而设计的安全管理程序,可保护您的系统和网络免遭潜在的恶意下载程序的破坏。在情况严重时,服务器可拒绝下载任何可执行程序。
便于编写和使用:
RMI使得Java远程服务程序和访问这些服务程序的Java客户程序的编写工作变得轻松,简单。服务程序大约用三行指令宣布本身是服务程序,其他方面则与任何其他Java对象类似。
可连接现有/原有的系统:
RMI可通过Java的本地方法接口(JNI)与现有系统进行交互。利用RMI和JNI,您就能用Java语言编写客户端程序,还能使用现有的服务端程序。在使用RMI/JNI与现有服务器连接时,您可以有选择地用Java重新编写服务程序的任何部分,并使新的程序充分发挥Java的功能。
类似地,RMI可利用JDBC,在不修改使用数据库的现有非Java源代码的前提下与现有关系数据库进行交互。
分布式垃圾回收:
RMI采用其分布式垃圾回收功能回收不再被网络中任何客户程序所引用的远程服务对象。与Java虚拟机内部的垃圾回收类似,分布式垃圾回收功能允许用户根据自己的需要定义服务器对象,并且明确这些对象在不再被客户机引用时会被删除。
并行计算:
RMI采用多线程处理方法,可使您的服务器利用这些Java线程更好地并行处理客户端的请求。Java分布式计算解决方案:RMI从JDK1.1开始就是Java平台的核心部分,因此,它存在于任何一台1.1 Java虚拟机中。所有的RMI系统均采用相同的公开协议,所以,所有Java系统均可直接相互对象,而不必事先对协议进行转换。
1.3简单介绍CORBA和DCOM
1.3.1 CORBA:
CORBA是OMG(Object Management Group)提出的一个分布式对象技术的规范。CORBA标准主要分为三个层次:对象请求代理,公共对象服务和公共设施。最底层是对象请求代理ORB,它规定了分布对象的定义(接口)和语言机制,实现对象间的通讯和互操作,是分布式对象系统中的软总线;在ORB上定义了很多公共服务,可以提供诸如并发服务,名字服务,事务(交易)服务,安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定对象有效协作所需的协定规则。总之,CORBA的特点是大而全,互操作性和开放性非常好。目前CORBA的最新版本是2.3.CORBA 3.0也已基本完成,增加了有关
Internet集成和Qos控制等内容。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢。
1.3.2 DCOM
DCOM是Microsoft与其他业界厂商合作提出的一种分布构件对象模型(Distributed Component Object Model).DCOM起源于动态数据交换(DDE)技术,对象连接与嵌入OLE就是从DDE引申而来的。随后,Microsoft引入了构件对象模型COM,形成了COM对象之间实现互操作的二进制标准。基于COM,微软进一步将OLE技术发展到OLE2.在OLE2中,出现了我们今天熟悉的拖-放技术以及OLE自动化。DCOM是COM在分布式计算方面的自然延续,它为分布在网络不同节点的两个COM构件提供了互操作的基础结构。
当然,按照微软一贯的产品开发逻辑,微妙的思想都退到了幕后,而提供给开发者的是一个以Wizard方式生成各种应用的可视化开发环境。
分享到:
相关推荐
第一章概述中,RMI被定义为Java的远程过程调用机制,允许不同Java虚拟机之间的对象通信,跨越单台或多台计算机。这种技术促进了分布式对象的使用,使得应用程序能够远程调用方法并共享资源。RMI的优势在于它的面向...
Java Management Extensions(JMX)1.4规范是Java平台中用于管理系统和应用程序的重要技术。它提供了管理和监控Java应用程序、设备和服务的标准框架。本章节主要介绍了JMX的基本概念、架构以及核心组件。 ### 1. ...
JAVA EE不是一个编程语言,而是一个标准中间件体系结构,它为开发和部署企业级应用提供了规范和API。 **J2EE产生的背景** J2EE的诞生是为了解决传统应用程序模型中的一些问题。在单层和两层架构中,客户端承担了...
- 最后一章针对TongWeb日常维护中可能遇到的典型问题进行了归纳总结,并提供了具体的解决方案。 - 如日志文件清理、web.xml更新不生效、安装报错、启动异常、端口冲突、JSP更新无效等问题的处理方法。 通过以上解析...
### 第9章 JavaBean和RMI - **内容概览**:介绍JavaBean基础、开发简介,RMI基础及EJB规范简介。 - **教学要求**:学生应理解JavaBean基础。 - **重点与难点**:重点在于JavaBean和RMI基础;难点在于JavaBean开发...
书籍的ISBN号码为7-81082-503-8,第一次印刷于2005年5月,定价为34.00元。 该书的出版得到了江苏省新世纪高等教育教学改革工程的支持,该工程旨在网络技术与信息处理专业人才培养规格方面进行改革。在内容上,该...
在本章“Weblogic培训PPT”的第二部分中,我们主要关注如何设置WebLogic服务器环境。WebLogic服务器是由BEA Systems(后来被Oracle收购)开发的一款企业级Java应用服务器,它实现了Java Platform, Enterprise ...
#### 第一章 中间件产生背景与分布式环境 ##### 一、中间件的基本概念 1. **中间件定义**:中间件是位于系统软件(如操作系统和网络软件)与应用软件之间的一种软件层。它的主要功能是使不同的应用软件能够跨越...
第一部分 JSP 技术与J2EE 技术 第1 章 JavaBeans 组件技术 1.1 什么是JavaBeans 1.2 JSP 中如何使用JavaBeans 1.3 JavaBeans 的Scope 属性 1.4 JavaBeans 应用实例 1.5 本章小结 第2 章 Enterprise JavaBeans 2.1 ...
#### 第一章 SQL Server 基本操作 ##### SQL Server 操作须知 1. **安装路径**: 安装文件及其安装路径都不能包含中文字符,否则可能会导致安装失败或出现其他错误。 2. **版本有效期**: 如果安装后一段时间内能够...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 总结...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...
2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 ...