MuleSoft - Introduzione a Mule ESB
ESB sta per Enterprise Service Busche è fondamentalmente uno strumento middleware per l'integrazione di varie applicazioni insieme su un'infrastruttura simile a un bus. Fondamentalmente, è un'architettura progettata per fornire un mezzo uniforme per spostare il lavoro tra applicazioni integrate. In questo modo, con l'aiuto dell'architettura ESB, possiamo collegare diverse applicazioni tramite un bus di comunicazione e consentire loro di comunicare senza dipendere l'una dall'altra.
Implementazione di ESB
L'obiettivo principale dell'architettura ESB è disaccoppiare i sistemi l'uno dall'altro e consentire loro di comunicare in modo stabile e controllabile. L'implementazione di ESB può essere eseguita con l'aiuto di‘Bus’ e ‘Adapter’ nel modo seguente:
Il concetto di "bus", che si ottiene tramite un server di messaggistica come JMS o AMQP, viene utilizzato per separare le diverse applicazioni l'una dall'altra.
Il concetto di "adattatore", responsabile della comunicazione con l'applicazione di backend e della trasformazione dei dati dal formato dell'applicazione al formato del bus, viene utilizzato tra le applicazioni e il bus.
I dati o il messaggio che passa da un'applicazione all'altra tramite il bus è in un formato canonico, il che significa che ci sarebbe un formato di messaggio coerente.
L'adattatore può anche eseguire altre attività come sicurezza, monitoraggio, gestione degli errori e gestione del routing dei messaggi.
Principi guida di ESB
Possiamo chiamare questi principi come principi fondamentali di integrazione. Sono i seguenti:
Orchestration - Integrazione di due o più servizi per ottenere la sincronizzazione tra dati e processo.
Transformation - Trasformazione dei dati dal formato canonico al formato specifico dell'applicazione.
Transportation - Gestione della negoziazione del protocollo tra formati come FTP, HTTP, JMS, ecc.
Mediation - Fornire più interfacce per supportare più versioni di un servizio.
Non-functional consistency - Fornire meccanismo per la gestione delle transazioni e anche la sicurezza.
Necessità di ESB
L'architettura ESB ci consente di integrare diverse applicazioni in cui ciascuna applicazione può comunicare attraverso di essa. Di seguito sono riportate alcune linee guida su quando utilizzare ESB:
Integrating two or more applications - L'uso dell'architettura ESB è vantaggioso quando è necessario integrare due o più servizi o applicazioni.
Integration of more applications in future - Supponiamo di voler aggiungere più servizi o applicazioni in futuro, allora può essere fatto facilmente con l'aiuto dell'architettura ESB.
Using multiple protocols - Nel caso in cui dovessimo utilizzare più protocolli come HTTP, FTP, JMS ecc., ESB è l'opzione giusta.
Message routing - Possiamo utilizzare ESB nel caso in cui richiediamo il routing dei messaggi in base al contenuto del messaggio e ad altri parametri simili.
Composition and consumption - ESB può essere utilizzato se abbiamo bisogno di pubblicare servizi per la composizione e il consumo.
Integrazione P2P vs. integrazione ESB
Con l'aumento del numero di applicazioni, una grande domanda davanti agli sviluppatori era come collegare le diverse applicazioni? La situazione è stata gestita codificando manualmente una connessione tra varie applicazioni. Questo è chiamatopoint-to-point integration.
Rigidityè lo svantaggio più ovvio dell'integrazione punto a punto. La complessità aumenta con l'aumentare del numero di connessioni e interfacce. Gli svantaggi dell'integrazione P-2-P ci portano all'integrazione ESB.
ESB è un approccio più flessibile all'integrazione delle applicazioni. Incapsula ed espone ogni funzionalità dell'applicazione come un insieme di capacità riutilizzabili discrete. Nessuna applicazione si integra direttamente con altre, invece si integrano tramite un ESB come mostrato di seguito -
Per la gestione dell'integrazione, ESB ha i seguenti due componenti:
Service Registry- Mule ESB dispone di registro / repository dei servizi in cui vengono pubblicati e registrati tutti i servizi esposti nell'ESB. Agisce come un punto di scoperta da cui è possibile utilizzare i servizi e le capacità di altre applicazioni.
Centralized Administration - Come suggerisce il nome, fornisce una visione dei flussi transazionali delle prestazioni delle interazioni che si verificano all'interno dell'ESB.
ESB Functionality- L'abbreviazione VETRO viene generalmente utilizzata per riassumere la funzionalità di ESB. È il seguente:
V(Convalida) - Come suggerisce il nome, convalida la convalida dello schema. Richiede un parser di convalida e uno schema aggiornato. Un esempio è un documento XML che conferma uno schema aggiornato.
E(Arricchisci) - Aggiunge dati aggiuntivi a un messaggio. Lo scopo è rendere il messaggio più significativo e utile per un servizio di destinazione.
T(Trasforma) - Converte la struttura dei dati in un formato canonico o da un formato canonico. Esempi sono la conversione di data / ora, valuta, ecc.
R(Routing): instraderà il messaggio e fungerà da gatekeeper dell'endpoint di un servizio.
O(Operate): il compito principale di questa funzione è richiamare il servizio di destinazione o interagire con l'app di destinazione. Corrono nel backend.
Il modello VETRO fornisce una flessibilità complessiva all'integrazione e garantisce che solo i dati coerenti e convalidati vengano instradati in tutto l'ESB.
Cos'è Mule ESB?
Mule ESB è un bus di servizi aziendali (ESB) basato su Java leggero e altamente scalabile e una piattaforma di integrazione fornita da MuleSoft. Mule ESB consente allo sviluppatore di connettere le applicazioni facilmente e rapidamente. Indipendentemente dalle varie tecnologie utilizzate dalle applicazioni, Mule ESB consente una facile integrazione delle applicazioni, consentendo loro di scambiare dati. Mule ESB ha le seguenti due edizioni:
- Edizione comunitaria
- Enterprise Edition
Un vantaggio di Mule ESB è che possiamo facilmente passare dalla community Mule ESB all'azienda Mule ESB perché entrambe le edizioni sono costruite su una base di codice comune.
Caratteristiche e capacità di Mule ESB
Le seguenti caratteristiche sono possedute da Mule ESB:
- Ha un semplice design grafico drag-and-drop.
- Mule ESB è in grado di mappare e trasformare visivamente i dati.
- L'utente può ottenere la struttura di centinaia di connettori certificati pre-costruiti.
- Monitoraggio e amministrazione centralizzati.
- Fornisce solide capacità di applicazione della sicurezza aziendale.
- Fornisce la funzione di gestione delle API.
- È disponibile un gateway dati sicuro per la connettività cloud / on-premise.
- Fornisce il registro dei servizi in cui vengono pubblicati e registrati tutti i servizi esposti nell'ESB.
- Gli utenti possono avere il controllo tramite una console di gestione basata sul web.
- Il debug rapido può essere eseguito utilizzando l'analizzatore del flusso di servizio.