appunti delle lezioni Architetture client/server: applicazioni client



Documenti analoghi
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 server

appunti delle lezioni Architetture client/server: applicazioni server

Protocolli applicativi: FTP

Reti di Telecomunicazione Lezione 6

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Telecomunicazione Lezione 8

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

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

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

Programmazione Web. Introduzione

OSOR. Applicazioni di Rete

HTTP adaptation layer per generico protocollo di scambio dati

Parte II: Reti di calcolatori Lezione 10

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Dal protocollo IP ai livelli superiori

Informatica per la comunicazione" - lezione 9 -

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Parte II: Reti di calcolatori Lezione 12

Informatica per la comunicazione" - lezione 8 -

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Corso di Informatica Modulo T3 B2 - Database in rete

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Internet Architettura del www

PROTOCOLLI APPLICATIVI PER INTERNET

Architetture e applicazioni web

Architetture Web Protocolli di Comunicazione

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

InterNet: rete di reti

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Standard di comunicazione

Lo scenario: la definizione di Internet

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

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

Architettura Client-Server

Le Reti Informatiche

Aspetti SW delle reti di calcolatori. L architettura del sistema. La struttura di Internet 22/04/2011

Come pubblicare un server MDaemon su Internet per ricevere in SMTP. Claudio Panerai - Direttore Tecnico di Achab S.r.l. claudio.panerai@achab.

Reti di Telecomunicazione Lezione 7

12.5 UDP (User Datagram Protocol)

INTRODUZIONE A INTERNET per studenti universitari

Reti di calcolatori. Reti di calcolatori

Telematica II 12. Esercitazione/Laboratorio 4

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

Datagrammi. NOTA: MulticastSocket estende DatagramSocket

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

Inizializzazione degli Host. BOOTP e DHCP

TCP/IP: INDIRIZZI IP SIMBOLICI

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

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

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

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

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

2.1 Configurare il Firewall di Windows

Internet: architettura e servizi

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Internet: architettura e servizi

M-BOX V Profilo di Prodotto

Esercizio 2. Client e server comunicano attraverso socket TCP

I canali di comunicazione

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Corso di Reti di Calcolatori T

Antonio Cianfrani. Extended Access Control List (ACL)

Cenni di programmazione distribuita in C++ Mauro Piccolo

Programmazione dei socket con TCP #2

Sicurezza delle applicazioni web: protocollo HTTP

Protocolli di Comunicazione

Guida Google Cloud Print

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Livello Applicazione. Davide Quaglia. Motivazione

Realizzazione siti web. Protocolli Internet

Le reti. Introduzione al concetto di rete. Classificazioni in base a

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Guida Google Cloud Print

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

Livello di Applicazione in Internet

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

I canali di comunicazione

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Elementi di Informatica e Programmazione

Lezione 1 Introduzione

Client - Server. Client Web: il BROWSER

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

T42 Tunnel For Two Secure SSL InterApplication Relay Clizio Merli - 4u Srl S.r.l.

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Servizio di Posta elettronica Certificata (PEC)

Università Magna Graecia di Catanzaro Facoltà di Medicina e Chirurgia Corso di Laurea in Scienze Infermieristiche Polo Didattico di Reggio Calabria

Transcript:

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 semplice di un sistema basato su un architettura C/S Browser 1. richiesta: http://server/prova.html 3. risposta: il file prova.html Server web 2. elaborazione: recupera il file Il browser, nel ruolo di client, deve inviare la richiesta in modo tale che: giunga al server web sia correttamente interpretabile dal server web Il server web, nel ruolo di server, deve inviare la risposta in modo tale che: giunga al browser sia correttamente interpretabile dal browser Dunque: il browser e il server web devono essere connessi mediante un infrastruttura di trasmissione il browser e il server web devono parlare la stessa lingua 2

Requisiti e soluzioni Client e server devono essere connessi mediante un infrastruttura di trasmissione: è il compito dell'infrastruttura fisica e, sopra di essa, di TCP/IP, che mette a disposizione un sistema affidabile di trasporto e di indirizzamento Client e server devono parlare la stessa lingua, un protocollo che si pone sopra a TCP/IP e definisce gli aspetti applicativi della comunicazione (dato che tutti i problemi di trasmissione si suppone siano gestiti appunto da TCP/IP) Le varie applicazioni client e server non sanno nulla di trasmissione, e si occupano solo delle questioni relative al protocollo applicativo che parlano (HTTP per web, SMTP, POP3 e/o IMAP4 per email, ) Questa è una caratteristica generale: tutte le applicazioni basate su Internet affidano la risoluzione dei problemi di trasmissione a TCP/IP TCP/IP, e TCP in particolare, mette a disposizione dei programmatori un insieme di comandi che consentono alle applicazioni stesse di risolvere tutti i problemi di trasmissione senza occuparsi dei relativi dettagli: questa interfaccia di programmazione è fondata sulla metafora delle porte (port) e dei connettori (socket) 3 La logica C/S dal lato del client Ogni applicazione server è attiva su un calcolatore identificato da un indirizzo IP ed è in ascolto, in attesa di richieste, su una porta TCP Per connettersi a un applicazione server, dunque, un applicazione client deve aprire un socket specificando l indirizzo di un server (come indirizzo IP o, se un DNS è disponibile, come indirizzo simbolico) e una porta TCP La libreria LIUC (cioè il file liuc.jar) contiene in particolare il package it.liuc.net che contiene in particolare la classe ClientSocketManager il cui costruttore è: ClientSocketManager(java.lang.String host, java.lang.string port) La costruzione di un oggetto della classe ClientSocketManager corrisponde all apertura di un socket verso l applicazione in ascolto sulla porta port del calcolatore host I metodi della classe sono: void inviarichiesta(java.lang.string msg) Invia una richiesta al server connesso attraverso il socket java.lang.string ricevirisposta() Riceve la risposta prodotta dal server connesso attraverso il socket void chiudi() Chiude il socket 4

Applicazioni server e protocolli applicativi Naturalmente non siamo noi i primi a creare sistemi su TCP: esiste un elenco di applicazioni a ognuna delle quali è associata una well-known port (queste porte, tra 0 e 1023, sono assegnate e gestite dalla IANA, Internet Assigned Numbers Authority; si veda la pagina http://www.iana.org/assignments/port-numbers) e ognuna delle quali implementa un determinato protocollo applicativo per la comunicazione con i client Le porte sopra al 1023 sono generalmente utilizzabili per applicazioni custom Dal punto di vista dei client, identifichiamo tre categorie di protocolli (e quindi, corrispondentemente, di server); dal più semplice al più complesso: a risposta in connessione a risposta in ricezione di richiesta con stato 5 Protocolli a risposta in connessione Dal punto di vista del client la logica di questi protocolli è semplicissima: il client apre un socket se l operazione ha successo: o il client riceve la risposta dal server e quindi chiude il socket Protocolli di questo tipo sono, per esempio, daytime (porta 13) e qotd (quote of the day, porta 17) Ecco il più semplice client che parla questi protocolli: import it.liuc.net.*; public class ClientTCP0 { public static void main(string[] args) { System.out.println(new ClientSocketManager("host", "port").ricevirisposta()); dunque molto semplice anche perché, in effetti, dal punto di vista del client si tratta di un unico protocollo: le uniche differenze tra singoli protocolli riguardano il contenuto della risposta Naturalmente possiamo strutturare un po meglio (e più chiaramente) l applicazione 6

Protocolli a risposta in connessione /2 import it.liuc.io.*; import it.liuc.net.*; public class ClientTCP1 { public static void main(string[] args) { OutputManager myout = new OutputManager(); try { ClientSocketManager mysock = new ClientSocketManager("host", "port"); myout.scrivilinea(mysock.ricevirisposta()); mysock.chiudi(); catch (Exception e) { myout.scrivilinea("errore: " + e.getmessage()); System.exit(-1); ma la logica è evidentemente la stessa, e rimane semplice 7 Protocolli a risposta in ricezione di richiesta Dal punto di vista del client questi protocolli estendono la logica dei protocolli a risposta in connessione: il client apre un socket se l operazione ha successo: o il client invia una richiesta al server e si mette in attesa o il client riceve la risposta dal server e quindi chiude il socket Questi protocolli si caratterizzano per: il formato della richiesta che deve essere sottoposta al server il formato della risposta che il server invia al client Il più semplice esempio di un protocollo di questo tipo è echo (porta 7), che visualizza come risposta lo stesso testo inviato come richiesta 8

L esempio di un client echo import it.liuc.io.*; import it.liuc.net.*; public class ClientEcho { public static void main(string[] args) { OutputManager myout = new OutputManager(); try { InputManager myin = new InputManager(); while(true) { ClientSocketManager mysock = new ClientSocketManager("host", "7"); mysock.inviarichiesta(myin.leggilinea("> ")); myout.scrivilinea(mysock.ricevirisposta()); mysock.chiudi(); catch (Exception e) { myout.scrivilinea(e.getmessage()); System.exit(-1); 9 http HyperText Transfer Protocol (porta 80) è un protocollo a risposta in ricezione di richiesta; le sue specifiche di base sono molto semplici: sia la richiesta sia la risposta hanno lo stesso formato generale: una linea iniziale zero o più linee di intestazione (header) una linea bianca zero o più linee di contenuto (body) del messaggio Un esempio di dialogo http è: richiesta: GET /dir/file.html HTTP/1.0 Accept: */* User-Agent: nome del client Host: host:porta linea bianca risposta: HTTP/1.0 200 OK Date: data attuale Content-Type: text/html Server: nome del server Content-Length: lunghezza del file linea bianca <html> <body> prosegue con il resto del file 10

Protocolli con stato Dal punto di vista del client questi protocolli estendono la logica dei protocolli a risposta in ricezione di richiesta: il client apre un socket se l operazione ha successo: o il client invia una prima richiesta al server e si mette in attesa o il client riceve la risposta dal server o il client invia una seconda richiesta al server e si mette in attesa o il client riceve la risposta dal server o o alla fine, il client chiude il socket Questi protocolli si caratterizzano per: il formato della serie di richieste che devono essere sottoposte al server il formato della serie di risposte che il server invia al client 11