我决定使用CORBA在C++服务和java服务之间进行通信。我想知道有没有可能使用CORBA来调用C++库和java库,就像我们在应用程序中调用dll一样。如果有人能帮我做出一个好的决定,那将是非常有帮助的!
发布于 2013-12-09 14:49:31
(在我之前的回答中似乎有些混乱。我认为我最好给出另一个答案,哪个更清楚我的观点。)
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库”变得更容易。
然而,imho,以上两种情况似乎都不是使用CORBA的有力理由。如果您只是在寻找Java和C++库、JNI或JNA之间的互操作性,那么您可能需要研究一下。
https://stackoverflow.com/questions/14996429
复制相似问题