UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124
|
|
|
- Bruno Giovannini
- 10 anni fa
- Visualizzazioni
Transcript
1 UnicastRemoteObject Java RMI fornisce diverse classi base per definire server remoti: UnicastRemoteObject < RemoteServer < RemoteObject dove A < B significa che A è una sottoclasse di B. UnicastRemotObject è una classe del package java.rmi.server ed è la classe più usata per implementare server remoti. UnicastRemoteObject supporta server remoti per comunicazioni point-to-point (e non broadcast o multipoint). IMPORTANTE: Referenze remote (stub) a server unicast sono valide solo fintantochè è in esecuzione il processo che ha creato l oggetto remoto. Ricordiamo che la realizzazione di un server remoto richiede sostanzialmente tre passi: Implementazione di una o più interfacce remote Definizione di una classe che modelli il comportamento del server Esportazione di un istanza di tale classe. Massimo Merro Programmazione di Rete 103 / 124
2 Esistono tre modi per definire un server remoto unicast: 1) Estendendo UnicastRemoteObject: public class ServerRemoto extends UnicastRemoteObject implement IntRemota { public ServerRemoto() throws RemoteException { super(); // E qui che il server viene esportato...}... public void main(string[] args){ ServerRemoto server = new ServerRemoto(); Naming.bind( MioServer,server); } } Il codice di lancio di questo server si occupa solo di (i) creare un istanza del server remoto e di (ii) registrare una referenza remota del server nel registro RMI. Un server unicast viene esportato automaticamente al momento della costruzione, ovvero quando viene invocato il suo costruttore. Al momento dell esportazione il server viene registrato col sistema RMI e messo in ascolto su una porta TCP. Massimo Merro Programmazione di Rete 104 / 124
3 UnicastRemoteObject ha tre possibili costruttori: protected UnicastRemoteObject() protected UnicastRemoteObject(int port) protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) Il primo costruttore crea ed esporta un nuovo oggetto unicast usando una porta anonima, ovvero una porta scelta dal sistema RMI; per economizzare risorse, il sistema RMI potrebbe usare una porta già in uso presso un altro server riutilizzando il medesimo server socket. Il secondo ed il terzo costruttore specificano la porta su cui si vuole lanciare il server. Il terzo costruttore specifica anche i socket da usare, lato client e lato server. Quando il costruttore UnicastRemoteObject() ritorna, il server remoto è già in ascolto sulla porta. Massimo Merro Programmazione di Rete 105 / 124
4 Poichè il server viene esportato automaticamente al momento della costruzione, ne consegue che i costruttori devono poter lanciare RemoteException. Discorso simile vale per i costruttori di quegli oggetti che estendono UnicastRemoteObject. Un server che estende UnicastRemoteObject eredita la semantica per server remoti di RemoteObject. Mentre la semantica per cloning e serializzazione viene ereditata da UnicastRemoteObject. Più precisamente UnicastRemoteObject implementa il metodo Object.clone clonando l intero stato del server remoto ed esportandolo sulla stessa porta dell oggetto originale utilizzando però un altro socket. Comunque, la classe non implementa l interfaccia Cloneable, questo è lasciato alle sottoclassi. Massimo Merro Programmazione di Rete 106 / 124
5 I due vantaggi principali di UnicastRemoteObject sono: 1 La connessione automatica al meccanismo di runtime di RMI per quanto riguarda esportazione (e de-esportazione). 2 Una semantica appropriata per testare l uguaglianza di server remoti. D altrocanto definire un server remoto estendendo direttamente UnicastRemoteObject può essere causa di due tipi di problemi: 1 In Java è consentito estendere una sola classe, e quindi il server in questione non può estendere altre classi. 2 Il server remoto potrebbe essere esposto ad invocazioni remote premature, visto che l esportazione avviene nel momento stesso della creazione. Massimo Merro Programmazione di Rete 107 / 124
6 Un altro modo per definire server remoti è quello di estendere una classe tra RemoteServer o RemoteObject al posto di UnicastRemoteObject. Ad esempio: public class ServerRemoto extends RemoteServer // oppure RemoteObject implements IntRemota { public ServerRemoto() throws RemoteException {... }... public void main(string[] args){ ServerRemoto obj = new ServerRemoto();... RemoteStub stub = UnicastRemoteObject.exportObject(obj); Naming.bind( MioServer,stub); } } Vediamo un po meglio queste due classi base. Massimo Merro Programmazione di Rete 108 / 124
7 RemoteObject java.rmi.server.remoteobject fornisce la semantica per oggetti remoti, siano essi server o stub, riscrivendo opportunamente i metodi hashcode, equals, tostring (RemoteStub < RemoteObject). I primi due metodi sono implementati per consentire a referenze di RemoteObject di essere memorizzate in tabelle hash ed essere confrontate: Il metodo equals ritorna true se due RemoteObjects sono referenze allo stesso server remoto. Nota che l uguaglianza non è testata confrontando il contenuto dei server remoti perchè ciò richiederebbe due invocazioni remote con relativo trattamento delle RemoteException. Il metodo hashcode ritorna lo stesso valore per tutte le referenze remote che puntano allo stesso RemoteObject. Il metodo tostring ritorna una rappresentazione sotto forma di stringa dell oggetto remoto. Massimo Merro Programmazione di Rete 109 / 124
8 RemoteServer java.rmi.server.remoteserver è una classe astratta per UnicastRemoteObject e Activatable. Tra l altro, fornisce i metodi statici getclienthost e getlog con la seguente segnatura: public static String getclienthost() throws ServerNotActiveException public static PrintStream getlog() Il primo mtodo torna l hostname del client corrente. Il secondo metodo fornisce uno stream con i log al server remoto. Il comportamento dell operazione di clonazione deve essere definita dal programmatore. Indipendentemente dall uso di RemoteObject o RemoteServer, il codice di lancio è differente rispetto al caso in cui si estende UnicastRemoteObject. Massimo Merro Programmazione di Rete 110 / 124
9 La creazione del server remoto non comporta l esportazione automatica del server. Invece è necessario invocare il metodo statico UnicastRemoteObject.exportObject che si occupa di esportare il server remoto. Esistono tre forme dello stesso metodo: static RemoteStub exportobject(remote obj) static Remote exportobject(remote obj, int port) static Remote exportobject(remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) Contrariamente a quanto potrebbe sembrare dalla segnatura, questi metodi ritornano tutti RemoteStub che possono essere passati come parametro per la bind (o rebind). IMPORTANTE: Il metodo exportobject può essere invocato dall oggetto stesso, da chi ha costruito l oggetto, oppure da chi l ha ricevuto in una comunicazione locale. Massimo Merro Programmazione di Rete 111 / 124
10 3) Infine è possibile creare una classe remota senza estendere nessuna delle classi menzionate prima; ma eventualmente estendendo la classe che si preferisce. Ad esempio: public class ServerRemoto extends MiaClasse implement IntRemota { public ServerRemoto() throws RemoteException {...}... public void main(string[] args){ ServerRemoto obj = new ServerRemoto();... RemoteStub stub = UnicastRemoteObject.exportObject(obj); Naming.bind( MioServer,stub); } } La semantica di tali server, così come il comportamento per la clonazione, è demandata completamente al programmatore. Il meccanismo di esportazione è invariato. Inoltre poichè non stiamo estendendo RemoteObject il programmatore della classe remota deve prendersi cura di reimplementare i metodi hashcode, equals, e tostring, ereditati dalla classe Object, in maniera appropriata per oggetti remoti. Massimo Merro Programmazione di Rete 112 / 124
11 La riscrittura di tali metodi non richiede molto codice. Essenzialmente bisogna preoccuparsi di tre cose: l host su cui è in esecuzione il server; l identità della JVM che esegue il server; l identità dell oggetto server all interno della JVM. Come detto precedentemente se un server estende UnicastRemoteObject allora non può estendere altre classi. Quest inconveniente può essere agevolmente aggirato spezzando il server in due: 1 Un server remoto che estenda UnicastRemoteObject ed implementi l interfaccia remota. Tale implementazione inoltra tutte le richieste ad un secondo server (il vero server). 2 Un secondo server (che eventualmente estende una qualche classe) che implementi anch essa l interfaccia remota. Tale server riceverà le richieste dal primo server utilizzando eventualmente anche metodi della superclasse. Massimo Merro Programmazione di Rete 113 / 124
12 Una seconda potenziale limitazione dei server unicast è che possono prematuramente ricevere richieste remote. Ad esempio: public class PrintManager_Impl extends UnicastRemoteObject implements PrinterManager{ public PrintManager_Impl(){ super(5150); // porta usuale per print managers. // trova tutte le stampanti registrate // ottieni la referenza di ciascuna stampante, // e ottieni le informazioni sulle loro code // cosi da consentire agli utenti di ricavare // informazioni su tutte le stampanti. L oggetto è esportato subito dopo aver invocato super(5150), ovvero il costruttore di UnicastRemoteObject. A tal punto il server potrebbe ricevere invocazioni remote prima che il costruttore abbia terminato il set-up. Massimo Merro Programmazione di Rete 114 / 124
13 De-esportazione Un server remoto viene de-esportato quando viene de-registrato dal sistema RMI (non dal registro RMI!) Un server remoto è automaticamente de-esportato quando viene rimosso dal garbage collector locale. Un server remoto può essere rimosso dal garbage collector locale solo se: 1 Le referenze remote esistenti (presso i clients) sono sono state a loro volta rimosse dal garbage collector delle rispettive JVM. 2 Non esistono referenze locali al server. Di norma si preferisce la de-esportazione automatica, ma in alcuni casi può essere desiderabile forzare la de-esportazione di un server (Ad esempio, se il server è sotto attacco). Massimo Merro Programmazione di Rete 115 / 124
14 La de-esportazione può essere forzata con il metodo UnicastRemoteObject.unexport() con la seguente segnatura: public static boolean unexportobject(remote obj, boolean force) throws NoSuchObjectException. Se il parametro force è messo a true allora la de-esportazione viene forzata brutalmente anche durante un invocazione remota al server. L eccezione NoSuchObjectException viene lanciato se l oggetto non è correntemente esportato. Massimo Merro Programmazione di Rete 116 / 124
15 Threads, Sockets, e Porte Durante l esportazione di un server remoto avvengono un certo numero di cose: Viene creato un ServerSocket su una porta TCP che ascolta ed accetta invocazioni al server su quella porta. Quando il Server socket accetta una richiesta da parte di un client stabilisce una connessione via socket con questi. Una volta stabilita la connessione socket col cliente, le invocazioni RMI vengono inoltrate verso il server (ed il metodo in questione) su un thread determinato dall implementazione. Importante: Facendo riferimento alla specifica della sun: invocazioni diverse ad un medesimo server remoto possono essere eseguite nello stesso thread oppure in thread differenti. Si noti che all esportazione di un server, il sistema RMI creerà un nuovo Server socket, su una nuova porta TCP, solo se necessario. Se possibile, al fine di economizzare risorse, il sistema RMI tenterà di utilizzare un Server socket già in uso. Massimo Merro Programmazione di Rete 117 / 124
16 Tale condivisione è possibile purchè i due server siano stati esportati dallo stesso host e dalla stessa JVM con: Numero di porta omesso, oppure uguale a 0, oppure con lo stesso numero di porta. Client socket factory omesso, nullo, o uguale. Server socket factory omesso, nullo, o uguale. Si noti che in generale, a meno della presenza di firewalls, i server remoti vengono esportati attraverso una porta individuata dal sistema RMI. È strettamente necessario avere più porte TCP/IP solo quando un host ha in esecuzione più servers su JVM differenti. Un client può usare la medesima connessione socket per accedere un secondo server remoto purchè questi sia stato esportato dallo stesso host del primo con: Numero di porta omessa, oppure uguale a zero, oppure con lo stesso numero di porta. Client Socket Factory omessa, oppure nulla, oppure uguale socket factory Massimo Merro Programmazione di Rete 118 / 124
17 Server remoti esportati, pur se serializzabili, vengono passati per referenza remota (si passa lo stub). Indipendentemente dal fatto che il server remoto estenda o meno UnicastRemoteObject. Se però un server unicast serializzabile viene passato dopo essere stato de-esportato allora il passaggio avviene attraverso il processo di serializzazione che, oltre a memorizzare lo stato del server, memorizza anche la porta usata dal server ed i socket utilizzati. Il ricevente, al momento della deserializzazione riceverà il server unicast e lo esporterà automaticamente sulla porta passata utilizzando i medesimi socket. Questa procedura consente il salvataggio di server RMI su file ed anche mobilità di codice. Massimo Merro Programmazione di Rete 119 / 124
Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247
Registri RMI Per poter interagire con un server remoto, un client deve essere in possesso di una sua referenza remota (ovvero un oggetto stub). Un servizio di Naming è una risorsa centralizzata che può
Servers Activatable. Massimo Merro Programmazione di Rete 166 / 193
Servers Activatable Nelle lezioni precedenti abbiamo detto che una referenza remota ad un server di tipo UnicastRemoteObject rimane valida finchè il server è in esecuzione. Quando il server termina, o
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
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
Programmazione di sistemi distribuiti
Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
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
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
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
Parola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
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)
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
RMI. Java RMI RMI. G. Prencipe [email protected]
Java Remote Method Invocation -- RMI G. Prencipe [email protected] RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
JNDI. Massimo Merro Programmazione di Rete 214 / 229
JNDI Abbiamo già visto come i registri RMI espletino un servizio di Naming attraverso cui vengono associati nomi simbolici a referenze a server remoti. Esistono comunque altri servizi di naming: COS (Common
RMI Remote Method Invocation
RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:
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
Remote Method Invocation (RMI)
(RMI) Remote Method Invocation (RMI) in Java. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. e-mail: cazzola@disi disi.unige.it Walter Cazzola Java: Remote
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Programmazione Object Oriented in Java
FPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Esercitazione di Sistemi Distribuiti: Java RMI
Esercitazione di Sistemi Distribuiti: Java RMI Anno Accademico 2007-08 Marco Comerio [email protected] Richiami Teorici Oggetti distribuiti 2-16 Usuale organizzazione di un oggetto remoto con un
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
Esempio: il conto bancario
Ereditarietà Prof. Francesco Scarcello D.E.I.S., Università della Calabria Corso di Informatica 2 Esempio: il conto bancario public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double
appunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
appunti delle lezioni Architetture client/server: applicazioni server
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante
Parte II: Reti di calcolatori Lezione 10
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione
Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe [email protected]. È qualcosa che abbiamo già visto varie volte
Java riutilizzo delle classi G. Prencipe [email protected] Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi
Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
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
Java Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
Esercizi della lezione 5 di Java
Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore
Prova di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
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
Telematica II 17. Esercitazione/Laboratorio 6
Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Test di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
Realizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
13. Chain of Responsibility
Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED
ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED Il collegamento normale delle schede Ethernet è eseguito installando la scheda e collegando la macchina al sistema. Di norma una rete Ethernet
INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.
Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 Dynamic Host Configuration Protocol [email protected] Prima di iniziare... Gli indirizzi IP privati possono essere
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
Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Lezione n.10 LPR- Informatica Applicata RMI CallBacks
Università degli Studi di Pisa Lezione n.10 LPR- Informatica Applicata RMI CallBacks 15/5/2006 Laura Ricci RMI: IL MECCANISMO DELLE CALLBACK Meccanismo RMI comunicazione unidirezionale (dal client al server)
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le
Ottava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
MODELLISTICA DI IMPIANTI E SISTEMI 2
MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Altri tipi di connessione
Altri tipi di connessione Francesca Martelli [email protected] Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo
Esercizio 1: trading on-line
Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente
Applicazioni distribuite
Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine
Algoritmi 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
Inizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
Capitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica
Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo
Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server
Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette
Strutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
Studi di Settore. Nota Operativa 22/4/2013
Nota Operativa Studi di Settore 22/4/2013 Sommario Valutazione casistiche... 2 Errore di connessione... 2 Sistema operativo non aggiornato... 2 File non installato client... 2 File non installato server...
Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO
Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Login All apertura il programma controlla che sia stata effettuata la registrazione e in caso negativo viene visualizzato un messaggio.
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
Reti di Telecomunicazione Lezione 6
Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica [email protected] Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server
Le variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
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
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
esercizi Esercizi / problemi
Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il
Libero Emergency PC. Sommario
Emergenza PC (Garantisce le funzionalità di base delle operazioni di prestito e restituzione in caso di problemi tecnici sulla linea o di collegamento con il server) Sommario 1. Emergency PC...2 2. Iniziare
Introduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
1) GESTIONE DELLE POSTAZIONI REMOTE
IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo
1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client
RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un
