Cosa è una applicazione distribuita?

Slides:



Advertisements
Presentazioni simili
Corso di Fondamenti di Informatica
Advertisements

Socket Java Alberto Ferrari.
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Internet Concetti e termini (7.1.1).
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
IL NOSTRO LABORATORIO Di INFORMATICA. Nel nostro laboratorio abbiamo 24 postazioni con dei computer di tipo Desktop con queste caratteristiche: Sistema.
IL NOSTRO LABORATORIO Di INFORMATICA. Presentazione Nel nostro laboratorio abbiamo 24 postazioni con dei computer di tipo Desktop con queste caratteristiche:
ING. CARLO MANFUCCI COMUNE DI GROSSETO
Come programmare servizi di rete?
Eccezioni Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Lo sviluppo di applicazioni distribuite secondo il paradigma a scambio di messaggi Gianpaolo Cugola
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Introduzione al linguaggio Java
Architettura del World Wide Web
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Docente: Gabriele Lombardi
Programmazione distribuita in Java
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
JAVA E LA RETE L’architettura Java è network-ready
Corso di PHP.
Programmazione in Java
Programmazione in Java (9) Mauro Lorenzutti. 30/09/2005Corso Java - Mauro Lorenzutti2 Scaletta I/O Evoluto Serializzazione Comunicazioni via socket JUnit.
Corso di Informatica per Giurisprudenza Lezione 7
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Java Contardi Carlo A.S. 2008/09.
Prova di verifica Fondamenti Informatica 1 15 Febbraio 2008.
Sistemi Informativi sul Web
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Internet: una panoramica
FTP File Transfer Protocol
Programmazione ad oggetti
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 1 – World Wide.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione 3.
Sistemi di elaborazione dell’informazione Modulo 4 - Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione.
Servizi Internet Claudia Raibulet
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione 8.
Sistemi di elaborazione dell’informazione Modulo 4 - Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 2.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione 9.
Protocolli di rete. Sommario  Introduzione ai protocolli di rete  Il protocollo NetBEUI  Il protocollo AppleTalk  Il protocollo DLC  Il protocollo.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione può.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
I NTERNET Rete interconnessa che permette il collegamento tra due host eterogenei, appartenenti a reti differenti separati anche da grande distanze. Internet.
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Transcript della presentazione:

Cosa è una applicazione distribuita? Più programmi in esecuzione su computer diversi che collaborano scambiandosi dati o anche codice Esempi: World Wide Web, Ftp, Telnet Prestazioni dipendenti da banda e latenza, piuttosto che da potenza (memoria, velocità processore) del singolo computer

Paradigmi di programmazione Interazione tra i vari componenti indipendente dalla locazione fisica e trasparente per l’utente. Approcci: CLIENT/SERVER REMOTE EVALUATION CODE ON DEMAND AGENTI MOBILI

Client-Server Un Programma Client richiede servizi messi a disposizione da un programma Server (anche sulla stessa macchina) Richieste Risposte Server Esempi Telnet: Permette di operare su un computer remoto come se fosse locale X-Window: ogni applicazione per accedere al display chiede servizi al server X-window Vengono scambiati solo dati

Architettura Client/Server Programmabile. Remote Evaluation Un programma X usa le risorse sulla macchina in cui risiede un programma Y, fornendo ad Y il codice per usarle. Architettura Client/Server Programmabile. Word Comandi Output Desiderato Esempio: Uso di una periferica Word usa le risorse della periferica inviando i comandi necessari per produrre l’output desiderato

Code On Demand Un programma X ha le risorse da utilizzare e chiede ad un programma Y le istruzioni da eseguire Richieste Risposte con codice Web Server Browser Esempio: Il browser ha le risorse (monitor, primitive grafiche) Il server cerca il documento richiesto e lo invia al browser Il browser interpreta il documento e lo presenta all’utente

Agenti Mobili Un programma X si trasferisce su un altro computer con i suoi dati e continua la sua esecuzioni lì. Es. La macchina su cui risede X non ha la potenza di calcolo necessaria. X si trasferisce su un computer potente, effettua le operazioni e infine ritorna sul computer da cui era partito Conseguenze: Riduzione utilizzo della rete (solo 2 comunicazioni) rispetto alla chiamata di diversi servizi su server

Cosa offre JAVA Socket -Remote Method Invocator RMI Classi utilizzabili dall’utente per scrivere facilmente applicazione Client/Server -Remote Method Invocator RMI Permette ad oggetti su computer diversi di comunicare tra loro -Downloading dinamico della classi Gli Applet sono un esempio di code-on-demand -Serializzazione degli oggetti Anche i threads sono oggetti che possono essere spediti: remote-evaluation (N.B. Lo stato di esecuzione del thread non può essere serializzato; artifici per gli agenti mobili) Punto di forza: Indipendenza dalla piattaforma! Anche il codice può essere scambiato.

Esercitazione JAVA: Socket (25/01)

Sommario: java.net La classe InetAddress: rappresentazione degli indirizzi IP Un programma che parla con un altro: approccio Client/Server Le Classi Socket e ServerSocket Esempi: EchoClient, HTTP Client

Cosa è un Socket? Accept Server Client Richiesta connessione: Il Socket il punto di ingresso/uscita di un programma verso un altro programma. Come si indirizza un programma? Macchina su cui corre (host name o IP) + identificativo del programma (numero di porta) Da un punto di vista astratto.. Accept Server Client Richiesta connessione: Host name + port number

Cosa è un Socket? Client Server Client Richiesta connessione: Supponiamo arrivi un altro client.. Il server ha adesso 2 Socket attivi (due collegamenti con applicativi esterni..). Ogni Socket e’ individuato da 4 parametri: IP + porta locale IP + porta remota Richiesta connessione: Host name + port number Client Accept Server Client 2 Socket diversi con la stessa porta locale!

Implementazione di Socket Nel package java.net esistono due diverse classi che implementano il concetto di Socket: una per il socket nel programma Server e l’altra per il socket nel programma Client. ServerSocket(int port) ServerSocket(int port, int count) Socket(String host, int port) Socket(InetAddress adr, int port) ServerSocket: occorre specificare porta di ascolto e/o numero max di client; Server (Client): occorre specificare host di destinazione (nome host o IP) e numero di porta del server. Aggiungere un oggetto Socket ad un applicativo consente la comunicazione con altri applicativi!

Rappresentazione di un Host 2 Modi possibili: Concetto: Nome host -> Implementazione: String Concetto: Indirizzo IP -> Implementazione: Classe InetAddress Si puo’ passare dall’una all’altra rappresentazione molto semplicemente; l’utente non deve occuparsi di nulla (es. Interrogazione DNS) InetAddress

Esempio: uso di InetAddress class IPDemo{ public static void main(String[] args) throws Exception { InetAddress a, my; //Metodi statici: non si riferiscono ad un //oggetto in particolare a = InetAddress.getByName("www.tti.unipa.it"); my = InetAddress.getLocalHost(); //Metodi propri: si applicano ad un oggetto di //tipo InetAddress String hostIP = a.getHostAddress(); String host = a.getHostName(); String myhost = my.getHostName(); String myIP = my.getHostAddress(); } Consente di ottenere la risoluzione dei nomi e degli indirizzi

Esempio: L’Echo Server 3 Passi fondamentali: a) Mettere un Socket in Ascolto specificando un numero di porta ServerSocket listen = new ServerSocket(port); b) Aspettare l’arrivo del cliente (istruzione bloccante) Socket client = listen.accept(); c) Collegare opportunamete gli stream di ingresso e di uscita per eseguire il servizio (tutto quello che arriva da in deve andare su out): InputStream i = client.getInputStream(); OutputStream o = client.getOutputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(i)); PrintWriter output = new PrintWriter(o); Server output o in (InputStreamReader) i

Cosa succede quando si accetta un Client? L’utente non deve preoccuparsi di nulla. Astraendo completamente da tutto quello che succede sotto, tra server e client puo’ semplicemente considerare instaurato un condotto di bit in entrambe le direzioni. Server Client

Esempio: L’Echo Client 3 Operazioni fondamentali: a) Fare una richiesta di connessione ad un server Socket server = new Socket(“localhost”, port); b) Verificare che la richiesta sia accolta (non si generano eccezioni: es. Host sconosciuto, connessione rifiutata, etc. ) try… catch(Exception e) c) Collegare opportunamete gli stream di ingresso e di uscita per attivare la fruizione del servizio (stream verso i socket e verso la tastiera): InputStream i = client.getInputStream(); OutputStream o = client.getOutputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(i)); BufferedReader stdIn = new BufferedReader( new InputStreamReader(System.in)); PrintWriter output = new PrintWriter(o);

Esercizi Scrivere un programma che legga da tastiera il nome di un host e restituisca l’indirizzo IP dell’host. Dopo aver visto in funzione Echo Client ed Echo Server, provare ad implementare un server che restituisca l’echo invertito (usare la classe StringBuffer e il metodo reverse). Scrivere un programma server che letto da client il nome di un file testo del suo archivio, provvede ad inviarlo al cliente.