I componenti di flusso della mediazione agiscono sui flussi di messaggi fra i
componenti del servizio. Le capacità di un componente di mediazione vengono implementate dalle primitive di
mediazione, che attivano tipi di implementazione di servizio standard.
Un componente di flusso della mediazione dispone di uno o più flussi. Ad esempio, uno per le richieste e l'altro per le
risposte.
WebSphere ESB supporta
una serie di primitive di mediazione fornita,
che implementa le capability di mediazione standard per i moduli di
mediazione distribuiti in
WebSphere ESB. Se sono necessarie capacità di mediazione specifiche, è possibile sviluppare le proprie primitive di mediazione personalizzate.
Una primitiva di mediazione definisce un'operazione "in entrata" che elabora o gestisce
messaggi rappresentati da SMO (service message objects/oggetti dei messaggi di servizio). Una primitiva di mediazione
definisce anche operazioni "in uscita" che inviano messaggi ad un altro componente o
modulo.
Figura 1. Modulo di mediazione contenente tre primitive di mediazione
È possibile utilizzare WebSphere Integration Developer per configurare le primitive di mediazione e impostare le loro proprietà. Alcune di queste proprietà possono essere rese visibili all'amministratore di runtime promuovendole. Qualsiasi proprietà di primitiva
di mediazione possa essere promossa, può essere anche una proprietà
dinamica. Una proprietà dinamica può essere sovrascritta, durante il
runtime, mediante un file di politica.
WebSphere Integration Developer consente, inoltre,
di modellare graficamente ed assemblare i componenti di flusso della mediazione
dalle primitive di mediazione,
ed assemblare i moduli di mediazione dai componenti di flusso della mediazione. La console di gestione
fa riferimento ai moduli di mediazione chiamandoli moduli SCA.
WebSphere Integration Developer inoltre consente la
definizione di flussi secondari nei moduli o nelle relative librerie dipendenti.
Un flusso secondario può contenere qualsiasi primitiva di mediazione tranne Policy
Resolution. Un flusso secondario viene richiamato da un flusso di richiesta o di risposta,
oppure da un altro flusso secondario che utilizza la primitiva di mediazione
Subflow. Le proprietà promosse dalle primitive di mediazione in un flusso secondario sono
esposte come proprietà nelle primitive di mediazione Subflow. Queste, in seguito, possono essere promosse di nuovo, finché non raggiungono il livello di modulo, e a quel
punto possono essere modificate dall'amministratore del runtime.
Primitive di mediazione supportate
La seguente serie
di
primitive di mediazione è supportata
da
WebSphere ESB:
- Business Object Map (associazione oggetti di business)
- Trasforma i messaggi.
- Definisce le conversioni dei messaggi utilizzando un'associazione oggetti di business, che può essere riutilizzata.
- Consente di definire le conversioni dei messaggi graficamente, utilizzando l'editor di associazioni oggetti di business.
- Può modificare il contenuto di un messaggio.
- Può convertire un tipo di messaggio di input in un altro tipo di messaggio di input.
- Custom Mediation (mediazione personalizzata)
- Consente di implementare la propria logica di mediazione in codice Java™. La primitiva Mediazione personalizzata unisce la flessibilità di una primitiva di mediazione definita dall'utente con la semplicità di una primitiva di mediazione predefinita. È possibile creare modelli di indirizzamento e conversioni complesse nei modi seguenti:
- Scrivendo codice Java.
- Creando le proprie proprietà.
- Aggiungendo nuovi terminali.
È possibile richiamare un servizio da una primitiva Mediazione personalizzata, ma la primitiva di mediazione Richiamo di servizio è progettata per richiamare i servizi e fornisce funzionalità aggiuntive, come la ripetizione dei tentativi.
- Data Handler (gestore dati)
- Consente di trasformare una parte di un messaggio. Viene utilizzato per convertire
un elemento di un messaggio da un formato fisico ad una struttura logica, oppure
da una struttura logica ad un formato fisico. L'utilizzo principale della
primitiva è di convertire un formato fisico, ad esempio una stringa di testo in un oggetto
messaggio di testo JMS, in una struttura di oggetti di business logica, e
viceversa. Questa mediazione viene comunemente utilizzata per:
- Trasformare una sezione del messaggio di input da una struttura definita ad
un'altra - un esempio potrebbe essere quando l'SMO include un valore di stringa
delimitato da una virgola e si desidera analizzarlo in un oggetto di business
specifico.
- Modificare il tipo di messaggio – un esempio potrebbe essere quando un'esportazione JMS
è stata configurata per utilizzare un bind di dati con tipo base JMS e all'interno del
modulo di mediazione lo sviluppatore dell'integrazione decide che il contenuto deve
essere dilatato in una specifica struttura di BO.
- Database Lookup (ricerca del database)
- Modifica i messaggi, usando le informazioni del database fornito dall'utente.
- È necessario configurare un database, origine dati e le impostazioni di qualsiasi autenticazione server
per il la primitiva di mediazione Ricerca nel database da utilizzare. Utilizzare la console di gestione per maggiore facilità.
- La primitiva di mediazione Ricerca nel database può eseguire solamente la lettura da una
tabella.
- La colonna chiave specificata deve contenere un valore univoco.
- I dati nelle colonne dei valori devono essere un tipo di schema XML semplice o
uno schema XML che estende un tipo di schema XML semplice.
- Endpoint Lookup (ricerca dell'endpoint)
- Consente l'indirizzamento dinamico delle richieste, cercando gli endpoint di servizio
in un repository.
- Le informazioni sull'endpoint di servizio vengono richiamate da un WSRR (WebSphere Service
Registry and Repository). Il registro WSRR può essere locale o
remoto.
- È possibile effettuare modifiche di registro dalla console di gestione di WSSR.
- WebSphere ESB deve sapere quale registro utilizzare, pertanto è necessario creare definizioni d'accesso WSRR utilizzando la console di gestione di WebSphere ESB.
- Event Emitter
- Migliora il monitoraggio permettendo all'utente di inviare gli eventi dall'interno di un componente del flusso di mediazione.
- È possibile sospendere l'azione di mediazione deselezionando la casella di spunta.
- È poi possibile visualizzare
gli eventi dell'Event emitter utilizzando il browser CBE (Common Base Event) su WebSphere ESB.
- Devono essere inviati eventi soltanto in punti significativi del flusso di mediazione, per motivi legati alle prestazioni.
- È possibile definire le parti di messaggio contenute nell'evento.
- Gli eventi vengono inviati in formato CBE (Common Base Events) e inoltrati ad un server
CEI (Common Event Infrastructure).
- Per utilizzare in modo completo le informazioni su Event emitter, i consumer
devono comprendere la struttura dei CBE (Common Base Event). CBE (Common Base Event) dispone di uno schema generale, ma questo non si applica ai dati specifici dell'applicazione, contenuti negli elementi dati estesi. Per adattare gli elementi dati estesi, gli strumenti di WebSphere Integration Developer
generano un file di definizione del catalogo eventi CEI per le primitive di mediazione dell'Event emitter configurato.
I file di definizione del catalogo eventi sono risorse di esportazione fornite per aiutare l'utente; non si utilizzano
tramite WebSphere Integration Developer o
tramite il runtime WebSphere ESB.
È necessario fare riferimento ai file di definizione del catalogo eventi durante la creazione di applicazioni
per l'utilizzo degli eventi dell'event emitter.
- È possibile specificare altre operazioni di monitoraggio da WebSphere ESB. Ad esempio, è possibile eseguire il monitoraggio di eventi che devono essere emessi dalle importazioni ed esportazioni.
- Fail (errore)
- Arresta un percorso particolare nel flusso e genera un'eccezione.
- Fan In
- Aiuta ad aggregare (combinare) i messaggi.
- Può essere utilizzata solo in congiunzione con la primitiva di mediazione Fan Out.
- Assieme, le primitive di mediazione Fan Out e Fan In consentono l'aggregazione dei dati in un solo messaggio in uscita.
- La primitiva di mediazione Fan In riceve messaggi fino al raggiungimento di un punto di decisione, quindi emette un solo messaggio di output.
- Il contesto condiviso deve essere utilizzato per contenere i dati di aggregazione.
- Fan Out
- Aiuta ad aggregare (combinare) e dividere i messaggi.
- Assieme, le primitive di mediazione Fan Out e Fan In consentono l'aggregazione dei dati in un solo messaggio in uscita.
- In modalità di iterazione, la primitiva di mediazione Fan Out consente l'iterazione attraverso un singolo messaggio di input che contiene un elemento ripetuto.
Per ciascuna occorrenza dell'elemento ripetuto viene inviato un messaggio.
- Il contesto condiviso deve essere utilizzato per contenere i dati di aggregazione.
- HTTP Header Setter
- Fornisce un meccanismo per gestire le intestazioni nei messaggi HTTP.
- È possibile creare, impostare, copiare o eliminare le intestazioni dei messaggi HTTP.
- È possibile impostare più azioni per modificare più intestazioni HTTP.
- MQ Header Setter
- Fornisce un meccanismo per gestire le intestazioni nei messaggi MQ.
- È possibile creare, impostare, copiare o eliminare le intestazioni dei messaggi MQ.
- È possibile impostare più azioni per modificare più intestazioni MQ.
- SOAP Header Setter
- Fornisce un meccanismo per gestire le intestazioni nei messaggi SOAP.
- È possibile creare, impostare, copiare o eliminare le intestazioni dei messaggi SOAP.
- È possibile impostare più azioni per modificare più intestazioni SOAP.
- Message Element Setter (programma di impostazione elemento messaggio)
- Fornisce un meccanismo semplice per l'impostazione del contenuto dei
messaggi.
- Può modificare, aggiungere o eliminare elementi di messaggio.
- Non modifica il tipo di messaggio.
- I dati nelle colonne dei valori devono essere un tipo di schema XML semplice o
uno schema XML che estende un tipo di schema XML semplice.
- Message Filter (filtro di messaggi)
- Instrada messaggi su percorsi differenti, sulla base del loro contenuto.
- È possibile sospendere l'azione di mediazione deselezionando la casella di spunta.
- Message Logger (logger messaggi)
- Registra i messaggi in un database relazionale o tramite il proprio logger
personalizzato. I messaggi vengono memorizzati come XML, pertanto
i dati possono essere elaborati successivamente da applicazioni abilitate per XML.
- È possibile sospendere l'azione di mediazione deselezionando la casella di spunta.
- Lo schema del database razionale (struttura delle tabelle) è definito da IBM.
- Per impostazione predefinita, la primitiva di mediazione Message Logger usa il database Common. Il runtime associa l'origine dati a jdbc/mediation/messageLog nel database Common.
- È possibile impostare classi di implementazione gestore per personalizzare il comportamento
del logger personalizzato. Facoltativamente, è possibile fornire classi di implementazione programma di formattazione,
classi di implementazione filtro o entrambe per personalizzare il comportamento del
logger personalizzato.
- Policy Resolution (risoluzione della politica)
- Consente la configurazione dinamica delle richieste, cercando gli endpoint di servizio
ed i file di politica associati, in un repository.
- È possibile utilizzare un file di politica per sovrascrivere dinamicamente le proprietà promosse
di altre primitive di mediazione.
- Le informazioni sull'endpoint di servizio e quelle sulla politica vengono richiamate da un
WSRR (WebSphere Service Registry
and Repository). Il registro WSRR può essere locale o remoto.
- È possibile effettuare modifiche di registro dalla console di gestione di WSSR.
- WebSphere ESB deve sapere quale registro utilizzare, pertanto è necessario creare definizioni d'accesso WSRR utilizzando la console di gestione di WebSphere ESB.
- Service Invoke (richiamo di servizio)
- Richiama un servizio dall'interno di un flusso di mediazione, invece di attendere il termine del flusso di mediazione e utilizzare il meccanismo di callout.
- Se il servizio restituisce un errore, è possibile provare nuovamente lo stesso servizio oppure richiamare un altro servizio.
- La primitiva di mediazione Richiamo di servizio è una primitiva di mediazione versatile che può essere utilizzata da sola per semplici chiamate a servizi oppure assieme ad altre primitive di mediazione per mediazioni più complesse.
- Set Message Type (impostazione tipo di messaggio)
- Durante lo sviluppo delle applicazioni, consente di considerare i campi di messaggio a tipo generico come se fossero a tipo specifico. Un campo è a tipo generico se può contenere più di un tipo di dati. Un campo è a tipo specifico se sono noti il suo tipo e la sua struttura interna.
- Al runtime, la primitiva di mediazione Impostazione tipo di messaggio consente di verificare che il contenuto del messaggio corrisponda ai tipi di dati previsti.
- Stop (arresto)
- Arresta un percorso particolare nel flusso, senza generare un'eccezione.
- Type Filter (filtro del tipo)
- Consente di indirizzare i messaggi in un percorso diverso di un flusso,
in base al relativo tipo.
- XSL Transformation (trasformazione XSL)
- Trasforma i messaggi.
- Consente di eseguire trasformazioni XSL (Extensible Stylesheet Language).
- I messaggi vengono trasformati utilizzando una trasformazione XSLT 1.0. La trasformazione agisce su una serializzazione XML del
messaggio.