Declarative Thinking – Perchè i maggiori gruppi bancari e assicurativi hanno scelto Irion?

190712-immagine-perche-i-maggiori-linkedin-V2-768x400

I clienti possono concentrarsi sui loro obiettivi affidandosi alle funzionalità della piattaforma per la preparazione, l’ottimizzazione, l’esecuzione di tutti i passaggi necessari. La centralità del dato e il paradigma dichiarativo sono alla base di tutte le nostre tecnologie.

Presupposti e Ragioni – La nostra esperienza quotidiana è ordinariamente “dichiarativa”!

Ogni giorno, in numerose attività ed esigenze quotidiane, ci comportiamo e interagiamo con altri e con il contesto che ci circonda secondo un principio dichiarativo: comunichiamo cosa ci occorre e riceviamo il risultato di quanto richiesto, commissionato od ordinato. Non specifichiamo, cioè, come un dato compito debba essere svolto, non insegniamo ad altri il loro lavoro –per intenderci–, ma ci limitiamo a dichiarare cosa debba essere fatto e quali obiettivi vadano perseguiti e raggiunti. E valutiamo infine i risultati, misurando di conseguenza l’efficacia delle azioni messe in campo.

 

Ad esempio chi di noi al ristorante chiamerebbe il cameriere per ordinare allo chef di prendere la pasta, bollirla per circa 8 min. a 90°, nel frattempo, in parallelo, coinvolgere un aiuto cuoco, tagliare guanciale e cipolla, soffriggerli per 5 min., aggiungere pomodoro ecc.? Molto meglio dire: “vorrei bucatini all’amatriciana” e lasciare libera la cucina di stupirci con un piatto di pasta, ottimo oggi (mediamente molto meglio della mia ricetta) ed eccellente domani quando avrà anche migliorato ulteriormente la ricetta, provandola e riprovandola come un vero esperto! Liberati dalla necessità di definire passo-passo il compito dello chef e garantiti che sarà svolto al meglio, potremmo inoltre concentrarci sul vino da scegliere per un perfetto abbinamento e secondo i nostri gusti!

Le ragioni di questo tipo di comportamento nelle relazioni ordinarie sono molteplici:

  • è un dato di realtà che non siamo esperti di ogni cosa. Che sovente il risultato è migliore se deleghiamo ad altri almeno una parte di un progetto.
  • Svolgere bene un lavoro richiede concentrazione e ogni dispersione sottrae tempo ed energie ad altri compiti.
  • Il modo più efficace per risolvere problemi complessi è dividerli in parti più semplici e delegare il lavoro necessario.
  • Solo chi conosce bene un problema può risolverlo in maniera soddisfacente. Solo chi investe continuamente in ricerca e accumula esperienza può, nel tempo, attuare le azioni adeguate al costante e necessario miglioramento.

In definitiva, tutti agiamo abitualmente secondo gli efficaci principi di delega, focalizzazione ed isolamento.

Per farlo è ovviamente necessario non essere prescrittivi, non desiderare di entrare nel dettaglio delle norme e regole da seguire per lo svolgimento di un lavoro, ma descrittivi, limitandosi ad enunciare correttamente ed esaustivamente il risultato atteso.

Questa osservazione apparentemente semplice può essere trasposta e praticata in modo efficace anche nella realizzazione di soluzioni evolute di Data Managementche, davvero nello stesso modo, richiede un approccio dichiarativo e una piattaforma che lo sostenga.

Il Data Management: approccio tradizionale ETL-based

Nell’informatica troppo spesso si rimane a livelli procedurali e prescrittivi di dettaglio, istruendo gli applicativi anche su funzioni elementari invece di fare leva su software specificatamente progettati ed ottimizzati.

Il problema è per lo più strettamente connesso con il percorso formativo degli specialisti di settore. La formazione tradizionale nel campo informatico propone infatti troppo spesso approcci che non riescono a scomporre un problema isolando aspetti delegabili ed organizzandolo per componenti sostituibili.

La stragrande maggioranza dei programmatori è orientato alla definizione di un algoritmo dettagliato di risoluzione dei problemi.

Pochi conoscono il significato e le potenzialità implicite nei modelli e linguaggi dichiarativi: orientati a descrivere il risultato atteso piuttosto che i passi necessari per ottenerlo.

I linguaggi dichiarativi sono, in informatica, spesso sottovalutati o piegati ad un utilizzo procedurale. Chi conosce la materia sa, ad esempio, che pochissimi esperti di settore, pur conoscendo un linguaggio dichiarativo come l’SQL, ne hanno veramente appreso le potenzialità in termini di gestione e trasformazione dei dati.

È raro trovare un programmatore che sappia sfruttare appieno le capacità funzionali offerte da un DB relazionale di eseguire elaborazioni molto complesse, minimizzando il trasferimento dei dati, con algoritmi paralleli fortemente ottimizzati a basso livello e adattati automaticamente “run-time” in ragione della distribuzione statistica delle informazioni.

Salendo a livello applicativo si nota che pressoché tutti i sistemi ETL di Data Management sono l’evoluzione grafica e ingannevolmente semplificata di questa scuola di pensiero. Implementano un paradigma imperativo e procedurale per il quale il programmatore deve “istruire” nel dettaglio il sistema a seguire pedissequamente l’algoritmo definito “design-time”.

I vecchi e tradizionali sistemi di ETL processano i dati in streaming, “one row at a time”. La logica implicita nella stesura di un diagramma ETL non lascia spazio a ottimizzazioni future dell’algoritmo, neanche in nuove versioni del software, che saranno fortemente vincolate ad eseguire tutti i passi di dettaglio già programmati.

Non solo. I modelli di elaborazione ETL oriented che ambiscono a processare i record uno alla volta si scontrano immediatamente con la realtà delle esigenze funzionali ordinarie appena sono necessarie trasformazioni che coinvolgono più record, si calcolano aggregati, si analizzano serie temporali, si riutilizzano più volte pre-elaborati parziali, ecc.

Anche i più blasonati sistemi di ETL tendono a degenerare in un coacervo disorganico di trasformazioni e chiamate SQL improvvisate per appoggiare dati temporanei in una qualche area di staging e chiedere ai DB di sopperire alle loro scarse capacità funzionali messe a disposizione.

L’architettura concettuale sulla quale si basano tutti i sistemi ETL presenti sul mercato:

  • non segue un modello “dichiarativo” di delega funzionale
  • impone la descrizione dettagliata del processo, non consente ottimizzazioni delle elaborazioni, né in ragione della distribuzione attuale dei dati, né in seguito a miglioramenti del software
  • non è autonoma in termini di potenzialità funzionali e deve spesso ricorrere a sistemi esterni di appoggio
  • muove più e più volte significative masse di dati dalle aree di staging ai server di elaborazione e viceversa per eseguire le logiche elaborative.

Questi scenari, tanto comuni quanto nefasti, comportano:

  • una crescente complessità di orchestrazione dei percorsi di trasformazione
  • la necessità di procedere con altri strumenti e per vie non coordinate alla definizione di tabelle viste e infrastrutture varie di sostegno
  • lo sforamento dei costi e dei tempi di implementazione;
  • l’abbattimento delle performance elaborative
  • la crescita dei costi di manutenzione e di gestione di cambiamenti
  • l’impossibilità di cicli di test e sviluppi paralleli e coordinati
  • l’impossibilità pressoché totale di documentare e tracciare i processi. Con buona pace dei requisiti di lineage e ripetibilità.

Il Data Management: Irion EDM – La piattaforma dichiarativa integrata e metadata driven a cui delegare i più complessi processi di gestione dati

La tecnologia di Enterprise Data Management di Irion è il frutto di anni di esperienza in contesti mission critical e “data intensive”. La nostra piattaforma si sviluppa ragionando sull’esperienza, partendo dalla concretezza di centinaia di progetti: quelli con tanti dati, con vincoli di tempo, con le specifiche che cambiano in corso d’opera, con problemi complessi in contesti architetturali e organizzativi molto articolati.

Il nostro approccio è “disruptive”: non proponiamo l’ennesimo sistema di ETL procedurale con qualche funzione in più, qualche connettore specifico, un editor più bello e motori ‘magici’ per l’esecuzione veloce.

Abbiamo infatti ridefinito il concetto di Data Management di cui i processi ETL sono una declinazione, ma che abbraccia anche molti altri ambiti (sistemi Rule-Based, Data Quality, Data Integration e Reporting, Data Governance etc).

Abbiamo adottato il paradigma dichiarativo e lo abbiamo reso pervasivo nella tecnologia e nella metodologia.

Una delle nostre principali tecnologie prende infatti il nome DELT™, un acronimo che significa Declarative Extraction Loading & Trasformation e rappresenta l’inversione delle fasi di caricamento e trasformazione (ELT rispetto a ETL) e lo svolgimento dell’intero processo in conformità ad un modello dichiarativo.

I concetti chiave su cui una DELT™ Execution si basa sono i seguenti:

  • Ogni dataset utilizzato nell’elaborazione viene riesposto virtualmente come se fosse una tabella o un insieme di tabelle il cui contenuto non può essere modificato dopo che sono state create, garantendo così coerenza, efficienza e controllabilità al sistema. È compito della piattaforma operare implicitamente tutte le trasformazioni necessarie a far sì che un insieme di dati, disponibile in qualsiasi formato, sia mappato opportunamente.
  • L’intero processo di elaborazione viene scomposto in un insieme di “data engine” o funzioni in grado di ricevere in ingresso una o n tabelle virtuali, di operare le opportune trasformazioni e di produrre in output una o più tabelle virtuali secondo il modello illustrato.
  • Le funzioni possono essere di tante tipologie (Query, Script, Rule, R, Python, Masking, Profiling …) ed eseguire elaborazioni secondo quanto configurato da chi imposta la soluzione, incapsulando logiche e modelli vari.
  • La configurazione dei “data engine” comporta l’implicita definizione di un grafo orientato di dipendenze di esecuzione in cui il sistema è autonomamente in grado di organizzare la sequenza di passi necessari a produrre ogni output e non è richiesto al designer di descrivere l’algoritmo.
  • Ogni oggetto del sistema può essere eseguito singolarmente e/o combinato con altri in modo da agevolare testabilità, manutenibilità, refactor e sviluppo incrementale.
  • L’elaborazione DELT™ segue uno schema dichiarativo che specifica i dataset attesi in output: è compito del sistema rilevare automaticamente il “DELT™ Graph” verificando che il grafo sia aciclico e avviando l’esecuzione ottimizzata e parallela di tutti i passi necessari per produrre il risultato richiesto.
  • In casi molto complessi il motore è anche in grado di modificare attivamente il grafo durante l’esecuzione in funzione delle proprietà dinamiche che lo determinano e che possono essere influenzate da passi precedenti; o, addirittura, di generare ed eseguire runtime i Data Engine necessari per specifiche elaborazioni.
  • Se necessario una DELT™ Execution può ingaggiare altre DELT™ Execution a fini di incapsulamento e riusabilità della business logic.
  • La tecnologia proprietaria utilizzata per rendere disponibile alle DELT™ Execution i dati coinvolti in uno spazio isolato e gestito si chiama IsolData™. Si tratta di uno spazio di lavoro virtualmente illimitato, dinamicamente allocato e liberato dal sistema, segregato in termini di permessi di accesso e spazio dei nomi, volatile o persistente.
  • Gli IsolData™ consentono di eseguire n DELT™ parallele, sugli stessi dati o su dati completamente differenti e/o con parametri, regole e logiche diverse, senza che debba essere predefinita o gestita alcuna struttura particolare; tutte le operazioni di supporto alla gestione infrastrutturale sono coordinate e gestite dal framework in modo ottimizzato e trasparente all’utilizzatore.
  • Durante un’esecuzione DELT™ tutte le operazioni di elaborazioni sui dati sono eseguite a basso livello sul server e secondo la modalità “set oriented” considerando un insieme complesso a piacere di dataset contemporaneamente e non “una riga alla volta”.
  • Il server minimizza le onerose operazioni di data movement eseguendo eventuali elaborazioni complesse, per produrre dati intermedi da utilizzarsi molte volte, una sola volta senza la necessità di salvarle esplicitamente in file o tabelle di appoggio.
  • La conoscenza di una serie di statistiche sui dati consente al motore di operare specifiche ottimizzazioni durante l’esecuzione dei motori.
  • Ogni DELT™ Execution consente uno sviluppo interattivo ed incrementale di un processo complesso di cui vedere sempre tutti i risultati intermedi e abilita alla tracciatura completa ed intellegibile dei dati e delle regole coinvolte in ogni elaborazione, per esempio ai fini di Audit (vedi Automatic Documentation e OneClick Audit®).

L’approccio dichiarativo e metadata driven all’Enterprise Data Management di Irion EDM risulta molto più conforme ad un comune modo di pensare, risponde al principio di delega dei compiti, garantisce livelli di performance senza pari, consente un’ottimizzazione automatica e un miglioramento costante, abilita modalità “Agile” e incrementali nella realizzazione delle soluzioni, non è una scatola nera, ma può rendere conto del suo operato.