Il problema nasce dalla caratteristica di Java di essere distribuito
|
|
- Clementina Falco
- 7 anni fa
- Visualizzazioni
Transcript
1 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 di un interno all oggetto Download dinamico di classi in 2 Organizzazione della lezione La sicurezza in Java Istanziazione di un interno all oggetto Download dinamico di classi in 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 3 4 La evoluzione delle politiche di security: JDK 1.0 In JDK 1.0 la unica differenza era tra codice locale e remoto La evoluzione delle politiche di security: JDK 1.1 In JDK 1.1 vengono introdotti gli applet firmati remoto 5 6
2 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 Il Security Manager Istallare un SecurityManager 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. Necessario istallare un Security Manager dal codice dalla linea di comando java -Djava.security.manager rmi (e rmid per la activation) istallano dei SecurityManager con policy di default Formato dei permessi nei file di policy : grant [signedby Name] [codebaseurl] { // listadei permessi ; 9 10 La politica di default 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 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
3 Un tool: policytool Organizzazione della lezione Permette di gestire con facilità i file di permessi Istanziazione di un interno all oggetto Download dinamico di classi in Come dichiarare un oggetto remoto Un esempio: RemoteCounter Per poter usare un oggetto 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 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 Il diagramma di RemoteCount La interface remote: Counter.java 17 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
4 Il diagramma di RemoteCount 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 Il diagramma di RemoteCount La classe locale: RemoteCounter.java (1) import java.rmi.*; import java.rmi..*; public class RemoteCounter extends LocalCounter implements Counter { public RemoteCounter(String n, int v) 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 inizializzazione esportazione oggetto remoto rebind La classe locale: RemoteCounter.java (2) Il diagramma di RemoteCount // continua public int getvalue() return value; public void sum (int valore) value += valore; public int increment() sum (1); return value; public String getname() { return name; String name; Metodi remoti getvalue() sum () increment () Metode locale getname() Variabile istanza 23 24
5 La classe : CounterServer.java (1) La classe : CounterServer.java (2) import java.util.*; import java.io.*; import java.rmi.*; import java.rmi..*; public class CounterServer { public static void main (String args[]) { BufferedReader in=null; String cmd; if (System.getSecurityManager() == null) System.setSecurityManager(new SecurityManager()); try { RemoteCountercont = 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 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); staticfinal StringERRORMSG = "Uhh?"; Lettura comando Esecuzione metodi locali ereditati da LocalCounter: localgetvalue() locali: getname() remoti: increment() Costante per messaggio di errore 26 Il diagramma di RemoteCount La classe : CounterClient.java 27 import java.rmi.*; import java.rmi..*; import java.rmi..*; 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 (inti=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 Organizzazione della lezione Istanziazione di un dall interno Istanziazione di un interno all oggetto Download dinamico di classi in E possibile istanziare un 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 HelloImpl che deve creare un oggetto di tipo ottenerne il riferimento per poter fare il bind dell oggetto 29 30
6 Il diagramma di RemoteHello 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 La implementazione dell'oggetto remoto: il file HelloImpl.java (1) package hello; import java.rmi.*; import java.rmi..unicastremoteobject; import java.rmi..*; public class HelloImpl extends UnicastRemoteObject implements Hello { public HelloImpl() throws java.rmi.remoteexception { public String dimmiqualcosa(string dachi) System.out.println("Saluto "+dachi); return "Ciao "+dachi+"!"; // continua Identico alla precedente tranne: import di Il costruttore (vuoto) dell'oggetto remoto con chiamata implicita al costruttore della 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 = LocateRegistry.getRegistry(1099);.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 su porta 1099 ottiene un riferimento fa il rebind() era semplicemente Naming.rebind("HelloServer", obj); 34 Esecuzione di Hello Organizzazione della lezione Sulla macchina del (host): non necessario lanciare il sulla porta di default 1099 lanciare il programma con la policy: java -Djava.security.policy=policyall hello.helloimpl Sulla macchina del : lanciare il programma : java hello.helloclient host Topolino Istanziazione di un interno all oggetto Download dinamico di classi in 35 36
7 Download dinamico di classi Codebase e 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 In generale, è necessario indicare alle classi come poter accedere (anche remotamente) alla classe stub dell oggetto 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 HTTP o FTP che svolga questo compito Uso del codebase: java -Djava.rmi..codebase= class 38 Caricamento dinamico delle classi Lo scenario 1: la sequenza di azioni (1) Due scenari diversi 1. il deve poter indicare al dove si trova lo stub che si incaricherà delle comunicazioni con sé stesso 2. il effettua una chiamata remota ad un metodo passando un oggetto la cui classe è sconosciuta al (ma ovviamente è sottoclasse della classe del parametro del metodo del ) 1. bind java -Djava.rmi..codebase=http//s_host Lo scenario 1: la sequenza di azioni (2) Lo scenario 1: la sequenza di azioni (3) 1. bind il annota la definizione della URL per la classe e carica la definizione della classe 2. Naming.lookup 3. reference remota (con il codebase) 1. bind 41 42
8 Lo scenario 1: la sequenza di azioni (4) Lo scenario 1: la sequenza di azioni (5) 5. stub restituito 2. Naming.lookup 3. reference remota (con il codebase) 4. richiesta stub 1. bind 5. stub restituito 2. Naming.lookup 3. reference remota (con il codebase) 4. richiesta stub 6. chiamata remota 1. bind Caricamento dinamico delle classi I parametri passati a metodi remoti Due scenari diversi 1. il deve poter indicare al dove si trova lo stub che si incaricherà delle comunicazioni con sé stesso 2. il effettua una chiamata remota ad un metodo passando un oggetto la cui classe è sconosciuta al (ma ovviamente è sottoclasse della classe del parametro del metodo del ) Tre possibilità tipi di dati primitivi il conosce come interpretarli oggetti la cui classe si trova nel CLASSPATH del il conosce come interpretarli oggetti la cui classe non si trova nel CLASSPATH del il parametro era per un oggetto della classe A, ma viene passatoun oggetto della classe B, sottoclasse di A, che risulta sconosciuta dal necessario che il la possa reperire Lo scenario 2: la sequenza di azioni (1) Lo scenario 2: la sequenza di azioni (2) java -Djava.rmi..codebase=http//c_host il ha la definizione della sottoclasse su un chiamata remota in cui l argomento è una sottoclasse non nota al il ha la definizione della sottoclasse su un chiamata remota in cui l argomento è una sottoclasse non nota al il accede alla definizione della sottoclasse 47 48
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
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
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
DettagliOrganizzazione 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
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
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
DettagliEsercitazione 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
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
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
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
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
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
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.
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
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
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.
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
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:
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
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:
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
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
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
DettagliOrganizzazione 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
Dettagli18. 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
DettagliProgrammazione 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
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
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. 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
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
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
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)
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
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
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
DettagliSicurezza 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
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[]
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
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
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
DettagliRMI. 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
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
DettagliEccezioni. 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
DettagliEsercitazione 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
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
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 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
DettagliFONDAMENTI 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,
DettagliMobilità 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
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
DettagliCorso 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
DettagliJava 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
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
DettagliRETI 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
DettagliSCD. 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
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
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
DettagliSCD. 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
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
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;
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
DettagliJava 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
DettagliInternet 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
DettagliFondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Files? Yes, Thanks!
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Files? Yes, Thanks! File in Java I concetti
DettagliFiles? Yes, Thanks! Serializzazione di entità semplice. Meccanismi. Meccanismi. Meccanismi. Fondamenti di Informatica T2 Modulo 2
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Files? Yes, Thanks! File in Java I concetti
DettagliSCD. 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
DettagliProgrammazione 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
DettagliSCD. 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
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
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
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
DettagliFondamenti 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
DettagliEccezioni 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
DettagliEsempio 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.
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliApplicazioni 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
DettagliProgrammazione 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
DettagliCapitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2
Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;
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
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:
Dettagli{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
DettagliProgrammazione 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
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
DettagliIntroduzione 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
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
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliInizializzare 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:
DettagliIl 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
DettagliProva d Esame Compito A
DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è
DettagliSocket & 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