Cloud Computing e Agenti Software: Sfide e Opportunità - Domenico Talia ICAR-CNR & Università della Calabria
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Cloud Computing e Agenti Software: Sfide e Opportunità Domenico Talia ICAR-CNR & Università della Calabria talia@deis.unical.it
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 multi- agente.
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, on- demand 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 0.1 0.1 $/h $/h $/h 0.2 $/h 0.1 0.1 0.1 $/h $/h $/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 Cloud hardware (Word Processing) Cloud Client (Apps Server) (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 Modello di account “Pay per use” invece di “provisioning for peak”. Si paga per i servizi richiesti e utilizzati. Capacità Risorse Risorse Capacità Richiesta Richiesta Tempo Tempo Static data center Data center in the cloud Risorse inutilizzate 28
Modelli di Cloud Services Software è fornito agli SaaS utenti “On-demand” ”. Software as a Service Non serve acquistare le licenze ’ambiente per lo L’ PaaS sviluppo di Cloud Platform as a Service applications è fornito “as a Service” ” Un sistema di IaaS elaborazione completo (hardware) Infrastructure as a Service 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 NASDAQ Market Replay End-User Applications End-User Applications Facebook Apps OpenSocial Apps Jungle Disk Powerset MLB enomaly RightScale zimory Platform as a Service (PaaS) Brokers, Tools and Frameworks cohesiveFT Aptana cloud Mosso Salesforce AppExchange Live Mesh Amazon Web Services Joyent Google App Engine Infrastructure as a Service (IaaS) Facebook Platform Rackspace flexiscale 3tera
Software delivery model • Nessun hardware o software da gestire SaaS • Servizi erogati attraverso un browser • Uso del servizio “on demand” da parte dei clienti • Scalabilità instantanea 31
Esempi • Il Customer Relationship Management (CRM) SaaS è 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 • Le piattaforme di sviluppo sono costruite su PaaS 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 Un ambiente di vistualizzazione di IaaS infrastrutture di elaborazione scalabili. Integrazione di risorse di calcolo, memorizzazione e comunicazione. Macchine virtuali diverse e flessibili. 35
Esempi Vuoi eseguire un numero elevato di job e IaaS 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 • Pay per use SaaS • Scalabilità istantanea • Adattabilità • Affidabilità PaaS • API Attenzione a: IaaS • 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 • Gestione di sovraccarichi improvvisi di CPU e/o storage • Configurazione/istallazione di applicazioni IaaS 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, Sono state realizzate molte applicazioni che integrano • Grid computing, gli agenti e alcuni modelli citati qui. • Sensor networks, • Autonomic computing, • Cloud computing.
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 MAS- based 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
Puoi anche leggere