14. Java Remote Method Invocation (2)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "14. Java Remote Method Invocation (2)"

Transcript

1 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il modello della sicurezza in Java Creazione di oggetti remoti che derivano da una superclasse Istanziazione di un registry interno all oggetto server Download dinamico di classi in 2

2 Organizzazione della lezione Il modello della sicurezza in Java Creazione di oggetti remoti che derivano da una superclasse Istanziazione di un registry interno all oggetto server Download dinamico di classi in 3 La sicurezza in Java Il problema nasce dalla caratteristica di Java di essere distribuito potendo eseguire classi scaricate dalla rete, non si può essere sicuri della loro inoffensività La soluzione di Java i programmi vengono eseguiti in una sandbox Il SecurityManager viene usato per controllare i permessi forniti dall utente al programma 4

3 La evoluzione delle politiche di security: JDK 1.0 In JDK 1.0 la unica differenza era tra codice locale e remoto 5 La evoluzione delle politiche di security: JDK 1.1 In JDK 1.1 vengono introdotti gli applet firmati remoto 6

4 La evoluzione delle politiche di security: JDK 1.2 e successive In JDK 1.2 viene introdotta la policy per dominio 7 Le politiche di sicurezza Vengono enumerate da Sun i modi in cui è possibile uscire dalla sandbox I permessi vengono memorizzati in file di policy definiscono le restrizioni imposte dalla sandbox A livello sistema (nella home di Java Runtime Environment).../jre/lib/security/java.policy A livello utente.../userhome/.java.policy A livello programma java -Djava.security.policy=policyfile appname 8

5 Il Security Manager Implementa una politica di sicurezza permettendo la esecuzione in una sandbox Esempio: la delete di un file può essere illegale Il Security Manager viene interpellato dall interprete per ogni azione potenzialmente pericolosa. 9 Istallare un SecurityManager Necessario istallare un Security Manager dal codice dalla linea di comando java -Djava.security.manager rmiregistry (e rmid per la activation) istallano dei SecurityManager con policy di default Formato dei permessi nei file di policy: grant [signedby Name] [codebase URL] { // lista dei permessi ; 10

6 La politica di default All interno di jre/lib/security il file java.policy grant codebase "file:${java.home/lib/ext/*" { permission java.security.allpermission; ; grant { // Thread possono fermare se stessi con java.lang.thread.stop() permission java.lang.runtimepermission "stopthread"; // listen su porte non di root permission java.net.socketpermission "localhost:1024-", "listen"; // proprieta di sistema leggibili permission java.util.propertypermission "java.version", "read"; permission java.util.propertypermission "java.vendor", "read"; permission java.util.propertypermission "java.vendor.url", "read"; permission java.util.propertypermission "java.class.version", "read"; permission java.util.propertypermission "os.name", "read"; permission java.util.propertypermission "os.version", "read"; permission java.util.propertypermission "os.arch", "read"; permission java.util.propertypermission "file.separator", "read"; permission java.util.propertypermission "path.separator", "read"; permission java.util.propertypermission "line.separator", "read"; // continua 11 La politica di default All interno di jre/lib/security il file java.policy // continua permission java.util.propertypermission "java.specification.version", "read"; permission java.util.propertypermission "java.specification.vendor", "read"; permission java.util.propertypermission "java.specification.name", "read"; permission java.util.propertypermission "java.vm.specification.version", "read"; permission java.util.propertypermission "java.vm.specification.vendor", "read"; permission java.util.propertypermission "java.vm.specification.name", "read"; permission java.util.propertypermission "java.vm.version", "read"; permission java.util.propertypermission "java.vm.vendor", "read"; permission java.util.propertypermission "java.vm.name", "read"; ; 12

7 Un tool: policytool Permette di gestire con facilità i file di permessi 13 Organizzazione della lezione Il modello della sicurezza in Java Creazione di oggetti remoti che derivano da una superclasse Istanziazione di un registry interno all oggetto server Download dinamico di classi in 14

8 Come dichiarare un oggetto remoto Per poter usare un oggetto server deve: ereditare da UnicastRemoteObject implementare la interfaccia dei servizi offerti Cosa accade se la nostra classe deve ereditare da qualche altra classe? Si possono utilizzare dei metodi statici offerti da UnicastRemoteObject per rendere l oggetto utilizzabile da remoto attraverso il metodo UnicastRemoteObject.exportObject() tipicamente, nel costruttore che deve lanciare una eccezione RemoteException 15 Un esempio: RemoteCounter Classe LocalCounter: classe locale con alcuni metodi e variabili di istanza Classe RemoteCounter: che eredita da LocalCounter e implementa la interface Counter dei cui metodi offre la implementazione aggiungendo anche alcuni metodi locali Classi di supporto CounterClient: per incrementare di un certo valore (fornito su linea di comando) il contatore remoto CounterServer: per istanziare l oggetto remoto offre anche una semplice shell di interrogazione 16

9 Il diagramma di RemoteCount 17 La interface remote: Counter.java import java.rmi.remote; import java.rmi.remoteexception; public interface Counter extends Remote { int getvalue() throws RemoteException; void sum(int valore) throws RemoteException; int increment() throws RemoteException; Tre metodi da implementare per l accesso remoto getvalue() preleva il valore eccezione remota sum() aggiunge il valore indicato increment() incrementa il contatore di 1 18

10 Il diagramma di RemoteCount 19 La classe locale: LocalCounter.java public class LocalCounter { public LocalCounter(int v) { value = v; public int localgetvalue() { return value; // variabili di istanza int value; Semplice esempio Costruttore inizializzazione Offre un metodo (locale) per prelevare il valore Variabile di istanza 20

11 Il diagramma di RemoteCount 21 La classe locale: RemoteCounter.java (1) import java.rmi.*; import java.rmi.server.*; public class RemoteCounter extends LocalCounter implements Counter { public RemoteCounter(String n, int v) throws RemoteException { super (v); name = n; UnicastRemoteObject.exportObject(this); try { Naming.rebind(name,this); catch (Exception e) {System.out.println ("Eccezione:"+e); // continua. Estende la classe locale e implementa la interface Costruttore costruttore superclasse inizializzazione esportazione oggetto remoto rebind 22

12 La classe locale: RemoteCounter.java (2) // continua public int getvalue() throws RemoteException { return value; public void sum (int valore) throws RemoteException { value += valore; public int increment() throws RemoteException { sum (1); return value; public String getname() { return name; String name; Metodi remoti getvalue() sum() increment() Metode locale getname() Variabile istanza 23 Il diagramma di RemoteCount 24

13 La classe server: CounterServer.java (1) import java.util.*; import java.io.*; import java.rmi.*; import java.rmi.server.*; public class CounterServer { public static void main (String args []) { BufferedReader in=null; String cmd; if (System.getSecurityManager() == null) System.setSecurityManager(new SecurityManager()); try{ RemoteCounter cont = new RemoteCounter ("Contatore",0); System.out.println ("Pronto!"); in = new BufferedReader(new InputStreamReader(System.in)); // continua Offre una shell di comandi locali Solo il metodo main() Installazione SM Creazione oggetto remoto Apertura Stream per input 25 La classe server: CounterServer.java (2) while (true) { System.out.print("Comandi >"); cmd = in.readline(); if (cmd.equals ("close")) System.exit(0); else if (cmd.equals ("localgetvalue")) System.out.println ( cont.localgetvalue()); else if (cmd.equals ("getname")) System.out.println ( cont.getname()); else if (cmd.equals("increment")) System.out.println (cont.increment()); else System.out.println (ERRORMSG); // end while catch (Exception e) { System.out.println("Ecc."+e); static final String ERRORMSG = "Uhh?"; Lettura comando Esecuzione metodi locali ereditati da LocalCounter: localgetvalue() locali: getname() remoti: increment() Costante per messaggio di errore 26

14 Il diagramma di RemoteCount 27 La classe client: CounterClient.java import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; public class CounterClient { public static void main (String args [ ]) { String host = "localhost"; if (System.getSecurityManager() == null) System.setSecurityManager(new SecurityManager()); if (args.length == 2) host = args[1]; try{ Counter cont = (Counter) Naming.lookup("rmi://"+host+"/Contatore"); int limite=integer.parseint(args [0]); for (int i=0; i<limite; i++) cont.increment(); System.out.println ("Tot="+cont.getValue()); catch (Exception e) { System.out.println("Eccezione"+e); Chiama l incremento args[0] volte Installazione SM Riferimento remoto Chiamata di increment() Chiamata di getvalue() 28

15 Organizzazione della lezione Il modello della sicurezza in Java Creazione di oggetti remoti che derivano da una superclasse Istanziazione di un registry interno all oggetto server Download dinamico di classi in 29 Istanziazione di un registry dall interno E possibile istanziare un registry dall interno di un programma utile per evitare la partenza del servizio di naming da shell indispensabile (come vedremo) per usare socket particolari Facciamo un esempio: esempio Hello (lezione precedente) unica modifica necessaria sul server HelloImpl che deve creare un oggetto di tipo registry ottenerne il riferimento per poter fare il bind dell oggetto 30

16 Il diagramma di RemoteHello 31 La interface remota dell'oggetto: il file Hello.java package hello; public interface Hello extends java.rmi.remote { String dimmiqualcosa(string dachi) throws java.rmi.remoteexception; Dichiarazione di package Interface eredita da java.rmi.remote Metodo dimmiqualcosa dichiarato Lancia RemoteException 32

17 La implementazione dell'oggetto remoto: il file HelloImpl.java (1) package hello; import java.rmi.*; import java.rmi.server.unicastremoteobject; import java.rmi.registry.*; public class HelloImpl extends UnicastRemoteObject implements Hello { public HelloImpl() throws java.rmi.remoteexception { public String dimmiqualcosa(string dachi) throws RemoteException { System.out.println("Saluto "+dachi); return "Ciao "+dachi+"!"; // continua Identico alla precedente tranne: import di registry Il costruttore (vuoto) dell'oggetto remoto con chiamata implicita al costruttore della superclasse Implementazione del metodo remoto 33 La implementazione dell'oggetto remoto: il file HelloImpl.java (2) // continua public static void main(string args[]) { System.setSecurityManager(new SecurityManager()); try { HelloImpl obj = new HelloImpl(); LocateRegistry.createRegistry(1099); Registry registry = LocateRegistry.getRegistry(1099); registry.rebind("helloserver", obj); System.out.println("Pronto!"); catch (Exception e) { e.printstacktrace(); // end main // end classe HelloImpl Crea ed installa un security manager utile per poter caricare classi dinamicamente se non sono presenti sul CLASSPATH crea una istanza di oggetto remoto obj Differenza: crea un registry su porta 1099 ottiene un riferimento fa il rebind() era semplicemente Naming.rebind("HelloServer", obj); 34

18 Esecuzione di Hello Sulla macchina del server (serverhost): non necessario lanciare il registry sulla porta di default 1099 lanciare il programma server con la policy: java -Djava.security.policy=policyall hello.helloimpl Sulla macchina del client: lanciare il programma client: java hello.helloclient serverhost Topolino 35 Organizzazione della lezione Il modello della sicurezza in Java Creazione di oggetti remoti che derivano da una superclasse Istanziazione di un registry interno all oggetto server Download dinamico di classi in 36

19 Download dinamico di classi Tra le capacità particolari di Java quella di permettere il caricamento a run-time delle classi necessarie, dovunque esse si trovino (su host locale oppure tramite una URL Tipicamente: un ClassLoader per la JVM deve conoscere le possibili locazioni delle classi da caricare Codebase una sorgente di classi da cui caricare tipicamente, in locale, settato al CLASSPATH (variabile di ambiente) 37 Codebase e In generale, è necessario indicare alle classi client come poter accedere (anche remotamente) alla classe stub dell oggetto server di cui vuole usare i servizi (metodi) In generale: possibile indicare una URL che specifichi dove si trova la classe indicata usato di solito con un server HTTP o FTP che svolga questo compito Uso del codebase: java -Djava.rmi.server.codebase= class 38

20 Caricamento dinamico delle classi Due scenari diversi 1. il server deve poter indicare al client dove si trova lo stub che si incaricherà delle comunicazioni con sé stesso 2. il client effettua una chiamata remota ad un metodo passando un oggetto la cui classe è sconosciuta al server (ma ovviamente è sottoclasse della classe del parametro del metodo del server) 39 Lo scenario 1: la sequenza di azioni (1) client Locazione URL registry 1. bind server server java -Djava.rmi.server.codebase=http//s_host server 40

21 Lo scenario 1: la sequenza di azioni (2) client Locazione URL registry 1. bind server server il registry annota la definizione della URL per la classe e carica la definizione della classe 41 Lo scenario 1: la sequenza di azioni (3) client 2. Naming.lookup 3. reference remota (con il codebase) Locazione URL registry 1. bind server server 42

22 Lo scenario 1: la sequenza di azioni (4) client 5. stub restituito 2. Naming.lookup 3. reference remota (con il codebase) 4. richiesta stub Locazione URL registry 1. bind server server 43 Lo scenario 1: la sequenza di azioni (5) client 5. stub restituito 2. Naming.lookup 3. reference remota (con il codebase) 4. richiesta stub Locazione URL registry 6. chiamata remota 1. bind server server 44

23 Caricamento dinamico delle classi Due scenari diversi 1. il server deve poter indicare al client dove si trova lo stub che si incaricherà delle comunicazioni con sé stesso 2. il client effettua una chiamata remota ad un metodo passando un oggetto la cui classe è sconosciuta al server (ma ovviamente è sottoclasse della classe del parametro del metodo del server) 45 I parametri passati a metodi remoti Tre possibilità tipi di dati primitivi il server conosce come interpretarli oggetti la cui classe si trova nel CLASSPATH del server il server conosce come interpretarli oggetti la cui classe non si trova nel CLASSPATH del server il parametro era per un oggetto della classe A, ma viene passato un oggetto della classe B, sottoclasse di A, che risulta sconosciuta dal server necessario che il server la possa reperire 46

24 Lo scenario 2: la sequenza di azioni (1) java -Djava.rmi.server.codebase=http//c_host client client il client ha la definizione della sottoclasse su un server Locazione URL chiamata remota in cui l argomento è una sottoclasse non nota al server server 47 Lo scenario 2: la sequenza di azioni (2) client il client ha la definizione della sottoclasse su un server Locazione URL chiamata remota in cui l argomento è una sottoclasse non nota al server server il server accede alla definizione della sottoclasse 48

Organizzazione della lezione. Organizzazione della lezione. 14. Java Remote Method Invocation (2) La sicurezza in Java

Organizzazione della lezione. Organizzazione della lezione. 14. Java Remote Method Invocation (2) La sicurezza in Java Organizzazione della lezione 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il modello della

Dettagli

Il problema nasce dalla caratteristica di Java di essere distribuito

Il problema nasce dalla caratteristica di Java di essere distribuito Organizzazione della lezione 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Istanziazione

Dettagli

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello Organizzazione della lezione Lezione 14 Remote Method Invocation - 2 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Organizzazione della lezione. Lezione 13. Applicazioni ad oggetti distribuite. Remote Method Invocation (RMI)

Organizzazione della lezione. Lezione 13. Applicazioni ad oggetti distribuite. Remote Method Invocation (RMI) Organizzazione della lezione Lezione Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (00-00) Laurea di I livello in Informatica Università degli Studi di Salerno Remote Method

Dettagli

Esercitazione di Sistemi Distribuiti

Esercitazione di Sistemi Distribuiti Scenario generale Esercitazione di Sistemi Distribuiti Java RMI Leonardo Mariani client object (2) estrazione dei riferimenti ad oggetti remoti Object Registry (3) invocazione remota (4) eventuale invio

Dettagli

16. Java Remote Method Invocation (4)

16. Java Remote Method Invocation (4) 16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Oggetti attivabili

Dettagli

Organizzazione della lezione. 16. Java Remote Method Invocation (4) Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili

Organizzazione della lezione. 16. Java Remote Method Invocation (4) Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili Organizzazione della lezione 16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Oggetti attivabili

Dettagli

Organizzazione della lezione. Lezione 17 Remote Method Invocation - 5. Remote. Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili

Organizzazione della lezione. Lezione 17 Remote Method Invocation - 5. Remote. Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili Organizzazione della lezione Lezione 17 Remote Method Invocation - 5 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation Organizzazione della lezione Lezione 12 Introduzione a Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi

Dettagli

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server Organizzazione della lezione Lezione 16 Remote Method Invocation - 4 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

12. Java: Remote Method Invocation (3)

12. Java: Remote Method Invocation (3) 12. Java: Remote Method Invocation (3) Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Il

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 6 Cosa faremo oggi 2 Comunicazione RMI Comunicazione RMI Multi-Thread Remote Method Invocation 3 L obiettivo è di

Dettagli

15. Java Remote Method Invocation (3)

15. Java Remote Method Invocation (3) 15. Java Remote Method Invocation (3) Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.

Dettagli

ASD: Sistemi Distribuiti (Prof. Scarano) 20/05/2002

ASD: Sistemi Distribuiti (Prof. Scarano) 20/05/2002 Organizzazione della lezione 12. Java: Remote Method Invocation (3) Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Il

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019

Dettagli

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio LPR 2005/2006 Lezione 7 paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio PARADIGMA DI INTERAZIONE A DOMANDA/RISPOSTA Paradigma di interazione

Dettagli

Organizzazione della lezione. Lezione 15 Remote Method Invocation - 3. Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. Lezione 15 Remote Method Invocation - 3. Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione Lezione 15 Remote Method Invocation - 3 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti Organizzazione della lezione 17. Applicazioni ed Esempi Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Architetture distribuite

Dettagli

Remote Method Invocation

Remote Method Invocation JAVA RMI LSO 2008 Remote Method Invocation Perché RMI? L obiettivo è di permettere ad una applicazione in esecuzione su una macchina locale di invocare i metodi di un oggetto in esecuzione su un altro

Dettagli

10. Invocazione di Metodi Remoti

10. Invocazione di Metodi Remoti 10. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.

Dettagli

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota Organizzazione della lezione 10. Invocazione di Metodi Remoti Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Modelli di programmazione:

Dettagli

Laurea in Informatica. "Programmazione Distribuita" - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione

Laurea in Informatica. Programmazione Distribuita - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione 12. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Modelli di programmazione:

Dettagli

Programmazione distribuita

Programmazione distribuita Programmazione distribuita 1 Architettura client-server È il modo classico di progettare applicazioni distribuite su rete Server offre un servizio "centralizzato" attende che altri (client) lo contattino

Dettagli

Obiettivo della lezione. Presentare Java 2 Enterprise Edition (J2EE) Presentare due tecnologie Java connesse ad Enterprise Java Beans

Obiettivo della lezione. Presentare Java 2 Enterprise Edition (J2EE) Presentare due tecnologie Java connesse ad Enterprise Java Beans Lezione Java RMI-IIOP IIOP Vittorio Scarano Corso di Sistemi Distribuiti (00-00) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare Java Enterprise

Dettagli

Organizzazione della lezione. 18. Applicazioni ed Esempi (2) II prova intercorso. Prove scritte degli esami successivi

Organizzazione della lezione. 18. Applicazioni ed Esempi (2) II prova intercorso. Prove scritte degli esami successivi Organizzazione della lezione 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

18. Applicazioni ed Esempi (2)

18. Applicazioni ed Esempi (2) 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Organizzazione della

Dettagli

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Corso di Reti di Calcolatori LA

Corso di Reti di Calcolatori LA Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LA RMI: callback Silvia Vecchi Anno accademico 2003/2004 RMI: Callback 1 Callback (1) Molte applicazioni richiedono

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

Dettagli

Contesto e motivazioni Architettura e concetti di base Componenti di RMI RMIRegistry Interfacce, eccezioni e classi Lo sviluppo di una applicazione L

Contesto e motivazioni Architettura e concetti di base Componenti di RMI RMIRegistry Interfacce, eccezioni e classi Lo sviluppo di una applicazione L CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione Politecnico di Milano Programmazione Object Oriented in Java Java Remote Method Invocation Docente: Diego Peroni CEFRIEL

Dettagli

Lezione n.10 LPR. RMI CallBacks

Lezione n.10 LPR. RMI CallBacks Lezione n.10 LPR 12/05/2008 RMI CALLBACKS Un client può richiedere servizi ad un servente mediante RMI. Talvolta è utile poter consentire al servente di contattare il client il servente notifica degli

Dettagli

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità: 7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)

Dettagli

Esercitazione di Sistemi Distribuiti: Java RMI

Esercitazione di Sistemi Distribuiti: Java RMI Esercitazione di Sistemi Distribuiti: Java RMI Anno Accademico 2007-08 Marco Comerio comerio@disco.unimib.it Richiami Teorici Oggetti distribuiti 2-16 Usuale organizzazione di un oggetto remoto con un

Dettagli

Compute engine generici in RMI

Compute engine generici in RMI Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del

Dettagli

Oggetti Distribuiti e Java RMI

Oggetti Distribuiti e Java RMI Oggetti Distribuiti e Java RMI Oggetti Locali - Oggetti Distribuiti Oggetti Locali: sono oggetti i cui metodi possono essere invocati solo da un processo locale, cioè da un processo in esecuzione sulla

Dettagli

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

Dettagli

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma

Dettagli

RMI. Remote Method Invocation. Enrico Tassi, 3/4/2009. Slides originali di Nicola Gessa

RMI. Remote Method Invocation. Enrico Tassi, 3/4/2009. Slides originali di Nicola Gessa RMI Remote Method Invocation Enrico Tassi, 3/4/2009 Slides originali di Nicola Gessa Remote Method Invocation Si colloca del mondo della programmazione distribuita. L obiettivo è di fornire al programmatore

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

Sicurezza in Java. Evoluzione dei modelli di sicurezza in Java Architettura di autorizzazione nel JDK 1.2

Sicurezza in Java. Evoluzione dei modelli di sicurezza in Java Architettura di autorizzazione nel JDK 1.2 Sicurezza in Java Evoluzione dei modelli di sicurezza in Java Architettura di autorizzazione nel JDK 1.2 1 Java Virtual Machine Loading Linking Initializing Verification Preparation Resolution caricamento

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Organizzazione della II prova intercorso ed esami. L accesso al registry per il rebind() Una soluzione con registry multipli Alcuni commenti finali

Organizzazione della II prova intercorso ed esami. L accesso al registry per il rebind() Una soluzione con registry multipli Alcuni commenti finali Organizzazione della lezione 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio Esercitazione di Laboratorio 5/12/2007 Sviluppare un applicazione RMI per la gestione di un elezione. Il server esporta un insieme di metodi: public void vota(string nome): accetta come parametro il nome

Dettagli

Vittorio Scarano. Università degli Studi di Salerno. Lezione 23 Enterprise JavaBeans (8)

Vittorio Scarano. Università degli Studi di Salerno. Lezione 23 Enterprise JavaBeans (8) Lezione 23 Enterprise JavaBeans (8) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare le

Dettagli

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback. 15/05/2012 Laura Ricci

Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback. 15/05/2012 Laura Ricci Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback 15/05/2012 Laura Ricci Laura Ricci 1 RMI: IL MECCANISMO DELLE CALLBACK RMI utilizza una comunicazione sincrona a rendez vouz esteso:

Dettagli

Esercizi su Callback RMI

Esercizi su Callback RMI Esercizi su Callback RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 03/12/2008 Esercizio Settimana Scorsa Sviluppare un applicazione RMI per la gestione

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno

Dettagli

Compute engine generici in RMI

Compute engine generici in RMI Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

Java RMI (Remote Method Invocation)

Java RMI (Remote Method Invocation) Java RMI (Remote Method Invocation) Accesso ad oggetti remoti In Java non sono possibili riferimenti remoti RPC in JAVA Le RMI introducono la possibilità di richiedere esecuzione di metodi remoti in JAVA

Dettagli

Java RMI. Alcune premesse Interfaccia e Implementazione RMI. Architettura. Esempi interfaccia e implementazione

Java RMI. Alcune premesse Interfaccia e Implementazione RMI. Architettura. Esempi interfaccia e implementazione Java RMI Alcune premesse Interfaccia e Implementazione Modello OO Interfaccia esprime una vista astratta di un ente computazionale, nascondendo organizzazione interna dettagli di funzionamento Implementazione

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni

Dettagli

SCD. Sistemi distribuiti: il modello Java RMI. UniPD - SCD 2011/12 - Sistemi Concorrenti e Distribuiti 1. Architettura del modello 1

SCD. Sistemi distribuiti: il modello Java RMI. UniPD - SCD 2011/12 - Sistemi Concorrenti e Distribuiti 1. Architettura del modello 1 Il modello Java RMI Anno accademico 2011/12 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Architettura del modello 1 L oggetto remoto è l unità di distribuzione

Dettagli

Internet Socket e RMI

Internet Socket e RMI Internet Socket e RMI una breve introduzione alla programmazione in rete Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

Introduzione a Java Remote Method Invocation (RMI)

Introduzione a Java Remote Method Invocation (RMI) Introduzione a Java Remote Method Invocation (RMI) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi E risuona il mio barbarico yawp sopra i tetti del mondo ( I sound my barbaric

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Java RMI. The Java Tutorial Trail su RMI https://docs.oracle.com/javase/tutorial/rmi/index.html

Java RMI. The Java Tutorial Trail su RMI https://docs.oracle.com/javase/tutorial/rmi/index.html Luca Cabibbo Architettura dei Sistemi Software dispensa asw830 marzo 2018 These are my principles. If you don t like them, I have others. Groucho Marx 1 - Fonti Coulouris, G, Dollimore, J., Kindberg, T.,

Dettagli

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1 Architettura del modello 2 Il modello Java RMI Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Realizzazione di R (lato servente) con proprio

Dettagli

Lezione n.9. RMI: Remote Method Invocation 1/12/2009 Andrea Corradini

Lezione n.9. RMI: Remote Method Invocation 1/12/2009 Andrea Corradini Università degli Studi di Pisa Dipartimento di Informatica Lezione n.9 LPR-B-09 RMI: Remote Method Invocation 1/12/2009 Andrea Corradini Lezione 9: RMI - Remote Method Invocation Andrea Corradini 1 Da

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli

RMI remote method invocation

RMI remote method invocation RMI remote method invocation Marco Danelutto Lab. Programmazione di Rete :: A.A. 2007-2008 Concetto RPC/RMI invocazione di procedura/metodo o.method(params); eseguita su oggetto remoto: metodo per ottenere

Dettagli

Eccezioni e Thread (cenni)

Eccezioni e Thread (cenni) Eccezioni e Thread (cenni) Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149

Dettagli

Lezione 5 Namespace e JavaDoc

Lezione 5 Namespace e JavaDoc Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package

Dettagli

Lezione n.10. RMI CallBacks 9/12/2009 Andrea Corradini

Lezione n.10. RMI CallBacks 9/12/2009 Andrea Corradini Università degli Studi di Pisa Dipartimento di Informatica Lezione n.10 LPR-B-09 RMI CallBacks 9/12/2009 Andrea Corradini Lezione 10: RMI CallBacks - Miscellanea Andrea Corradini 1 RMI: PASSAGGIO DI PARAMETRI

Dettagli

Il linguaggio Java. Oggetto remoto. Remote Method Invocation (RMI) Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete

Il linguaggio Java. Oggetto remoto. Remote Method Invocation (RMI) Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete Il linguaggio Java Remote Method Invocation (RMI) Oggetto remoto Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete Client Server 2 Schema di principio oggetto client oggetto

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

RMI e Firewall. Una soluzione è offerta dal transport layer di RMI stesso

RMI e Firewall. Una soluzione è offerta dal transport layer di RMI stesso Firewall Ogni applicazione di rete, che opera fuori da quelli che sono i confini di una rete locale, incontra inevitabilmente i cosiddetti firewall Tipicamente i firewall bloccano tutto il traffico di

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando

Dettagli

Esempi in Java di program.ne O-O

Esempi in Java di program.ne O-O Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1 Architettura del modello 2 Il modello Java RMI Anno accademico 2015/16 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Realizzazione di R (lato servente) con proprio

Dettagli

Applicazioni web. Parte 10 Socket. Alberto Ferrari

Applicazioni web. Parte 10 Socket. Alberto Ferrari Applicazioni web Parte 10 Socket Protocolli I computer collegati ad Internet comunicano tra loro usando il Transmission Control Protocol (TCP) o lo User Datagram Protocol (UDP) Quando si scrivono programmi

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 1. Architettura del modello 3

SCD. Il modello Java RMI. Sistemi distribuiti: il modello Java RMI. Architettura del modello 2. Architettura del modello 1. Architettura del modello 3 Architettura del modello 2 Il modello Java RMI Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Oggetto remoto oggetto locale /I Rispetto alla

Dettagli

Lezione n.8 LPR Informatica Applicata Multicast UDP RMI-Remote Method Invocation. 03/05/2010 Laura Ricci

Lezione n.8 LPR Informatica Applicata Multicast UDP RMI-Remote Method Invocation. 03/05/2010 Laura Ricci Lezione n.8 LPR Informatica Applicata Multicast UDP RMI- 03/05/2010 Laura Ricci Laura Ricci 1 RIASSUNTO DELLA LEZIONE paradigma di interazione domanda/risposta remote procedure call RMI (): API JAVA Esercizio

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli