Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

Slides:



Advertisements
Presentazioni simili
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Advertisements

Corso di Fondamenti di Informatica
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Informatica e Telecomunicazioni
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Web Services.
Java Enterprise Edition (JEE)
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
1C2GRUPPO : HELPING1. 1C2GRUPPO : HELPING2 Una rete può essere definita un insieme di nodi dislocati in posti differenti, capace di consentire la comunicazione.
RETI INFORMATICHE.
IL NOSTRO LABORATORIO. Di INFORMATICA..
Internet e Web Dinamico
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Linguaggi per il Web Laboratorio di Applicazioni Informatiche II mod. A.
ICT (Information and Communication Technology):
Architettura Three Tier
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:
Struttura dei sistemi operativi (panoramica)
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
RETI E INTERNET.
RISORSE WEB Internet Per un uso consapevole delle risorse della Rete
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Architettura Java/J2EE
Ing. Enrico Lecchini BetaTre S.r.l.
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.
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
Guida IIS 6 A cura di Nicola Del Re.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
Cos’è Internet Una rete globale di reti basata sul protocollo TCP/IP.
Internet L’essenziale.
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Basi di Dati e Sistemi Informativi
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.
ECDL Patente europea del computer
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Reti di Calcolatori ed Internet Fabio Massimo Zanzotto.
L’architettura a strati
Internet: una panoramica
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Creato da Riccardo Nuzzone
LE RETI INFORMATICHE Cosa sono?? A cosa servono??
1 Storia di Internet Internet non è un’invenzione degli anni ’90….. Nata dagli studi di un’agenzia detta ARPA (Advanced Research Projects Agency) Internet.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Protocolli e architetture per WIS. Cronologia di Internet ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.
Relatore: Prof. Ing. Stefano SalsanoLaureando: Flaminio Antonucci.
Lucia Melotti 1/14 Bologna, 7 luglio 2004 Aspetti di sicurezza nello scambio di messaggi XML tra un partner ebXML ed un Web Service di Lucia Melotti Relatore:
INTRODUZIONE A INTERNET
Reti di calcolatori e sicurezza “Configurare il web-server Apache” a cura di Luca Sozio.
Servizi Internet Claudia Raibulet
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
Informatica Lezione 8 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Eprogram informatica V anno.
Le basi di dati.
Architetture software
I NTERNET Rete interconnessa che permette il collegamento tra due host eterogenei, appartenenti a reti differenti separati anche da grande distanze. Internet.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Eprogram informatica V anno. Programmare in rete.
Transcript della presentazione:

Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Sistemi Web Distribuiti Modulo 1 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

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

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

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

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

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

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: "http://www.mio.it/mio_programma.py". 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

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

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

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

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

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

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

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

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

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

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

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., “www.foo.it”) 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

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

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

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

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

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

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

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

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

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

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

Conclusioni Lasciate ai discenti del Corso … Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano