Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBruno Bellini Modificato 8 anni fa
1
Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano
Sistemi Web Distribuiti Modulo 1 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano
2
Presentazione Il Web ha avuto origine al CERN di Ginevra per far si che tutti i ricercatori distribuiti nel mondo ed organizzati in progetti europei/internazionali facenti capo al centro europeo per la fisica nucleare potessero accedere a documenti condivisi usando un sistema ipertestuale. Collegando i vari documenti tra loro, divenne facile integrare gli stessi provenienti da diversi progetti in un nuovo documento senza la necessità di modifiche centralizzate. Era solo necessario costruire un documento che fornisse i collegamenti ad altri documenti rilevanti. Un documento veniva preso da un server, trasferito al client e presentato su schermo. Per un utente, con c’era differenza tra un documento memorizzato localmente ed uno memorizzato altrove. In questo senso la distribuzione era trasparente. Dal 1994, gli sviluppi del Web sono stati promossi dal World Wide Web Consortium, una collaborazione tra il CERN ed il MIT. Oggi il Web è più di un semplice sistema basato sui documenti. Con l’introduzione dei Web service stiamo assistendo ad un enorme sistema distribuito emergenti in cui i SERVIZI e non solo documenti, vengono usati, composti e offerti a qualunque utente o macchina che possa farne uso. 2 Sistemi Distribuiti, LM Ing. Informatica – 6 CFU * Docente: Marcello Castellano
3
Indice dei Contenuti • Evoluzione del Web – 3 • Le Risorse del Web – 4
• Contenuti del Web – 7 Architetture Web – 8 Architetture Web Tradizionali – 9 Architetture Web Multilivello – 10 Architetture dei Web Service – 15 •Cluster – 17 Web cluster – 18 Hypertext Transfer Protocol – 20 Simple Object Access Protocol – 22 Conclusioni 28 Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano
4
Evoluzione del Web Il Web è un sistema distribuito composto da client e server che accedono a documenti collegati. I server gestiscono insiemi di documenti, mentre i client forniscono agli utenti una interfaccia facile da usare per accedere e presentare questi documenti. Il World Wide Web (WWW) è la rete Web ad estensione globale. Web di prima generazione: Web publishing Risorse statiche Contenuti prodotti dal content provider Anche Web 0.0 Web di seconda generazione: Web-based information system Anche risorse volatili, dinamiche e sicure Anche Web 1.0 Web di terza generazione: social Web, mobile Web Anche risorse multimediali Contenuti prodotti dal content provider e dagli utenti (Wiki, Blog, Forum) Anche Web 2.0 Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 4
5
Le Risorse del Web Le Risorse del Web sono solo ed esclusivamente risorse di natura Informativa ossia documenti di vario tipo. Risorse statiche Contenuto relativamente stabile nel tempo (es., file HTML, immagini, archivi, …) - Nessun problema particolare, a meno che non siano di grandi dimensioni Risorse volatili Contenuto modificato di frequente: periodicamente o da eventi in corso (news, eventi sportivi, titoli di borsa, …) - Costo dipendente dalla frequenza degli aggiornamenti; possibilità di usare metodi push-based e fragment-based Risorse dinamiche Contenuto creato dinamicamente (on-the-fly) sulla base della richiesta del client (motori di ricerca, shopping online)-Accesso a basi di dati; costo computazionale elevato Risorse multimediali Contenuti audio/video con dimensioni tipicamente maggiori rispetto ad altri tipi di risorse (video clip, mp3, animazioni Flash, …) - Elevati requisiti di banda per entrambi (dimensione delle risorse); maggiore costo computazionale di play-duringdownload Risorse sicure Contenuti trasferiti su un canale cifrato (ad es. HTTPS) - Trasferimento di risorse di qualunque tipo su canali cifrati per esigenze di protezione e privacy; elevato costo computazionale Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 5
6
Le pagine Web Un Ipertesto è una Struttura informativa composta da elementi statici e da hyperlink. In particolare si tratta di un insieme di documenti messi in relazione tra loro tramite parole chiave. Può essere visto come una rete; i documenti ne costituiscono i nodi. La caratteristica principale di un ipertesto è che la lettura può svolgersi in maniera non lineare. Un Uniform Resource Locator o URL è una sequenza di caratteri che identifica univocamente l'indirizzo di una risorsa in Internet, come un documento o un'immagine. Una pagina web è il modo in cui vengono rese disponibili all'utente finale le RISORSE del Web delle reti con protocollo internet tramite un browser. Esistono due tipologie di pagine web che identificano rispettivamente due diversi paradigmi di programmazione Web: pagina web statica descritta sottoforma di ipertesto in formato HTML o XHTML pagina web dinamica che usa linguaggi di scripting (JavaScript, Python, PHPScript) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 6
7
Pagine Web Generate Dinamicamente
Un server web è un servizio che si occupa di fornire, tramite software dedicato e su richiesta dell'utente, risorse (file) di qualsiasi tipo, tra cui pagine web (successivamente visualizzabili dal browser sul PC dell'utente) Common Gateway Interface (CGI): tecnologia standard usata dai server web per interfacciarsi con applicazioni esterne. Via Browser si può specificare nel campo URL una stringa che corrisponde ad un codice scritto in un linguaggio di scripting; il server esegue il codice che genera dinamicamente una apposita descrizione in HTML di pagina web. Per invocare un programma tramite URL è sufficiente digitare nel browser la stringa: " In questo caso è richiesto il programma python "mio_programma.py" collocato nella root directory del server web. def main(): print 'Content-type: text/html' print print '<HTML><HEAD><TITLE> Ciao, mondo!</TITLE><BODY>" print 'Ciao, mondo!‘ print '</BODY></HTML>' if (__name__ == '__main__'): main() un semplice programma CGI in python Il programma CGI scrive in output un file html. CGI cattura l'output del codice python e lo invia come documento html in risposta al client web. L'utente che ha richiesto l'esecuzione del programma vedrà visualizzata uan pagina web dinamica cioè ottenuta da un documento html costruito dinamicamente. <HTML><HEAD><TITLE> Ciao, mondo!</TITLE> <BODY>Ciao, mondo!</BODY> </HTML> 7 Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano
8
Uso del Web: i Siti Siti tradizionali Siti multimediali
Comunicazione monodirezionale e non interattiva Prevalenza di risorse statiche, pochi servizi dinamici, pochi contenuti multimediali Siti multimediali Presenza di molte risorse multimediali Siti di informazione/shopping online Risorse volatili, soggette a rapidi cambiamenti Codice HTML spesso generato dinamicamente Presenza di contenuti personalizzati (complica la generazione dinamica) Sicurezza per le transazioni Siti di social networking Siti di scambio di informazioni tra membri di comunità online (blog, wiki, sharing - Facebook, YouTube, Flickr, …) Quasi ogni pagina è generata dinamicamente (persino post in database!) Autenticazione e personalizzazione Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 8
9
Architetture (di applicazioni) Web
I componenti fondamentali di un'applicazione Web sono analoghi per certi versi a quelli di una tradizionale applicazione client/server Nel Web l'interazione tra client e server è un po' più articolata per consentire l'integrazione di componenti di varia natura. Le architetture si dividono in: Architetture Web Tradizionali Architetture Web Multilivello Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 9
10
Architetture Web Tradizionali
Un'applicazione Web si basa su elementi software standard indipendenti dalle caratteristiche della particolare applicazione e dalla piattaforma software e hardware su cui viene eseguita Una tipica applicazione client/server è costituita da un client che implementa l'interfaccia utente con alcune funzionalità di elaborazione e di comunicazione e da un server che fornisce una serie di servizi come la gestione e l'accesso ai dati di un database Fig.1 - Organizzazione generale di un sito Web tradizionale Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 10
11
Architetture Web Multilivello
Un'applicazione Web, nella maggior parte dei casi, si sviluppa su tre livelli logico-funzionali (applicazioni Three-Tier) ma che possono essere distribuiti anche su più livelli (applicazioni Multi-Tier): livello di presentazione - rappresenta l'interfaccia utente dell'applicazione e si occupa di acquisire dati e visualizzare risultati livello intermedio - si occupa delle elaborazioni dei dati in base alla cosiddetta busines logic, cioè all'insieme delle regole per cui i dati sono considerati significativi e le loro relazioni consistenti; le elaborazioni del livello intermedio generano i risultati richiesti dall'utente livello dati - rappresenta l'insieme dei servizi offerti da applicazioni indipendenti dal Web, come ad esempio un gestore di database, un sistema di gestione di posta elettronica, ecc. Fig.2 - Applicazione Web Distribuita su 3 livelli Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 11
12
Architetture Web Multilivello - Livello di presentazione
Il livello di presentazione costituisce l'interfaccia utente dell'applicazione Web e corrisponde a quello che nelle applicazioni client/server standard è il client Esso è costituito da vari componenti combinati tra loro: browser, documenti HTML, applet Java, controlli ActiveX La capacità di utilizzo di questi elementi da parte della piattaforma client è uno dei problemi principali nella realizzazione di questo livello Le soluzioni vanno dalla scelta di sfruttare al massimo le capacità elaborative del client, alla realizzazione di un livello di presentazione universale In genere l'identificazione del contesto di esecuzione dell'applicazione contribuisce in larga parte a delineare le soluzioni da adottare nella realizzazione del livello di presentazione Un altro elemento da prendere in considerazione è il livello di complessità dell'interfaccia utente dell'applicazione Il linguaggio HTML, nato per la distribuzione di documenti in ambienti distribuiti, non consente di progettare interfacce utenti molto avanzate (drag-and-drop, tree-view control, tabbed control, ecc.) Una soluzione è quella di prevedere un insieme di pagine HTML standard, arricchite da applet Java Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 12
13
Architetture Web Multilivello - Livello intermedio
Il livello intermedio dell’applicazione Web riguarda la logica applicativa ossia le funzionalità necessarie per rispondere alle richieste (di dati e di elaborazione) avanzate (tramite il client) dall’utente dell’applicazione Web; Le modalità di realizzazione del livello intermedio dipendono spesso dalle caratteristiche e dalle tecnologie supportate dal server Web e/o da componenti installati sul server applicativo; La funzionalità fondamentale che si richiede alla macchina Server del Web è il supporto alla elaborazione. In base alla tipologia di applicazione da sviluppare è opportuno prevedere funzionalità particolari, come ad esempio: gestione delle transazioni: gestione affidabile del flusso dati gestione della sicurezza e della riservatezza: gestione della sicurezza nell'accesso all'applicazione e la riservatezza nella trasmissione di informazioni; la gestione della sicurezza è spesso realizzata tramite l'autenticazione della password d'utente, mentre la riservatezza si basa su protocolli ad hoc, come SSL (SecureSocketLayer) o PCT (Private Communications Technology) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 13
14
Architetture Web Multilivello - Livello intermedio (2)
Generalmente il livello intermedio di un'applicazione Web fa riferimento a un insieme di script, componenti e programmi interagenti tra di loro e con il server Web attraverso le tecnologie (anche concorrenti): Common Gateway Interface (GCI): consente l'attivazione di un programma o di uno script su richiesta del client (portabile su qualsiasi piattaforma) Internet Server Application Programming Interface (ISAPI): consente l'esecuzione di una libreria dinamica (DLL) all'interno dello spazio di memoria del server Web (funziona solo su piattaforma Windows) Active Server Pages (ASP): consente l'interpretazione di script nell'ambiente del server Web e la creazione in modo dinamico di documenti Web (funziona solo su piattaforma e server Web Windows) Java Servlet: consente di eseguire classi Java su richiesta del client (portabile su qualsiasi piattaforma) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 14
15
Architetture Web Multilivello - Livello dati
Il livello dati fornisce servizi non direttamente disponibili tramite il Server Web Questi servizi sono generalmente forniti da applicazioni (client-server) indipendenti dall'ambiente Web e spesso costituiscono le applicazioni pre-esistenti in un'azienda Tipici esempi di applicazioni presenti a questo livello sono: server dati (DBMS) server di mail server di documentazione elettronica In genere è opportuno prevedere dei componenti dell'architettura per connettere il livello intermedio e il livello dati (Connettori). L’uso dei connettori per l'interazione con applicazioni esterne non standard si facilita la manutenibilità nel caso in cui queste vengano modificate o sostituite (es. ODBC, OLEDB) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 15
16
Architetture dei Web Service
Un Web Service è un servizio tradizionale di Internet (FTP, Servizio di mailing, servizio di naming, …) erogato in remoto. Il problema principale risiede nella carenza di standard Internet e il Web si sono imposti come piattaforma di riferimento: HTTP XML Il contributo dei Web Service nel risolvere i problemi di integrazione nel contesto B2B si basa su tre aspetti paradigma service-oriented: ogni organizzazione espone le proprie funzionalità come servizi l'invocazione è fatta da programmi interazione loosely-coupled, basata su messaggi protocolli di middleware basati su modalità di interazione punto-punto standardizzazione Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 16
17
Architetture dei Web Service (2)
SOAP: Simple Object Access Protocol protocollo per definire come organizzare messaggi WSDL: Web Services Description Language un linguaggio per descrivere i servizi UDDI: Universal Description, Discovery, Integration un sistema per catalogare l’offerta di web services Fig.3 - Schema Completo di funzionamento del Web Service Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 17
18
I cluster di Web Server Architettura parallela o distribuita localmente che fornisce un’applicazione Web Caratteristiche di trasparenza e scalabilità Indirizzi del Web cluster Un solo nome logico (es., “ Un solo indirizzo IP (virtual IP address o VIP) Web switch: nodo di front end del cluster Indirizzo IP dello switch = indirizzo IP del Web cluster Nodi interni del cluster Indirizzi IP dei nodi non visibili all’esterno Fig.4 - Possibili architetture per un Web Cluster Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 18
19
Cluster Definizione: “A cluster is a type of parallel or distributed processing system, which consists of a collection of interconnected stand-alone computers cooperatively working together as a single, integrated computing resource.” [Rajkumar Buyya] Un insieme di elementi di elaborazione che: cooperano in modo asincrono comunicano mediante una rete di interconnessione per risolvere velocemente problemi (di grandi dimensioni) E’ l’“unità” di calcolo fondamentale e più diffusa per i servizi applicativi moderni Se occorre maggiore potenza computazionale: multicluster ovvero molteplici cluster distribuiti geograficamente Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 19
20
Web switch Componente di rete con ruolo di dispatcher
Anche detto traffic switch (non solo traffico Web) Mapping da VIP ad indirizzo IP di un server Distribuzione delle richieste a granularità fine A livello di pacchetto TCP o richiesta HTTP Implementazioni alternative Dispositivo hardware special-purpose Modulo software eseguito a livello kernel (SO specialpurpose) Modulo software eseguito a livello applicativo (SO generalpurpose) Fig.5 - Richiesta HTTP ad un Web cluster Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 20
21
Comunicazione - Hypertext Transfer Protocol
L'Hypertext Transfer Protocol (HTTP) è usato come sistema principale per la trasmissione d'informazioni sul web. Le specifiche del protocollo sono gestite dal World Wide Web Consortium (W3C). La prima versione dell'HTTP (0.9), sviluppata da Tim Berners-Lee al CERN di Ginevra , risale alla fine degli anni ottanta fu utilizzata per la condivisione delle informazioni tra la comunità dei fisici delle alte energie. La versione 1.0 venne implementata dallo stesso Berners-Lee nel 1991 e proposta come RFC 1945 all'ente normatore IETF nel 1996. Con la diffusione di NCSA Mosaic, un browser grafico di facile uso, il WWW conobbe un successo crescente e divennero evidenti alcuni limiti della versione 1.0 del protocollo, in particolare: l'impossibilità di ospitare più siti www sullo stesso server (virtual host) il mancato riuso delle connessioni disponibili l'insufficienza dei meccanismi di sicurezza Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 21
22
Hypertext Transfer Protocol (2)
Il protocollo venne quindi esteso nella versione HTTP/1.1, presentato come RFC 2068 nel 1997 e successivamente aggiornato nel 1999 come descritto dal RFC 2616 L'HTTP funziona su un meccanismo richiesta/risposta (client/server): il client esegue una richiesta ed il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta HTTP differisce da altri protocolli come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 22
23
Comunicazione - Simple Object Access Protocol
HTTP è il protocollo di comunicazione standard per i sistemi distribuiti tradizionali Il Simple Object Access Protocol (SOAP) costituisce lo standard per la comunicazione nei Web Service Un protocollo che definisce come organizzare informazioni usando XML affinchè possano essere scambiate tra i peer: convenzioni standard per convertire l’invocazione di un servizio (e la corrispondente risposta) in un messaggio rappresentato da un documento XML Binding con un protocollo di trasporto (tipicamente HTTP o SMTP) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 23
24
Simple Object Access Protocol
service requestor service provider application (service provider) application (client) SOAP-based middleware SOAP-based middleware messaggi SOAP scambiati attraverso HTTP, SMTP, o altro Converte una chiamata ad un metodo in un messaggio XML spedito via HTTP o altro protocollo Fig.6 – Utilizzo del SOAP based Middleware Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 24
25
Simple Object Access Protocol – il protocollo
Il protocollo SOAP specifica: Come un messaggio deve essere formattato in XML Un insieme di convenzioni per usare messaggi SOAP seguendo lo stile RPC come un client può invocare una procedura remota spedendo un messaggio SOAP come il servizio risponde con un messaggio SOAP seguendo lo stile document-exchange Come un messaggio SOAP deve essere trasportato attraverso un protocollo di trasporto (tipicamente HTTP, SMTP) Un insieme di regole che devono essere seguite per processare un messaggio SOAP: Le entità coinvolte nel processamento del messaggio e il ruolo che queste hanno sulle diverse parti del messaggio Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 25
26
Simple Object Access Protocol - messaggi
Un messaggio SOAP si compone di una busta (envelop) entro la quale la applicazione racchiude i dati da spedire Un messaggio contiene due parti principali, suddivise in blocchi (block) Intestazione (header), opzionale, contiene informazioni per l’infrastruttura di gestione del messaggio Corpo (body): contiene informazioni per l’applicazione SOAP Envelope SOAP header Header Block SOAP Body Body Block Fig.7 – Struttura di un messaggio SOAP Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 26
27
Simple Object Access Protocol - messaggi
Prima di arrivare al service provider il messaggio può essere processato da intermediari Le intestazioni specificano gli eventuali intermediari e contengono informazioni utili per il loro compito Compiti tipici degli intermediari: gestione della sicurezza, dell’autenticazione, delle transazioni, logging, etc service requestor intermediario service provider messaggio SOAP messaggio SOAP Fig.8 - Funzionamento dei Messaggi SOAP Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 27
28
Simple Object Access Protocol - struttura
L’header contiene informazioni per l’infrastruttura Usi tipici: coordinamento, identificatori (ad es. Per la gestione di transazioni), informazioni per la sicurezza (ad es. certificati) SOAP prevede meccanismi per specificare chi deve usare queste informazioni: SOAP actor attribute: none, next, ultimateReceiver None usato per propagare informazioni che non devono essere processate Next indica che un nodo che riceve il messaggio può processare quel blocco ultimateReceiver indica che l’header è per il destinatario finale del messaggio mustUnderstand attribute: indica se è obbligatorio processare l’header Il corpo di un messaggio SOAP contiene, opportunamente codificate in XML, informazioni per: L’invocazione della applicazione remota e i Parametri di invocazione Eventuali informazioni di errore Codice Descrizione Attore che ha originato l’errore Dettagli specifici della applicazione sulla natura dell’errore Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano 28
29
Conclusioni Lasciate ai discenti del Corso …
Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.