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 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.)
Web server (cont.)
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
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 CGI
Caratteristiche di CGI CGI script, programma eseguibile CGI script, programma eseguibile Definisce un insieme di variabili di ambiente utili all'applicazione (ad es. parametri inviati dal client) 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 I parametri sono inviati tramite i classici metodi GET e POST dell'HTTP
Programma CGI- accesso BD 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 DBMS Gateway API API = interfaccia per estendere il server con servizi non standard
Web Server - API 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 Web Server - Java Servlet 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 Web Server - Java Servlet
Server-side scripting (JSP) Idea: inserire istruzioni per il calcolo dei contenuti dinamici all’interno della pagina HTML Il codice è interpretato dal server <HTML><BODY> …. ….</BODY></HTML> <HTML>….</HTML><%>…...</%> Template: testo+script da interpretare sul server Web server + Esecutore 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