Lo sviluppo tecnologico di PricePedia V4

Una struttura dati più efficiente e l'uso più ampio di JavaScript sono alla base della nuova versione

.

Strumenti Strumenti e Metodologie

Nel passaggio dalla versione V3 alla versione V4, PricePedia non ha solo ampliato la base dati messa a disposizione degli utenti e inserito nuove funzionalità, ma ha modificato profondamente la tecnologia utilizzata, creando i presupposti per un lungo sentiero di sviluppo. I cambiamenti hanno riguardato soprattutto due aree[1]:

  • il passaggio della struttura dati di base dalle serie storiche ai Dataframe;
  • l'utilizzo del linguaggio di programmazione JavaScript non solo per gestire gli aspetti dinamici della piattaforma ma anche per l'elaborazione dei dati, in parziale sostituzione del linguaggio Python.
Sviluppo PricePedia V4

Dalle serie storiche ai Dataframe

Serie storiche

Una serie storica è una sequenza di dati organizzata cronologicamente, tipicamente utilizzata per analizzare l'andamento di una variabile nel tempo. È strutturata con un indice temporale, che rappresenta una sequenza ordinata di periodi temporali(ad esempio, giorni, mesi, anni), e una serie di valori numerici, che rappresentano le osservazioni o misurazioni effettuate in ciascuno di questi periodi. Questa struttura consente di osservare le tendenze, i modelli e le anomalie nel tempo, facilitando l'analisi statistica e la previsione futura basata sui dati storici.
Un suo limite è quello di non consentire di associare ad una stessa osservazione più misure tra loro legate. Si pensi ad esempio ai prezzi future con scadenze diverse ed un medesimo sottostante: ad esempio i future sul prezzo del petrolio Brent. Se si vuole memorizzare in file, distinti per serie storica, le diverse rilevazioni effettuate dei prezzi giornalieri delle decine di future per scadenza quotate alla borsa IntercontinentalExchange (ICE), è necessario definire un file per ogni future. Questa soluzione è poco scalabile per due motivi. Il primo, di natura informatica, riguarda il costo che la moltiplicazione di file ha in termini di gestione e velocità di accesso ai dati. La seconda, più importante, riguarda l'esperienza d'uso degli utenti, con la proliferazione delle opzioni di scelta disponibili, con crescente complessità del sistema di ricerca.

La struttura dei Dataframe consente di superare questo limite.

Dataframe

Un Dataframe è una struttura tabulare avanzata per l'organizzazione dei dati, nella quale ogni riga è identificata da un indice unico (simile all'indice di una serie storica), e ogni colonna è anch'essa etichettata con un indice specifico. Questa struttura consente di rappresentare e gestire in modo efficiente diverse variabili raccolte nello stesso periodo temporale. La chiave di questa struttura è la possibilità di tenere allineate le informazioni per data di osservazione. Essa facilita l'esplorazione, la manipolazione e l'analisi dei dati, rendendola uno strumento indispensabile nell'ambito dell'analisi dei dati e della statistica.
Nel caso dei prezzi dei future del Brent, è sufficiente un solo Dataframe per gestire i dati dei prezzi di tutti i future, identificati dalle diverse colonne.
In questo modo risulta semplificata la gestione informatica dei dati, ma soprattutto risulta semplificata la ricerca per l'utente dei singoli dati. Essa può avvenire in due passi successivi: prima si identifica il prodotto "petrolio Brent" e solo successivamente si scelgono quali sono i future del cui prezzo si è interessati.

Le possibili applicazioni dei Dataframe sono molteplici. Le colonne possono essere utilizzate per raccogliere misure diverse del medesimo prezzo, come sono ad esempio la misura Last Price EU o la misura Storico EU nell'ambito dei prezzi di fonte doganale, oppure la rilevazione dei prezzi del medesimo fenomeno effettuate in paesi diversi, come, ad esempio, sono i prezzi alla produzione di fonte Eurostat relativi ai vari paesi europei.

Da Python a JavaScript

Python è ampiamente riconosciuto come un linguaggio di programmazione eccellente per l'elaborazione e l'analisi dei dati. Tuttavia, l'esecuzione di Python direttamente nel browser richiede tecnologie non del tutto mature. Di conseguenza, le funzionalità basate su Python in un sito web richiedono una comunicazione tra il browser dell'utente e un server dedicato. Questa architettura client/server, sebbene efficace, presenta limitazioni: la gestione della comunicazione tra client e server può comportare tempi di attesa elevati e, inoltre, non sfruttando la capacità di calcolo del dispositivo dell'utente, in occasione di picchi di traffico sulla piattaforma, si può correre il rischio di sovraccaricare il server. Nella versione V4 di PricePedia, molte funzioni di elaborazione dati, quali il cambio valuta o la trasformazione da livello ad indice delle serie storiche, sono state trasferite dal server al browser dell'utente. Poichè tuttavia i browser più utilizzati non interpretano direttamente i comandi in linguaggio Python, ma eseguono nativamente comandi in linguaggio JavaScript, le funzionalità originariamente scritte in Python sono state convertite in JavaScript, sfruttando la ricchezza di librerie e la flessibilità che l'utilizzo di questo linguaggio comporta. Questo approccio riduce significativamente la necessità di comunicazioni client/server e migliora la reattività dell'applicazione.
Questo cambiamento, insieme all'adozione dei Dataframe, ha aperto molte possibilità di sviluppo, come dimostra la nuova funzionalità Tabella della sezione PriceData, raggiungibile dal menu Visualizza posto nella barra di navigazione in alto.

Conclusioni

La missione principale di PricePedia è quella di consentire agli uffici acquisti di accedere facilmente a tutte le informazioni utili alle proprie decisioni, ricavabili attraverso l'elaborazione dei dati disponibili. Fino ad ora, il miglioramento di PricePedia è consistito in un progressivo allargamento dei dati disponibili e nella crescita di funzionalità sempre più efficaci per la raccolta e organizzazione delle informazioni: dalle semplici elaborazioni statistiche, alla visualizzazione dei dati in grafici di vario tipo; dalla trasformazione dei dati alla costruzione di tabelle esplicative; dalle analisi di previsione univariate ai modelli di previsione a specificazione dinamica.

Con la versione V4, PricePedia ha superato alcuni limiti che avrebbero potuto rallentare il processo di miglioramento, accedendo ad un spazio, quasi illimitato, di possibili sviluppi.


[1] Per una descrizione più copleta della versine V4 di PricePedia, si veda l'articolo PricePedia V4: più dati e nuovi tools.