1 TECNOLOGIE – HIBERNATE & JAVA RMI Java Remote Method Invocation (RMI) Indice: • A cosa serve • Come funziona • L’interfaccia RMI del server di filiale e suo utilizzo • L’interfaccia RMI Terminale e sua implementazione • L’interfaccia RMI di un oggetto del model: Film 2 TECNOLOGIE – HIBERNATE & JAVA RMI Java RMI: a cosa server? • Si può avere un vero e proprio riferimento all’oggetto remoto, anche se esso si trova su una Java Virtual Machine diversa dalla nostra • Si può utilizzare la sintassi Java e tutte le potenzialità offerte dalla progettazione O.O. anche quando si invocano i metodi appartenenti agli oggetti remoti • In questo modo è possibile progettare in maniera distribuita un'applicazione decomponendo la logica della nostra applicazione in diversi componenti TECNOLOGIE – HIBERNATE & JAVA RMI 3 Java RMI: come funziona? 1. 2. 3. 4. Viene creata sul server un’istanza dell'oggetto remoto e passata in forma di stub al rmi registry. Tale stub viene inserito all'interno del registry stesso. Il client richiede al registry una copia dell'oggetto remoto da utilizzare. Il registry restituisce una copia serializzata dello stub al client Il client invoca uno dei metodi dell'oggetto remoto utilizzando la classe "clone“ fornita dallo stub TECNOLOGIE – HIBERNATE & JAVA RMI 4 Java RMI: come funziona? 5. 6. 7. 8. 9. Lo stub richiama lo skeleton che si trova sul server chiedendogli di invocare sull'oggetto remoto lo stesso metodo che il client ha invocato sullo stub Lo skeleton invoca il metodo richiesto sull'oggetto remoto L'invocazione del metodo sull'oggetto remoto restituisce il risultato allo skeleton Lo skeleton comunica il risultato allo stub sul client Lo stub fornisce il risultato all'applicazione client iniziale Java RMI: l’interfaccia server di filiale Il progetto common è puntato sia dal progetto client che dal progetto server Java RMI: l’interfaccia server di filiale Java RMI: chiamata al server di filiale Java RMI: chiamata al server di filiale TECNOLOGIE – HIBERNATE & JAVA RMI 9 Java RMI: il terminale Il progetto common è puntato sia dal progetto client che dal progetto server 10 TECNOLOGIE – HIBERNATE & JAVA RMI Java RMI: il terminale TECNOLOGIE – HIBERNATE & JAVA RMI 11 Java RMI: il film DTO Il progetto common è puntato sia dal progetto client che dal progetto server Java RMI: il film DTO Java RMI: il film DTO