RMI - Remote Method Invocation

Il Remote Method Invocation (RMI) (“Invocazione dei metodi remoti”) è una tecnologia di programmazione distribuita specifica per la macchina virtuale Java. E’ un equivalente (orientato a oggetti) del Remote Procedure Calls (RPC) che è intrinsicamente procedurale.

Oltre all’evidente vantaggio di poter eseguire dei comandi su una macchina remota (in realtà anche altri processi sulla stessa macchina), e ottenere i risultati, RMI ha la posibilità anche di serializzare degli oggetti Java e trasmetterli da un processo ad un altro processo connesso, a prescindere da dove questi vengano eseguiti.

Ovviamente, la tecnologia non è utilizzabile solo ed esclusivamente dal linguaggio Java, ma anche da tutti gli altri linguaggi che girano sulla Java VM: Scala, Clojure, Kotlin, Jython, JRuby e altri.

Esistono anche implementazioni di RMI per altri linguaggi di programmazione, che non girano sulla Java VM, per esempio per il C++, ma i nostri corsi non trattano RMI al difuori della macchina virtuale Java.

Forse potreste anche essere interessati al RMI-IIOP, tecnologia simile a RMI che però usa il protocollo IIOP (Internet Inter-ORB Protocol) di CORBA e che di conseguenza può interconnettersi con tutti quei programmi che utilizzano CORBA, indipendentemente dal linguaggio nel quale sono stati sviluppati.