Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e...
Transcript of Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e...
Il mercato dei servizi
software
Corso di Ingegneria del Software
Dipartimento di Ingegneria
Università degli Studi del Sannio
Volumi di dati dei principali servizi negli ultimi anni YouTube eroga 100 milioni di video ogni giorno.
Google processa più di 20 PB al giorno (dato aggiornato al 2008…) (1 PB = 1015)
Chevron accumula 2TB di dati ogni giorno
Nel 2006,la quantità di dati su Internet è stata di circa 166exabyte
un exabyte è un trilione di byte,o 1,1 milioni di terabyte l'equivalente di50.000 anni di video in qualità DVD.
Facebook ha 2.5 PB di dati sugli utenti + 15TB/day (al 4/2009)
eBay ha 6.5 PB di dati sugli utenti + 50TB/day (al 5/2009)
Nel 1998,il numero di account di posta elettronica è stato dicirca 253 milioni e già nel 2010 ha sfiorato quota 2 miliardi.
Evoluzione del WEB
Web: connette dati I dati sono delocalizzati
Web 2.0 :connette persone
Dati ed applicazioni sono delocalizzate
Emergono i social network
IoT:connette il mondo fisico Attraverso rete di sensori
Le componenti del sistema sono
delocalizzate ed emergono network misti
persone / macchine (ad autonomia crescente)
La rivoluzione digitale
La digitalizzazione ha fatto un salto di qualità e
sta accelerando.
Il cambiamento che ne consegue
è al contempo una sfida e un’opportunità per le
imprese e per leAmministrazioni Pubbliche, che
vedono crescere le attese di servizio.
Ci sono aree in forte fermento:
• Connettività
• Business Intellicence e Big Data,Cloud
• IoT
• Information Security
• Mobile e Social Business
e la loro rapida crescita sta cambiando le regole del
gioco. Mai come oggi conta aprirsi ad esse e
innovare la cultura d’impresa.
Le attualiportantidell’innovazionedigitale
Advanced Machine Learning. Corrisponde al software capace di apprendere e simulare l’intelligenza umana, e
rientra nel composito ambito dell’intelligenza artificiale. La novità delle soluzioni in questione è che esse si
basano su sistemi di reti neurali (Deep Neural Net – DNNs), ossia sistemi interconnessi che imparano
autonomamente a interpretare i fenomeni. Negli ultimi anni le reti neurali stanno avendo ampio sviluppo e le loro
applicazioni possono essere molteplici e trasversali, ad esempio in ambito industriale per l’automazione degli
impianti e della logistica; marketing o acquisti, per la gestione dei dati attraverso sistemi predittivi evoluti;
medico, per le diagnosi precoci; consumer, per gli assistenti virtuali e per i social network.
Collaborative Robotics. Riguarda la nuova generazione di robot capaci di lavorare a fianco degli operatori
umani e di interagire con essi. I robot integrano al loro interno sistemi di calcolo (intelligenza artificiale),
sensoristica (alla base dell’IoT) e capacità di svolgere azioni. La Collaborative Robotics sta uscendo dai
laboratori e diventando un’opzione concreta nella progettazione di sistemi di produzione. È trainata sia dagli
sviluppi futuri dell’intelligenza artificiale, in particolare nuovi tipi di reti neurali basati su meccanismi di deep-
learning
Wearable Device. Sono i dispositivi indossabili che sfruttano le applicazioni mobili, creano una rete che
interconnette persone e aziende e interagiscono con i sensori dell’Internet of Things. Cresce in particolare
l’attenzione sui dispositivi (smartwatch, electronic tattoo, dispositivi per la sanità, il benessere e lo sport, occhiali
smart per realtà virtuale e/o aumentata) che sfruttano le tecnologie NFC e Bluetooth 4.0 utili anche al mondo
business; basti pensare ai Google Glass applicati alla logistica e alla manutenzione
Virtual and Augmented Reality. Le tecnologie in quest’ambito permettono la simulazione di un’esperienza o
l’arricchimento della percezione sensoriale mediante informazioni che non
sono di base percepibili con i cinque sensi
Internet ofThings
Nel 2013 il McKinsey Global Institute ha proposto un insieme piuttosto articolato di tecnologie disruptive
alla base di macro tendenze destinate con molta probabilità a caratterizzare i prossimi anni.
Tra queste l’Internet of Things (IoT), in italiano “Internet delle cose”, intesa come utilizzazione ottimale,
anche e soprattutto da un punto di vista economico, dell’insieme di tecniche e procedimenti diversi
impiegati, e delle conoscenze tecnico-scientifiche più avanzate.
Nel 2015 il Rapporto del McKinsey Global Institute osservava:
The Internet of Things (IoT) has rapidly become one of the most familiar — and perhaps, most hyped —
expressions across business and technology. That hype, however, is entirely justified and is backed up by the
numbers. The world will see 25 billion Internet-connected things by 2020, and Gartner estimates that the
IoT will produce close to $2 trillion of economic benefit globally. These things are not general purpose
devices such as smartphones and PCs, but dedicated objects, such as vending machines, jet engines, connected
soap dispensers and a myriad of other examples.
Le varie definizioni proposte disegnano i contorni dell’area all’interno della quale cercareun’idea condivisa di cosa l’IoT permetta di fare. Tale area è stata definita “come un percorso(già avviato) nello sviluppo tecnologico” in base al quale oggetti intelligenti, dotati cioè dellacapacità di monitoraggio e controllo, scambino, attraverso un sistema di reti intelligenti fracui Internet, dati e informazioni acquistando una propria identità nel mondo digitale.
Internet ofThings
Internet ofThings
McKinsey7
On‐Premise
“On‐Premise” significa “in casa”
Risorse, hardware e software, sono “proprie”
È la situazione originale con cui si comparanole scelte del Cloud Computing
Definizione di Cloud Computing
Il Cloud Computing è un modello abilitantel’accesso, conveniente e su richiesta, ad uninsieme di risorse di calcolo (es. reti, servers,archiviazione, applicazioni e servizi) chepossono essere approvigionate(“provisioned”) rapidamente, in manierasemplice.
Rif. http://www.nist.gov/itl/cloud/
Cos’è il Cloud Computing
È la prima vera strategia di marketing per«vendere» la capacità di calcolo di Internet
È legata all’evoluzione dei Data Center
Utility Computing: pay‐as‐you‐go computing
Illusione di risorse infinite
Nessun costo di avvio
Fatturazione granulare (costi orari)
I Player del Cloud Computing
È un percorso obbligato per i grandi diInternet per sostenere i costi dei nuovi DataCenter
Experience with very large datacenters
Unprecedented economies of scale
Tecnologie abilitanti
Reti (WAN) veloci
Computer potenti ed economici
Virtualizzazione efficiente
Standard software
Pagamento a consumo
Economia dei Cloud Providers
5‐7x economies of scale [Hamilton 2008]
Extra benefitsAmazon: utilize off‐peak capacityMicrosoft: sell .NET toolsGoogle: reuse existing infrastructure
Resource
Network
Storage
Administration
Cost inMedium DC
$95 / Mbps / month
$2.20 / GB / month
≈140 servers/admin
Cost inVery Large DC
$13 / Mbps / month
$0.40 / GB / month
>1000 servers/admin
Ratio
7.1x
5.7x
7.1x
Caratteristiche Essenziali
ElasticitàScalabilità
On‐demand self‐service
Broad network access
Resource pooling
Measured Service
ScalabilitàIl termine scalabilità, nelle telecomunicazioni,nell'ingegneria del software, in informatica, e inaltre discipline, si riferisce, in termini generali, allacapacità di un sistema di "crescere" o "decrescere"(aumentare o diminuire di scala) in funzione dellenecessità e delle disponibilità. Un sistema chegode di questa proprietà viene detto scalabile.
Elasticità
Elasticity is defined as the ability to scaleresources both up and down as needed. Tothe consumer, the cloud appears to beinfinite, and the consumer can purchase asmuch or as little computing power as theyneed. This is one of the essentialcharacteristics of cloud computing in the NISTdefinition.
Elasticità
Adattare l’acquisizione delle risorse in
funzione della domanda
Capacity
Demand
Time
Static data center
Capacity
Demand
Time
Data center in the cloud
On‐demand self service
Un utilizzatore di servizi “cloud” può utilizzareI servizi stessi in autonomia, senza alcunainterazione con il cloud provider
Accesso alla rete pervasivo
Le risorse “cloud” sono accessibili attraversoInternet, senza alcuna limitazione, attraversoprotocolli standard, da client leggeri (“thin”) opiù strutturati (“thick”)
Resource pooling
Un fornitore di “cloud” applica il modello“multi‐tenant” (multi‐”affittuario”).
Le risorse sono disponibilit a tutti I clienti
Le risorse sono assegnare e riassegnate aseconda della domanda.
Il cliente non ha genericamente la percezionedove sia effettivamente disponibile la risorsa
Servizio misurato
Tutti gli aspetti di un servizio cloud (CPU,memoria, storage, I/O) sono monitorati da uncloud provider.
È fondamentale per
Fatturazione
Controllo degli accessi
Ottimizzazione delle risorse
Pianificazione delle capacità
Modelli di implementazione
Ci sono quattro modelli di implementazione
Public CloudPrivate CloudCommunity CloudHybrid Cloud
Public Cloud
Una Cloud è pubblica se è accessibileattraverso ISP terzi
Pubblico non significa “free”
Pubblico non significa che i dati di un utentesono pubblicamente visibili
I principi del cloud (a partire dalladisponibilità) sono disponibili
Private Cloud
Una Cloud è privata quando
E’ gestita (garantendo elasticità, pooling delle risorse, ecc..)all’interno di una organizzazioneNessuna restrizione di banda di reteSicurezza “LAN” invece di Internet
Community Cloud
Una Community Cloud è controllata da ungruppo di organizzazioni, invece che da unsingolo.
Condividono stesso meccanismo di sicurezza
Accesso ai dati
Applicazioni del Cloud
Hybrid Cloud
È una combinazione di una public e di unaprivate cloud
Tipicamente è la scelta di un’azienda dipubblicare nella public cloud informazioni noncritiche all’azienda.
Probabilmente è il modello di riferimento cheun’azienda dovrebbe scegliere
Modelli di Servizio
Tre modelli di servizioInfrastructure as a Service (IaaS)Platform as a Service (PaaS)Software as a Service (SaaS)
IaaS Infrastructure as a Service
È l’evoluzione del «vecchio» housing
È l’applicazione delle macchine virtuali
Il protagonista principale è Amazon con EC2
Elastic Cloud Computing
Anche Windows Azure ha questo con la VM Role
SaaS Software as a Service
È l’integrazione nella filosofia «cloud» delleapplicazioni che normalmente utilizziamo,dalla posta elettronica, ai documenti
Sono le infrastrutture di queste applicazioniche hanno creato i Data Center
Il modello di business tipico è:
Si comincia gratis
Si aggiungono funzioni a pagamento
Costi Nascosti
Acquisizione Hardware e Software
Cespiti
Installazione
Configurazione
AmministrazionePatch
Failure
Guasti
OtherManages
OtherManages
OtherManages
Distribuzione delle Responsabilità
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Esempi di SaaS
PaaS Platform as a Service
È l’evoluzione del «vecchio» hosting
Orientato allo sviluppo di applicazioni «on thecloud»
Fornisce funzionalità utili al modello cloud
I protagonisti
Google con AppEngine
Windows con Azure
Amazon Web Services (Simple Storage Services)
Un modello di riferimento
I componenti tipici di una applicazione Cloud sono:
Front end: load‐balanced stateless web servers
Middle worker tier: order processing, encoding
Backend storage: SQL tables, files, blobs
Multiple instances per scalabilità e disponibilità
Scenari applicativi
Applicazione che necessità di alta disponibilitàEsempio: A SaaS application
Applicazione che necessita di alta scalabilitàEsempio: una applicazione Web 2.0
Applicazione con carico molto variabile
Esempio: una applicazione che permette di fareregistrazione
Applicazioni con durata breve o non pianificabile
Una applicazione creata per una campagna dimarketing
SaaS
Permette l’accesso a strumenti che avrebberocosti di acquisizione molto alti
Tutti hanno una modalità free per provareSostanzialmente limitato in numero di utenti, di duratae di numero di oggetti
Completo nelle funzionalità
Alcuni punti di discussioneLa connettività migliora sempre più con il passare del tempo (ma ineffetti c’è ancora molto da fare)Il mobile è sempre più diffuso
I gruppi di lavoro sono sempre più eterogenei
IaaS
Accesso ad architetture complesseScaling delle applicazioniTutto a costi operativi e non di acquisizione
Minimizzare i costi amministrativiDistribuzione delle funzioni
On‐Premise:gestione della lan Aziendale (dominio Windows)File sharingERP (probabile)Contabilità (forse)
On Cloud: tutti gli altri servizi (non più DMZ)WebE‐MailPortali collaborativi
PaaS
Nuove opportunità nello sviluppo di soluzionicustom
Accesso ad architetture complesse
Scaling (out) delle applicazioni
Tutto a costi operativi e non di acquisizione
Alta disponibilità
Stessi strumenti software