Remote Method Invocation (RMI) er en mekanisme, der gør det muligt for et klientobjekt i én proces at påkalde metoder på et serverobjekt i en anden proces på tværs af netværket. Klient- og serverobjekterne kommunikerer gennem en protokol kaldet
Java Remote Method Protocol (JRMP) .
Sådan fungerer RMI i distribuerede systemer:
1. Stub Generation: RMI-kompileren genererer en stub-klasse på klientsiden, der fungerer som en proxy for fjernobjektet. Stub-klassen indeholder de samme metoder som fjerngrænsefladen.
2. Fjern objektregistrering: Serverobjektet registrerer sig selv med et register, som er en service, der vedligeholder en mapping af objektnavne til objektreferencer.
3. Kundekald: Når klientobjektet kalder en metode på fjerngrænsefladen, opfanges opkaldet af stubben. Stubben sender derefter en anmodning til registreringsdatabasen og beder om referencen til det fjerne objekt.
4. Servermetodekald: Når registreringsdatabasen giver referencen, bruger stubben den til at sende metodekaldet til serveren. Serveren modtager opkaldet og udfører metoden på det faktiske fjernobjekt.
5. Svarhåndtering: Serveren sender resultatet af metodekaldet tilbage til stubben, som derefter returnerer resultatet til klientobjektet.
RMI er en meget brugt mekanisme til at bygge distribuerede applikationer i Java. Det giver en platformsuafhængig og sprogneutral måde at påkalde metoder på objekter, der kan ligge på forskellige maskiner eller i forskellige processer.