Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa...
-
Upload
bernardetta-parisi -
Category
Documents
-
view
217 -
download
3
Transcript of Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa...
Protocolli e architetture Protocolli e architetture per WISper 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 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,
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 Interfaccia che consente al Web Server di eseguire applicazioni esterne in grado di creare eseguire applicazioni esterne in grado di creare pagine pagine dinamicamentedinamicamente
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
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
Programma CGI- accesso BDProgramma CGI- accesso BD
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)
Web Server - APIWeb Server - API
Web Web serverserver
DBMSDBMS
GatewayGateway
APIAPI API = interfaccia per estendere il servercon servizi non standard
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
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
Web Server - Java ServletWeb Server - Java Servlethttp://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> <BODY><BODY> … …..</BODY></BODY></HTML> </HTML>
<HTML> <HTML> ……..</HTML> </HTML> <%> <%> ……......</%></%>
Template: testo+script da interpretare sul server
Web server +Web server +Esecutore scriptEsecutore script
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