RMI and CORBA Differences?
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.
- 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.
- 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.
- Why does RMI need dynamic in开发者_高级运维vocation explicitly unlike CORBA?
I havent came up with anything.
I realize I am asking three different questions, but they all seem to related.
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.
精彩评论