Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'Enterprise Services Bus Mule

Analizziamo le funzionalità dell'Enterprise Services Bus Mule e il suo ruolo nell'integrazione e nell'orchestrazione di componenti eterogenee per la Service Oriented Architecture. Installiamo Anypoint Studio per disporre di un ambiente visuale per lo sviluppo con Mule.
Analizziamo le funzionalità dell'Enterprise Services Bus Mule e il suo ruolo nell'integrazione e nell'orchestrazione di componenti eterogenee per la Service Oriented Architecture. Installiamo Anypoint Studio per disporre di un ambiente visuale per lo sviluppo con Mule.
Link copiato negli appunti

In un precedente articolo si è discusso di Apache Camel come motore di routing, questa volta invece parleremo di Mule che è un Enterprise Service Bus

Un ESB è un modello di architettura software con finalità di integrazione tra componenti eterogenei e può essere utilizzato laddove ci siano esigenze di integrazione ed orchestrazione di componenti, come ad esempio la Service Oriented Architecture (SOA); un ESB utilizza gli Enterprise Integration Patterns (EIP) per implementare attività di integrazione e orchestrazione, cioè patterns di integrazione pre-esistenti, utilizzati anche da Apache Camel.

Una architettura SOA prevede una serie di componenti, come servizi fortemente disaccoppiati, con la caratteristica che una funzionalità può essere associata ad un singolo servizio o ad un workflow di servizi (cioè più servizi eseguiti in maniera sequenziale). Sotto quest'ottica è ovvia la necessità di un servizio che si occupi di integrare ed orchestrare i diversi servizi: un ESB.

Ricapitolando, Mule ESB:

  • è una piattaforma di integrazione completa che è sia un Service Container che un Service Mediation;
  • essendo un Service Container prevede affidabilità (reliability), alta disponibilità (high availability), scalabilità, sicurezza e transazionalità;
  • ha un ambiente visuale di sviluppo (Anypoint Studio) che prevede funzionalità automatizzate come il Data Mapping.

E' quindi chiaro che un ESB non è un semplice motore di routing, ma rappresenta un ambiente completo con funzionalità aggiuntive tipiche di una soluzione enterprise.

Casi d'uso di Mule ESB

Tipici casi di impiego di un motore di un ESB sono rappresentati da ambienti eterogenei e non, intendendo architetture software che prevedono componenti o strutture che devono interagire tra di loro.

Per eterogenee si pensi ad una architettura che impiega esclusivamente dei Web services tutti scritti in Java e magari delle code Jms come strutture; in caso contrario possiamo pensare anche a Web services scritti in linguaggi differenti o magari classi in linguaggio C, ma la sostanza cambia poco: un ESB è un bus sul quale viaggiano messaggi da e verso entità per consentire una facile integrazione tra di esse.

Da notare che un bus non è solo una struttura di intermediazione (quindi non applicativa) ma permette di intervenire anche nella logica del software rendendolo una struttura anche applicativa (come nel caso in cui un messaggio deve essere modificato).

Installazione di Anypoint Studio

Per installare Anypoint Studio sarà necessario innanzitutto scaricarlo dal sito ufficiale al seguente link, fatto questo si potrà avviare l'eseguibile:

Figura 1. Schermata di Anypoint Studio.
Schermata di Anypoint Studio

Prima di procedere fissiamo un progetto di esempio come per esempio quello di creare un Web service JAX-WS con un metodo che riceve l'identificativo del cliente e restituisce il codice bancario criptato di quest'ultimo o null in caso di errori o assenza dal database; in caso di risposta positiva va effettuata la logica di gestione e inviando il messaggio sulla coda Jms "queueSuccess" altrimenti non va eseguita nessuna logica e il messaggio inviato sulla coda jms ">queueError" per la tracciatura"

Creiamo quindi un nuovo progetto MyFirstMuleExample:

Figura 2. L'area di lavoro.
L'area di lavoro

L'area 1 rappresenta il piano dove posizionare gli elementi presenti nel tab scorrevole a destra, gli elementi contenuti sono invece di diverse tipologie:

Elemento Descrizione
Connectors Componenti per l'interfacciamento ad entità.
Scopes Componenti legati allo scope come flow e sub-flow.
Components Componenti come classi Java o Groovy.
Transformers Per trasformare il messaggio.
Filters Per il filtro dei dati.
Flow Control Per il controllo del flusso.
Error Handling Componenti per gestire le eccezioni.
Miscellaneous Componenti che non rientrano nelle precedenti categorie.

Nel prossimo articolo verrà analizzata la procedura necessaria per la creazione del Web services.

Ti consigliamo anche