Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e...

52
Il mercato dei servizi software Corso di Ingegneria del Software Dipartimento di Ingegneria Università degli Studi del Sannio

Transcript of Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e...

Page 1: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Il mercato dei servizi

software

Corso di Ingegneria del Software

Dipartimento di Ingegneria

Università degli Studi del Sannio

Page 2: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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.

Page 3: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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.

Page 4: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Le attualiportantidell’innovazionedigitale

Page 5: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 6: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 7: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 8: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 9: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 10: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 11: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 12: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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.

Page 13: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 14: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Internet ofThings

Page 15: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 16: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

McKinsey7

Page 17: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 18: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 19: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 20: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 21: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

On‐Premise

“On‐Premise” significa “in casa”

Risorse, hardware e software, sono “proprie”

È la situazione originale con cui si comparanole scelte del Cloud Computing

Page 22: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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/

Page 23: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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)

Page 24: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 25: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Tecnologie abilitanti

Reti (WAN) veloci

Computer potenti ed economici

Virtualizzazione efficiente

Standard software

Pagamento a consumo

Page 26: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 27: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono
Page 28: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Caratteristiche Essenziali

ElasticitàScalabilità

On‐demand self‐service

Broad network access

Resource pooling

Measured Service

Page 29: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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.

Page 30: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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.

Page 31: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Elasticità

Adattare l’acquisizione delle risorse in

funzione della domanda

Capacity

Demand

Time

Static data center

Capacity

Demand

Time

Data center in the cloud

Page 32: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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”)

Page 33: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 34: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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à

Page 35: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Modelli di implementazione

Ci sono quattro modelli di implementazione

Public CloudPrivate CloudCommunity CloudHybrid Cloud

Page 36: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 37: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 38: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 39: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 40: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Modelli di Servizio

Tre modelli di servizioInfrastructure as a Service (IaaS)Platform as a Service (PaaS)Software as a Service (SaaS)

Page 41: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 42: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 43: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Costi Nascosti

Acquisizione Hardware e Software

Cespiti

Installazione

Configurazione

AmministrazionePatch

Failure

Guasti

Page 44: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 45: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

Esempi di SaaS

Page 46: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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)

Page 47: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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à

Page 48: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 49: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 50: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 51: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono

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

Page 52: Corso di Ingegneria del Software · è al contempo una sfida e un’opportunitàper le imprese e per leAmministrazioni Pubbliche, che vedono crescere le attese di servizio. Ci sono