Introduzione a RMI - Invocazione di metodi remota

RMI (Remote Method Invocation) è un'API Java per la manipolazione di oggetti remoti (ad esempio un oggetto istanziato su un'altra macchina virtuale, possibilmente su un'altra macchina sulla rete) in modo trasparente, vale a dire nello stesso modo come se l'oggetto fosse situato nella macchina virtuale (JVM) della macchina locale.

Pertanto un server consente a un client di richiamare in remoto metodi su un oggetto istanziato. Sono necessarie due macchine virtuali (una per il server e l'altra per il client) e tutte le comunicazioni avvengono in Java .

RMI è una soluzione basata su Java, a differenza dello standard CORBA di OMG (Object Management Group) per la manipolazione di oggetti remoti, con qualsiasi linguaggio. Corba è molto più complicato da implementare, questo è il motivo per cui molti sviluppatori si rivolgono spesso a RMI.

La struttura del livello RMI

Le connessioni e i trasferimenti di dati vengono eseguiti da RMI in Java su TCP / IP utilizzando un protocollo proprietario (JRMP, Java Remote Method Protocol) sulla porta 1099.

A partire da Java 2 versione 1.3, la comunicazione tra client e server avviene tramite RMI-IIOP (Internet Inter-Orb Protocol), un protocollo standardizzato da OMG (Object Management Group) e utilizzato nel CORBA.

La trasmissione dei dati avviene attraverso un sistema di livelli, basato sul modello OSI per garantire l'interoperabilità tra i programmi e le versioni di Java.

  • Lo stub e lo scheletro, rispettivamente situati sul client e sul server, assicurano la conversione delle comunicazioni effettuate con l'oggetto remoto.
  • Il livello di riferimento ( RRL, Reference Layer remoto ) contiene il sistema di localizzazione, per fornire agli oggetti un modo per ottenere un riferimento all'oggetto remoto (utilizzando il pacchetto java.rmi.Naming ). È generalmente noto come registro RMI in quanto fa riferimento agli oggetti.
  • Il livello di trasporto può ascoltare le chiamate in arrivo e stabilire connessioni e trasportare i dati sulla rete tramite TCP ( pacchetti java.net.Socket e java.net.SocketServer ).

Pertanto, un'applicazione client-server basata su RMI è implementata come tre componenti:

  • L'applicazione client che implementa lo stub.
  • Il server delle applicazioni che implementa lo scheletro.
  • Un mediatore (registro RMI).

Documento originale pubblicato su CommentcaMarche.net.

Articolo Precedente Articolo Successivo

I Migliori Consigli