对于 Java/C 来说最好的 ORB 是什么? 使用 CORBA 进行互操作?
我有一个用 Java 编写的客户端-服务器应用程序,使用 CORBA 进行通信。 使用的ORB是orbd,是Java6平台提供的。 我必须将 Java 服务器实现替换为另一个用 C++ 编写的服务器实现。 所以问题是,在 CORBA 库的免费源代码实现中,哪一个与该 ORB 的互操作性更好? 我是否应该替换 Java ORB 并使用 C++ 库提供的 ORB?
目标是在用新的 C++ 实现替换已经运行的服务器时实现轻松、平稳的过渡。 还有什么我应该考虑的吗?
I have a client-server application written in Java using CORBA for the communication. The ORB used is orbd, the one provided by the Java6 platform. I have to replace the Java server implementation with another one written in C++. So the question is, of the free source implementations of CORBA libraries, which one better interoperates with this ORB? Should I replace the Java ORB and also use the ORB provided by the C++ library?
The objective is to have an easy and smooth transition when replacing an already functioning server with the new C++ implementation. Is there anything else that I should take into account?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我已经很长一段时间没有使用 CORBA 来实现 Java 和 C++ 的互操作性了,所以也许我的答案会有点过时。
我发现可以很好地协同工作的是omniORB (C++) 和JacORB (Java)。 您可以在谷歌上搜索这些库,看看它们是否仍然受支持。
我还记得我在使用“原生”Java CORBA 时遇到了很大的问题(Sun Bugs Parade 中有很多 bug,开放了很多年......),但那是在 JDK1.4 的时候,希望现在情况好一点了。 。
It's a long time I didn't use CORBA for Java and C++ interoperability, so maybe my answer will be a bit outdated.
What I found to work very well together was omniORB (C++) and JacORB (Java). You may search for those libraries on google and see if they are still supported.
I also remember I have had big problems with "native" Java CORBA (there are many bugs in Sun Bugs Parade, open for many years...) but that was at JDK1.4 time, hopefully things are a bit better now...
TAO 绝对是最商业化使用的开源 C++ ORB。 它与 JacORB 作为 Java ORB 配合得很好,但您也可以使用 JDK ORB。 如果该软件当前可以与 JDK ORB 配合使用,那么它没有理由不能与 TAO 配合使用。 如果您遇到任何问题,您可以将 JDK ORB 替换为 JacORB。
哦,关于上一篇文章,ZEN Java ORB 已经死了,不再开发。 对于 Java,如果 JDK ORB 不足以满足您的需求,您应该使用 JacORB。
如果您需要商业支持,也可以使用。 我们使用 Remedy IT (http://www.remedy.nl) 来满足我们的支持需求(TAO 和 JacORB) )。
TAO is definitely the most commercially used Open Source C++ ORB. It works very well with JacORB as a Java ORB, but you can use the JDK ORB, too. If the software currently works with the JDK ORB there is no reason why it would not work with TAO. If you encounter any Problems you can drop in replace the JDK ORB with JacORB.
Oh and about the previous post the ZEN Java ORB is dead and is no longer developed. For Java you should use JacORB if the JDK ORB is not good enough for what you do.
If you need commercial support it's available too. We use Remedy IT (http://www.remedy.nl) for our support needs (both TAO and JacORB).
我有一些 Java 客户端,它们将大量数据推送/拉取到用 Mico 编写的 C++ 服务器中。 永远不要与他们有任何问题。
我们也使用 Visibroker 的负载平衡功能,但很快就会摆脱它。
I have some Java clients that push/pull a lot of data into C++ servers that are written in Mico. Never have any issues with them.
We are using Visibroker as well for its load balancing features but will be getting rid of that soon.
C++
你看过 ACE/TAO ORB 吗?
https://www.dre.vanderbilt.edu/~schmidt/TAO.html< /a>
ACE 基本上是一个操作系统抽象层。
TAO 是构建在该抽象之上的 CORBA ORB,因此它是跨平台的。
Java
TAO 的 Java 版本是 ZEN:
http://www.zen.uci.edu/
虽然从技术上讲,您的 ORB 不需要相同。 只要符合 CORBA 协议/规范,它们就应该是可互操作的。 因此,尽管您可以使用 ZEN,但使用 JacORB 也同样容易。
C++
Have you looked at the ACE/TAO ORB.
https://www.dre.vanderbilt.edu/~schmidt/TAO.html
ACE is basically an OS abstraction Layer.
And TAO is a CORBA ORB build on-top of this abstraction so it is cross platform.
Java
The Java version of TAO is ZEN:
http://www.zen.uci.edu/
Though technically your ORBs do not need to be the same. As long as the conform to the CORBA protocol/specification they should be interoperable. So though you can use ZEN it is just as easy to use JacORB.