Jump to section

Cos'è l'architettura guidata dagli eventi?

Copia URL

L'architettura guidata dagli eventi è uno stile architetturale software che funge da modello per la progettazione delle applicazioni. Un sistema guidato dagli eventi è pensato per acquisire, comunicare ed elaborare gli eventi che si verificano tra i servizi disaccoppiati. Ciò significa che i sistemi possono rimanere asincroni ma continuare a condividere le informazioni e svolgere le attività. 

Molte delle progettazioni di applicazioni moderne sono architetture guidate da eventi, come ad esempio i framework di interazione con il cliente che hanno bisogno di utilizzare i dati dei clienti in tempo reale. Le applicazioni guidate dagli eventi possono essere create in qualsiasi linguaggio di programmazione perché l'essere "event driven" indica un approccio alla programmazione e non un linguaggio. L'architettura guidata dagli eventi consente un livello minimo di accoppiamento, ed è pertanto l'opzione ideale per le architetture applicative moderne e distribuite.

Un'architettura guidata dagli eventi viene definita a basso livello di accoppiamento perché chi crea un evento (noto come producer eventi) non conosce né il destinatario dell'evento (noto come consumer eventi) né le conseguenze che derivano dal verificarsi dell'evento.

 

Un evento registra qualsiasi avvenimento o cambiamento di stato nell'hardware o nel software di sistema. Va distinto dalla notifica di un evento, che è un messaggio inviato dal sistema per avvisare un'altra parte del sistema del verificarsi di un evento.

La sorgente di un evento può risalire da input esterni o interni. Gli eventi possono essere generati da un utente, per esempio con un clic del mouse o un tasto della tastiera, da una sorgente esterna (come un sensore), oppure dal sistema, per esempio con il caricamento di un programma.

Il disaccoppiamento e il basso accoppiamento sono due concetti distinti ma correlati, relativi all'ambito dell'architettura dei software e dei sistemi guidati dagli eventi.

Il disaccoppiamento è la pratica di eliminare o ridurre al minimo le dipendenze dirette tra i componenti separati di un sistema. Nel caso delle applicazioni guidate dagli eventi, per ottenere il disaccoppiamento è necessario assicurarsi che i componenti che generano gli eventi inviino i relativi dati senza fare riferimento a nessun componente consumatore in particolare. Questa disconnessione consente ai componenti di essere indipendenti e, in generale, conferisce maggiore flessibilità al sistema.

Il basso accoppiamento è una forma specifica di disaccoppiamento che punta a ridurre il grado di interdipendenza tra i componenti senza separarli del tutto. In un sistema con basso accoppiamento, i componenti possono interagire, ma senza che si crei nessuna forma di dipendenza tra loro.

Entrambi i sistemi promuovono la flessibilità e l'indipendenza, due qualità alla base dei sistemi agili e scalabili.

Un'architettura guidata dagli eventi è composta da producer eventi (publisher) e consumer eventi (titolari di una sottoscrizione). Un producer eventi rileva un evento e lo rappresenta sotto forma di messaggio ma, a causa del disaccoppiamento, non conosce il consumer o il risultato dell'evento.

Dopo che un evento viene rilevato, il producer eventi lo trasferisce ai consumer eventi tramite canali appositi, dove una piattaforma elabora l'evento in modo asincrono. I consumer eventi devono essere informati quando si verifica un evento, e possono elaborarlo o subirne solo le conseguenze.

La piattaforma che elabora l'evento prepara la risposta corretta e invia l'attività downstream ai consumer giusti. È al termine di questo processo che si rivela il risultato di un evento.

Apache Kafka è una piattaforma distribuita per il data streaming molto utilizzata per l'elaborazione degli eventi. È in grado di gestire in tempo reale la pubblicazione, l'archiviazione e l'elaborazione dei flussi di eventi, nonché la sottoscrizione agli stessi. Apache Kafka può essere utilizzato in tutti quegli scenari di utilizzo in cui produttività e scalabilità elevate sono fondamentali. Inoltre, la sua capacità di limitare al minimo il ricorso a integrazioni point to point per la condivisione di dati in determinate applicazioni riduce la latenza a millisecondi.

Esistono anche altri componenti di gestione eventi middleware disponibili sul mercato che possono essere utilizzati come piattaforme di elaborazione degli eventi.

Un'architettura guidata dagli eventi può essere basata su un modello pub/sub o di flusso di eventi.

Modello pub/sub
Si tratta di un'infrastruttura di messaggistica basata sulle sottoscrizioni a un flusso di eventi. Con questo modello, un evento che si verifica o che viene pubblicato viene inviato ai titolari della sottoscrizione che devono essere informati.

Modello flusso di eventi
In questo caso, gli eventi vengono scritti in un registro. I consumer eventi non effettuano una sottoscrizione al flusso di eventi, ma possono leggere qualsiasi parte del flusso e accedervi in qualunque momento.

Di seguito sono riportate alcune tipologie di flussi di eventi:

  • L'elaborazione di flussi di eventi usa una piattaforma di data streaming, come Apache Kafka, per inserire gli eventi ed elaborarne o trasformarne il flusso. 
  • L'elaborazione semplice degli eventi si verifica quando un evento avvia immediatamente un'azione nel consumer eventi.

L'elaborazione complessa degli eventi viene eseguita da un consumer eventi, che elabora in ordine una serie di eventi per rilevare dei modelli. Questa tipologia di elaborazione può essere utilizzata per rilevare modelli significativi nei flussi di eventi.

Un'architettura guidata dagli eventi può aiutare le organizzazioni a realizzare un sistema flessibile che consenta loro di trasformarsi e prendere decisioni in tempo reale, ottimizzando così i flussi di lavoro. La consapevolezza in tempo reale consente di prendere decisioni di business, sia in modo manuale che automatizzato, utilizzando tutti i dati disponibili sullo stato attuale dei tuoi sistemi.

Gli eventi vengono acquisiti mentre si verificano dalle sorgenti, come i dispositivi Internet of Things (IoT), le applicazioni e le reti. In questo modo i producer eventi e i consumer eventi possono condividere il proprio stato e le informazioni sulla risposta in tempo reale.

Le organizzazioni possono aggiungere un'architettura guidata dagli eventi ai propri sistemi e applicazioni per migliorarne la reattività e la scalabilità e accedere ai dati e al contesto necessari per ottimizzare il processo decisionale.

L'architettura guida dagli eventi offre il vantaggio del disaccoppiamento, con cui i produttori e i consumatori di dati o servizi non sono costretti a comunicare in modo diretto. Ciò conferisce al sistema maggiore flessibilità e scalabilità. Di conseguenza, l'integrazione di nuovi componenti risulta più semplice, la tolleranza agli errori aumenta e l'efficienza complessiva del sistema viene ottimizzata.

Red Hat offre gli strumenti integrati e i software di gestione in grado di connettere rapidamente tecnologie e microservizi esistenti in ambienti di cloud ibrido e supportare l'architettura guidata dagli eventi con l'integrazione agile.

Red Hat OpenShift, insieme agli strumenti di Red Hat Application Foundations, aiuta le organizzazioni ad aumentare la produttività degli sviluppatori, automatizzare le pipeline CI/CD e ad anticipare le attività di sicurezza in tutto il ciclo di sviluppo. Di conseguenza, la sicurezza della catena di distribuzione del software viene rafforzata grazie all'automazione delle pratiche DevSecOps e all'implementazione della sicurezza delle applicazioni durante il runtime.

OpenShift Dev Spaces offre un ambiente di sviluppo più rapido, coerente e affidabile, che consente di centralizzare il controllo delle operazioni IT. Coniugando le funzionalità di OpenShift, come Serverless e Service Mesh, a quelle di Red Hat Application Services, come i framework e i runtime applicativi, la gestione delle API, il data streaming, i servizi basati su eventi e così via, gli sviluppatori possono sfruttare l'accesso self service a linguaggi e strumenti e migliorare così la propria produttività. Red Hat consente inoltre di accedere a un vasto ecosistema di soluzioni dei partner compatibili con OpenShift, offrendo agli sviluppatori la possibilità di continuare a utilizzare i loro strumenti preferiti.

Keep reading

Articolo

Cosa si intende per integrazione?

Cos'è l'integrazione? Scopri cos'è, come introdurla e i vantaggi che offre se abbinata all'open source.

Articolo

Come funziona Apache Kafka?

Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale.

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Scopri di più sull'integrazione

Prodotti

Set completo di tecnologie per l'integrazione e la messaggistica.

Accelera la distribuzione e lo sviluppo applicativo.

Trasforma il tuo business e soddisfa le richieste di un mercato in costante evoluzione.

Semplifica l'esperienza nel cloud ibrido e riduci i costi operativi e la complessità della distribuzione di applicazioni cloud native.

Scopri come progettare. distribuire ed eseguire le applicazioni in maniera sicura in ambienti cloud ibridi su larga scala.

Risorse

Ebook

Creare un'infrastruttura agile per dare vita a un'azienda adattiva

Formazione

Corso di formazione gratuito

Red Hat Agile Integration Technical Overview