Utilizzare Agenti Mobili Intelligenti per l’analisi dei dati

In questo articolo, basato sulla nostra esperienza sul campo, si ragiona in merito all’utilizzo di tecnologie basate sugli agenti mobili intelligenti. In particolare sulla loro applicazione a sistemi di analisi dati.

Prima di affrontare gli aspetti più tecnici delle tecnologie basate su agenti mobili intelligenti è opportuno riassumere rapidamente quali sono gli ambiti di analisi dati a cui ci si riferisce.

Punto di partenza di tutta la discussione sono i cosiddetti sistemi OLAP (on-line analytical processing), che consentono l’esecuzione di analisi multidimensionali, ossia la valutazione di alcune misure secondo differenti punti di vista (per esempio le vendite complessive per area geografica oppure per tipologia di prodotto). Normalmente questi sistemi si basano su data warehouse, ossia su tecnologie di basi di dati specializzate nella gestione di grandi volumi di dati.

Un altro aspetto di notevole interesse nella nostra discussione è quell’insieme eterogeneo di tecniche che spaziano dalla semplice statistica alla più complessa intelligenza artificiale e che vanno sotto il nome di data mining.

Nel corso dell’articolo si affronterà il problema di costituire un sistema in grado di soddisfare le funzionalità suddette basandosi non su dei normali componenti software tradizionali ma su un ecosistema di agenti mobili intelligenti di cui verrà definita un’architettura di massima.

Gli agenti mobili intelligenti sono dei componenti software che possiedono le seguenti caratteristiche:

  • intelligenza: ossia la capacità di adattarsi ai differenti contesti in cui si trovano in virtù delle dinamiche del sistema in cui sono inseriti;
  • comportamento cooperativo: ossia la capacità di condividere la conoscenza e negoziare comportamenti comuni che consentano prestazioni complessive soddisfacenti anche se a leggero discapito di quelle dei singoli agenti;
  • mobilità: ossia la capacità di spostarsi da un punto del sistema all’altro (in pratica da un host ad un altro in una rete locale o geografica);
  • autonomia: ossia la capacità di poter funzionare senza la necessità di un continuo intervento di un utente umano.

In parole povere è come se avessimo tanti software indipendenti, in grado di comunicare tra di loro e di cambiare in tempo reale la macchina su cui stanno girando, mantenendo però una continuità di flusso operativo.

Come possono gli agenti mobili intelligenti rappresentare un miglioramento in un sistema di analisi dati come quello suddetto?

Il processo di analisi dei dati prevede numerosi passaggi che sono quelli di recupero dell’informazione, di sintesi, di filtraggio e di presentazione dei risultati. Questo elenco sommario fa già comprendere che Il processo di analisi può essere facilmente suddiviso in più attività semplici che possono beneficiare della presenza di un componente software specifico.

Deve comunque essere considerato anche il fatto che, molto spesso, le informazioni necessarie per un’analisi sono distribuite su più sistemi (si pensi ad esempio alle enormi prospettive che sta aprendo l’insieme di tecnologie che va sotto il nome di Web semantico).

Nel caso (molto frequente) di tale distribuzione geografica dell’informazione, è evidente che un componente software in grado di spostarsi da un sistema ad un altro può rappresentare un indubbio vantaggio in quanto, una volta incaricato di rispondere ad una determinata interrogazione, l’agente si muoverà da un sistema all’altro ottenendo le informazioni necessarie.

Ma si può fare ancora di meglio: è possibile lanciare un agente per ogni sistema che potenzialmente possiede l’informazione cercata e quindi lasciare che questa popolazione di agenti, grazie al comportamento cooperativo e all’autonomia di cui godono, produca la risposta cercata.

Se non si usa questa tecnica, è necessario definire un sistema centralizzato in cui importare, periodicamente, mediante un opportuno sincronismo, tutte le informazioni presenti negli altri sistemi oppure, con notevole impatto sulla rete, definire delle interfacce per acquisire le informazioni dai vari sistemi remoti.

L’utilizzo di agenti intelligenti e mobili consente, in conclusione, i seguenti vantaggi:

  • possibilità di sfruttare il parallelismo intrinseco derivante dalla presenza di più sistemi diversi in possesso dell’informazione cercata;
  • riduzione del traffico di rete non essendo più necessario sincronizzare o far dialogare tra loro i sistemi remoti;
  • riduzione della complessità di interfacciamento tra i vari sistemi;
    semplice scalabilità mediante l’aggiunta di un nuovo sistema e dell’eventuale relativo agente;
  • possibilità di spostare elaborazioni computazionalmente onerose su sistemi che, in un dato momento, posseggono la capacità di calcolo necessaria (ad esempio sono scarichi).

Le considerazioni fin sopra esposte hanno però tenuto conto solo degli aspetti di mobilità e comportamento cooperativo degli agenti: la loro intelligenza può essere altrettanto utile al fine di consentire un comportamento proattivo. Quest’ultimo aspetto non sarà approfondito in quest’articolo ma sarà trattato in futuro in altri articoli.

Può essere che un’architettura basata su agenti sia in grado di soddisfare i requisiti tipici di un sistema di analisi dei dati sul tipo di quelli enunciati in precedenza? Nei paragrafi seguenti forniremo le classi di agenti che si ritiene opportuno che vengano utilizzate.

Agenti Data-set

Un primo tipo di agenti è quello in grado di accedere a un insieme di dati (siano essi presenti in un foglio Excel o in un database Oracle o in un file in formato PDF). Compito di questi agenti è recuperare l’insieme di dati presenti in un determinato punto del sistema e fornirlo, con il supporto di opportune funzioni di manipolazione e selezione, a coloro che ne sono interessati.
Un agente di questo tipo dovrà quindi essere in grado di comunicare sia con dati contenuti in file, sia con dati contenuti in database sia con dati contenuti in sistemi più complessi quale potrebbe essere un data warehouse o un data mart.

Agenti ETL

Un agente di questo tipo ha la capacità di estrarre dati, trasformarli secondo determinate regole per poi caricarli nella base di conoscenza comune in cui saranno memorizzati. È stato utilizzato l’acronimo ETL per l’analogia con la fase omonima del processo di caricamento di un data warehouse. Non si deve però pensare che questi agenti siano una semplice query SQL con delle funzionalità di trasformazione per stringhe, numeri e date: essi sono dei meccanismi complessi, dotati di una discreta intelligenza, in grado di effettuare valutazioni sulla qualità dei dati e, al tempo stesso, di estrarre la conoscenza.

Agenti Knowledge

Questi agenti hanno il compito di mantenere la base di conoscenza su cui verranno effettuate le analisi. Sebbene già introdotto nelle righe precedenti, il termine di base di conoscenza non è stato adeguatamente, finora, commentato ed è quindi opportuno approfondirne alcune caratteristiche.

La prima grande differenza (cioè il primo grande vantaggio) che si ha con l’utilizzo degli agenti è proprio la possibilità di parlare non più di mera informazione ma di conoscenza, intendendo con ciò la possibilità di assegnare un significato condiviso (grazie ad un’ontologia) alle informazioni ricevute ed elaborate, oltre all’ulteriore possibilità di costruire delle regole che possano essere utilizzate dagli agenti per poter determinare il proprio comportamento a fronte di specifici stimoli o schemi.

In conclusione, non si parla più di basi di dati ma di basi di conoscenza e questa conoscenza è immagazzinata in uno o più agenti e, grazie ad un’ontologia comune, può essere facilmente condivisa con tutto il sistema.

Agenti di User Interface

Compito principale di questi agenti è quello di presentare e ricevere informazioni mediante l’interazione con l’utente. Questa forma di gestione della presentazione dei dati consente l’utilizzo di dispositivi estremamente eterogenei in quanto gli agenti potranno o adattarsi alla tipologia di interfaccia utente presentata dal dispositivo su cui interagiranno con l’essere umano oppure selezionare l’agente più adatto per tale compito.

È così evidente un altro enorme vantaggio di un’architettura basata sugli agenti mobili intelligenti: la possibilità di accesso da qualunque punto al sistema di analisi dei dati.

E’ anche chiaro che questa grande versatilità e flessibilità degli agenti pone dei problemi non trascurabili in termini di sicurezza, problemi che per ragioni di spazio non saranno trattati in questo articolo ma in uno che verrà pubblicato in futuro.

Agenti di coordinamento

Questa tipologia di agenti consente di stabilire dei rapporti gerarchici in grado di potenziare il comportamento cooperativo riducendone l’impegno in termini di risorse: si tratta di agenti il cui compito è quello di coordinare l’operato degli altri. Un esempio potrebbe essere il seguente: un utente pone un quesito alla base di conoscenza e scatena quindi, tramite un agente di interfaccia utente, un agente di coordinamento che invia sui vari sistemi interessati degli agenti data-set che estraggono l’informazione che poi viene presentata da degli agenti di user interface, il tutto sotto il coordinamento del suddetto agente coordinatore. Grazie a questo agente si potranno creare sottoinsiemi nella popolazione di agenti che agiranno in maniera coordinata senza dover necessariamente però dialogare tutti con tutti e con un processo che può essere facilmente ritmato dall’agente coordinatore.

Altri agenti

Oltre a queste categorie di agenti possono essere pensati agenti più specializzati, incaricati di compiti più particolari e tipici del sistema di analisi dati su cui si sta ragionando:

  • agenti per il data mining
  • agenti per l’analisi multidimensionale
  • agenti per l’interpretazione dei dati
  • agenti di reportistica

Conclusioni

In questa breve analisi di una possibile architettura basata su agenti mobili intelligenti con l’obiettivo di realizzare sistemi complessi, distribuiti, fortemente eterogenei, di analisi dei dati, possiamo concludere che, dal punto di vista teorico, ciò è possibile e può introdurre numerosi vantaggi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.