Introduzione a Java Remote Method Invocation (RMI)
|
|
|
- Florindo Ippolito
- 10 anni fa
- Просмотров:
Транскрипт
1 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 yawp over the roofs of the world ) [W. Whitman, Canto di me stesso, in Foglie d'erba]
2 Uno sguardo alla storia RPC / 1 Forniscono l astrazione per cui le chiamate a procedure (cioè funzioni) sono mascherate dietro a chiamate locali I client che invocano le procedure hanno l impressione che le chiamate siano eseguite localmente mentre, invece, il corpo delle chiamate è eseguito su un calcolatore remoto Nelle Remote Procedure Call (RPC), il server è il processo che gestisce effettivamente le chiamate sul calcolatore remoto. Il servizio remoto ha un'interfaccia ben definita attraverso un Interface Description Language (IDL). Fornisce una rappresentazione astratta della procedura in termini di parametri di input/output Essendo usato per descrizioni language-neutral, si rendono indipendenti le infrastrutture software ed i linguaggi di programmazione adottati su client e server e.g., client Java, server C++ Java RMI 2
3 Uno sguardo alla storia RPC / 2 Questa astrazione è fornita, lato client, dallo stub mentre, lato server, si parla di skeleton Lo stub e lo skeleton vengono automaticamente generati da un software specifico, residente sulle macchine client e server o ad esse destinato, prendendo come input l IDL. Lo stub converte le chiamate locali del client in messaggi inviati su Socket verso lo skeleton Lo skeleton riceve ogni chiamata tramite Socket e le converte effettivamente in chiamate locali, cattura l eventuale output che viene convertito in un sequenza di byte inviata sul Socket verso il client richiedente. Java RMI 3
4 Uno sguardo alla storia RMI Java riprese i concetti di: chiamate a procedure residenti su macchine remote; descrizione di operazioni e segnature condivise fra client e server; stub e skeleton; interpretandole secondo il proprio paradigma: metodi remoti; interfacce remote; oggetti remoti. Remote Method Invocation (RMI) Attenzione: RMI non è language-neutral! RMI è studiato per applicazioni distribuite su JVM residenti in macchine diverse. Java RMI 4
5 Architettura di RMI (fino a Java 1.2) Esiste un RMI Compiler che, a partire dall interfaccia del servizio, genera stub e skeleton, usati per la comunicazione remota Il client invoca i metodi dell oggetto remoto sullo stub. Lo stub fornisce la stessa interfaccia dell oggetto remoto. Si limita ad inoltrare le richieste al RRL Java RMI 5
6 Architettura di RMI (fino a Java 1.2) Esiste un RMI Compiler che, a partire dall interfaccia del servizio, genera stub e skeleton, usati per la comunicazione remota Instaura un collegamento logico fra i due lati, serializza i parametri, codifica le richieste del client e le invia al server. L altro lato del RRL decodifica le richieste e le inoltra allo skeleton Java RMI 6
7 Architettura di RMI (fino a Java 1.2) Esiste un RMI Compiler che, a partire dall interfaccia del servizio, genera stub e skeleton, usati per la comunicazione remota È il livello applicativo della pila protocollare di Internet: collega fisicamente le due parti. I dati vengono semplicemente visti come sequenze di byte da inviare o ricevere Java RMI 7
8 Architettura di RMI (fino a Java 1.2) Esiste un RMI Compiler che, a partire dall interfaccia del servizio, genera stub e skeleton, usati per la comunicazione remota Trasforma le chiamate remote in chiamate locali e colleziona i valori di ritorno. I valori di ritorno sono inoltrati al RRL per tornare indietro al client. Dalla JDK 1.2 in poi, non fu più necessario creare Skeleton, lato Server, per invocazioni Java RMI remote. 8
9 Servizi di RMI / 1 RMI fornisce alcuni servizi base per la gestione delle applicazioni distribuite: 1. Naming/Registry service 1. Quando un processo server-side esporta un servizio basato su RMI deve registrare uno o più oggetti RMI su un Registry pubblico 2. Ciascun oggetto è registrato con un nome logico, usato dal client per ritrovarlo Il client può invocare il metodo public static Remote Naming.lookup(String name) della classe java.rmi.naming per ottenere uno handle ad un oggetto remoto, che implementa java.rmi.remote 3. Il riferimento viene convertito dal processo client in un riferimento stub che è restituito al chiamante Una volta ricevuto il riferimento il client può iniziare la conversazione con il server Java RMI 9
10 Servizi di RMI / 2 2. Il servizio di attivazione di un oggetto remoto Un server object è registrato ed in esecuzione all interno di una JVM attiva ed è sotto il controllo dello RMI Registry Se lo RMI Registry viene fermato, gli oggetti remoti vengono disattivati e i riferimenti diventano inutilizzabili Il Registry gestisce anche le richieste dei client di riferimenti remoti, restituendo opportuni handle Java RMI 10
11 Servizi di RMI / 3 3. Garbage Collector distribuito Per ogni oggetto remoto RMI, il reference layer mantiene la lista di riferimenti remoti registrati dai client per ogni oggetto attivato Questo possono essere il risultato di una lookup oppure ottenuti come valori di ritorno di un altro metodo su altri oggetti remoti Quando la VM di client si accorge che un oggetto remoto non è più referenziato localmente, invia una notifica al server RMI in modo tale che il server possa eliminare la lista dei riferimenti Quando un oggetto non è più referenziato da alcun client né da oggetti locali, viene eliminato attraverso un operazione di garbage collection Inoltre, il Garbage Collector prevede l uso di un timeout per l invocazione di un riferimento remoto Quando il timeout scade il riferimento viene eliminato dalla lista e viene data notifica ai client che avevano quel riferimento Java RMI 11
12 Uso di RMI Definire l interfaccia remota che definisce i metodi di business invocabili remotamente. L'interfaccia java.rmi.remote serve ad identificare le interfacce i cui metodi possono essere invocati da VM non locali. Ogni oggetto RMI deve direttamente o indirettamente implementare tale interfaccia Solo quei metodi specificati in una interfaccia che estende Remote possono essere invocati remotamente. Tutti i metodi dell'interfaccia remota devono dichiarare il lancio di java.rmi.remoteexception package it.uniroma1.dis.asos.rmi.server; import java.rmi.remote; import java.rmi.remoteexception; public interface Echo extends Remote { public String repeat(string phrase) throws RemoteException; } Java RMI 12
13 Uso di RMI (cont.) Compilare l'interfaccia remota laptop:~/ /remoteinterface$ javac d bin sourcepath src./src/it/uniroma1/dis/asos/rmi/server/echo.java cdc@cdc laptop:~/ /remoteinterface$_ Java RMI 13
14 Uso di RMI (cont.) Creare lo stub (per rendere utilizzabile remotamente l oggetto RMI) Nota storica: Tutte le versioni di Java, dalla 1.5 in poi, non richiedono più la realizzazione di file bytecode specifici per gli stub» All'uopo, si possono usare direttamente i file.class delle interfacce dichiarate sul server» In precedenza, occorreva richiamare un comando shell (RMI Compiler, rmic) Si consiglia di creare un JAR contenente tutte le interfacce remote del servizio e renderlo disponibile su indirizzi pubblici così da renderlo replicabile sulle macchine dei client cdc@cdc laptop:~/ /remoteinterface$ jar cvf echo.jar C bin/. added manifest adding: compute.jar(in = 345) (out= 189)(deflated 45%) adding: it/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/dis/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/dis/asos/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/dis/asos/rmi/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/dis/asos/rmi/server/(in = 0) (out= 0)(stored 0%) adding: it/uniroma1/dis/asos/rmi/server/echo.class(in = 255) (out= 188)(deflated 26%) cdc@cdc laptop:~/ /remoteinterface$_ Java RMI 14
15 Uso di RMI (cont.) Definita l interfaccia remota, il passo successivo è implementarla e compilarla (dopo aver copiato nel percorso relativo il JAR contenente la definizione dell'interfaccia remota). package it.uniroma1.dis.asos.rmi.server; import java.rmi.remoteexception; public class EchoEngine implements Echo public String repeat(string phrase) throws RemoteException { return "\n\n\t\t\"i sound my barbaric " + phrase.trim().tolowercase() + " over the roofs of the world\"\n\n"; } } cdc@cdc laptop:~/ /server$ cp '/home/cdc/ /remoteinterface/echo.jar'./lib cdc@cdc laptop:~/ /server$ javac d bin sourcepath src classpath.:./lib/echo.jar./src/it/uniroma1/dis/asos/rmi/server/echoengine.java cdc@cdc laptop:~/ /server$_ Java RMI 15
16 Uso di RMI (cont.) In ogni momento è possibile avviare il servizio registry che associa (to bind) ad un nome logico un oggetto remoto. Da shell Unix/Linux con JDK installata, occorre eseguire: rmiregistry [<NumeroPorta>] NumeroPorta, parametro opzionale, identifica la porta in cui il registry accetta i bind e le lookup (le ricerche dai client). Default: 1099 Su macchine Windows: start rmiregistry [<NumeroPorta>] Il registry durante le lookup e le invocazioni remote deve avere accesso allo stub Si deve dunque 1) scrivere un programma che effettui il bind, registrando l oggetto RMI, 2) compilarlo 3) eseguirlo, una volta avviato il registry Java RMI 16
17 Uso di RMI (cont.) package it.uniroma1.dis.asos.rmi.server; import java.rmi.remoteexception; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; import java.rmi.server.unicastremoteobject; import java.util.logging.logger; public class EchoServerApplication { public static final String BINDING_NAME = "Echo"; public static void main(string[] args) { EchoEngine engine = new EchoEngine(); try { Echo skeleton = } } (Echo) UnicastRemoteObject.exportObject(engine, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind(binding_name, skeleton); } catch (RemoteException e) { e.printstacktrace(); System.exit(1); } Logger.getLogger(BINDING_NAME).info( EchoEngine.class.getName() + " successfully bound to " + BINDING_NAME); Java RMI 17
18 Uso di RMI (cont.) laptop:~/ /server$ javac d bin sourcepath src classpath.:./lib/echo.jar./src/it/uniroma1/dis/asos/rmi/server/echoserverapplication.java cdc@cdc laptop:~/ /server$ java classpath./bin:./lib/echo.jar Djava.rmi.server.codebase='file:/home/cdc/ /remoteinterface/echo.jar' it.uniroma1.dis.asos.rmi.server.echoserverapplication Apr 7, :59:24 AM it.uniroma1.dis.asos.rmi.server.echoserverapplication main INFO: it.uniroma1.dis.asos.rmi.server.echoengine successfully bound to Echo _ Java RMI 18
19 RMI Name Registry Le operazioni di ricerca e registrazione accettano come parametro un URL il cui formato è: rmi://host:port/name rmi:// è il nome del protocollo ed è opzionale host: è il nome del server RMI (default localhost) port: è la porta su cui sta in ascolto il registry (default 1099) name: il nome logico (obbligatorio) Ad esempio un URL del tipo Echo è equivalente a rmi://localhost:1099/echo Java RMI 19
20 Il client package it.uniroma1.dis.asos.rmi.client; import it.uniroma1.dis.asos.rmi.server.echo; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; public class VoiceForTheEcho { public static void main(string[] args) { if (args.length < 1) { System.err.println("I needed something to hear..."); System.exit(1); } } } String name = "Echo"; try { Registry registry = LocateRegistry.getRegistry(); Echo echoengine = (Echo) registry.lookup(name); System.out.println(echoEngine.repeat(args[0])); } catch (Exception e) { System.err.println( "Sadly, your voice did not flow beyond the walls"); e.printstacktrace(); } Java RMI 20
21 Il client laptop:~/ /client$ cp '/home/cdc/ /remoteinterface/echo.jar'./lib laptop:~/ /client$ javac d bin sourcepath src classpath.:./lib/echo.jar./src/it/uniroma1/dis/asos/rmi/client/voicefortheecho.java cdc@cdc laptop:~/ /client$ java classpath./bin:./lib/echo.jar Djava.rmi.server.codebase='file:/home/cdc/ /remoteinterface/echo.jar' it.uniroma1.dis.asos.rmi.server.easy.voicefortheecho I needed something to hear... cdc@cdc laptop:~/ /client$ java classpath./bin:./lib/echo.jar Djava.rmi.server.codebase='file:/home/cdc/ /remoteinterface/echo.jar' it.uniroma1.dis.asos.rmi.server.easy.voicefortheecho yawp "I sound my barbaric yawp over the roofs of the world" _ Java RMI 21
22 Serializzazione Il meccanismo base utilizzato da RMI per la trasmissione dei dati fra client e server è quello della serializzazione (serialization) L obiettivo principale della serializzazione è permettere la codifica di oggetti e strutture in sequenze di byte Tali sequenze poi vengono trasferite all opposto end-point dove vengono deserializzate per ricostruire una copia dell oggetto remoto È necessario che entrambi gli end-point abbiano la stessa definizione della classe Entrambi, cioè, abbiano il.class relativo Gli oggetti di una certa classe Java sono considerati serializzabili se la classe implementa l interfaccia java.io.serializable ed eventuali oggetti incapsulati sono a loro volta serializzabili L interfaccia Serializable è puramente dichiarativa, ovverosia non definisce alcun metodo Java RMI 22
23 Ulteriori informazioni Un'utile guida introduttiva Documentazione: Java RMI 23
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
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
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
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ò
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)
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 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
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
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
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
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
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
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
Sistemi 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
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
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
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
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
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
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.
Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop
i Il Gestore Eventi di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Configurazione di un Servizio SPCoop come Evento gestito dal GE 2 3 Configurazione di un Pubblicatore
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
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
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
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
Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse
Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina
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
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di
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
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
Dispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
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,
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
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
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected]
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected] Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
Le command line di Java
Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli [email protected] Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,
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
Do-Dots Protocollo di comunicazione
Do-Dots Protocollo di comunicazione Ultimo aggiornamento 10 maggio 2011 rev3 Spiegazioni 10/05/2011 rev2 Primo aggiornamento con attuali comandi 03/05/2011 rev1 - Stesura iniziale 14/05/2010 DOCUMENTO
Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD
Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione
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
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
Programmazione dei socket con TCP #2
I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket
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
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
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...
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
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
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
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
Programmazione server-side: Java Servlet
Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos
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à
Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005
Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................
Corso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
Operazioni 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)
PRACTICAL DEVELOPMENT OF A WEB SERVICE
PRACTICAL DEVELOPMENT OF A WEB SERVICE 1 JAX-WS 2.0 Java API for XML Web Services Specifica basata su annotazioni Applicata su classi ed interfacce in modo da definire e gestire automaticamente il protocollo
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
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
Seminario di Sistemi Distribuiti RPC su SOAP
Seminario di Sistemi Distribuiti RPC su SOAP Massimiliano Vivian [777775] Massimiliano Vivian 1 Introduzione La comunicazione delle informazioni è l elemento fondamentale per lo sviluppo dei sistemi. SOAP
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
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
La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD
La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e
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
Strumenti per la programmazione
Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Scrivere un programma in Java
Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 [email protected] http://www.dii.unisi.it/~rigutini/
Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)
Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni
Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.
In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. Premessa Oltre alle singole parole WoWords può gestire intere frasi in inglese. A differenza delle singole parole, le
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
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1
Ambienti di Sviluppo
Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il
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.
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/
Lezione 1 Introduzione
Lezione 1 Introduzione Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano I Servizi Web Un Servizio Web è un implementazione software
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...
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
Java threads (2) Programmazione Concorrente
Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and
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
Corso 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
Inizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
Protocolli applicativi: FTP
Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione
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
3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
