Ldb 25 strumenti gis e webgis_2014-05-26 vaira - architetture dei sistemi informativi basati sul web
-
Upload
laboratoridalbasso -
Category
Technology
-
view
637 -
download
0
Transcript of Ldb 25 strumenti gis e webgis_2014-05-26 vaira - architetture dei sistemi informativi basati sul web
26/05/14
1
Strumenti GIS e WebGIS per la gestione strategica del territorio Architetture dei sistemi informativi basati su web
Ing. Lucia Vaira PhD Student @ University of Salento [email protected]
2
26/05/14
2
Outline 1. Sistema informativo e sistema informatico 2. Evoluzione storica delle architetture informatiche
3. Classificazione sistemi informativi basati su web
4. Componenti hardware e software che costituiscono l’architettura di un sistema informativo basato su Web
5. Progettazione delle architetture dei sistemi web, vantaggi e svantaggi delle possibili soluzioni architetturali
6. WebGIS context
3
Obiettivi � Comprendere l’evoluzione delle architetture informatiche
� Classificare i sistemi informativi basati sul web
� Conoscere le principali configurazioni architetturali
� Avere un linguaggio comune tra me e voi
4
26/05/14
3
5
Sistema informativo � È costituito da:
◦ l'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali ◦ dalle modalità in cui esse sono gestite
◦ dalle risorse sia umane sia tecnologiche coinvolte
� “Possiamo dunque comparare il sistema informativo aziendale ad un vero e proprio sistema nervoso dell'azienda stessa. Le tecnologie informatiche offrono oggi grandi potenzialità (informatizzazione del sistema informativo aziendale): consentono alle aziende di controllare, pianificare e gestire in modo integrato tutte le attività; consentono di elaborare velocemente una maggiore quantità di dati ed informazioni di quanto fosse possibile in passato.”
Wikipedia
6
26/05/14
4
Sistema informativo
� Non va confuso con il sistema informatico, che indica la porzione di sistema informativo che fa uso di tecnologie informatiche e automazione
� Formato da tre componenti principali: ◦ Informazione (attività che si devono svolgere per la gestione
delle informazioni) ◦ Tecnologia (strumenti tecnologici con cui svolgere le attività) ◦ Contesto organizzativo (modalità organizzative con cui devono
essere condotte le attività)
7
Sistema informativo Tecnologia
� Insieme di strumenti utilizzati per
◦ acquisire ◦ gestire ◦ fornire
…. l’informazione
8
26/05/14
5
Sistema informatico
� Quando la tecnologia entra a far parte dei sistemi informativi si può parlare di sistemi informatici
� Le tecnologie utilizzate possono ◦ Convivere ◦ Completarsi ◦ Integrarsi
9
Sistema informativo
Sistema informatico
Sistema informatico
� Il sistema informatico è composto da una parte hardware e una parte software rispettivamente sotto forma di architettura hardware e architettura software tra loro dipendenti.
� In generale, un sistema informatico deve soddisfare requisiti come: ◦ efficienza ◦ scalabilità ◦ affidabilità ◦ disponibilità ◦ sicurezza
10
26/05/14
6
Progettazione dell’architettura � L’architettura di sistema è la struttura che garantisce la connessione e il
coordinamento dei vari componenti del sistema tecnologico
� Progettazione dell’architettura: scelta di ◦ Hardware ◦ Infrastruttura di rete
◦ Componenti software
che andranno a costituire il sistema, con l’obiettivo di trovare la migliore combinazione di componenti in grado di soddisfare i requisiti applicativi e allo stesso tempo rispettare i vincoli tecnologici ed economici del progetto
11
Obiettivi della progettazione
� Architettura caratterizzata da alcune proprietà fondamentali:
◦ Affidabilità: capacità di un componente di svolgere una funzione richiesta in condizioni definite per uno specifico periodo di tempo
12
◦ Disponibilità: il sistema deve funzionare in modo continuativo e i guasti non devono influenzare significativamente il servizio fornito. Alcune metriche MTBF: Mean Time Between Failure, MTTR: Mean Time To Repair
◦ Prestazioni: l’applicazione deve sopportare il carico previsto, espresso con parametri come � il massimo numero di utenti simultanei, � il numero di richieste di pagine servite nell’unità di tempo, � il tempo massimo per fornire una pagina all’utente
Si utilizzano benchmark per valutare le prestazioni
26/05/14
7
13
◦ Scalabilità: capacità del sistema di essere adeguato a condizioni di carico superiori a quelle attuali. L’architettura deve quindi essere estendibile in modo che quando il carico cresce, sia possibile aggiungere maggiore potenza di calcolo mantenendo stabili le prestazioni. Possibili incrementi: volume di dati, volume di transazioni, tempi di risposta
◦ Sicurezza: protezione del patrimonio informativo da rilevazioni, modifiche o cancellazioni non autorizzate per cause accidentali o intenzionali
� L’affidabilità di un sistema può essere definita come la probabilità che il sistema sia operativo ad uno specifico istante temporale t
Obiettivi della progettazione
Vincoli alla progettazione � Costi: ogni risorsa ha un costo à ogni configurazione richiede un
investimento diverso, in termini di processori, infrastruttura di rete, interfacce, licenze sw Il budget dell’applicazione può limitare la scelta delle risorse hw e dei prodotti sw
� Complessità: vi sono configurazioni che si possono realizzare e mantenere in modo più semplice rispetto ad altre La mancanza o il costo elevato di personale tecnico specializzato può vincolare il progetto dell’architettura
� Standard e infrastrutture aziendali: l’applicazione deve essere installata all’interno dell’infrastruttura informatica dell’azienda Questo può vincolare la scelta dei prodotti sw
14
26/05/14
8
Scenari di installazione
� Installazione interna: l’architettura dell’applicazione si trova all’interno dell’azienda ed è gestita dal dipartimento informatico interno
(gestione e installazione interna)
� Housing: l’architettura dell’applicazione è gestita dal dipartimento informatico interno, ma è installata presso un fornitore esterno di servizi
(gestione interna e installazione esterna)
� Hosting: l’applicazione si trova negli edifici di un fornitore esterno di servizi che se ne occupa della sua gestione
(gestione e installazione esterna)
15
16
26/05/14
9
Sistema informatico centralizzato
� I dati e le applicazioni risiedono in un unico nodo elaborativo
17
Sistema informatico centralizzato
18
26/05/14
10
Sistema informatico centralizzato
19
Sistema informatico distribuito � Almeno una delle due condizioni è verificata:
§ Applicazioni (fra loro cooperanti) risiedono su più nodi elaborativi (elaborazione distribuita)
§ Il patrimonio informativo è ospitato su più nodi elaborativi (base di dati distribuita)
� Le postazioni di lavoro sono diventate dei nodi autonomi
20
26/05/14
11
Architettura di un sistema informatico distribuito
� L’architettura di un sistema distribuito può essere molto complessa.
� É possibile però riconoscere tre livelli logici (in letteratura spesso indicati come layer), che trovano corrispondenza in altrettanti strati software nei quali vengono partizionate le applicazioni:
21
3 layer architecture - PL
� Il livello presentazione (PL) si occupa di gestire la logica di presentazione, quindi le modalità di interazione con l’utente: contiene le modalità di interfacciamento (grafico) e di rendering delle informazioni.
22
26/05/14
12
3 layer architecture - BL
� Il livello della logica applicativa o logica di business (BL) si occupa delle funzioni da mettere a disposizione all’utente (es. data validation)
23
3 layer architecture - DL
� Il livello di logica di accesso ai dati (DL) si occupa della gestione dell’informazione, eventualmente con accesso ai database o a sistemi legacy
24
26/05/14
13
3 layer architecture
� Tipica applicazione web
25
3 layer architecture – Es.1 � Il BL può contenere una serie di dati che dice "visualizza il campo X
come un elenco a discesa", ma che non è la logica di presentazione che viene eseguita all'interno del BL.
� La logica di presentazione (PL) è quel pezzo di codice di programma che costruisce effettivamente il codice HTML per l'elenco a discesa.
26
� Tutto ciò che il BL fa, è generare un'istruzione sotto forma di meta-dati
che viene passata al PL dove tale operazione viene effettivamente eseguita.
� È solo quando i dati sono elaborati nel PL che viene prodotto l’output.
26/05/14
14
� Il PL può contenere pezzi di dati che dicono ”Recupera 10 record dal database a partire dal record 30, e ordina il risultato sul campo X”, che non è la logica di accesso ai dati (DL).
� È solo quando i dati sono elaborati nel livello di accesso ai dati che la query SQL viene effettivamente eseguita, ed il codice che produce tale query e la invia al database rappresenta la logica di accesso ai dati.
27
3 layer architecture – Es.2
28
3 layer architecture – Es.3
26/05/14
15
29
3 layer architecture – Es.4
30
Web Browser
Shopping Card Code
Shopping & Order Processing Database
3 layer architecture – Es.5
26/05/14
16
3 layers architectures Skill richieste
� PL: HTML, CSS, JavaScript e progettazione della UI � BL: linguaggio di programmazione (regole di business processate
dal computer) � DL: SQL e progettazione dei database (MySQL, Oracle,…)
31
Architettura dei sistemi informativi
� I layer sono costrutti concettuali che separano le funzionalità di un sistema informativo
� Nell’implementazione dei sistemi reali, questi strati possono essere combinati e distribuiti in diversi modi
� Considerando l’implementazione di un sistema informativo, facciamo riferimento ai livelli del sistema con il termine tier, piuttosto che conceptual layer
Tier: modulo software che implementa uno o più conceptual layer
Due tier per essere distinti non devono necessariamente risiedere in due macchine distinte!
32
26/05/14
17
Sistema informatico distribuito Strati software (layer) su livelli hardware (tier)
� Un’applicazione può essere configurata con:
◦ Single Tiered: tutti e tre i livelli software sono assegnati ad un’unica macchina. Classica configurazione terminale-host che caratterizzava i sistemi basati su mainframe tipica dei primi calcolatori elettronici in cui gli utenti accedevano tramite terminali non intelligenti (in genere schermo e tastiera)
33
� Un’applicazione può essere configurata con:
◦ Two Tiered: layer divisi tra stazione lavoro utente (workstation) e macchina server che ospita i dati. Sulla stazione di lavoro: PL, sulla macchina server accesso ai dati: BL con scelte diverse (prima generazione sistemi client/server)
34
Sistema informatico distribuito Strati software (layer) su livelli hardware (tier)
26/05/14
18
� Un’applicazione può essere configurata con:
◦ Three Tiered: i tre livelli sono suddivisi fra altrettante macchine dedicate: stazione di lavoro utente (PC, in generale), un server intermedio (middle tier), un server di gestione dati. Si parla di disaccoppiamento
35
Insieme delle astrazioni di programmazione e delle
infrastrutture che supportano lo sviluppo della logica
dell’applicazione
Sistema informatico distribuito Strati software (layer) su livelli hardware (tier)
One tier - vantaggi � Tutto risiede in un’unica macchina → Non ci sono costi di comunicazione
� Client non intelligenti → Bassi costi di impiego
� Il progettista è libero di fondere i livelli concettuali → Aumenta l’efficienza del sistema
� Nessuna interfaccia → nessuna complessità dovuta alla pubblicazione ed al mantenimento di interfacce, o a compatibilità fra diversi componenti
36
26/05/14
19
One tier - svantaggi � I tre livelli sono gestiti da un unico modulo, che risiede quindi in
un’unica macchina � Il PL risiede sulla stessa macchina, che si prende carico di
controllare ogni aspetto dell’interazione con il client → richiede molta potenza di calcolo → supporta un basso numero di utenti
� Non vengono definite Application Program Interface (API) che possano facilitare l’interazione con altri sistemi
→ poca portabilità del sistema
→ difficile da manutenere → difficile da aggiornare
37
Two tier - vantaggi � Permette di realizzare un’architettura client/server
� Viene introdotto il concetto di API che facilita la comunicazione del client con l’applicazione
� Garantiscono maggiore portabilità rispetto alle one-tier
� La capacità di calcolo del client consente di avere interfacce grafiche sofisticate ed allo stesso tempo risparmio di risorse sul server
� La possibilità di combinare sul server i livelli di logica dell’applicazione e di gestione delle risorse consente di mantenere una certa efficienza
38
26/05/14
20
Two tier - svantaggi
� La contemporanea presenza sul server della logica dell’applicazione e della gestione delle risorse richiede server dalle prestazioni abbastanza elevate
� Supportano un limitato numero di client, a causa della necessità di
mantenere informazioni sulla connessione e sull’autenticazione dei client
� I client si sono evoluti indipendentemente dai server ed hanno
presentato nel tempo funzionalità sempre più avanzate
39
Three tier - vantaggi � I client sono indipendenti gli uni dagli altri: si possono avere diversi
livelli di presentazione sulla base delle esigenze di diversi client
� Tutta la logica dell’applicazione risiede nello strato intermedio, garantendo per l’intero sistema: ◦ maggiore portabilità ◦ manutenzione più semplice ◦ aggiornamento di uno dei due tier più semplice à maggiore flessibilità ◦ maggiore scalabilità
� Permette di realizzare un’architettura client/server
� Il livello BL può essere distribuito su diversi server
40
26/05/14
21
Three tier - svantaggi
� Lo svantaggio principale è nel decadimento delle performance dovute ai problemi di comunicazione fra i diversi nodi del sistema
� Costo aggiuntivo per implementare le interfacce standard
� Per integrare sistemi su Internet devono fare uso di un componente addizionale: il web server
41
Sistema informatico distribuito Configurazioni Client
� A seconda delle possibili ripartizioni dei tre livelli applicativi sui tier fisici vi sono diverse configurazioni:
1. Fat client: se a livello utente (browser in ambiente Web) si appoggia la logica applicativa e quella di accesso ai dati
2. Thin client: se a livello utente (browser in ambiente Web) resta legata la funzione di presentazione, alleggerendo le funzionalità della stazione utente
3. Thick client: quando la logica applicativa è distribuita in modo intermedio, tra client e server
42
26/05/14
22
Discussione
� Fat e Thick Client: necessità di amministrare diverse macchine client (anziché un singolo server) à se un’applicazione viene aggiornata frequentemente gli aggiornamenti devono
essere effettuati su tutte le macchine client
à ciò comporta elevati costi di gestione
� Nei SI basati su Web, problemi di amministrazione ridotti:
applicazioni installate centralmente sul Web server; l’utente ne fa deployment (installazione layer sui tier) automaticamente accedendo al Web server con il proprio browser (es. download di applet o controlli ActiveX).
43
Architettura N-tier (o multi-tier)
� Nascono dalla connessione di più sistemi 3-tier o dall'inclusione di un livello di accesso al sistema attraverso Web server.
� Il livello Web, in principio esterno al sistema, è oggi sempre più spesso incorporato nel PL residente sul server ◦ come parte del middleware (in un'architettura 3-tier) ◦ come parte del server (in un'architettura 2-tier)
44
26/05/14
23
Discussione
� Numero più elevato di tier: conferisce alle infrastrutture ICT maggiori caratteristiche di scalabilità e flessibilità.
� Le configurazioni fat e thick a due livelli non sono particolarmente indicate se la logica applicativa distribuita è particolarmente onerosa dal punto di vista della richiesta di potenza di calcolo (CPU o RAM).
� In queste situazioni, è più conveniente centralizzare la logica di business su un Server Intermedio.
45
Server intermedio
� E’ sufficiente garantire robustezza e efficienza del server intermedio che viene condiviso tra i vari client
� Il server viene dimensionato in modo da garantire un certo livello di prestazioni per un certo numero di utenti contemporaneamente attivi (ragionevole assumere sia sempre < numero totale utenti)
� Consente di ridurre il carico al DBMS server
� Il middle tier mantiene connessioni permanenti con il DBMS; numero sessioni aperte fra tier intermedio e DBMS è in generale < numero delle connessioni aperte tra i client ed il tier intermedio.
46
26/05/14
24
Conclusione
� Implementazioni reali: si adottano soluzioni con più di tre tier.
� Gli attuali siti di e-business si sviluppano su 5 tier, partizionando ulteriormente su più layer la PL, oppure introducendo tier dedicati a supporto della comunicazione (Middleware)
47
Server farm � Nei moderni sistemi, i tier fisici possono essere realizzati anche come
server farm, ovvero come un insieme di elaboratori che condividono il carico elaborativo, le applicazioni e, a seconda delle configurazioni, i dati
� Una server farm è gestita dagli altri livelli come un’unica risorsa
� Il vantaggio dell’introduzione di server farm rispetto ad una singola macchina consiste nella maggiore affidabilità del sistema e nel minore costo di acquisto dell’hardware
48
26/05/14
25
Server farm Realizzate secondo due principi progettuali:
1. Cloning (clonazione) � su ogni nodo sono installate stesse applicazioni e stessi dati.
Richieste instradate ai vari cloni con sistema di load-balancing � un insieme di cloni dedicati allo svolgimento di un particolare servizio
è detto RACS (Reliable Array of Cloned Services); ogni clone implementa lo stesso insieme di funzionalità
� la clonazione del servizio permette di raggiungere vantaggi sia di scalabilità che di tolleranza ai guasti (fault tolerance) in termini di disponibilità del servizio stesso
� se un clone subisce un guasto, un altro nodo può continuare ad erogare quel servizio
49
Server farm
2. Partitioning (partizionamento) � duplicazione dell’hw e del sw, non dei dati, che sono ripartiti tra i
nodi � ogni nodo svolge una funzione specializzata (es. sistema Web di
vendite suddiviso per tipologie di clienti o per linee di prodotto ed ognuna è gestita da un nodo)
� trasparente alle applicazioni � non migliora la disponibilità: i dati sono su un singolo server; in caso
di guasto la parte di servizio da esso gestita non è più accessibile (proprietà di graceful degradation)
50
26/05/14
28
Organizzazione della sicurezza � Essere consapevoli delle necessità di pianificare la continuità operativa
dell’azienda (business continuity) e il ripristino dopo un disastro (disaster recovery)
� Disaster Recovery: capacità di un’infrastruttura di riprendere le operazioni dopo un disastro
� Business Continuity: descrive i processi e le procedure che un’organizzazione mette in atto per assicurare che le funzioni essenziali rimangano operative durante e dopo un disastro
� Tecnologie a supporto: ◦ replica dei database
◦ mirroring dei dischi su Internet
◦ …..
55
Esempio: uso personale del PC
original
giornaliera
settimanale
mensile
56
Backup periodici
26/05/14
29
Esempio: uso personale del PC
Se il sistema si blocca o l’hard disk si guasta, reinstalla il sistema operativo e le applicazioni, applica di nuovo tutte le personalizzazioni (Windows, e-mail, Internet, applicazioni, ecc…) e ripristina i dati dal backup, perdendo solo le aggiunte e le modifiche successive all’ultimo backup.
Anche se si guasta il disco principale, basta sostituirlo e ripristinare le partizioni dai file immagine per riprendere la normale operatività in poco tempo (può bastare un’ora), senza reinstallare nulla.
57
Organizzazione della sicurezza
� In sintesi, l’obiettivo generale delle attività di sicurezza è mantenere la continuità del business aziendale e, in particolare, del lavoro del personale e del servizio ai clienti.
� Hardware, software, sistemi, reti, informazioni, attrezzature e personale sono elementi da proteggere, ma vanno inquadrati nel piano di sicurezza generale con l’obiettivo di assicurare la continuità operativa.
58
26/05/14
30
Sistemi N tier
� I moderni sistemi informativi basati su Web si basano su 5 tier
� Il PL viene realizzato attraverso 3 tier: ◦ il browser dell’utente ◦ il Web server, che garantisce l’accesso alle pagine ed agli oggetti statici ◦ lo Script Engine, che si occupa della generazione delle pagine dinamiche
� I tier 4 e 5 corrispondono all’Application Server (AS) e al DBMS
59
60
26/05/14
31
Classificazione dei SI basati sul web
� I sistemi informativi basati su Web possono essere classificati in base a: ◦ tipologia del servizio offerto (informazione, comunicazione e
transazionale) ◦ utenti che possono accedere al sistema (interni, esterni o di altra
natura) ◦ operazioni che gli utenti possono compiere (semplice accesso
informativo unidirezionale, oppure modifica dello stato di un’applicazione Web)
61
Classificazione dei SI basati sul web
� Servizi di informazione: hanno l’obiettivo di fornire accesso ad informazioni strutturate e classificate
� Servizi di comunicazione: favoriscono e supportano la comunicazione di gruppi di utenti. Nei sistemi che implementano questa tipologia di servizio, l’utente è identificato e le comunicazioni dell’utente possono rimanere memorizzate nel sistema informativo
� Servizi transazionali: supportano gli utenti per l’acquisto di beni o servizi. L’utente, che viene solitamente identificato dal sistema, modifica i dati e lo stato dell’applicazione Web, interagendo con DBMS (eventualmente distribuiti) e servizi applicativi. La principale criticità di questa tipologia di servizi è costituita dalle problematiche di sicurezza e riservatezza dei dati trasmessi e memorizzati.
62
26/05/14
32
Classificazione dei SI basati sul web � Un’altra classificazione si basa sulle modalità di accesso ai siti:
63
Accessibile da tutta la rete, gli utenti sono disparati e non noti a priori. Obiettivo principale: accessibilità (garantire cioè la possibilità di accedere al sistema all’insieme più ampio possibile di utenti)
Accesso limitato dall’interno dell’organizzazione per distribuire informazioni all’interno dell’azienda mediante news, interfacce di ricerca, e cataloghi di contenuti su cui è possibile effettuare il browsing
Accessibile da un gruppo di utenti ben identificato, ad esempio clienti e fornitori. E’ lo strumento di scambio di informazioni concordate tra soggetti diversi tramite accesso ad archivi e di accesso a funzionalità predefinite
Classificazione dei SI basati sul web
� Altre classificazioni proposte per i sistemi informativi basati su Web si basano sugli obiettivi e sulle tipologie di utenti a cui è rivolta un’applicazione Web:
◦ Applicazioni B2B (Business to Business) se l’applicazione è rivolta principalmente alla cooperazione di imprese (si ricade pertanto nel caso delle Extranet)
◦ Applicazioni B2C (Business to Consumer) per applicazioni (tipicamente di commercio elettronico) rivolte al singolo cliente
◦ Nel caso in cui gli enti che erogano il servizio siano Pubbliche Amministrazioni, si hanno le varianti G2G (Government to Government) o G2C (Government to Citizen)
64
26/05/14
33
Architettura del World Wide Web
� Il WWW si basa sull’esistenza di client (browser) e server
� Client e server devono utilizzare il protocollo HTTP per “dialogare” tra loro ◦ il browser invia una richiesta al server per la visualizzazione di una certa pagina
web disponibile a un certo indirizzo
◦ il server fornisce la risposta visualizzando la pagina richiesta
65
66
26/05/14
34
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati; ◦ Storage: DAS, NAS e SAN
67
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la
sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati;
◦ Storage: DAS, NAS e SAN
68
26/05/14
35
� Si colloca tra l’utente finale, che accede al sistema attraverso il browser, e il sistema informativo aziendale
� Si occupa della presentazione delle informazioni verso i client � Restituisce ai client pagine HTML statiche (es. cataloghi informativi
dei prodotti) � Se è necessario generare pagine dinamiche, il Web server
interagisce con lo Script Engine � Esso dunque non è in grado di garantire alcuna interattività con
l’utente (tranne passare da una pagina all’altra mediante link ipertestuali)
� Tra i più noti: � Apache HTTP Server � Microsoft IIS (Internet Information Services) � Apache Tomcat
69
Elementi di un sistema web Web Server
70
Il Web Server libero per eccellenza: APACHE
26/05/14
36
71
Il Web Server libero per eccellenza: APACHE
� Il Web Server svolge le seguenti attività: ◦ Prende in consegna le richieste del browser ◦ Se la richiesta è valida ◦ Elabora i dati ◦ Restituisce il codice HTML ◦ Il browser elabora il codice HTML e crea la grafica
� Il nome è stato scelto: ◦ Per onorare gli indiani della tribù Apache ??? ◦ Deriva dal nome del progetto “A PAtCHy server” (un sw preesistente a
cui erano state applicate numerose patch)
72
Il Web Server libero per eccellenza: APACHE
Esempio pratico: � il web server che ospita www.apache.org ci informa che la pagina
index.htm che ho richiesto tramite l’indirizzo www.apache.org/index.htm non è disponibile su quel sito web
26/05/14
37
73
Chi usa Apache?
� Sistemisti, programmatori ….. � L’80% dei server web usa Apache � Normalmente un web server risiede su sistemi dedicati ma può
essere eseguito su computer ove risiedano altri server o che vengano utilizzati anche per altri scopi. Per esempio si può installare un web server su un normale personal computer allo scopo di provare il proprio sito web.
� Perché usarlo? ◦ Semplice da configurare ◦ E' sotto licenza GPL (Licenza Libera)
◦ Documentazione chiara e completa
◦ Completo e funzionale ◦ Log Files dettagliati (utili per l’installazione e la configurazione, controllo e
memorizzazione degli accessi)
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la
sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati;
◦ Storage: DAS, NAS e SAN
74
26/05/14
38
� Processo che genera pagine dinamiche interagendo con l’Application Server o con il DBMS server
� Si tratta di un motore che interpreta liste di comandi, dette script, formulati con una sintassi determinata, detta linguaggio di scripting
� Le pagine dinamiche vengono restituite al Web server che le inoltra all’utente che ne ha fatto richiesta
� Nota: nell’architettura basata su Java è chiamato Servlet Engine (processo che esegue una servlet nel proprio spazio di indirizzamento)
75
Elementi di un sistema web Script Engine
Componente Java eseguibile da un Web Server Java-enabled
Pagine statiche vs. pagine dinamiche
� Scenario 1: un utente accede al sito degli spartiti musicali alla ricerca della sinfonia n. 9 di Beethoven
76
Utente Web Browser
(1) URL
Web Server
(2) HTTP Request
(5) HTTP Response
Repository
(3) Cerca pagina
(4) Invia pagina
26/05/14
39
� La pagina visualizzata dal Web Browser sarà sempre la stessa fino a che la versione sul Web Server non verrà modificata, indipendentemente dall’utente che la richiede
77
Pagine statiche vs. pagine dinamiche
78
� Scenario 2: due utenti distinti si collegano al medesimo sito di commercio elettronico per la vendita di libri.
� Il primo seleziona una copia della Divina Commedia, il secondo una copia dei Promessi Sposi.
Utente Web Browser
(1) URL
Web Server
(2) HTTP Request
(8) HTTP Response
Repository
(3) Cerca pagina
(7) Invia pagina Estensione lato server
(4) Cerca pagina
(5) Invia pagina
(6) Genera pagina
Oltre all’URL conterrà un identificativo dell’utente
Generata in base ai dati richiesti dall’utente
à La stessa pagina avrà un aspetto diverso a seconda dell’utente che la richiede
Pagine statiche vs. pagine dinamiche
26/05/14
40
79
Risorse statiche
Contenuto dinamico ottenuto a partire da template che vengono personalizzati in base al codice sorgente o mediante accessi al database
Pagine statiche vs. pagine dinamiche
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la
sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati;
◦ Storage: DAS, NAS e SAN
80
26/05/14
41
� Ha il ruolo di middletier e fornisce diversi servizi:
◦ Gestione degli accessi degli utenti e della sicurezza ◦ Gestione accesso al database o in generale a sorgenti di dati esterne ◦ Gestione della replicazione e del bilanciamento del carico
◦ Ripristino dei guasti: può monitorare gli utenti attivi, i processi e gli oggetti applicativi, i guasti sw e hw, prevenire le richieste dei client indirizzate a componenti guasti e ridirigerle verso gli oggetti applicativi replicati attualmente disponibili
◦ Gestione delle transazioni: può permettere la definizione di unità di lavoro (transazioni), che possono essere eseguite con successo dall’inizio alla fine oppure che necessitano del rollback
81
Elementi di un sistema web Application Server
◦ Condivisione di risorse: può gestire condivisione di risorse preziose (es. la connessione alle basi di dati)
◦ Interoperabilità con sistemi legacy o preesistenti: può essere dotato di sistemi di accesso o di kit di sviluppo sw per scambiare messaggi o dati con applicazioni sviluppate su piattaforme legacy
◦ Supporto allo sviluppo di applicazioni multi protocollo o multi linguaggio: può integrare diversi protocolli di distribuzione dell’applicazione e diversi linguaggi di programmazione in un ambiente di sviluppo uniforme e può facilitare lo sviluppo o la migrazione di piattaforme
� Tra i più noti: ◦ JBoss (J2EE) ◦ WebSphere (IBM) ◦ WebLogic (Oracle)
82
Elementi di un sistema web Application Server
26/05/14
42
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la
sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati;
◦ Storage: DAS, NAS e SAN
83
� Componente hardware o software che ha lo scopo di controllare il traffico in entrata e in uscita dalla rete da proteggere, con l’obiettivo di prevenire, rilevare ed annullare eventuali attacchi e richieste non autorizzate
� Da Wikipedia: “Apparato di rete hardware o software di ingresso-uscita bidirezionale che, opportunamente configurato o settato e agendo in maniera centralizzata, filtra tutti i pacchetti entranti ed uscenti, da e verso una rete o un computer, secondo regole prestabilite che contribuiscono alla sicurezza della stessa.”
84
Elementi di un sistema web Firewall
26/05/14
43
� Modem: � Effettua la Modulazione/DEModulazione di trasmissioni digitali in analogiche (e viceversa)
� Router: � Punto di connessione Internet/ Intranet
� Consente a browser esterni di connettersi al Web Server
� Firewall: � Separa il mondo esterno (Internet) dalla rete aziendale (Intranet)
� Blocca i tentativi di intrusione e le richieste non autorizzate (attraverso Access Control Rules)
à può essere un unico dispositivo che svolge le due funzioni
� Un firewall può essere: ◦ realizzato con un semplice computer (con almeno due schede di rete, una per l'input
l'altra per l'output, e software apposito) ◦ una funzionalità logica (software) inclusa in un router ◦ implementato su un apparato hardware dedicato ◦ un "firewall personale", programma installato sui normali calcolatori client, che filtra
solamente i pacchetti che entrano ed escono da quel calcolatore, utilizzando in tal caso sola una scheda di rete
85
Elementi di un sistema web Firewall
� Sistema sw o hw che automatizza il processo di monitoraggio e analisi degli eventi di un sistema con l’obiettivo di individuare le intrusioni definite come il tentativo di compromettere la confidenzialità, l’integrità o la disponibilità del sistema.
� Spesso è in grado di interagire con il firewall in modo da reagire automaticamente ad ogni attacco
� Due tipologie: ◦ Network-based (analizza il traffico di rete per identificare intrusioni,
permettendo di monitorare non solo un singolo host ma una rete completa)
◦ Host-based (consiste in un agente che analizza l’host alla ricerca di intrusioni. Le intrusioni vengono rilevate analizzando i file di log del sistema, le system call, le modifiche al file system del computer e altre componenti del computer)
86
Elementi di un sistema web Intrusion Detection System (IDS)
26/05/14
44
� Un IDS è composto da quattro componenti: 1. uno o più sensori utilizzati per ricevere le informazioni dalla rete o dai
computer
2. una console utilizzata per monitorare lo stato della rete e dei computer
3. un motore che analizza i dati prelevati dai sensori e provvede a individuare eventuali falle nella sicurezza informatica
4. un database cui si appoggia il motore di analisi e dove sono memorizzate una serie di regole utilizzate per identificare violazioni della sicurezza
Il più semplice IDS è un dispositivo che integra tutte le componenti in un solo apparato.
87
Elementi di un sistema web Intrusion Detection System (IDS)
� Spesso, alcune soluzioni architetturali (es. ArcGIS) non consigliano l’utilizzo di firewall tra i componenti server.
� La tecnica consigliata per proteggere un sistema ArcGIS Server con firewall è quello di configurare un server Web proxy inverso all'interno di una rete perimetrale (nota anche come DMZ, zona demilitarizzata o subnet schermata).
� Server Proxy:
88
Reverse proxy web server
26/05/14
45
� Principio di funzionamento di un server proxy: si tratta di un server "incaricato" da un'applicazione per effettuare una richiesta su internet al suo posto (intermediario tra i computer di una rete locale e Internet)
89
Reverse proxy web server
1. Quando un utente si connette ad internet tramite un'applicazione client configurata per usare un server proxy, questa si connetterà in primo luogo al server proxy e gli darà la sua richiesta
2. Il server proxy si connetterà allora al server che l'applicazione client cerca di raggiungere e gli trasmetterà la sua richiesta
3. Il server risponderà in seguito al proxy 4. che a sua volta trasmetterà la risposta all'applicazione client
90
Proxy Web Server
1 2
34
26/05/14
46
� Ormai, con l'uso del TCP/IP nelle reti locali, il ruolo di collegamento del server proxy è direttamente assicurato dal geteway e dai router. Ciò nonostante, i server proxy sono sempre attuali grazie ad altre funzionalità presenti: ◦ Funzioni di cache (server proxy-cache): capacità di mantenere in memoria le
pagine visitate più di frequente dagli utenti della rete locale per poterle fornire il più rapidamente possibile (riducendo così l'uso della banda verso internet e riducendo i tempi di accesso per gli utenti alle risorse)
91
Proxy Web Server
Le richieste web sono inviate al Proxy
La cache salva copie locali dei documenti web e le invia (se disponibili) quando richieste
La cache richiede il documento web originale al web server, se necessario
◦ Filtraggio: è possibile assicurare il controllo delle connessioni mediante la costituzione di file di log che registrano sistematicamente le richieste degli utenti ad una loro richiesta di connessione a internet. E' quindi possibile filtrare le connessioni internet analizzando da una parte le richieste dei client, e dall'altra le risposte dei server
◦ Esempi: definire le estensioni dei file dei quali è bloccato il download; gestione dei logs, attraverso i quali è possibile avere un quadro dei siti visitati, ….
92
Proxy Web Server
26/05/14
47
◦ Autenticazione: dato che il proxy è l'intermediario indispensabile degli utenti della rete interna per accedere a delle risorse esterne, è a volte possibile usarlo per autentificare gli utenti, cioè di chiedere loro di identificarsi mediante un nome utente e una password ad esempio.
◦ Sarà quindi facile dare l'accesso alle risorse esterne solo alle persone autorizzate a farlo e di poter registrare nei file di log degli accessi identificati.
93
Proxy Web Server
� Viene detto reverse-proxy un server proxy che permette non agli utenti di accedere alla rete internet ma bensì agli utenti di internet di accedere indirettamente ad alcuni server interni.
� Grazie al reverse-proxy, il server web è protetto dagli attacchi diretti dall'esterno, cosa che rinforza la sicurezza della rete interna. D'altra parte, la funzione di cache del reverse-proxy può alleggerire il carico del server per cui è previsto, ed è la ragione per cui un server simile è talvolta detto “acceleratore” (server accelerator).
� Infine, grazie a degli algoritmi perfezionati, il reverse-proxy può servire per ripartire il carico reindirizzando le richieste verso diversi server equivalenti; si parla allora di ripartizione del carico (load balancing).
94
Reverse proxy web server
26/05/14
48
95
WebGIS: Reverse proxy web server
� Il Web Server proxy inverso riceve le richieste HTTP in ingresso attraverso un firewall che limita il traffico a una porta nota (di solito porta 80) e invia la richiesta attraverso un altro firewall (porta sconosciuta all’utente finale) al server Web che ospita applicazioni e servizi Web ArcGIS Server e che risiede in una rete interna sicura.
� Questo server è quindi libero di stabilire comunicazioni non restrittive con gli altri componenti di ArcGIS Server. In questo modo, l'intero server GIS opera all'interno di una rete interna sicura, e non richiede firewall tra i suoi componenti.
Elementi di un sistema web ◦ Web Server: si occupa della gestione di richieste HTTP
provenienti da Internet o dalla Intranet aziendale;
◦ Script Engine: motore che esegue script per la generazione di pagine dinamiche;
◦ Application Server: ha il ruolo di middle-tier, implementa BL dell’applicazione Web;
◦ Firewall e Intrusion Detection Systems (IDS): per garantire la
sicurezza a livello operativo;
◦ DBMS Server: si occupa della gestione dei dati;
◦ Storage: DAS, NAS e SAN
96
26/05/14
49
� Lo storage rappresenta la possibilità di salvare informazioni per lunghi periodi di tempo in infrastrutture informatizzate in grado di garantire la coerenza e la consistenza indipendentemente dalle condizioni di funzionamento dei singoli sistemi.
� Le tecnologie che rappresentano oggi le "Best Practices" nel settore:
� DAS (Direct Attached Storage) � NAS (Network Attached Storage) � SAN (Storage Area Network)
97
Elementi di un sistema web Storage
DAS (Direct Attached Storage)
� Rappresenta la soluzione architetturale presente da più tempo sul mercato.
� Il dispositivo di storage viene infatti connesso direttamente con la macchina che richiede risorse disco.
� Limitazioni del DAS: prevalentemente legate all'impossibilità di utilizzare risorse condivise tra più sistemi
98
26/05/14
50
NAS (Network Attached Storage)
� È la soluzione che oggi rappresenta la strada più economica per garantire risorse di storage elevate e condivise su un numero di sistemi che può variare dalle poche unità fino a qualche centinaio.
� Un NAS è dotato di un vero e proprio sistema operativo ottimizzato (a volte proprietario, altre volte una versione ridotta di Linux o di Windows), studiato per gestire esclusivamente tutte le operazioni di gestione dei dischi e di accesso ai dati.
99
SAN (Storage Area Network)
� Soluzione in assoluto più scalabile e distribuibile.
� Diversi sistemi vengono collegati tramite link ad alta velocità a dispositivi di switching che a loro volta sono connessi a diverse unità disco.
� La batteria di dischi viene così condivisa in modo trasparente a tutte le macchine collegate.
� La flessibilità dell'architettura e la scalabilità offerta sono gli elementi che fanno delle SAN le tecnologie di storage più usate in ambito enterprise.
100
26/05/14
51
SAN e NAS - Differenze
� Un NAS può contenere una quantità limitata, seppur grande, di dischi, mentre una SAN è teoricamente scalabile a piacere.
� A favore dei NAS giocano il basso costo e la semplicità di installazione, che li rendono adatti alle realtà anche piccole.
� Un NAS, comunque, può anche essere utilizzato come nodo di una SAN. Questo significa che chi vuole partire "in piccolo" o con una soluzione semplice può scegliere un NAS e poi passare, quando e se le esigenze aziendali lo rendono opportuno, a una vera e propria SAN senza perdere gli investimenti fatti in precedenza.
101
� Il load balancing (in italiano bilanciamento del carico) è una tecnica che consiste nel distribuire il carico di elaborazione di uno specifico servizio (es. la fornitura di un sito web) tra più server. à scalabilità e maggiore affidabilità dell'architettura
� Es. arrivano 10 richieste per una pagina web su un cluster di 3 server, alle prime 3 risponderà il "primo" server, a 3 il "secondo" ed alle ultime 4 il "terzo”.
102
Elementi di un sistema web Load balancer
� Scalabilità: se necessario, si possono aggiungere nuovi server al cluster
� Affidabilità: la rottura di uno dei server non compromette la fornitura del servizio (fault tolerance)
� Esistono diverse soluzioni sia hardware che software. Nell'ambito del software libero una buona soluzione è Linux Virtual Server.
26/05/14
53
� Problema che consiste nello stabilire:
� il numero di tier fisici del sistema, ovvero consiste nel determinare quali elementi (Web server, Script engine, ecc.) devono essere installati su macchine fisiche separate;
� quante macchine devono essere introdotte ad ogni tier fisico;
� come collegare tra di loro le diverse macchine;
� come introdurre i componenti di sicurezza.
105
Progettazione dell’architettura
Soluzioni architetturali
� Configurazione 2 tier single host � Configurazione 3 tier dual host � Configurazione 3 tier con server farm � Configurazione 5 tier con server farm
106
26/05/14
54
Soluzioni architetturali
� Configurazione 2 tier single host � Configurazione 3 tier dual host � Configurazione 3 tier con server farm � Configurazione 5 tier con server farm
107
Configurazione 2 tier single host � Una sola macchina fisica (Host 1) ospita:
� Web Server � Script Engine � Database
108
� Tipica di inizio anni ’90 quando le funzionalità implementate dalla BL erano limitate
� Per generare pagine dinamiche il Web server invoca un programma di script esterno riavviato ad ogni invocazione: à effetti negativi sulle prestazioni del sistema (overhead attivazione/deattivazione processi e apertura/chiusura connessioni con DBMS)
26/05/14
55
109
Configurazione 2 tier single host
� Vantaggi: ◦ semplicità installazione e manutenzione: si deve gestire una sola macchina
◦ semplice mantenere lo stato dell’applicazione: può essere memorizzato nello Script Engine o nel Database
� Svantaggi: ◦ bassa affidabilità: il malfunzionamento di un componente blocca l’accesso
all’intero sistema
◦ scarsa sicurezza: se un intruso supera il firewall, ha accesso alla macchina con i dati aziendali
◦ basse prestazioni e scalabilità: � Web Server e DBMS sono 2 processi che richiedono molte risorse RAM e tempo di
CPU � La scalabilità è limitata alla possibilità di upgrade della singola macchina (RAM,
sostituzione CPU o dischi, …)
110
Configurazione 2 tier single host
26/05/14
56
Soluzioni architetturali
� Configurazione 2 tier single host � Configurazione 3 tier dual host � Configurazione 3 tier con server farm � Configurazione 5 tier con server farm
111
Configurazione 3 tier dual host
� Web server e Script Engine sono ospitati su una stessa macchina � DB eseguito su macchina dedicata � Un secondo firewall introduce un secondo dominio di sicurezza a protezione del DBMS � La rete a cui è collegato il Web server viene detta DMZ (Demilitarized Zone): ◦ consiste in un segmento, o insieme di segmenti, della rete localizzati tra reti protette e non
protette ◦ è necessario tempo aggiuntivo per violare il secondo firewall e il DBMS, tempo che può
essere utile al sistema di Intrusion Detection (IDS) e agli amministratori per rilevare e bloccare l’attacco
112
26/05/14
57
Configurazione 3 tier dual host
113
Configurazione 3 tier dual host
� Meno critico il dimensionamento della macchina dedicata all’esecuzione di Web server e Script Engine e del server dedicato all’esecuzione del DBMS
Vantaggi e svantaggi � Migliora la scalabilità: si può intervenire separatamente sul tier intermedio
e data tier � Migliorano le prestazioni: permette un dimensionamento adeguato delle
macchine coinvolte � Critica la disponibilità: il guasto di un componente blocca l’intero sistema
114
26/05/14
58
Soluzioni architetturali
� Configurazione 2 tier single host � Configurazione 3 tier dual host � Configurazione 3 tier con server farm � Configurazione 5 tier con server farm
115
Configurazione 3 tier con server farm
116
Può esserci eventualmente anche il partizionamento della parte DB
26/05/14
59
Configurazione 3 tier con server farm
117
Configurazione 3 tier con server farm
� Replicazione dei componenti critici del sistema (Web server, o Script engine) è applicabile ad ogni livello e a a seconda dello schema di replicazione adottato
� Vengono introdotte server farm in configurazione RACS o RAPS
� Tipicamente per l’esecuzione di Web server, Script Engine e Application server si usano Server Farm in configurazioni RACS shared nothing
� Il DBMS viene invece replicato secondo schemi shared disk, sfruttando tecnologie moderne di storage networking (SAN e NAS) che consentono a più server di condividere un insieme di dischi attraverso reti ottiche ad alta velocità
118
26/05/14
60
Configurazione 3 tier con server farm
� La replicazione dei componenti critici: ◦ migliora la disponibilità del sistema: se cade uno dei processi, il
suo carico di lavoro viene distribuito sugli altri processi in esecuzione ed il sistema continua ad erogare il proprio servizio
◦ migliora la scalabilità del sistema: se si presenta un collo di bottiglia ad un qualsiasi livello è possibile introdurre nuove istanze di processi e nuove macchine server là dove risulta necessario, senza avere il limitate della possibilità di upgrade di una singola macchina
◦ consente di migliorare le prestazioni: il carico viene distribuito dai load balancer in modo bilanciato sui server attivi
119
Configurazione 3 tier con server farm Problema: applicazioni con la gestione degli stati � Web server: la richiesta di una pagina Web può essere eseguita in parallelo
dalle macchine della server farm, riducendo i tempi di risposta
� La replicazione può essere attuata in modo semplice per applicazioni stateless; risulta più problematica quando serve mantenere lo stato delle sessioni
� Soluzione possibile: ◦ introdurre load balancer evoluti che indirizzano le richieste provenienti da uno
stesso client al stesso server che mantiene lo stato della sessione (devono essere dunque intelligenti). Ma l’indirizzo IP del client può NON essere sufficiente per discriminare l’utente collegato (tutti gli utenti di una stessa Intranet potrebbero presentare verso l’esterno lo stesso indirizzo IP)
120
26/05/14
61
Configurazione 3 tier con server farm � Il problema della gestione dello stato della sessione si complica se si
vogliono rendere trasparenti i guasti agli utenti e si vuole garantire la continuità di sessione.
� Con tali esigenze, le sessioni eseguite da un server guasto devono essere recuperate dai server che lo sostituiranno e subentreranno nell’esecuzione delle ulteriori richieste da utenti connessi al server guasto
� Soluzione: memorizzare in modo permanente lo stato della sessione nel DBMS con lo svantaggio di aumentare il carico nel sistema a causa dell’aggiornamento dello stato della sessione
questa soluzione deve essere introdotta solo se a livello applicativo è effettivamente necessario mascherare all’utente il guasto e garantire la continuità di sessione.
121
Configurazione 3 tier con server farm
Mantenimento della sessione � è un problema anche con protocolli HTTPS o SSL per connessioni sicure
verso gli utenti
� Es. interazioni di autenticazione tra client e server per la generazione di una chiave di sessione utilizzata poi per comunicazioni sicure. La chiave di sessione è generata da un server e non viene condivisa con altri server. Quindi, tutte le richieste provenienti dallo stesso client devono essere indirizzate verso lo stesso server
Soluzione: in alcuni sistemi viene introdotto un server Web dedicato alla gestione delle connessioni sicure
122
26/05/14
62
Soluzioni architetturali
� Configurazione 2 tier single host � Configurazione 3 tier dual host � Configurazione 3 tier con server farm � Configurazione 5 tier con server farm
123
Configurazione 5 tier con server farm
124
� Tier dedicati per l’esecuzione di Web Server, Script Engine e Application Server ◦ Gestione parallelismo, replicazione
◦ Garanzia di sicurezza e disponibilità
26/05/14
63
Configurazione 5 tier con server farm
125
Configurazione 5 tier con server farm
� Nell’Application Server è centralizzata la BL; esso diventa contenitore di oggetti riusabili, per questo la farm di esecuzione dell’Application Server è protetta da ulteriore livello di firewall e risiede nella DMZ2 mentre Web Server e Script Engine (solo PL) risiedono nella DMZ di primo livello.
� Soluzione con il più alto livello di prestazioni, disponibilità e scalabilità, ma costosa e complessa da mantenere.
126
26/05/14
65
129
GIS à WebGIS
� I sistemi GIS sono stati inizialmente pensati e realizzati come applicazioni monolitiche e dipendenti dalla piattaforma (Wong et al., 2002)
� Con lo sviluppo di Internet, si sono evoluti per adattarsi a questo ambiente
� WebGIS: Web Information System che fornisce la funzionalità dei Sistemi Informativi Geografici sul Web tramite HTTP e HTML (Shanzhen et al., 2002)
130
26/05/14
66
GIS à WebGIS
� Un GIS può essere sviluppato e consultato su un’unica postazione di lavoro (workstation) oppure può essere reso pubblico mediante la divulgazione in Internet (in questo caso si parla di WebGIS)
131
WebGIS: vantaggi
132
� Diffusione: un WebGIS può essere raggiunto e consultato rapidamente da ogni parte del mondo à gli utenti possono lavorare da ogni postazione; le mappe e i grafici sono accessibili a più utenti à distribuzione immediata dell’informazione e aggiornamento in tempo reale
� Bassi costi per gli utenti finali: per la consultazione dei tematismi cartografici implementati in un WebGIS, gli utenti dovranno sostenere solamente i costi relativi alla connessione Internet
� Semplificazione: la pubblicazione su web del sistema di tematismi permette un’estrema semplificazione nella lettura e analisi degli stessi da parte degli utenti finali che non devono essere quindi “specializzati”
� Svantaggio principale: velocità di trasmissione à limite sulla dimensione e sulla tipologia dei dati trasmessi
26/05/14
67
WebGIS
133
� Nel GIS abbiamo tre tipologie di informazioni:
◦ Geometriche: relative alla rappresentazione cartografica degli oggetti rappresentati quali la forma (punto, linea, poligono), la dimensione e la posizione geografica
◦ Topologiche: riferite alle relazioni reciproche tra gli oggetti (connessione, adiacenza, inclusione, ..)
◦ Informative: riguardanti dati numerici, testuali, ecc… associati ad ogni oggetto
� Gestione di queste informazioni à database relazionale
� La relazione tra queste informazioni genera nuova informazione
WebGIS: architettura
134
� Data la classica architettura di un sistema client/server, dal lato server si aggiunge un nuovo componente, detto Map Server, che si occupa del trattamento dei dati spaziali
26/05/14
68
WebGIS: architettura � Nello svolgimento dei compiti di analisi GIS, l’architettura WebGIS
è simile alla tipica architettura client/server a tre livelli. � Il client è tipicamente un browser web; il server è invece costituito
da un Server Web, un Map Server e un Database
� A seconda delle potenzialità/funzionalità del client: ◦ Thick ◦ Thin ◦ Medium
135
WebGIS architecture – Thin client � Il client possiede solo la user interface necessaria per comunicare con
il server e visualizzare i risultati; tutta la parte di processing viene realizzata lato server
� Lato server, ci sono diverse possibilità per realizzare la connessione GIS al Web: Common Gateway Interface (CGI), WebServer Application Programming Interface (API), Active Server Pages (ASP), Java Server Pages (JSP) and Java Servlet per comunicare con l’IMS (Internet Map Server)
� L'utente (lato client) non ha bisogno di alcuna conoscenza circa i collegamenti lato server, ma gli sviluppatori e gli amministratori di sistema dovrebbero avere familiarità con queste tecniche.
136
26/05/14
69
� Vantaggi: ◦ Controllo centralizzato ◦ Facile per l’aggiornamento dei dati (sempre l'ultima versione) ◦ Generalmente più economico ◦ Possibilità di integrazione
� Svantaggi: ◦ Non risponde alle esigenze locali ◦ Nessuna responsabilità a livello locale, che necessita di applicazioni lato
client ◦ Grandi volumi di dati (dimensioni del database) ◦ Tempo di risposta lento: gli utenti usano un browser e ci vuole molto
tempo per scaricare nuovi frame HTML ◦ Meno interattivo: il client è limitata e il browser ha abilità altrettanto
limitate ◦ I dati vettoriali non appaiono lato client: browser senza plug-in aggiuntivi
non possono leggere file vettoriali
137
WebGIS architecture – Thin client
� Browser web: gestione di documenti HTML e immagini con formati standard. Per trattare altri formati di dati (es. dati vettoriali, video, musica,..) le funzionalità del browser devono essere estese.
� Poiché con la configurazione thin client i dati vettoriali non possono essere utilizzati, per superare questo problema, la maggior parte delle applicazioni browser offre un meccanismo che consente a programmi di terze parti di lavorare insieme al browser come plugin
� Le funzionalità della user interface offrono maggiori competenze mediante l’utilizzo di codice JavaScript, Applet Java, ActiveX, …
138
WebGIS architecture – Thick client
26/05/14
70
� Vantaggi: ◦ Non sono necessari standard su documenti e/o grafica ◦ Possono essere utilizzati dati vettoriali ◦ La qualità dell'immagine non è limitata a formati GIF e JPEG ◦ Interfaccia più avanzata, non limitata a operazioni single-click
� Svantaggi: ◦ Gli utenti devono avere software aggiuntivo ◦ Compatibilità Platform/Browser
139
WebGIS architecture – Thick client
� Per evitare che i dati vettoriali siano lato client e per ridurre i problemi delle due configurazioni architetturali precedenti à Medium Client Configuration
� Utilizzando estensioni sia lato client sia lato server, il client può avere funzionalità aggiuntive rispetto all’architettura thin client.
140
Servizi invocati dal client
* DEG = Display Element Generator
*
WebGIS architecture – Medium client
26/05/14
71
MapGuide Open Source
141
� È una piattaforma basata su internet che permette agli utenti di sviluppare e mettere in produzione applicazioni WebGIS e servizi web geospaziali.
� MapGuide può essere eseguito su Linux o Windows, supporta i server web Apache e IIS, e offre estensione in PHP, .NET, Java, and JavaScript API per sviluppare le applicazioni.
MapGuide Open Source Architettura
142
26/05/14
72
MapGuide Open Source Web Tier component
143
MapGuide Open Source
144
� Come interagiscono tra loro i vari tier?
26/05/14
73
WebGIS architecture – Distributed architecture
� Idea generale del modello di servizio GIS distribuito: un client (browser Internet o programma indipendente) dovrebbe essere in grado di accedere alle risorse (geodata and geoprocessing components) distribuite dell’intera rete. Il client e il server in questo contesto non si riferiscono a una specifica macchina.
� Ogni macchina infatti, quando richiede una risorsa remota durante il processing, è un client, e ogni macchina che fornisce queste risorse diventa un server
145
WebGIS architecture – Distributed architecture
� In un programma specifico, un client può connettersi a diversi server se necessario e una specifica macchina può agire da client una volta e da server un’altra volta
� Un modello di servizio GIS distribuito ideale dovrebbe essere un modello “geodata anywhere, geoprocesing anywhere”, che significa che gli strumenti di geodata e geoprocessing potrebbero essere distribuiti virtualmente con grande flessibilità in ogni punto della rete, e collaborano e si integrano per portare a termine un dato task
146