Con un ESB (enterprise service bus), è possibile aumentare al massimo la flessibilità di un'architettura di tipo SOA. I partecipanti ad un'interazione di servizio sono collegati all'ESB, invece che direttamente l'uno all'altro.
Quando il richiedente del servizio si collega all'ESB, l'ESB si occupa di consegnare, tramite messaggi, le richieste al fornitore di servizi che offre la funzione richiesta e QoS. L'ESB facilita le interazioni tra richiedente e fornitore ed indirizza i protocolli non corrispondenti, i modelli di interazione o le capacità del servizio. Un ESB può anche abilitare o potenziare il monitoraggio e la gestione. L'ESB fornisce funzioni di gestione e di virtualizzazione che implementano ed estendono le capacità principali dell'architettura di tipo SOA.
L'inserimento dell'ESB tra i partecipanti consente la modulazione delle loro interazioni tramite un costrutto logico denominato mediazione. Le mediazioni intervengono sui messaggi in esecuzione tra richiedenti e fornitori. Ad esempio, le mediazioni possono essere utilizzate per individuare servizi con caratteristiche specifiche di chi ha bisogno il richiedente o per risolvere le differenze di interfaccia tra richiedenti e fornitori. Per le interazioni complesse, le mediazioni possono essere collegate in maniera sequenziale.
Un enterprise service bus offre un'infrastruttura di comunicazione comune che può essere utilizzata per collegare i servizi e le relative funzioni aziendali rappresentate dagli stessi, senza che i programmatori debbano scrivere e mantenere una logica di connettività di tipo complesso.
Un enterprise service bus fornisce una modalità coerente e basata sugli standard per integrare funzioni aziendali che utilizzando standard IT differenti. Ciò consente l'integrazione delle funzioni aziendali che normalmente non potrebbero funzionare, come il collegamento delle applicazioni in settori separati o l'abilitazione delle applicazioni in aziende differenti per prendere parte alle interazioni del servizio.
Un enterprise service bus abilita funzioni aziendali per scambiare informazioni in formati differenti, con il bus che garantisce la corrispondenza del formato delle informazioni consegnate ad una funzione aziendale a quello richiesto da tale applicazione.
Un enterprise service bus supporta interazioni basate sugli eventi oltre allo scambio di messaggi per la gestione delle richieste di servizio.
L'enterprise service bus consente all'utente di concentrare la propria attenzione sulle attività principali invece che sull'IT. I servizi possono essere modificati o aggiunti in base alle proprie esigenze; ad esempio per adeguarsi ai cambiamenti dei requisiti aziendali, per aggiungere capacità di servizio aggiuntive o nuove capacità. Le modifiche possono essere apportate riconfigurando il bus, influendo in maniera minima o non influendo affatto sui servizi e sulle applicazioni esistenti che utilizzano il bus.