简体   繁体   中英

What is Remote Method Invocation (RMI)?

I have found many explanations for RMI which appear to refer to different things. These are some conflicting points I have found.

  • (Resolved) RMI is language independent OR RMI is for JAVA only (Thanks @EJP for the reference to RMI/JRMP and RMI/IIOP)

  • RMI and RPC are both ways for distributed systems to communicate with each other OR RPC is a way for distributed systems to communicate with each other and RMI is only for JAVA objects to communcicate with each other.

  • Remote Method Invocation is a broad term that describes how distributed systems communicate with each other OR RMI is a term that specifically describes how Remote Java Objects communicate with each other

Could someone give a definition of RMI in regards to these conflicting points?

What is Remote Method Interface (RMI)?

It isn't. It is Remote Method Invocation.

These are some conflicting points I have found.

RMI is language independent OR RMI is for JAVA only

I'm not aware of any other things called RMI in other languages, and if they existed they could not communicate with Java RMI. I'm curious to know where you read otherwise.

RMI and RPC do the same thing except RMI is object-oriented OR RMI is a way of implementing RPC (Are they the same "level" or is RMI an example of RPC?)

These statements are not in conflict, but RMI isn't really a way of implementing RPC, and again I'm curious where you read otherwise. RMI is remote method calls, on an object , where RPC is remote procedure calls, without objects.

RMI is Remote Method Invocation in JAVA only OR Remote Method Invocation can be implemented with CORBA, .NET Remoting, JAVA RMI or other ways. Could someone give a definition of RMI in regards to these conflicting points?

RMI/JRMP and RMI/JERI are Java only. RMI/IIOP is also Java only, but it can interoperate with CORBA implementations in other languages, subject to various restrictions. .NET Remoting is a different thing altogether.

Re your EDIT:

RMI and RPC are both ways for distributed systems to communicate with each other

Yes.

OR RPC is a way for distributed systems to communicate with each other and RMI is only for JAVA objects to communcicate with each other.

No. RMI is object-oriented RPC. I had already stated that before you asked in your edit.

Remote Method Invocation is a broad term that describes how distributed systems communicate with each other

Can communicate with each other.

OR RMI is a term that specifically describes how Remote Java Objects communicate with each other.

No. RMI is a way for a client to call methods on a remote object, and that statement isn't inconsistent with what's before the 'or'. It is not about two remote objects communicating with each other, except as a special case.

I don't consider these new questions do anything except restate the original confusion.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM