科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

关键字: java CORBA RMI

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

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

  1. 运行客户机假定命名服务在端口2500上运行,那么现在就可以使用 以下命令来运行客户机了。

    prompt> java FileClient hello.txt -ORBInitialPort 2500

    其中hello.txt是我们要从服务器下载的文件。

注意: 如果要在另一台主机上运行命名服务,请使用 -ORBInitialHost/CODE>选项,指定它在哪台主机上运行。例如,如果 要在名为gosling的主机的端口号4500上运行命名服务,则使用 以下命令启动客户机:

prompt> java FileClient hello.txt -ORBInitialHost gosling -ORBInitialPort 4500


另一种做法是,在代码级使用属性指定这些选项。所以除了像下面这样初始化 ORB:

ORB orb = ORB.init(argv, null);

还可以通过指定CORBA服务器所在机器(名为gosling)和命名服务的端口号( 2500)来进行初始化,如下所示:

  
Properties props = new Properties();
props.put("org.omg.CORBA.ORBInitialHost", "gosling");  
props.put("orb.omg.CORBA.ORBInitialPort", "2500");  
ORB orb = ORB.init(args, props);  

练习

在文件传输应用程序中,客户机必须预先知道要下载的文件的名称(RMI和 CORBA中都是如此)。可是并未提供列出服务器上可用文件的方法。作为练习,你也许希望改进这个应用程序,添加一个列出服务器上可用文件的方法。另外,你可能不想使用命令行客户机,而开发一个基于GUI的客户机。在客户机启动时,它调用服务器上的一个方法,获得文件列表,然后弹出一个菜单,显示可用的文 件,用户可以从中选择一个或多个要下载的文件,如图1所示。

 

CORBA与RMI的比较

从编码的角度看,很明显RMI更易于使用,因为Java开发者不需要熟悉接口定 义语言(IDL)。但是总的说来,CORBA在以下方面与RMI有所不同:

  • CORBA接口用IDL定义,RMI接口用Java定义。RMI-IIOP允许你用Java定义 所有接口(请参见 RMI-IIOP)。
  • CORBA支持in和out参数,而RMI不支持,因为 本地对象是通过复制传送的,远程对象是通过引用传送的。
  • CORBA 被特意设计成与语言不相关。举例来说,这意味着可以用Java编写一 些对象,用C++编写其他对象,而它们仍然可以协同工作。所以,作为不同编程语言间的桥梁,CORBA是一种理想机制。与此不同,RMI为一种单独的语言设计,所有对象都可用Java编写。但是请注意,用RMI-IIOP有可能达到协同工作的能 力。
  • CORBA对象不能进行碎片收集。正如我们前面说的,CORBA与语言无关,某 些语言(比如C++)不支持碎片收集。可以认为这是项缺点,因为CORBA对象一旦创建,就一直存在,直至被除去为止,而决定何时除去一个对象的工作量可 不小。与此相反,RMI对象会自动收集碎片。

结论

开发基于分布式对象的应用程序可以在Java中用RMI或JavaIDL(CORBA的一个实现)完成。这两种技术的用法类似,第一步都是定义对象的接口。但是与RMI 用Java定义接口不同,CORBA接口是用接口定义语言(IDL)定义的。可是这就多了一层复杂度,开发者需要熟悉IDL,同样重要的是,还要熟悉它到Java的映射。

在这两种分布式机制中如何选择,取决于当前项目及其需求。我希望此文能为 你开发基于分布式对象的应用程序提供足够的信息,为帮助你选择分布式机制提 供足够的指导。

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

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

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