APICe » Theses » Class » LaMorgia06

Sviluppo di un sistema multi-agente per la gestione di un calendario 

Cinzia La Morgia


Sempre più persone utilizzano il computer per gestire la propria agenda, in quanto i ritmi di lavoro odierni portano naturalmente a desiderare di mantenere organizzati i propri impegni con appositi strumenti di supporto. Tuttavia, la realtà degli applicativi per ?calendari elettronici? è ancora in fase di evoluzione, sia dal punto di vista dell'usabilità (non sempre soddisfacente), sia dal punto di vista dell'architettura. L?obiettivo di questa tesi è progettare una applicazione di calendario elettronico adottando il paradigma ad agenti come riferimento metodologico e architetturale. I vantaggi dell'approccio ad agenti si possono misurare nel confronto con le tecnologie precedenti e in particolare con la tecnologia ad oggetti che è stata per lungo tempo il metodo preponderante di programmazione. Il paradigma ad oggetti si è rivelato inadeguato in confronto alla complessità dei sistemi moderni. Le relazioni fra gli oggetti si limitano all?utilizzo e alla semplice gerarchia, mentre nella realtà le entità del sistema danno vita a diverse relazioni e dipendenze dinamiche, interagiscono tra loro e necessitano di un supporto per la coordinazione. Dagli oggetti, entità passive dotate di stato, che si attivano tramite un?invocazione di metodo, si è passati agli agenti, entità dotate di stato e comportamento. Un agente è considerato come una particolare entità software in grado di agire in modo autonomo prelevando informazioni dall?ambiente in cui si trova e capace di prendere iniziative per soddisfare i propri obiettivi. Strettamente correlato alla teoria degli agenti è il concetto di sistemi multi-agente: un insieme di agenti autonomi che interagiscono fra loro e con l?ambiente, per ottenere informazioni e per coordinare le loro attività. Nel momento in cui gli agenti vivono nel medesimo contesto ambientale, comunicano e instaurano rapporti di interazione per raggiungere degli obiettivi globali (effettuando attività competitive o cooperative) essi vengono a creare una società di agenti. In un ambiente ?vivono? perciò sia agenti che società di agenti. Le metodologie di progettazione orientate agli agenti vengono in aiuto nella fase di ingegnerizzazione del sistema multi-agente, mettendone in evidenza, tra l?altro, gli aspetti sociali. Sono uno strumento per specificare e realizzare sistemi software basati su astrazioni di più alto livello rispetto a quelli messi a disposizione dalle metodologie ad oggetti. Come detto gli agenti non sono entità chiuse, ma nascono per vivere e cooperare con altri. Da qui nasce la necessità di infrastrutture che regolino la comunicazione e l?interazione fra le entità in gioco nel sistema (agenti, società, ambiente,ecc), attraverso un ben preciso modello di coordinazione. Esse rappresentano un?astrazione concettuale da poter sfruttare sia nell?analisi sia nella progettazione di sistemi multi-agente. La maggior parte dei classici modelli di comunicazione e sincronizzazione usati per lo sviluppo di sistemi (comunicazione diretta) non separano l?interazione dalla computazione. In un sistema multi-agente, questo approccio renderebbe la progettazione del sistema assai complessa. Modelli di coordinazione come il modello a lavagna o lo spazio di tuple forniscono invece un?astrazione di comunicazione condivisa, intorno alla quale un sistema multi-agente può essere realizzato in maniera più naturale.

La gestione di un calendario elettronico sarà trattata come caso di studio per modellare un sistema multi-agente. Si cercherà di sviluppare un applicativo calendario che migliori l?approccio con l?utente rispetto ad altri progetti già esistenti. Il sistema vuole mettere a disposizione dell?utente funzionalità e servizi essenziali, che soddisfano le aspettative principali. Non importa la quantità dei servizi offerti, ma la qualità. Per il formato dei calendari si è scelto di adottare e supportare lo standard iCalendar (iCal), perfezionato della IETF per la presentazione e condivisione di calendari anche attraverso Internet. Un passo obbligato visto che è da tempo lo standard più utilizzato in questo ambito. Come metodologia orientata agli agenti si è deciso di usare SODA, ideata per l?analisi e la progettazione di società ad agenti. SODA propone la separazione tra problemi sociali ed individuali sin dalle prime fasi dell?analisi, inoltre si concentra sugli aspetti sociali (aspetti inter-agente) attraverso l?utilizzo di modelli e tecnologie di coordinazione. Come infrastruttura di coordinazione si userà TuCSoN, sviluppato dal Dipartimento di Elettronica Informatica e Sistemistica (DEIS) dell?Università di Bologna, progettato per servire la comunicazione e la coordinazione nei sistemi di agenti distribuiti. Grazie a questa infrastruttura, possiamo non solo progettare il nostro sistema in astratto ma anche costruire un prototipo, che ci permetterà di mettere concretamente alla prova il paradigma ad agenti e di valutarne in particolare il grado di portabilità, flessibilità e scalabilità. Nel primo capitolo analizzeremo due applicativi calendario rappresentativi dello stato dell?arte attuale, descrivendone caratteristiche e servizi supportati, per poi passare a una spiegazione accurata dello standard iCal. Nel secondo capitolo introdurremo il modello ad agenti, le caratteristiche e le tipologie di agente che si possono individuare, definiremo che cos?è una società di agenti, l?ambiente in cui gli agenti ?vivono? e i modelli di coordinazione che si prestano per l?analisi delle relazioni nelle società di agenti. Nel terzo capitolo spiegheremo in dettaglio la metodologia SODA e l?infrastruttura TuCSoN, con particolare attenzione agli aspetti che interessano maggiormente la progettazione del nostro sistema. Nel quarto capitolo redigeremo una pianificazione accurata del nostro progetto, analizzando le specifiche e i requisiti del programma; saranno quindi pianificati dei casi d?uso, che mostrano le interazioni dell?utente con l?interfaccia e le modalità di utilizzo del programma. Nel quinto capitolo, procederemo con il definire i modelli di analisi e di progettazione seguendo la metodologia SODA, il modello della persistenza dati del sistema e degli esempi di interfacce grafiche di cui sarà composta l?applicazione. Nel sesto capitolo infine vengono riportati tutti i dettagli implementativi e le decisione intraprese durante la stesura vera e propria in linguaggio Java dell?applicativo calendario.


Enrico Denti (Supervisor)
Ambra Molesini (Co-supervisors)