Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa...

29
Protocolli e architetture Protocolli e architetture per WIS per WIS

Transcript of Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa...

Page 1: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Protocolli e architetture Protocolli e architetture per WISper WIS

Page 2: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web Information Systems (WIS)

Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi

Le architetture moderne dei WIS devono• essere estendibili, per permettere l'impiego di nuove tecnologie e nuove

forme di interazione (e.g., interazioni multimodali)

• gestire informazioni eterogenee, come documenti, dati strutturati, risorse multimediali, informazioni semi-strutturate (XML)

• integrare diverse tipologie di sorgenti e di componenti (architetture multi-livello)

• offrire una gestione dello stato che rifletta il contesto applicativo corrente

• gestire informazioni sugli utenti e il loro ambiente (contesto)Versioni: HTTP/0.9, 1.0,

Page 3: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Livelli di complessità

Siti informativi• chi siamo / prodotti / servizi / contatti

• newsletter, giornale, blog, ...

Siti dispositivi• scelta prodotto, configurazione, acquisto

Sistemi gestionali via Web• CRM, SCM, ERP, MRP, …

Sistemi autonomi• negoziazione, transazione, monitoraggio

Portali, marketplace, marketspace• aggregazione di più aziende/prodotti correlati: HTTP/0.9, 1.0,

Page 4: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Architettura di riferimento a più livelli

Ogni livello ha un ruolo ben definito

Ogni livello è implementato da uno o più server

Più server possono condividere lo stesso HW o risiedere su dispositivi dedicati

La comunicazione tra i livelli avviene attraverso la rete (HTTP)

Page 5: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Architettura di base client-server

Page 6: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Il protocollo HTTP

• HyperText Transfer Protocol• Protocollo a livello di applicazione per lo scambio di

ipertesti multimediali• Prescrive il formato di– nomi delle risorse (URL)– richieste HTTP– risposte HTTP

• Versioni: HTTP/0.9, 1.0,

Page 7: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Client (web browser)

• Applicazione in grado di:– accedere alla rete secondo il protocollo HTTP– richiedere risorse (pagine Web) identificate da un URL

a un server– interpretare comandi di formattazione (pagine Web

HTML) e rendere a video la risposta del server

Page 8: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web server

• Funzioni base:– accesso alla rete secondo il protocollo HTTP

– invio di risorse identificate da un URL a un client (pagine memorizzate sulla macchina server)

– lancio di programmi in risposta a richieste

– controllo e registrazione degli accessi

Page 9: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web server (cont.)

http://news.netcraft.com

Page 10: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web server (cont.)

http://news.netcraft.com

Page 11: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web browser dinamico

Page 12: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web browser dinamico

– capacita’ di eseguire script• client-side scripting (ad es. JavaScript, VisualBasic scripting)• Javascript permette di scrivere script in pagine web, eseguiti

dal browser, che accedono a oggetti del browser modificandoli dinamicamente

– capacita’ di eseguire programmi (es. Java applets)• programmi java inseriti in pagine web ed eseguiti all’interno di

pagine web, mediante Java virtual machine

Page 13: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web server dinamico

• Funzioni avanzate:– monitoraggio e amministrazione

– connessione a basi di dati

– esecuzione efficiente di applicazioni esterne

• Web server dinamico– non solo recupera pagine HTML dal file system ma può

eseguire applicazioni

TECNOLOGIE :

CGI; API, Java Servlet; Java Server Pages JSP (..ASP, PHP)

Page 14: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web server + Common Gateway Interface

Interfaccia che consente al Web Server di Interfaccia che consente al Web Server di eseguire applicazioni esterne in grado di creare eseguire applicazioni esterne in grado di creare pagine pagine dinamicamentedinamicamente

Page 15: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Intercetta le richieste, verifica se sono ammesse, Intercetta le richieste, verifica se sono ammesse, decodifica i parametri e lancia le applicazioni decodifica i parametri e lancia le applicazioni esterneesterne

Scopi:Scopi:Consente al web server di eseguire applicazioni Consente al web server di eseguire applicazioni richieste dal clientrichieste dal client

CGI

Page 16: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Caratteristiche di CGI

• CGI script, programma eseguibileCGI script, programma eseguibile• Definisce un insieme di Definisce un insieme di variabili di ambientevariabili di ambiente utili all'applicazione (ad es. parametri inviati dal utili all'applicazione (ad es. parametri inviati dal client)client)• I parametri sono inviati tramite i classici I parametri sono inviati tramite i classici metodi GET e POST dell'HTTPmetodi GET e POST dell'HTTP

Page 17: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Programma CGI- accesso BDProgramma CGI- accesso BD

Page 18: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Revisione critica di CGIRevisione critica di CGI

• Il web server genera un nuovo processo CGI ad ogni richiesta

• Il processo viene terminato alla fine del computo della risposta

• Altissimo sovraccarico di esecuzione per la creazione e distruzione di processi

• Impossibile:– tenere informazioni sulla sessione dell’utente in memoria

centrale (serve un database)– tenere allocate risorse condivise tra più richieste o più utenti

(es. pool di connessioni a database)

Page 19: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web Server - APIWeb Server - API

Web Web serverserver

DBMSDBMS

GatewayGateway

APIAPI API = interfaccia per estendere il servercon servizi non standard

Page 20: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web Server - APIWeb Server - API

• PRO– efficienza: l’interfaccia e’ nello stesso processo

del Web server (es. e’ una libreria collegata dinamicamente)

• CONTRO– dipendenza da API proprietarie (NSAPI, ISAPI )

non standardizzate

Tecnologia J2EE

Page 21: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web Server - Java ServletWeb Server - Java Servlethttp://java.sun.com/products/servlet/index.html

• Applicazioni (servlet) scritte in Java • Servlet eseguite nello stesso processo del web server, per minor

carico di comunicazione interprocesso• Indipendenza dalla piattaforma grazie a Java• Sicurezza gestita mediante Security Manager della JVM• Gestione degli errori con il meccanismo delle eccezioni Java• Disponibilita’: distribuzione gratuita di Java Servlet Development

Kit contenente la libreria Java servlet

Page 22: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Web Server - Java ServletWeb Server - Java Servlethttp://java.sun.com/products/servlet/index.html

Page 23: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Server-side scripting (JSP)

• Idea: inserire istruzioni per il calcolo dei contenuti dinamici all’interno della pagina HTML

• Il codice è interpretato dal server

<HTML> <HTML> <BODY><BODY> … …..</BODY></BODY></HTML> </HTML>

<HTML> <HTML> ……..</HTML> </HTML> <%> <%> ……......</%></%>

Template: testo+script da interpretare sul server

Web server +Web server +Esecutore scriptEsecutore script

Page 24: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Accesso a BD - JDBC

• JDBC (Java Database Connectivity): insieme di interfacce (API) che realizzano la connettività ai DBMS commerciali più diffusi

– Basato sul linguaggio Java – Offre supporto per le operazioni normalmente eseguite

su una BD attraverso SQL: • Uso di applet Java: applicazione che risiede sul server

Web e che viene scaricata e visualizzata attraverso un browser, ogni volta che la pagina HTML che la ospita viene richiesta.

• Sviluppo di vere e proprie applicazioni Java che accedono a database diversi.

Page 25: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Application server

Page 26: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Application server (cont.)

• L'Application Server offre diversi vantaggi– distribuzione trasparente del workload su diversi

componenti, replication, load balancing

– failure recovery

– gestione delle transazioni (distinto dall'analogo meccanismo implementato all'interno del DBMS)

– resource pooling

– integrazione con applicazioni legacy

– sviluppo di applicazioni multi-protocollo, multi-linguaggio

Page 27: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

WIS, load balancing e sicurezza

Page 28: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Interazione con sorgenti esterne

• L'Application Server deve richiamare funzionalità presenti su un sito esterno– servizi dispositivi (e.g., pagamenti)– servizi informativi (e.g., stock quotes)– servizi di sicurezza (e.g., autenticazione)

• Le pagine web contengono sezioni provenienti da siti diversi– approccio “a portale”, le varie parti sono indipendenti (e.g.,

iGoogle)– approccio “applicativo”, le varie parti interagiscono e

condividono dati (mashup)

Page 29: Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.

Accesso multi-device