扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共7页)
prompt> java FileClient hello.txt -ORBInitialPort 2500
注意: 如果要在另一台主机上运行命名服务,请使用
-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所示。
从编码的角度看,很明显RMI更易于使用,因为Java开发者不需要熟悉接口定 义语言(IDL)。但是总的说来,CORBA在以下方面与RMI有所不同:
开发基于分布式对象的应用程序可以在Java中用RMI或JavaIDL(CORBA的一个实现)完成。这两种技术的用法类似,第一步都是定义对象的接口。但是与RMI 用Java定义接口不同,CORBA接口是用接口定义语言(IDL)定义的。可是这就多了一层复杂度,开发者需要熟悉IDL,同样重要的是,还要熟悉它到Java的映射。
在这两种分布式机制中如何选择,取决于当前项目及其需求。我希望此文能为 你开发基于分布式对象的应用程序提供足够的信息,为帮助你选择分布式机制提 供足够的指导。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者