Ldb 25 strumenti gis e webgis_2014-05-26 vaira - architetture dei sistemi informativi basati sul web

74
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

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  

26  

Disponibilità dei dati

51

Livelli di disponibilità

52 SLA: Service Level Agreement

26/05/14  

27  

Livelli di disponibilità

53

Livelli di disponibilità

54

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  

52  

103

Progettazione dell’architettura

104

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  

64  

Vantaggi e svantaggi delle configurazioni

127

128

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

26/05/14  

74  

WebGIS Distributed architecture Example

147

148

Cos’è una n-tier application?

Perché è così utile ai fini dello sviluppo di applicazioni web?