• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tesi magistrale
 

Tesi magistrale

on

  • 884 views

La presentazione della mia tesi di laurea magistrale.

La presentazione della mia tesi di laurea magistrale.

Statistics

Views

Total Views
884
Views on SlideShare
854
Embed Views
30

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 30

http://www.chimera-bellerofonte.eu 24
http://www.poul.org 3
http://static.slidesharecdn.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tesi magistrale Tesi magistrale Presentation Transcript

    • Architetture e linguaggi perRuntime Software Adaptation:Computational REST ed Erlang Alessandro Sivieri Dipartimento di Elettronica e Informazione Politecnico di Milano 20 Dicembre 2010
    • Scenario Architetture per sistemi adattabili Linguaggi per sistemi adattabili Computational REST ed Erlang ConclusioniSommario 1 Scenario 2 Architetture per sistemi adattabili Panoramica REpresentational State Transfer Computational REST 3 Linguaggi per sistemi adattabili Panoramica Erlang 4 Computational REST ed Erlang Motivazioni del progetto Struttura del framework Demo Sicurezza 5 Conclusioni Alessandro Sivieri Computational REST ed Erlang 2/17
    • Scenario Architetture per sistemi adattabili Linguaggi per sistemi adattabili Computational REST ed Erlang ConclusioniLo scenario Requisiti delle applicazioni odierne: aggiornamento delle funzionalità senza interrompere i servizi offerti scalabilità dati in movimento tra dispositivi Alessandro Sivieri Computational REST ed Erlang 3/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili REpresentational State Transfer Computational REST ed Erlang Computational REST ConclusioniPanoramica delle architetture Alcune delle architetture esistenti in grado di supportare modifiche a runtime [R.N. Taylor et al., 2008]: Publish-subscribe Map-reduce Service-Oriented Architectures Peer-to-peer REST Computational REST Alessandro Sivieri Computational REST ed Erlang 4/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili REpresentational State Transfer Computational REST ed Erlang Computational REST ConclusioniDal contenuto ai dati REpresentational State Transfer: indipendenza dei componenti e scalabilità: comunicazione stateless caching interfacce generiche di comunicazione (opzionale) code-on-demand Alessandro Sivieri Computational REST ed Erlang 5/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili REpresentational State Transfer Computational REST ed Erlang Computational REST ConclusioniDai dati alle computazioni Computational REST [J.R. Erenkrantz, 2009]: potenziare REST: non è sufficiente lo scambio di dati, questi devono essere interpretati correttamente scambiare computazioni: i contenuti diventano “effetti collaterali” di queste mantenere le linee guida per mantenere la scalabilità Alessandro Sivieri Computational REST ed Erlang 6/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili REpresentational State Transfer Computational REST ed Erlang Computational REST ConclusioniComputational RESTMeccanismi I peer sulla Rete scambiano continuazioni o, in alternativa, chiusure: una continuazione è uno snapshot dello stato di esecuzione di una computazione, che può essere interrotta e ripresa in un secondo momento una chiusura è una funzione che contiene le variabili libere presenti nell’ambiente in cui essa è definita, e che restano accessibili per tutta la sua durata Alessandro Sivieri Computational REST ed Erlang 7/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili REpresentational State Transfer Computational REST ed Erlang Computational REST ConclusioniComputational RESTOperazioni Solo due operazioni di base: spawn e remote: spawn installa un nuovo servizio e lo rende disponibile remote installa un nuovo servizio e lo esegue solo una volta CREST mantiene la compatibilità con il Web di oggi. Alessandro Sivieri Computational REST ed Erlang 8/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili Erlang Computational REST ed Erlang ConclusioniPanoramica dei linguaggi Alcuni dei linguaggi esistenti in grado di supportare modifiche a runtime: Approccio orientato agli oggetti: Java e C# Approccio funzionale: Scala, Erlang, Dynamic ML Dynamic Aspect-Oriented Programming Alessandro Sivieri Computational REST ed Erlang 9/17
    • Scenario Architetture per sistemi adattabili Panoramica Linguaggi per sistemi adattabili Erlang Computational REST ed Erlang ConclusioniErlang Linguaggio funzionale orientato alla concorrenza Distribuzione dei processi Fault tolerance Caricamento dinamico del codice Open Telecom Platform Alessandro Sivieri Computational REST ed Erlang 10/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniDa Scheme ad Erlang CREST-Scheme + supporto alle continuazioni + sandbox e security manager della JVM − core standard, librerie esterne per la maggior parte delle funzionalità Alessandro Sivieri Computational REST ed Erlang 11/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniDa Scheme ad Erlang CREST-Erlang + supporto ai processi leggeri (con mailbox) + caricamento dinamico di moduli − mancato supporto alle continuazioni − problemi di sicurezza Alessandro Sivieri Computational REST ed Erlang 11/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniCREST-ErlangI vincoli CREST nel nuovo framework Invio delle chiusure tra nodi, utilizzando HTTP POST Supporto allo stato interno di una computazione Composizione di servizi Alessandro Sivieri Computational REST ed Erlang 12/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniCREST-ErlangStruttura del framework Incapsulamento del protocollo Alessandro Sivieri Computational REST ed Erlang 13/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniCREST-ErlangStruttura del framework Albero di supervisione Alessandro Sivieri Computational REST ed Erlang 13/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniCREST-ErlangDemo delle funzionalità del framework Scenario della demo Alessandro Sivieri Computational REST ed Erlang 14/17
    • Scenario Motivazioni del progetto Architetture per sistemi adattabili Struttura del framework Linguaggi per sistemi adattabili Demo Computational REST ed Erlang Sicurezza ConclusioniIl problema della sicurezza Sicurezza del codice rispetto all’host in cui viene eseguito: HTTPS con mutua autenticazione per spawn e remote Sicurezza dell’host rispetto al codice da eseguire: analisi di progetti esistenti per sandboxing e bytecode inspection Alessandro Sivieri Computational REST ed Erlang 15/17
    • Scenario Architetture per sistemi adattabili Linguaggi per sistemi adattabili Computational REST ed Erlang ConclusioniConclusioniErlang + Funzionalità per la distribuzione dei processi e del carico di lavoro + Caricamento dinamico del codice − Scarsa attenzione alla sicurezza − Limitazioni del meccanismo di hotswap Alessandro Sivieri Computational REST ed Erlang 16/17
    • Scenario Architetture per sistemi adattabili Linguaggi per sistemi adattabili Computational REST ed Erlang ConclusioniConclusioniComputational REST + Gestione dei cambiamenti del Web di oggi + Supporto alla scalabilità ed al dinamismo − Utilizzo del protocollo HTTP per trasmettere codice − I problemi di sicurezza possono essere importanti Alessandro Sivieri Computational REST ed Erlang 16/17
    • Appendice BibliografiaBibliografia J. Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, 2007. J.R. Erenkrantz. Computational REST: a new model for decentralized, Internet-scale applications. California State University at Long Beach, 2009. R.N. Taylor, P. Oreizy and N. Medvidovic. Runtime software adaptation: framework, approaches, and styles. ICSE Companion 2008, 899–910, 2008. J. Zachary. Protecting mobile code in the world. Internet Computing, IEEE, 7(2):78–82, 2003. Alessandro Sivieri Computational REST ed Erlang 17/17