Protocolli e architetture per WIS

Protocolli e architetture
per WIS
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 multilivello)
•  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,
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,
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)
Architettura di base client-server
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,
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
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
Web server (cont.)
http://news.netcraft.com
Web server (cont.)
http://news.netcraft.com
Web browser dinamico
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
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)
Web server + Common Gateway Interface
Interfaccia che consente al Web Server di eseguire
applicazioni esterne in grado di creare pagine
dinamicamente
CGI
Intercetta le richieste, verifica se sono ammesse,
decodifica i parametri e lancia le applicazioni esterne
Scopi:
Consente al web server di eseguire applicazioni
richieste dal client
Caratteristiche di CGI
•  CGI script, programma eseguibile
•  Definisce un insieme di variabili di ambiente utili
all'applicazione (ad es. parametri inviati dal client)
•  I parametri sono inviati tramite i classici metodi
GET e POST dell'HTTP
Programma CGI- accesso BD
Revisione 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)
Web Server - API
Web
server
API
Gateway
DBMS
API = interfaccia per
estendere il server
con servizi non standard
Web 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
Web Server - Java Servlet
http://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
Web Server - Java Servlet
http://java.sun.com/products/servlet/index.html
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>
<%>
…...
</%>
<HTML>
<BODY>
….
</BODY>
</HTML>
Web server +
Esecutore script
Template: testo+script da interpretare sul server
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.
Application server
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
WIS, load balancing e sicurezza
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)
Accesso multi-device