My IBM Accedi
Cos'è l'event streaming?

Cos'è l'event streaming?

Esplora la soluzione di event streaming di IBM Iscriviti per ricevere gli aggiornamenti sull'AI
Illustrazione con collage di pittogrammi di ingranaggi, braccio robotico, telefono cellulare

 

Data di pubblicazione: 30 aprile 2024
Autori: Chrystal R. China, Michael Goodwin

Cos'è l'event streaming?

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 analitici 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 elaborai singoli punti dati man mano che emergono, in modo che il software all'interno dell'architettura possa interpretare e rispondere ai 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 apprendimento automatico 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, mediante il collegamento degli eventi con le rispettive marcature temporali e l'identificazione delle tendenze storiche.

Prenota una demo live

Scopri come IBM Event Automation può aiutarti a utilizzare al meglio gli eventi consentendo agli utenti business e IT di rilevare situazioni, agire in tempo reale, automatizzare le decisioni e massimizzare il potenziale di ricavo.

Contenuti correlati Iscriviti alla newsletter IBM
Cos'è un evento?

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 occorso 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 in genere include una chiave che lo identifica, o che identifica l'entità a cui appartiene, un valore che contiene i dati effettivi dell'evento, una marcatura temporale che riporta quando l'evento si è verificato o è stato registrato, e talvolta dei metadati sull'origine dati, sulla versione dello schema o su un altro attributo.

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 "invia" 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, le notifiche via e-mail o SMS vengono inviate a una delle due parti (o a entrambe) e, se necessario, vengono implementati protocolli di sicurezza e di prevenzione delle frodi.

Componenti fondamentali dell'event streaming

Componenti fondamentali dell'event streaming

Gli eventi sono, ovviamente, la componente centrale dell'event streaming; tuttavia, una serie di ulteriori componenti consente ai servizi di streaming di elaborare gli eventi con la stessa rapidità ed efficacia. Tra questi componenti figurano:

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 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?

Come funziona l'event streaming?

Data la proliferazione dei dati e il conseguente aumento dei picchi di traffico, l'event streaming è una componente essenziale delle moderne architetture dati, soprattutto in ambienti che richiedono capacità decisionali estremamente rapide o in organizzazioni che cercano di automatizzare le responsabilità decisionali.

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 recapita gli eventi a tutti i consumatori registrati. La semantica di consegna può includere una delivery "at least once" (dove la consegna è garantita ma può essere duplicata), "exactly once" (dove ogni evento viene consegnato una e una sola volta) o di altro tipo.

  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

Caratteristiche del'event streaming

Oltre allo streaming e all'elaborazione standard, le piattaforme di event streaming (come Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM Event Automation, che utilizza la potenza di elaborazione della piattaforma open source Apache Kafka) facilitano una serie di prassi di streaming che migliorano la funzionalità.

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. La filigranatura consente il monitoraggio dei progressi (utilizzando la marca temporale dell'evento) 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. La compattazione dei dati, tuttavia, è un processo che rimuove i dati ridondanti o obsoleti dagli argomenti, mantenendo minimo l'ingombro di archiviazione 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 catena di fornitura, in modo da identificare eventuali strozzature 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 sfruttano 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 analisi, applicare politiche anticheat e aumentare il coinvolgimento dei gamers. Le piattaforme di streaming possono sfruttare i dati degli eventi per fornire consigli personalizzati sui contenuti per gli utenti e creare un'esperienza 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 dei loro ordini.

Impiego nelle architetture basate su eventi e altri pattern

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 a componenti debolmente associati di comunicare tramite eventi, ma invece di pubblicare i flussi di eventi tramite un broker, essa pubblica un evento a scopo singolo che un'altra app o servizio può utilizzare per eseguire a sua volta determinate azioni. 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.

Prodotti correlati

Prodotti correlati

IBM Event Automation

IBM® Event Automation, una soluzione completamente componibile, consente alle imprese di accelerare i propri sforzi basato sugli eventi, ovunque si trovino lungo il loro percorso. Gli Event Streams, la gestione degli endpoint e le funzionalità di elaborazione degli eventi contribuiscono a creare le basi di un'architettura basata su eventi, per sbloccarne il valore.

Esplora IBM Event Automation

IBM Cloud Pak for Integration

IBM Cloud Pak for Integration utilizza la piattaforma di event streaming open source Apache Kafka di IBM® Event Streams per la creazione di applicazioni intelligenti in grado di reagire agli eventi nel momento in cui si verificano. Gestisci carichi di lavoro mission-critical grazie alla connettività di sistema potenziata, a un'implementazione ricca di attività e a un'esperienza di architettura event-driven.

Esplora IBM Cloud Pak for Integration
Reagisci agli eventi con IBM App Connect

Orchestra azioni successive per reagire immediatamente ai nuovi eventi. App Connect supporta le architetture basate su eventi e può servirsi dei meccanismi di polling per adattarsi a quelle di altro tipo. Configura i flussi per automatizzare le attività e applica una logica condizionale, così da semplificare il processo decisionale e rispondere alle mutevoli esigenze dei clienti.

Esplora IBM APP connect

Risorse

Risorse

Architettura basata sugli eventi vs. event streaming

Qual è la differenza, in che modo puoi trarne beneficio e qual è la scelta giusta per il tuo business?

Apache Kafka e Apache Flink: un'accoppiata open-source perfetta

L’elaborazione dei flussi è la chiave di volta per ottenere dati in tempo reale. Essa consente alla tua azienda di acquisire i flussi di dati continui man mano che vengono generati e di isolarli per l’analisi, consentendoti di stare al passo con i cambiamenti.

Come sfruttare l'architettura basata su eventi

Le organizzazioni che si orientano maggiormente verso un’architettura basata su eventi si differenziano meglio dai concorrenti, e questo aspetto va a incidere sui ricavi e sugli utili.

Scopri come la specifica AsyncAPI può descrivere e documentare gli argomenti di Kafka.

Elaborazione di eventi e AI in tempo reale

Sfruttando l’AI per l’elaborazione degli eventi in tempo reale, le aziende possono individuare i nessi tra eventi eterogenei per rilevare e reagire a nuove tendenze, minacce e opportunità.

Che cos'è la gestione dei dati?

La gestione dei dati è la pratica di inserire, elaborare, proteggere e memorizzare i dati di un’organizzazione, dove vengono poi utilizzati per prendere decisioni strategiche al fine di migliorare i risultati aziendali.

Fai il passo successivo

IBM Event Automation, una soluzione completamente componibile, consente alle imprese di accelerare l'impegno basato sugli eventi, ovunque si trovino lungo il percorso. Offre funzionalità di distribuzione, rilevamento ed elaborazione degli eventi in un'interfaccia intuitiva in modo che sia gli utenti aziendali che quelli IT possano acquisire informazioni fruibili e reagire in tempo reale.

Esplora l'automazione degli eventi Prenota una demo live