A distributed object technology associated with the Java programming language. It enables an object written in Java to communicate with another Java object on another computer. The objects that communicate must be programmed in Java; this is in contrast to CORBA, another distributed object technology, where the objects can be developed in a variety of programming languages. Remote Method Invocation technology does not use an interface definition language. The term is often abbreviated to RMI.