MuleSoft - Componenti principali e configurazione

Una delle capacità più importanti di Mule è che può eseguire instradamento, trasformazione ed elaborazione con i componenti, per questo motivo il file di configurazione dell'applicazione Mule che combina vari elementi è di dimensioni molto grandi.

Di seguito sono riportati i tipi di modelli di configurazione forniti da Mule:

  • Modello di servizio semplice
  • Bridge
  • Validator
  • Proxy HTTP
  • Proxy WS

Configurazione del componente

In Anypoint studio, possiamo seguire i passaggi seguenti per configurare un componente:

Step 1

Dobbiamo trascinare il componente che desideriamo utilizzare nella nostra applicazione Mule. Ad esempio, qui utilizziamo il componente listener HTTP come segue:

Step 2

Quindi, fare doppio clic sul componente per visualizzare la finestra di configurazione. Per il listener HTTP, è mostrato di seguito:

Step 3

Possiamo configurare il componente secondo il requisito del nostro progetto. Supponiamo, ad esempio, che abbiamo fatto per il componente listener HTTP:

I componenti principali sono uno degli elementi costitutivi importanti del flusso di lavoro nell'app Mule. La logica per l'elaborazione di un evento Mule è fornita da questi componenti principali. In Anypoint studio, per accedere a questi componenti principali, è possibile fare clic su Core da Mule Palette come mostrato di seguito -

Di seguito sono vari core components and their working in Mule 4 -

Eventi aziendali personalizzati

Questo componente principale viene utilizzato per la raccolta di informazioni sui flussi e sui processori di messaggi che gestiscono le transazioni aziendali nell'app Mule. In altre parole, possiamo utilizzare il componente Evento aziendale personalizzato per aggiungere quanto segue nel nostro flusso di lavoro:

  • Metadata
  • Indicatori chiave di prestazione (KPI)

Come aggiungere i KPI?

Di seguito sono riportati i passaggi per aggiungere KPI nel nostro flusso nell'app Mule:

Step 1 - Segui Mule Palette → Core → Components → Custom Business Event, per aggiungere il componente Evento aziendale personalizzato a un flusso di lavoro nella tua app Mule.

Step 2 - Fare clic sul componente per aprirlo.

Step 3 - Ora, dobbiamo fornire valori per Nome visualizzato e Nome evento.

Step 4 - Per acquisire informazioni dal payload del messaggio, aggiungi i KPI come segue:

  • Assegna un nome (chiave) al KPI ( tracking: elemento metadati ) e un valore. Il nome verrà utilizzato nell'interfaccia di ricerca di Runtime Manager.

  • Assegna un valore che può essere qualsiasi espressione di Mule.

Esempio

La tabella seguente è composta dall'elenco di KPI con nome e valore -

Nome Espressione / valore
Student RollNo # [payload ['RollNo']]
Nome dello studente # [payload ['Name']]

Valutazione dinamica

Questo componente principale viene utilizzato per selezionare dinamicamente uno script nell'app Mule. Possiamo anche usare lo script hardcore attraverso il componente Transform Message, ma l'uso del componente Dynamic Evaluate è un modo migliore. Questo componente principale funziona come segue:

  • In primo luogo, valuta un'espressione che dovrebbe risultare in un altro script.
  • Quindi valuta quello script per il risultato finale.

In questo modo, ci permette di selezionare dinamicamente lo script piuttosto che codificarlo.

Esempio

Di seguito è riportato un esempio di selezione di uno script dal database tramite un parametro di query Id e memorizzazione di tale script in una variabile denominata MyScript . Ora, il componente di valutazione dinamica accederà alla variabile per richiamare gli script in modo che possa aggiungere una variabile di nome daUName parametro di query.

Di seguito viene fornita la configurazione XML del flusso:

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

Lo script può utilizzare variabili di contesto come messaggio, payload, vars o attributi. Tuttavia, se desideri aggiungere una variabile di contesto personalizzata, devi fornire una serie di coppie chiave-valore.

Configurazione della valutazione dinamica

La tabella seguente fornisce un modo per configurare il componente di valutazione dinamica:

Campo Valore Descrizione Esempio
Espressione DataWeave espressione Specifica l'espressione da valutare nello script finale. espressione = "# [vars.generateOrderScript]"
Parametri DataWeave espressione Specifica le coppie chiave-valore. # [{joiner: 'and', id: payload.user.id}]

Componente di riferimento del flusso

Se desideri instradare l'evento Mule a un altro flusso o sotto-flusso e di nuovo all'interno della stessa app Mule, il componente di riferimento del flusso è l'opzione giusta.

Caratteristiche

Di seguito sono riportate le caratteristiche di questo componente principale:

  • Questo componente centrale ci consente di trattare l'intero flusso di riferimento come un singolo componente nel flusso di corrente.

  • Suddividi l'applicazione Mule in unità discrete e riutilizzabili. Ad esempio, un flusso elenca i file su base regolare. Potrebbe fare riferimento a un altro flusso che elabora l'output dell'operazione di elenco.

  • In questo modo, invece di aggiungere tutte le fasi di elaborazione, possiamo aggiungere riferimenti di flusso che puntano al flusso di elaborazione. Lo screenshot seguente mostra che il componente principale di riferimento del flusso punta verso un flusso secondario denominatoProcessFiles.

Lavorando

Il funzionamento del componente Flow Ref può essere compreso con l'aiuto del seguente diagramma:

Il diagramma mostra l'ordine di elaborazione nell'applicazione Mule quando un flusso fa riferimento a un altro flusso nella stessa applicazione. Quando il flusso di lavoro principale nell'applicazione Mule si è attivato, l'evento Mule percorre tutto ed esegue il flusso finché l'evento Mule non raggiunge il riferimento di flusso.

Dopo aver raggiunto Flow Reference, l'evento Mule esegue il flusso di riferimento dall'inizio alla fine. Una volta che l'evento Mule termina l'esecuzione del flusso di riferimento, torna al flusso principale.

Esempio

Per una migliore comprensione, let us use this component in Anypoint Studio. In questo esempio, stiamo portando il listener HTTP per OTTENERE un messaggio, come abbiamo fatto nel capitolo precedente. Quindi, possiamo trascinare e rilasciare il componente e configurare. Ma per questo esempio, dobbiamo aggiungere un componente di flusso secondario e impostare il componente Payload sotto quello, come mostrato di seguito -

Successivamente, dobbiamo configurare Set Payload, facendo doppio clic su di esso. Qui stiamo dando il valore, "Flusso secondario eseguito" come mostrato di seguito -

Una volta configurato correttamente il componente di flusso secondario, è necessario che il componente di riferimento del flusso venga impostato dopo Imposta carico utile del flusso principale, che possiamo trascinare e rilasciare dalla tavolozza Mule come mostrato di seguito -

Successivamente, durante la configurazione del componente di riferimento del flusso, è necessario scegliere Nome flusso nella scheda Generico come mostrato di seguito -

Ora salva ed esegui questa applicazione. Per verificarlo, vai su POSTINO e digitahttp:/localhost:8181/FirstAPP nella barra dell'URL e riceverai il messaggio Sub flow eseguito.

Componente logger

Il componente principale chiamato logger ci aiuta a monitorare ed eseguire il debug della nostra applicazione Mule registrando informazioni importanti come messaggi di errore, notifiche di stato, payload, ecc. In AnyPoint studio, vengono visualizzati nel Console.

Vantaggi

Di seguito sono riportati alcuni vantaggi del componente Logger:

  • Possiamo aggiungere questo componente principale ovunque nel flusso di lavoro.
  • Possiamo configurarlo per registrare una stringa specificata da noi.
  • Possiamo configurarlo sull'output di un'espressione DataWeave scritta da noi.
  • Possiamo anche configurarlo su qualsiasi combinazione di stringhe ed espressioni.

Esempio

L'esempio seguente visualizza il messaggio "Hello World" nel Set Payload in un browser e registra anche il messaggio.

Di seguito è riportata la configurazione XML del flusso nell'esempio precedente:

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

Componente del messaggio di trasferimento

Transform Message Component, chiamato anche componente Transfer, ci consente di convertire i dati di input in un nuovo formato di output.

Metodi per costruire la trasformazione

Possiamo costruire la nostra trasformazione con l'aiuto dei seguenti due metodi:

Drag-and-Drop Editor (Graphical View)- Questo è il primo e il più utilizzato metodo per costruire la nostra trasformazione. In questo metodo, possiamo usare il mappatore visivo di questo componente per trascinare e rilasciare gli elementi della struttura dei dati in entrata. Ad esempio, nel diagramma seguente, due visualizzazioni ad albero mostrano le strutture di metadati previste dell'input e dell'output. Le linee che collegano l'input al campo di output rappresentano la mappatura tra due viste ad albero.

Script View- La mappatura visiva di Transformation può essere rappresentata anche con l'aiuto di DataWeave, un linguaggio per il codice Mule. Possiamo eseguire la codifica per alcune trasformazioni avanzate come aggregazione, normalizzazione, raggruppamento, unione, partizionamento, rotazione e filtraggio. L'esempio è fornito di seguito:

Questo componente principale accetta fondamentalmente i metadati di input e output per una variabile, un attributo o un payload del messaggio. Possiamo fornire risorse specifiche per formato per quanto segue:

  • CSV
  • Schema
  • Schema di file flat
  • JSON
  • Classe di oggetti
  • Tipo semplice
  • Schema XML
  • Nome e tipo di colonna di Excel
  • Nome e tipo di colonna a larghezza fissa