views:

217

answers:

2

I am studying for a final and have a few questions about RMI and CORBA. These are discussion questions taken from a study guide so there is no real application context around them.

  1. Why are RMI and CORBA based on TCP? The question states to answer in terms of invocation semantics.

What I have thought of so far is that TCP is going to be more reliable than UDP and in RMI/CORBA, we want network reliability. I also read somewhere that TCP is deeply embedded in the native Java networking classes. I am not as confident in this statement since CORBA can be implemented in any language.

  1. Discuss the difference between the RMI and CORBA name service.

I am a little confused about this question because what I have read so far is that RMI and CORBA are converging technologies and RMI can access CORBA objects. How I understand it now, the name services seem to be very similar and any differences are not worth noting.

  1. Why does RMI need dynamic invocation explicitly unlike CORBA?

I havent came up with anything.

I realize I am asking three different questions, but they all seem to related.

+4  A: 

RMI/CORBA based on TCP: They both are essentially distributed object invocation mechanisms, and it's easier just to build this on top of a reliable transport where you don't have to worry about data being dropped. If they built it on UDP, they would have to have a lot of other mechanism to worry about retransmission and duplicates, etc.

RMI/CORBA name service: Look more deeply here. The CORBA name service is called COS Naming, and the RMI name service is JNDI. They are at different levels of architecture. JNDI is essentially a set of APIs and COS naming is both APIs (as expressed through IDL) and a wire protcocol definition.
Dynamic invocation. I'm not sure of the meaning of this question. Both technologies essentially allow you to call methods on objects remotely.

Hope this helps a little.

Francis Upton
and it is to be noted, that RMI could use the CORBA protocol as well
Bozho
True enough, that was added later though (having been around when they were both introduced)
Francis Upton
-1 - CORBA is not just a wire protocol. Each service is specified in IDL and the IDL can be translated to an API in one of a number of languages ... including Java.
Stephen C
Of course, I stand corrected.
Francis Upton
Does the dynamic invocation have anything to do with RMI being able to pass new code (objects) as opposed to just primitive types with CORBA?
Brad
I don't think so, but you are right, RMI can pass objects by value and reference, whereas CORBA (IIOP) supports only objects by reference.
Francis Upton
A: 

Just google it.

alygin
-1 - rude answer
Stephen C