Cloud Computing e Agenti Software:
Sfide e Opportunità
Domenico Talia
ICAR-CNR & Università della Calabria
[email protected]
Obiettivi
• Presentare dello stato dell’arte dei modelli e delle
architetture di Cloud computing.
• Discutere il loro uso per applicazioni distribuite e
parallele di grandi dimensioni.
• Analizzare analogie, differenze e possibili sinergie tra i
sistemi di Cloud computing e i sistemi multi-agenti per
• la simulazione di sistemi complessi e
• l’implementazione di sistemi intelligenti ad alte prestazioni.
• Discutere alcune sfide e opportunità di usi coordinati e
integrati di sistemi di Cloud computing e di sistemi multiagente.
Agenti e Cloud Computing
• Le attività di ricerca nell’area dei sistemi di Cloud
computing è focalizzata su: gestione della
infrastruttura, service delivery, data storage, scalable
virtualization techniques, e energy efficiency.
• In sintesi, il Cloud computing ha come principale
obiettivo l’uso efficiente della infrastruttura a costi
ridotti.
• Al contrario, nel settore degli agenti il focus è sugli
aspetti di “intelligenza” e di proattività delle
computazioni distribuite e sul loro uso in applicazioni
complesse.
Agenti e Cloud Computing
• Esistono elementi comuni e differenze tra i sistemi
ad agenti e i sistemi di Cloud computing: occorre
analizzarli e saperli sfruttare.
• Una caratteristica dei sistemi ad agenti è
“l’intelligenza” che possono esprimere:
potrebbe/dovrebbe essere messa a disposizione dei
sistemi Cloud.
• Gli agenti possono essere eseguiti su sistemi Cloud
per ottenere alte prestazioni e risolvere problemi
complessi in tempi ridotti.
Cloud Computing
Il Cloud computing è un modello di elaborazione in cui
le risorse (hardware/software)
Sono scalabili dinamicamente e
Sono virtualizzate
Sono fornite con un’interfaccia a servizi (as a service) su
Internet.
Le risorse che un sistema Cloud mette a disposizione
degli utenti e delle applicazioni sono CPU, memorie,
reti, sistemi operativi, middleware, applicazioni.
Cloud Computing: Definizione NIST
Il NIST (National Institute of Standards and Technology ) da
la seguente definizione di Cloud Computing:
“Cloud computing is a model for enabling convenient, ondemand network access to a shared pool of configurable
computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned and
released with minimal management effort or service provider
interaction.”
Le caratteristiche principali di un sistema Cloud sono:
On-demand self-service, Broad network access, Resource pooling,
Rapid elasticity, Measured Service.
Cloud Computing
Il termine Cloud Computing nasce dalla nuvoletta usata
per rappresentare Internet e da “telecom cloud”.
I sistemi Cloud estendono le funzionalità di Internet
offrendo tutte le operazioni che si possono eseguire su un
computer connesso in rete.
Gli utenti di un sistema Cloud non hanno conoscenza o
controllo
sulla
infrastruttura
tecnologica
(hardware/software) che supporta i loro usi.
Cloud Computing
Negli anni ’90 le reti dati erano hard-wired tra due punti.
Successivamente le compagnie hanno offerto le Virtual
Private Network (VPN) per lo scambio di dati.
Questo ha permesso di gestire in maniera più flessibile ed
affidabile le reti.
Come risultato è diventato impossibile determinare in
anticipo il percorso dei dati.
Il termine Telecom Cloud è stato usato per descrivere
questo tipo di modello di comunicazione, e il Cloud
computing è simile concettualmente ad esso.
Cloud Computing
I sistemi Cloud permettono di:
Affittare i servizi di elaborazione da un fornitore
Aumentare e diminuire dinamicamente le unità di
elaborazione
Pagare solamente per le risorse che sono effettivamente
utilizzate
Esempio: ore CPU, banda di rete, quantità di storage, software,
applicazioni, …
Cloud Computing
Un utente usa la risorse delle macchine di un
sistema Cloud senza conoscerne le caratteristiche
di dettaglio e senza occuparsi della loro gestione.
10
Cloud Computing
http://my.com
0.1
$/h
0.1
$/h
0.1
$/h
0.2
$/h
0.1
$/h
0.1
$/h
0.1
$/h
Load Balancer
Esempio: 0.8$ per 1 ora + Traffico di rete
Esempio: 0.4$ per 1 ora + Traffico di rete
11
Caratteristiche dei Sistemi Cloud
Interfaccia a servizi
On-demand
Accesso Ubiquo tramite Internet
Aggregazione di risorse location independent
Elasticità
Pay per use
12
Classi di Sistemi Cloud
• Public cloud
• In vendita al pubblico, infrastruttura di grande dimensione
• Private cloud
• Di proprietà (o in affitto) di un’azienda/ente
• Community cloud
• Infrastruttura condivisa da una comunità di utenti
• Hybrid cloud
• Composizione di due o più cloud
13
Classi di Sistemi Cloud
Public Cloud
Esterno
Interno
Private Cloud
Private Cloud
Azienda
14
Modelli a Servizi
• Software as a Service (SaaS)
• Software fornito agli utenti “On-demand”
• Non serve acquistare le licenze
• “Utility-based” computing
• Platform as a Service (PaaS)
• L’ambiente per lo sviluppo di Cloud applications è fornito secondo
il modello “Software as a Service”
• Infrastructure as a Service (IaaS)
• Una infrastruttura di elaborazione (hardware) viene fornita come
un servizio
15
Una visione di insieme
Un Esempio di Cloud SaaS
Cloud Platform
(Apps Engine)
Cloud Services
(Word Processing)
Cloud hardware
(Apps Server)
Cloud Client
(Chrome or other)
Cloud storage
(BigTable DB)
BigTable
Cloud Application
(Google Docs)
17
Sistemi Cloud Commerciali e OS
• Amazon Elastic Compute Cloud (EC2)
• Amazon Simple Storage Service (S3)
• Google App Engine
• Microsoft Windows Azure
• Eucalyptus
18
Sistemi Cloud Commerciali e OS
19
Cloud computing vs Grid computing
• Anche se i sistemi Grid e Cloud condividono gli stessi
obiettivi, offrono una vista differente dell‘infrastruttura
di elaborazione su cui sono realizzati.
• Il Cloud computing fornisce una infrastruttura che
virtualizza risorse hardware e risorse software
• Il Grid computing è basato su una infrastruttura dinamica
e eterogenea di risorse distribuite di uno o più
proprietari.
20
Cloud computing vs Grid computing
• Grid e Cloud hanno in comune diverse
caratteristiche:
obiettivi, architetture e tecnologie
• Ma anche tante differenze:
modello di programmazione, business model,
classi di applicazioni, Virtualizzazione.
21
Cloud computing vs Grid computing
Molti problemi sono simili:
Gestione di grandi infrastrutture di calcolo;
Definire metodi per scoprire, comporre ed usare
risorse distribuite;
Metodi efficienti per la gestione di grandi quantità
di dati
Implementare le applicazioni parallele e
distribuite che vengono eseguite su quelle risorse.
22
Cloud computing vs Grid computing
Virtualizzazione:
Grids
Non usano virtualizzazione, ogni organizzazione
mantiene il pieno controllo delle proprie risorse
Clouds
Insieme all’interfaccia a servizi, la virtualizzazione è una
caratteristica fondamentale per i sistemi Cloud
23
Cloud vs Grid: Un Esempio
Simpler than EGEE
24
Cloud Computing come Evoluzione di
altri Modelli
25
Elementi Critici: Renting is not Owning
• Poiché i sistemi Cloud non permettono agli utenti di
possedere i dispositivi di storage dei propri dati, lasciano
la responsabilità e il controllo dei dati nella mani dei
provider.
• Gli utenti dipendono dai provider dei sistemi di Cloud
computing per l’uso che ne possono fare loro e terzi.
• Gli utenti non hanno la libertà di installare su un sistema
Cloud nuove applicazioni senza l’approvazione degli
amministratori del sistema.
Elementi Critici: Privacy & Security
• Privacy e sicurezza dei dati e delle applicazioni
degli utenti possono essere a rischio.
• Un guasto di un sistema Cloud di grandi
dimensioni può coinvolgere migliaia di utenti,
molte applicazioni ed enormi quantità di dati.
• Un intervento di una autorità su una piattaforma
Cloud può impedire a tanti o tutti gli utenti di
accedere i propri dati e le proprie applicazioni.
Uso delle risorse Cloud
Risorse
Capacità
Risorse
Modello di account “Pay per use” invece di “provisioning for
peak”. Si paga per i servizi richiesti e utilizzati.
Capacità
Richiesta
Richiesta
Tempo
Tempo
Static data center
Data center in the cloud
Risorse inutilizzate
28
Modelli di Cloud Services
SaaS
Software as a Service
Software è fornito agli
utenti “On-demand”
”.
Non serve acquistare
le licenze
PaaS
Platform as a Service
L’
’ambiente per lo
sviluppo di Cloud
applications è fornito
“as a Service”
”
IaaS
Infrastructure as a Service
Un sistema di
elaborazione
completo (hardware)
viene fornito come un
servizio
Ecosistemi Cloud
End-user applications, Software-as-a-Service (SaaS)
Platform-as-a-Service (PaaS)
Infrastructure-as-a-Service (IaaS)
AppExchange Apps
End-User Applications
Facebook Apps
OpenSocial Apps
Platform as a Service (PaaS)
Salesforce AppExchange
NASDAQ Market Replay
End-User Applications
Jungle Disk
Powerset
MLB
enomaly
RightScale
zimory
Brokers, Tools and Frameworks
cohesiveFT
Aptana cloud
Mosso
Live Mesh
Google App Engine
Facebook Platform
Amazon Web Services
Joyent
Infrastructure as a Service (IaaS)
Rackspace
flexiscale
3tera
Software delivery model
SaaS
• Nessun hardware o software da gestire
• Servizi erogati attraverso un browser
• Uso del servizio “on demand” da parte
dei clienti
• Scalabilità instantanea
31
Esempi
SaaS
• Il Customer Relationship Management (CRM)
è sottodimensionato o non lo si vuole gentire
in proprio. Si puo’ usare un provider come
Salesforce.com
• Il server di posta è lento. Si puo’ usare un
mail server su Cloud che non ha problemi di
dimensionamento (Gmail).
• Voglio avere un disco dove condividere con I
colleghi i file di un progetto. Uso Dropbox.
32
Platform delivery model
PaaS
• Le piattaforme di sviluppo sono costruite su
infrastrutture che possono essere costose.
• E’ difficile stimare la domanda di uso.
• La gestione delle piattaforme proprietarie è
costosa.
33
Esempi
PaaS
Bisogna utilizzare un file grande (10Mb) e
renderlo disponibile a 20.000 utenti per 2
mesi. Usa Cloud Front di Amazon.
Vuoi fornire storage services per grandi file
a molti clienti. Usa Amazon S3 o Microsoft
Azure.
Vuoi usare un ambiente Linux per
sviluppare in C++ applicazioni parallele.
Usa il cloud di IBM.
34
Infrastructure delivery model
IaaS
Un ambiente di vistualizzazione di
infrastrutture di elaborazione
scalabili.
Integrazione di risorse di calcolo,
memorizzazione e comunicazione.
Macchine virtuali diverse e flessibili.
35
Esempi
IaaS
Vuoi eseguire un numero elevato di job e
non hai una macchina parallela?
Usa Amazon EC2, Azure, Telecom Cloud o Flexiscale.
Vuoi ospitare un portale web per un
periodo di tempo limitato?
Usa Flexiscale.
36
Elementi comuni
SaaS
• Pay per use
• Scalabilità istantanea
• Adattabilità
PaaS
IaaS
• Affidabilità
• API
Attenzione a:
• Sicurezza e Privacy
37
Vantaggi
SaaS
• Politiche di aggiornamento
automatico
PaaS
• Virtualizzazione per abbassare i costi
di uso
IaaS
• Economia di scala
38
Vantaggi
SaaS
• Costi ridotti di ownership
• Responsabilità di gestione
dell’infrastruttura molto ridotta o nulla
PaaS
IaaS
• Gestione di sovraccarichi improvvisi di
CPU e/o storage
• Configurazione/istallazione di applicazioni
più veloce.
39
Agenti: Caratteristiche
• Autonomia
• Proattività
• Reattività
• Comunicazione e Cooperazione
• Negoziazione
• Learning
Multi-Agenti: Caratteristiche
• Un agente può operare “in solitudine”, ma diventa
più interessante (è più potente) se opera in un
sistema multi agente secondo un modello di calcolo
distribuito.
• In un sistema multi-agente
• un singolo agente ha informazioni incomplete e un “punto
di vista” parziale dello stato del sistema di cui fa parte;
• non esiste un controllo globale;
• i dati sono distribuiti,
• la computazioen è asincrona.
Parenti degli Agenti
• Actors,
• Concurrent objects,
• Peer-to-peer networks,
• Grid computing,
• Sensor networks,
• Autonomic computing,
• Cloud computing.
Sono state realizzate
molte applicazioni che integrano
gli agenti e alcuni modelli citati
qui.
Agenti e Cloud
• Nonostante le potenzialità, finora non vi sono
molte attività di ricerca sull’uso combinato di
Agenti e sistemi Cloud.
1. Pochi lavori in letteratura
2. Pochissimi progetti di sviluppo
3. Le due comunità non si parlano
4. Non vi sono approcci sistemici
5. Alcuni temi non sono presenti.
Cloud e Agenti: Matrimonio di
interesse?
DUE POSSIBILI APPROCCI
1. Clouds Using Agents. Uso degli agenti e delle loro
caratteristiche (flexibility, intelligence, pro-activity,
e autonomy) per realizzare nuove soluzioni e
servizi Cloud avanzati che ancora non sono
disponibili.
2. Agents Using Clouds. Uso dei sistemi Cloud come
piattaforme hardware-software per eseguire
sistemi, simulazioni e applicazioni multi-agenti su
larga scala e a costi limitati.
Clouds Using Agents
• Molte attenzioni sono state dedicate alla
produzione e il deployment di infrastrutture Cloud
per supportare la virtualizzazione e i data centres.
• Poca attenzione per introdurre metodi innovativi
per utenti e sviluppatori per scoprire, richiedere,
comporre e usare risorse e servizi Cloud.
• Agenti e MAS autonomi e flessibili sono strumenti
utili per negoziare lo user access, automatizzare
resource e service discovery, e comporre, acquistare
e usare Cloud machines.
Clouds Using Agents
• Una nuova disciplina, agent-based Cloud computing
potrebbe fornire soluzioni software agent-based per
sistemi Cloud per:
• resources and service management and discovery,
• SLA negotiation, and
• service composition.
• Gli agenti possono rendere i sistemi Clouds smarter
nell’interazione con gli utenti e più efficienti
nell’allocazione del processing e dello storage per le
applicazioni Cloud.
Clouds Using Agents
• Nei grandi data centers, gli agenti possono cercare,
filtrare, interrogare e aggiornare i massicci volumi di
data memorizzati.
• Si può immaginare uno scenario dove i Cloud agents
“lavorano” per gli utenti e i sistemi operativi, per
fornire
•
•
•
•
intelligent data access services,
monitoring services,
processor-to-application assignment strategies, e
uso energy-efficient dell’infrastruttura Cloud.
Clouds Using Agents
• Nei Cloud IaaS, gli agenti possono essere usati per
l’intelligent provisioning di risorse di base utili alle
applicazioni degli utenti.
• Nei Cloud PaaS gli agenti possono giocare un ruolo nel
deployment efficiente e l’esecuzione scalabile di
ambienti di programmazione che gli sviluppatori usano
per l’implementazione delle applicazioni.
• Nei Cloud SaaS, gli agenti possono essere programmati
per l’ottimizzazione dell’uso delle applicazioni fornite
come servizi e per la gestione delle risorse sottostanti
mantenendo il livello di QoS.
Clouds Using Agents
• Il comportamento dinamico dei sistemi Cloud può essere
“guidato” da sistemi ad agenti. Gli approcci autonomici
possono servire a providers e utenti per questo obiettivo.
• I Multi-agent systems capaci di gestire le configurazioni che si
modificano, l’eterogeneità e la volatilità, rappresentano un
approccio metodologico e realizzativo promettente.
• Last but not least, security e trust sono due very critical
issues nei sistemi Cloud, poichè i dati e I programmi non sono
gestiti direttamente dai proprietari.
• Modelli e algoritmi agent-based per trust and security
potrebbero essere molto importanti ed efficaci.
Clouds Using Agents
• Se verranno realizzate soluzioni agent-based nei
sistemi software di gestione delle infrastrutture
Cloud avremo:
• Cloud services intelligenti e flessibili,
• Servizi dinamici e pro-attivi,
• Autonomic Clouds.
Agents Using Clouds
• Applicazioni complesse basate sul paradigma ad
agenti o simulazioni MAS-based spesso richiedono
ambienti Hw/Sw di elaborazione ad alte prestazioni
e grandi sistemi di data storage.
• Quindi, i sistemi Cloud possono offrire una
piattaforma ideale dove eseguire sistemi,
simulazioni e applicazioni MAS-based scalabili.
• grandi quantità di risorse di elaborazione e di storage che
essi offrono e
• che possono essere configurati dinamicamente per eseguire
software agent-based di dimensioni senza precedenti.
Agents Using Clouds
• Questo approccio permette di “scaricare” agenti
compute-intensive su un appropriata
configurazione di processi e momorie su Cloud.
• Diverse alternative possibili:
• Una intera applicazione MAS può essere eseguita su
una infrastruttura Cloud
• Solo la parte più compute-intensive può essere
“portata” su Cloud, mentre la parte “più leggera” verrà
eseguita su un server locale o su un semplice PC.
Agents Using Clouds
• Cloud-enabled agents possono diventare più
efficienti e allo stesso tempo più “leggeri” e più
smart.
• Tutto ciò può essere ottenuto poichè tramite i
sistemi Cloud gli agenti possono migliorare la loro
intelligenza e accuratezza eseguendo algoritmi più
sofisticati.
• La scalabilità dei sistemi Cloud può far diventare gli
agenti più complessi e veloci allo stesso tempo.
Agents Using Clouds
• I meccanismi di virtualizzazione offerti dai sistemi
Cloud possono essere usati per la composizione
efficiente di macchine parallele dove eseguire agenti
concorrenti con vincoli real-time o con requisiti di
high performance.
• Gli agenti implementati nei sistemi Cloud possono
adattarsi alle macchine virtuali disponibili sfruttando
le loro proprietà di autonomia, pro-attività,
negoziazione e learning.
Agents Using Clouds
• Poichè i Cloud sono “elastici” loro possono
estendersi e contrarsi in base alle richieste degli
utenti e delle applicazioni.
• Questa proprietà è molto utile per l’esecuzione
scalabile delle applicazioni e le simulazioni MASbased che sono capaci di adattarsi alle risorse
disponibili.
Agents Using Clouds
In sintesi:
• Gli agenti possono trovare nelle infrastrutture Cloud
le piattaforme di elaborazione adatte alla loro
esecuzione e all’accesso di grandi quantità di dati.
• Questa opportunità dovrebbe essere sfruttata per
implementare MAS efficienti e per definire un nuovo
modo di progettare e realizzare una nuova
generazione di agenti software su larga scala.
Conclusioni
La convergenza di interessi tra i multi-agent systems che hanno
bisogno di infrastrutture di elaborazione distribuite affidabili
e
sistemi Cloud che hanno bisogno di software con
comportamento intelligente, dinamico, flessibile ed autonomo
produrrano nuovi sistemi e nuove applicazioni
Le due comunità di ricerca devono saper cogliere queste
opportunità e saper mettere in campo attività di ricerca
congiunte per raggiungere questo obiettivo.
Domande?
THANKS
Scarica

Cloud Computing e Agenti Software: Sfide e Opportunità