Calling C++ from Session Bean

Hey All, I have an application set up in JBoss and I need my session beans to make calls to a library of C/C++ functions used for some heavy computation. I've looked around on the web and other postings, but I'm still confused as to the best way to go. I've read that JNI could be the way to go but that it leads to a lot of problems, I've also read that CORBA is an option but it's an old and dying technology that's very difficult to implement. Some have suggested setting up a C/C++ application in a separate process and then passing data between the EJB and C/C++ using sockets or XML-RPC. What is the best way to go? I know each suggestion will have its pros and cons, so I guess i'm looking to find out what are all my options in this case and then what are the strengths and weaknesses of each, and for what situation is a particular solution best suited for.  Thanks in advance.
LVL 2
miggetyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

anilallewarCommented:
Its a difficult one to answer. The best way to go would be using web-services to talk between your EJBS and the C/C++ functions that are opened as Web services. This is the most interoperable way but this would kill performance.

XML-RPC is a human readable, but inefficient, means of transporting information plus your C/C++ client would need to be changed to allow HTTP requests fror XML-RPC.

The other option that I know of is using RMI for the JNI calls if your C/C++ functions are on another server and the other server can have Java installed.

http://docstore.mik.ua/orelly/java-ent/jenut/ch03_07.htm
0
miggetyAuthor Commented:
Thanks anilallewar, that's a tremendous help! Should I even consider CORBA or is that standard completely dead? After reading your post i think RMI/JNI is the direction i'm going to head in. Thanks again.
0
anilallewarCommented:
CORBA is an integration technology, not a programming technology. It is specifically designed to be the glue that binds disparate programming technologies together; and yes it is not used so much but it wont be obsolete.

CORBA is a standard but again it will be a performance hit because of the standards involved. RMI/JNI would definitely be way ahead in terms of performance.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
miggetyAuthor Commented:
Thanks again anilallewar!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java EE

From novice to tech pro — start learning today.