工控机采用CORBA、C++和Java

IPC using CORBA with C++ and Java

本文关键字:C++ Java CORBA 工控机      更新时间:2023-10-16

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

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的互操作性,那么您可能想要研究一下。