L'architettura software tradizionale nei financial service utilizza processi batch per la gestione dei dati, ma la necessità di freschezza del dato spinge verso lo streaming in tempo reale.
In questo articolo mostriamo use case di Offloading e Data Integration in near-real time, per ridurre costi e migliorare l'accesso ai dati.
Nella nostra esperienza, le componenti core dei sistemi informativi finanziari si appoggiano a sistemi legacy, in una architettura concepita con una componente diurna e una componente batch notturna in cui i dati inseriti durante la giornata vengono consolidati. Durante questa fase di consolidamento la piattaforma è indisponibile.
In questo tipo di architettura non è possibile utilizzare il sistema legacy come base dati per erogare servizi ad applicazioni web e mobile che possono essere utilizzate in continuità. Nasce perciò l’esigenza di spostare i dati su una infrastruttura abilitante al loro utilizzo 24/7 senza sacrificare la freschezza e la qualità del dato.
Una delle tecniche classiche per allineare sistemi differenti è l’utilizzo di flussi batch, ovvero informazioni consolidate che transitano tra i diversi sistemi in una determinata fascia oraria. Questo tipo di alimentazione introduce un delta temporale tra il sistema alimentante e il sistema alimentato perché le informazioni presenti nei flussi rappresentano la fotografia del sistema alimentante a fine giornata.
Le tempistiche di produzione, caricamento ed elaborazione dei flussi batch, così come la necessità di consolidamento, solitamente richiedono molte risorse (sia lato alimentante che alimentato) rendendo difficoltoso effettuare più allineamenti durante il giorno.
Per ovviare a tale limite e supportare esigenze di business che richiedono la tempestività dell’informazione, viene in nostro soccorso la tecnica dello streaming, cioè catturare l’informazione in tempo reale dai sistemi sorgenti e propagarla verso i sistemi target.
Nei progetti che sviluppa per i suoi clienti, lo stato dell'arte dell'architettura prevede dei sistemi legacy basati solitamente su Mainframe o database Oracle.
La tecnica utilizzata per abilitare lo streaming dei dati è l'adozione di un sistema di Change Data Capture (il tool di riferimento per il mercato è Oracle Golden Gate) che si occupa di raccogliere le operazioni effettuate sui record del sistema sorgente e ne consente la replica in tempo reale verso un sistema target abilitante alle soluzioni di business più moderne.
Il target di un sistema CDC è una piattaforma di event-streaming composta da topic (solitamente realizzati con Apache Kafka), in cui gli eventi vengono gestiti con alto throughput e affidabilità in termini di consistenza e ordinamento temporale del dato.
Tramite uno strumento di streaming process come Apache Flink i dati presenti sui topic sono elaborati in near-real time e utilizzati dai sistemi target secondo le logiche definite per lo specifico use-case. Progetti classici che utilizzano il paradigma sopra descritto sono il Data Offloading e la Data Integration in near-real time.
Nel caso dell’Offloading, i dati recuperati dai sistemi sorgenti vengono replicati su dei sistemi target per essere utilizzati da applicativi web e mobile, riducendo considerevolmente il carico macchina e il costo dei legacy e migliorando le prestazioni e la semplicità di accesso al dato. Tale soluzione è stata da noi implementata per una importante Banca italiana.
La Data Integration in streaming si prefigge l’obiettivo di recuperare e trasformare in near-real time dati da diversi sistemi sorgenti che concorrono a rappresentare l’informazione nella sua interezza per alimentare front end analitici, riducendo considerevolmente i tempi di accesso al dato e aumentando il time-to-market per il business. Tale soluzione è utilizzata da una importante SGR italiana.