MuleSoft - Elaboratore di messaggi e componenti di script

I moduli di scripting facilitano agli utenti l'utilizzo del linguaggio di scripting in Mule. In parole semplici, il modulo di scripting può scambiare logica personalizzata scritta in linguaggio di scripting. Gli script possono essere utilizzati come implementazioni o trasformatori. Possono essere usati per la valutazione delle espressioni, cioè per controllare l'instradamento dei messaggi.

Mule ha i seguenti linguaggi di scripting supportati:

  • Groovy
  • Python
  • JavaScript
  • Ruby

Come installare i moduli di scripting?

In realtà, Anypoint Studio viene fornito con i moduli di scripting. Se non trovi il modulo in Mule Palette, puoi aggiungerlo usando+Add Module. Dopo l'aggiunta, possiamo utilizzare le operazioni del modulo di scripting nella nostra applicazione Mule.

Esempio di implementazione

Come discusso, dobbiamo trascinare e rilasciare il modulo nella tela per creare lo spazio di lavoro e usarlo nella nostra applicazione. Di seguito è riportato un esempio:

Sappiamo già come configurare il componente Listener HTTP; quindi discuteremo della configurazione dei moduli di scripting. Dobbiamo seguire i passaggi scritti di seguito per configurare il modulo di scripting -

Step 1

Cerca il modulo Scripting da Mule Palette e trascina il file EXECUTE funzionamento del modulo di scripting nel flusso come mostrato sopra.

Step 2

Ora, apri la scheda Esegui configurazione facendo doppio clic sulla stessa.

Step 3

Sotto il General scheda, dobbiamo fornire il codice nel file Code text window come mostrato di seguito -

Step 4

Infine, dobbiamo scegliere il file Enginedal componente di esecuzione. L'elenco dei motori è il seguente:

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

L'XML dell'esempio di esecuzione precedente nell'editor XML di configurazione è il seguente:

<scripting:execute engine="jython" doc:name = "Script">
   <scripting:code>
      def factorial(n):
         if n == 0: return 1
      return n * factorial(n-1)
      result = factorial(10)
   </scripting:code>
</scripting:execute>

Fonti dei messaggi

Mule 4 ha un modello semplificato rispetto al messaggio Mule 3 che semplifica il lavoro con i dati in modo coerente tra i connettori senza sovrascrivere le informazioni. Nel modello di messaggio Mule 4, ogni evento Mule consiste di due cose:a message and variables associated with it.

Un messaggio di Mule ha un payload e i suoi attributi, dove l'attributo è principalmente metadati come la dimensione del file.

E una variabile contiene le informazioni utente arbitrarie come il risultato dell'operazione, i valori ausiliari, ecc.

In entrata

Le proprietà in entrata in Mule 3 ora diventano Attributi in Mule 4. Come sappiamo che le proprietà in entrata memorizzano informazioni aggiuntive sul payload ottenuto tramite un'origine del messaggio, ma ora, in Mule 4, questo è fatto con l'aiuto degli attributi. Gli attributi hanno i seguenti vantaggi:

  • Con l'aiuto degli attributi, possiamo facilmente vedere quali dati sono disponibili, perché gli attributi sono fortemente tipizzati.

  • Possiamo accedere facilmente alle informazioni contenute negli attributi.

Di seguito è riportato l'esempio di un messaggio tipico in Mule 4:

In uscita

Le proprietà in uscita in Mule 3 devono essere specificate esplicitamente dai connettori e dai trasporti di Mule per poter inviare dati aggiuntivi. Ma in Mule 4, ognuno di questi può essere impostato separatamente, utilizzando un'espressione DataWeave per ciascuno di essi. Non produce alcun effetto collaterale nel flusso principale.

Ad esempio, l'espressione DataWeave di seguito eseguirà una richiesta HTTP e genererà intestazioni e parametri di query senza la necessità di impostare le proprietà del messaggio. Questo è mostrato nel codice sottostante -

<http:request path = "M_issue" config-ref="http" method = "GET">
   <http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
   <http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>

Elaboratore di messaggi

Quando Mule riceve un messaggio da un'origine del messaggio, inizia il lavoro dell'elaboratore di messaggi. Il Mule utilizza uno o più processori di messaggi per elaborare il messaggio attraverso un flusso. Il compito principale dell'elaboratore di messaggi è trasformare, filtrare, arricchire ed elaborare il messaggio mentre passa attraverso il flusso Mule.

Classificazione di Mule Processor

Di seguito sono riportate le categorie di Mule Processor, in base alle funzioni:

  • Connectors- Questi processori di messaggi inviano e ricevono dati. Inoltre collegano i dati a origini dati esterne tramite protocolli standard o API di terze parti.

  • Components - Questi processori di messaggi sono di natura flessibile ed eseguono la logica di business implementata in vari linguaggi come Java, JavaScript, Groovy, Python o Ruby.

  • Filters - Filtrano i messaggi e consentono solo a messaggi specifici di continuare a essere elaborati in un flusso, in base a criteri specifici.

  • Routers - Questo elaboratore di messaggi viene utilizzato per controllare il flusso di messaggi da instradare, risequenziare o dividere.

  • Scopes - Ehi fondamentalmente racchiudi frammenti di codice allo scopo di definire un comportamento a grana fine all'interno di un flusso.

  • Transformers - Il ruolo dei trasformatori è convertire il tipo di payload del messaggio e il formato dei dati per facilitare la comunicazione tra i sistemi.

  • Business Events - Fondamentalmente acquisiscono i dati associati agli indicatori chiave di prestazione.

  • Exception strategies - Questi processori di messaggi gestiscono errori di qualsiasi tipo che si verificano durante l'elaborazione dei messaggi.