autonomic computing
<ootounòmik këmpi̯ùutiṅ> locuz. ingl., usata in it. al masch. – Modello di riferimento per il progetto e la realizzazione di un sistema software in grado d’identificare e risolvere autonomamente problemi che possono compromettere l’esecuzione del sistema stesso. Il concetto è stato definito da IBM nel 2001 e postula la possibilità da parte dei sistemi informatici e delle reti di autogestirsi senza un diretto intervento umano. Esso è ispirato al meccanismo con cui il sistema nervoso gestisce alcune funzioni del corpo umano (come, per es., la circolazione del sangue o la produzione di ormoni) senza bisogno di un intervento cosciente. Analogamente a quanto avviene negli organismi viventi, un sistema software autonomico e in grado di gestire autonomamente le proprie funzionalità (sistemi autogestiti), può adattarsi autonomamente a variazioni dell’ambiente in cui viene eseguito (sistemi autoadattanti) e può reagire autonomamente a diversi tipi di problemi, sia interni sia esterni. Il progetto è caratterizzato da un ciclo di controllo detto MAPE-K (dalle iniziali dei termini inglesi che contraddistinguono le fasi principali del ciclo, ossia monitoraggio, analisi, pianificazione, esecuzione e conoscenza). Il ciclo di controllo prevede la possibilità di monitorare alcuni valori caratteristici dell’esecuzione del sistema e agire su particolari elementi durante l’esecuzione del sistema stesso. Un controllore autonomico analizza i valori osservati per identificare eventuali problemi e, in caso di necessità, pianifica ed esegue opportuni interventi volti a eliminare i problemi rilevati. In un sistema autonomico, la diagnosi automatica di problemi e l’identificazione ed esecuzione di azioni correttive sono possibili grazie a un insieme di informazioni (conoscenza) che i progettisti possono aggiungere al controllore durante il progetto o che il sistema può apprendere durante l’esecuzione e che caratterizzano le capacità di azione del controllore autonomico. Un sistema autonomico comporta le seguenti caratteristiche: autoconfigurazione (self-configuration), cioè la capacità di configurazione automatica dei componenti; autoguarigione (self-healing), ossia la capacità di ricerca e correzione automatica di difetti; autoottimizzazione (self-optimization), ossia la capacità di monitoraggio e controllo automatico delle risorse per assicurare un funzionamento ottimale e rispettoso dei requisiti definiti; autoprotezione (self-protection), cioè la capacità d’identificazione e protezione da attacchi. Le caratteristiche autonomiche permettono a un sistema di evolvere insieme alle esigenze degli utenti che ne sfruttano le risorse messe a disposizione e alle condizioni operative. Le esigenze e i compiti svolti dalle entità presenti nello scenario operativo considerato possono variare nel corso del tempo, come pure gli obiettivi tattici. Il sistema è in grado di variare anch’esso di riflesso, in modo da rispondere sempre in modo ottimale alle necessità delle politiche predefinite. L’operatore, sollevato dagli aspetti di gestione e configurazione del sistema (rete), ha il solo compito di definire le politiche al quale il sistema deve attenersi. L’integrazione dell’approccio autonomico permette quindi, per es., alle componenti di un sistema di comunicazione di operare anche in assenza di un controllo centralizzato, e d’interagire dinamicamente per il raggiungimento di un predefinito profilo/obiettivo di alto livello assegnato attraverso un meccanismo di gestione centrale, riducendo al minimo l’intervento umano/manuale e la complessità da gestire. Questi concetti trovano una particolare applicazione anche nell’ambito dell’automated network management (gestione automatizzata della rete). I tempi e i costi per la configurazione dei nodi delle reti complesse sono già significativi, ed è previsto un ulteriore incremento, dovuto alla costante richiesta di nuove connessioni, che implica la crescita esponenziale del numero di elementi all’interno degli attuali network (internet, mobile networks). Inoltre, la natura dinamica dei nuovi servizi rende la gestione delle configurazioni degli apparati molto complessa e onerosa per gli amministratori: diventa in tal modo indispensabile l’adattamento continuo e automatico delle configurazioni dei nodi di rete, riducendo così al minimo l’intervento umano.