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