Remote Method Anrop (RMI) är en mekanism som gör att ett klientobjekt i en process kan anropa metoder på ett serverobjekt i en annan process över nätverket. Klient- och serverobjekten kommunicerar genom ett protokoll som kallas
Java Remote Method Protocol (JRMP) .
Så här fungerar RMI i distribuerade system:
1. Stubbgenerering: RMI-kompilatorn genererar en stubbklass på klientsidan som fungerar som en proxy för fjärrobjektet. Stubklassen innehåller samma metoder som fjärrgränssnittet.
2. Fjärrobjektregistrering: Serverobjektet registrerar sig själv i ett register, vilket är en tjänst som upprätthåller en mappning av objektnamn till objektreferenser.
3. Kundanrop: När klientobjektet anropar en metod på fjärrgränssnittet, fångas samtalet upp av stubben. Stubben skickar sedan en begäran till registret och ber om referensen till fjärrobjektet.
4. Anrop av servermetod: När registret tillhandahåller referensen använder stubben den för att skicka metodanropet till servern. Servern tar emot anropet och kör metoden på det faktiska fjärrobjektet.
5. Svarshantering: Servern skickar resultatet av metodanropet tillbaka till stubben, som sedan returnerar resultatet till klientobjektet.
RMI är en mycket använd mekanism för att bygga distribuerade applikationer i Java. Det ger ett plattformsoberoende och språkneutralt sätt att anropa metoder på objekt som kan finnas på olika maskiner eller i olika processer.