IPC с использованием CORBA с C ++ и Java

Я решил использовать CORBA для связи между службой C ++ и службой Java. Я хочу знать, возможно ли использование CORBA для внешнего вызова библиотеки C ++ и библиотеки Java, как мы вызываем DLL в приложении. Будет очень полезно, если кто-нибудь поможет мне принять правильное решение!

1

Решение

(Кажется, некоторая путаница в моем предыдущем ответе. Я думаю, что лучше дать другой ответ, который излагает более ясную мою точку зрения)

CORBA для взаимодействия между «удаленными» компонентами. Хотя здесь я использовал термин «Удаленный», это не значит, что компоненты должны быть расположены на удаленном компьютере. Они могут быть в одной машине или даже в одном процессе.

Ответ в основном зависит от вашей цели:

Если вы пишете новые библиотеки / компоненты на C ++ и Java и хотите использовать их в одном приложении и иметь компоненты на обоих языках, способные взаимодействовать друг с другом, то да, CORBA может помочь вам в определенной степени. Однако CORBA помогает вам в части коммуникации компонентов. Вам все еще нужно использовать JNI (или другие подобные решения) для вызова / запуска вашего компонента C ++ / Java в приложении Java / C ++. CORBA не собирается помогать вам в этом. Возможно, вы захотите сделать дополнительный POC, чтобы увидеть, не вызовет ли вас наличие двух ORB в одном приложении (один для C ++, другой для Java).

Если вы говорите о: у вас уже есть некоторые существующие библиотеки, написанные на Java и C ++ (конечно, не в CORBA-awared-манере), и вы ищете способ использовать эти библиотеки в вашем новом приложении (на Java / C ++). Тогда нет, CORBA не может вам в этом сильно помочь. Конечно, вы все равно можете написать дополнительный слой, который будет представлять ваши компоненты в CORBA и использовать их, но использование здесь CORBA не облегчит «вызов библиотеки C ++ или библиотеки Java».

Тем не менее, imho, ни один из приведенных выше случаев не является веской причиной для использования CORBA. Если вы просто ищете совместимость библиотек Java и C ++, JNI, или же ЮНА может быть, то, что вы хотите посмотреть.

0

Другие решения

Других решений пока нет …