在JEE企业级开发中,需要将整个应用系统分解成若干子系统并运行于相应的部门当中,以提高整个系统的应用效率和可维护性及安全性。由于不同的工作由不同的系统来完成,在它们之间需要一种安全便利的通讯机制。从面向对象的角度来说需要一种分布式的对象模型,使得运行于不同主机之间的对象能够互相进行方法调用。RMI 正是基于Java 的能够满足上述计算的分布式计算模式,实现了在运行于不同虚拟机的对象之间的方法调用。
RMI应用程序由服务器端程序和客户端程序组成。服务器端程序会创建多个对象实例,等待客户端程序调用。称这些对象实例为远程对象。在Java中远程对象必然是要实现Remote接口的类的实例。客户端程序通过RMI机制从服务器中得到一个或多个远程对象的引用,并调用其中的方法。RMI在这其中所起的作用就是为服务器端程序和客户端程序提供一种远程通讯的机制。
开发RMI应用
一、远程对象的本地接口
二、远程对象实现类
三、RMI 服务器类
四、RMI 客户类
RMI应用已经编写好了,编译这个RMI应用步骤如下:
(1) 编译RMI 客户和服务器这将自动编译远程对象的本地接口和远程对象实现,命令行代码如下:
javac RemClient.java
javac RemServer.java
(2)生成客户存根模块(stub)和服务器框架(skeleton)。
rmic RemImpl
这将构造RemImpl_Stub.class 和RemImpl_Skeleton.class。
(3) 请将RemI.class 、RemClient.class 和RemImpl_Stub.class 拷贝到RMI 客户机,将
Rem.class 、RemImpl.class 、RemServer.class 和RemImpl_Skeleton.class 拷贝到RMI 服务器。
(4)启动RMI 注册程序在命令行状态下运行rmiregistry 程序,rmiregistry 程序
在JDK 的bin 文件夹内。这个程序在服务器上执行不论有多少个RMI 远程对象需要运行,本操作只需做一次。
(5)运行RMI 服务程序在命令行下执行下面的命令:
java RemServer
这一步的作用是启动RMI 服务器(在服务器上执行)。
在命令行下执行下面的命令:
java RemClient
这一步的作用是启动RMI 客户程序(在客户端计算机上执行)。 输出结果为:
java快车
www.javakc.com