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

Post on 03-Aug-2020

1 views 0 download

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