Corso di Reti di Calcolatori LA
|
|
- Ignazio Esposito
- 5 anni fa
- Visualizzazioni
Transcript
1 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 un meccanismo publish/subscribe Cliente 1 Cliente 2 Subscribe LAN Notifica I partecipanti (client) necessitano di notifiche da parte del coordinatore (server) Notifica Servitore di Notifica Subscribe Subscribe Notifica Cliente 3 RMI: Callback 2
2 Callback (2) Due possibilità: Polling Callback Server Server (1) (2) Client Client RMI: Callback 3 Callback con Java RMI Client Callback: meccanismo che permette ad un client di essere notificato dal server al verificarsi dell evento per cui si è registrato e messo in attesa. Notifica del server = Invocazione di un metodo remoto del client Invocazione di metodi remoti bidirezionale lookup RMI Registry bind Client Server (1) (4) (2) (3) Server Stub Client Skeleton Server Skeleton Client Stub Remote Reference Layer Remote Reference Layer Transport Layer RMI: Callback 4
3 Come realizzare la callback (1) Su lato client: bisogna fornire il metodo remoto che il server deve invocare per fare la callback 1. definire l interfaccia remota del client, in cui viene dichiarato il metodo di callback invocato dal server 2. implementare l interfaccia remota del client, ovvero implementare il metodo di callback 3. istanziare l implementazione dell interfaccia remota del client e passarla al server che la utilizzarà per invocare il metodo remoto di callback RMI: Callback 5 Come realizzare la callback (2) Su lato server: bisogna mantenere un riferimento al client su cui fare la callback 1. definire l interfaccia remota del server, come sempre, in cui però ci sia anche il metodo che il client invoca per inviare al server il riferimento su cui fare la callback 2. implementare l interfaccia remota del server 3. istanziare l implementazione dell interfaccia remota del server e pubblicarla sul registry RMI: Callback 6
4 Esercizio: chat Realizzare un applicazione che implementi una chat, in cui: i client si registrano, mandano messaggi fino all inserimento dell EOF da tastiera, infine si cancellano e terminano il server tiene traccia dei client registrati, per ogni nuova registrazione notifica a tutti i presenti nella room il nuovo ingresso, per ogni messaggio ricevuto notifica a tutti i presenti il messaggio con il mittente, per ogni uscita notifica a tutti i presenti l uscita. Ogni notifica viene effettuata invocando una callback. RMI: Callback 7 Implementazione: client (1) Definizione dell interfaccia remota del client: public interface ChatClientInterface extends java.rmi.remote{ public String name() throws java.rmi.remoteexception; public void callback(string who_what) throws java.rmi.remoteexception; RMI: Callback 8
5 Implementazione: client (2) Implementazione dell interfaccia remota del client: public class ChatClientImpl extends UnicastRemoteObject implements ChatClientInterface { String my_name; public ChatClientImpl(String name) throws RemoteException { my_name=name; public String name() throws java.rmi.remoteexception { return my_name; public void callback(string who_what) throws java.rmi.remoteexception { System.out.println(who_what); RMI: Callback 9 Implementazione: client (3) Implementazione del client in cui viene istanziata l implementazione dell interfaccia remota e viene passarla al server che la utilizzarà per invocare il metodo remoto di callback: public class ChatClient { public static void main(string args[]) { try { InputStreamReader is = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(is); System.out.println("Enter the RMIRegistry host name:"); String hostname = br.readline(); System.out.println("Enter the RMIregistry port number:"); String portnum = br.readline(); int RMIPort = Integer.parseInt(portNum); String registryurl = "rmi://" +hostname+ ":" +portnum+"/chat"; RMI: Callback 10
6 Implementazione: client (4) /* recupero riferimento al server */ ChatServerInterface server_ref =(ChatServerInterface)Naming. lookup(registryurl); System.out.println("Lookup completed " ); /* istanziazione implementazione interfaccia remota del client */ System.out.println("What is your name?"); String name = br.readline(); ChatClientImpl client_ref = new ChatClientImpl(name); RMI: Callback 11 Implementazione: client (4) /* ingresso nella chat */ System.out.println("Registering for chat"); server_ref.register(client_ref); /* ciclo di permanenza nella chat room */ System.out.println("Enter messages, EOF to exit "); String message; while((message=br.readline())!=null){ server_ref.saysomething(message, client_ref); /* uscita dalla chat */ server_ref.unregister(client_ref); System.out.println("Unregistered from chat."); System.exit(0); // end try RMI: Callback 12
7 Implementazione: client (5) catch (Exception e) { System.out.println( "Exception in ChatClient: " + e); System.exit(1); // end catch //end main //end class RMI: Callback 13 Implementazione: server (1) Definizione dell interfaccia remota del server in cui ci sia anche il metodo che il client invoca per inviare al server il riferimento su cui fare la callback: public interface ChatServerInterface extends Remote { public void register(chatclientinterface client_ref) public void saysomething(string message, throws java.rmi.remoteexception; public void unregister( ChatClientInterface client_ref) throws java.rmi.remoteexception; ChatClientInterface client_ref) throws java.rmi.remoteexception; RMI: Callback 14
8 Implementazione: server (2) Implementazione dell interfaccia remota del server: public class ChatServerImpl extends UnicastRemoteObject implements ChatServerInterface { private Vector clientlist; public ChatServerImpl() throws RemoteException { super( ); clientlist = new Vector(); RMI: Callback 15 Implementazione: server (3) /* metodo di registrazione: inserisce in una lista il client che vuole registrarsi */ public synchronized void register( ChatClientInterface client_ref) throws RemoteException{ if (!(clientlist.contains(client_ref))) { clientlist.addelement(client_ref); System.out.println("Registered new client "); String callback_msg = Entrance of +client_ref.name()+ \n ; docallbacks(callback_msg); // end if else { System.out.println("register: client already registered."); // end register RMI: Callback 16
9 Implementazione: server (4) /* metodo di invio di un messaggio */ public void saysomething(string message, ChatClientInterface client_ref) throws java.rmi.remoteexception{ String callback_msg = client_ref.name()+ : +message+ \n ; docallbacks(callback_msg); // end saysomething RMI: Callback 17 Implementazione: server (5) /* metodo di cancellazione: elimina dalla lista il client che vuole cancellarsi */ public synchronized void unregister( ChatClientInterface client_ref) throws RemoteException{ if(clientlist.removeelement(client_ref)) { System.out.println("Unregistered client "); String callback_msg = Exit of +client_ref.name()+ \n ; docallbacks(callback_msg); else { System.out.println("unregister: client wasn't registered."); // end unregister RMI: Callback 18
10 Implementazione: server (6) /* metodo che fa la callback a tutti i client registrati */ private synchronized void docallbacks(string msg) throws RemoteException{ System.out.println("***** Callbacks execution *****\n"); for (int i = 0; i < client.size(); i++){ ChatClientInterface nextclient = (ChatClientInterface)clientList.elementAt(i); nextclient.callback(msg); // end for // end docallbacks // end server class RMI: Callback 19 Implementazione: server (7) Implementazione del server in cui l implementazione dell interfaccia remota del server viene istanziata e pubblicata sul registry: public class ChatServer { public static void main(string args[]) { InputStreamReader is = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(is); String portnum, registryurl; /* recupero delle informazioni relative al registry e avvio del registry */ try{ System.out.println("Enter the RMIregistry port number:"); portnum = (br.readline()).trim(); int RMIPortNum = Integer.parseInt(portNum); startregistry(rmiportnum); RMI: Callback 20
11 Implementazione: server (8) /* istanziazione del server e pubblicazione sul registry */ ChatServerImpl server_ref = new ChatServerImpl(); registryurl = "rmi://localhost:"+ portnum +"/chat"; Naming.rebind(registryURL, server_ref); System.out.println("Chat Server ready."); // end try catch (Exception re) { System.out.println( "Exception in ChatServer.main: "+re); System.exit(1); // end catch // end main RMI: Callback 21 Implementazione: server (9) /* metodo che verifica se c è già un registry attivo sull host e porta indicati, e se non c è lo crea */ private static void startregistry(int RMIPortNum) try { throws RemoteException{ Registry registry = LocateRegistry.getRegistry(RMIPortNum); registry.list( ); catch (RemoteException e) { Registry registry = LocateRegistry.createRegistry(RMIPortNum); // end startregistry // end class RMI: Callback 22
12 Implementazione: server (10) Implementazione di LocateRegistry.getRegistry(String): public static Registry getregistry (String host)throws RemoteException{ Registry registry = (Registry) sun.rmi.server.remoteproxy. getstub("sun.rmi.registry.registryimpl", ObjID.REGISTRY_ID,host, port); return registry; RMI: Callback 23 Implementazione: server (11) Implementazione di LocateRegistry.getRegistry(String): public static Registry getregistry (String host)throws RemoteException{ Registry registry = (Registry) sun.rmi.server.remoteproxy. getstub("sun.rmi.registry.registryimpl", ObjID.REGISTRY_ID,host, port); return registry; RMI: Callback 24
13 Implementazione: server (12) Implementazione di LocateRegistry.createRegistry(RMIPortNum) public static Registry createregistry(int port) throws RemoteException{ return new sun.rmi.registry.registryimpl(port); RMI: Callback 25 Compilazione (1) Compilazione delle interfacce remote: javac ChatClientInterface.java javac ChatServerInterface.java Compilazione delle implementazioni delle interfacce, del client e del server: javac ChatServerImpl.java javac ChatClientImpl.java javac ChatServer.java javac ChatClient.java RMI: Callback 26
14 Compilazione (2) Compilazione con l rmi compiler delle implementazioni delle interfacce remote (N.B.: sia del server che del client!): rmic ChatServerImpl rmic ChatClientImpl per generare stub e skeleton: ChatServerImpl_Skel ChatServerImpl_Stub ChatClientImpl_Skel ChatClientImpl_Stub RMI: Callback 27
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)
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
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
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
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
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
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
DettagliRMI 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
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
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
DettagliLaboratorio di Sistemi Distribuiti Leonardo Mariani
Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante
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
DettagliChat. 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
DettagliSistemi Distribuiti Multiagente A.A.2010-11 Informatica Magistrale Università di Bari
Java RMI I lucidi che seguono sono stati prodotti sulla base dei seguenti riferimenti: - Sistemi Distribuiti Dip. Informatica (S.Pizzutilo) - Seminario Java RMI di G.Cozzolongo Java RMI: Remote Method
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
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
DettagliRemote 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
DettagliComunicazione fra oggetti distribuiti
Comunicazione fra oggetti distribuiti RMI RPC invocazione di metodo remoto - gli oggetti remoti ricevono le RMI interfaccia remota meccanismo per la comunicazione cliente servente come primitiva di un
Dettagli/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }
import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO
DettagliJava RMI: Esempio Completo di un Applicazione Distribuita
Java RMI: Esempio Completo di un Applicazione Distribuita Il Problema Produttore/Consumatore in Ambiente Distribuito* *a cura del Prof. L. Nigro, Università della Calabria Java RMI (Remote Method Invocation)
DettagliProgrammazione 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
DettagliProgrammazione 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
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
DettagliRMI 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:
DettagliRegistri 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ò
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura
DettagliSistemi Distribuiti. Anno Accademico 2005-06 Prof. Flavio De Paoli. Il modello ad oggetti
Sistemi Distribuiti Anno Accademico 2005-06 Prof. Flavio De Paoli 1 Il modello ad oggetti 2 Distributed Objects 2-16 Common organization of a remote object with client-side proxy. 3 Caratteristiche Oggetti
Dettagli(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP D (FKR&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: il server attende una connessione da parte del client (su MDYDQHW6HUYHU6RFNHW), usa la
DettagliLinguaggi di Programmazione: Paradigmi di Programmazione
Linguaggi di Programmazione: Paradigmi di Programmazione Socket, Servlet e Remote Method Invocation Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149
DettagliInternet Socket e RMI
Internet Socket e RMI Programmazione in Rete e Laboratorio Architettura / Un servizio presso un computer-server è identificato dai seguenti valori: IP (32 bit, presto 128 bit) (16 bit) Servizi telnet TCP
DettagliInternet Socket e RMI
Internet Socket e RMI una breve introduzione alla programmazione in rete Chi sono? Come contattarmi? Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino Corso Svizzera, 185 I-10149
DettagliLezione 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)
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
DettagliParte II: Reti di calcolatori Lezione 12
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e
DettagliUnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124
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
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
DettagliParte 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
DettagliUniversità degli Studi di Roma Tor Vergata Facoltà di Ingegneria
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Il paradigma RPC può essere facilmente esteso al modello a oggetti distribuiti Java RMI (Remote Method Invocation): RPC in Java RMI fornisce
DettagliServers 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
DettagliGestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint
parseint parseint showinputdialog JOptionPanenull null throw BankAccount IllegalArgumentException amount public class BankAccount { public void withdraw(double amount) { if (balance < amount) { // Parametro
DettagliGli EJB offrono vari vantaggi allo sviluppatore di una applicazione
Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location
DettagliEsercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
Dettaglipublic class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.
javac Hello.java javac.exe javac.exe java Hello Hello, World! java.exe java.exe console public HelloWorld InsiemeDiCaratteri ContoPersonalizzato HelloworldHelloWorld HelloWorld class classpublic public
DettagliMain System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
DettagliGestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliArchitettura Client-Server
Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio
DettagliApplicazioni Web a tre livelli
Applicazioni Web a tre livelli Filippo Bosi Imola Informatica srl fbosi@imolinfo.it Abstract: In questa presentazione vengono illustrati, attraverso una serie di esempi di codice, concetti e nozioni pratiche
DettagliOutline. Remote Method Invocation in Java. Remote Procedure Call (RPC) Introduzione Storica. Remote Procedure Call (RPC) Remote Procedure Call (RPC)
Outline Remote Method Invocation in Java Walter Cazzola Dipartimento di Informatica e Comunicazione Università degli Studi di Milano 1 2 3 Walter Cazzola Remote Method Invocation in Java Slide 1 of 33
DettagliGestione delle Eccezioni
Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un
DettagliJAM: Java Agent Middleware
JAM: Java Agent Middleware Progetto di Laboratorio per il corso di Programmazione in Rete e Laboratorio Anno Accademico 2004/2005 Matteo Baldoni Attenzione! Questo documento non è definitivo ma potrà essere
DettagliIngegneria del Software
Ingegneria del Software Java Relazioni Associazioni 1 Associazione Uno a Zero-Uno Un esempio Un autovettura ha al più un proprietario 0..1 Dato il verso di navigazione specificato è necessario avere una
DettagliOttava 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
DettagliComunicazione nei Sistemi Distribuiti
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Comunicazione nei Sistemi Distribuiti Corso di Sistemi Distribuiti e Cloud Computing A.A. 2014/15 Valeria
DettagliJBoss Application Server e Sviluppo di Applicazioni Distribuite in J2EE. Concetti di Base ed Esempi.
SAPIENZA Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale e Ingegneria Informatica Dispensa didattica JBoss Application Server e Sviluppo di Applicazioni Distribuite in
DettagliUnità B3 Strutture di controllo
(A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture
DettagliProgrammazione su Reti
Programmazione su Reti Esempio di applicazione Client Server su protocollo Soap Fabio Donatantonio Applicazione Applicazione Client-Server per la gestione di un elenco di persone con relativi dati. Viene
DettagliConcetti 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
DettagliDatagrammi. NOTA: MulticastSocket estende DatagramSocket
Datagrammi Le applicazioni che comunicano tramite socket possiedono un canale di comunicazione dedicato. Per comunicare, un client ed un server stabiliscono una connessione, trasmettono dati, quindi chiudono
DettagliOperazioni di scrittura e lettura con periferici in linguaggio Java
Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le
DettagliOperazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)
DettagliReti di Calcolatori:
Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì
DettagliLaboratorio di Programmazione di Rete Corso A
Laboratorio di Programmazione di Rete Corso A Anno Accademico 2005-2006 Docente: Laura Ricci Assistente: Paolo Mori INFORMAZIONI UTILI Orario del Corso: Lunedì 9.00-11.00 Laboratorio Gruppo A 11.00-13.00
DettagliProgrammazione Java (Applicazioni e Applet )
Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.
DettagliLa 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.
DettagliJAM: Java Agent Middleware
JAM: Java Agent Middleware Progetto di Laboratorio per il corso di Programmazione in Rete e Laboratorio Anno Accademico 2003/2004 Matteo Baldoni Attenzione! Questo documento non è definitivo ma sarà aggiornato
DettagliCorso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.
Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java
DettagliGestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)
Gestione di errori e situazioni eccezionali Gestione delle eccezioni Una procedura (utente o di libreria) deve poter segnalare l impossibilità di produrre un risultato significativo o la propria terminazione
DettagliIl Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008
UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata
DettagliEsercizi 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
DettagliSpecifica 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.
DettagliLezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno
Lezione 5: Socket SSL/ TLS Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno 1 Outline Introduzione Gestione delle chiavi e dei certificati Comunicazione
Dettagli56789:;<( !"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$( .()"+)&%/&+%0,%/+"1+,22,3("'&% 425(&'6&%7(%)8(09//"%:;!<=>%?&)@"'&%7&00&%&AA&3("'(%
!"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$(!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 56789:;
DettagliInterProcess Communication (IPC)
CdL MAGISTRALE in INFORMATICA A.A. 2013-2014 corso di Sistemi Distribuiti 5. IPC (Inter Process Communication) (parte 2): da RPC a RMI Prof. S.Pizzutilo InterProcess Communication (IPC) Modelli e tecnologie
DettagliCifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
DettagliParcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento
Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate
DettagliTFA 42 Sistemi e Reti di Calcolatori per la Didattica
Università degli Studi di Pisa 42 Sistemi e Reti di Calcolatori per la Didattica 29/03/2013 Laura Ricci Laura Ricci 1 DNS: DOMAIN NAME SYSTEM Persone: molti identificativi: o # CF, nome, # passaporto Host
DettagliEsercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }
Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano
DettagliGestione delle eccezioni in Java
Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire
DettagliMagiCum S.r.l. Progetto Inno-School
MagiCum S.r.l. Progetto Inno-School Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito:
DettagliProgrammare con le Socket TCP in java. 2: Application Layer 1
Programmare con le Socket TCP in java 2: Application Layer 1 Il Client contatta il server Il Server: Il processo server è sempre attivo in attesa di connessioni (demone) Crea una socket per accettare la
DettagliAA 2014-2015. 20. Nomi, binding
AA 2014-2015 20. Nomi, binding 1 Nomi Un nome in un linguaggio di programmazione è esa;amente quello che immaginate o la maggior parte dei nomi sono definia dal programma (gli idenaficatori) o ma anche
DettagliEsercitazioni 7 e 8. Bounded Buffer con sincronizzazione Java (1)
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliINFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.
INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002 Esercizio 4) import fiji.io.simplereader; class Programma{ public static
DettagliCorso di Reti di Calcolatori
Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che
Dettagliappunti 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
DettagliCorso di Reti di Calcolatori. Datagrammi
Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che
DettagliClient e Server comunicano tramite il protocollo SOAP.
In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura
DettagliUso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi
Uso degli oggetti Uso di oggetti predefiniti attraverso l'invio di messaggi. Il concetto di metodo; argomenti e restituzione di valori; segnatura e prototipo di un metodo. Il concetto di overloading. Le
DettagliLE COMUNICAZIONI IN AMBIENTE DISTRIBUITO
LE COMUNICAZIONI IN AMBIENTE DISTRIBUITO In questo capitolo, discuteremo diverse strategie che permettono alle applicazioni distribuite di comunicare. Nel Capitolo 4, abbiamo già fornito una panoramica
DettagliELEMENTI DI PROGETTAZIONE SOFTWARE
ELEMENTI DI PROGETTAZIONE SOFTWARE Massimiliano Redolfi Lezione 7: la fortezza Perché un sistema sia robusto ogni suo componente deve essere robusto. Una semplice metodo public class Main { public static
DettagliESERCITAZIONE TIGA : Architettura Applet RMI Database SOLUZIONE PROPOSTA
ESERCITAZIONE TIGA : Architettura Applet RMI Database SOLUZIONE PROPOSTA JDBC e Windows : In applicazioni Java/JDBC ogni connessione a un database viene gestita da un oggetto di classe java.sql.connection,
DettagliRaffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06
Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es
DettagliClassificazione dei Web Services
Web Services Programmazione in ambienti distribuiti Anno 2004-2005 Claudio Zunino Classificazione dei Web Services Interattiva il client è umano ed utilizza tipicamente un web browser Sviluppati usando
DettagliProva d Esame 07.04.2006 Compito B
DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public
DettagliTecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell
Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e
DettagliR. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone
Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:
Dettagli