Che cos'è l'enterprise service bus?
L'enterprise service bus (ESB) è un modello di architettura software che supporta lo scambio di dati in tempo reale tra applicazioni diverse. Le grandi organizzazioni dispongono di più applicazioni che svolgono varie funzioni utilizzando modelli di dati, protocolli e restrizioni di sicurezza differenti. L'ESB semplifica l'integrazione delle applicazioni eseguendo operazioni come la trasformazione dei dati, la conversione dei protocolli e l'instradamento dei messaggi. Le applicazioni trasmettono i dati pertinenti all'ESB, che li converte e li inoltra ad altre applicazioni che ne hanno bisogno.
Quali sono i vantaggi di un enterprise service bus?
Il concetto di enterprise service bus (ESB) può standardizzare e semplificare la comunicazione, la messaggistica e l'integrazione tra i servizi all'interno di un'organizzazione. Di seguito sono illustrati alcuni vantaggi per le implementazioni dell'architettura ESB su scala ridotta.
Migliore integrazione delle applicazioni
Un ESB offre una piattaforma centrale per l'integrazione delle applicazioni aziendali. Le organizzazioni possono integrare in modo ottimale qualsiasi tipo di sistema e applicazione, a prescindere dalle tecnologie o dai protocolli sottostanti. Ciò semplifica la manutenzione, la gestione e il dimensionamento delle applicazioni da parte delle organizzazioni.
Maggiore efficienza degli sviluppatori
Utilizzando i servizi di comunicazione predefiniti forniti dall'ESB, gli sviluppatori possono creare applicazioni più rapidamente. I team condividono i costi dell'infrastruttura e forniscono server per l'uso combinato. Riducono le spese generali e i costi operativi migliorando allo stesso tempo l'efficienza complessiva. Un ESB può anche velocizzare il time-to-market e ridurre i costi di sviluppo.
Visibilità e controllo ottimizzati
Con un ESB, le organizzazioni possono monitorare il flusso di dati e servizi tra diverse applicazioni e identificare e risolvere rapidamente eventuali problemi. Ciò le aiuta a garantire che le applicazioni siano disponibili, affidabili e sicure.
Come funziona un enterprise service bus?
Un enterprise service bus (ESB) funziona secondo i principi dell'architettura orientata ai servizi (SOA).
La SOA è un metodo di sviluppo di software che utilizza componenti software denominati servizi per creare applicazioni aziendali. Ogni servizio fornisce una funzionalità aziendale e più servizi possono comunicare tra loro attraverso piattaforme e linguaggi diversi.
La piattaforma ESB fornisce servizi di comunicazione che le applicazioni utilizzano per interagire reciprocamente. Alcuni esempi sono la trasformazione dei messaggi, la trasformazione dei protocolli, l'instradamento e l'autenticazione.
Successivamente affronteremo i componenti chiave dell'architettura ESB.
Endpoint
In un'architettura ESB, gli endpoint possono essere considerati punti di ingresso o di uscita rispetto all'ESB.
In genere, ogni endpoint ha un indirizzo o un identificatore univoco. È possibile implementare gli endpoint utilizzando varie tecnologie, quali un'interfaccia di servizio Web, code di messaggi o server FTP. Gli endpoint possono inoltre elaborare diversi tipi di messaggio, come XML, JSON o dati binari.
La flessibilità dell'architettura a endpoint consente all'ESB di integrarsi con un'ampia gamma di sistemi e applicazioni.
Adattatore
Il componente adattatore negli strumenti ESB traduce i messaggi tra diversi formati e protocolli, in modo tale che le applicazioni software riceventi li possano utilizzare in modo corretto. Può inoltre fornire funzionalità come la registrazione dei messaggi, il monitoraggio, l'autenticazione e la gestione degli errori.
Bus
Il bus è il componente ESB principale per lo scambio di messaggi tra endpoint. Utilizza una serie di regole o policy basate su vari criteri come tipo di messaggio, contenuto o destinazione per instradare i messaggi.
È possibile definire le policy nella configurazione ESB per soddisfare i requisiti di processi aziendali complessi. Il bus utilizza una varietà di protocolli di comunicazione come HTTP, JMS e FTP per comunicare con gli endpoint.
Ecco come funziona:
- Il bus riceve il messaggio presso un endpoint
- Determina l'indirizzo degli endpoint di destinazione controllando le regole della policy aziendale
- Elabora il messaggio e lo invia all'endpoint di destinazione
Supponiamo ad esempio che il bus riceva un file XML da un'applicazione connessa all'endpoint A. Il bus determina che il file XML deve essere inviato agli endpoint B e C. L'endpoint B richiede dati JSON, mentre l'endpoint C richiede una funzione Put HTTP. L'adattatore converte il file XML in JSON e il bus lo invia all'endpoint B. Il bus esegue una richiesta HTTP con XML sull'endpoint C.
Quali sono i limiti dell'enterprise service bus?
L'architettura aziendale si è allontanata dall'enterprise service bus (ESB) a causa delle seguenti limitazioni.
Complessità
L'implementazione e la gestione di un ESB richiedono conoscenze tecniche specialistiche, perciò si tratta di un sistema complesso e costoso. I vincoli con i fornitori rendono difficile il passaggio a un'altra soluzione ESB e limitano le opzioni per l'integrazione di dati. I team incorrono in tempi di attesa prolungati, perché solo il team di gestione centrale dell'ESB può integrare nuove applicazioni aziendali.
Scalabilità
Il software ESB introduce una latenza aggiuntiva nella comunicazione a causa dell'aggiunta di livelli di astrazione ed elaborazione. Con l'aumentare del numero di endpoint e della mappatura dei servizi di comunicazione, l'ESB diventa un collo di bottiglia e influisce sulle prestazioni. Aumentano anche i costi di implementazione dell'alta disponibilità e del ripristino di emergenza per i server ESB.
Difficoltà di aggiornamento
Apportare miglioramenti a un'integrazione ESB può causare instabilità in altri componenti collegati e richiede test significativi prima degli aggiornamenti. Il finanziamento degli aggiornamenti dei progetti ESB richiede la collaborazione tra team, che può presentare ostacoli.
Quali tecnologie stanno sostituendo gli enterprise service bus?
Oggi, l'uso degli enterprise service bus (ESB) è limitato principalmente ai sistemi legacy che richiedono integrazioni complesse. Il modello architettonico ESB è stato sostituito dall'architettura a microservizi e altre tecnologie.
Un'architettura a microservizi è costituita da componenti software molto piccoli e completamente indipendenti, con protocolli di comunicazione specifici esposti attraverso API leggere. È essenzialmente compito degli utenti utilizzare il microservizio attraverso la relativa API, eliminando così la necessità di un ESB centralizzato.
Per saperne di più, leggi le informazioni sui microservizi e sulle API.
L'ascesa del cloud computing e dell'architettura a microservizi ha portato alla nascita di nuove tecnologie che sono spesso considerate alternative agli ESB. Di seguito ne trattiamo alcune.
Gateway API
I gateway API sono componenti leggeri che forniscono ai clienti un unico punto di accesso per accedere a più servizi. Vengono spesso utilizzati per la gestione delle API, l'applicazione delle misure di sicurezza e la gestione del traffico.
Mesh dei servizi
Un mesh di servizi è un livello di infrastruttura dedicato per la gestione delle comunicazioni da servizio a servizio all'interno di un'architettura a microservizi. Fornisce funzionalità quali rilevamento servizi, bilanciamento del carico e gestione del traffico.
Architettura basata su eventi
In un'architettura basata su eventi, i servizi comunicano attraverso la gestione degli eventi asincrona anziché richieste sincrone. Un evento è un cambiamento di stato o un aggiornamento, come quando si aggiunge un articolo al carrello in un sito di e-commerce. Gli eventi possono comunicare lo stato (l'articolo acquistato, il suo prezzo e un indirizzo di consegna) o fungere da identificatori (una notifica di spedizione dell'ordine).
Che cos'è un router di eventi?
Molte organizzazioni sono passate dagli enterprise service bus (ESB) ai router di eventi. Un router di eventi è una pipeline che riceve eventi. Mette in collegamento i componenti delle applicazioni in base agli event e in tal modo semplifica la creazione di applicazioni scalabili basate sugli eventi.
Le regole associate al router di eventi valutano gli eventi non appena arrivano. Ogni regola verifica se un evento corrisponde ai criteri della regola. Si associa una regola a un router di eventi specifico, pertanto la regola si applica solo agli eventi ricevuti da quel particolare router di eventi.
Un produttore pubblica un evento nel router di eventi. Il router di eventi filtra e valuta gli eventi non appena arrivano in base a regole preconfigurate e quindi li invia agli utenti. I servizi di produttore e consumatore vengono disaccoppiati, il che consente di dimensionarli, aggiornarli e implementarli in maniera indipendente.
In che modo AWS può supportare i requisiti di integrazione delle applicazioni?
Amazon Web Services (AWS) offre una suite di servizi di integrazione delle applicazioni, che consentono la comunicazione tra componenti disaccoppiati all'interno di microservizi, sistemi distribuiti e applicazioni serverless. Maggiori informazioni sono disponibili alla pagina Application Integration on AWS.
Ad esempio, è possibile soddisfare le proprie esigenze utilizzando questi servizi:
- Gateway Amazon API per creare, pubblicare, gestire, monitorare e proteggere le API su qualsiasi scala per carichi di lavoro e applicazioni Web serverless
- Amazon EventBridge per creare un router di eventi che colleghi i dati applicativi provenienti da applicazioni personali, software as a service (SaaS) e servizi AWS
- Amazon Simple Queue Service (Amazon SQS) per creare una coda di messaggi che invii, archivi e riceva messaggi tra i componenti delle applicazioni con qualsiasi volume
Inizia a integrare le applicazioni su AWS creando un account oggi stesso.
Passaggi successivi su AWS
Ottieni accesso istantaneo al Piano gratuito di AWS.