Cloud Computing e Agenti Software: Sfide e Opportunità - Domenico Talia ICAR-CNR & Università della Calabria

Pagina creata da Nicolo' Pappalardo
 
CONTINUA A LEGGERE
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