Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
RIUSO
Si modella il costo dovuto al riuso come l’effort che è necessario per
adattare un modulo esistente all’effort che io avrei impiegato se l’avessi
dovuto sviluppare nuovo.
Utilizza due aspetti:
• Complessità necessaria ad adattare il software:
• Costo delle modifiche:
Questi individuano le penalità in percentuale poiché misurano quanto
devo pagare.
Due possibili formule:
BACKFIRING
Trasformazione della stima della dimensione del progetto in termini di
Function Point in linee di codice (KLOC): ad esempio:
1 FP = 128 LOC in C
INFORMATICA: è sempre stata vista come un costo fisso in cui
spendere il meno possibile -> variabile dipendente, ciò che ha portato
ad usare una serie di approcci basati su esternalizzazione (outsourcing)
dei processi informativi / sistemi informativi.
MA dal 2010 il fenomeno è diverso: le maggiori compagnie sono digitali:
il sistema IT diventa un fattore competitivo.
Cosa è cambiato? Il modo di vedere il digitale:
1. Pervasività della tecnologia;
2. Diventa fondamentale il software.
ICT (tecnologie dell’informazione e della comunicazione) non è più solo
un costo, ma opportunità: ha un effetto trasformativo
sull’organizzazione, dunque saperla usare al meglio è strategico.
EVOLUZIONE DELL’ARCHITETTURA DEGLI IS FISICI
I. Sistemi batch: programmati con schede perforate;
II. Real-time systems: elaboratore con interazione in tempo reale,
interattivo con terminali (centralizzazione per economie di scala);
III. Distribution informatics: do agli operatori non solo operatore ma
anche elaboratore con capacità di calcolo (personal computer) ->
decentralizzazione (al di sopra di una certa capacità critica la
centralizzazione non era più conveniente economicamente) ;
IV. Web system: internet;
V. Service oriented architectures and cloud computing: si passa ai
servizi (godere di alcune funzionalità utili alle esigenze senza essere
proprietario del sistema informativo).
EVOLUZIONE STRUTTURA ORGANIZZATIVA NEGLI ANNI
I. A piramide: 40% bianchi (manager) e 60% blu (operai). Questa
struttura si aveva negli anni ’60, nell’economia industriale (gerarchia
funzionale) -> Data Processing Era;
II. A diamante: bianchi su per giù uguale (manager), blu diminuiscono
grazie all’automazione (operai), rossi sono una nuova figura
(operatore della conoscenza). Questa struttura si aveva negli anni
’80 (focalizzata sulle funzioni) -> si entra nella Micro Era;
III. Architetture moderne: costruire/supportare processi trasversali.
Questa struttura si ha a partire dagli anni 2000 (focalizzata sui
processi) -> si entra nella Network Era.
PARTIZIONAMENTO IN LIVELLI
• Logici (Layer): strati software nei quali viene partizionata
un’applicazione -> presentazione, logica applicativa, gestione dati.
• Fisici (Tier): livello hardware (una macchina) su cui sono installati gli
strati software (single tier, 2-tier, 3-tier, 4-tier).
PROPRIETA’ IMPORTANTI DELLE ARCHITETTURE
1. Affidabilità: è la probabilità che il sistema sia operativo. Per misurarla
serve:
• MTTF -> Mean Time To Failure (tempo medio di rottura);
• MTTR -> Mean Time To Repair (tempo medio di riparazione);
AFFIDABILITA’ = MTTF .
(MTTF + MTTR)
(Più affidabile -> o diminuisco MTTR o aumento MTTF)
2. Tolleranza ai guasti: quanto un sistema è capace di “continuare a
lavorare” nonostante il guasto (anche a potenza minore e per un
periodo ridotto di tempo -> il giusto per poter sostituire ciò che si è
guastato). (Es. ruotino della macchina: posso camminarci sopra
senza correre, mi serve per poter arrivare in officina e sostituirlo).
SISTEMI IDEALI: 7 * 24 (7 giorni per 24 ore) oppure 0,9999
3. Scalabilità: capacità di soddisfare richieste crescenti con
aggiornamenti adeguati del sistema
Ho progettato un sistema per farlo lavorare su questa fascia
(10-100), ma cosa succede se esco dalla fascia? Come si comporta
il sistema?
Ci possono essere due effetti diversi:
1. Il sistema, per avere questo
comportamento (che è quello
desiderato), deve essere stato costruito
apposta per averlo: non è un caso che
si comporti cosi.
WEB INFORMATION
E’ un sistema in cui la logica di presentazione all’utente è presentata
tramite web (una tecnologia che ti permette di avere informazioni tramite
browser).
Che differenza c’è tra internet e web?
Internet è la rete fisica.
Il web è la ragnatela caratterizzata da tutte le pagine (è più astratto
rispetto a internet); si appoggia a internet.
Navigare per la ragnatela è un’azione molto statica: salto da una pagina
all’altra perché c’è il link dentro le pagine (ovvero ci muoviamo all’interno
così come ha progettato il progettista). Il web è stato statico fino al
2008/2010. Si è passato poi al web dinamico: tramite reti molto veloci le
pagine vengono create da zero a partire dall’input che l’utente ha
inserito (al contrario del web statico in cui le pagine sono già create,
vengono solo aperte).
Amazon è un esempio di web dinamico, poiché l’utente cerca ciò di cui
ha bisogno e Amazon crea una pagina adatta che rispetti la richiesta
inserita.
CONFIGURAZIONE 3 TIER DUAL HOST
(prato) (fossato) (castello)
Il sistema è protetto da due muri:
• Primo bastione: fa passare solo tentativi di connessione che fornisce
pagine html (ma fa connettere tutti);
• Secondo bastione: fa passare solo alcuni tipi di richieste (fa passare
connessioni solo dal mio server, dal mio indirizzo specifico).
SERVER FARM
Una server farm è un insieme di elaboratori sullo stesso livello del
paradigma C/S, che condividono il carico elaborativo.
Es. Posta -> prendo il numero, mi metto in coda e quando arriva il mio
turno vengo dirottata verso uno sportello a caso che mi serve.
CHI GESTISCE I SISTEMI INFORMATIVI?
GESTIONE OUTSOURCING
Per gestire, bisogna definire i livelli di servizio (o SLA: service level
agreement), che dipendono dal tipo di servizio, per verificare che quello
che mi viene dato è come lo voglio (se così non fosse, possono esserci
delle penali).
Bisogna, inoltre, definire le KPI (key performance indicators): indicatori
che mi permettono di misurare e verificare se il livello di qualità che mi è
offerta è la stessa che voglio.
Dunque, concretamente sono la stessa cosa: entrambi gli indicatori
vedono stabiliti dal soggetto che ha bisogno del servizio in outsourcing
per dare all’outsourcer dei parametri da rispettare nell’erogazione del
servizio richiesto. Inoltre, durante l’erogazione, è possibile verificare che
questi indicatori/parametri siano rispettati costantemente durante
l’erogazione del servizio.
Tuttavia, c’è una differenza tra SLA e KPI:
KPI: vengono usati per misurare un processo;
SLA: vengono usati per misurare un servizio di tipo tecnologico.
Per gestire un livello di servizio devo essere in grado di definire una
serie di meccanismi:
- Descrizione del servizio;
- Fornitura del servizio;
- Definizione livelli di servizio;
- Monitoraggio;
- Gestione dei problemi;
- Reporting;
- Documentazione.
Es. Internet a casa -> non ha senso definire gli indicatori da rispettare se
poi non ne monitoro l’andamento nel tempo (devo verificare
continuamente che funzioni alla velocità che pago!!!)
VANTAGGI E SVANTAGGI DELL’OUTSOURCING
Es. tipico processo in outsourcing: help desk o accaparramento del
cliente (telefonate indesiderate).
E’ meglio avere SLA e KPI di efficacia o di efficienza?
Entrambi!! Perchè?
• Se definisco solo indici di efficienza, sono orientato ad aspetti
prettamente economici (spremo la mia risorsa il più possibile), ma non
alla qualità.
• Se definisco solo indici di efficacia, mi concentro solo sulla qualità ma
non vedo se lo sto facendo in maniera intelligente (e cioè
minimizzando i costi).
ARCHITETTURE AVANZATE
Le principali innovazioni che guidano l’evoluzione delle attuali
architetture IT si basano su tecnologie di architetture a servizi, server
consolidation, e cloud computing. Si parla di architetture avanzate quelle
che si sono sviluppate dal 2000 fino ad oggi.
SOA (Service Oriented Architecture): paradigma architetturale per la
progettazione di sistemi software (non più main frame ma modularizzato
attraverso funzioni).
Dagli anni 2000, infatti, cambiò il modo di costruire il software: venne
introdotto il modulo (che garantiva l’omogeneità dei dati). Il modulo
segnò il passaggio da unico ‘agglomerato’ all’assemblaggio di blocchi
(moduli) aventi determinate funzionalità. Infatti, a seconda del modo in
cui questi blocchi venivano assemblati, risultavano differenti funzionalità.
Es. pagamenti online -> richiedono l’inserimento di dati e
l’autorizzazione della banca. Questo tipo di pagamento è considerato un
servizio, in quanto viene utilizzato in molti siti e applicazioni (Amazon,
Ticketone….), quindi è un modulo che viene utilizzato in più contesti.
Es. cerco un volo su Skyscanner e la piattaforma mi mette insieme
moduli delle varie compagnie
ELEMENTI DI UN’ARCHITETTURA A SERVIZI
Le funzioni sono progettate come servizi indipendenti.
Un web service può essere:
- Un business task autocontenuto;
- Un’applicazione;
- Una risorsa accessibile come servizio;
Gli elementi di un’architettura a servizi sono:
• Service Requestor;
• Service Provider;
• Service Registry: permette di pubblicare e cercare i servizi.
SERVER CONSOLIDATION: ricentralizzazione delle applicazioni dei
sistemi distribuiti su un numero inferiore di macchine fisiche con
l’obiettivo di ridurre i costi dell’impianto informatico.
Motivi:
1. Nel modello distribuito, server fisici sono usati al 15-20% , mentre i
server consolidation al 60%.
2. Numero minore di server fisici.
3. Differenti applicazioni usano le fasi di picco coincidenti per cui posso
eseguire sulla stessa macchina.
4. Riduzione dei costi di investimento e di gestione.
Cloud computing: IT “as a Service”
Un nuovo paradigma per la fornitura dinamica di servizi informatici
supportato da data center che adottano la virtualizzazione per il
consolidamento dei server e un ef cace utilizzo delle risorse. Il Cloud
computing si riferisce sia alle applicazioni fornite come servizi