Linguaggi di Programmazione: Paradigmi di Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggi di Programmazione: Paradigmi di Programmazione"

Transcript

1 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, I Torino (Italy) baldoni@di.unito.it - URL: Architettura / Un servizio presso un computerserver è identificato dai seguenti valori: IP (32 bit) Port (16 bit) Servizi telnet TCP ftp Alcuni tipici servizi: telnet http ftp SMTP, IMAP4 NFS, DNS, NIS,... TCP http TCP IMAP Socket, Servlet e Remote Method Invocation 2 1

2 Socket È una astrazione software che rappresenta il terminale di una connessione tra due computer Per ogni connessione esiste un socket in ognuno dei computer coinvolti Il client effettua la richiesta di una connessione ad un server per un servizio collegato ad una determinata porta Se la richiesta è accettata la connessione tra i due applicativi dei due computer è stabilita Port Socket: <IP, Port, IP, Port > TPC Port Socket: <IP, Port, IP, Port > Socket, Servlet e Remote Method Invocation 3 Socket e Stream in Java Da ogni socket e`possibile ottenere uno stream di input ed uno di output Lúso dei socket e`trasparente: readline e println BufferedReader in = new BufferedReader( new InputStreamReader( socket.getinputstream())); PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getoutputstream())), true); Abilita il flush immediato Socket, Servlet e Remote Method Invocation 4 2

3 Socket in Java Package da importare java.net La classe java.net.socket implementa un client socket richiede l indirizzo IP e il numero della porta del servizio a cui vogliamo connetterci La classe java.net.socket implementa Socket Port un server socket richiede il numero della porta a cui vogliamo associare il servizio crea un server che attende le richieste di TPC connessione restituisce un socket nel momento in cui accetta un collegamento completamente istanziato nei parametri di collegamento (IP e Porta locale e remota). Port Socket Socket, Servlet e Remote Method Invocation 5 Socket Il metodo accept() si mette in attesa di una richiesta di connessione da un socket client Le eccezioni che possono essere sollevate sono del tipo IOException (da catturare e gestire!) Socket Socket s = new Socket(PORT); Socket socket = s.accept(); System.out.println("Accettato socket " + socket); socket.close(); s.close(); Port Crea un nuovo socket sul server per accettazione di una richiesta di connessione Chiude il socket di una connessione precedentemente accettata Chiude il server Socket, Servlet e Remote Method Invocation 6 3

4 Socket () Socket socket = new Socket(IP, PORT); socket.close(); E`un valore intero, in genere non inferiore a 1024 (riservati al sistema) e rappresenta il numero della porta a cui Vogliamo connetterci Crea una connessione con un applicazione server (in attesa in una accept()) e restituisce il relativo socket Le eccezioni che possono essere sollevate sono del tipo IOException (da catturare e gestire!) E`un oggetto del tipo java.net.inetaddress contenente l indirizzo IP della macchina a cui vogliamo connetterci ad esempio speedy/ Port Socket Socket, Servlet e Remote Method Invocation 7 Socket e Socket: gestione errori E`importante che i socket siano propriamente chiusi al termine di un applicazione in quando questi sono una risorsa di rete condivisa del sistema La chiusura dei socket deve essere eseguita indipendentemente dal flusso di esecuzione per questo e`bene utilizzare il costrutto try-finally per garantirne la chiusura La stessa considerazione vale anche per il Socket try { String str = in.readline(); out.println("offerta"); catch(ioexception e) { System.err.println("IO Exception" + e); finally { try { socket.close(); catch(ioexception e) { System.err.println("Socket not closed"); try { Socket socket = s.accept(); finally { s.close(); Socket, Servlet e Remote Method Invocation 8 4

5 Un esempio: l asta Il server è il banditore: accoglie le offerte e comunica se sono accettabili o no, comunica a richiesta la migliore offerta corrente I client sono i partecipanti all asta, possono richiedere qual è la migliore offerta (e di chi) e possono effettuare rilanci se il loro budget a disposizione lo consente Socket, Servlet e Remote Method Invocation 9 Un esempio: l asta Un thread per ogni partecipante all asta L offerta è rappresentata da un oggetto che contine l offerente e l offerta in denaro La migliore offerta è memorizzata in un oggetto il cui accesso è effettuato mediante un metodo synchronized Per trasmettere un offerta è necessario convertirla in una stringa (encode) Il server ricostruisce dalla stringa ricevuta un offerta (decode) Socket, Servlet e Remote Method Invocation 10 5

6 Stream di oggetti e Socket Nell esempio dell asta i dati di una offerta venivano opportunamente codificati in una unica stringa per essere trasferiti da un client ad un server In Java si puo`pero` utilizzare anche stream di oggetti (ObjectInputStream e OutputObjectStream) In Java e`possibile utilizzare stream di oggetti tramite socket Gli oggetti devono implementare l interfaccia java.io.serializable Anche stream di oggetti Port TPC Port E` importante che possano essere serializzati Socket, Servlet e Remote Method Invocation 11 Stream di oggetti e Socket Socket s = new Socket(PORT); Socket socket = s.accept(); ObjectInputStream in = new ObjectInputStream(socket.getInputStream()); ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream()); Offerta nuova = (Offerta)in.readObject(); out.writeobject("accettata"); Importante: la dichiarazione nel client è analoga MA è l oggetto di tipo ObjectOutputStream va creato prima dell oggetto di tipo ObjectInputStream pena il deadlock (non è un bug!) Il polimorfismo viene preservato (si preserva il vero tipo dell oggetto) Socket, Servlet e Remote Method Invocation 12 6

7 Servlet e Web Servlet: estensioni del Java API permettono di scrivere applicazioni indipendenti eseguite all interno del Web server possono servire richieste in parallelo mantengono la sessione di lavoro con il singolo utente efficienti e semplici da utilizzare rispetto ai programmi CGI Socket, Servlet e Remote Method Invocation 13 Servlet e Web Java Virtual Machine HttpServletRequest HttpServletResponse Browser Servlet Web Socket, Servlet e Remote Method Invocation 14 7

8 Servlet e Web Una servlet è una classe Java (estensione di HttpServlet). Un Web può ospitare più servlet (con relativi alias) Quando il processo Web viene lanciato, genera un thread Java che inizializza l oggetto Servlet (metodo init), questo persiste per tutta la durata per processo Web Ogni servlet è un thread all interno del Web (vs CGI dove viene eseguito un processo esterno) Socket, Servlet e Remote Method Invocation 15 Servlet Ogni volta che il Web riceve una richiesta per una servlet S: identifica la servlet S invoca il metodo service dell oggetto Servlet S, per far eseguire le operazioni richieste Il metodo service rappresenta l interfaccia del secondo livello di applicazione. Al termine del metodo, S rimanda una risposta sotto forma di pagina HTML Il Web server spedisce la pagina al browser chiamante Socket, Servlet e Remote Method Invocation 16 8

9 Richieste ES: gistration?cognome1=baldoni&nome1=matteo La classe HttpServletRequest offre i metodi per determinare i parametri di una richiesta (cognome1, nome1) estrarre i valori speficati per i parametri nella richiesta (Baldoni, Matteo) metodi gestiti: POST (dopost), GET (doget) Socket, Servlet e Remote Method Invocation 17 Servlet e Web Apache, Netscape, Microsoft o Oracle Web le servlet erano inizialmente solo integrate nel Java Web della Sun JSP: Java Pages, analogo di ASP (Active Pages), progetto Tomcat Modulo ApacheJServ Socket, Servlet e Remote Method Invocation 18 9

10 Un esempio: Registration.java Analizzare le informazioni dei componenti di un gruppo inserite tramite una form ed inviate mediante il metodo POST Se non sono rilevati errori spedire una mail con il numero del gruppo (assegnato in modo automatico) e spedire le varie infomazioni raccolte tramite mail Se sono rilevati errori nell immissione dei dati nella form segnalarli tramite una pagina html Socket, Servlet e Remote Method Invocation 19 registration.html <FORM ACTION=" METHOD="post > <INPUT TYPE="text" NAME=cognome1 VALUE="" SIZE=40> <INPUT TYPE="text" NAME=nome1 VALUE="" SIZE=40> <INPUT TYPE="text" NAME= 1 VALUE="" SIZE=40> <INPUT TYPE="text" NAME=cognome2 VALUE="" SIZE=40> <INPUT TYPE="text" NAME=nome2 VALUE="" SIZE=40> <INPUT TYPE="text" NAME= 2 VALUE="" SIZE=40> <TEXTAREA NAME=commenti COLS=50 ROWS=5></TEXTAREA> <br> <INPUT TYPE="submit" VALUE="Inoltra"> <INPUT TYPE="reset" VALUE="Cancella"> </FORM> Socket, Servlet e Remote Method Invocation 20 10

11 Registration.java public class Registration extends HttpServlet { int counter; Viene utilizzato sia per l invio con POST sia con GET public void service(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); MIME type della risposta PrintWriter per l output Socket, Servlet e Remote Method Invocation 21 Registration.java HTMLPage page = new HTMLPage(); int localcounter; synchronized(this) { localcounter = counter++; savestate(); out.println(page); Attenzione questa classe l ho definita io per facilitare la creazione di una pagina HTML String cognome1 = req.getparameter("cognome1").trim(); String nome1 = req.getparameter("nome1").trim(); String 1 = req.getparameter(" 1").trim(); Estrazione dei parametri inviati alla servlet dalla form Incremento del contatore per il numero del gruppo counter è una variabile condivisa dai vari thread delle diverse richieste della stessa servlet Output della pagina HTML Socket, Servlet e Remote Method Invocation 22 11

12 Registration.java public void init(servletconfig config) throws ServletException { super.init(config); try { FileReader filereader = richiesta) new FileReader("/tmp/InitDestroyCounter.initial"); BufferedReader bufferedreader = new BufferedReader(fileReader); String initial = bufferedreader.readline(); counter = Integer.parseInt(initial); return; catch(filenotfoundexception ignored) { catch(ioexception ignored) { catch(numberformatexception ignored) { counter = 1; public void destroy() { savestate(); Questo metodo è eseguito quando la servlet è creata (una volta sola alla prima Questo metodo è eseguito automaticamente prima dello shutdown del Web Socket, Servlet e Remote Method Invocation 23 Comunicazione distribuita Java VM1 Java VM2 Port 2 Port1 Invocazione di metodi sull oggetto remoto Socket, Servlet e Remote Method Invocation 24 12

13 RMI: goal Rendere trasparente l invocazione remota di metodi su oggetti Java che risiedono su diverse Virtual machines (evoluzione di Remote Procedure Call, RPC) offrire un modello distribuito che preservi maggiormente la semantica degli oggetti Java rendere il piu semplice possibile la scrittura di applicazioni distribuite Socket, Servlet e Remote Method Invocation 25 Supporta vari protocolli di invocazione: unicast, multicast Architettura RMI Si occupa di preparare (marshalling) la remote call e gli oggetti per la trasmissione Applicazione Applicazione Livello Livello di riferimento remoto Ogni livello è indipendente dall altro! Livello Livello di riferimento remoto Livello di Trasporto Rete Livello di Trasporto Si occupa della effettiva connessione, della identificazione degli oggetti remoti, del mezzo, TCP/IP, UDP (nota: RMI usa per ora solo TCP/IP) Skeleton per le versioni precedenti a Java 1.2 Socket, Servlet e Remote Method Invocation 26 13

14 Architettura RMI Il sistema RMI e` costituito da tre livelli per supportare flessibilità nella comunicazione Ogni livello ha le sue interfacce di comunicazione con relativi protocolli (e skeleton) layer: canale di comunicazione tra clients e server remote reference layer: supporto di diversi protocolli di invocazione tipo Unicast e Multicast transport layer: supporta la comunicazione a basso livello, tipo TCP/IP Socket, Servlet e Remote Method Invocation 27 RMI Simile all invocazione di metodi locali i parametri dei metodi possono essere oggetti il polimorfismo e` supportato: oggetti diversi possono rispondere a stessi messaggi ma i client interagiscono con interfacce di oggetti () non con la loro implementazione (che sta nella VM remota) parametri passati per copia, non per referenza (passaggio per referenza solo dentro a una VM) Socket, Servlet e Remote Method Invocation 28 14

15 RMI in pratica L oggetto blu sulla desidera inviare un messaggio all oggetto rosso sulla, gli oggetti giallo e azzurro fanno parte dei parametri del messaggio L oggetto rosso sulla terminata l esecuzione restituisce l oggetto verde come valore di ritorno oppure solleva un eccezione messaggio valore di ritorno o eccezione Socket, Servlet e Remote Method Invocation 29 RMI in pratica: Interfaccia Il client deve disporre di un interfaccia che descriva l oggetto remoto È necessario che l interfaccia estenda java.rmi.remote Ogni metodo descritto puo` lanciare un eccezione di tipo java.rmi.remoteexception public interface Distributor extends java.rmi.remote { Job getnewjob() throws java.rmi.remoteexception; Job getnewjob(message msg) throws java.rmi.remoteexception; Socket, Servlet e Remote Method Invocation 30 15

16 RMI in pratica: Implementazione Il implementa la classe che esegue praticamente i metodi che sono descritti nell interfaccia remota Questa classe è necessario che estenda la classe java.rmi.server.unicastremoteobject (attualemente l unica disponibile, multicast in una futura versione) che rende accessibile le sue istanze remotamente (puo` creare uno per la classe) public class DistributorImpl extends java.rmi.server.unicastremoteobject implements Distributor { [..] public Job getnewjob() throws java.rmi.remoteexception { Socket, Servlet e Remote Method Invocation 31 RMI in pratica: rmiregistry, bind (rebind) Gli oggetti remoti sono individuati tramite un IP, un numero di porta e un nome (una stringa) server registry: processo pagine gialle Si registra l oggetto rosso presso il servizio di pagine gialle registry Naming.rebind Non è necessario registrare Reference Layer: l oggetto apertura di un verde server socket Lo è necessario durante il bind Socket, Servlet e Remote Method Invocation 32 16

17 RMI in pratica: rmiregistry, bind (rebind) La classe Naming appartiene al package java.rmi rmiregistry puo` anche essere attivato indipendentemente dal server tramite il comando rmiregistry 2000 public DistributorImpl() throws RemoteException { porta try { java.rmi.registry.locateregistry.createregistry(2000); Naming.rebind("rmi:// :2000/distributor",this); catch (Exception e) { System.err.println("Failed to bind to RMI Registry"); System.exit(1); IP address nome oggetto remoto Socket, Servlet e Remote Method Invocation 33 RMI in pratica: rmiregistry, lookup Il client ottiene uno (surrogato dell oggetto rosso presso il client) tramite il server registry Deve conoscerne IP, porta e nome Naming.lookup registry Socket, Servlet e Remote Method Invocation 34 17

18 RMI in pratica: rmiregistry, lookup L oggetto remoto è contattato tramite il server registry È necessario conoscerne l indirizzo IP, il numero della porta e il nome con cui è registrato public class { Distributor server; public () { Tipo definito dall interfaccia! try { server = (Distributor)Naming.lookup( "rmi:// :2000/distributor ); catch(exception e) { System.out.println("Failed to find distributor" + e.getmessage()); Socket, Servlet e Remote Method Invocation 35 RMI in pratica: client L oggetto blu invia un messaggio al surrogato oggetto rosso presso lo client Lo client inizializza la chiamata remota ed organizza i parametri da inviare messaggio Garbage collector: mantiene un riferimento all oggetto rosso: non puo` essere eliminato registry L oggetto giallo e azzurro vengono serializzati e organizzati per la spedizione (marshalling) Socket, Servlet e Remote Method Invocation 36 18

19 RMI in pratica: invio messaggio L oggetto remoto è ora utilizzabile come un qualsiasi oggetto locale lo ne è un surrogato public class { [..] public void process() { try { Job myjob = server.getnewjob(new Message("Richiesta Job!")); myjob.process(); catch (Exception e) { System.out.println("Failed to receive job " + e.getmessage()); [..] Socket, Servlet e Remote Method Invocation 37 RMI in pratica: connessione Il livello di trasporto è responsabile per una connessione, nel server ascolta le richieste in arrivo mantiene la tabella degli oggetti remoti nel particolare address space Scambia le informazioni con il reference layer registry Il livello di trasporto apre un socket per la connessione Anche HTTP se c è TCP/IP Connessione temporanea! un firewall Socket, Servlet e Remote Method Invocation 38 19

20 RMI in pratica: server Lo server riorganizza i parametri (unmarshalling) individua l oggetto da chiamare attivando il metodo desiderato (informazione contenuta nel pacchetto ricevuto) registry Attenzione non vi è nessun riferimento agli oggetti giallo e azzurro sul client passati come parametro: sono copie! TCP/IP Socket, Servlet e Remote Method Invocation 39 RMI in pratica: la risposta Lo del server cattura e riorganizza il valore restituito dall evecuzione del metodo sull oggetto rosso Lo server invia allo del client un pacchetto contenente le informazioni raccolte (l oggetto verde) registry Invia valore di ritorno o eccezione TCP/IP Socket, Servlet e Remote Method Invocation 40 20

21 RMI in pratica: la risposta Il server esegue il metodo invocato ed invia il valore di ritorno come se la chiamata fosse locale public DistributorImpl() throws RemoteException { public Job getnewjob(message msg) { System.out.println(msg); if( count < jobs.size()) { return (Job)jobs.elementAt(count++); else { System.exit(0); return null; Socket, Servlet e Remote Method Invocation 41 RMI in pratica: ricezione Lo client rioganizza le informazioni ricevute o l eccezione sollevata La connessione viene quindi disattivata registry TCP/IP Socket, Servlet e Remote Method Invocation 42 21

22 RMI in pratica: ricezione Il valore di ritorno è utilizzato come se fosse ora un oggetto locale ma non ha nessun riferimento con quello creato sul server (come per I parametri inviati con la chiamata) public class { [..] public void process() { try { Job myjob = server.getnewjob(new Message("Richiesta Job!")); myjob.process(); catch (Exception e) { System.out.println("Failed to receive job " + e.getmessage()); [..] Socket, Servlet e Remote Method Invocation 43 RMI: riassunto Nell esempio che vedremo: javac *.java rmic -v1.2 DistributorImpl rmiregistry 2000 & java DistributorImpl java Esegue il client Attiva il server Dopo in bind è attivo un thread separato per gestire le richieste di connessione, termina con CTRL-C Crea il file: DistributorImpl_Stub.class Senza l opzione viene creato anche il file DistributorImpl_Skel.class compatibile sia con Java 1.1 e 1.2 Attiva il server registry Socket, Servlet e Remote Method Invocation 44 22

23 RMI: download dello Lo generato dal server deve essere disponibile al client ma questo, in genere, è remoto registry Web Puo` essere scaricato tramite download HTTP HTTP file di criteri Security Manager TCP/IP Socket, Servlet e Remote Method Invocation 45 RMI: security manager RMISecurityManager con l associato file di criteri permette di scaricare mediante il protocollo HTTP È necessario un file di criteri public class { Distributor server; public () { try { System.setSecurityManager(new RMISecurityManager()); server = (Distributor)Naming.lookup( "rmi:// :2000/distributor ); catch(exception e) { System.out.println("Failed to find distributor" + e.getmessage()); Socket, Servlet e Remote Method Invocation 46 23

24 RMI: security manager Per utilizzare il file di criteri nel client: java -Djava.security.policy=client.policy Per indicare da dove scaricare il file dal server: java - Djava.rmi.server.codebase= aldoni/dowload/rmi1/ DistributorImpl grant file client.policy { permission java.net.socketpermission " : ", "connect"; permission java.net.socketpermission " :80", "connect"; ; Socket, Servlet e Remote Method Invocation 47 RMI: polimorfismo L oggetto inviati tramite RMI preservano il loro vero tipo Ma se il valore restituito è piu` specializzato di quello atteso dal client che succede? registry Web Download delle classi per trattare download l oggetto specializzato! HTTP file di criteri Security Manager TCP/IP Socket, Servlet e Remote Method Invocation 48 24

25 RMI: polimorfismo E se l oggetto inviato è piu` specializzato di quello atteso dal server? Download delle classi via HTTP durante l esecuzione del metodo sull oggetto remoto (sul server) IL server necessita a sua volta di un Security Manager per il controllo delle classi scaricate È nececessario un file di criteri per il download anche per il server Il client deve specificare dove scaricare le classi Socket, Servlet e Remote Method Invocation 49 RMI: polimorfismo Web HTTP download registry download HTTP Web file di criteri file di criteri Security Manager TCP/IP Socket, Servlet e Remote Method Invocation 50 25

Java Remote Method Invocation

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

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

Internet Socket e RMI

Internet 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

Dettagli

Internet Socket e RMI

Internet 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

Dettagli

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Programmazione in Rete e Laboratorio Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

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

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet: Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Internet Socket e RMI

Internet Socket e RMI Internet Socket e RMI una breve introduzione alla programmazione in rete Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. 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

Dettagli

Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni

Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni Una breve introduzione alle servlet Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149

Dettagli

Introduzione alle applicazioni di rete

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

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

(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

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Programmazione distribuita

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

Dettagli

RMI Remote Method Invocation

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:

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

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

Dettagli

Architettura Client-Server

Architettura 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

Dettagli

Programmazione di sistemi distribuiti

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

Dettagli

Programmazione dei socket con TCP #2

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

Dettagli

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

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)

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

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

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

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

Dettagli

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. 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

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Applicazioni distribuite

Applicazioni distribuite Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

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

Dettagli

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

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ò

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

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 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.

Dettagli

Esercitazione di Sistemi Distribuiti: Java RMI

Esercitazione 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

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

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

Dettagli

Introduzione a Java Remote Method Invocation (RMI)

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

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

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. (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

Dettagli

Programmazione server-side: Java Servlet

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

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 2 (proposta) Socket Java con connessione Luca Foschini Anno accademico 2015/2016 Esercitazione 2 1 Specifica

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

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

Dettagli

Sistemi Operativi (modulo di Informatica II)

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à

Dettagli

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 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

Dettagli

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

Dettagli

Altri tipi di connessione

Altri tipi di connessione Altri tipi di connessione Francesca Martelli f.martel@di.unipi.it Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo

Dettagli

Do-Dots Protocollo di comunicazione

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

Dettagli

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Laboratorio 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

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Esercitazione. Formato di compitini e compiti: domande ed esercizi closed book G. Ferrari - Reti di calcolatori. Esercitazione Formato di compitini e compiti: domande ed esercizi "closed book" Esercitazione - 1 Domanda 1 In una comunicazione di rete tra due host, quale è il client e quale è il server. Necessario:

Dettagli

appunti delle lezioni Architetture client/server: applicazioni server

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

Dettagli

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

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 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

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

Parte II: Reti di calcolatori Lezione 10

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

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Programmazione di rete in Java

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

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

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

Dettagli

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

Standard di comunicazione

Standard di comunicazione Standard di comunicazione Organizzato a livelli per ridurne la complessità e aumentarne la flessibilità il numero dei livelli e le loro funzionalità dipendono dal tipo di rete ogni livello formalizza un

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Corso di Reti di Calcolatori L-A

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

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

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

Dettagli

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) 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

Dettagli

Lezione 1 Introduzione

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

Dettagli

Java: Compilatore e Interprete

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

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte 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

Dettagli

Contesto e motivazioni Architettura e concetti di base Componenti di RMI RMIRegistry Interfacce, eccezioni e classi Lo sviluppo di una applicazione L

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

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

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 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

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Applicazioni web. Parte 5 Socket

Applicazioni web. Parte 5 Socket Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 5 Michele Tomaiuolo tomamic@ce.unipr.it Protocolli Internet I computer

Dettagli

RMI: metodi equals e hashcode

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

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

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 auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

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. 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

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

La sicurezza nel Web

La sicurezza nel Web La sicurezza nel Web Protezione vs. Sicurezza Protezione: garantire un utente o un sistema della non interazione delle attività che svolgono in unix ad esempio i processi sono protetti nella loro esecuzione

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

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

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Protocolli applicativi: FTP

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

Dettagli

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Calcolatori. Il Livello delle Applicazioni Reti di Calcolatori Il Livello delle Applicazioni Il DNS Gli indirizzi IP sono in formato numerico: sono difficili da ricordare; Ricordare delle stringhe di testo è sicuramente molto più semplice; Il Domain

Dettagli

Informatica per la comunicazione" - lezione 8 -

Informatica per la comunicazione - lezione 8 - Informatica per la comunicazione - lezione 8 - I multipli 1 KB (kilo) = 1000 B 1 MB (mega) = 1 mln B 1 GB (giga) = 1 mld B 1 TB (tera) = 1000 mld B Codifica binaria dei numeri Numerazione con base 10:

Dettagli

Remote Method Invocation (RMI)

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

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Esercizio 2. Client e server comunicano attraverso socket TCP

Esercizio 2. Client e server comunicano attraverso socket TCP Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si

Dettagli

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione INFORMATICA DISTRIBUITA prof. lez 4 Livello applicazione Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 applicazioni di rete Processo: programma in esecuzione

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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/

Dettagli

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Elementi sull uso dei firewall

Elementi sull uso dei firewall Laboratorio di Reti di Calcolatori Elementi sull uso dei firewall Carlo Mastroianni Firewall Un firewall è una combinazione di hardware e software che protegge una sottorete dal resto di Internet Il firewall

Dettagli

RMI. Prova pratica di Sistemi Distribuiti:

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

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

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

Dettagli

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita Organizzazione distribuita Il messaggio viene organizzato in pacchetti dal calcolatore sorgente. Il calcolatore sorgente instrada i pacchetti inviandoli ad un calcolatore a cui è direttamente connesso.

Dettagli