Acquisizione dati da fonti eterogenee e distribuite utilizzando Agenti Mobili Intelligenti

In un mondo in cui le fonti e le informazioni disponibili online, near-online e anche off-line sono in continuo e crescente aumento, è sempre più importante poter disporre di informazioni accurate, aggiornate ed esaustive, specialmente nell’ambito della ricerca.

Questo è stato l’obiettivo di Samurai (Sistema di Acquisizione dati Multi Utente distribuito su Reti ad Agenti Intelligenti), progetto che ha visto la realizzazione di un database centralizzato in cui vengono archiviate, nel rispetto delle normative vigenti sulla privacy e sulla proprietà intellettuale, informazioni tecniche, industriali, cliniche e commerciali disponibili a livello mondiale circa i materiali definiti biocompatibili.

Maggiori dettagli sulla piattaforma Samurai sono disponibili sul sito web del progetto Samurai. Il progetto Samurai è stato anche oggetto di un articolo sull’inserto del Sole 24 Ore del 16 giugno 2014.
La piattaforma è nata dalla collaborazione di Arakne e NuvÒ, due aziende specializzate nell’innovazione tecnologica, che hanno collaborato fortemente con due organismi di ricerca afferenti all’Università di Roma Tor Vergata: Ares, un consorzio di ricerca no profit specializzato nello studio delle reti di agenti mobili intelligenti e il Centro Vito Volterra, che si occupa, tra l’altro, di sistemi di elaborazione, trasmissione e presentazione  dell’informazione, con particolare riferimento alle tematiche della sicurezza e della riservatezza dei dati.
In questo contesto i nostri esperti hanno fornito ampio supporto nel progetto per quanto afferiva la progettazione e la realizzazione della rete di agenti mobili intelligenti ed è proprio di questo aspetto che vorremmo trattare in questo post.

Uno dei principali problemi a cui ha cercato di dare risposta SAMURAI è stato quello di dover acquisire informazioni da fonti dati eterogenee: pagine web, documenti PDF, documenti in altri formati standard (MS Office, OpenOffice, …) e via dicendo. Tali fonti informative erano in genere disponibili su server di proprietà di terzi e potevano contenere informazioni protette dalle normative sulla privacy. Inoltre era richiesta non solo l’estrazione del contenuto testuale ma anche l’analisi semantica del testo al fine di caricare e aggiornare un’ontologia che sarebbe stata poi utilizzata come base per un potente motore di ricerca basato sul Natural Language Processing (NLP).

La scansione dei documenti nelle suddette tecnologie, l’analisi semantica, il trasporto lungo la rete e l’aggiornamento dell’ontologia erano attività che richiedevano risorse computazionali, comunicative e di memoria sensibilmente differenti.

Al fine di risolvere il problema (e anche nell’ottica di muoverci verso il mondo IoT) i nostri esperti hanno da subito impostato il lavoro nella realizzazione di un sistema basato su Agenti Mobili Intelligenti ( per approfondimenti si veda il sito della Fondazione per gli Agenti Fisici Intelligenti – FIPA).

Gli Agenti Mobili Intelligenti, indicati nel progetto SAMURAI sempre con l’acronimo NIA, ossia Network Intelligent Agents, sono dei componenti software in grado di avviare l’elaborazione su un nodo della rete e poi spostarsi e proseguirla su un altro nodo. In pratica sono componenti software in grado di “spostarsi” lungo la rete in base alle necessità elaborative (CPU, memoria, I/O ecc.)  di cui hanno bisogno.

Oltre all’aspetto di mobilità, i NIA hanno anche la capacità di reagire autonomamente a stimoli esterni e di cooperare tra di loro. In questo senso sono da intendersi “intelligenti”.

Il framework entro cui sono stati implementati i NIA utilizzati in SAMURAI è quello noto come JADE (JAVA Agent DEvelopment Framework).

Purtroppo JADE non è idoneo, in termini di prestazioni e, in generale, di efficienza, ad un ambiente di produzione reale. Per tale motivo, concluso il progetto di ricerca SAMURAI, abbiamo continuato il nostro lavoro di sviluppo per portare i NIA su una piattaforma più mirata ad un vero e proprio contesto operativo e, soprattutto, focalizzata sull’IoT (Internet of Things).

Grazie all’uso dei NIA è stato possibile, in SAMURAI, spostare il NIA sul server dove era l’informazione, recuperarne il contenuto grezzo (HTML, PDF, XML, …) per poi spostarsi su un altro nodo con più potenza di calcolo (scelto fra quelli disponibili al momento) dove eseguire l’analisi semantica (che come noto richiede non poche risorse) collaborando con altri agenti specializzati in tale operazione. Terminata l’analisi semantica, i NIA migravano sul server di destinazione finale dove operavano il caricamento dei dati nell’ontologia e, più in generale, nel data warehouse centrale.

In questo modo (risolti alcuni aspetti di riservatezza e integrità dei dati durante gli spostamenti e gestita la temporanea separazione di una sottorete dal server centrale) i NIA hanno permesso di ottimizzare le risorse disponibili in quanto venivano utilizzati solo i server indispensabili (ad esempio quelli dove era l’informazione) e quelli disponibili (in funzione del loro carico) per eseguire le operazioni più pesanti. Di conseguenza, se un server con potenza di calcolo adeguata risultava scarico, si rendeva disponibile e gli agenti vi accorrevano per eseguire elaborazioni impegnative. Quando tale server necessitava di riappropriarsi di tutta  o parte della propria potenza di calcolo, lo comunicava agli agenti che si spostavano immediatamente su un altro server o, se non disponibile, sospendevano l’elaborazione in attesa di “tempi migliori” (server di nuovo disponibile o altro server raggiungibile).

In conclusione, riteniamo che gli Agenti Mobili Intelligenti siano un’eccellente soluzione per sistemi del tipo descritto e che possano rivestire un ruolo molto importante nella prossima generazione di IoT.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *