Introduzione al cloud computing

Transcript

Introduzione al cloud computing
Corso di Laurea Magistrale in Ingegneria Informatica
Corso di Ingegneria del Software Avanzata
A. A. 2013 - 2014
Cloud computing
1
Cloud computing
M. Mongiello
Ingegneria del
Software Avanzata
Sommario
• Introduzione
– Stato dell’arte
• Tecnologie
– Principali Vendor
• Architetture di cloud computing
2
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Definizione
• Per cloud computing si intende un insieme di
tecnologie informatiche che permettono l’uso di risorse
hardware (storage, CPU) e software distribuite in
remoto.
– La rappresentazione grafica delle reti mediante l’icona della
nuvola è antecedente all’introduzione di questo nuovo
paradigma e viene pertanto ripresa per porre in evidenza due
concetti di base del cloud computing, ovvero la rappresentazione
in forma astratta della complessità topologica di Internet e
l’irrilevanza di questa sua complessità, realizzando così un
sistema di cui non si conoscono i meccanismi di funzionamento
ma che permette l’invio e la ricezione delle informazioni.
3
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Caratterizzazione
• Il Cloud Computing è un insieme di tecnologie
informatiche che consentono di distribuire come servizi
su richiesta l’accesso e l’utilizzo di risorse di
elaborazione, memoria e risorse applicative, distribuite e
virtualizzate in rete.
• Cloud Computing può essere visto come un “ prodotto ”
che nasce da tecnologie come Grid Computing,
Autonomic Computing e Software as a Service, tutto
integrato e reso fruibile attraverso le tecnologie proprie
del Web 2.0, a partire dalla centralità del browser e
dall’approccio “ Web as a platform ”.
4
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Altre Definizioni
• Con il termine cloud computing si intende un insieme di
tecnologie informatiche che permettono l’utilizzo di
risorse hardware e software residenti in remoto e
accessibili dall’utente tramite la rete Internet.
• L’idea alla base di questa “architettura a nuvola” è quella
di avere un nuovo modello di sfruttamento delle risorse
offerte da Internet:
– infrastrutture, software, applicazioni e processi di business
dovrebbero risiedere prevalentemente sui server web (le
‘nuvole’) piuttosto che essere ‘diffusi’ sui singoli computer
connessi in rete.
5
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
6
La nuvola
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Caratteristiche
• Si ha la possibilità di accedere a servizi (e dati annessi)
attraverso Internet senza avere idea dell’infrastruttura
che li supporta e li fa funzionare;
• Si passa dall’utilizzo di architetture client server ad
architetture basate su servizi
– caratterizzate da:
• accentramento dei servizi hardware e software
• delocalizzazione delle risorse che consente di rendere disponibili i
propri dati all’intera infrastruttura cloud.
7
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Architettura
• Il sistema del cloud computing non è ancora
regolamentato da uno standard
• Generalmente prevede uno o più server reali in
architettura ad alta affidabilità e fisicamente collocati
presso il data center (l’unità organizzativa che coordina i
servizi di gestione dei dati) del fornitore del servizio che
utilizza un supervisore basato sulla tecnica di
virtualizzazione [34] per distribuire i servizi.
– Gli utenti di questa architettura sono essenzialmente tre:
• fornitore
• amministratore
• cliente
8
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
9
Architettura
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Utenti
• Il fornitore di servizi espone delle interfacce per elencare e
gestire i propri servizi.
• Il cliente amministratore utilizza tali interfacce per selezionare
il servizio richiesto (ad esempio un server virtuale completo) e
per amministrarlo (configurazione, attivazione, disattivazione).
• Il cliente finale utilizza il servizio configurato dal cliente
amministratore mentre le caratteristiche fisiche
dell'implementazione (localizzazione del data center) sono
irrilevanti.
– In determinate situazioni il cliente amministratore e il cliente finale
possono coincidere come nel caso di utilizzo da parte di un cliente
di un servizio di storage per effettuare il backup dei propri dati in
cui il cliente provvede a configurare e utilizzare il servizio.
10
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cloud computing vs Grid Computing
• Il concetto di cloud computing presenta inoltre delle
relazioni con quello di Grid Computing [3]
– tecnologia che si è affermata dagli anni ‘90 e che ha permesso il
calcolo distribuito
• consente una ricerca di interazione tra sistemi di elaborazione
dislocati geograficamente ai fini di una cooperazione a livello
computazionale tale da permettere di effettuare elaborazioni, di
vario tipo e finalità, altrimenti impossibili per una sola macchina.
• I due sistemi si differenziano per l’utilizzo delle risorse
che, nel caso del cloud, vengono allocate su richiesta nel
momento in cui un cliente ne ha bisogno e non sono
assegnate a prescindere dal loro utilizzo effettivo.
11
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Tipi di servizio
• L’accesso ad un servizio da parte di un’azienda che era
di tipo
– on premise: il servizio era ospitato su macchine dedicate e
completamente controllate
Diventa
– on demand: il servizio è ospitato su uno o più server di un
provider esterno (nel cloud) e viene richiesto con modalità di
pagamento pay-per-use.
12
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Categorie di serivizi
• Attualmente, la maggior parte dei servizi utilizzati da
un’azienda è di tipo on premise:
– file server, database, posta elettronica sono usualmente ospitati
su server aziendali e quindi anche le applicazioni aziendali più
personalizzate sono costruite con la stessa logica per la
necessità di dover accedere ai dati che risiedono su server
aziendali.
13
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Requisiti
• Generalmente, il fornitore dei servizi che mette a disposizione
l’infrastruttura cloud colloca un gruppo di server configurati in
modo di garantire:
– alta affidabilità
• l’elevata affidabilità è tipicamente una delle funzionalità che gli utenti
richiedono ad un servizio di cloud computing
– scalabilità
• quando si costruisce un cloud, si deve tenere anche in considerazione la
scalabilità.
• Questi due aspetti introducono complessità nella
progettazione di un sistema cloud, tuttavia:
– permettono di ridurre successivamente i problemi derivanti da
rotture hardware o problemi software
– consentono di aumentare rapidamente la capacità del cloud.
14
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Innovazione del cloud
• Un’architettura cloud impone un cambiamento
nell’infrastruttura:
– i dati non sono più residenti in locale sul proprio PC ma sono
distribuiti “sulla nuvola” e accessibili da qualsiasi dispositivo
• Si tratta di una nuova piattaforma che sostituisce il
normale sistema operativo in cui le nuove applicazioni (si
parla di software come servizi) non vanno più installate
sul proprio computer ma sono accessibili in the Cloud
come servizi a pagamento.
15
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cenni storici
• L’utilizzo del termine CLOUD è datato primi anni novanta
ed è legato all’ambito della comunicazione telefonica, in
cui vengono collocati “nella nuvola” i circuiti elettrici che
servono alla permutazione del traffico, sia audio che dati,
celandoli agli utilizzatori finali che risultano così a
conoscenza solo dei dispositivi d’ingresso e d’uscita della
comunicazione.
• Verso la fine degli anni novanta, con la continua crescita
dell’utenza consumer di Internet, si ha una forte spinta
innovativa e iniziano a circolare i primi servizi on demand
sulla rete, nasce il Software as a Service (SaaS) [11] che
per molti anni sarà l’unica forma disponibile di cloud
computing.
16
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cenni storici
• Uno dei primi casi è da attribuire a Salesforce.com [4] che
realizzò un modello di business basato su servizi a richiesta e
sulla personalizzazione di tali servizi da parte dell’utenza finale
senza avere alcuna competenza specifica, concetto questo
che incontrò notevoli pareri favorevoli.
• Nel 2005 una svolta sostanziale viene attuata da Amazon con
la modernizzazione dei propri datacenter secondo i nuovi
principi architetturali che, oltre a portare efficienza in termini
di elaborazione e consumo di risorse elettriche, ha permesso
l’accesso alla struttura da parte di utenti esterni, con lo scopo
di poter utilizzare le risorse computazionali “on demand”:
nascono così gli Amazon Web Services [5].
17
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cenni storici
• Nello stesso anno Microsoft con Hotmail e Google con
Gmail si orientano verso il Software as a Service,
proponendo un efficiente pannello di amministrazione
online della propria casella di posta elettronica, ponendo
le basi per il declino dei client come ad esempio Outlook.
• A partire dal 2006 Google comincia a focalizzare la
propria attenzione verso il cloud, andando a progettare
alcuni servizi con lo scopo di poter creare una suite di
applicazioni da utilizzare online.
18
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cenni storici
• Nel 2008 il termine comincia a diventare popolare anche
fra i non addetti ai lavori e persino i Mass Media iniziano
a rivolgervi l’attenzione, considerando questo approccio
come il futuro del web.
• A conferma del cambiamento in atto, nell’estate del
2008, l’autorevole Gartner [6] ha espresso in maniera
inequivocabile come le aziende cambino il loro assetto
dalla vecchia tipologia in cui posseggono in loco
hardware e software, verso un modello innovativo in cui
i servizi necessari vengono reperiti da terzi solo su
richiesta, pagando in relazione all’effettivo utilizzo
19
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Cenni storici
• Attualmente il cloud computing non va più considerato
come il futuro del Business Information Technology (IT)
ma piuttosto come il presente, avendo ormai raggiunto
un notevole livello di utilizzo.
20
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Vantaggi
• Accesso multi-postazione: con una struttura virtuale,
non presente in alcun modo sui propri computer, si
garantisce l’accessibilità al servizio richiesto da più
postazioni differenti;
– ad esempio, per controllare la posta aziendale da casa è
sufficiente collegarsi al servizio mail via web ed accedere tramite
le credenziali di cui si è in possesso.
21
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Vantaggi
• Facilità di aggiornamento del software: se prima un
qualsiasi aggiornamento dell’applicazione andava effettuato su
ogni singola macchina in cui era installata, con questa
architettura la società fornitrice dovrà semplicemente
aggiornare i propri file e ogni utente avrà in tempo reale le
modifiche disponibili.
– A trarne beneficio sono:
• gli utenti finali, che vedono ridurre i costi annuali di assistenza e
aggiornamento oltre a non doversi più preoccupare dell’eventuale
obsolescenza dell’applicazione utilizzata;
• le aziende produttrici di software, che potranno superare le difficoltà di
installazione delle proprie applicazioni legate a problemi di portabilità o
di obsolescenza delle macchine.
• Si torna quindi a parlare di thin client, ossia macchine con
limitate capacità, ma in grado di accedere in modo efficace ad
Internet per usufruire dei servizi in rete.
22
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Vantaggi
• Riduzione del costo di acquisto: solitamente un
software venduto sotto forma di servizio remoto ha un
costo considerevolmente più basso rispetto al caso in cui
richiede l’installazione in locale:
– Ad esempio, i servizi di storage o di elaborazione risultavano più
costosi e con molte difficoltà di reperimento nello scenario
precedente al cloud computing.
• Il principio in base al quale si paga solo quello che si
consuma (pay-per-use) permette alle imprese di non
avere un investimento capitale iniziale, ma solamente
spese operative.
23
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Svantaggi
• Affidamento dei dati a terzi: è il principale aspetto
limitante del cloud computing, in quanto i vantaggi
derivanti dalle tecnologie di cloud computing mettono le
aziende nella condizione di affidare i propri dati alle
società fornitrici di servizi e questa situazione può
portare eventuali rischi ed implicazioni a livello di
sicurezza e privacy.
• Una possibile soluzione è quella di adottare alcune
contromisure lato client:
– ad esempio
• eseguire una crittografia dei dati prima di riversarli in rete
• oppure stipulare precisi accordi di sicurezza con l’azienda fornitrice
24
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Svantaggi
• Limitazione in caso di assenza di connettività: se
la connessione è attiva tutto funziona perfettamente ma,
nel caso in cui si verifica un problema dovuto ad
esempio all’operatore telefonico, tutti gli utenti del cloud
non potrebbero più accedere ai servizi, di conseguenza si
dovrà far ricorso a servizi che prevedano alcune
funzionalità di base utilizzabili anche in assenza di
connessione Internet (come Google Gears [7]) o attivare
più contratti di fornitura d’accesso alla rete.
• I servizi di cloud computing utilizzano architetture
ridondanti e personale qualificato al fine di evitare
malfunzionamenti del sistema e di ridurre la probabilità
di guasti visibili dall’utente finale.
25
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Vantaggi vs Svantaggi
• In definitiva, quando ci si trova sul punto di valutare
l’utilizzo delle tecnologie cloud per le proprie esigenze, è
sempre consigliabile:
• valutare il vantaggio (economico e non solo)
• valutare i possibili rischi (economici e non solo)
– cercare di effettuare la scelta migliore per i propri bisogni
considerando i rischi accettabili e i vantaggi ottenibili.
26
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Curva del miglioramento tecnologico
• Si è osservato che sia il tasso di miglioramento della
performance di una tecnologia sia il suo tasso di diffusione nel
mercato tendono a seguire l’andamento di una curva a S:
– Nella fase iniziale il miglioramento della performance è lento perché
i principi di base della tecnologia sono stati compresi solo
parzialmente.
– In seguito, quando aumenta la conoscenza della tecnologia, il
miglioramento comincia ad essere più rapido.
– Infine, quando la tecnologia si avvicina al proprio limite naturale, la
curva tende ad appiattirsi.
• Il cloud computing non ha ancora raggiunto la maturità
necessaria per poter essere considerata una tecnologia
dominante.
27
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
28
Curva del miglioramento tecnologico
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Stato attuale
• Si può quindi classificare il cloud computing in questo
modello mediante il pallino nella parte bassa della S
molto vicino alla fase iniziale della stessa, in quanto sono
oltre 4 anni che insistentemente sta avvenendo una
promozione mediatica del fenomeno e numerosi analisti
interpellati sul cloud hanno considerato questa
architettura come un’innovazione in grado di contribuire
all’uscita dalla crisi economica da parte delle aziende.
29
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Tecnologie alla base del cloud
computing (1/2)
• la tecnologia sviluppata per i web e gli application server:
– si possono riconoscere in un tale sistema computazionale le diverse
funzioni attribuite ad un application server, quali la presentation, la
business e la data logic, con la differenza che esse sono ora
distribuite su sistemi cooperanti;
– le soluzioni innovative per la gestione di grandi moli di dati:
• il Cloud Computing utilizza le funzioni tipiche dei motori di ricerca per
identificare, indicizzare e memorizzare le informazioni;
– Rich Internet Application (RIA) che hanno portato in dote le
tecnologie per permettere di accedere ai servizi informatici
mediante interfacce utente molto ricche ed accattivanti ottenute
attraverso browser;
• esse si sono poi arricchite anche con la possibilità di operare anche
quando l’utente non è connesso, come proposto, ad esempio, da
Google Gears o da Adobe Air;
30
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Tecnologie (2/2)
– i principi delle Service Oriented Architecture (SOA) che hanno
permesso di organizzare le componenti computazionali
distribuite, in modo tale da poterle identificare, allocare e
ottimizzare per fornire funzionalità agli utenti;
– l’autonomic computing che consente di arricchire i server e le
funzionalità con la capacità di autogestirsi, in modo da limitare il
bisogno di intervento umano nelle aree proprie della gestione
(Configuration, Accouting, Performance e Security).
31
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Tipologie di cloud
Essenzialmente si possono distinguere tre tipologie generali di cloud [8]:
•
Private cloud: dati e processi sono gestiti dentro l’organizzazione
proprietaria senza restrizioni di banda di rete, questioni di sicurezza e
requisiti legali che le reti pubbliche e aperte possono comportare.
L’azienda proprietaria può decidere se consentire o meno a determinati
utenti, che ne fanno richiesta, di accedere e utilizzare la propria
infrastruttura;
•
Public cloud: descrive il Cloud Computing nel tradizionale significato,
ossia le risorse sono dinamicamente fornite in modo granulare e selfservice su Internet, via web applications, web services, da un provider
terzo che condivide risorse in remoto;
•
Hybrid cloud: combina i due modelli di cloud precedentemente
illustrati, ossia l’ambiente è composto di provider multipli interni ed
esterni.
32
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Politiche e tecniche gestionali
• Identity Management, per la gestione dell’identità e
dei profili d’utente, ad esempio mediante l’adozione di
soluzioni quali OpenId, Liberty Alliance;
• Accounting delle risorse utilizzate, anche considerando
prestazioni per gestire micropagamenti: un esempio è
rappresentato da Amazon per l’accesso al Simple DB;
• Sicurezza della trasmissione e accesso ai dati,
come meccanismi di autenticazione sicura e meccanismi
di crittografia.
33
Architettura Software
M. Mongiello
Corso di Laurea Magistrale in Ingegneria Informatica
Corso di Ingegneria del Software Avanzata
A. A. 2013 - 2014
Categorie di servizi
34
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
35
Panorama Cloud
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Categorie di servizi
• IaaS (Infrastructure as a Service )
• PaaS (Platform as a Service )
• SaaS (Software as a Service)
36
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
37
Categorie di servizi
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
IaaS
• Infrastructure as a Service (IaaS):
• in questo caso la nuvola nasconde un’intera infrastruttura
tecnologica che potrà essere utilizzata dall’utente per i propri scopi;
• in particolare, vengono messe a disposizione dell’utente, in forma di
servizi e in modo dinamico (secondo le necessità), risorse come
schede LAN, CPU, memoria.
– Il modello più comune è il caso di un data center il cui accesso
viene permesso anche all’utenza esterna per poterne sfruttare
capacità di calcolo o di immagazzinamento di grosse quantità di
dati.
38
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
PaaS
• Platform as a Service (PaaS):
– questa categoria racchiude tutti quei servizi che occorrono in
fase di sviluppo di un’applicazione o di un servizio web:
• si utilizza in remoto una piattaforma software che può essere
costituita da diversi programmi, librerie, etc.
• se prima tutto ciò era disponibile previo download ed installazione
nella propria macchina di determinati software, ora tutto questo è
disponibile sottoforma di servizi accessibili in remoto, permettendo
in alcuni casi notevole risparmio di risorse economiche.
39
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
SaaS
• Software as a Service (SaaS):
• riguarda la fornitura di un software condiviso tra tutti gli utenti (a
meno di configurazione di funzionalità opzionali) ed accessibile
attraverso un Web browser.
• tramite l’ausilio di questa tecnologia sta avvenendo un lento migrare
dai software tradizionali che si installano localmente nelle nostre
macchine, ad applicazioni web, o meglio servizi, accessibili tramite
un semplice browser che sta di fatto diventando l’equivalente del
terminale anni ‘80.
– Il servizio applicativo può essere fruito in una duplice maniera:
• in modalità singola istanza (architettura multi-tenant), in cui
appunto una sola istanza dell’applicativo gestisce più clienti,
• in modalità multi istanza (architettura single-tenant), in cui ogni
utente (tramite tecnica di virtualizzazione) viene servito mediante
una specifica istanza applicativa.
40
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
41
Single / multi tenant
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
esempi
• Esempi di servizi che sono già disponibili sul mercato, secondo
la modalità SaaS, sono i servizi applicativi di base come CRM
(Customer Relationship Management), back-up dei dati
centralizzati, mail e archiviazione.
• Passando dal generale allo specifico, è possibile dividere il
SaaS in due categorie principali:
– Servizi line of business, rivolti alle aziende di tutte le dimensioni
che costituiscono spesso soluzioni personalizzate per assistere
processi aziendali come contabilità o relazioni con i clienti. Questi
servizi vengono solitamente venduti ai clienti sotto forma di
abbonamento.
– Servizi consumer, rivolti al pubblico, vengono talvolta venduti
sotto forma di abbonamento, altre volte vengono invece forniti
gratuitamente e finanziati tramite pubblicità.
42
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Costi e tariffazione
• Il costo del servizio dipende dal livello di utilizzo; la
modalità di pagamento più diffusa è legata al numero di
utenti abilitati all’accesso, con eventuali altri costi che
dipendono da risorse aggiuntive o da eventuali funzioni
abilitate.
• Questo modello di tariffazione è particolarmente
vantaggioso per le aziende in forte crescita o in contesti
ad elevata fluttuazione della domanda, e in alcuni casi la
tariffazione è legata al tempo di utilizzo, come ad
esempio nelle applicazioni per il web-conferencing.
• Sono spesso previsti anche costi di attivazione.
43
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Costi e tariffazione
• Per le applicazioni che necessitano di significative attività
di setup, i migliori provider definiscono con chiarezza le
tariffe per i servizi di supporto specificando in modo
chiaro quali sono queste attività e la loro durata.
• Oltre alle attività di setup e configurazione, i servizi di
attivazione – da pagare one-shot all’attivazione –
includono anche il caricamento iniziale dei dati.
• I costi di setup sono ovviamente superiori per quelle
particolari applicazioni che richiedono anche la
disponibilità di ambienti di sviluppo e test.
44
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Ripartizione del budget
• In un’organizzazione tipica il budget destinato al settore
IT (Information Technology) viene speso in tre aree
principali:
– Software - Programmi e dati che l’organizzazione utilizza per le
elaborazioni informatiche.
– Hardware - Computer desktop, server, componenti di rete e
dispositivi mobili che consentono l’accesso al software.
– Servizi professionali - Persone e organizzazioni che garantiscono
l’efficienza del sistema, ovvero personale di supporto tecnico,
consulenti e fornitori.
45
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Budget
• Di queste tre aree, quella del software è la più direttamente
coinvolta nella gestione delle informazioni, obiettivo finale di ogni
organizzazione IT.
• L’hardware e i servizi professionali, per quanto componenti vitali
dell’ambiente IT, possono essere considerati mezzi per il
conseguimento di un fine, in quanto consentono al software di
produrre il risultato finale desiderato, ovvero la gestione efficiente
delle informazioni.
• In altri termini, qualsiasi organizzazione acquisirebbe volentieri
funzionalità software aggiuntive che non richiedano l’acquisto di
nuovo hardware, mentre nessuna acquisterebbe nuovo hardware
senza che vi sia l’esigenza di adottare un nuovo software.
• In un ambiente IT in cui viene utilizzato software eseguito in sede,
la maggior parte del budget viene solitamente speso per l’hardware
e per i servizi professionali, mentre solo una parte marginale viene
investita nel software (come mostrato in figura ).
46
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Budget
• Budget tipico di un ambiente IT basato su software
sviluppato internamente
47
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Budget
• In questo modello il budget destinato al software viene
speso principalmente per copie con licenza di software
aziendale confezionato e di software line of business
personalizzato.
• Il budget per l’hardware viene speso per i computer
portatili e desktop da fornire agli utenti, per i server che
contengono dati e applicazioni e per la componentistica
di rete. Il budget per i servizi professionali viene
destinato al personale di supporto, affinché provveda
alla distribuzione e al supporto del software e
dell’hardware, nonché ai consulenti e alle risorse di
sviluppo che facilitano la progettazione e la creazione di
sistemi personalizzati.
48
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Budget in un modello basato su Saas
• In un’organizzazione basata principalmente sul modello
SaaS, la ripartizione del budget IT si presenta in modo
molto diverso (come riportato in figura).
49
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Ripartizione del budget
• In questo modello il fornitore SaaS ospita le applicazioni
critiche e i relativi dati in server centrali dislocati presso
la propria sede e supporta l’hardware e il software con
personale dedicato; in tal modo l’organizzazione del
cliente viene sollevata dalla responsabilità di supportare
il software ospitato e di acquistare e gestire l’hardware
relativo.
50
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Osservazioni
• Inoltre le applicazioni distribuite via web o tramite Smart
Client gravano molto meno sui computer desktop
rispetto a quanto avviene con le applicazioni tradizionali
installate localmente, e in tal modo il cliente può
estendere in modo significativo il ciclo di vita della
tecnologia desktop.
51
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Vantaggi nell’uso di un modello Saas
vs ASP
• Il risultato finale è che una parte molto più grande del budget IT può
essere destinata al software, in genere sotto forma di quota di
sottoscrizione ai provider SaaS.
• Usualmente questi servizi utilizzano un’interfaccia con Web Services che
consente l’interoperabilità con altri applicativi seguendo i principi SOA
(Service Oriented Architecture).
• E’ opportuno precisare le differenze tra il SaaS e gli ASP (Application
Service Provider), un modello in base al quale si sosteneva che
qualsiasi software potesse essere in realtà trasformato in un servizio,
così da permetterne la fruizione da remoto evitando tutti gli
inconvenienti connessi alla sua gestione tradizionale.
– In questo modello, che ha trovato maggiore diffusione con i Web browser, nella
maggior parte dei casi, il provider ha semplicemente proposto delle applicazioni
tradizionali centralizzandole presso la propria infrastruttura e sollevando il cliente
dalle operazioni di manutenzione.
– Benché questo modello abbia alleggerito il cliente da tale responsabilità, non ha
comunque eliminato il costo iniziale di progetto ed i lunghi tempi di attivazione.
52
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Saas vs ASP
• Il cliente ha comunque dovuto acquistare licenze
perpetue, pagare il costo dell’hosting e siglare un
adeguato accordo di manutenzione;
• Il provider deve continuare a gestire differenti versioni
del software, in modo da andare incontro alle specifiche
esigenze della singola azienda e ciò si traduce comunque
in costi e potenziali criticità per il cliente.
• Questi sono i principali motivi del limitato successo del
modello ASP.
53
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Svantaggi del Saas
• Di contro, il modello SaaS abilita i provider a sviluppare e
gestire le sue soluzioni in modo più economico e scalabile per
soddisfare le esigenze dei propri clienti e consente al fornitore
di raggiungere elevati livelli di affidabilità gestendo una
versione comune e consolidata del software in modo più
efficiente.
• In questo caso si sposta dal cliente (che può accedere con
facilità alle applicazioni senza dover fare grandi investimenti in
licenze SW e HW) al fornitore l’onere dell’installazione e la
responsabilità di mantenere l’applicazione efficiente ed in
sicurezza.
• Dal punto di vista dell’architettura, le applicazioni SaaS
possono essere rappresentate come in figura successiva in cui
sono riportati i componenti essenziali.
54
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Architettura del Saas
• Componenti fondamentali di un’architettura Saas sono:
– Gli Smart Client
– il livello di presentazione
• possono richiamare delle interfacce esposte dai servizi di elaborazione
che avviano un flusso di lavoro sincrono o una transazione che
richiamerà altri servizi aziendali che interagiscono con i rispettivi archivi
dati per leggere e scrivere i dati aziendali.
– I servizi di protezione sono responsabili del controllo degli accessi ai
servizi software per gli utenti finali.
– I servizi di metadati costituiscono per gli utenti il mezzo principale
per personalizzare e configurare l’applicazione in base alle proprie
esigenze.
• I servizi e gli Smart Client interagiscono quindi con i servizi di
metadati per recuperare queste informazioni che descrivono
le configurazioni di ogni utente.
55
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
56
Architettura del Saas
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Ulteriore categorizzazione
• Questa classificazione dei servizi cloud non è univoca e
standardizzata, ma risulta la più comunemente definita; infatti
si fa talvolta riferimento ad altri livelli che non rientrano nella
gerarchia precedente ma che si focalizzano su alcuni specifici
aspetti del servizio offerto.
– AaaS (Application as a Service): ci si riferisce alla fornitura di
un’applicazione standalone come servizio del cloud
– BPaaS (Business Process as a Service): un modello per la
condivisione di processi di business nell’ambito del cloud computing
(un esempio di BPaaS è il test del software che è un processo di
business molto importante nel ciclo di vita dello sviluppo del
software)
– HaaS (Hardware as a Service) fa riferimento alla condivisione di
hardware o anche di un datacenter in forma di servizio cui
abbonarsi che permette alle imprese di costruire e gestire questi
datacenter o, in generale, di fruire di risorse hardware con notevoli
vantaggi per le imprese stesse.
57
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
IaaS-providers
• Amazon Web Services
– Il principale provider di servizi IaaS è Amazon, nota come
azienda di e-business,
• costituisce un riferimento per il cloud computing all’interno del quale
offre servizi:
– IaaS integrando nell’ambito degli AWS (Amazon Web Services)
– piattaforma di servizi web interamente basata su una infrastruttura di
cloud computing,
– tre componenti (servizi sempre erogati in modalità on-demand)
disponibili via Web Services:
58
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Amazon IaaS provider
• S3 (Simple Storage Service), relativa alla virtualizzazione
di risorse di storage
• EC2 (Elastic Compute Cloud), relativa alla
virtualizzazione di risorse di elaborazione
• SQS (Simple Queue Service), relativa alla virtualizzazione
di risorse di comunicazione
59
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Amazon S3
• Il servizio S3 [12], lanciato negli USA nel marzo 2006, permette di
archiviare un qualsiasi numero di file con il solo limite relativo alla
loro dimensione che deve essere compresa tra 1 byte e 5 GigaByte;
il costo è di 15 centesimi di dollaro per Giga memorizzato al mese
per gli utenti statunitensi, 10 centesimi di euro per gli utenti
europei.
• Questo servizio è utilizzato non solo da privati ma anche da aziende
di varia entità, come da grandi aziende come ad esempio il New
York Times che utilizza S3 per il proprio archivio storico.
• I file archiviati finiscono nella stessa infrastruttura utilizzata da
Amazon (che gestisce questo servizio tramite dei server remoti) per
il proprio core business.
• Occorre registrare il proprio account sul portale “Amazon Web
Services Store” per utilizzare questo servizio e, specificando i dati
della propria carta di credito, si può realizzare il proprio contenitore
di oggetti (bucket).
60
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Amazon EC2
• Il servizio EC2 [13], lanciato nell’agosto 2006, offre la
propria infrastruttura (si condivide la capacità di
elaborazione) per ospitare le applicazioni e adattare la
propria capacità di elaborazione on demand in base alle
proprie esigenze;
• il costo è sempre molto basso, da 10 a 80 centesimi di
dollaro all’ora.
• Il vantaggio principale di questo servizio è che l’utente
può, a seconda delle esigenze, variare le proprie
richieste e ciò è importante per ridurre i costi, visto che
vengono addebitati sulla carta di credito solo i minuti
effettivamente utilizzati ed il relativo traffico web.
61
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
SQS
• L’utente inizialmente prepara una macchina virtuale Xen [14]
contenente l’applicazione di interesse ed il relativo ambiente
di esecuzione; in particolare, all’utente sono assegnate una o
più istanze AMI (Amazon Machine Image), immagini virtuali
che possono ospitare uno dei seguenti sistemi operativi
preconfigurati: Red Hat Enterprise Linux, Windows Server
2003, Oracle Linux, OpenSolaris, openSuse, Ubuntu, Fedora,
Gentoo e Debian.
• La macchina virtuale viene trasferita sull’infrastruttura S3
dove viene allocata ed eseguita su una risorsa fisica;
mediante dei comandi di controllo, l’utente può avviare,
monitorare, e terminare la macchina virtuale, e le macchine
virtuali possono comunicare tra loro mediante il servizio SQS
[15], un servizio affidabile e altamente scalabile che ospita le
code per memorizzare dei messaggi mentre questi viaggiano
tra i computer.
62
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
EC2
• EC2 mette a disposizione software come i database
MYSQL Enterprise (Oracle e Mysql non richiedono
supplementi di prezzo), Microsoft SQL Server Standard
2005 e IBM DB2.
• E’ opportuno, inoltre, specificare che EC2 fornisce una
serie predefinita di tipologie di macchine virtuali che
differiscono tra loro nella capacità erogata.
63
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Servizi Amazon
• Amazon può vantare diversi casi di successo di utilizzo
dei propri servizi:
– Ad esempio
• Facebook, per l’accesso ai dati storici,
• NASDAQ, sono applicativi che vengono ospitati nella sua
infrastruttura.
• Un esempio efficace di utilizzo estemporaneo dei servizi Amazon è
invece il caso del Washington Post, il più diffuso quotidiano di
Washington che ha utilizzato i servizi di Amazon EC2 per rendere
disponibili al pubblico oltre 17 mila pagine di documenti pdf, che
riportavano le attività di Hillary Clinton negli anni della presidenza
del marito dal 1993 al 2001.
64
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Osservazioni
• Per realizzare questa elaborazione, sono state utilizzate circa
200 virtual machine per circa 24 ore per un totale di circa
1400 ore (tempo di utilizzo delle virtual machine), con una
spesa totale di soli 144,62 dollari.
• Poiché il middleware di Amazon EC2 non è disponibile, si è
sviluppata (ad opera della University of California)
un’alternativa denominata Eucalyptus [16] (Elastic Utility
Computing Architecture for Linking Your Programs to Useful
Systems),
– un’infrastruttura open-source per realizzare servizi di cloud
computing usando cluster di macchine o delle normali workstation,
che presenta un’interfaccia utente identica a EC2 ma
un’implementazione differente e in cui la scelta della risorsa fisica
su cui allocare la macchina virtuale è lasciata all’utente.
65
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Alternative ad Amazon
• Amazon è certamente il provider di servizi IaaS più noto, ma non è
l’unico ad offrire questi servizi; anzi, altri provider come GoGrid
[17] (che mette a disposizione macchine virtuali di tipo Linux e
Windows, in cui di default sono già preinstallati programmi come
Java, Apache, PHP, Microsoft SQL Server, e MySQL) si stanno invece
proponendo sul mercato con prezzi e funzionalità competitive
rispetto ad Amazon offrendo, ad esempio, i servizi di load balancing
e clustering gratuitamente. Questi provider sono in grado di offrire
servizi infrastrutturali, memorizzazione di dati, gestione di applicativi
web ed email hosting.
• Un altro importante provider di servizi IaaS è Azure [18] della
Microsoft che è stato inizialmente sviluppato come PaaS ma che ha
recentemente consentito anche un utilizzo di tipo IaaS dove le
risorse hardware vengono rese disponibili agli utenti in modalità ondemand con la possibilità di installare servizi e sistemi operativi
secondo la propria volontà.
66
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
PaaS-providers
•
Google App Engine
•
Anche un colosso come Google ha dato il suo contributo allo sviluppo delle
tecnologie di cloud computing attraverso Google App Engine [19], lanciato
nell’Aprile del 2008, che costituisce un servizio di tipo PaaS che permette agli
sviluppatori di scrivere applicazioni e di ospitarle sui server di Google a bassi
costi: costa tra i 10 e i 12 centesimi di dollaro per ogni ora di utilizzo di CPU e
tra i 15 e i 18 centesimi di dollaro per GigaByte di storage.
Occorre precisare che si tratta di una versione beta, che per il momento esiste
un tetto massimo di 500 MegaByte e che ci sono limitazioni sui linguaggi di
programmazione utilizzabili (Google App Engine mette a disposizione un
ambiente Java e un ambiente Python per creare applicazioni web).
Il servizio è facilmente integrabile con le applicazioni di Google e, rispetto ad
Amazon, appare più vicino ad un ambiente di sviluppo software: le applicazioni
App Engine sono facili da costruire, mantenere, scalare, supportando anche
oscillazioni di carico (i propri dati o applicativi saranno custoditi e mantenuti
nell’enorme infrastruttura informatica di Google).
•
•
67
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
PaaS provider
• Le Google Apps hanno 10 milioni di utenti e più di mezzo milione di
aziende clienti, ma i clienti delle Google Apps sono soprattutto
istituzioni pubbliche, piccole imprese e liberi professionisti, mentre
non sono per ora coinvolte le grandi aziende. Per utilizzare questo
servizio è opportuno conoscere alcune importanti tecnologie come
HTTP, CGI, HTML, CSS e Javascript e avere un account gmail per
potersi mettere in coda sull’URL http://appengine.google.com da cui
si avviano le procedure per sviluppare le web application.
• In pratica uno sviluppatore ha a disposizione un ambiente di
sviluppo completamente integrato per costruire le proprie
applicazioni e, una volta codificato lo script e uploadato tutto con il
suo account, si occuperà Google dei suoi dati, dello storage, del
monitoraggio.
• L’aspetto saliente di questo servizio PaaS è, in definitiva, quello di
fornire ciò che serve nel caso in cui non si dispone di
un’infrastruttura per ospitare le proprie applicazioni web facendo
riferimento a risorse hardware e software di Google.
68
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
69
Azure Platform
La piattaforma Azure [18] [20] della Microsoft è stata ideata per poter essere
impiegata in un sistema cloud sfruttando un sistema operativo specializzato,
denominato Windows Azure, che viene eseguito nei cluster dei datacenter della
Microsoft.
Le sue mansioni fondamentali sono l’assegnazione delle risorse (o un loro
sottoinsieme) ad applicativi presenti al suo interno e la gestione della potenza di
calcolo e della capacità d’immagazzinamento dei dati. Windows Azure supporta
inoltre diffusi standard e protocolli, tra cui SOAP, REST, XML e PHP.
Questa piattaforma permette, in accordo con la definizione di PaaS, di accedere
ai servizi “nascondendo” le risorse fisiche in modo da non dover conoscere
dettagli come le directory sul disco, i nomi dei server, i percorsi di rete, in
definitiva non è richiesto sapere dove e come sono memorizzati i dati o come
sono gestite le risorse.
Azure evita la forte dipendenza dai vincoli hardware consentendo agli
sviluppatori di creare rapidamente e facilmente nuove applicazioni per il cloud
usando le loro abilità con i prodotti Microsoft, impiegando gli ambienti di
sviluppo di Visual Studio o .NET Framework. Oltre al codice di tipo .NET, Azure,
nel prossimo futuro, supporterà diversi linguaggi di programmazione come Php,
Perl, Python, Java.
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Azure Service platform
• L’Azure Services Platform, quindi, lascia ai suoi
sviluppatori la più completa libertà nella creazione delle
applicazioni, limitandosi ad offrire solamente i
componenti fondamentali, come potenza di calcolo e
capacità di memorizzazione.
Offerta di Microsoft per il Cloud Computing
70
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Azure
• Godendo di flessibilità e di interoperabilità, la piattaforma
Azure può essere usata per progettare nuove
applicazioni cloud o migliorare quelle “vecchie”
equipaggiandole con capacità tipiche dell’infrastruttura
cloud.
• Si potranno così costruire web application che verranno
integrate direttamente, tramite il proprio account,
nell’infrastruttura di Windows Azure;
• inoltre, tramite l’apposita interfaccia web, è possibile
configurare le risorse di elaborazione che si vogliono
assegnare all’applicazione che funzionerà online nei data
center di Windows Azure.
71
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Azure service platform
• Azure Services Platform è caratterizzata da una pluralità di applicativi e
di servizi realizzati per eseguire specifici processi; in particolare, si
possono individuare i seguenti principali componenti:
• Live Services. Fornisce l’accesso ai dati e a varie applicazioni
permettendo anche la sincronizzazione dei dati tra computer desktop e
dispositivi, la ricerca e il download di applicazioni e molto altro ancora.
• Microsoft .NET Services. Offre infrastrutture distribuite sia per i servizi
di tipo cloud-based e sia per le applicazioni locali.
• Microsoft SQL Services. Fornisce servizi di memorizzazione dati basati
su SQL Server.
• Quella della Microsoft, infine, è un’architettura cloud aperta (possibilità
di personalizzazione della rete) che fornisce agli sviluppatori la capacità
di scegliere il tipo di sistema su cui far girare le proprie applicazioni
web, come ad esempio, sulla propria macchina, su più PC, su server o
su soluzioni ibride realizzate per sfruttare il meglio delle varie realtà.
72
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Piattaforma Force.com
• Force.com [21] è un set integrato di strumenti e servizi applicativi
che gli ISV (Independent Software Vendor) e i reparti IT aziendali
possono utilizzare per sviluppare applicazioni aziendali e gestirle
sulla stessa infrastruttura che fornisce le applicazioni Salesforce CRM
(Force.com è la piattaforma di cloud computing a livello enterprise
di salesforce.com) [4].
• Attualmente sulla piattaforma Force.com (che fornisce alle
organizzazioni IT un approccio radicalmente unificato agli
innumerevoli problemi aziendali) sono gestite oltre 80.000
applicazioni aziendali. In particolare, Force.com include un database
relazionale, un framework di sicurezza, delle API (Application
Programming Interface), dei servizi web, un’interfaccia utente e altri
potenti servizi che aiutano la realizzazione delle applicazioni
aziendali più complesse.
• Attualmente, più di 63.200 società, tra cui alcune delle
organizzazioni più attente alla sicurezza come Symantec [22],
utilizzano Force.com per eseguire le proprie applicazioni di business.
73
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Force.com
• Force.com offre un modello più veloce ed economico per lo
sviluppo e la distribuzione di applicazioni, ed è caratterizzato
dai seguenti aspetti.
- Nessun software o hardware: è sufficiente una connessione a
Internet per poter accedere tramite Force.com a una potente piattaforma
per applicazioni aziendali che elimina la necessità di acquistare, installare e
configurare hardware e software.
- Pagamento in base all'utilizzo: la piattaforma e le applicazioni
eseguite (con Force.com) su di essa sono distribuite come servizio su
abbonamento tramite Internet.
- Risultati veloci: grazie alle possibilità offerte dalla piattaforma
Force.com, le organizzazioni non devono più affrontare dei costi legati al
funzionamento dell’infrastruttura e possono iniziare a creare nuove
applicazioni che apportano un valore tangibile all’azienda; con costi di
avviamento pari a zero, la piattaforma Force.com riduce i tempi di sviluppo
e i costi operativi in modo drastico.
74
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
SaaS-providers
•
Salesforce.com
•
Leader nelle soluzioni di CRM (che si riferisce all’insieme delle attività che
un’azienda svolge per creare ed incrementare i rapporti con i propri clienti) on
demand, Salesforce.com [4] accresce il successo delle aziende mettendo a
loro disposizione la tecnologia più avanzata e rendendo più semplice la
condivisione e la gestione delle informazioni aziendali.
Dal 1999, anno della sua realizzazione Salesforce.com ha continuato a
migliorare la propria offerta di soluzioni on demand e fornisce
un’internazionalizzazione completa con traduzioni immediate in 12 lingue e
supporto multi-valuta.
In pratica Salesforce.com, azienda specializzata nel cloud computing a livello
enterprise, attraverso la soluzione Salesforce CRM, ridefinisce il concetto di CRM
presentando un innovativo approccio al cloud computing. Le soluzioni CRM di
Salesforce.com ottimizzano e automatizzano i processi aziendali, offrono al
personale aziendale un quadro chiaro e completo dei clienti, e aiutano tutto il
personale a rimanere concentrato da un lato sull’acquisizione di nuovi clienti e
dall’altro sul mantenimento della soddisfazione dei clienti esistenti.
•
•
75
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Saas Provider
• La suite di applicazioni SaaS, disponibile all’indirizzo
http://www.salesforce.com/it/products/, ha rivoluzionato le modalità
con cui i clienti gestiscono e condividono le informazioni aziendali su
Internet. L’idea di fondo è quella che le applicazioni Salesforce.com non
vengono gestite su un’infrastruttura d’utente molto costosa e che
necessita di grande manutenzione, bensì presso i centri di calcolo del
gestore; il software viene fatto funzionare tramite qualsiasi Web
browser e quindi può essere utilizzato facilmente come per il sistema di
ordinazione di libri in Internet.
• Le soluzioni on demand di Salesforce.com generano un livello di
successo dei clienti senza precedenti, il tutto “senza software” e ciò
implica vantaggi come l’accessibilità al sistema sempre e ovunque,
aggiornamenti automatici gratuiti, nessun costo occulto e
implementazione, personalizzazione e integrazione semplici e
immediate. In aggiunta al suo potente e intuitivo prodotto di CRM,
Salesforce.com offre un’architettura completa che consente a
un’azienda di estendere a tutti i suoi settori i vantaggi delle soluzioni on
demand.
76
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Saas Provider
• L’innovativa piattaforma on demand di Salesforce.com
AppExchange [23] permette a clienti e partner di creare
nuove potenti applicazioni in modo semplice e veloce,
personalizzare e integrare la suite Salesforce per soddisfare le
loro specifiche esigenze di business, distribuire e vendere
applicazioni su www.appexchange.com. Il marketplace
AppExchange offre oltre 800 applicazioni e componenti
preintegrati, in aree che vanno dalla gestione delle spese agli
acquisti, tutti pronti per l’installazione all’interno di Salesforce
CRM e creati dalla dinamica community in espansione di
clienti, sviluppatori e partner di Salesforce.com.
• In definitiva, l’usabilità di Salesforce ne ha facilitato l’adozione
da parte degli utenti e ha rafforzato la collaborazione a livello
mondiale aumentando la visibilità delle opportunità di vendita
e consentendo di gestire meglio le operazioni strategiche e di
concluderle con maggior efficienza.
77
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Salesforce
• Salesforce ha permesso la semplificazione del ciclo delle
vendite e la personalizzazione del sistema di CRM con
rapidità per adattarlo alle variazioni delle proprie
esigenze, gestendo ogni singolo aspetto del ciclo di vita
del cliente e fornendo una vasta serie di strumenti di
personalizzazione e integrazione per consentire alle
organizzazioni di creare la soluzione più adatta alle
specifiche esigenze aziendali. Senza software o hardware
da installare o aggiornare, non occorre attendere
settimane per essere pienamente operativi: l’operatività
immediata in pochissimo tempo avrà un impatto positivo
sulla propria azienda.
78
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Google Apps
• Google Apps
• Google supporta anche Google Apps [24], la suite web-based di
applicazioni di messaggistica e collaborazione che si pone come
obiettivi la sicurezza e l’affidabilità; in pratica Google Apps è la
piattaforma di comunicazione e collaborazione realizzata e sviluppata
da Google per organizzazioni di ogni tipo, dimensione e settore.
• Tutti i servizi offerti (posta elettronica, calendario, documenti...) sono
ospitati dai datacenter di Google sparsi per il mondo e sono erogati in
modalità SaaS; di conseguenza, è possibile definire nuovi progetti
strategici per il proprio business, senza trascurare il risparmio
economico in termini di costi per licenze, hardware e altro ancora
poichè non è più richiesta l’installazione di alcun componente hardware
o software. Inoltre tutti i servizi di Google Apps risultano intuitivi e facili
da usare presentando molte funzioni utilizzate nei sistemi di
comunicazione più diffusi e garantendo in questo modo un elevato
grado di adattabilità.
79
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Google
• Rilevanti aspetti da sottolineare sono la ridondanza dei
dati su numerosi server in diversi datacenter (maggiore
affidabilità) e l’utilizzo della piattaforma di Google come
sistema unico o integrato, realizzando così una
convivenza di infrastrutture, temporanea o duratura.
• In dettaglio, nel pacchetto Google Apps sono fornite le
seguenti funzionalità.
80
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Google Apps
• Il servizio webmail Gmail con 25 GigaByte di capacità per la mailbox di
ciascun utente (200 volte la capienza della tipica casella di posta
aziendale), largamente affidabile e utilizzato da decine di milioni di
utenti nel mondo. Dispone di interfaccia web intuitiva, motore di ricerca
email più potente del mercato, livello di protezione virus e spam
elevatissimo.
– L’applicazione per la gestione condivisa delle agende Google Calendar.
– Google Sites rappresenta un modo rapido e gratuito per creare e condividere
pagine web.
– Google Talk è un servizio di Voice over IP e di messaggistica istantanea offerto
da Google.
– Google Docs che consente ai team di lavorare insieme e in contemporanea su
documenti, presentazioni e fogli elettronici senza necessità di scambio via email
delle varie versioni.
– Google Video for business per la condivisione semplice e rapida di video.
• Gmail, Google Docs e Google Calendar sono utilizzabili anche in
modalità offline (come gli applicativi tradizionali) con allineamento dei
dati e invio/ricezione delle email una volta ripristinata la connessione.
81
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Altri SaaS-providers
• Oltre ai due provider di servizi SaaS appena esaminati
che sono senz’altro quelli più noti, ve ne sono anche altri
che costituiscono comunque valide alternative.
• Uno di questi è Zoho [25], una company americana con
una fitta rete di partner commerciali sparsi per il mondo,
che propone un CRM alternativo a quello di Salesforce:
la piattaforma ZOHO si pone all’utente finale come un
marketplace di applicazioni dove è possibile acquistare
una serie di programmi, memorizzare e condividere
documenti e utilizzare applicazioni business-oriented
come il CRM. L’utente può scegliere quale applicazione
utilizzare e semplicemente iniziare a fruirne previa
registrazione.
82
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Zoho
• Presente in Italia con due aziende distribuite nel nord
(Elatos [26] e Sinergest [27]), Zoho distribuisce,
all’interno delle sue business application, un proprio CRM
on demand in tecnologia SaaS che presenta interessanti
caratteristiche soprattutto se analizzate in un contesto di
PMI (piccole e medie imprese).
• La prima che salta all’occhio è senza dubbio il prezzo: in
Italia, ZOHO CRM è distribuito gratis fino a 3 utenti, dal
quarto in poi si pagano 12 € per ogni utente e per ogni
mese di utilizzo, sul mercato americano viene distribuito
secondo la stessa filosofia ovvero gratis fino a 3 utenti,
12 $ a partire dal quarto per la Professional Edition, 25 $
per la Enterprise.
83
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
84
Netsuite
Tra le alternative, riveste un certo interesse anche Netsuite [28] che
costituisce un sistema proprietario utile per le aziende che desiderano vendere e
commercializzare oggetti fisici e dei servizi, offrendo Suitescriptanche pacchetti
di estensione per gli utenti che ricercano scelte personalizzate.
Netsuite ha anche diversi prodotti disponibili come ad esempioNetsuite One
World Netsuite One World, which connects businesses to their overseas
subsidiaries, and, sistema (strutturato in diverse filiali multinazionali) progettato
per gestire un business di media grandezza, e Netsuite CRM+Netsuite CRM
+,which is especially useful to any user in the service industry, as it offers
added functionality for customer management and interaction. che è
particolarmente utile per tutti gli utenti nel settore dei servizi, in quanto offre
diverse funzionalità per la gestione dei clienti.
La piattaforma di Netsuite, denominata SuiteCloud, raggruppa dei prodotti, tool
di sviluppo e servizi progettati per aiutare i clienti e gli sviluppatori software a
trarre vantaggio dai benefici del cloud computing. Con SuiteCloud le aziende di
medio livello possono eseguire le loro operazioni di core business nel cloud,
consentendo di ottimizzare le operazioni e di ridurre i costi.
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Hiveon
• Ultimo caso esaminato è quello di Hiveon [29] che riveste un ruolo
importante nell’ambito dello sviluppo di applicativi web: si tratta di un
caso particolare di SaaS, un CMS (Content Management System)
avanzato proposto come software on demand che permette la
creazione di siti web tramite l’ausilio di un pannello remoto.
• Si ha, quindi, a disposizione un CMS multiutente e multisito, consolidato
e testato che nella sua versione base raccoglie tutte le funzioni
necessarie per realizzare un sito web dotato di servizi adatti ad ogni
tipo di settore. Vengono aggiunti continuamente moduli utili e
importanti come blog, newsletter, news e moduli per gestire un’attività
di e-commerce.
• La gestione di un sito con Hiveon aggiunge valore alla propria attività
grazie a nuove estensioni che semplificano di gran lunga il lavoro
manuale: dalla generazione di pagine di contenuto alla gestione di
layout personalizzati alla creazione di tutti i servizi online necessari alla
propria azienda.
85
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
86
Ulteriori scenari di servizio abilitati
Molti ritengono che la rivoluzione del cloud computing si attuerà mediante il
pressoché completo trasferimento di applicazioni e dati nel sistema cloud, così
come imposto dal modello SaaS. Tuttavia c’è chi sostiene che un modello ibrido
[30] possa risultare più efficace: le applicazioni ed i dati “in the cloud” si
affiancheranno, integrandosi, con applicazioni in esecuzione sui client e sui
server interni all’azienda, realizzando il modello Software-plus-Service (S+S).
Si tratta di un modello che potrebbe consentire una maggiore flessibilità nella
scelta del device di accesso alle applicazioni (PC, telefono), del tipo di
connessione, del luogo dove eseguire una certa logica di servizio “lato server”
(in-the-cloud/on-premise), e può tenere conto degli sviluppi della tecnologia dei
dispositivi dell’utente che, nel prossimo futuro, segnerà notevoli aumenti della
capacità di esecuzione e memorizzazione. Ad esempio, si può considerare
l’utilizzo di un cellulare nell’architettura cloud che permetta da un lato di
sfruttare appieno le potenzialità di elaborazione e memoria dei cellulari di futura
generazione e dall’altro di facilitare la reperibilità dei propri contenuti e servizi e
la loro condivisione con altri utenti, come all’interno di una rete sociale.
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
87
Web di dati
E’ noto che il Web tradizionale è una rete di documenti collegati tra loro tramite
dei link (gli URL), che permettono di realizzare un “enorme” ipertesto; accanto a
questo, si sta affermando un’altra rete di informazioni, costituita da un Web di
dati [43], in cui i dati sono descritti e messi in relazione tramite linguaggi
formali (come RDF), possibilmente arricchiti con informazioni semantiche.
La motivazione di un Web di dati nasce dalla necessità di organizzare i dati
presenti in Internet non solo come una rete di documenti HTML, come nel caso
del Web, o come un insieme di tabelle, come nei database tradizionali, ma come
una rete di dati associati ed aggregabili.
Il Web di dati è la base per abilitare applicazioni di data mining, in quanto è
molto più facile reperire, estrarre e combinare le informazioni di interesse dai
singoli dati e dalle loro relazioni, piuttosto che da documenti: questa visione è
condivisa da due iniziative internazionali che sono Dataweb [31], sviluppato da
OASIS, ed il progetto Linked Data [32] sotto il controllo del W3C.
Esempi di tali Web di dati sono quelli generati a supporto di servizi altamente
dinamici ed adattativi, come quelli elaborati nel contesto dell’iniziativa Wiki-city
del MIT [33].
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Web di dati
• La validità di tali dati può dipendere da condizioni spaziotemporali e il loro accesso e visibilità possono essere
soggetti a complessi vincoli d’autorizzazione; tali dati
devono essere opportunamente collezionati,
memorizzati, correlati e resi accessibili tramite strumenti
di ricerca e di navigazione. Inoltre è possibile che i nuovi
dati siano opportunamente distribuiti alle applicazioni
che hanno precedentemente espresso un interesse. La
dinamicità, la quantità, il ritmo d’acquisizione e di
distribuzione dei dati richiedono elevate capacità di
elaborazione e di memorizzazione che possono essere
messe a disposizione da un’infrastruttura di cloud
computing.
88
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
Data cloud
• Inoltre i meccanismi coinvolti in una tale infrastruttura
possono essere in grado di assorbire adeguatamente i
picchi di traffico e di scalare la soluzione al crescere degli
utenti e delle quantità di dati. A partire dalle informazioni
strutturate secondo l’approccio del Data Web si potrebbe
creare un “Data Cloud” [43], da intendersi come una
rete che mette in relazione tali dati.
• La sua realizzazione potrebbe utilizzare soluzioni che
offrono una gestione semplice (con una visione unitaria)
dei dati memorizzati sui diversi sistemi di cloud
computing, anche di fornitori diversi.
89
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
90
Bibliografia
[1] Bhaskar Prasad Rimal, Eunmi Choi, “A Taxonomy and Survey of Cloud
Computing Systems”, 2009 Fifth International Joint Conference on INC, IMS and
IDC, 25-27 Aug. 2009 Pp.44 - 51
[2] Liang-Jie Zhang; Qun Zhou, “CCOA: Cloud Computing Open Architecture”,
2009 IEEE International Conference on Web Services, 6-10 July 2009 Page(s):
607 - 616
[3] Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu, “Cloud Computing and Grid
Computing 360-Degree Compared”, Grid Computing Environments Workshop,
2008, Publication Date: 12-16 Nov. 2008, on page(s): 1-10
[4] http://www.salesforce.com/it/crm/
[5] http://www.amazon.com/
[6] http://www.gartner.com/technology/home.jsp
[7] http://gears.google.com/
[9] Hamid R Motahari-Nezhad, Bryan Stephenson, Sharad Singhal, “Outsourcing
Business to Cloud Computing Services: Opportunities and Challenges”,
http://www.hpl.hp.com/techreports/2009/HPL-2009-23.pdf
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
91
Bibliografia
[61] Hyuck Han, Shingyu Kim, Hyungsoo Jung, Heon Y. Yeom, Changho Yoon, Jongwon
Park, Yongwoo Lee, “A RESTful Approach to the Management of Cloud Infrastructure”,
IEEE International Conference on Cloud Computing, 2009
[62] R. T. Fielding, “Architectural Styles and the Design of Network-based Software
Architectures”, doctoral dissertation, 2000
[63] “Access Control Lists”, http://msdn.microsoft.com/en-us/library/aa374872(VS.85).aspx
[64] Czarnecki, P. Jajszczyk, A. Wilkosz, M., “Comparison criteria for management
information models (MIMs): a way of analyzing MIMs”, Network Operations and
Management Symposium, 1996., IEEE, On page(s): 666 – 673, vol.3
[65] “Managing the Federation Service”, http://technet.microsoft.com/enus/library/cc776298(WS.10).aspx
[66] Cutlip, R., and Zabeu, C., “Autonomic Computing: Strengthening Manageability for
SOA Implementations”, Autonomic Computing White Paper, IBM, 2006
[67] David A. Chappell, “Enterprise Service Bus”, O’Reilly, June 2004
[68] Ghemawat S, Gobioff H, Leung ST, “The Google file system”, Proc. of the 19th ACM
Symp. On Operating Systems Principles, 2003, On page(s): 29 - 43
[69] Ke Xu, Meina Song, Xiaoqi Zhang, Junde Song, “A Cloud Computing Platform Based
on P2P”, IEEE International Symposium, Volume 1, 14-16, Aug. 2009, On Page(s): 427 –
432
[70] Andrew S. Tanenbaum, Maarten van Stehen,“Distributed systems: principles and
paradigms”, Pearson Prentice Hall, 2007
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
92
Bibliografia
[10] Frederick Chong, Gianpaolo Carraro, “Strategie architetturali per il Long Tail”, http://msdn.microsoft.com/itit/library/aa479069.aspx
[11] “Il Software as a Service (SaaS)”,
https://www.sideupreply.eu/upload/File/cms/content/3075_img_WhitePaper_SaaS_Reply_it.pdf-id=3075
[12] http://aws.amazon.com/s3/
[13] http://aws.amazon.com/ec2/
[14] http://xen.org/
[15] http://aws.amazon.com/sqs/
[16] http://open.eucalyptus.com/
[17] http://www.gogrid.com/
[18] http://www.microsoft.com/windowsazure/
[19] http://code.google.com/intl/it/appengine/
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
93
Bibliografia
[21] http://www.salesforce.com/it/platform/
[22] http://www.symantec.com/index.jsp
[23] http://www.salesforce.com/appexchange/
[24] http://www.google.com/apps/
[25] http://www.zoho.com/
[26] http://www.elatos.net/
[27] http://www.sinergest.com/
[28] http://www.netsuite.com/portal/platform/main.shtml
[29] http://www.lifecode.it/it/448/hiveon.html
[30] Toby Velte, Anthony Velte, Robert Elsenpeter, “Cloud Computing: A
Practical Approach”, McGraw Hill Professional, 2009
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
94
Bibliografia
[31] OASIS, “The Dataweb: An Introduction to XDI”, http://xml.coverpages.org/XDIIntroWhitePaper20040120.pdf
[32] http://www.w3.org/DesignIssues/LinkedData.html
[33] F. Calabrese, M. Colonna, P. Lovisolo, D. Parata, C. Ratti, “Real-Time Urban
Monitoring Using Cellular Phones: A Case-Study in Rome”, MIT SENSEable City Laboratory
Working Papers, 2007, http://senseable.mit.edu/
[34] “La Virtualizzazione”, http://www.vmware.com/it/overview/
[35] http://www.vmware.com/pdf/esx3_esxupdate.pdf
[36] Thomas Erl, “SOA: principles of service design”, Prentice Hall, 2008
[37] David Bernstein, Erik Ludvigson, Krishna Sankar, Steve Diamond, Monique Morrow,
“Blueprint for the Intercloud - Protocols and Formats for Cloud Computing Interoperability”,
Fourth International Conference on Internet and Web Applications and Services, 2009,
328-336
[38] http://www.w3.org/
[39] Nextvalue S.r.l., “Cloud computing nelle imprese italiane: scenario, trend,
opportunità”,
http://www.datamanager.it/systemFiles/files/Nextvalue_ricerca%20Cloud%20Computing%
20in%20Italia.pdf
[40] Oracle White paper, “Architectural Strategies for Cloud Computing”, August 2009
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
95
Bibliografia
[41] Oracle White paper, “The Oracle Enterprise Architecture Framework”,
October 2009
[42] Ouertani, M.Z., Parlikad, A.K., McFarlane, D.C., “Towards an approach to
select an asset information management strategy,” International Journal of
Computer Science and Applications, Volume 5, Issue 3b, 25-44.
[44] “Ospit@ Virtuale”,
http://www.impresasemplice.it/scheda_prodotto_ospita_azienda.html
[45] Greg Boss, Padma Malladi, Dennis Quan, Linda Legregni, Harold Hall,
“Cloud Computing”, IBM, 8 October 2007,
http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_co
mputing_wp_final_8Oct.pdf
[46] Sun White paper, “Take your business to a higher level, Sun cloudcomputing technology scales your infrastructure to take advantage of new
business opportunities”, 2009
[48] Sun Microsystems, “Nuove funzioni di Solaris 10”,
http://dlc.sun.com/pdf/819-0357/819-0357.pdf
[49] ”Sun Microsystems presenta la nuova piattaforma Open Cloud”,
http://it.sun.com/sunnews/press/2009/20090323.jsp
[50] http://www.webdav.org/
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
96
Bibliografia
[51] LABShp, “Cloud – Research opportunities and challenges”,
http://www.hpl.hp.com/research/cloud.html
[52] “HP Cloud Assure on SaaS”, http://saas.hp.com/cloudassure
[53] “Introducing HP BladeSystem Matrix”,
http://h18004.www1.hp.com/products/blades/components/matrix/main.html
[55] Mietzner, R.; Leymann, F.; Papazoglou, M.P., “Defining Composite Configurable SaaS
Application Packages Using SCA, Variability Descriptors and Multi-tenancy Patterns”, Third
International Conference on Internet and Web Applications and Services, 8-13 June 2008,
Page(s): 156 – 161
[56] Hyun Jung La, Si Won Choi, and Soo Dong Kim, “Technical Challenges and Solution
Space for Developing SaaS and Mash-Up Cloud Services”, IEEE International Conference on
e-Business Engineering, 2009, October 21-October 23
[57] Jason Carolan, “Optimizing applications for cloud computing environments”, Sun
White Paper, November 2009
[58] Frank Buschmann, Kevlin Henney, Douglas C. Schmidt, “Pattern-oriented software
architecture: On patterns and pattern languages”, John Wiley and Sons, 2007
[59] http://hadoop.apache.org/mapreduce/
[60] J. Case, M. Fedor, M. Schoffstall, and J. Davin. A Simple Network Management
Protocol (SNMP). RFC 1098, 1990
Architettura Software
M. Mongiello
Ingegneria del
Software Avanzata
•
•
•
•
•
•
•
•
•
•
•
97
Bibliografia
[71] I.Stoica, R.Morris, D.Karger, F.Kaashoek, and H.Balakrishnan, “Chord: A scalable peerto-peer lookup protocol for Internet applications”, IEEE/ACM Transaction on Networking,
vol.11, no.1, Feb.2003, pp.17-32
[72] Antony Rowstron and Peter Druschel, “Pastry: Scalable, decentralized object location
and routing for large-scale peerto-peer systems”, IFIP/ACM International Conference on
Distributed Systems Platforms (Middleware 2001)
[73] Frederick Chong, Gianpaolo Carraro, Roger Wolter, “Architettura dati multi-tenant”,
http://msdn.microsoft.com/it-it/library/aa479086.aspx
[74] http://www.iso.org/iso/catalogue_detail.htm?csnumber=22749
[75] Tim Mather, Subra Kumaraswamy, Shahed Latif, “Cloud Security and Privacy: An
Enterprise Perspective on Risks and Compliance”, O'Reilly Media, Inc., 2009
[76] http://wikis.sun.com/display/cloud/Patterns
[77] http://www.citrix.com/english/ps2/products/product.asp?contentID=683392
[78] http://aws.amazon.com/cloudwatch/
[79] Microsoft, “Web Service Security: Scenarios, Patterns, and Implementation Guidance
for Web Services Enhancements (WSE) 3.0”,
http://download.microsoft.com/download/8/d/6/8d608524-0763-48b5-840b0ae446996a14/MS_WSS_Dec_05.pdf
[80] “Open Cloud Manifesto”,
http://www.opencloudmanifesto.org/Open%20Cloud%20Manifesto.pdf
Architettura Software
M. Mongiello