Architetture per le applicazioni web

Architetture per le
applicazioni web-based
Mario Cannataro
1
Sommario
u Internet e le applicazioni web-based
u Caratteristiche delle applicazioni web-based
u Soluzioni per l’architettura three-tier
F Livello utente
F Livello applicativo
F Livello dati
u Valutazione delle possibili soluzioni
u Conclusioni
2
1
Internet
e le applicazioni web-based
u Internet, da “semplice” veicolo per lo scambio di
informazioni, sta evolvendo verso una piattaforma per:
F lo sviluppo, la diffusione e l'esecuzione di applicazioni distribuite
(web-based)
u L’evoluzione delle tecnologie:
F sta radicalmente cambiando il modo di realizzare e diffondere il
software
i Network Centric Computing, CORBA
F il concetto stesso di software è destinato a mutare per adattarsi
alla nuova realtà
i Software “free”
3
Applicazioni web-based
u Applicazioni che permettono di accedere, tramite web,
alle applicazioni / sistemi informativi aziendali
F Inizialmente, via interfaccia web a preesistenti sistemi aziendali
(scarsa integrazione)
F Successivamente, completa integrazione fra sistemi informativi
aziendali tradizionali e i server Web.
u Tutto il patrimonio informativo (di processo) aziendale
può essere utilizzato via Web, ottenendo così una serie
di vantaggi tecnologici ed economici
4
2
Applicazioni web-based:
vantaggi
u Possibilità di aumentare o uniformare i canali d’accesso
alle applicazioni aziendali:
F TCP/IP = infrastruttura
F web-browser = client
u Facilità di aggiornamento e distribuzione:
F gestione centralizzata sul server,
F “pubblicazione” e/o update ⇒ distribuzione “universale”,
u Accesso multi-piattaforma:
F l’accesso è indipendente, entro certi limiti, dall’hardware e dal
sistema operativo utilizzato dagli utenti.
5
Applicazioni web-based:
vantaggi
u Riduzione dei costi di gestione (cost-of-ownership):
F attraverso l’impiego di client leggeri, siano essi Network
Computer o Personal Computer, purchè l’interfaccia utente sia
esclusivamente il browser
F uniformando e centralizzando i servizi trasversali (sicurezza,
accounting, assistenza).
u Scalabilità:
F un’applicazione web-based ben progettata può crescere insieme
alle esigenze dell’azienda
F diverse dimensioni (rete, server applicativo, database)
6
3
Applicazioni web-based:
caratteristiche
u Contesto di esecuzione
F Internet, Intranet, Extranet
* impatto su: client, requisiti del server, sicurezza
u Gestione della Sicurezza
F Tecnologia basata su crittografia asimmetrica e certificati digitali
i SET, Https, SSL
* Impatto non solo su client, server e processi organizzativi
(gestione dei certificati), ma anche:
* integrazione con la politica di sicurezza aziendale
i autenticazione su server web,
i autorizzazione tramite database aziendale preesistente
7
Applicazioni web-based:
caratteristiche
u Mantenimento dello stato dell’applicazione: ovvero,
informazioni consistenti sullo stato della connessione tra
l’utente (browser) e il server (http, …)
F Il modello d’interazione HTTP non ha il concetto di sessione,
F il server deve esplicitamente memorizzare informazioni sul
(browser) client e associargli un identificativo di sessione, per
correlare le successive richieste
F gli stati intermedi di un’elaborazione (ad es. contenuto del
“carrello della spesa”), sono visibili a seconda del contesto
u Ampiezza di Banda e stima carico
F Dimesione messaggi VS tempi di risposta
8
4
Applicazioni web-based:
caratteristiche
u Gestione delle transazioni:
F garantire un affidabile flusso di dati tra le diverse componenti
F gestire possibili stati di inconsistenza, dovuti tipicamente alla
caduta della connessione (condizioni ACID).
u Accesso a DBMS:
F utilizzare un'interfaccia standard per l'accesso ai dati
F confinare, in pochi moduli dell'applicazione, i dettagli dei
particolari DBMS utilizzati (stringhe di connessione).
9
Architetture di riferimento per le
applicazioni web-based
u L’architettura per la progettazione, lo sviluppo, e
l'erogazione delle applicazioni web-based ha un ruolo
centrale:
F interfaccia di progettazione e programmazione tra l'utente
(requisiti) e il dominio applicativo (applicazioni aziendali)
F substrato di riferimento per la risoluzione di problemi comuni ai
diversi domini (approccio generale)
F disponibilità sempre maggiore di software “free”, il cui codice è
a volte disponibile e modificabile
10
5
Architettura a tre livelli
Interfaccia
utente
Database
Lan
Internet
Logica
funzionale
11
Architettura a tre livelli
Applet
Java
Controlli
ActiveX
HTML
Script
Servlet
Java
ASP
JSP
Script
CGI
Applicazioni
Objects
Plug-in
Browser
API
Server HTTP
Stored
Procedures
DBMS
Livello utente
Livello
applicativo
Livello dati
12
6
Livello utente
u Interfaccia utente dell’applicazione:
F acquisizione dati, elaborazione locale, visualizzazione risultati
F combinazione di elementi diversi (browser, dati, programmi)
u Elaborazione sul client, VS Fruibilità (estetica/funzionale)
per il maggior numero di utenti
F dipende dal Contesto di esecuzione
u Requisiti generali:
F Leggerezza, pagine scaricabili dall’utente in tempi brevi
F Universalità, pagine fruibili da qualunque utente
13
Livello applicativo
u Funzionalità:
F gestire gli accessi e il colloquio con gli utenti
F realizzare la logica funzionale dell’applicazione, indipendentemente dal server HTTP
F accedere alle funzionalità di gestione dati, senza grosse
assunzioni sul tipo di DBMS e sul formato dei dati stessi
u Problematiche:
F mantenimento e gestione delle sessioni
i Cookies, URL-Rewriting, Session-Tracking
F gestione della coerenza della navigazione
F trattamento dei dati personali
14
7
Livello applicativo - CGI
u Common Gateway Interface (CGI)
F interfaccia standard per la cooperazione tra il server HTTP e un
programma eseguibile
F versatilità e semplicità VS inefficienza, scarsa manutenubilità
F ormai obsoleta
15
Livello applicativo - ASP
u Active Server Pages (ASP)
F pagine HTML + codice script (es. VBscript - Visual Basic script)
sul server
i il codice Vbscript viene interpretato ed eseguito dal server HTTP
F Semplicità e rapidità di costruzione, (Visual Interdev)
F L’esecuzione delle ASP sul server HTTP, può degradare le
prestazioni
F VBScript (scripting) inadeguato per progetti complessi
F Tecnologia proprietaria
16
8
Livello applicativo - JSP
u Java Server Pages (JSP)
F Simili alle ASP, pagine Html + codice Java
F Basate su Java, del quale ereditano le caratteristiche di
espressività, sicurezza e portabilità
i applicazione indipendente dalle componenti del livello applicativo,
i integrazione con le Servlet e gli Enterprise Java Beans,
i l’integrazione ASP con componenti OCX richiede una buona
conoscenza della tecnologia COM
F Per contro le JSP sono una soluzione nuova e poco collaudata, a
fronte della maturità e stabilità raggiunta dalle ASP
i scarsa disponibilità ambienti di sviluppo per JSP
17
Livello applicativo - Servlet
u Java Servlet: classi Java per applicazioni server
F portabilità - eseguite in una Java Virtual Machine (JVM), interna
o esterna al server HTTP
F efficienza - al contrario dei programmi CGI, le Servlet vengono
interpretate una sola volta, alla prima invocazione, dopo di che
rimangono in memoria per servire successive richieste.
F potenza espressiva
F utilizzo personalizzabile ed ottimizzato dei cookies
F completo accesso a filesystem e socket
18
9
Enterprise JavaBeans
u Specifica JavaSoft
F definisce un modello a componenti (lato server), per lo sviluppo
ed erogazione di applicazioni Java, su un’architettura multi-tier,
distribuita e ad oggetti
u Focus su:
F sviluppo della business logic, piuttosto che sviluppo di
infrastrutture di basso livello, (accesso dati, concorrenza,
transazioni, threading)
Enterprise
Bean
Enterprise
Bean
EJB Container
Clients
EJB Server
19
Livello applicativo:
approccio Microsoft
Microsoft Visual Basic + ASP + ADO (Active Data Objects)
Browser
utente
ASP
HTTP
VbScript
Dati
ADO
IIS
NT
20
10
Livello applicativo:
approccio Java/Sun
Http Server
Client
Browser
DBMS
Servlet
HTML
JDBC
Ciclo di vita Servlet
21
Esempio di architettura
basata su Servlet
Utente
Contenu
ti Statici
(HTML)
Servlet
JDBC
Dati
Java Runtime Environment (JVM)
APACHE JServ
APACHE
Java Servlet
Developmen
t Kit
UNIX / WINDOWS NT
22
11
Livello dati
u Funzionalità:
F garantire l'accesso strutturato e affidabile ai dati, attraverso
un'interfaccia standard
F controllo transazioni centralizzato (sul DBMS) VS controllo
decentralizzato (Livello applicativo e DBMS).
u Approcci:
F CGI,⇒ interfaccia DBI simile al JDBC Java
F ASP, ⇒ interfaccia ADO (Active Data Objects) o ODBC
i ADO permette un accesso diretto al DBMS,
i la presenza di un Manager ODBC, comporta un passo aggiuntivo.
F Servlet Java, ⇒ API JDBC
i utilizzo di codice SQL nei servlet, inviato al DBMS, oppure
i invocazione di Stored Procedures, contenute nella base di dati.
23
Valutazioni: Livello Utente
LIVELLO
UTENTE
HTML
ACCESSIBILITÀ ELABORAZIONE
PRO
CONTRO
LOCALE
Massima
Bassa
Portabilità su tutti i browser. Penalizzazione elaborativa
sul server
Uso di Script Media
Bassa
Possibilità
di
semplici Riduce poco la complessità
elaborazioni locali
del server
Applet Java Media, (eventuali Elevata
Maggiore
elaborazione, Necessarie molte risorse sul
incompatibilità tra
anche di tipo grafico
Client. Tempi elevati di
JVM)
download/elaborazione.
Possibili
incompatibilità
JVM.
Controlli Ottima in ambiente Buona
Prestazioni elevate, se si usa Scarsa
portabilità,
in
Active X Windows, No su
Windows in combinazione aggiunta ai CONTRO delle
altri ambienti
con HTML, DHTML e Applet Java.
Scripting.
24
12
Valutazioni: Livello Applicativo
LIVELLO
CGI
APPLICATIVO
Velocità
di Discreta (Perl) .
realizzazione
Efficienza
Bassa
(attivazione
di
processo per invocazione).
Portabilità
Buona (Perl)
Manutenzione
Difficoltosa.
Accesso ai dati
Buono (DBI).
Mantenimento delle Difficoltoso
sessioni
ASP
SERVLET + JSP
Ottima (ambienti di sviluppo Media
dedicati)
(difficile generazione Html)
Ottima (VbScript su IIS)
Buona (servlet attive per tutta
la sessione)
Inesistente (solo Windows e Ottima (richiede una JVM)
IIS)
Difficoltosa (generalmente per Buona (paradigma OO e Java)
gli script).
Ottima per MS SQL server, Ottima
(JDBC
supporta
meno per altri DBMS (Ado è efficientemente molti DBMS)
ancora immatura)
Medio
Ottimo (in prospettiva EJB)
25
Valutazioni: Livello Dati
LIVELLO DATI
Architettura
Accesso ai dati
PIATTA – Ogni procedura accede al DBMS
in maniera indipendente effettuando una
propria connessione
Posizionamento
Codice SQL puro viene inserito all’interno
codice applicazione delle varie procedure e viene inviato al DBMS
Accesso a DBMS CGI in C++, ma soprattutto Java (Servlet),
Object Oriented
permettono un accesso efficace a DBMS OO
CENTRALIZZATA – Una sola procedura
effettua la connessione al DBMS e gestisce
tutte le richieste di accesso
All’interno delle procedure è effettuata una
chiamata a Stored Procedure nel DBMS
Le ASP, pensate per RDBMS, possono
supportare ma con difficoltà i DBMS OO
26
13
Conclusioni
u Livello utente
F Elaborazione sul client dettata dalle necessità dell'applicazione
u Livello applicativo
F ASP è ormai una soluzione ben collaudata e molto diffusa
F I Servlet non sono ancora molto usati
i prestazioni inferiori alle ASP e carenza di ambienti di sviluppo
F ma beneficieranno delle evoluzioni della piattaforma Java
i portabilità, manutenibilità progetti complessi
u Livello dati
F Stored Procedures (app. esterni) per una gestione efficiente
F Confinare i punti di accesso ai dati
27
14