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.
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.
Esistono due modelli di base per la trasmissione di eventi in un'architettura basata sugli eventi.
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).
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:
Rispetto all'architettura dell'applicazione di richiesta/risposta, l'architettura basata sugli eventi offre numerosi vantaggi e opportunità per sviluppatori e organizzazioni:
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.
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:
Inizia oggi stesso con un account IBM Cloud®.
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.
Crea, modernizza e gestisci le applicazioni in modo sicuro su qualsiasi cloud con fiducia.
Migliore velocità e qualità dell'applicazione - ecco la genialità dell'integrazione basata sull'AI.
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 è una piattaforma analitica avanzata utilizzata per acquisire, analizzare e correlare le informazioni da diverse origini dati in tempo reale.