vuoi
o PayPal
tutte le volte che vuoi
ROLAP MOLAP
classici (relational), su database multidimensionali (multidimensional)
HOLAP
oppure su ibridi (hybrid).
Operazioni di analisi di un OLAP:
Drill down: zoom in sui dati cioè si richiede maggiore dettaglio (scendendo
nelle dimensioni per esempio da prodotti cerco i prodotti sportivi).
Roll up: zoom out sui dati cioè si chiedere minor dettaglio (da prodotti sportivi
a prodotti).
Slice & Dice: seleziona e proietta (select e where dell’SQL)
Pivot: cambia punto di vista del cubo di dati
In particolare, un sistema MOLAP implementa un ipercubo (da 3 a n dimensioni)
costituito da:
Fatto: un concetto su quale centrare l’analisi
Misura: proprietà quantitativa atomica dei fatti
Dimensione: grandezza a valori discreti che rappresenta il punto di vista di un
fatto
L’ultimo stage del Data Warehouse è la presentazione dei dati all’utente.
Strumenti di analisi – Data Mining
Tra i modelli per effettuare le analisi avanzate c’è il data mining cioè l’attività volta a
riconoscere ed estrarre in modo automatico informazioni nascoste da grosse
quantità di dati.
Il processo è composto dai seguenti passi:
Suppongo di avere un Data Warehouse
Analisi di data mining volta alla ricerca di condizioni notevoli all’interno dei dati
Valutazione dei risultati e loro riduzione ai soli ritenuti rilevanti
Presentazione dei risultati all’utente
Le tecniche di data mining possono essere ricondotte a tre aree di applicazione:
Regole di associazione: individuazione di elementi che compaiono spesso
insieme a un determinato evento. Ogni regola avrà una “bontà” che dipenderà
da quante volte si è verificata nel dataset (ES: quante volte un cliente che ha
comprato A ha comprato anche B).
Classificazione: definizione a priori di classi noti e successiva individuazione
automatica di caratteristiche distintive che permettono di catalogare i
successivi elementi nelle classi note.
Clustering: individuazione di gruppi con elementi omogenei all’interno dello
stesso gruppo e diversi da gruppo a gruppo.
Aspetti tecnologici - Architetture
L’architettura di un sistema distribuito può essere molto complessa.
Nonostante ciò è possibile riconoscere tre livelli logici di distribuzione (detti Layer) che
hanno il compito di rappresentare logicamente l’intero sistema informativo. I tre layer
principali sono:
Presentazione: gestisce il front-end
Logica applicativa: manipola i dati e input forniti dall’utente
Gestione dei dati: gestisce la persistenza dei dati, accesso etc..
Importanti caratteristiche delle architetture sono: affidabilità, scalabilità e tolleranza ai
guasti
Questi componenti andranno installati su delle macchine chiamate Tier.
Un’applicazione può essere configurata in modi diversi allocando i layer su uno o più
Tier.
Le principali configurazioni sono:
Single tiered: tutti e tre i layer sono su una singola macchina
Two tiered: la logica applicativa e la presentazione vengono svolte dal sistema
dell’utente mentre i dati sono salvati sul server.
Three tiered: l’applicazione è divisa in tre parti cioè in una stazione di lavoro
utente, un server intermedio e un server per la gestione dei dati.
N-tiered: è possibile suddividere i layer logici in un numero arbitrario di tier
fisici al fine di aumentare la scalabilità o la sicurezza del sistema. (Un esempio
in ambito web è quella a cinque tier: client – webserver – script engine –
application server – database server).
Server Farm
I tier fisici possono essere realizzati sotto forma di server farm ovvero come un
insieme di elaboratori che condividono il carico elaborativo; il vantaggio consiste
in un minore costo d’acquisto dell’hardware e nella maggiore affidabilità e scalabilità
del sistema.
Possono essere create secondo due principi:
Cloning: sui server vengono installate le stesse applicazioni software; i dati
shared disk)
sono condivisi da una base di dati centrale ( oppure ogni macchina
(shared nothing); instradate
possiede gli stessi dati le richieste sono poi ai vari
load-balancing;
membri dell’insieme dei cloni usando un sistema di un insieme
RACS
in cloni dedicati allo svolgimento di un particolare servizio è detto (reliable
stesso insieme
array of cloned services) ed ogni clone implementa lo di
funzionalità.
Partizionamento: le applicazioni e i dati vengono ripartiti tra i nodi e ogni
nodo svolge dunque una funzione specializzata.
Service oriented architecture
Il paradigma a servizi è basato sull’architettura a servizi SOA (service oriented
architecture) che si è sviluppato grazie alla possibilità di scambiare messaggi su
internet tramite HTTP e alla codifica XML.
Nella SOA ciascun servizio pubblica le proprie informazioni in un registro di servizi
con riferimento ad una descrizione dei servizi offerti in termini di messaggi scambiati.
Chi vuole interagire con il servizio saprà quindi quali messaggi scambiare. In questo
modo si aumenta l’interoperabilità tra i moduli che utilizzano i servizi e la
possibilità di riutilizzare software già fatto.
Cloud computing
Si può definire cloud computing un sistema con le seguenti caratteristiche:
On-demand self-service: gli utenti possono ottenere risorse come tempo di
esecuzione o spazio di memorizzazione in modo autonomo
Accesso alla rete onnipresente: sono necessari dispositivi con accesso ad
Internet
Accesso alle risorse indipendente dalla loro localizzazione
Elasticity delle risorse: le risorse possono essere rapidamente assegnate,
aumentato o ridotte
Monitoraggio sull’utilizzo: costo delle risorse è commisurato di quelle
effettivamente usate
Il concetto chiave nel cloud computing è la virtualizzazione; ne esistono di diversi tipi:
IaaS (infrastructure as a service): gli elementi infrastrutturali fisici vengono visti
nel sistema come elementi virtuali.
PaaS (platform as a service): virtualizzazione elementi a livello piattaforma.
Vengono fornite delle API per utilizzare il servizio e l’utente si prende carico
della sua implementazione.
SaaS (software as service): l’intero servizio applicativo viene fornito e gestito in
cloud (Gmail).
Architetture per l’integrazione
I modelli applicativi utilizzati di un’azienda sono in genere collegati tra loro da flussi
informativi utili per lo scambio di informazioni e per la segnalazione di eventi
particolari.
I moduli integrativi possono avere dunque dei problemi; i principali sono:
Problemi di integrazione dei dati: riguardano i flussi informativi (dati)
causati dalla differenza di formati e semantica che possono avere tra di loro.
Problemi di integrazione dei processi: possono verificarsi sia all’interno
della stessa organizzazione che tra diverse e sono causati da possibili differenze
di sincronizzazione, messaggi, interfacce, eventi e gestione dell’ordine dei
messaggi stessi.
Esistono delle soluzioni architetturali che aiutano a risolvere queste due categorie
di problemi.
In caso di diversi moduli con dati ridondanti e dipendenti tra loro è possibile
risolvere il problema implementando o utilizzando una Dara Warehouse condivisa.
In caso di diversi messaggi si possono inserire delle middleware view che
semplificano lo scambio di messaggio punto a punto grazie ad una integration
application che li gestisce.
Si possono anche utilizzare degli Adapter che rendono indipendenti le applicazioni
dai problemi di integrazione che vengono invece gestiti da un Message Broker alla
base (middleware view rule-based).
Un paradigma di integrazione diverso (che facilita l’integrazione definendo a priori i
possibili messaggi da scambiare) è il sistema a servizi: ogni sistema definisce una
propria interfaccia che specifica quali servizi sono offerti dal sistema e quali messaggi
devono essere scambiati per utilizzarli (sia in ingresso che in uscita). È basato
sull’architettura SOA.
Gestione del sistema informativo
Tipologia Livello Caratteristiche
In house 0 Servizi gestiti internamente
Servizi condivisi 1 Una compagnia fornisce sevizi IT
a tutte le unità
Supporto esterno 2 Servizi gestiti internamente con
il supporto di compagnie
specializzate e società di
consulenza
Consorzio 3 Gruppo di compagnie con
bisogni simili crea un consorzio
specializzato in alcuni servizi
Outsourcing selettivo 4 Alcuni servizi sono gestiti da
aziende esterne
Outsourcing completo 5 Tutto l’IT è gestito da un’azienda
esterna
Sicurezza
Con la diffusione di internet le aziende sono diventate dei sistemi aperti, nascono
quindi necessità di condivisione ed eterogeneità di applicazioni, informazioni e risorse.
L’insieme di questi aspetti crea anche delle necessità in termini di sicurezza.
Priorità:
Integrità: certezza che le informazioni non vengano alterate da terzi non
autorizzati
Autenticità: essere sicuri della provenienza del messaggio
Riservatezza: le informazioni devono essere lette solo dal destinatario
Disponibilità: il sistema deve fornire i servizi quando richiesti
Minacce:
Fisiche: furti, danneggiamenti, eventi accidentali, disastri naturali
Logiche: sottrazione dati sensibili, creazione di punti d’accesso nascosti
Accidentali: errori di configurazione, errori di data entry, bug
Tipologie di attacchi:
Sniffing: cattura di pacchetti di rete non destinati al nodo che effettua l’attacco
Spoofing: falsificazione dell’identità che può avvenire tramite address spoofing
ovvero generando pacchetti di rete contenti l’indicazione di un falso mittente
oppure tramite web spoofing tramite la falsificazione di un server web
Hijhacking: forma sofisticata di spoofing che consiste nel dirottamento di un
canale virtuale
DoS: rende non disponibile un servizio tenendolo impegnato di una serie di
operazioni inutili o bloccandone completamente l’attività
Malware: software in grado di arrecare danno al sistema
Trojan Horse: programma apparentemente utile che nasconde una porzione di
codice atta a realizzare azioni indesiderate o distruttive
Virus: codice scritto con l’esplicita intenzione di replicarsi; tenta di diffondersi
da un computer all’altro associandosi ad un programma ospite
Worm: programma che utilizza connessione di rete per trasferirsi da sistema a
sistema
Spyware: software che spia