RMI规范--第一章

来源:互联网 发布:乐町在淘宝上是正品吗 编辑:程序博客网 时间:2024/06/05 14:53

1.1概述

在目前的程序设计中,分布计算常常会被提及。所谓分布计算,它代表着一种程序设计模式,其中的程序,处理的数据和实际的计算都可以广泛的分布于网络之上,换言之,分布计算允许远程获得商业逻辑(logic)和数据,这既是为了平衡各个计算机的处理能力,也归因于应用程序本身的特点。分布式对象技术是近几年发展起来的技术,目前流行的几种分布式对象技术有CORBA,Java RMI和MS的DCOM技术。

Java Remote Method Invocation ( RMI -- Java远程方法调用)允许您使用Java编写分布式对象,不同的Java虚拟机(JVM)之间进行对象间的通讯。这些JVM可以在一台者多台计算机上,使得应用程序(Application)可以远程调用方法,共享各个系统的资源和处理能力。 RMI为采用Java对象的分布式计算提供了简单而直接的途径。它将Java的安全性和可移植性等强大功能带给了分布式计算。

1.2优点

从最基本的角度看,RMI是Java的远程过程调用(RPC)机制。与传统的RPC系统相比,RMI具有若干优点,因为它是Java面向对象方法的一部分。

RMI的主要优点如下:

面向对象:
RMI可将完整的对象作为参数和返回值进行传递,而不仅仅是预定义的数据类型。对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能。您可以将类似Java HashTable这样的复杂类型作为一个参数进行传递。而在目前的RPC系统中,您只能依靠客户机将此类对象分解成基本数据类型,然后传递这些数据类型,最后在服务器端重新创建对象。

可移动属性:
RMI可将属性(类实现程序)从客户机移动到服务器,或者从服务器移到客户机。例如,您可以定义一个检查雇员开支报告的接口,以便察看雇员是否遵守了公司目前实行的政策。在开支报告创建后,客户机就会从服务器端获得实现该接口的对象。如果Policy发生变化,服务器端就会开始返回使用了新政策的该接口的另一个实现程序。您不必在用户系统上安装任何新的软件.

安全:
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从JDK 1.1开始就是Java平台的核心部分,因此,它存在于任何一台1.1 Java虚拟机中。所有RMI系统均采用相同的公开协议,所以,所有Java系统均可直接相互对话,而不必事先对协议进行转换。

1.3简单介绍CORBA和DCOM

1.3.1 COBRA:
CORBA是OMG(Object Management Group)提出的一个分布式对象技术的规范。 COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理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方式生成各种应用的可视化开发环境