RMI. Java RMI RMI. G. Prencipe
|
|
|
- Camillo Fadda
- 10 anni fa
- Просмотров:
Транскрипт
1 Java Remote Method Invocation -- RMI G. Prencipe RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti invochino metodi su altri oggetti remoti come se questi ultimi fossero locali L oggetto remoto può a sua volta restituire il risultato della computazione, inviandolo al richiedente RMI Ogni servizio RMI è definito da un interfaccia che descrive i metodi che possono essere eseguiti in remoto Questa interfaccia deve essere condivisa da tutti gli sviluppatori che scriveranno software per quel servizio Può essere creata più di una implementazione dell interfaccia, e gli sviluppatori non devono necessariamente conoscere quale implementazione è utilizzata o dove essa sia localizzata RMI I sistemi che utilizzano RMI per comunicare sono tipicamente divisi in client e server Il server fornisce un servizio RMI, e un cliente invoca un metodo di quel servizio I server RMI devono registrarsi (presso un lookup service) per permettere i clienti di poterli trovare In alternativa possono rendere disponibile un riferimento al servizio in altri modi 1
2 RMI Inclusa come parte della piattaforma JAVA c è un applicazione chiamata rmiregistry È un processo separato che permette alle applicazioni di registrare servizi RMI o di ottenere un riferimento a un certo servizio Ad ogni registrazione è associato un nome (rappresentato come una Stringa), che viene utilizzato dai clienti per selezionare il servizio appropriato Se un servizio si sposta da un server a un altro, il cliente deve solo cercare nel registro per conoscere la nuova locazione RMI Una volta che un servizio è registrato, esso attende per richieste provenienti dai clienti I clienti inviano messaggi RMI per invocare metodi di oggetti remoti Il cliente, prima di poter effettuare l invocazione, deve ottenere un riferimento all oggetto remoto Esso viene tipicamente ottenuto cercando il servizio nel registro L applicazione cliente richiede il nome di una particolare applicazione, e riceve una URL alla risorsa remota RMI Il seguente formato di URL è utilizzato per rappresentare un riferimento a un oggetto remoto rmi://hostname:port/servicename Una volta ottenuto il riferimento, il cliente può interagire con il servizio remoto I dettagli della rete legati alla comunicazione sono completamente trasparenti allo sviluppatore dell applicazione Si utilizzano gli oggetti remoti come se fossero locali Questo si ottiene grazie alla divisione del sistema RMI in due parti: stub e skeleton stub L oggetto stub agisce dal lato cliente, e ha il compito di convogliare le richieste al server RMI remoto Funziona un po come un proxy Ogni servizio RMI è definito come un interfaccia, non come un implementazione L oggetto stub implementa una particolare interfaccia RMI, che l applicazione cliente può usare come ogni altra implementazione di oggetti 2
3 stub Lo stub, però, invece che fare il lavoro da solo, passa il messaggio (richiesta) al servizio RMI remoto, attende la risposta, e la restituisce al metodo invocante Lo sviluppatore dell applicazione non ha bisogno di conoscere dove si trova la risorsa RMI, su quale piattaforma gira, o come essa risponderà Il cliente RMI semplicemente invoca un metodo dell oggetto stub; esso gestisce tutti i dettagli dell implementazione skeleton Lo skeleton è la controparte dello stub sul server È responsabile di ricevere le richieste RMI, e di passarle al servizio RMI Lo skeleton non fornisce un implementazione di un servizio RMI Funge solo da ricevitore di richieste Lo skeleton invoca l implementazione dell interfaccia associata al servizio RMI e invia la risposta allo stub nel cliente Comunicazione La comunicazione (scambio dei messaggi) avviene tra lo stub e lo skeleton utilizzando socket TCP Lo skeleton, una volta creato, si pone in ascolto di richieste provenienti dallo stub I parametri che possono essere scambiati in un sistema RMI non si limitano a tipi primitivi Ogni oggetto che è serializzabile (serializable) può essere inviato come parametro o restituito da un metodo remoto Quando lo stub invia una richiesta, deve impacchettare i parametri: data marshalling Lo skeleton ricostruisce i parametri: data unmarshalling Serializzazione La serializzazione degli oggetti permette di prendere un oggetto che implementa l interfaccia Serializable e trasformarlo in una sequenza di bytes Crea un immagine dell oggetto Successivamente è possibile prendere questa sequenza e ricomporla per rigenerare l oggetto di partenza 3
4 Serializzazione Serializzazione È molto semplice serializzare un oggetto: è sufficiente implementare Serializable (che non ha metodi!!) Per utilizzare la serializzazione bisogna Creare un oggetto OutputStream e racchiuderlo in un oggetto ObjectOutputStream oos A questo punto si chiama oos.writeobject(object o) e l oggetto o è serializzato e inviato all OutputStream Simile per la lettura (ObjectInputStream e readobject) Chiaramente in lettura si ottiene un riferimento a Object Nella serializzazione di un oggetto vengono salvati i campi non-statici e non-transienti (vedremo dopo) dell oggetto Inoltre quando si serializza un oggetto vengono salvati anche i suoi riferimenti ad altri oggetti (purchè implementino a loro volta Serializable) L interfaccia di un servizio RMI Ogni sistema che utilizza RMI deve definire un interfaccia L interfaccia definisce i metodi che possono essere invocati in remoto Specifica anche parametri, tipi di ritorno, e eccezioni Stub, skeleton, e il servizio RMI implementano quest interfaccia L interfaccia di un servizio RMI Tutte le interfacce di un servizio RMI estendono l interfaccia java.rmi.remote Solo i metodi definiti in una interfaccia java.rmi.remote possono essere invocati in remoto Gli altri metodi sono nascosti ai clienti RMI 4
5 Implementare un servizio RMI public interface RMILightBulb extends java.rmi.remote { public void on () throws java.rmi.remoteexception; public void off() throws java.rmi.remoteexception; public boolean ison() throws java.rmi.remoteexception; Una volta che l interfaccia di un servizio è definita, bisogna implementarla Questa implementazione fornisce le funzionalità per ognuno dei metodi definit Può introdurre anche metodi aggiuntivi, che non aranno però accessibili in remoto Gli unici accessibili in remoto sono infatti i metodi definiti nell interfaccia public class RMILightBulbImpl extends java.rmi.server.unicastremoteobject implements RMILightBulb { // Definizione del costruttore public RMILightBulbImpl() throws java.rmi.remoteexception { // Valore di default setbulb(false); // Boolean flag: conserva lo stato della lampadina private boolean lighton; // Metodo accessibile in remoto public void on() throws java.rmi.remoteexception { setbulb (true); // Metodo accessibile in remoto public void off() throws java.rmi.remoteexception { setbulb (false); 5
6 Creare stub e skeleton // Metodo accessibile in remoto public boolean ison() throws java.rmi.remoteexception {return getbulb(); // Metodo locale public void setbulb (boolean value) {lighton = value; // Metodo locale public boolean getbulb () {return lighton; Le classi stub e skeleton sono responsabili di inoltrare e processare le richieste RMI Gli sviluppatori non dovrebbero scrivere direttamente queste classi Una volta che l implementazione del servizio è scritta, il tool rmic (distribuito con la JDK), dovrebbe essere usato per creare stub e skeleton Creare stub e skeleton Creare un server RMI Una volta compilate l implementazione e l interfaccia, si esegue rmic implementation Dove implementation è il nome della classe relativa all implementazione Nel nostro esempio rmic RMILightBulbImpl Vengono generati due file: RMILightBulbImpl_Stub.class e RMILightBulbImpl_Skeleton.class Lo stub deve essere distribuito a tutit i clienti Il server RMI è responsabile della creazione di un istanza di una implementazione del servizio, e successivamente della sua registrazione presso il registro (rmiregistry) Semplice da fare con poche linee di codice Vediamo 6
7 import java.rmi.*; import java.rmi.server.*; public class LightBulbServer { public static void main(string args[]){ System.out.println ("Loading RMI service"); try{ // Crea un istanza del servizio // e ottiene un riferimento RMILightBulbImpl bulbservice = new RMILightBulbImpl(); //Stampa l esatta localizzazione del servizio //Ogni servizio è legato a una porta TCP, e il rif. //è composto da un hostname e una porta RemoteRef location = bulbservice.getref(); System.out.println (location.remotetostring()); //Il passo successivo è di registrare il servizio //1. Controlla se un registro è stato specificato //Il default è su localhost String registry = "localhost"; if (args.length >=1){registry = args[0]; //Formato registrazione //registry_hostname (opzionale):port /service String registration = "rmi://" + registry + "/RMILightBulb"; //2. Effettua la registrazione in modo tale che i clienti // possano trovare il servizio // Si utilizzano i metodi statici della classe java.rmi.naming, responsabili per recuperare e piazzare riferimenti remoti a oggetti nel registro Naming.rebind(registration, bulbservice ); // Cattura delle eccezioni catch (RemoteException re){ System.err.println ("Remote Error - " + re); catch (Exception e){ System.err.println ("Error - " + e); 7
8 Creare un cliente RMI Anche la scrittura di un cliente non è complicata Il cliente necessita solo di ottenere un riferimento all interfaccia remota, e non deve sapere come i messaggi sono scambiati, o l effettiva locazione del servizio Per trovare il servizio inizialmente, viene effettuata una ricerca nel registro RMI Successivamente, il cliente può invocare i metodi remoti dell interfaccia del servizio come se fossero invocati su un oggetto locale Vediamo import java.rmi.*; public class LightBulbClient { public static void main(string args[]){ System.out.println ("Looking for light bulb service"); try { // Controlla se un registro è stato specificato String registry = "localhost"; if (args.length >=1){ registry = args[0]; String registration = "rmi://" + registry + "/RMILightBulb"; // Cerca il servizio nel registro Remote remoteservice = Naming.lookup (registration); // Cast alla interfaccia RMILightBulb // Se non viene trovata l interfaccia specificata // viene lanciata una NotBoundException RMILightBulb bulbservice = (RMILightBulb) remoteservice; // Accende System.out.println ("Invoking bulbservice.on()"); bulbservice.on(); // Controlla lo stato System.out.println ("Bulb state : " + bulbservice.ison() ); // Spegne System.out.println ("Invoking bulbservice.off()"); bulbservice.off(); System.out.println ("Bulb state : " + bulbservice.ison() ); 8
9 // Gestione delle eccezioni catch (NotBoundException nbe){ System.out.println ("No light bulb service available in registry!"); catch (RemoteException re){ System.out.println ("RMI Error - " + re); catch (Exception e){ System.out.println ("Error - " + e); Lanciare il sistema RMI Lanciare un sistema RMI ha bisogno di alcune attenzioni, e bisogna seguire un ordine preciso nel lanciare le applicazioni Prima che il cliente possa invocare metodi, il registro deve essere in esecuzione Nemmeno il servizio può essere lanciato prima che il registro sia in esecuzione, altrimenti viene lanciata un eccezione al momento della registrazione Lo stub deve essere fornito ai clienti Lanciare il sistema RMI 1. Copiare tutti i file necessari sulle macchine dei clienti e del server (stub e skeleton) 2. Eseguire rmiregistry 3. Eseguire il server Java Remote Method Invocation -- RMI 4. Eseguire i clienti fine 9
10 Problemi Un problema tipico con i servizio RMI è legato alla distribuzione dello stub ai clienti Può risultare semplice se si conosce la localizzazione die clienti Altrimenti non è semplice Questi problemi vengono risolti utilizzando la tecnica del dynamic class loading 10
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
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:
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
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)
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ò
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
Introduzione a Java Remote Method Invocation (RMI)
Introduzione a Java Remote Method Invocation (RMI) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi E risuona il mio barbarico yawp sopra i tetti del mondo ( I sound my barbaric
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
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
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
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
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
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
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
UnicastRemoteObject. 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
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
Client - Server. Client Web: il BROWSER
Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare
Ingegneria del Software. Presentazione del pattern Proxy
Ingegneria del Software Presentazione del pattern Proxy 1 Il pattern Proxy (1/6) Nome Proxy Synopsis Pattern molto generale che occorre in molti altri pattern, ma raramente nella sua forma pura. Il pattern
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
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
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
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
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
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
RMI. Prova pratica di Sistemi Distribuiti:
Prova pratica di Sistemi Distribuiti: RMI Di Nicola Milella Al fine di toccare con mano queste tecnologie e capirne i rispettivi pro e contro si è deciso di sviluppare un applicazione distribuita sfruttando
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.
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
Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Reflection in Java 1 Reflection Riflessione
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
ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete
ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto
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
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
SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
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)
Gli 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
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
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");
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
Main 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
Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
19. Introduzione al multi-threading
19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi
Java RMI (Remote Method Invocation)
Java RMI (Remote Method Invocation) Accesso ad oggetti remoti In Java non sono possibili riferimenti remoti RPC in JAVA Le RMI introducono la possibilità di richiedere esecuzione di metodi remoti in JAVA
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...
Corso di Informatica Modulo T3 B2 - Database in rete
Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual
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
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
Esercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
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
Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
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
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
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
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
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
Sistemi 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
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
1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages
1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture
Sistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità
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
Il 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
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.
Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate
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
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
Client 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
Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Prova d Esame 07.04.2006 Compito A
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 = 1; public
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create
Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie
19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
20 - Input/Output su File
20 - Input/Output su File 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
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
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
2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
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
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
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.
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
I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.
Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : [email protected] 02/03/2010
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,
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
Corso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
Comunicazione 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
