Lezione 6 Prof Angela Bonifati Applicazioni di sistemi
Lezione 6 Prof. Angela Bonifati Applicazioni di sistemi distribuiti Applicazioni su Internet Cenni di Database Introduzione ai sistemi informatici
Applicazioni di SD Introduzione ai sistemi informatici
Applicazioni come sistemi distribuiti I sottosistemi di cui un’applicazione è costituita possono risiedere (ed essere in esecuzione) su calcolatori diversi connessi in rete: si parla in tal caso di applicazioni distribuite L’architettura più diffusa per la realizzazione di applicazioni distribuite è chiamata client-server: Øl’utente tramite il programma client produce una richiesta da inviare al server e ottiene da esso la relativa risposta Øil programma server, in esecuzione su un calcolatore raggiungibile sulla rete, ricevendo una richiesta dalla rete, la elabora e produce una risposta, che reinvia sulla rete 16/09/2021 Introduzione ai sistemi informatici 3
Architettura client-server: un esempio Un “sommatore distribuito”: Ø interagendo con il client l’utente specifica due numeri Ø il client attiva la richiesta al server, passandogli i due numeri come parametri Ø il server riceve la richiesta e attiva il suo sottoprogramma sommatore, passandogli i due parametri ricevuti Ø il sottoprogramma sommatore produce il risultato e lo rende disponibile Ø il server invia tale risultato come risposta al client Ø il client riceve la risposta e ne visualizza il contenuto per l’utente 16/09/2021 Introduzione ai sistemi informatici 4
Web come esempio di sistema distribuito World Wide Web è realizzato come sistema distribuito client-server, in cui il client è un browser e il server è un server web: Øl’utente si connette a Internet e mette in esecuzione il browser; quindi scrive nella barra dell’indirizzo: http: //www. curioso. it/Cose. Interessanti/Bello. Questo. txt e preme Invio Øil browser genera automaticamente un testo del tipo: GET /Cose. Interessanti/Bello. Questo. txt HTTP/1. 1 User-Agent: Mozilla/4. 0 (compatible; MSIE 5. 5; Windows NT 5. 0) Accept: */* e lo invia al server www. curioso. it come richiesta Øricevendo la richiesta, il server web cerca il file richiesto (/Cose. Interessanti/Bello. Questo. txt) e, trovatolo, produce un messaggio del tipo: HTTP/1. 1 200 OK Server: Microsoft-IIS/5. 0 content-type: text/plain content-length: 14 Saluti a tutti che invia come risposta al browser da cui aveva ricevuto la richiesta Ø il browser visualizza il contenuto del file, accodato all’intestazione della risposta 16/09/2021 Introduzione ai sistemi informatici 5
HTTP come esempio di protocollo applicativo Nella comunicazione tra client e server non è sufficiente che richiesta e risposta giungano correttamente al destinatario: occorre che i due programmi comunicanti siano in grado di comprendere le rispettive comunicazioni, cioè “parlino la stessa lingua”: devono perciò condividere uno stesso protocollo applicativo Nel caso di web il protocollo applicativo, che specifica il formato dell’intestazione sia della richiesta del browser sia della risposta del server web, è Hyper. Text Transfer Protocol (HTTP) Per esempio la risposta: HTTP/1. 1 200 OK Server: Microsoft-IIS/5. 0 content-type: text/plain content-length: 14 Saluti a tutti Intestazione HTTP, con informazioni sul server web che ha prodotto la risposta e sul file restituito Linea bianca: separatore tra intestazione e corpo del messaggio Corpo del messaggio: contenuto del file restituito 16/09/2021 Introduzione ai sistemi informatici 6
Il problema dell’identificazione delle risorse Per poter accedere ai servizi applicativi messi a disposizione dai server sulla rete e creare quindi un’applicazione distribuita, è necessario che ognuno di tali servizi risulti univocamente identificabile da parte dei client Nel caso di Internet si è standardizzato uno schema uniforme di identificazione applicativa, che consente di assegnare un metodo di accesso e un indirizzo, chiamati congiuntamente Uniform Resource Locator (URL), a ogni risorsa presente sulla rete In generale, un URL ha la forma: Per esempio: protocollo: //host: porta. TCP/risorsa http: //server 1. isttec. liuc. it: 80/dida/calendario. htm protocollo applicativo adottato indirizzo del server web a cui è inviata la richiesta 16/09/2021 porta TCP su cui è nome completo in esecuzione il del file richiesto server web Introduzione ai sistemi informatici 7
Applicazioni su Internet Introduzione ai sistemi informatici
Elaborazione su Internet Ø Cosa serve? • un computer • una connessione TCP/IP • collegamento a Internet mediante router • oppure: linea telefonica + modem + provider • programmi client 16/09/2021 Introduzione ai sistemi informatici 9
Modem /1 Connessione di calcolatori attraverso la rete telefonica (analogica). Ø Velocità crescenti dal 1980 in poi Ø • V. 22 bis, V. 32 & V. 32 bis furono i primi standard per velocità di 2. 4, 9. 6 e 14. 4 Kbit/s. • V. 34 (1994) supporta 28. 8 Kbit/s e corrisponde al minimo livello attualmente accettato • V. 34+ (1996) arriva a 33. 6 Kbit/s • V. 90 arriva a 56 Kbit/s downstream e a 33. 6 Kbit/s upstream. • downstream indica dal digitale all’analogico • upstream indica dall’analogico al digitale 16/09/2021 Introduzione ai sistemi informatici 10
Modem /2 La linea telefonica trasmette bene segnali tra 1000 e 2000 Hz si usano come portanti (carrier). Ø Modulazione del carrier portare un segnale digitale Ø • Modulazione di ampiezza usa due voltaggi diversi per 0 e 1; • Modulazione di frequenza (frequency shift keying) tensione costante, ma cambia la frequenza • Modulazione di fase ampiezza e frequenza costanti, cambia la fase. Ø Il numero di possibili cambiamenti di segnale al secondo si chiama baud. • È possibile associare 2 o più bit a ogni segnale, allora il bit rate è maggiore del baud rate. 16/09/2021 Introduzione ai sistemi informatici 11
I provider Ø Internet Service Provider (ISP) • organizzazioni, pubbliche o private, che affittano all'utenza privata accessi ad Internet Ø Un provider dispone di uno o più host collegati ad Internet con linee dedicate, attive 24 ore su 24 • gli host possono fornire temporaneamente accesso ai servizi di rete a decine o centinaia di computer mediante modem e linee telefoniche 16/09/2021 Introduzione ai sistemi informatici 12
Programmi client Ø Sono quei programmi che consentono di usufruire dei servizi della rete. Ø Esempi: • mailer (Eudora, Netscape Comunicator, Outlook, …) • browsers (Netscape, Microsoft Explorer, …) • plug-in (Adobe Acrobat Reader, Real Player, …) • telnet • ftp 16/09/2021 Introduzione ai sistemi informatici 13
Architettura client-server Ø Il client è un programma dotato di interfaccia utente, che consente di richiedere dati ed elaborazioni al server Ø Il server mantiene dati e programmi e si occupa di effettuare elaborazioni e trasmissioni su richiesta Ø Il dialogo client-server è regolato da protocolli del livello delle applicazioni, tra cui: • Simple Mail Transfer Protocol (SMTP) per la posta; • File Transfer Protocol (FTP) per i file; • Hyper-Text Transfer Protocol (HTTP) per il Web. 16/09/2021 Introduzione ai sistemi informatici 14
Client-Server: schema 16/09/2021 Introduzione ai sistemi informatici 15
World Wide Web (WWW) Architettura software per gestire dati distribuiti geograficamente basata sulla nozione di ipertesto Ø Pagine web: ipertesti che possono contenere testo, immagini, suoni, programmi eseguibili Ø • un utente legge le pagine, se seleziona un link la pagina viene sostituita con quella richiesta (scaricata dal sito remoto) Ø Si appoggia a TCP/IP e quindi è compatibile con ogni tipo di macchina collegata ad Internet 16/09/2021 Introduzione ai sistemi informatici 16
Struttura del Web Architettura Client-server Ø Client (detto browser) permette la navigazione nel web Ø • trasmette le richieste di pagine/dati remoti, riceve le informazioni e le visualizza sul client • A volte utilizza programmi esterni (plug-in) per gestire i dati ricevuti Ø Il Server è un processo sempre attivo che aspetta e serve le richieste dei client • restituisce la pagina richiesta oppure un messaggio di errore 16/09/2021 Introduzione ai sistemi informatici 17
Web: Client-Server SERVER Richiesta Explorer CNN. COM Last News Pagina INTERNET 16/09/2021 Introduzione ai sistemi informatici 18
Domini=suddivisione logica di Internet per facilitare la gestione dei nomi delle risorse Ø Internet è suddivisa in una moltitudine di domini radice Ø • Domini nazionali: • Domini generici: Ø uk com it edu de Un dominio radice include una collezione di host e può essere suddiviso a sua volta in sottodomini e così via • Sottodominio del DISI: disi. unige. it 16/09/2021 Introduzione ai sistemi informatici 19
Spazio dei nomi dei domini com gov org yahoo it unige unipi microsoft research 16/09/2021 jp . . . ac co . . . disi dist di Introduzione ai sistemi informatici 20
Name Server Lo spazio dei nomi è diviso in zone gestiti da un server principale e server secondari che mantengono la lista degli host inclusi nel dominio (database dei nomi) Ø Se un server non trova un nome nel suo database manda una richiesta al server del dominio antenato o successore e così via (interrogazioni ricorsive) Ø Si usa una memoria cache per mantenere gli indirizzi recuperati tramite altri server Ø 16/09/2021 Introduzione ai sistemi informatici 21
Domain Name Server Lo spazio dei nomi è memorizzato quindi sotto forma di database distribuito Ø Ogni rete locale ha un proprio server DNS che mappa nomi logici (indirizzi DNS) in indirizzi fisici (indirizzi IP) Ø N. B. : Indirizzi IP = codice numerico (binario) utilizzato dal protocollo di invio dati del modello TCP/IP Ø • Es. 121. 34. 16. 19 16/09/2021 Introduzione ai sistemi informatici 22
URL: indirizzi nel Web URL (Uniform Resource Location) è uno standard per il formato degli indirizzi delle risorse sul Web Ø Specifica: Ø • Come si vuole accedere alla risorsa (metodo) • Dove si trova la risorsa (indirizzo server) • Nome della risorsa (nome) Ø Formato: • Metodo: //host/nome 16/09/2021 Introduzione ai sistemi informatici 23
Metodo Ø http: protocollo gestione ipertesti Ø ftp: trasferimento file Ø news: gruppi di discussione Ø telnet: accedere a macchine remote Ø file: accedere a documenti locali 16/09/2021 Introduzione ai sistemi informatici 24
Nome (mnemonico) di dominio del server DNS al quale si vuole chiedere la risorsa Ø Esempio: Ø Nome • Server Web DISI: www. disi. unige. it • Server FTP DISI: ftp. disi. unige. it 16/09/2021 Introduzione ai sistemi informatici 25
Nome risorsa Ø Path name (cammino) che porta al file contente la risorsa (es pagina, foto, ecc) nello spazio di dati gestito dal server del sito contattato • Esempio: • http: //www. icar. cnr. it/angela/teaching/intro/ Ø Solitamente ogni sito ha una pagina di ingresso denominata index. html • I seguenti url sono equivalenti • http: //www. icar. cnr. it/angela/index. shtml • http: //www. icar. cnr. it/angela/ 16/09/2021 Introduzione ai sistemi informatici 26
Problemi di sicurezza La parte di File System del server accessibile al client è controllata dal server (i nomi delle risorse sono relativi a tale parte di file system!) Ø Il client può scaricare dalla rete programmi (es Java) che vengono poi automaticamente eseguiti dal browser (ad es animazioni); tali programmi hanno permessi molto limitata per evitare intrusioni nel sistema del client Ø 16/09/2021 Introduzione ai sistemi informatici 27
Pagine Web basato su un linguaggio ipertestuale che associa indirizzi URL a parti di documento chiamati link Ø Selezionando un link (ad es. con il mouse) si scarica una pagina dal server DNS identificato dal corrispondente URL Ø Le applicazioni che gestiscono pagine web vengono dette browser Ø • Netscape • Explorer 16/09/2021 Introduzione ai sistemi informatici 28
Come fornire servizi sul web? • Dobbiamo avere a disposizione spazio su disco di un server di un sottodominio e quindi ottenere un indirizzo URL per le nostre risorse • Dobbiamo creare delle pagine web che i clienti possano leggere con i loro browser collegandosi al nostro indirizzo URL • Tramite le pagine spieghiamo quali risorse mettiamo a disposizione 16/09/2021 Introduzione ai sistemi informatici 29
Linguaggio per Pagine Web Ø Si utilizza il linguaggio HTML (Hyper. Text Markup Language) che utilizza annotazioni per descrivere come verrà visualizzato il documento sul browser di un cliente • Es: La prossima parola è in <b>neretto</b> Ø Il browser interpreta le annotazioni traducendole in effetti grafici • Es: La prossima parola è in neretto Ø Alcuni tool forniscono direttamente l’effetto desiderato senza dover usare HTML 16/09/2021 Introduzione ai sistemi informatici 30
Alcuni esempi Ø Ø Ø Ø Pagina web racchiusa nel comando <HTML>. . </HTML> Intestazione: <HEAD>. . . </HEAD> Corpo pagina: <BODY>. . . </BODY> <P>: inizia un paragrafo <BR>: fine linea <B>. . . </B>: testo in bold <I>. . . </I>: testo in italico 16/09/2021 Introduzione ai sistemi informatici 31
Altri tag Link <A HREF=“indirizzo URL”>. . . </A> Ø Immagine <IMG SRC=“nome_immagine”> Ø Linea di separazione: <hr> Ø Caratteri accentati: Ø • &caratteregrave (es à=à) • &carattereacute (es é=é) 16/09/2021 Introduzione ai sistemi informatici 32
Sorgente pagina web <HTML> <BODY> <b>Marco Rossi</b> Ph. D Student Università di Genova <IMG SRC=“marco. gif”><hr> Per scaricare la mia tesi premi qui sotto <a href=“ftp: //ftp. disi. unige. it/Rossi. M/tesi. ps”> <i>TESI</i></a> </BODY> </HTML> 16/09/2021 Introduzione ai sistemi informatici 33
Pagina visualizzata su browser Marco Rossi Ph. D Student Università di Genova Per scaricare la mia tesi premi qui sotto TESI 16/09/2021 Introduzione ai sistemi informatici 34
Ipertesto 16/09/2021 Introduzione ai sistemi informatici 35
Form e interazione con cliente Si possono creare pagine che permettono all’utente di immettere dati attraverso FORM (moduli da compilare) Ø I dati vengono gestiti poi da programmi residenti sul server Ø Ad esempio servono per E-commerce o per consultare cataloghi (biblioteche virtuali) Ø 16/09/2021 Introduzione ai sistemi informatici 36
Motori di ricerca Ø Raccolgono indirizzi URL di migliaia di siti e forniscono un catalogo che l’utente può consultare • navigando nelle pagine fornite dal motore di ricerca Ø Permettono all’utente di immettere parole chiavi tramite FORM • per cercare informazioni, siti, pagine di persone, ecc Esistono anche motori di ricerca che utilizzano altri motori di ricerca… Ø Esempi: Google Yahoo Altavista Lycos Virgilio Ø 16/09/2021 Introduzione ai sistemi informatici 37
Posta elettronica Servizio per trasmettere dati (messaggi) tra vari utenti Ø Sistemi di posta elettronica supportano: Ø • • Composizione di messaggi Trasferimento al destinatario Visualizzazione e cancellazione Caselle di posta (Mailbox) per memorizzare i messaggi in arrivo • Mailing list (lista di indirizzi) 16/09/2021 Introduzione ai sistemi informatici 38
Invio di messaggi Ø Occorre fornire un messaggio, e l’indirizzo del destinatario Ø L’indirizzo ha la seguente forma Mailbox@locazione e viene gestito dal DNS server del nostro dominio Ø Es. 16/09/2021 giorgio@disi. unige. it Introduzione ai sistemi informatici 39
Formato dei messaggi Ø To: (destinatario) Ø Cc: (in copia a) Ø Bcc: (copia trasparente) Ø From: mittente Ø Sender: indirizzo del mittente Ø Testo del messaggio Ø Attachment MIME foto, suoni, ecc) 16/09/2021 Introduzione ai sistemi informatici 40
Applicazioni per posta Ø Esistono molte applicazioni che permettono di leggere la posta e mantenere mailbox • • 16/09/2021 Explorer Outlook Netscape Eudora Introduzione ai sistemi informatici 41
Mailing list (liste di discussione) Ø strumenti di discussione attraverso mail elettronica • esistono mailing list su svariati argomenti e in tutte le lingue • sulle M. L. avvengono discussioni, si fanno annunci, si distribuiscono bollettini elettronici … Ø una mailing list e’ un indirizzo di mail che redistribuisce il messaggio ad una lista di indirizzi (gli iscritti alla mailing list) • es: mail mathlist@dm. unibo. it 16/09/2021 Introduzione ai sistemi informatici 42
Mailing list Ø Iscrizione e rimozione • mail majordomo@somewhere. com • subject: subscribe nomelista • body: subscribe nomelista • mail majordomo@somewhere. com • subject: unsubscribe nomelista • body: unsubscribe nomelista Ø Vantaggi e svantaggi • • 16/09/2021 solo chi e’ veramente interessato usa una mailing list utenti scorretti possono essere rimossi puo’ essere difficile da trovare aumento del numero di mail ricevute Introduzione ai sistemi informatici 43
Newsgroups (conferenze in rete) Ø A differenza dei messaggi postali, quelli inviati a una conferenza non hanno un vero e proprio destinatario • sono semplicemente 'affissi' su una bacheca virtuale. • Chi passa di lì, ed è interessato all'argomento, può leggerli, commentarli, rispondere. Ø Possono essere • moderate: qualcuno controlla i messaggi prima di pubblicarli nella “bacheca” • libere Ø Per accedere occorre un programma “newsreader” 16/09/2021 Introduzione ai sistemi informatici 44
Newsgroups: funzionamento Ø Gestione completamente distribuita Ø Molti News-servers sparsi per il mondo: • Ogni News-server riceve i messaggi dei suoi utenti e li invia agli altri news-servers Ø Alcuni gruppi vengono oscurati Ø Alcuni gruppi sono moderati Ø I messaggi durano un tempo limitato 16/09/2021 Introduzione ai sistemi informatici 45
Newsgroups: accesso Ø Tramite un Provider: • Il provider dovrebbe essere obbligato a mostrare i gruppi richiesti dall’utente. Ø Tramite un News-Server gratuito Ø Tramite accesso diretto ad un News-Server usando il browser Netscape • (Collabra Discussion Groups) 16/09/2021 Introduzione ai sistemi informatici 46
Newsgroups: gerarchie I newsgroups sono organizzati in gerarchie ad albero per argomenti e sotto-argomenti Ø La forma generale del nome di un newsgroup e’ del tipo: Ø • categoria. argomento. sotto-argomento Ø alt (gli argomenti piu’ disparati) • es: alt. music. pink-floyd • alt. astrology • alt. fan. simpsons 16/09/2021 Introduzione ai sistemi informatici 47
Newsgroups: gruppi regionali Normalmente riproducono Newsgroups di lingua inglese in una lingua locale Ø Trattano argomenti significativi solo per una certa area Ø • es: ricerche/offerte di lavoro, politiche/culture locali, . . . Possono essere a livello di singola nazione o anche di singola città Ø Categorie: Ø • it. - es. - uk. - fr. -. . 16/09/2021 Introduzione ai sistemi informatici 48
Cenni su DB Introduzione ai sistemi informatici
L’organizzazione funzionale di un’applicazione informatica IU sottosistema di interfaccia con l’utente (user interface, o anche presentation layer), incaricato di controllare i comandi e i dati che l’utente fornisce come input al sistema e di presentare come output i risultati dell’esecuzione del programma 16/09/2021 sottosistema di logica applicativa (business logic layer), che implementa gli specifici algoritmi di manipolazione dei dati che caratterizzano l’applicazione Introduzione ai sistemi informatici LA GD sottosistema di gestione dei dati (data layer), che si occupa dell’organizzazione dei dati, e in particolare della loro memorizzazione e del loro reperimento efficiente 50
Il sottosistema GD – Il ruolo dei DBMS Una tecnologia consolidata per la gestione dei dati persistenti (cioè che devono essere mantenuti in modo permanente, e non solo durante l’esecuzione del programma): sistemi di gestione di basi di dati (DBMS, data base management system) In particolare i DBMS basati sul modello relazionale forniscono un’interfaccia comune per la definizione della struttura del DB, l’amministrazione del DB stesso e l’accesso ai dati, ottenuta con l’impiego del linguaggio SQL Grazie a SQL: Øi dati mantenuti in un DBMS possono essere manipolati da programmi molteplici (accessibilità) Øi dati possono essere trasferiti tra DBMS diversi e rimanere identicamente accessibili (indipendenza dal DBMS) 16/09/2021 Introduzione ai sistemi informatici 51
Tabella Rappresentazione sotto forma di tabella dell’array di record definito e utilizzato nei frammenti di codice riportato nella slide precedente. Il numero riportato alla sinistra di ogni riga rappresenta l’indice dell’array (in questo caso a partire da 0 e quindi in accordo alla sintassi C) ed è utilizzato per accedere al contenuto del corrispondente record. 16/09/2021 Introduzione ai sistemi informatici 52
Il modello relazionale Studenti (Matr, Cognome, Nato_il, Nato_a); Corsi (Codice, Titolo, Settore, Tipo, Crediti); Iscritti (Matr, Codice). 16/09/2021 Introduzione ai sistemi informatici 53
Linguaggio di accesso a un DBMS Tale linguaggio deve disporre di tre funzionalità di base: Ø Data Definition Language (DDL): definizione della struttura del DB (schemi delle tabelle); Ø Data Manipulation Language (DML): manipolazione dei dati (inserimenti e cancellazioni di record); Ø Query Language (QL): realizzazione di interrogazioni. 16/09/2021 Introduzione ai sistemi informatici 54
Ambiente per lo sviluppo e l’utilizzo di un DB relazionale 16/09/2021 Introduzione ai sistemi informatici 55
Modello concettuale dei dati 16/09/2021 Introduzione ai sistemi informatici 56
- Slides: 56