7 Stimmen

Welches ist der beste ORB für die Java/C++-Interoperation mit CORBA?

Ich habe eine Client-Server-Anwendung in Java geschrieben, die CORBA für die Kommunikation verwendet. Der verwendete ORB ist orbd, der von der Java6-Plattform bereitgestellt wird. Ich muss die Java-Server-Implementierung durch eine andere in C++ geschriebene ersetzen. Die Frage ist also, welche der quelloffenen Implementierungen der CORBA-Bibliotheken besser mit diesem ORB interagiert. Sollte ich den Java-ORB ersetzen und auch den ORB verwenden, der von der C++-Bibliothek bereitgestellt wird?

Das Ziel ist ein einfacher und reibungsloser Übergang beim Ersetzen eines bereits funktionierenden Servers durch die neue C++-Implementierung. Gibt es sonst noch etwas, das ich berücksichtigen sollte?

7voto

jfpoilpret Punkte 10291

Es ist lange her, dass ich CORBA für die Interoperabilität zwischen Java und C++ verwendet habe, so dass meine Antwort vielleicht etwas veraltet sein wird.

Ich habe festgestellt, dass omniORB (C++) und JacORB (Java) sehr gut zusammenarbeiten. Sie können nach diesen Bibliotheken auf Google suchen und sehen, ob sie noch unterstützt werden.

Ich erinnere mich auch, dass ich große Probleme mit "nativen" Java CORBA hatte (es gibt viele Bugs in Sun Bugs Parade, offen für viele Jahre...), aber das war zu JDK1.4 Zeit, hoffentlich sind die Dinge jetzt ein bisschen besser...

3voto

lothar Punkte 19157

TAO ist definitiv der am häufigsten kommerziell genutzte Open Source C++ ORB. Es funktioniert sehr gut mit JacORB als Java ORB, aber Sie können auch den JDK ORB verwenden. Wenn die Software derzeit mit dem JDK ORB funktioniert, gibt es keinen Grund, warum sie nicht auch mit TAO funktionieren sollte. Wenn Sie auf Probleme stoßen, können Sie den JDK ORB durch JacORB ersetzen.

Ach ja, und zum vorherigen Beitrag: Der ZEN Java ORB ist tot und wird nicht mehr weiterentwickelt. Für Java sollten Sie JacORB verwenden, wenn der JDK ORB nicht gut genug ist für das, was Sie tun.

Wenn Sie kommerzielle Unterstützung benötigen, ist diese ebenfalls verfügbar. Wir verwenden Remedy IT ( http://www.remedy.nl ) für unseren Unterstützungsbedarf (sowohl TAO als auch JacORB).

1voto

Fortyrunner Punkte 12559

Ich habe einige Java-Clients, die eine Menge Daten in C++-Server schieben/ziehen, die in Mico geschrieben sind. Ich hatte nie irgendwelche Probleme mit ihnen.

Wir verwenden Visibroker auch wegen seiner Lastausgleichsfunktionen, werden es aber bald wieder abschaffen.

1voto

Martin York Punkte 245363

C++

Haben Sie sich den ACE/TAO ORB angesehen.
https://www.dre.vanderbilt.edu/~schmidt/TAO.html

ACE ist im Grunde eine Betriebssystem-Abstraktionsschicht.
Und TAO ist ein CORBA ORB, der auf dieser Abstraktion aufbaut und somit plattformübergreifend ist.

Java

Die Java-Version von TAO ist ZEN:
http://www.zen.uci.edu/

Technisch gesehen müssen Ihre ORBs jedoch nicht identisch sein. Solange sie mit dem CORBA-Protokoll/der CORBA-Spezifikation konform sind, sollten sie interoperabel sein. Obwohl Sie also ZEN verwenden können, ist es genauso einfach, JacORB zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X