Decentralized management in distributed autonomic systems

2013 
I sistemi software stanno diventando ogni giorni sempre piu complessi e pervasivi. Parte della complessita deriva dal fatto che essi ``vivono'' immersi in ambienti altamente dinamici, in cui le condizioni esterne al sistema cambiano senza preavviso. Questa complessita diventa ancora piu critica quando si viene a contatto con sistemi composti da un elevato numero di componenti distribuiti su una rete. Per questi motivi, sta diventando sempre piu chiaro il concetto secondo cui i sistemi software devono essere in grado di gestirsi il piu possibile autonomamente, con l'obiettivo di minimizzare l'intervento umano durante la vita del sistema stesso. Questa tesi si focalizza sullo studio di tecniche e framework che sono specificatamente studiati per sistemi software decentralizzati, ovvero sistemi in cui gli elementi distribuiti agiscono senza la supervisione di un'entita centrale. In particolare, il nostro contributo si articola in tre aree principali. Inizialmente, viene descritto un framework autonomico decentralizzato, la SelfLet, che permette allo sviluppatore di implementare applicazioni decentralizzate facendo leva sui concetti di servizio, regole autonomiche, relazioni di vicinanza tra i nodi etc. Nella seconda parte, viene presentato un framework di ottimizzazione per la SelfLet che, tramite delle azioni di adattamento predefinite, e in grado di generare un insieme di azioni candidate -- in base allo stato interno della SelfLet e quello dei suoi vicini -- e selezionare l'azione piu appropriata da attuare. Infine, verranno presentati due algoritmi che trovano applicazione nei sistemi distribuiti decentralizzati. In particolare, il primo algoritmo -- ispirato dal comportamento con cui crescono le radici nei funghi -- si occupa di bilanciare il carico tra i nodi del sistema nonostante i continui cambiamenti nell'ambiente circostante (ad esempio guasti nei nodi). Il secondo algoritmo, che include comportamenti di bilanciamento del carico, presenta una caratteristica per lo scaling di risorse in un contesto cloud a livello di infrastruttura. In particolare, l'algoritmo permette di aggiungere o rimuovere le risorse computazionali (ad esempio nodi nel sistema) in base alle variazioni di traffico che si osservano nel carico di lavoro in ingresso.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    1
    Citations
    NaN
    KQI
    []