Remote method invocation
# Remote method invocation

Remote method invocation, plus connu sous l'acronyme RMI est une interface de programmation (API) pour le langage Java qui permet d'appeler des méthodes distantes, sur le principe des ORB. L'utilisation de cette API nécessite l'emploi d'un registre RMI sur la machine distante hébergeant ces objets que l'on désire appeler au niveau duquel ils ont été enregistrés. Cette interface de programmation est très souvent utilisée en parallèle avec l'API d'annuaire JNDI ou encore avec la spécification de composants distribués transactionnels EJB du langage Java.

Cette bibliothèque, qui se trouve en standard dans Java SE, permet la communication via le protocole HTTP (ou IIOP, depuis la version 1.3 du JDK) entre des objets Java éloignés physiquement les uns des autres, autrement dit s'exécutant sur des machines virtuelles java distinctes. RMI facilite le développement des applications distribuées en masquant au développeur la communication client / serveur.

Cette bibliothèque entre en concurrence avec la norme CORBA maintenue par l'Object Management Group, et les produits qui la respectent, ou avec la technologie RPC dont l'un des acteurs est Microsoft.

## Technologies

RMI est basé sur TCP-IP, le Java Remote Method Protocol (JRMP). Une interopérabilité avec CORBA est assurée par RMI-IIOP.

Jusqu'à la version 5.0 du JSE, il fallait utiliser un compilateur de souche (stub) appelé RMIC avant tout enregistrement sur le registre RMI. Désormais, il est possible de les générer dynamiquement.

