gpt4 book ai didi

java - CORBA(orbd)联网配置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:20 25 4
gpt4 key购买 nike

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

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

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

最初,我有 orbd.exe、我的 Java 服务器应用程序和我的 Java 客户端应用程序,它们都在同一台机器上运行,并且运行良好。

我还在更分布式的配置中进行了测试,我在另一台机器 (testxp) 上运行 orbd.exe 和我的 Java 服务器应用程序,在另一台机器上运行我的 Java 客户端应用程序,并且可以正常工作。

我的问题如下:我看过的很多文档、网页等都是re. CORBA 有显示两个 ORB 的图表,例如,一台机器上的一个服务器应用程序和一个 ORB,以及一个客户端应用程序和另一个/第二个 ORB 在另一台/第二台机器上运行,这两个 ORB 相互通信:

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

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

所以,我想知道如何在有两个 ORB 的情况下配置测试配置,如上所述?

我可以使用 orbd.exe 执行此操作吗,或者 orbd.exe 是否无法在该类型的配置中工作?

此外,如果可以使用 orbd.exe 完成,我该怎么做?

谢谢,吉姆

最佳答案

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

所以,你是对的,通信是在 ORB 之间进行的。

|客户端应用| <==> ORB1 <--(IIOP)--> ORB2 <==> |服务器应用程序|

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

最后,您可以通过多种方式启动 ORB 之间的通信。 (a) 在 POA 中激活 servant 并调用方法 *poa.object_to_string(servant)*,将字符串写入文件,然后使用 *poa.string_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();

关于java - CORBA(orbd)联网配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com