Con Event-Driven Architecture (EDA) si intende il paradigma di architettura software che promuove la produzione, il rilevamento, il consumo e la reazione agli eventi. Mentre le architetture tradizionali si concentrano sulla gestione dei dati, le architetture Event-Driven si concentrano sulla gestione degli eventi. Un evento è un fatto accaduto nel passato e quindi di per sé è immutabile, inoltre esso è auto-consistente perché è accaduto in un momento specifico e ha in sé il significato intrinseco delle informazioni di questo fatto.
Indice degli argomenti
Event-Driven Architecture, un esempio concreto
Facciamo un esempio concreto: partiamo da due dati come: ragione sociale e partita iva. Nell’applicazione della gestione clienti questi rappresentano un cliente, nell’applicazione della gestione fatture questi rappresentano il destinatario della fattura. Questo significa che il dato in sé prende significato a secondo del contesto in cui viene utilizzato.
Ma se noi diciamo che è accaduto l’evento “emissione fattura” i dati presenti in esso non sono ambigui, questi sono circonstanziati dall’evento stesso, inoltre abbiamo anche l’informazione molto importante che l’evento è accaduto in un determinato momento temporale.
Inoltre, gli eventi sono correlati al loro dominio, quindi sono comprensibili al business perché sono parte del linguaggio comune della organizzazione che li gestisce. In una fonderia l’evento “carica dell’altoforno” è compreso da tutto il business, così come in una banca l’evento “apertura conto corrente”, e così come “scarico dal magazzino” nella logistica.
Questo significa che analizzare un processo aziendale basandosi sugli eventi è più stabile perché non è correlato al dato o alla tecnologia, ma all’evento stesso (ne ha quindi la semantica), ad esempio “apertura conto corrente” non è influenzato da quale database o sistema lo gestisce.
L’Event Stream Processing (ESP) è un insieme di tecnologie progettate per assistere la costruzione di sistemi informativi guidati dagli eventi, e si occupa del compito di elaborare flussi di dati di eventi con l’obiettivo di identificare il modello significativo all’interno di tali flussi, impiegando tecniche come il rilevamento di relazioni tra più eventi, correlazione di eventi, gerarchie di eventi e altri aspetti come causalità, appartenenza e tempistica.
Analisi dei dati nell’Industry 4.0
Sappiamo che l’Industry 4.0 ha ottenuto molti vantaggi dallo sviluppo dell’IoT e dai dati che si possono ricavare dagli apparati e dalle loro capacità di comunicazione (M2M).
Enormi moli di dati vengono raccolti, normalizzati, archiviati e quindi analizzati con modelli matematici, con il supporto della AI e del Machine Learning, al fine di ottenere informazioni utilissime per:
- formulare previsioni di funzionamento in ottica manutentiva predittiva
- incrementare l’efficacia e l’efficienza dei processi produttivi
- migliorare i servizi e i prodotti.
Ma questo processo di analisi avviene tramite un’elaborazione “storica”, ovvero i sistemi non forniscono le informazioni nel momento in cui gli eventi accadono ma solitamente dopo (talvolta molto dopo).
E se si potesse:
- prevedere l’andamento della produzione in fase di esecuzione e prevedere immediatamente gli impatti economici e temporali
- analizzare il buon funzionamento delle apparecchiature e avere lo stato di manutenzione predittiva in tempo (quasi) reale?
La risposta è: sì, si può.
If You Can Dream It, You Can Do It (Walt Disney)
Event-Driven Architecture, Event Stream Processing e Continuous Intelligence
La soluzione sta proprio nelle architetture EDA che, supportate dagli ESP, riescono svolgere in tempo reale analisi applicando algoritmi di Machine Learning e AI su dati nel momento che questi vengono “trasportati” dagli eventi accaduti.
La terminologia più appropriata data dagli analisti è Event Stream Processing and Continuous Intelligence, per sottolineare questo concetto di applicazione continua della AI e del ML.
Un esempio nell’ambito manifatturiero
Prendiamo un esempio reale, ovvero un processo di produzione basato su macchine CNC (a controllo numerico), macchine che compiono dei cicli di lavorazione per produrre un pezzo. Queste macchine hanno la necessità di cambiare gli strumenti di lavorazione (tool come punte, frese, etc.) sia per motivi di tipologia di lavorazione sia per il deperimento dei tool stessi.
Quello che vogliamo ottenere è un sistema che indichi quale sia il momento più opportuno per cambiare il tool e quali impatti potrà avere questo cambio sull’esito della produzione, oppure quale sarà l’impatto sulla produzione nel ritardare il cambio di questo tool.
Il prerequisito è che queste macchine devono essere sistemi in grado di fornire dati sul loro stato (assorbimento elettrico, tempo di lavorazione, anomalie, etc.), ma al giorno d’oggi è scontato che tutte siano in grado di farlo.
Per realizzare questo vi sono alcuni importantissimi elementi:
- metodologie
- know-how
- architetture tecnologiche.
I tre elementi concorrono a realizzare un sistema che, una volta istruito su una serie di dati storici, procede analizzando gli eventi accaduti in tempo reale ed è in grado di autocorreggersi ed affinarsi in base ai feedback forniti.
Il processo di realizzazione del sistema EDA-ESP è riportato di seguito:
Radicalbit Natural Analytics (RNA) – radicalit.it
Il risultato è in questo esempio un sistema di monitoring, che indica in tempo reale i momenti più opportuni di sostituzione dei tool di lavorazione e il loro impatto previsto sul processo produttivo.
Radicalbit Natural Analytics (RNA) – radicalit.it
I campi di possibile applicazione
Avendo a disposizione degli strumenti così “potenti” in ambito analitico, la loro applicazione è pressoché illimitata, ovunque vogliamo prevedere in tempo (quasi) reale la ripercussione di un evento su un processo allora li è il loro campo d’azione.
In ambito produttivo possiamo spaziare in vari casi d’uso come ad esempio:
- manutenzione predittiva
- ottimizzazione dei cicli macchina
- ottimizzazione dei consumi energetici
- ottimizzazioni della produzione tramite la riduzione di materie dell’eccesso o scarto di materie prime.
In campo non manifatturiero possiamo avere ad esempio:
- ottimizzazione gestione scorte
- ottimizzazione flotte aziendali
- analisi del comportamento acquirenti durante eventi live di lancio prodotti
- trattamento/lavorazione preventive in ambito agricoltura 4.0.
Conclusioni
Un nuovo approccio alle architetture software denominato Event-Driven Architecture si focalizza alla gestione degli eventi e non dei dati, le architetture basate su questo paradigma vengono affiancate da strumenti di Event Streaming Processing e Continuous Intelligence per realizzare soluzioni che possono prevedere in tempo (quasi) reale, l’impatto di un evento sul processo aziendale.
Queste soluzioni sono inoltre in grado di auto-adattarsi e affinare sempre di più le loro previsioni, utilizzando i feedback ricevuti.
Per chi fosse interessato segnalo questi interessanti report sul tema:
- Adopt Stream Data Integration to Meet Your Real-Time Data Integration and Analytics Requirements – (Etisham Zaidi, W. Roy Schulte – Gartner)
- Market Guide for Event Stream Processing – (Nick Heudecker, W. Roy Schulte – Gartner)
- Market Guide for Data Preparation Tools – (Ehtisham Zaidi, Sharat Menon – Gartner)
- Use Continuous Intelligence to Transform the Business – (W. Roy Schulte – Gartner)
- Innovation Insight: Turbocharge Your API Platform With a Digital Integration Hub – (M. Pezzini, Gartner)
- Now Tech: Streaming Data Platforms, Q2 2021 – (Mike Gualtieri – Forrester)
- Event Stream Processing market report: Global Industry Perspective, Comprehensive Analysis, and Forecast, 2018–2025 – (Zion Research)