Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CORBA(orbd)网络配置?_Java_Corba - Fatal编程技术网

Java CORBA(orbd)网络配置?

Java CORBA(orbd)网络配置?,java,corba,Java,Corba,我刚开始和CORBA合作。基本上,我必须实现一个充当CORBA客户机的Java应用程序 在这一点上,我主要使用Sun JDK(JDK6)工具,包括idlj.exe(编译我得到的IDL)和orbd.exe(用于测试我的代码),到目前为止,我已经能够使用idlj和IDL创建Java类,并且我还编写了一个测试服务器应用程序和测试客户机应用程序,这两个应用程序现在都在工作(我必须编写小型服务器应用程序,以便测试我的客户端应用程序) 正如我上面所说,我正在使用orbd.exe作为测试的ORB 最初,我有o

我刚开始和CORBA合作。基本上,我必须实现一个充当CORBA客户机的Java应用程序

在这一点上,我主要使用Sun JDK(JDK6)工具,包括idlj.exe(编译我得到的IDL)和orbd.exe(用于测试我的代码),到目前为止,我已经能够使用idlj和IDL创建Java类,并且我还编写了一个测试服务器应用程序和测试客户机应用程序,这两个应用程序现在都在工作(我必须编写小型服务器应用程序,以便测试我的客户端应用程序)

正如我上面所说,我正在使用orbd.exe作为测试的ORB

最初,我有orbd.exe、我的Java服务器应用程序和我的Java客户机应用程序,它们都运行在同一台机器上,这是可行的

我也在一个更分布式的配置中进行了测试,我在另一台机器上运行了orbd.exe和我的Java服务器应用程序(testxp),在另一台机器上运行了我的Java客户端应用程序,这是可行的

我的问题如下:我所看到的关于CORBA的许多文档、网页等都有图表显示了两个ORB,例如,一台机器上有一个服务器应用程序和一个ORB,另一台/第二台机器上有一个客户端应用程序和另一个/第二个ORB,两个ORB相互通信:

客户端应用==>ORB1-->ORB2==>服务器应用

然而,到目前为止,在我的测试中,使用orbd.exe作为ORB,我只使用了一个ORB

所以,我想知道如何配置一个测试配置,其中有两个ORB,如上所述

我可以使用orbd.exe来执行此操作,还是orbd.exe在该类型的配置中不起作用

另外,如果可以使用orbd.exe实现,我该如何实现

谢谢,
Jim

CORBA是一种用于在网络中通信应用程序的体系结构和基础设施。ORB是对IIOP调用进行序列化(封送)和反序列化(解组)的组件。使用CORBA,您可以用C#编写代码(使用)并用Java与服务器通信

所以,你是对的,通讯是在球体之间进行的

|客户端应用程序| ORB1或|服务器应用程序|

ORBD是一个带有命名服务器的ORB。您最好只有一个名称服务,您可以阅读有关名称服务的内容

最后,有很多方法可以启动ORB之间的通信。(a)在POA中激活SERVICE并调用方法*POA.object\u to_string(SERVICE)*,将字符串写入文件,然后使用*POA.string\u to_object(fileAsString)*在客户机中读取它。(b)定义服务器主机和端口并使用corbaloc。(c)订阅名称服务器(最佳选项)

在测试中尝试使用三个进程:服务器、客户端和服务器

PS:我喜欢JacORB,然后是JDK Orb

编辑: 添加一些代码以帮助:

orb = org.omg.CORBA.ORB.init(args, props);
org.omg.CORBA.Object obj = this.orb.resolve_initial_references("RootPOA");
this.rootPOA = POAHelper.narrow(obj);
POAManager manager = this.rootPOA.the_POAManager();
manager.activate();