Il modello di esecuzione WebSphere Message Broker è
il sistema utilizzato per eseguire flussi di messaggi attraverso una serie di nodi.
Quando viene inizializzato un gruppo di esecuzione, le LIL appropriate vengono messe a disposizione del
runtime. Viene avviata l'elaborazione di runtime del gruppo di esecuzione e viene prodotto un thread di configurazione dedicato. Nell'ambiente di esecuzione del flusso di messaggi, tale flusso è
thread-safe. E' possibile eseguire contemporaneamente flussi di messaggi su molti thread,
senza dover considerare questioni di serializzazione. I nodi definiti dall'utente che vengono
implementati non devono compromettere tale modello di thread. Tenere presenti i seguenti
punti:
- Un messaggio di input inviato ad un flusso di messaggi viene elaborato solo dal thread
che lo riceve. Durante l'elaborazione del messaggio non ha luogo alcun cambiamento di contesto o di thread.
- Le strutture di dati a cui accedono i flussi di messaggi sono visibili solo ad un unico
thread e tali strutture di dati esistono solo per la durata dell'elaborazione del
messaggio.
- Una sola istanza di un flusso di messaggi viene condivisa tra tutti i thread nel
pool di thread del flusso di messaggi. Ciò è correlato al funzionamento di un nodo flusso di messaggi in quanto non ha uno stato.
- I requisiti di memoria di un gruppo di esecuzione non sono eccessivamente interessati
dai flussi di messaggi in esecuzione su più thread OS.
- L'ambiente di esecuzione del flusso di messaggi è concettualmente simile alla programmazione procedurale. I nodi che vengono inseriti in un flusso di
messaggi sono come routine secondarie richiamate utilizzando un'interfaccia di richiamo della funzione. Tuttavia, invece di un'interfaccia di "richiamo-restituzione",
in cui i parametri vengono trasferiti nella forma di dati di messaggi di input,
in WebSphere Message Broker al modello di esecuzione viene fatto riferimento
come un modello di "propagazione e restituzione".
- Un flusso di messaggi WebSphere Message Broker è inerentemente
"thread-safe" e i flussi di messaggi possono essere eseguiti contemporaneamente su più di un thread
Se, ad esempio, si sta utilizzando un nodo definito dell'utente per elaborare i messaggi e si sta anche utilizzando un programma di analisi definito dall'utente per analizzare i messaggi in entrata,
sia il nodo che il programma di analisi conterranno funzioni di
implementazione. Il broker richiama tali funzioni di implementazione, o callback,
quando si verificano determinati eventi.
Quando un messaggio di input viene ricevuto nel broker in tale nodo di input, viene inviato
al nodo definito dall'utente.
- Relativamente ai nodi C, il broker richiama la funzione cniEvaluate per il
nodo definito dall'utente.
Fare riferimento a cniCreateNodeContext per informazioni sulla
funzione cniEvaluate.
- Relativamente ai nodi Java, il broker richiama il metodo evaluate che è
implementato dal nodo definito dall'utente.
Se il nodo desidera effettuare una query nel messaggio per decidere
cosa fare con questo, richiama una funzione di utilità C o un metodo Java, a seconda del
linguaggio in cui il nodo è scritto. Il broker quindi richiama il programma di analisi definito
dall'utente su una delle relative funzioni di implementazione. Ciò indica al programma di analisi di avviare
la creazione della struttura ad albero del programma di analisi WebSphere Message Broker. Il programma
di analisi inizia la creazione della struttura al albero richiamando le funzioni di utilità che creano gli elementi in tale
struttura. Il programma di analisi può essere richiamato più volte dal broker,
invece di una volta sola.