Cos'è l'event streaming?

Forme astratte da un edificio dall'architettura moderna

Cos'è l'event streaming?

L'event streaming consiste nell'acquisire dati in tempo reale da applicazioni, database e dispositivi IoT e trasportarli verso varie destinazioni per trattarli o memorizzarli subito o per effettuare analisi e report di analytics in tempo reale.

Una funzione fondamentale dell'event stream processing (ESP), lo streaming di eventi consente alle infrastrutture IT di gestire flussi di eventi estesi e continui elaborando i dati quando si verifica l'evento o la modifica.

L'event streaming spesso funge da integrazione all'elaborazione in batch, che agisce su set di dati statici di grandi dimensioni (o "dati a riposo"). Tuttavia, invece di elaborare i dati in batch, l'event streaming gestisce singoli punti dati man mano che emergono. Questo approccio consente al software all'interno dell'architettura di interpretare e rispondere a flussi di dati ("dati in movimento") in tempo reale.

I servizi di event streaming ad alte prestazioni possono alimentare una serie di attività sia semplici che complesse, dall'invio di notifiche quando i prezzi di azioni o prodotti cambiano, fino alla creazione di modelli di machine learning in tempo reale che rilevano attività sospette da parte degli utenti. Anche nel caso dell'elaborazione in batch, l'event streaming può aggiungere profondità all'analisi dei dati collegando gli eventi ai rispettivi timestamp. Aiuta anche a identificare tendenze storiche, fornendo preziosi insight nel tempo.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Cos'è un evento?

L'event streaming si basa su un flusso illimitato, sequenziale e in tempo reale di record di dati, chiamati "eventi", ovvero di strutture di dati fondamentali che registrano qualsiasi evento verificatosi nel sistema o nell'ambiente. È un termine che si riferisce essenzialmente a ogni punto dati del sistema. Pertanto, un "flusso" (chiamato anche flusso di dati o streaming di dati) è la consegna continua di tali eventi.

Ogni evento tipicamente comprende una chiave che identifica l'evento o l'entità a cui si riferisce, insieme a un valore che contiene i dati effettivi dell'evento. Inoltre, include un timestamp che indica quando l'evento è avvenuto o registrato, e talvolta metadati sulla fonte dati, la versione dello schema o altri attributi.

Con l'aiuto di motori specializzati di elaborazione dei flussi, gli eventi possono essere sottoposti a diversi processi all'interno di un flusso. Le “aggregazioni” eseguono calcoli sui dati, come medie, somme e deviazioni standard. “Ingestione” aggiunge dati streaming ai database. L'elaborazione analitica utilizza gli schemi rilevati nei dati in streaming per prevedere eventi futuri, mentre l'elaborazione di arricchimento combina i punti dati con altre origini per fornire un contesto e creare significato.

Gli eventi sono spesso legati a operazioni aziendali o a processi di navigazione degli utenti e in genere innescano un'altra azione, un processo o un'altra serie di eventi. Prendiamo ad esempio l'online banking.

Quando un utente clicca su "trasferisci" per inviare denaro da un conto bancario a un altro, i fondi vengono prelevati dal conto del mittente e aggiunti al conto bancario del destinatario. Vengono inviate notifiche via e-mail o SMS a una delle parti (o entrambe) e, se necessario, vengono implementati protocolli di sicurezza e prevenzione delle frodi.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Componenti fondamentali dell'event streaming

Gli eventi sono il componente centrale dell'event streaming. Tuttavia, una serie di altri componenti consente ai servizi di streaming di elaborare gli eventi con la stessa rapidità ed efficacia. Altri componenti essenziali includono:

Broker

I broker, o broker di messaggi, sono i server che gestiscono le piattaforme di event streaming. I broker di messaggi consentono alle applicazioni, ai sistemi e ai servizi di comunicare tra loro ed effettuare scambi di informazioni, convertendo i messaggi tra protocolli di messaggistica formali. Questo approccio consente a servizi interdipendenti di "parlare" direttamente tra loro, anche se sono stati scritti in diverse lingue (ad esempio Java o Python) o implementati su piattaforme differenti. Ciò facilita anche il disaccoppiamento di processi e servizi all'interno dei sistemi.

I broker possono convalidare, archiviare, instradare e consegnare i messaggi alle destinazioni appropriate. Nei sistemi di event streaming distribuiti, i broker garantiscono una bassa latenza e un'alta disponibilità replicando gli eventi su più nodi. I broker possono anche formare dei cluster, ovvero dei gruppi di broker che lavorano insieme per facilitare il bilanciamento del carico e la scalabilità.

Argomenti

Gli argomenti sono categorizzazioni o nomi di feed in cui vengono pubblicati gli eventi, che forniscono un modo per organizzarli e filtrarli all'interno della piattaforma. Essi fungono da "soggetto" per gli eventi, consentendo ai consumatori di iscriversi agli argomenti e di ricevere solo gli eventi di loro interesse.

Partizioni

Gli argomenti possono essere ulteriormente suddivisi in partizioni, consentendo a più utenti di leggere contemporaneamente da un argomento senza interrompere l'ordine di ogni partizione.

Offset

Un offset è un identificatore unico per ogni evento all'interno di una partizione, che ha il compito di contrassegnarne la posizione all'interno della sequenza. I consumatori utilizzano gli offset per organizzare gli eventi che hanno elaborato. Se, ad esempio, un consumatore si disconnette da un evento e successivamente si riconnette, può riprendere l'elaborazione dall'ultimo offset noto.

Come funziona l'event streaming?

Data la proliferazione dei dati, e il conseguente aumento del traffico dati, l'event streaming è un componente essenziale delle moderne architetture dati. È prezioso negli ambienti che richiedono funzionalità estremamente rapide o nelle organizzazioni che mirano ad automatizzare le responsabilità del processo decisionale.

Ecco come i servizi di event streaming gestiscono i dati relativi agli eventi:

  1. Generazione degli eventi. L'event streaming ha inizio quando i produttori (ad esempio microservizi, sistemi backend, ecosistemi IoT o API basate su eventi) inviano eventi alla piattaforma di event streaming.

  2. Pubblicazione degli eventi. Utilizzando delle librerie client, i produttori pubblicano l'evento sotto un argomento specifico all'interno della piattaforma, a quel punto diventa disponibile per i consumatori (ovvero per le app e i servizi che si registrano per quel dato argomento).

  3. Archiviazione degli eventi. La piattaforma memorizza gli eventi per un periodo predeterminato o fino al loro consumo, mentre i broker si occupano della gestione dei processi di archiviazione e recupero.

  4. Consumo degli eventi. I consumatori elaborano i dati degli eventi per avviare ulteriori eventi. A seconda del loro scopo o della loro configurazione, possono agire sugli eventi immediatamente dopo il loro arrivo (elaborazione in tempo reale), memorizzarli per un'elaborazione successiva o compilarli per una elaborazione in batch. I consumatori tengono inoltre traccia della loro posizione nella pipeline di dati utilizzando degli offset, in modo da poter riprendere l'elaborazione da dove era stata interrotta in caso di errore o riavvio.

  5. Recapito di eventi. Il broker di eventi distribuisce attivamente gli eventi a tutti i consumatori iscritti. Garantisce la consegna degli eventi secondo la semantica "almeno una volta", assicurando che ogni evento raggiunga la sua destinazione, anche se si verificano duplicati. Può anche includere la consegna "esattamente una volta", assicurando che ogni evento venga consegnato una sola volta, oppure un altro tipo di semantica.

  6. Elaborazione degli eventi. Una volta consumato e consegnato l'evento iniziale, i relativi dati vengono elaborati per diverse ulteriori azioni posteriori, tra cui la loro trasformazione, l'aggregazione e l'attivazione di flussi di lavoro complessi di elaborazione eventi (CEP).

Caratteristiche del'event streaming

Oltre allo streaming standard e all'elaborazione, le piattaforme di event streaming (come Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM® Event Automation) facilitano una serie di pratiche di event streaming che migliorano la funzionalità. IBM Event Automation, in particolare, utilizza la potenza di calcolo della piattaforma open source Apache Kafka per ottimizzare i workflow basati sugli eventi.

Elaborazione exactly-once

La semantica di consegna exactly-once assicura che ciascun evento in un dato stream venga elaborato esattamente una volta, una funzionalità essenziale per prevenire la duplicazione o la perdita degli eventi. La maggior parte dei sistemi di event streaming comprende meccanismi per fornire semantiche di tipo exactly-once, indipendentemente dal verificarsi di guasti in altre parti del sistema.

Backpressure

Quando i componenti a valle non riescono a tenere il passo con la frequenza degli eventi in entrata, il "backpressure" impedisce ai flussi di travolgere il sistema. Con il backpressure, che è un meccanismo di controllo del flusso di dati, i consumatori possono segnalare ai produttori di limitare o interrompere la produzione di dati quando non riescono ad elaborarli in modo sufficientemente veloce, o quando non riescono a tenere il passo con gli eventi in entrata.

Questo processo consente ai sistemi di gestire agevolmente i carichi di lavoro bufferizzando o eliminando gli eventi in entrata, invece di mandare fuori uso l'intero sistema, in modo che l'elaborazione degli eventi rimanga stabile anche quando i carichi di lavoro fluttuano.

Gruppi di consumatori

I consumatori di eventi spesso operano nell'ambito di un gruppo per velocizzare le operazioni di consumo. A ogni consumatore di un dato gruppo viene assegnato un sottoinsieme di partizioni da elaborare, consentendo la "parallelizzazione" del consumo e l'ottenimento di un migliore livello di efficienza. Se un consumatore all'interno del gruppo va fuori uso, oppure deve essere aggiunto o rimosso, la piattaforma può riassegnare dinamicamente le partizioni per mantenere l'equilibrio e la tolleranza ai guasti.

Filigranatura

L'event streaming si basa su una elaborazione dei dati entro un lasso di tempo estremamente breve e preciso. Il watermarking consente di tracciare i progressi (utilizzando il tempo degli eventi) nei sistemi di elaborazione dei flussi. Impone una soglia di completezza che indica quando il sistema può considerare i dati degli eventi completamente elaborati. La filigranatura può essere utile anche per garantire l'accuratezza di un'elaborazione temporalmente limitata e per riconciliare gli eventi che giungono nell'ordine errato.

Conservazione e compattazione dei dati

La maggior parte delle piattaforme di event streaming offre policy di conservazione dei dati personalizzabili, che consentono agli sviluppatori di controllare per quanto tempo gli eventi sono disponibili per il consumo. Tuttavia, la compattazione dei dati è un processo che rimuove i dati ridondanti o obsoleti dagli argomenti, mantenendo al minimo l'impronta dello storage e preservando i dati essenziali.

Vale la pena notare, ancora una volta, che le normali architetture di streaming separano i produttori, i broker e i consumatori di eventi, in modo che i componenti possano essere scalati e manutenuti in modo indipendente.

Casi d'uso dell'event streaming

L'event streaming è una tecnologia di eccezionale potenza, che consente alle organizzazioni di utilizzare i dati così come vengono generati, creando sistemi più reattivi e intelligenti. Con l'avvento dei processi decisionali basati sui dati, l'event streaming sta diventando una componente sempre più importante nelle moderne architetture software.

Pertanto, le tecnologie di event streaming prefigurano una serie di casi d'uso in tutti i settori di business:

Servizi di banking e finanziari

Gli istituti finanziari possono utilizzare i servizi di event streaming per elaborare i dati di mercato in tempo reale, consentendo ai sistemi di trading algoritmico di prendere decisioni in una frazione di secondo in base alle condizioni di mercato aggiornate. Le funzionalità di monitoraggio in tempo reale dell'event streaming aiutano anche questi istituti a identificare e gestire rapidamente i rischi di frode e di sicurezza.

Produzione industriale

L'event streaming può agevolare l'ottimizzazione della supply chain, consentendo ai produttori di tracciare i materiali e i prodotti mentre si spostano lungo la supply chain, in modo da identificare eventuali problemi e inefficienze di processo. Inoltre, trasmettendo i dati dai sensori IoT/IIoT posti sui macchinari, i manager possono prevedere quando e perché le apparecchiature potrebbero guastarsi ed eseguire operazioni di manutenzione preventiva o manutenzione predittiva per evitare tempi di inattività non pianificati.

Gaming e entertainment

Le piattaforme di gioco online utilizzano i servizi di event streaming per tenere traccia delle azioni dei giocatori e dei cambiamenti dello stato di gioco, che possono essere utilizzati per eseguire analytics, applicare politiche antitruffa e aumentare il coinvolgimento dei gamer. Le piattaforme di streaming possono utilizzare i dati degli eventi per fornire consigli personalizzati sui contenuti per gli utenti e creare un'esperienza del cliente su misura.

Trasporti e logistica

L'event streaming può essere utilizzato per tracciare la posizione e lo stato di un veicolo, consentendo il calcolo del percorso ideale in tempo reale in base alle condizioni del traffico, ai programmi di consegna e alle prestazioni del veicolo. Allo stesso modo, le aziende di logistica possono utilizzare i dati degli eventi provenienti da dispositivi di scansione e localizzatori GPS per fornire ai clienti aggiornamenti in tempo reale sullo stato delle consegne degli ordini.

Impiego nelle architetture basate su eventi e altri pattern

Oltre a settori specifici, l'event streaming può rivelarsi utile anche quando viene implementato in congiunzione ad altre tecnologie e architetture. Ad esempio, esso viene talvolta associato a pattern quali l'event sourcing e la segregazione delle responsabilità delle query di comando (Command query responsibility segregation, CQRS).

L'event sourcing è un pattern architettonico in cui le modifiche allo stato di un'app vengono archiviate come una sequenza di eventi. Utilizzato insieme agli stream di eventi, l'event sourcing consente al sistema di streaming di riprodurre questi eventi per ricostruire lo stato di un'entità in un dato momento, o per guidare l'azione di altri componenti del sistema.

In un pattern architettonico CQRS, il sistema è suddiviso in due diversi modelli: uno che gestisce i comandi (scrittura) e uno che gestisce le query (lettura). L'event streaming può essere utilizzato nel pattern CQRS per propagare in tempo reale le modifiche dal modello di scrittura al modello di lettura, consentendo l'integrazione asincrona tra i due modelli.

L'event streaming è inoltre una tecnologia fondamentale per la creazione di architetture basate sugli eventi.

Un'architettura basata sugli eventi consente ai componenti liberamente accoppiati di comunicare attraverso gli eventi. Invece di pubblicare flussi di eventi a un broker, pubblica un evento unico che un'altra app o servizio può utilizzare per eseguire azioni a sua volta. La potenza di elaborazione in-stream fornita dalle architetture basate sugli eventi,utilizzata insieme alle funzionalità di event streaming, può consentire alle aziende di rispondere ai dati in movimento e prendere decisioni rapide sulla base di tutti i dati attuali e storici.

Negli ultimi anni, i provider cloud (tra cui IBM Cloud) hanno iniziato a offrire i principi dell'event streaming come un servizio. L'event streaming come servizio rende più facile per le aziende adottare questa tecnologia senza dover gestire l'intera infrastruttura sottostante, ampliando ulteriormente i suoi casi d'uso.

Soluzioni correlate
IBM Event Automation

IBM Event Automation è una soluzione componibile per aiutare ad accelerare l'impegno basato sugli eventi del business, con funzionalità di distribuzione, rilevamento ed elaborazione degli eventi.

Esplora IBM Event Automation
Servizi di consulenza per l'automazione

Vai oltre la semplice automazione delle attività per gestire processi di alto profilo, rivolti ai clienti e in grado di generare entrate con adozione e scalabilità integrate.

Esplora i servizi di consulenza per l'automazione
Soluzioni AIOps

Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.

Esplora le soluzioni AIOps
Prossimi passi

Accelera il processo decisionale e le operazioni individuando nuove tendenze, minacce e opportunità.

 

Esplora IBM Event Automation Partecipa a un tour autoguidato