Descrizione del progetto

Il progetto AMALFIm riguarda lo studio di un'applicazione server di supporto all'operato di agenti-intelligenti che assistono nella navigazione sul web. Obiettivo primario di tale applicazione e' fornire un repository per i dati di configurazione di un agente intelligente client-side. Data l'importanza di tali dati, obiettivo secondario e' la realizzazione di un sistema il piu' possibile sicuro per il trattamento dei dati stessi, oltre che per il loro utilizzo. Infine, visto l'ambito verso cui il sistema e' rivolto (assistenza ai browser web oppure ad altri programmi in ambito di selezione contenuti di rete), obiettivo terziario del progetto e' la velocita' nell'esecuzione delle richieste.

L'esigenza di un repository unico per i dati di configurazione dell'agente intelligente nasce dalla crescente tendenza a de-localizzare l'informatica e la propria postazione di lavoro: ci si sta muovendo sempre piu' verso una serie di sistemi che tendono a svincolare l'utente dal luogo in cui si trova, quindi un agente intelligente configurato con cura i cui dati risiedono sulla propria workstation a casa non puo' essere in alcun modo utilizzato da chi sta usando un chiosco interattivo in una fiera, oppure una stazione all'interno di un laboratorio didattico o altro ancora. Rimane fondamentale il marcare chiaramente la differenza esistente tra un supporto come AMALFIm ed i relativi plugin e materiale spyware (software che registra le azioni di un utente a fini di spionaggio, commerciale e non).

Un esempio di applicazione del server AMALFIm potrebbe essere il seguente: un apposito plugin di un browser web effettua una serie di richieste al server AMALFIm, il quale, in base ad una configurazione specifica dell'utente, risponde con dati utili ad effettuare un ordinamento (in base al profilo di interessi dell'utente) tra i risultati di una query presso un motore di ricerca.

Un secondo esempio potrebbe essere questo: un sito web desidera conoscere il profilo medio di interessi dei suoi visitatori abituali, per questo richiede un servizio statistico su AMALFIm e verifica il profilo medio degli utenti che hanno il sito stesso tra i bookmark.

Il seguente schema illustra il funzionamento del server AMALFIm durante il suo normale stato di attivita'.

Ogni agente-intelligente viene ora trasformato in due entita' distinte: un agente lato utente (user agent nell'immagine) ed un agente lato server (server-side agent). La prima entita' effettua analisi del comportamento dell'utente, seguendone dettagliatamente il comportamento (nell'esempio di un plugin per un browser web, tiene traccia delle pagine visitate e del tempo di permanenza dell'utente sulle stesse, ne esegue un'analisi del contenuto ed una classificazione). Lo user-agent compila un suo resoconto in forma di punteggi per argomento di tutto quello che l'utente ha visto e letto. Lo user-agent puo' effettuare una riorganizzazione dei contenuti presentati a video, portando in maggiore evidenza quelli che rispecchiano gli interessi dell'utente. Per determinare gli interessi dell'utente, lo user-effettua delle richieste al server AMALFIm, dove un server-agent risponde, consultando un database che contiene le informazioni necessarie.

Il dialogo tra client e server avviene in due fasi distinte: la prima fase consiste nell'autenticazione dello user-agent (e quindi dell'utente, in particolare), fase che avviene con un dialogo tra user-agent ed un oggetto lato server che esegue autenticazione e controllo degli accessi. In seguito all'autenticazione, la seconda fase prevede un'allocazione di un oggetto server-agent che rimane a disposizione dello user-agent per rispondere alle richieste che quest'ultimo pone. Il server-agent puo' essere di due tipi differenti: possono esistere server-agent statistici e server-agent puri. La differenza tra i due consiste nell'accesso ai dati. Il primo ha accesso ai dati di tutti gli utenti, in modo svincolato dalla loro identita'. L'utilita' di questo genere di oggetti consiste nel poter fornire una base per interrogazioni statistiche sul parco utenti del server. Il server-agent puro, invece, consente l'accesso a tutti i dati di un solo utente. Quest'ultimo tipo di server-agent e' quello a cui fare riferimento per gli user-agent.

Lo schema che segue mostra l'organizzazione interna del server AMALFIm:

Lo user-agent in fase di autenticazione richiede all'ObjectBroker di AMALFIm la generazione di un server-agent. L'ObjectBroker, verificata la richiesta (utilizzando l'ACL/Auth manager), inizializza un server-agent con i dati provenienti dall'RDBMS. Quando il server-agent e' stato correttamente inizializzato, lo user-agent inizia il dialogo con questo, il quale ha accesso ai dati dell'utente memorizzati all'interno dell'RDBMS, anche se tutte le sue richieste continuano ad essere filtrate attraverso l'ACL/Auth manager, che ne verifica la sicurezza. All'interno di questo schema e' presente anche la console statistica, dalla quale possono essere eseguite solamente interrogazioni di tipo statistico, tramite un apposito oggetto, che ha accesso all'intero database, ma in modo svincolato dall'identita' degli utenti. Tutti gli accessi al database vengono verificati attraverso l'ACL/Auth manager.

A garanzia della sicurezza della comunicazione tra client e server, ogni comunicazione avviene tramite protocollo SSL.

 

Pagina seguente: componenti e schema