Le but de cette API est de rendre transparent l'accès aux objets distribués sur un réseau, afin que les appels de méthodes distantes s'effectuent comme les appels de méthodes sur les objets locaux.
Le principal problème est l'obtention d'une référence d'un objet qui se trouve dans une autre machine virtuelle.
Sur la machine qui détient l'objet, deux applications particulières :
Sur la machine cliente, il suffit alors de préciser le triplet (machine, port, objet) pour l'obtenir.
Tout objet accédé à distance doit être déclaré comme tel. Pour cela il doit implémenter une interface particulière java.rmi.remote
La seule contrainte que cela implique est que toute les méthodes doivent prévoir les pannes possibles du réseau throws RemoteException.
Les objets exportés doivent posséder deux classes particulières objet_Stub.class et objet_Skel.class qui doivent être présentes sur les deux sites.
Les rôles sont inversés lors de l'acheminement des valeurs de retour.
Remarque : le programme rmic fabrique les classes Stub et Skel.