在Java中初始化CORBA ORB时,ORBInitialHost和ORBInitialPort属性表示什么?

时间:2011-12-07 13:06:49

标签: java distributed-computing corba

Properties aProperties = new Properties();
aProperties.put("org.omg.CORBA.ORBInitialHost", "localhost");
aProperties.put("org.omg.CORBA.ORBInitialPort", "2930");
ORB orb = ORB.init((String[]) null, aProperties);
//Get the stringified reference over TCP (String ior)
org.omg.CORBA.Object cmdObject = orb.string_to_object(ior);
this.corba = OGE_CMDHelper.narrow(cmdObject);

org.omg.CORBA.ORBInitialHostorg.omg.CORBA.ORBInitialPort究竟代表什么?它是CORBA命令的接收端点的主机名和地址(已实现对象的位置)吗?或者它是本地CORBA ORB的主机名和端口正在向接收器发送CORBA消息?或者它完全是另一回事?

2 个答案:

答案 0 :(得分:3)

关于the Java SE documentation(已插入新链接)

org.omg.CORBA.ORBInitialHost

运行提供初始引导服务的服务器或守护程序的计算机的主机名,例如名称服务。此属性的默认值是localhost for applications。对于applet,它是applet主机,相当于getCodeBase()。getHost()。

org.omg.CORBA.ORBInitialPort

初始命名服务侦听的端口。默认值为900.

答案 1 :(得分:2)

信不信由你,它们代表客户端ORB将尝试联系的命名服务的主机/端口对(命名服务基本上是用于CORBA对象引用的电话簿)。您可以使用它in this diagram查看它们。

奇怪的是,这些属性从未被OMG标准化,但由于某些原因,Sun ORB将它们打包在org.omg.CORBA内并使它看起来像是标准化的(参见{{3}底部的小花絮}})。如果您真的对阅读旧的CORBA历史感兴趣,那么this IBM page会对它们进行一些讨论。

在CORBA OMG issue规范中定义了引导客户端查找命名服务问题的标准化方法,如果可以的话,这就是你应该使用的方法。