科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用RMI和CORBA进行分布式Java编程

用RMI和CORBA进行分布式Java编程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Java远程方法调用(RMI)机制和公用对象请求代理体系(CORBA)是最重要和使用最广泛的两种分布式对象系统。它们在行业中被用于从电子交易到保健医疗的各个领域。

作者:大海 来源:CSDN 2008年2月29日

关键字: CORBA java RMI

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共7页)

请注意FileInterface的以下特征:

  • 它必须声明为public,这样客户机才能加载实现远程接口 的远程对象。
  • 它必须扩展为Remote接口,以满足使该对象成为远程对象的 要求。
  • 这个接口中的每种方法都必须投出一个java.rmi.RemoteException

实现远程接口

下一步是实现接口FileInterface。实现的范例见代码范例2。 请注意,除了实现FileInterface之外,还把FileImpl 类扩展为UnicastRemoteObject。这表示FileImpl类 将用于创建一个单独的、不可复制的远程对象,它使用RMI缺省的基于TCP的传送 通道进行通讯。

代码范例2: FileImpl.java

import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class FileImpl extends UnicastRemoteObject
implements FileInterface {
private String name;
public FileImpl(String s) throws RemoteException{
super();
name = s;
}
public byte[] downloadFile(String fileName){
try {
File file = new File(fileName);
byte buffer[] = new byte[(int)file.length()];
BufferedInputStream input = new
BufferedInputStream(new FileInputStream(fileName));
input.read(buffer,0,buffer.length);
input.close();
return(buffer);
} catch(Exception e){
System.out.println("FileImpl: "+e.getMessage());
e.printStackTrace();
return(null);
}
}
}
开发服务器 

第三个步骤是开发服务器。服务器需要做三件事:

  1. 创建RMISecurityManager的一个实例并安装它
  2. 创建远程对象(在本例中是FileImpl)的一个实例
  3. 在RMI注册表中登记这个创建的对象。实现的范例见代码范例3。

代码范例 3: FileServer.java

import java.io.*;
import java.rmi.*;
public class FileServer {
public static void main(String argv[]) {
if(System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
FileInterface fi = new FileImpl("FileServer");
Naming.rebind("//127.0.0.1/FileServer", fi);
} catch(Exception e) {
System.out.println("FileServer: "+e.getMessage());
e.printStackTrace();
}
}
}
语句Naming.rebind("//127.0.0.1/FileServer", fi)假定RMI 注册表在缺省的端口号1099上运行。
但是,如果RMI注册表在其他端口号上运行, 就必须在这一句中指定端口号。例如,如果RMI注册表在端口4500
上运行,那么 这一句就变成:

Naming.rebind("//127.0.0.1:4500/FileServer", fi)

另外,在这里要着重指出,我们假定rmi注册表和服务器是在同一台电脑上运 行。如果不是这样,只需修改rebind方法中的地址即可。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章