Organizzazione della lezione. 18. Applicazioni ed Esempi (2) II prova intercorso. Prove scritte degli esami successivi
|
|
- Amerigo Caselli
- 5 anni fa
- Visualizzazioni
Transcript
1 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 II prova intercorso ed esami Il problema dell accesso al registry per il Una soluzione con registry multipli Alcuni commenti finali 2 II prova intercorso Prove scritte degli esami successivi Fissata il 29 gennaio 2003, ore 15, aula D-19 Struttura: una applicazione distribuita usando Java RMI Durata: 3 ore Orali: nella settimana successiva all esame orale, si richiederà anche la presentazione del programma della prova scritta, funzionante e con il minimo numero di modifiche rispetto alla versione consegnata necessario: listato completo del programma funzionante e commentato dischetto (esente da virus) con i programmi pronti per poter essere compilati ed eseguiti Febbraio: 10/2/2003, ore 9 (C-38), 25/2/2003, ore 9 (D-19) La prova scritta (durata 3 ore) sarà simile alla unione delle due prove intercorso 5-6 domande su Java da 2 punti 1-2 domande di programmazione Java (da 12 punti) la applicazione distribuita (Java RMI) da scrivere Orali: nella settimana successiva alla prova scritta 3 all esame orale, si richiederà anche la presentazione del programma della prova scritta, funzionante e con il minimo numero di modifiche rispetto alla versione consegnata necessario: listato completo del programma funzionante e commentato dischetto (esente da virus) con i programmi pronti per poter essere compilati ed eseguiti 4
2 L accesso al registry per il Una chat client-server (con callback) Il problema: Il server su un registry che si trova su un host diverso dalla JVM si può fare e list() ma non si può fare la bind(),! Esaminiamo le architetture delle applicazioni chat Chat client-server (con call-back) Chat peer-to-peer 5 riceve da ogni client la iscrizione/abbandono della chat manda a tutti i client quello che ognuno dice (broadcast) Meccanismo mediante il quale il client chiede al server di essere richiamato (call-back) con RMI il client (dotato di interface remota) passa il proprio riferimento remoto al server che lo usa per contattarlo successivamente necessità del call-back implicita nella applicazione: il server deve poter informare ogni client di quanto digitato da un client permette ad ogni utente di avere la informazione su chi è iscritto alla chat 6 Le classi di Chat Client-Server Server.java import java.rmi.*; public interface Server extends java.rmi.remote { public void dico (Messaggio m) public void iscrivi (Remote idref) public void abbandona (Remote idref) Tre metodi remoti dico() chiamato da un client se deve scrivere a tutti iscrizione alla chat abbandona() per abbandonare Passaggio del riferimento remoto necessario per il callback 7 8
3 Le classi di Chat Client-Server Chat.java import java.rmi.*; public interface Chat extends java.rmi.remote { public void dico (Messaggio m) public void iscrivi (String nickiscritto) public void abbandona (String nickabbandona) public String getnickname () Interfaccia remota Quattro metodi remoti dico() chiamato dal server per il broadcast di messaggi, abbandona() consapevolezza della iscrizione/abbondono alla chat di un utente getnickname() utilità per uso da parte del server (non fondamentale) Metodi chiamati solo dal server 9 10 La Chat Client-Server Server: : architettura (1) La Chat Client-Server Server: : architettura (2) Set-up del server Iscrizione di un client ClientDue Iscrizione di un client Server ServerChat notare che non servono registry per arrivare a e ClientDue.. infatti ClientDue RemRef ServerChat ClientDue 11 12
4 La Chat Client-Server Server: : architettura (3) Commenti sulla architettura della Chat Per il call-back il server usa i riferimenti remoti che ha La architettura Client-Server della Chat e che sono stati comunicati con ClientDue dico( Ciao ) RemRef ServerChat dico( Ciao ) ClientDue dico( Ciao ) offre un singolo punto di debolezza (il server) non risponde alla struttura del problema in effetti, ogni client deve poter inviare a ciascun altro client serve solamente poter sapere chi sono i client registrati Possibile passare ad una architettura Peer-to-peer dove l unica componente centralizzata è il registry che deve necessariamente essere presente (comunque) anche sulla architettura client-server Il ruolo del registry nelle applicazioni P2P Le classi di Chat P2P Per ogni applicazioni peer-to-peer è comunque sempre necessario una componente che permetta il bootstrap: locazione fissata per poter contattare gli altri peer Nel caso di RMI si può usare il registry tramite il metodo list() è possibile sapere tutti gli id (stringhe) degli oggetti remoti registrati a partire da cui si può ottenere il riferimento remoto che può essere usato per contattare gli oggetti (discriminando, se è il caso, rispetto alle interface implementate) se sul registry stanno in esecuzione diverse applicazioni distribuite 15 16
5 Chat.java Alcuni commenti sulla Chat import java.rmi.*; public interface Chat extends java.rmi.remote { public void dico (Messaggio m) public void iscrivi (String id) public void abbandona (Remote idref) public String getnickname () Interfaccia remota Quattro metodi remoti dico() chiamato da un altro peer per scrivere un messaggio, abbandona() inserimento o cancellazione nella lista dei peers che ognuno ha getnickname() utilità per uso da parte degli altri peers (non fondamentale) 17 Applicazione peer-to-peer peer di dimensione maggiore rispetto al client della soluzione client-server non soggetta a fault-locali in caso il registry cada, chi è connesso continua a chattare fino alla chiusura (partial faults tolerance) Un problema: su un registry che si trova su un host diverso dalla JVM si può fare e list() ma non si può fare la bind(),! con questa implementazione si può fare una chat solo se ci si 18 trova sullo stesso host (stesso registry!) Il problema della Chat P2P su host diversi La Chat P2P (2) sullo stesso host Iscrizione di un peer Iscrizione di un peer : al registry ok, a ok, su registry fallisce! Iscrizione di un peer Iscrizione di un peer : al registry ok, a ok, ok! 19 20
6 Una soluzione: ChatMultipleRegistry Le classi di ChatMultipleRegistry (identiche) L idea: ogni peer ha una lista di host su cui si potrebbero trovare dei peer che partecipano alla chat per ogni host nella lista controlla se esiste un registry se esiste il registry, preleva la lista dei nomi chiede i riferimenti remoti si registra sul proprio registry Da notare: ogni registry può servire più oggetti Chat ChatImpl.java: main() () (1) ChatImpl.java: main() () (2) import java.io.*; import java.rmi.*; import java.rmi.server.*; import java.util.*; public class ChatImpl extends UnicastRemoteObject implements Chat { public static void main(string args[]) { if (args.length > 0 ) nickname = args[0]; else { System.out.println ( Serve nickname"); System.exit(1); System.setSecurityManager( new RMISecurityManager()); // continua Identico al precedente 23 try { ArrayList nomi = new ArrayList(); String n[] ; for (int i = 0; i < HOST.length; i++) { n=null; try { n = Naming.list("rmi://"+HOST[i]); catch (ConnectException e) { System.out.println(HOST[i]+ " non presente.."); if (n!= null) for (int j=0; j < n.length; j++) nomi.add(n[j]); System.out.println ("Risultano connessi "+ nomi.size()+" utenti:"); for (int i=0 ; i < nomi.size(); i++) System.out.println ("\t"+nomi.get(i)); // continua Ottiene l elenco dei nomi da tutti i registry presenti preleva la lista da ogni registry se genera una eccezione continua se n[] riferisce ad un array: esiste il registry.. e allora si inseriscono i nomi nell array di nomi[] Stampa le informazioni 24
7 ChatImpl.java: main() () (3) ChatImpl.java: : (unico altra differenza) for (int i=0 ; i < nomi.size(); i++) peers.add(naming.lookup ( (String) nomi.get(i))); ChatImpl myself = new ChatImpl(); Naming.rebind(nickname, myself); System.out.println ( Iscrizione ai peers:"); for (int i=0 ; i < peers.size(); i++) { System.out.print ("\tiscrizione a "+((Chat) peers.get (i)).getnickname()+".."); ((Chat) peers.get (i)).iscrivi (nickname) ; System.out.println ("effettuata!"); catch (Exception e) { System.out.println("Eccezione"); e.printstacktrace(); // resto del main (Shell) identico a Chat P2P Riferimenti remoti ogni nome prelevato dal registry contiene le informazione sul registry rmi:// :1099/pippo Registrazione sul proprio registry solo con il nickname usa localhost Iscrizione presso gli altri peer: chiamata di 25 public void iscrivi (String id) throws RemoteException { try {String n[]; Remote ref; for (int i = 0; i < HOST.length; i++) { ref = null; try { ref = Naming.lookup( "rmi://"+host[i]+"/"+id); catch (RemoteException e) { if (ref!= null) {// trovato! peers.add(naming.lookup ( "rmi://"+host[i]+"/"+id)); break; //esce dal for //end for catch (Exception e) { System.out.println ("Id non presente?"); e.printstacktrace(); System.out.print ("\nentra "+id+"\n"+prompt); Il metodo remoto riceve una id (stringa) e adesso deve cercare su tutti i registry! Cerca la id sugli host ignora eccezioni da qui: o niente registry sull host o niente id sul registry Se la trovo aggiungo alla lista dei peer il riferimento remoto esco dal for Stampo il prompt 26 ChatImpl.java: ultime differenze Chat P2P con Multiple Registry //Altri metodi e variabili identici a ChatImpl P2P //Definizione dell elenco di host public static final String[ ] HOST = { " ", " ", " ", " ; //fine classe ChatImpl La costante HOST qui è un array di stringhe Attenzione: il localhost deve essere incluso all interno della lista di indirizzi nell array HOST Ovviamente: la lista di host può essere prelevata da un server in questo modo il peer diventa client (solo per la lista) in una architettura client-server 27 Iscrizione di peers su due host, e PeerTre PeerTre PeerTre PeerTre 28
8 Commenti sulle architetture proposte (1) La race condition (1) Un commento generale: qualsiasi sistema peer-to-peer deve dipendere da qualche entità esterna (server?) per il bootstrap Le scarne soluzioni proposte sono a scopo didattico: tra le altre cose, non coprono: nickname duplicati sovrascrivono senza pietà riferimenti se più utenti hanno la stessa situazioni di malfunzionamenti parziali (catch da completare) caduta di un registry durante la chat problemi di race condition due client che si connettono contemporaneamente allo stesso registry ma le cui operazioni di e rebind sono mischiate (interleaved) 29 La situazione come dovrebbe essere funziona tutto 30 La race condition (2) Una soluzione alla race condition La situazione come potrebbe essere con la legge di Murphy se una cosa può andare storta, lo farà! Prevedere di fare il prima della iscrizione a tutti i nodi reperiti: in questa maniera, però, è necessario: controllare che le invocazioni di che arrivano a un nodo non siano di nodi che già abbiamo nel nostro array di peers controllare di non effettuare alcuna chiamata remota a sé stessi controllando che il riferimento di cui si vuole invocare il metodo remoto (chiamando il metodo o il metodo abbandona()) sia diverso dal proprio riferimento oppure controllando che il riferimento da inserire nell arraylist peers sia diverso dal proprio 31 32
9 Come funziona questa soluzione La race condition (3): Soluzione Si fa il prima di cercare altri nodi Funzionamento senza problemi di race condition i riferimenti in blu sono auto-riferimenti ed è necessario non effettuare chiamate remote (abbandona(),, dico() etc.) oppure non inserirlo nell array peers Si fa il prima di cercare altri nodi Un ulteriore controllo da effettuare: ricezione di da nodi già in peers No. Già presente! Conclusioni del corso Il corso è basato su: il linguaggio Java testo: Horstmann una tecnologia per le invocazioni remote (Java RMI) testo: Specifiche del linguaggio della Sun modelli e architetture distribuite testo: Couloris applicazioni ad applicazioni distribuite esempi a lezione Una avvertenza ( studenti avvisati, mezzi salvati ) studiare dai lucidi è assolutamente insufficiente E previsto un corso complementare (laurea di II livello) di Programmazione Distribuita Avanzata (titolo provvisorio) l anno prossimo dove si completerà lo studio con altre tecnologie: Jini, JXTA, Enterprise JavaBeans, etc. 35
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
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliArchitetture 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
DettagliCorso 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
DettagliEsercizi 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
DettagliLezione 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
DettagliCorso 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
DettagliOrganizzazione 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
DettagliCorso 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
DettagliLezione 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:
Dettagli16. 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
DettagliASD: 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
Dettagli7 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)
DettagliLPR 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
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliCompute 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
Dettagli12. 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
Dettagli15. 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.
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliEsercizi 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
DettagliEsercizi 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
Dettagli10. 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.
DettagliCompute 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
DettagliOrganizzazione 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:
DettagliLaurea 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:
Dettagli19 - 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
DettagliCorso 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
DettagliLezione 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
DettagliLezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona
Lezione 15 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO Il modificatore abstract Le classi
DettagliOggetti 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
DettagliVittorio 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
DettagliLe 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
DettagliInterfacce. Esempio: interfaccia I con una sola funzione g() public interface I {
Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi
DettagliPROVA 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
Dettagli14. Java Remote Method Invocation (2)
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
DettagliEsercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:
Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di
DettagliIII Appello - 4 giugno 2009
Corso di laurea in Comunicazione digitale Fondamenti di architettura e programmazione AA 2008/09 III Appello - 4 giugno 2009 Cognome Matricola Nome 1 (4 punti) Scrivete il programma Java, Esercizio, che
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettagli17 - Classi parzialmente definite: Classi Astratte e Interfacce
17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliFondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso AA 2018/2019 Tutor: Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 4 Introduzione al calcolatore e Java Linguaggio Java, basi
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B3.2 Produttore-consumatore 1 Prerequisiti Elementi di programmazione concorrente Mutua esclusione Produttore-consumatore 2 1 Introduzione In questa Unità vediamo
DettagliLezione n.9 LPR Informatica Applicata Callbacks. Thread Miscellanea. 17/05/2010 Laura Ricci
Lezione n.9 LPR Informatica Applicata Callbacks 17/05/2010 Laura Ricci Laura Ricci 1 RMI: IL MECCANISMO DELLE CALLBACK RMI utilizza una comunicazione sincrona a rendez vouz esteso: il client invoca un
DettagliActivation 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
DettagliIl 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
DettagliObiettivo 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
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliLaboratorio 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[]
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA7 B3 Gestione di una coda 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Concetto di coda e operazioni relative
DettagliClassi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
DettagliProva d Esame Compito A
Prova d Esame 19.07.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;
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliProgrammazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce
Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi
DettagliGerarchia 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
DettagliJAVA - 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
DettagliLezione 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
DettagliProgrammazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce
Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi
DettagliProva 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;
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
DettagliOrganizzazione 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
DettagliOggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi.
La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 6 Oggi Stefano
DettagliLezione 2 Primi programmi
Lezione 2 Primi programmi Barbara Rita Barricelli Corso di Laboratorio di Programmazione -Turno B (Cognomi M-Z) CdL in Informatica per la Comunicazione Digitale A.A. 2017-2018 Riassunto di quanto visto
DettagliPrincipi, 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
DettagliProgrammazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Qualità del Codice: Convenzioni di Stile versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione II. Lezione 23. Daniele Sgandurra 28/1/2011.
Programmazione II Lezione 23 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 28/1/2011 1/20 Programmazione II Lezione 23 28/1/2011 Sommario 1 2/20 Programmazione II Lezione 23 28/1/2011 Parte I 3/20 Programmazione
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale OOP: I/O da/su File e Java Exceptions Prof. Stefano Mariani Dott. Alket Cecaj Indice I/O da/su file: java.io e java.nio BufferedReader
DettagliContesto 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
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliCorso 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione orientata agli oggetti Classi astratte e interfacce
Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma
DettagliComunicazione fra oggetti distribuiti
Comunicazione fra oggetti distribuiti Livelli Middleware Trasparenza e implementazione La trasparenza - come per le chiamate di locali RMI RPC Eventi di metodo remoto - gli oggetti remoti ricevono le RMI
DettagliLezione 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! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3;
La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 6 Oggi Stefano Mizzaro
DettagliProgrammazione 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
DettagliAlgoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati
Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il
DettagliGESTIONE 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
DettagliRMI. 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
DettagliGESTIONE 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
DettagliRMI: 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
DettagliJava 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
DettagliRemote 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
DettagliPassaggio dei parametri. Passaggio dei parametri
Per valore Il valore viene copiato dal mondo esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sul mondo esterno rimangono circoscritti all environment
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliVittorio Scarano. Università degli Studi di Salerno. Lezione 21 Enterprise JavaBeans (7)
Lezione 21 Enterprise JavaBeans (7) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare il
DettagliLaboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica Web: http://www.scienze.univr.it/fol/main?ent=oi&id=34121 Docente: Carlo Drioli Email: drioli@sci.univr.it 2007/2008 Lucidi a cura di Nicola Drago,
Dettagli