2013-02-21 54 views
1

我決定使用CORBA在C++服務和Java服務之間進行通信。我想知道是否可以使用CORBA來調用C++庫和java庫,就像我們在應用程序中調用dll一樣。如果有人幫我做出一個好決定,這將是非常有幫助的!使用C++和Java的CORBA的IPC

+0

是的CORBA可以與C++服務和JAVA服務進行通信。請參閱文檔http://docs.oracle.com/javase/1.4.2/docs/guide/corba/index.html – asifsid88 2013-02-21 07:10:13

+0

CORBA是否可以調用外部庫,如DLL或JAR? – Nikhil 2013-02-21 08:12:05

+0

這就像調用一個C++方法一樣,會推薦你在網上閱讀更多關於CORBA的知識,並嘗試一些東西。例如,參見http://www.orbzone.org一般的CORBA和http://www.cs.wustl.edu/~schmidt,其中TAO是C++ ORB – 2013-02-21 10:26:27

回答

0

(好像是我以前的答案有些混亂,我認爲這是更好,我再舉個答案,狀態清除我的觀點)

CORBA是「遠程」成分之間的相互作用。雖然我在這裏使用了術語「遠程」,但並不意味着組件需要位於遠程機器中。他們可以在同一臺機器上,甚至可以在同一個進程中。

答案主要取決於你的目標:

如果您正在使用C編寫新庫/組件++和Java,並且希望在同一個應用程序中使用它們,有兩種語言能夠與每個交互組件其他,那麼是的,CORBA可以在一定程度上幫助你。然而,CORBA正在幫助您進行組件通信。您仍然需要使用JNI(或其他類似的解決方案)在您的Java/C++應用程序中調用/啓動您的C++/Java組件。 CORBA不會幫助你解決這個問題。你可能想要做額外的POC,看看在同一個應用程序中是否有兩個ORB(一個用於C++,一個用於Java)會給你帶來任何問題。

如果您在談論:您已經有了一些現有的庫,它們是用Java和C++編寫的(當然,不是以CORBA-awared的方式編寫的),並且您正在尋找在新的庫中使用這些庫的方法應用程序(以Java/C++)。那麼,不,CORBA不能幫你很多。當然,你仍然可以編寫一個額外的圖層,在CORBA中公開你的組件,並利用它們,但是在這裏使用CORBA不會使「調用C++庫或Java庫」變得更容易。

但是,imho,上述兩種情況似乎都不是使用CORBA的強有力的理由。如果您只是在尋找Java和C++庫的互操作性,那麼JNIJNA可能是您想要查看的內容。