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
© Copyright 2024 ExpyDoc