1

我决定使用 CORBA 在 C++ 服务和 java 服务之间进行通信。我想知道是否可以使用 CORBA 来调用 C++ 库和 java 库,就像我们在应用程序中调用 dll 一样。如果有人帮助我做出正确的决定,那将非常有帮助!

4

1 回答 1

0

(在我之前的回答中似乎有些混乱。我认为我最好给出另一个答案,以更清楚地说明我的观点)

CORBA 用于“远程”组件之间的交互。虽然我在这里使用了“远程”一词,但这并不意味着组件需要位于远程机器中。它们可以在同一台机器中,甚至可以在同一进程中。

答案主要取决于您的目标:

如果您正在用 C++ 和 Java 编写新的库/组件,并且您想在同一个应用程序中使用它们并且让这两种语言的组件能够相互交互,那么是的,CORBA 可以在一定程度上帮助您。然而 CORBA 在组件通信部分为您提供帮助。您仍然需要使用 JNI(或其他类似解决方案)在 Java/C++ 应用程序中调用/启动 C++/Java 组件。CORBA 不会在这方面为您提供帮助。您可能需要做额外的 POC 以查看在同一个应用程序中有两个 ORB(一个用于 C++,一个用于 Java)是否会给您带来任何问题。

如果您正在谈论:您已经有一些用 Java 和 C++ 编写的现有库(当然,不是以 CORBA 感知的方式),并且您正在寻找在新应用程序中使用这些库的方法(在 Java /C++)。那么不,CORBA 在这方面帮不了你太多。当然,您仍然可以编写一个额外的层来在 CORBA 中公开您的组件并使用它们,但是在这里使用 CORBA 并不会使“调用 C++ 库或 Java 库”变得更容易。

然而,恕我直言,以上两种情况似乎都不是使用 CORBA 的有力理由。如果您只是在寻找 Java 和 C++ 库的互操作性,那么JNIJNA可能是您想要研究的东西。

于 2013-12-09T06:49:31.050 回答