Architettura basata sugli eventi
Integrazione
Sfondo nero e blu
Architettura basata sugli eventi

Scopri come funziona l'architettura basata sugli eventi e come contribuisce a migliorare flessibilità, affidabilità, capacità e prestazioni delle applicazioni native del cloud.


Cos'è l'architettura basata sugli eventi?

L'architettura basata sugli eventi è un modello di integrazione costruito intorno alla pubblicazione, acquisizione e archiviazione (o persistenza) di eventi. In particolare, quando un'applicazione o un servizio esegue un'azione o subisce una modifica di cui un'altra applicazione o servizio potrebbe voler essere a conoscenza, pubblica un evento - un record di tale azione o modifica - che un'altra applicazione o servizio può utilizzare ed elaborare per eseguire a sua volta una o più azioni.

L'architettura basata sugli eventi consente un legame debole tra applicazioni e servizi connessi - possono comunicare tra loro pubblicando e consumando eventi senza conoscere nulla l'uno dell'altro tranne il formato dell'evento. Questo modello offre vantaggi significativi rispetto a un'architettura di richiesta/risposta (o modello di integrazione), in cui un'applicazione o un servizio deve richiedere informazioni specifiche da un'altra applicazione o servizio specifico che attende la richiesta specifica.

L'architettura basata sugli eventi massimizza il potenziale delle applicazioni native del cloud e consente potenti tecnologie applicative, come l'analisi in tempo reale e il supporto decisionale.


Come funziona l'architettura basata sugli eventi?

In un'architettura basata sugli eventi, le applicazioni agiscono come produttori di eventi o consumer di eventi (e spesso come entrambi).

Un produttore di eventi trasmette un evento - sotto forma di messaggio - a un broker o a qualche altra forma di router di eventi, dove viene mantenuto l'ordine cronologico dell'evento rispetto ad altri eventi. Un consumer di eventi acquisisce il messaggio - in tempo reale (mentre si verifica) o in qualsiasi altro momento desidera - ed elabora il messaggio per attivare un'altra azione, flusso di lavoro o evento a sé stante.

In un semplice esempio, un servizio bancario potrebbe trasmettere un evento di "deposito", che un altro servizio della banca consumerebbe e a cui risponderebbe scrivendo un deposito sull'estratto conto del cliente. Ma le integrazioni basate sugli eventi possono anche attivare risposte in tempo reale basate su analisi complesse di enormi volumi di dati, ad esempio quando l'"evento" di un cliente che fa clic su un prodotto su un sito di e-commerce genera consigli istantanei sui prodotti basati sugli acquisti di altri clienti.


Modelli di messaggistica dell'architettura basata sugli eventi

Esistono due modelli di base per la trasmissione di eventi in un'architettura basata sugli eventi.

Messaggistica di eventi o pubblicazione/sottoscrizione
 

Nel modello di messaggistica degli eventi o di pubblicazione/sottoscrizione, i consumer di eventi si iscrivono a una o più classi di messaggi pubblicati dai produttori di eventi. Quando un produttore di eventi pubblica un evento, il messaggio viene inviato direttamente a tutti i sottoscrittori che desiderano utilizzarlo.

In genere, un broker gestisce la trasmissione di messaggi di evento tra publisher e sottoscrittori. Il broker riceve ogni messaggio di evento, lo traduce se necessario, ne mantiene l'ordine rispetto agli altri messaggi, li rende disponibili agli abbonati per il consumo, quindi li elimina una volta consumati (in modo che non possano essere nuovamente consumati).

Streaming degli eventi
 

Nel modello di streaming di eventi, i produttori di eventi pubblicano flussi di eventi su un broker. I consumer di eventi si iscrivono ai flussi, ma invece di ricevere e consumare ogni evento non appena viene pubblicato, possono entrare in ogni flusso in qualsiasi momento e consumare solo gli eventi che desiderano consumare. La differenza fondamentale qui è che gli eventi vengono conservati dal broker anche dopo che i consumer li hanno ricevuti.

Una piattaforma di streaming di dati, come Apache Kafka, gestisce la registrazione e la trasmissione di enormi volumi di eventi ad una velocità molto elevata (letteralmente trilioni di record di eventi al giorno, in tempo reale, senza ritardi nelle prestazioni). Una piattaforma di streaming offre alcune caratteristiche di cui un broker di messaggi non dispone:

  • Persistenza degli eventi: Poiché i consumer possono consumare gli eventi in qualsiasi momento dopo la loro pubblicazione, i record di streaming degli eventi sono persistenti - vengono mantenuti per un periodo di tempo configurabile, da frazioni di secondo a un tempo infinito. Ciò consente alle applicazioni del flusso di eventi di elaborare dati cronologici e dati in tempo reale.
  • Elaborazione di eventi complessi: Come la messaggistica di eventi, il flusso di eventi può essere utilizzato per l'elaborazione di eventi semplici, in cui ogni evento pubblicato attiva la trasmissione e l'elaborazione da parte di uno o più consumer specifici. Tuttavia, può essere utilizzato anche per l'elaborazione di eventi complessi, in cui i consumer di eventi elaborano intere serie di eventi ed eseguono azioni in base al risultato.

Vantaggi dell'architettura basata sugli eventi

Rispetto all'architettura dell'applicazione di richiesta/risposta,  l'architettura basata sugli eventi offre numerosi vantaggi e opportunità per sviluppatori e organizzazioni:

  • Potente risposta e analisi in tempo reale: Lo streaming di eventi consente applicazioni che rispondono alle mutevoli situazioni aziendali nel momento in cui si verificano e fanno previsioni e decisioni basate su tutti i dati attuali e cronologici disponibili in tempo reale. Ciò offre vantaggi in qualsiasi numero di aree - dall'elaborazione di flussi di dati generati da una miriade di dispositivi IoT, alla previsione e all'eliminazione immediata delle minacce alla sicurezza, all'automazione delle supply chain per un'efficienza ottimale.
  • Tolleranza ai guasti, scalabilità, manutenzione semplificata, versatilità e altri vantaggi del legame debole: Le applicazioni e i componenti in un articolo basato su eventi non dipendono dalla reciproca disponibilità; possono essere aggiornati, testati e implementati in modo indipendente senza interruzione del servizio e, quando un componente non funziona, è possibile portare online un backup. La persistenza degli eventi consente la "riproduzione" di eventi passati, che può aiutare a recuperare dati o funzionalità in caso di interruzione del consumo di eventi. I componenti possono essere scalati facilmente e indipendentemente l'uno dall'altro attraverso la rete e gli sviluppatori possono rivedere o arricchire applicazioni e sistemi aggiungendo e rimuovendo produttori e consumer di eventi.
  • Messaggistica asincrona: L'architettura basata sugli eventi consente ai componenti di comunicare in modo asincrono - i produttori pubblicano messaggi di eventi, secondo la propria pianificazione, senza attendere che i consumer li ricevano (o addirittura senza sapere se i consumer li hanno ricevuti). Oltre a semplificare l'integrazione, ciò migliora l'esperienza dell'applicazione per gli utenti. Un utente che completa un'attività in un componente può passare all'attività successiva senza attendere, indipendentemente da eventuali integrazioni downstream tra quel componente e gli altri nel sistema.

 


Architettura basata sugli eventi e microservizi

Nei microservizi - un'architettura applicativa nativa del cloud fondamentale - le applicazioni sono assemblate da servizi con un legame debole, distribuibili in modo indipendente. I principali vantaggi dei microservizi sono essenzialmente i vantaggi del legame debole - facilità di manutenzione, flessibilità di distribuzione, scalabilità indipendente e tolleranza ai guasti.

Non sorprende che l'architettura basata sugli eventi sia ampiamente considerata una best practice per le implementazioni di microservizi. I microservizi possono comunicare tra loro utilizzando le API REST. Ma REST, un modello di integrazione richiesta/risposta, mina molti dei vantaggi dell'architettura di microservizi a legame debole forzando un'integrazione sincrona e strettamente accoppiata tra i  microservizi.


Architettura basata sugli eventi e IBM

L'implementazione di un'architettura basata sugli eventi è fondamentale per le organizzazioni che desiderano automatizzare e ottimizzare i flussi di lavoro delle applicazioni e supportare i processi aziendali. Può anche essere una parte importante della modernizzazione delle applicazioni di successo poiché la richiesta di migliori esperienze dei clienti e più applicazioni ha un impatto sulle attività aziendali e IT.

Quando si tratta di soddisfare tali esigenze, il passaggio a una maggiore automazione può rendere tutto più semplice. Idealmente, una tale mossa dovrebbe iniziare con piccoli progetti di successo misurabili, che puoi quindi ridimensionare e ottimizzare per altri processi e in altre parti della tua organizzazione.

Collaborando con IBM, avrai accesso alle funzionalità di automazione basate sull'AI, inclusi dei flussi di lavoro predefiniti per contribuire ad accelerare l'innovazione rendendo ogni processo più intelligente.

Fai un passo avanti:

  • Scopri IBM Cloud Pak® for Integration, che si basa sulle funzionalità principali di IBM Event Streams, una piattaforma di streaming di eventi che semplifica l'automazione dei carichi di lavoro mission-critical; può essere distribuito come software contenitore certificato in esecuzione su OpenShift Container Platform o una soluzione Apache Kafka-as-a-service completamente gestita.
  • Scopri di più su Cloud IBM Pak for Data, una piattaforma di AI e dati multicloud completamente integrata che include IBM® Db2® Event Store, un database ottimizzato per la memoria e abilitato per l'AI, progettato per acquisire e analizzare rapidamente i dati in streaming per le applicazioni basate sugli eventi.
  • Prova IBM Streams, un altro strumento di analisi dei flussi in grado di elaborare e analizzare in modo efficiente enormi volumi e varietà di flussi di dati da diverse fonti con bassa latenza. È disponibile on-premise, su IBM Cloud IBM ed è incluso con IBM Cloud Pak for Data.
  • Esegui la nostra valutazione della maturità dell'integrazione per valutare il tuo livello di maturità dell'integrazione attraverso le dimensioni critiche e scopri le azioni che puoi intraprendere per arrivare al livello successivo.
  • Scarica la nostra guida all'integrazione agile che esplora i vantaggi di un approccio basato su container, decentralizzato e allineato ai microservizi per l'integrazione delle soluzioni.
  • Leggi i cinque "elementi fondamentali" per il successo dell'automazione (link esterno a ibm.com) in questo report di ricerca HFS.

Inizia oggi stesso con un account IBM Cloud®.


Soluzioni correlate

Automazione con tecnologia AI

Dai flussi di lavoro di business alle operazioni IT, la nostra automazione con tecnologia AI può aiutarti. Scopri come si stanno trasformando le aziende leader.


Modernizza le applicazioni per l'interoperabilità

Crea, modernizza e gestisci le applicazioni in modo sicuro su qualsiasi cloud con fiducia.


IBM Cloud Pak for Integration

Migliore velocità e qualità dell'applicazione - ecco la genialità dell'integrazione basata sull'AI.


IBM Cloud Pak for Data

Cloud IBM Pak for Data è una piattaforma di dati aperta ed estensibile che fornisce una struttura di dati per rendere tutti i dati disponibili per l'AI e l'analytics, su qualsiasi cloud.


IBM Streams

IBM Streams è una piattaforma analitica avanzata utilizzata per acquisire, analizzare e correlare le informazioni da diverse origini dati in tempo reale.