Stifani Daniela - corsi tenuti dal prof. m. bochicchio e dalla prof.ssa a

Transcript

Stifani Daniela - corsi tenuti dal prof. m. bochicchio e dalla prof.ssa a
LEZIONE DEL 17/10/08
Prof.ssa Antonella LONGO
In un sistema WEB possono esserci tre configurazioni possibili: internet, intranet ed
extranet.
La differenza viene fatta dalla presenza o meno di firewall che permettono l’accesso, con i
dovuti privilegi, alle risorse dell’organizzazione.
I firewall possono essere sia fisici, apparati hardware dedicati al filtraggio del traffico in
uscita ed in entrata, oppure apparati software.
Per ognuna di queste configurazioni verranno riepilogate di seguito le caratteristiche.
INTERNET
INTRANET
EXTRANET
Non sono noti a priori.
Con software specifici
possono solo essere
fatte delle analisi sul
tipo di utenti, sulle
pagine visitate e sulle
azioni compiute.
Sono noti.
Sono il personale
addetto alla rete
aziendale: dipendenti
e tecnici interni.
Sono noti.
Sono i fornitori o
clienti esterni
accreditati che si
collegano con
connessioni sicure (di
solito utilizzando il
protocollo protetto
https)
COMPITI
e-commerce, servizi
offerti
dall’organizzazione e
pubblicazione di
informazioni
Portale dei
dipendenti,
modulistica per interni
e servizi per
dipendenti.
Integrano anche
sistemi di work flow
managment dei
processi di richiesta e
fornitura dei servizi.
SOA e Web services:
i servizi in un’attuale
applicazioni web
possono essere
richiesti non solo da
utenti fisici, ma anche
da un’altra
applicazione web in
maniera automatica
LARGHEZZA
DI BANDA
Non definita a priori
nota
COMPATIBILITA
Devono garantire
un’alta compatibilità
con tutti i browser.
Ci possono anche essere delle limitazioni
nella compatibilità perché si conosce
l’architettura della rete interna ed eventuali
problemi di configurazione, oppure si possono
utilizzare dei fat cliente con activex o applet
da utilizzare per il corretto funzionamento del
client del sistema web.
QUANTITA DI
INFORMAZIONI
Molte informazioni
disponibili, accedibili
con elevate velocità
ed efficienza
Gestione interna dipendente dallo specifico
sistema Web
UTENTI
Work flow managment system = Quando parte una richiesta viene innescato un processo.
Tale processo viene monitorato in tutte le sue fasi di svolgimento attraverso dei grafi
(BPMN) e nel caso in cui si riscontrino ritardi oppure errori vengono generati degli alert.
Nella
sono:
•
•
•
•
•
valutazione di un’architettura di un’applicazione web i parametri da considerare
SCALABILITA;
SICUREZZA;
AFFIDABILITA;
COMPLESSITA DI GESTIONE;
PRESTAZIONI.
Per progettare un’architettura di un sistema web si deve:
1. Capire in base alle funzionalità di un sistema, come ripartire le funzioni sui livelli
logici (layer);
2. Mappare i componenti logici su quelli fisici (tier);
3. Definire il numero di macchine che compone il livello fisico;
4. Definire come connettere le varie macchine del sistema per garantire la sicurezza
dei dati e dell’applicazione.
A supporto della prima fase c’è la progettazione del sistema con l’analisi dei requisiti, una
modellazione dei dati e delle informazioni che circolano sul sistema, l’individuazione di tutti
i possibili scenari e dei vincoli cui sono soggette le funzioni del sistema.
Sarà poi compito dell’Architetto del sistema, che studiati i vincoli e le funzioni risultanti
dalla progettazione, decidere come mappare l’applicazione su una specifico sistema fisico
di macchine hardware (passo 2,3,4).
ESEMPI DI ARCHITETTURE DI SISTEMI WEB
Un’applicazione web è composta da cinque componenti fondamentali:
1. Client;
2. Web server;
3. Script engine (si occupa dei contenuti dinamici della pagina generati con script a
livello server, con le eventuali interrogazioni al DB. Esempio codice JSP);
4. Application Server;
5. DBMS Server.
Mentre le ultime due componenti sono comuni a tutti i tipi di applicazioni esistenti, anche
ad esempio delle applicazioni windows (non inteso come sistema operativo, ma come
applicazioni strutturate a finestre, esempio Word), le prime tre sono tipiche delle
applicazioni Web e rappresentano il modo in cui vengono presentati i dati agli utenti.
In base a come vengono mappati questi componenti sui livelli fisici e logici si possono
avere diverse architetture.
Di seguito verranno presentate e analizzate le architetture più importanti.
TWO TIER SINGLE HOST
Tutti i componenti sono su un unico host.
E’ poco scalabile, più precisamente è scalabile quanto lo è il sistema fisico su cui è
mappato, quindi le risorse che si possono aggiungere per aumentare le prestazioni, nuovo
hardisk, slot di memoria ram, ecc., dipendono dal sistema fisico.
Il sistema risulta poco sicuro. L’unica protezione ai dati è il firewall: se viene bucato il
sistema è violato per intero.
Risulta essere, dunque, un sistema poco affidabile e poco complesso.
TRHEE TIER DUAL HOST
Il secondo firewall serve per garantire una maggior sicurezza ai dati, che rappresentano
un patrimonio importante per l’azienda. Un’azienda che non ha la sicurezza dei suoi dati
non può fornire i servizi e le informazioni per i quali è nata.
La zona tra i due firewall viene definita come la Demilitarized Zone per evitare che parti
esterne facciano irruzione nei dati.
I due host servono, non solo per garantire i dati, ma anche per ripartire al meglio la
potenza di calcolo sulle macchine. Infatti, mentre l’host 1 richiede una potenza di calcolo
maggiore per far fronte a tutte le richieste, quindi potenziamento di cpu e ram, al secondo
host è necessario solo uno storage maggiore per contenere i dati, mentre le operazioni da
svolgere sono relativamente semplici: leggere e scrivere dati. Con questa suddivisione si
può, dunque, investire sui componenti hardware specifici per implementare le prestazioni.
Può anche essere effettuato il down sizing dell’architettura: ovvero comprare delle
macchine più piccole e meno costose rispetto ai vecchi mainframe o super computer, ma
che siano dedicate e specializzate per il compito che devono assolvere.
In questa architettura, vediamo che la scalabilità è migliore e la sicurezza, sebbene sia
maggiore rispetto all’architettura precedente, può essere ulteriormente aumentata con
l’ausilio di sistemi IDS (intrusion detection system) posti sulle frontiere che monitorano gli
accessi.
L’affidabilità è anche migliorata, ma ancora non è sufficiente. Infatti, se cade l’host 2 il
sistema può continuare a fornire solo un servizio di informazione con delle pagine statiche
(i componenti dinamici per essere calcolati hanno bisogno quasi sempre del db, che in
questo caso è caduto), mentre nel caso in cui cada l’host 1 il sistema è down
completamente.
Un ulteriore servizio aggiuntivo che può essere adottato per garantire alte prestazioni e
velocità maggiori è l’utilizzo di un AKAMAI CDN (cdn sta per content delivery network),
ovvero una rete internazionale di server sulla quale è possibile replicare tutte le pagine,
almeno quello statiche, dell’applicazione per ottenere un velocità di accesso ai contenuti
maggiore. Questo servizio non è comunque, a stretto appannaggio solo di questo tipo di
architettura, ma può essere utilizzato anche in altre.
Nel complesso questa architettura risulta più complessa rispetto alla precedente, ma
ancora poco robusta e con prestazioni basse quando l’accesso ai dati può avvenire in
maniera multipla.
TRHEE TIER SERVER FARM
Questa architettura usa una server farm, quindi usa una batteria di server per eseguire
tutte le operazioni inerenti alla business logic.
Quest’architettura si presta bene ad accessi multipli e contemporanei, ma per garantire
delle buone prestazioni è necessario adottare dei sistemi di load balancing per bilanciare il
carico di lavoro su tutte le macchine che compongono la server farm.
In questa architettura è necessario effettuare un’attenta gestione delle sessioni inerenti
agli accessi multipli. Di questo se ne deve far carico il load balancer. Infatti, in una normale
sessione di lavoro di un’applicazione web, un client può effettuare, in una stessa sessione,
più di una richiesta al server. Il load balancer deve essere in grado di riconoscere la
sessione e di reindirizzare l’operazione allo stesso server che l’ha servita per primo.
Questo serve per velocizzare i tempi di esecuzione e per ridurre al minimo le
comunicazioni con il DBMS Server. Infatti, sfruttando il caching delle informazioni su quello
stesso server possono essere evitate comunicazioni inutili con il DBMS.
In base alla tipologia di server farm utilizzata, cloning (RACS) o partitioning (RAPS), i
server della server farm possono fare, o meno, tutti la stessa operazione e possono
contenere o tutti i componenti (web server, application server, script engine) oppure solo
una parte di essi. E’ possibile, ad esempio, che su alcuni server vengano reindirizzate dal
load balancer tutte le richieste provenienti da una connessione sicura, che utilizza ad
esempio il protocollo https, mentre sugli altri le richieste fatte da connessioni normali.
Un ulteriore miglioramento dell’architettura può essere apportato adottando un cluster per
il DBMS Server in modo da avere una gestione dei dati condivisa.
Valutando quest’architettura si ottiene:
• un’alta scalabilità: utilizzando una server farm cloning il sistema può essere scalato
a piacimento, aumentando però la complessità di gestione;
• Maggiore affidabilità;
• Sicurezza uguale alla configurazione precedente;
• Complessità maggiore dovuta anche alla presenza dei load balancer;
• Costi di realizzazione maggiori.
FIVE TIER SERVER FARM
Web Server
PDA Server
Wap Server
……..
Script Engine
Application Server
DBMS
Server
Client
Firewall 3
Firewall 2
Firewall 1
Presentation Server
DMZ 1
DMZ 2
Questa architettura è multicanale e multidevice.
Nel Presentation Server ogni device ha il proprio server (web, pda, wap, …) e una propria
script engine per avere una view dei dati e delle informazioni opportune per ogni tipo di
device.
Lo script engine è legato da un rapporto 1:1 con il presentation server.
Ci sono due DMZ, questo significa una maggior sicurezza.
La scalabilità è massima, in quanto la logica di business e di presentazione sono su
macchine distinte, inoltre possono essere adoperate delle server farm per ospitare sia le
presentation server / script engine che l’application server, mentre per il DBMS può essere
utilizzato un cluster.
Le elevate prestazioni di quest’architettura si riscontrano però in un elevata complessità di
gestione.
Daniela Stifani