Riassunto analitico
Nel mondo di oggi, dove l'Internet of Things è in continua espansione e grandi quantità di dati sono prodotte ogni secondo dalle sorgenti più diverse, il numero di applicazioni capaci di analizzare questi dati alla ricerca di informazioni di interesse sta aumentando sempre di più.
La tesi proposta è un'analisi dettagliata del processo di progettazione ed implementazione che sta dietro ad una di queste applicazioni, in particolare il sistema sarà distribuito e capace di scalare sia orizzontalmente che verticalmente, dando all'amministratore la possibilità di adattarlo a differenti workload e, di conseguenza, di gestire enormi quantità di dati. L'applicazione inoltre si adatterà ad input eterogenei, sia dal punto di vista della sorgente che da quello del formato: sarà, infatti, capace di esaminare tipi di dato molto diversi, da semplici file di testo a grossi archivi contenenti differenti elementi e varie estensioni, e di gestire sia input manuali ed intermittenti, tipici di un utente, sia automatici e continui, tipici di particolari programmi come web scraper o API. Il soggetto principale della descrizione sarà l'architettura della piattaforma, che rende possibile la creazione di unità di esecuzione isolate, ognuna con un differente pattern da ricercare definito dall'utente, che lavorano in parallelo grazie ad un servizio coordinato e configurabile che gestisce l'ambiente circostante, questo rende il sistema capace di estrarre informazioni come codici di prodotto, email, prezzi e altri tipi di dato in maniera asincrona. Sarà anche presentato un riassunto di alcuni risultati sperimentali per dimostrare come il sistema lavora in ambienti di produzione.
|
Abstract
In today’s world, where the Internet of Things is in continuous expansion and massive quantities of data are produced every second from the most diversified sources, the number of applications able to analyse said data searching for information of interest is rising more quickly than ever.
The proposed thesis is the detailed examination of the design and implementation process behind the creation of one of these applications, in particular the system is going to be distributed and capable of scaling both horizontally and vertically, giving to the administrator the possibility of adapting it to different workloads and, as a consequence, of handling giant amounts of data.
The application will also adapt to heterogeneous inputs, both from a format and a source standpoint: it will, indeed, be capable of examining very different types of data, ranging from simple text files to giant archives containing different elements with various extensions, and handling both manual, intermittent inputs, i.e. manually added by the user, as well as automatic, continuous ones, coming from other programs like a web scraper or an API.
The main subject of the description will be the architecture of the platform, which makes it possible to create isolated processing units, each one with a different user-defined search pattern to match, running in parallel thanks to a configurable coordinated service that manages the environment around them, this makes the whole system capable of extracting information like product codes, emails, dates, prices and other types of data asynchronously.
A summary of some experimental results will also be included to show how the system performs in a production environment.
The scenarios where such a system could be used are diverse, one of the main examples is in threat intelligence, where the analysis could be done to retrieve leaked data or to reveal sensitive information that could be the subject of a hypothetical attack, but other use-cases include big data analysis and resource management and organisation.
|