Accesso alle applicazioni abilitate WebSphere MQ come servizio Web

In questo scenario viene rappresentato un servizio Web che fornisce un'interfaccia a un'applicazione abilitata WebSphere MQ che utilizza MIME come dominio. Di seguito vengono forniti il flusso di messaggi e le relative strutture per tale scenario:

Nel diagramma viene illustrato l'invio e la ricezione dei messaggi da un flusso di messaggi mediante un client HTTP esterno. Il flusso di messaggi è composto da un nodo HTTPInput connesso a un nodo Compute denominato Compute1. Il nodo Compute viene connesso quindi a un nodo MQOutput. Il nodo MQOutput invia il messaggio a una coda utilizzata da un'applicazione esterna. L'applicazione invia un messaggio a un'altra coda. Il messaggio da una coda viene trasmesso a un nodo MQInput. Questo nodo è connesso a un altro nodo Compute denominato Compute2. Il nodo compute viene connesso a un nodo HTTPReply. Il messaggio di risposta viene inviato nuovamente al client HTTP.

Quando un messaggio MIME immette un flusso di messaggi il Content-Type principale del messaggio viene memorizzato nell'albero HTTPInputHeader e nell'albero logico dei messaggi MIME. Il broker memorizza inoltre una copia del Content-Type del messaggio come valore ContentType nell'albero secondario Proprietà. Nel diagramma riportato di seguito viene descritto l'albero dei messaggi dopo che il messaggio ha lasciato il nodo HTTPInput:

Nel diagramma viene descritto l'albero logico dei messaggi dopo che il messaggio ha lasciato il nodo HTTPInput. Il valore principale dell'albero viene denominato Root e dispone di tre elementi child. Questi sono, nell'ordine, Proprietà, HTTPInputHeader e MIME.

E' necessario che il primo nodo Compute, Compute1, aggiunga un'intestazione MQMD al messaggio e salvi il correlatore HTTP da utilizzare nel flusso di ritorno. E' possibile memorizzare il correlatore HTTP in un database o copiarlo nel contenuto del messaggio. Nel seguente esempio ESQL viene descritta la modalità di memorizzazione del correlatore in un contenuto del messaggio XML:
SET OutputRoot.XML.X.rid = CAST(InputLocalEnvironment.Destination.HTTP.RequestIdentifier AS CHARACTER); 
Nel diagramma riportato di seguito viene descritto l'albero dei messaggi dopo che ha lasciato Compute1:

Nel diagramma viene descritto l'albero logico dei messaggi dopo che il messaggio ha lasciato il primo nodo Compute. Il valore principale dell'albero viene denominato Root e dispone di quattro elementi child. Questi sono, nell'ordine, Proprietà, HTTPInputHeader, MQMD e MIME.

Se l'applicazione che riceve il messaggio MQ prevede che il messaggio sia in formato MIME, è necessario disporre di un albero MIME. E' possibile che venga fornito da Compute1 creando un nuovo albero MIME o modificando e propagando la struttura MIME esistente. Per modificare il Content-Type del messaggio, è necessario utilizzare la proprietà ContentType del broker. Quando la proprietà ContentType del broker viene modificata, la proprietà Content-Type nella struttura MIME viene aggiornata in modo automatico.

Quando il messaggio viene ricevuto dalla coda messaggi attraverso il nodo MQInput, è necessario che il secondo nodo Compute, Compute2, rimuova l'intestazione MQMD dal messaggio e ripristini il correlatore HTTP. Se il correlatore è stato copiato dal contenuto del messaggio mediante Compute1 come descritto sopra, Compute2 è in grado di ripristinare il correlatore con l'ESQL seguente:
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(InputRoot.XML.X.rid AS BLOB); 
E' inoltre possibile che Compute2 imposti un valore HTTPReplyHeader esplicito.

Se il dominio di output è MIME, è necessario creare un albero MIME per emettere il messaggio. Compute2 crea un messaggio MIME nuovo oppure modifica e propaga il messaggio MIME di input come richiesto per creare il messaggio di output. Nel diagramma riportato di seguito viene descritto l'albero dei messaggi dopo che ha attraversato Compute2:

Nel diagramma viene descritto l'albero logico dei messaggi dopo che il messaggio ha lasciato il secondo nodo Compute. Il valore principale dell'albero viene denominato Root e dispone di quattro elementi child. Questi sono, nell'ordine, Proprietà, HTTPInputHeader, HTTPReplyHeader e MIME.

Sono possibile molte variazioni di questo scenario. Ad esempio, è possibile creare un flusso singolo utilizzando un nodo MQGet anziché il nodo MQInput senza la necessità di salvare il correlatore HTTP. Il risultato sarà tuttavia potenzialmente meno scalabile. In esempio Richiesta/Replica coordinate sono disponibili ulteriori informazioni sull'utilizzo del nodo MQGet.

Concetti correlati
Manipolazione dei messaggi nel dominio MIME
Dettagli della struttura MIME
Messaggi MIME
Attività correlate
Sviluppo di ESQL
Sviluppo di Java
Riferimenti correlati
Creazione di un servizio Web con trasporto HTTP
Creazione di un servizio Web con trasporto WebSphere MQ
Richiamo di un servizio Web di un'applicazione abilitata WebSphere MQ
Nodo HTTPReply
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac30040_