Remote Method Invocation (RMI) is een mechanisme waarmee een clientobject in het ene proces methoden kan aanroepen op een serverobject in een ander proces in het netwerk. De client- en serverobjecten communiceren via een protocol dat het Java Remote Method Protocol (JRMP) wordt genoemd .
Zo werkt RMI in gedistribueerde systemen:
1. Stub genereren: De RMI-compiler genereert een stub-klasse aan de clientzijde die fungeert als proxy voor het externe object. De stub-klasse bevat dezelfde methoden als de externe interface.
2. Objectregistratie op afstand: Het serverobject registreert zichzelf bij een register, een service die de toewijzing van objectnamen aan objectreferenties bijhoudt.
3. Clientaanroep: Wanneer het clientobject een methode op de externe interface aanroept, wordt de oproep onderschept door de stub. De stub stuurt vervolgens een verzoek naar het register, waarin om de referentie van het externe object wordt gevraagd.
4. Aanroep van servermethode: Zodra het register de referentie verstrekt, gebruikt de stub deze om de methodeaanroep naar de server te sturen. De server ontvangt de oproep en voert de methode uit op het daadwerkelijke externe object.
5. Reactieafhandeling: De server stuurt het resultaat van de methodeaanroep terug naar de stub, die het resultaat vervolgens terugstuurt naar het clientobject.
RMI is een veelgebruikt mechanisme voor het bouwen van gedistribueerde applicaties in Java. Het biedt een platformonafhankelijke en taalneutrale manier om methoden aan te roepen op objecten die zich op verschillende machines of in verschillende processen kunnen bevinden. |