Feeds:
Posts
Comments

Posts Tagged ‘laurea’

Read Full Post »

Laurea

Architetture e linguaggi per Runtime Software Adaptation: Computational REST ed Erlang

Architetture e linguaggi per Runtime Software Adaptation: Computational REST ed Erlang

Read Full Post »

(Premessa: ieri ho consegnato la tesi, di conseguenza il lavoro è sostanzialmente finito, e l’appello di laurea è confermato per il 20 dicembre; è ora di rispondere ad un po’ di richieste che ho ricevuto sull’argomento del mio elaborato, premesso che per una descrizione dettagliata del lavoro e le relative conclusioni dovrete venire alla mia laurea o a scelta aspettare i giorni successivi, quando pubblicherò il PDF)

Il progetto che verrà presentato il 20 dicembre ha avuto origine da una ricerca più ampia riguardante sistemi in grado di adattarsi a runtime al contesto all’interno del quale si trovano ad operare, e possano perciò modificare il proprio funzionamento, i servizi offerti ad eventuali client o il modo in cui sfruttano servizi a loro offerti in base a modifiche dell’ambiente o delle condizioni di funzionamento proprie dei sistemi stessi considerati. Due sono stati i settori di questa ricerca su cui il lavoro si è concentrato: il primo riguarda gli stili architetturali in grado di supportare questo paradigma, mentre il secondo riguarda i linguaggi di programmazione più adatti per sviluppare programmi di questo tipo.

Per quanto riguarda i primi, la condizione è che riescano a garantire scalabilità e ad isolare quelle parti del software che effettivamente possano richiedere un aggiornamento; l’esempio primo di architettura è REST, che essendo alla base del Web di oggi è evidentemente in grado di supportare uno scenario dinamico come quello di Internet, mentre l’esempio che segue immediatamente è Computational REST, una sorta di evoluzione del primo sviluppata da alcuni ricercatori presso l’Università della California presso Irvine, il quale riprende alcuni concetti di codice mobile e li integra in un’infrastruttura costruita sul protocollo HTTP, per costruire un Web in cui l’attenzione non sia più sul contenuto ma sulla computazione: per semplificare molto (forse troppo), da un certo punto di vista potreste vedere questa visione come un AJAX “on steroids“: invece di avere semplice codice Javascript che si muove nella Rete, ci sarebbe codice vero, scritto in linguaggi di programmazione “reali” e veramente eseguito dalle macchine…

Per i linguaggi, invece, una disamina dei più promettenti è stata fatta nell’articolo scritto per il corso di “Argomenti avanzati di Ingegneria del Software“, e tra i migliori è emerso Erlang, un linguaggio di programmazione funzionale orientato alla concorrenza: esso supporta non solo la creazione e gestione di migliaia di processi leggeri, distribuiti dinamicamente sui core di una singola macchina o addirittura tra macchine di una rete, ma permette anche l’aggiornamento dinamico del codice: un applicativo può infatti subire l’aggiornamento di uno o più moduli “a caldo”, senza dover fermare il servizio e senza che le istanze del codice precedente l’aggiornamento vengano fermate o in qualche modo disabilitate.

L’idea della tesi è stata quindi di mettere insieme l’architettura CREST, in origine sviluppata in Scheme, ed Erlang, e verificare se l’utilizzo di un linguaggio di programmazione in grado di offrire numerose facilitazioni sia per la comunicazione tra processi che per l’aggiornamento dinamico del codice avrebbe ben supportato tale architettura. Per i dettagli e le conclusioni sia sul linguaggio che sull’architettura, non posso anticiparvi nulla: vi aspetto a dicembre!

P.S.: dopo l’appello di laurea seguirà un secondo post con le conclusioni ed un paio di riflessioni personali sullo sviluppo di Internet, se non doveste farcela ad essere presenti vedrò comunque di soddisfare la curiosità che questo post vi dovrebbe lasciare…

Read Full Post »

Una prestazione maiuscola della squadra ha permesso a Siv di passare il turno, seppur negli ultimi minuti, della Laurea Magistrale e di avviarsi verso il Dottorato di Ricerca; partita in generale bella, con gli ospiti subito in vantaggio, che una grande reazione dei padroni di casa ha reso tuttavia inutile. Ma andiamo con ordine.

Siv si presenta all’incontro dopo una lunga preparazione, durata l’interno mese precedente, ma forse proprio l’eccessiva pressione dell’impegno fa sì che nei primi minuti sia un po’ sulle gambe, e la squadra avversaria non resta a guardare e colpisce a freddo, andando sullo 0 – 1 per gli ospiti. Siv tuttavia non si lascia sorprendere e sfodera una buona reazione allo svantaggio, riuscendo ad andare negli spogliatoi sul pari dopo una rocambolesca azione da gol.

Nella ripresa, nessun cambio nelle due formazioni, tuttavia Sessione d’esami appare un po’ distratta, forse a causa del pareggio subìto immediatamente prima del riposo, e si fa colpire due volte, con Siv che si porta quindi sul 3 – 1, in entrambe le occasioni con palle-gol limpide e senza responsabilità da parte del portiere avversario.

Negli ultimi minuti, la partita diventa tesa: Siv deve necessariamente segnare 4 gol senza subirne più di 2, e sul 3 – 1 lo spettro dei supplementari si fa concreto di minuto in minuto; in pieno recupero, l’arbitro assegna un calcio di rigore a Siv, dopo un netto fallo di Sessione d’esami, e lo specialista della squadra trasforma la massima punizione, spiazzando completamente il portiere avversario.

Non c’è più tempo per altre azioni, e la partita si conclude sul 4 – 1 per Siv, che riesce così ad agguantare il passaggio del turno senza dover affrontare i supplementari.

Read Full Post »