Uso de nodos SCA en WebSphere Message Broker V7

Los nuevos nodos SCA de WebSphere Message Broker V7 facilitan muchísimo la interoperabilidad entre WebSphere Message Broker V7 y WebSphere Process Server V6.2. Este artículo le enseña a desarrollar una aplicación Message Broker que se comporte como un punto final SCA y a llamar un punto final SCA en WebSphere Process Server usando nodos SCA.

Introducción

Los nodos SCA simplifican la interoperabilidad entre IBM® WebSphere® Process Server V6.2 (en adelante “Process Server”) y IBM WebSphere Message Broker (en adelante “Message Broker”). Estos nodos soportan tanto escenarios de salida (el flujo de Message Broker invoca a un punto final SCA de Process Server) como escenarios de entranda (el flujo de Message Broker se comporta como un punto final SCA y es invocado por un proceso de negocios alojado en Process Server). La integración de aplicaciones se realiza usando integración ascendente (exportación de SCA SCDL desde Message Broker para ser usada por un proceso de negocios en Process Server) e integración descendente (importación de SCA SCDL desde Process Server para activar la creación de flujos de mensajes en Message Broker).

Este artículo presenta los nuevos nodos SCA y describe las técnicas y los asistentes de kits de herramientas que se pueden emplear para desarrollar una solución SOA usando Message Broker y Process Server. Este artículo está dirigido a arquitectos, diseñadores de flujos de mensajes y desarrolladores.

¿Qué es SCA?

La Arquitectura de Componentes de Servicio (SCA) proporciona un modelo de programación para la construcción de aplicaciones y sistemas basados en SOA. SCA se basa en la idea de brindar la función de negocios como una serie de servicios, los cuales se ensamblan para crear soluciones que respondan a una necesidad de negocios en particular. Beneficios clave de SCA:

  • Los componentes se integran con otros sin necesidad de conocer su forma de implementación (acoplamiento holgado).
  • Los componentes pueden reemplazarse fácilmente por otros componentes (flexibilidad).
  • Los servicios se invocan fácilmente tanto sincrónica como asincrónicamente.
  • Los componentes pueden integrarse fácilmente para formar aplicaciones compuestas (productividad).

Con SCA, los servicios se empaquetan como componentes con una interfaz. Se permiten distintos tipos de implementaciones para un mismo componente, pero el mecanismo de invocación de un componente de servicios es el mismo en los variados tipos de implementación. Además, los servicios pueden asociarse mediante enlaces que permiten realizar invocaciones usando diferentes protocolos como mensajería JMS o servicios web, los cuales son independientes de la implementación de servicios real.

Figura 1. Componente SCA
Componente SCA

La Figura 1 muestra las partes que conforman un componente SCA. Un componente es una instancia de una implementación que fue configurada por un archivo de configuración. El archivo de configuración se define en un formato basado en XML denominado Service Component Definition Language (SCDL). La implementación es el código que realmente proporciona las funciones del componente como, por ejemplo, un clase Java o un proceso BPEL. La configuración, expresada en SCDL, define la forma en que dicho componente interactúa con el mundo exterior. Cada componente SCA contiene los siguientes elementos:

Servicio
Se usa un servicio para describir las operaciones a las que puede acceder un consumidor del componente. Los servicios poseen una interfaz que describe las operaciones que se encuentran disponibles para su consumo. La interfaz puede definirse usando una interfaz Java o con Web Services Description Language (WSDL).
Referencia
Las referencias se usan para describir los servicios proporcionados por otros componentes que resultan necesarios. Las referencias además poseen una interfaz que describe las operaciones que deben invocarse.
Enlace
Los enlaces definen con precisión la forma de comunicarse con un componente SCA. Los servicios y las referencias especifican el enlace que se usa para la comunicación. Por contar con enlaces, la lógica de negocios de un componente puede separarse de los detalles de comunicación.
Propiedad
Un componente puede definir una o más propiedad/es. Cada propiedad tiene un valor definido en el archivo de configuración SCDL.

WebSphere Process Server y WebSphere Integration Developer

Process Server se usa para alojar aplicaciones compuestas basadas en SOA. Es un entorno seguro, robusto y escalable en el que pueden implementarse y ejecutarse procesos de negocios de misión crítica. Process Server soporta un modelo de programación consistente para la representación de datos, la invocación de servicios y la estructuración de aplicaciones compuestas. Estas aplicaciones compuestas pueden desarrollarse usando WebSphere Integration Developer (en adelante “Integration Developer”). Dentro de Process Server, los servicios se definen e invocan de manera uniforme usando SCA y cada servicio se define como un componente con una interfaz. Los servicios pueden asociarse con componentes importados o exportados que permitan su invocación a través de diferentes medios de comunicación como servicios web o MQ.

La Figura 2 muestra un ejemplo de definición de componentes en Integration Developer. Una importación permite a un componente acceder a servicios de otro componente. Una exportación permite a un componente externalizar sus servicios para que otros componentes puedan consumirlos. Tanto las importaciones como las exportaciones requieren de información de enlace que especifique los detalles de comunicación para acceder a los servicios:

Figura 2. Componentes SCA usados en Process Server e Integration Developer
Componentes SCA usados en Process Server e Integration Developer

Nuevos nodos SCA de WebSphere Message Broker V7

En WebSphere Message Broker V7 se proporcionan cinco nuevos nodos SCA. Estos nodos simplifican la interoperabilidad entre aplicaciones alojadas en Message Broker y en Process Server. Estos nodos están configurados con información SCDL y permiten la comunicación con Process Server usando un servicio web o enlaces MQ.

SCAInput, SCAReply
Permiten a Message Broker exponer servicios que pueden ser consumidos por aplicaciones de procesos de negocios alojadas en Process Server. El nodo SCAInput recibe un mensaje entrante del proceso de negocios y el nodo SCAReply envía una respuesta. Esto hace posible que una aplicación que se encuentra en ejecución en Message Broker se comporte como un punto final SCA. La aplicación de negocios deberá usar un componente importado para acceder a los servicios ofrecidos por la aplicación Message Broker. La Figura 3 muestra a Message Broker procesando un mensaje entrante SCA:

Figura 3. Procesamiento de mensajes entrantes SCA
Procesamiento de mensajes entrantes SCA

SCARequest, SCAAsyncRequest, SCAAsyncResponse
Permiten a las aplicaciones Message Broker consumir servicios proporcionados por procesos de negocios alojados en Process Server. La aplicación de negocios deberá usar un componente exportado para permitir a la aplicación Message Broker consumir sus servicios. El nodo SCARequest se usa para enviar un mensaje saliente a Process Server. El mensaje se envía sincrónicamente, es decir que el flujo de mensajes esperará un tiempo determinado antes de devolver la respuesta y continuar el procesamiento del flujo. Los nodos SCAAsyncRequest y SCAAsyncResponse se usan para enviar un mensaje saliente asincrónicamente, es decir que después de que el nodo SCAAsyncRequest envia el mensaje, continuará el procesamiento del flujo mientras SCAAsyncResponse recibe la respuesta. La Figura 4 muestra a Message Broker procesando un mensaje SCA saliente:

Figura 4. Procesamiento de mensajes SCA salientes
Procesamiento de mensajes SCA salientes

La configuración de los nodos SCA se realiza mediante un nuevo artefacto de Message Broker llamado Definición Broker SCA) que reside dentro de un proyecto Message Set. El proyecto Message Set es referenciado por el flujo de mensajes. Los nodos SCA no pueden configurarse sin una definición Broker SCA.

La definición Broker SCA contiene toda la información necesaria para la comunicación con procesos de negocios que residen en Process Server e incluye: SCDL (contiene información de enlace y propiedad), WSDL (define la interfaz en uso) y XSD (define el modelo de mensaje). Existen dos tipos de definición Broker SCA: definición Broker SCA entrante, la cual posee el sufijo .insca, y definición Broker SCA saliente, la cual posee el sufijo .outsca.

La definición Broker SCA entrante se usa para configurar los nodos SCAInput e SCAReply. La definición Broker SCA saliente se usa para configurar los nodos SCARequest, SCAAsyncRequest y SCAAsyncResponse. Una definición Broker SCA entrante deriva de un componente importado SCA, mientras que una definición Broker SCA saliente deriva de un componente exportado SCA. La Figura 5 muestra dónde reside el artefacto de definición Broker SCA dentro del proyecto Message Set:

Figura 5. Definición Broker SCA
Definición Broker SCA

Los nodos SCA pueden configurarse usando el mecanismo de arrastrar y soltar o seleccionando manualmente la definición Broker SCA dentro de la propiedad. Además, es posible crear nodos SCA arrastrando y soltando la definición Broker SCA directamente en el Message Flow Editor (Editor de flujos de mensajes):

Figura 6. Soporte de mecanismo de arrastrar y soltar
Soporte de mecanismo de arrastrar y soltar

Nuevos asistentes de kits de herramientas de WebSphere Message Broker V7

La integración de aplicaciones se simplifica considerablemente con los nuevos asistentes que ayudan a los desarrolladores de Message Broker a importar o exportar componentes SCA.

Asistente de importación SCA

Los componentes SCA pueden importarse a Message Broker usando el Asistente de importación SCA (SCA Importer Wizard), el cual puede importar componentes importados SCA o componentes exportados SCA contenidos por el archivo Project Interchange (PI) que se exportó previamente de Integration Developer. Para invocar al asistente de importación SCA, seleccione el mensaje enviado y luego seleccione New (Nuevo) => Message definition file from (Archivo de definición de mensajes de...) => SCA import or export (Importación o exportación SCA) en el menú de contexto:

Figura 7. Asistente de importación SCA
Asistente de importación SCA

Cuando el asistente de importación haya terminado, se habrá creado una definición Broker SCA en el proyecto Message Set y el modelo de mensaje asociado se habrá creado en Message Set dentro del proyecto Message Set. Si se importó una importación SCA, se habrá creado una definición Broker SCA entrante (.insca). Si se importó una exportación SCA, se habrá creado una definición Broker SCA saliente (.outsca). Luego de su creación, la definición Broker SCA puede usarse para crear y configurar nodos SCA en un flujo de mensajes.

El importador verifica si la importación SCA o exportación SCA es válida durante el proceso de importación. Si la importación o exportación SCA no cumple con ciertas restricciones, se generará un error. Las restricciones son las siguientes:

  • La importación SCA o exportación SCA debe contener un enlace de servicio web o MQ.
  • La importación SCA o exportación SCA debe contener una interfaz.

Asistente de generación de definición Broker SCA

Cuando el asistente de importación finaliza, se habrá creado una definición Broker SCA, pero también es posible crearla sin importar un archivo PI de Integration Developer. Es posible generar una definición Broker SCA a partir de un conjunto de mensajes existentes que contenga uno o más archivos de definición de mensajes. Para invocar al asistente de generación de definición Broker SCA (Generate Broker SCA Definition Wizard), seleccione el conjunto de mensajes y luego seleccione Generate (Generar) => definición Broker SCA en el menú de contexto que muestra la Figura 8:

Figura 8. Asistente de generación de definición Broker SCA
Asistente de generación de definición Broker SCA

El asistente de generación de definición Broker SCA crea una definición Broker SCA usando artefactos incluidos en el conjunto de mensajes y valores especificados por el usuario. Este asistente crea una definición Broker SCA .outsca o .insca, que se almacena en la carpeta definición Broker SCA dentro del proyecto de conjunto de mensajes elegido. En el asistente de generación de definición Broker SCA deberá especificar los siguientes valores:

  • Un conjunto de mensajes para crear la definición Broker SCA.
  • Una definición Broker SCA entrante (.insca) o saliente (.outsca).
  • Un nombre para la importación/exportación SCA creada dentro de la definición Broker SCA
  • La interfaz usada por la definición Broker SCA. Seleccione:
    • Un WSDL implementable existente que defina un portType
    • Un nuevo conjunto de operaciones a ser contenido por un portType generado. Para operaciones nuevas, deberá especificar el nombre de operación, el tipo de operación y los tipos de datos usados por los mensajes de entrada y salida.
  • El tipo de enlace: seleccione servicios web o MQ.
  • Las propiedades requeridas por el enlace de servicios web o MQ.

La definición Broker SCA. outsca o .insca generada contiene:

  • Un único componente .import (importación SCA) o .export (exportación SCA).
  • Un WSDL que contiene un portType con una o más operaciones.
  • XSDs que corresponden a los mensajes usados en las operaciones definidas en el portType.

Después de su generación, puede usar la definición Broker SCA para configurar nodos SCA. El asistente de generación permite a un flujo de mensajes que actualmente use MQ o SOAP transportar nodos para actualizarlos y aprovechar los nuevos nodos SCA.

Asistente de exportación SCA

La definición Broker SCA es un artefacto que solamente puede usarse en el desarrollo de aplicaciones Message Broker y no puede ser usada por procesos de negocios desarrollados en Integration Developer. Es posible exportar componentes SCA de una definición Broker SCA usando el asistente de exportación SCA (SCA Exporter Wizard) y luego importarlos a un proyecto existente en Integration Developer. Para invocar al asistente de exportación, seleccione el conjunto de mensajes y luego seleccione Export (exportar) del menú de contexto, como muestra la Figura 9. Deberá elegir el asistente de exportación que desea iniciar. Seleccione SCA import (importación SCA) o SCA export (exportación SCA) de definición Broker SCA, como muestra la Figura 10:

Figura 9. Asistente de exportación SCA
Asistente de exportación SCA
Figura 10. Selección del asistente de exportación SCA
Selección del asistente de exportación SCA

El asistente de exportación SCA exporta los siguientes artefactos de Message Broker:

  • Importación SCA o exportación SCA
  • XSDs
  • WSDL

Puede decidir realizar la exportación a un directorio externo o a un directorio del espacio de trabajo. Luego de haber exportado los componentes SCA, podrá importarlos a Integration Developer y conectarlos con un proceso de negocios. Para importar los componentes SCA previamente exportados de Message Broker, seleccione el proyecto en Integration Developer y luego seleccione Import (Importar) del menú de contexto, como muestra la Figura 11 a continuación. Luego seleccione File system (Sistema de archivos) en la categoría General, como muestra la Figura 12 a continuación. Especifique el directorio usado para exportar los componentes SCA de Message Broker.

Figura 11. Importación de componentes SCA a Integration Developer
Importación de componentes SCA a Integration Developer
Figura 12. Selección de importación del sistema de archivos
Selección de importación del sistema de archivos

Luego de efectuar la importación a Integration Developer, la importación SCA o exportación SCA aparecerá en el diagrama de montaje y podrá ser conectada. La interfaz, los tipos de datos y la importación o exportación SCA podrán verse en el proyecto seleccionando la vista Business Integration. Si usted usa una interfaz existente y un socio de interfaz en Integration Developer y quiere reemplazarlos por la interfaz importada de Message Broker, es posible que deba realizar acciones correctivas.

Comenzar desde el asistente de inicio rápido de importación o exportación SCA

Este nuevo asistente de inicio rápido (Quick Start Wizard) le permite comenzar rápidamente a construir una aplicación usando nodos SCA. Para iniciar este asistente, seleccione Quick Starts (inicios rápidos) => Start from SCA Import or Export (Comenzar desde importación o exportación SCA)

Figura 13. Asistente de inicio rápido SCA
Asistente de inicio rápido SCA

Enfoques para la integración de aplicaciones

Integración descendente
El asistente de importación le permite emplear un enfoque de desarrollo descendente. Un desarrollador de integración de negocios puede desarrollar primero los procesos de negocios en Integration Developer, exportar el proyecto a un archivo PI y luego importarlo a Message Broker para crear un modelo de mensaje y una definición Broker SCA que se usarán para configurar nodos SCA en flujos de mensajes.
Integración ascendente
Los asistentes de generación y exportación permiten emplear un enfoque de desarrollo ascendente. Un desarrollador de Message Broker puede desarrollar primero una aplicación Message Broker y luego exportar los componentes SCA de una definición Broker SCA. Luego podrá importar los componentes SCA exportados a Integration Developer y conectarlos a un proceso de negocios.

Procesamiento de tiempo de ejecución de mensajes SCA

Los nodos SCAInput y SCAReply se usan para procesar mensajes entrantes recibidos de Process Server usando enlaces con servicios web o MQ. Estos nodos se configuran mediante un artefacto de definición Broker SCA entrante (.insca).

Los nodos SCARequest, SCAAsyncRequest y SCAAsyncResponse se usan para procesar mensajes salientes enviados a Process Server usando enlaces con servicios web o MQ. Estos nodos se configuran mediante un artefacto de definición Broker SCA saliente (.outsca).

Los nodos SCA son indiferentes con respecto a los enlaces, es decir que pueden ser configurados independientemente del enlace que se utilice. El nodo SCAInput posee una única pestaña Binding (Enlace) y las propiedades mostradas en esta pestaña dependen del enlace que se encuentre en el SCDL contenido dentro de la definición Broker SCA. Los valores de las propiedades se llenan automáticamente con los valores especificados en SCDL (y los de WSDL en el caso de enlaces de servicios web). El modelo de nodos SCA tiene las mismas características que los nodos SOAP y MQ, con la excepción de que sus propiedades de enlace son configuradas automáticamente por la definición Broker SCA. Si lo desea, puede invalidar las propiedades de enlace del nodo, pero asegúrese de que la importación o exportación SCA usada por la aplicación de proceso de negocios refleje los mismos cambios.

Procesamiento de entrada: flujo de Message Broker invocado por un proceso de negocios alojado en Process Server

Terminales dinámicas
El nodo SCAInput también posee terminales dinámicas que le permiten configurar la forma de ruteo de los mensajes desde el nodo. Estas terminales se determinan a través de operaciones contenidas por el archivo de interfaz WSDL. Un mensaje entrante se rutea a la terminal correspondiente en base a la operación meta. Si usted prefiere no usar terminales dinámicas, puede configurar el nodo para usar una terminal de salida común. En este caso, las terminales dinámicas se eliminarán del nodo en el lienzo de flujo de mensajes y, en el tiempo de ejecución, todos los mensajes se rutearán a la terminal de salida común. La Figura 14 muestra que el nodo SCAInput posee terminales dinámicas que permiten que los mensajes se ruteen a dos subflujos diferentes. Las terminales dinámicas se encuentran actualmente disponibles sólo para el enlace de servicio web.

Figura 14. Terminales dinámicas
Terminales dinámicas

Enlace de servicio web
Si el nodo SCAInput se configura para usar un enlace de servicios web, el nodo atenderá solicitudes de servicios web entrantes en el puerto predeterminado 7800 (HTTP) o 7843 (HTTPS). Los mensajes pueden propagarse con o sin el sobre SOAP y los encabezados SOAP. Esta opción puede configurarse activando la casilla de verificación Propagate only SOAP body (Propagar cuerpo SOAP solamente) en el nodo SCAInput, como muestra la Figura 15. La opción predeterminada propaga el mensaje SOAP entero (incluyendo el sobre y los encabezados) en el dominio SOAP. Si se selecciona la casilla de verificación mencionada, el sobre y los encabezados SOAP se almacenarán en el entorno local y sólo se propagará el cuerpo del mensaje SOAP bajo el dominio XMLNSC. Si se usa una terminal de salida común en lugar de terminales de operación dinámicas, esta casilla de verificación aparecerá agrisada, ya que cuando se usa la terminal de salida común siempre se propagará el mensaje SOAP entero.

Figura 15. Casilla de verificación Propagar cuerpo de SOAP
Casilla de verificación Propagar cuerpo de SOAP

Enlace MQ
Si el nodo SCAInput se configura para usar un enlace MQ, el nodo realizará un MQGET sobre la cola MQ especificada. El nodo SCAInput soporta todos los enlaces de datos MQ usados por Process Server y, por lo tanto, soporta tanto datos XML como no XML. El mensaje se propaga de acuerdo con la propiedad Message Domain (Dominio de mensajes) en la pestaña Properties (Propiedades) del análisis de mensajes de entrada. En la opción predeterminada, si el enlace de datos en el SCDL indica que todas las operaciones usan XML (com.ibm.websphere.sca.mq.data.impl.MQDataBindingImplXML o com.ibm.wbiserver.datahandler.xml.XMLDataHandler), aparecerá seleccionado el dominio XMLNSC; de lo contrario, aparecerá seleccionado el dominio BLOB. Si lo desea, puede invalidar el dominio predeterminado y seleccionar el dominio más apropiado para el tipo de datos. Por ejemplo, puede seleccionar el dominio MRM para analizar mensajes no XML (como mensajes CSV o COBOL) usando un conjunto de mensajes preexistente.

Envío de mensaje de respuesta
Si se usa un enlace de servicio web, se activará la opción WS-Addressing en el nodo SCAInput y el nodo SCAReply enviará una respuesta a la URI incluida en la propiedad WSA ReplyTo. De lo contrario, la respuesta se devolverá al remitente. Al procesar mensajes MQ, el nodo SCAReply usa el destino Reply-to (Responder a) del encabezado MQMD del mensaje entrante para enviar la respuesta a la cola y al queue manager que corresponda. El nodo SCAReply también usa la propiedad Report (Informe), especificada en el encabezado MQMD del mensaje entrante, para establecer el ID de correlación en el mensaje de respuesta que se devuelve a Process Server.

El nodo SCAInput siempre crea un Reply Identifier (Identificador de respuesta) que permite al nodo SCAReply devolver una respuesta al cliente originador. Si el nodo SCAReply se encuentra en un flujo distinto al del nodo SCAInput, deberán almacenar el ReplyIdentifier creado por el nodo SCAInput y colocarlo en el flujo que contiene al nodo SCAReply. El Reply Identifier está disponible en LocalEnvironment.Destination.SCA.Reply.ReplyIdentifier. En el caso en que el nodo SCAReply se encuentra en un flujo distinto, asegúrese de que los flujos que contengan los nodos SCAInput y SCAReply se implementen en el mismo grupo de ejecución.

Recepción de un mensaje unidireccional
Si el nodo SCAInput recibe un mensaje para una operación definida como unidireccional, en el caso de los servicios web, se devolverá una confirmación HTTP 202. Si el nodo SCAReply se encuentra conectado, SCAReply realizará una instrucción de no operación y el mensaje de entrada solamente se propagará a través de la terminal de salida sin devolver un mensaje de respuesta. Si una definición Broker SCA contiene una interfaz que únicamente tenga definidas operaciones unidireccionales, al arrastrar y soltar la definición Broker SCA entrante en el Message Flow Editor sólo se creará un nodo SCAInput.

Información de entorno local disponible para procesamiento de entrada
El entorno local puede usarse para acceder a valores establecido por los nodos SCA durante el procesamiento de entrada, como muestra la Tabla 1:

Tabla 1. Información de entorno local establecida por los nodos SCA durante el procesamiento de entrada
Propiedad de entorno localDescripción
LocalEnvironment.SCA.Input.OperationAcceder a la operación llamada por una solicitud entrante
LocalEnvironment.Destination.SCA.Reply.ReplyIdentifierReferencia del cliente originador para enviar una respuesta a los mensajes entrantes

Procesamiento de salida: flujo Message Broker que invoca un punto final SCA en Process Server

Envío de un mensaje saliente a Process Server sincrónicamente
El nodo SCARequest se usa para enviar un mensaje saliente a Process Server sincrónicamente, es decir que el hilo de Message Broker se bloquea hasta que recibe una respuesta dentro del tiempo de espera especificado. Esto no se relaciona con la forma en que Process Server administra el mensaje. Si no se recibe ninguna respuesta dentro del tiempo de espera, el mensaje de entrada para el nodo SCARequest se propaga a la terminal de error junto con una lista de excepciones. El tiempo de espera se especifica en el nodo, como muestra la Figura 16. La propiedad Request Timeout (Tiempo de espera de solicitud) puede invalidarse estableciendo una propiedad en el entorno local.

Figura 16. Propiedad Request Timeout
Propiedad Request Timeout

Envío de un mensaje saliente a Process Server asincrónicamente
El nodo SCAAsyncRequest y el nodo SCAAsyncResponse se usan juntos para enviar una solicitud y recibir un mensaje de respuesta asincrónicamente, es decir que el hilo de Message Broker no espera a que la aplicación Process Server responda para continuar. Esto tampoco se relaciona con la forma en que Process Server administra el mensaje. Cuando Message Broker recibe la respuesta, ésta se administra mediante un nodo SCAAsyncResponse independiente, lo cual permite el envío paralelo de solicitudes salientes múltiples. El nodo SCAAsyncResponse puede residir en un flujo de mensajes independiente del nodo SCAAsyncRequest, pero ambos nodos deben estar en flujos que hayan sido implementados al mismo grupo de ejecución. El emparejamiento lógico de los nodos SCAAsyncRequest y SCAAsyncResponse se especifica mediante un identificador único. Puede compartir datos entre los nodos SCAAsyncRequest y SCAAsyncResponse a través del almacenamiento y la recuperación de datos en el entorno local.

Enlaces de servicios web
El nodo SCARequest y el nodo SCAAsyncRequest envían un mensaje SOAP a la URL especificada en la propiedad URL del servicio web, y la operación meta se encuentra especificada en la propiedad Operation (Operación). Tanto las opciones de URL como de operación pueden cambiarse en el nodo invalidando las propiedades en el entorno local; la operación debe estar disponible en la lista combinada desplegable. Se informará un error en el tiempo de ejecución si se especifica incorrectamente la URL o si se especifica una operación no incluida en la lista combinada desplegable.

Los nodos SCARequest y SCAAsyncResponse tienen una terminal de error que se usa únicamente cuando se usa un enlace de servicios web. Si el proceso de negocios de Process Server devuelve una falla SOAP, el mensaje de error se propagará a la terminal de error.

También puede configurar los nodos SCARequest y SCAAsyncResponse para especificar la propagación del mensaje SOAP entero o únicamente de su carga útil (cuerpo SOAP). Esta opción puede configurarse a través de la casilla de verificación Propagate only SOAP body de los nodos SCARequest o SCAAsyncResponse. La opción predeterminada propaga el mensaje SOAP entero. Si se establece la propagación de solamente el cuerpo SOAP, éste pertenecerá al dominio XMLNSC.

Enlace MQ
SCARequest y SCAAsyncRequest poseen propiedades de enlace MQ extraídas del SCDL incluido en la definición Broker SCA saliente. Algunas de estas propiedades son: Queue name y Queue Manager name (nombre de la cola y nombre del Queue Manager) a los que debe enviarse el mensaje saliente, y Reply-to Queue (Respuesta a la cola) y Reply-to Queue Manager (Respuesta al gestor de colas) que reciben los mensajes de respuesta de Process Server. También es posible especificar la operación a invocar en la propiedad Operation. Los valores posibles se extraen del WSDL incluido en la definición Broker SCA saliente. Las propiedades usadas al especificar un enlace MQ se muestran a continuación en la Figura 16.

Cuando se usa un enlace MQ, durante el tiempo de ejecución se establecen las siguientes propiedades en el encabezado del mensaje que se envía al proceso de negocios en Process Server:

targetFunctionName
Definido en la carpeta usr en MQRFH2 en el mensaje de solicitud enviado a Process Server. Está establecido en la operación especificada en el nodo y puede invalidarse en el entorno local.
Reply-to Queue Manager y Reply-to Queue
Establecidas en el MQMD en base a las propiedades reply-to del nodo, que pueden invalidarse en el entorno local.
Propiedad Report (Informe)
Establecida en el MQMD en base a la propiedad Response Message Correlation (Correlación de mensajes de respuesta) establecida en el nodo.

Si la interfaz definida para la exportación SCA tiene definida más de una operación y usted desea comenzar a desarrollar aplicaciones en Integration Developer, asegúrese de que el selector de funciones definido en la exportación SCA tenga seleccionada la opción MQ uses JMS default function selector (MQ usa el selector de funciones predeterminado de JMS):

Figura 17. Selector de funciones
Selector de funciones

Envío de un mensaje unidireccional
Para enviar mensajes salientes unidireccionales a un proceso de negocios se puede usar únicamente un nodo SCARequest. Si usted seleccionó una operación unidireccional, las propiedades Reply-to Queue, Reply-to Queue Manager y Response Message Correlation aparecerán agrisadas. Para mensajes MQ, se especifica un tipo de mensaje datagrama en el encabezado MQMD enviado en el mensaje saliente. Si la definición Broker SCA saliente contiene una interfaz que tiene definidas solamente operaciones unidireccionales, se creará únicamente un nodo SCARequest al arrastrar y soltar la definición Broker SCA saliente en el Message Flow Editor. Al usar el nodo SCARequest para enviar un mensaje unidireccional, se propagará una copia del mensaje entrante desde la terminal de salida.

Información de entorno local disponible para procesamiento de salida
El entorno local puede usarse para invalidar valores establecidos por los nodos SCA durante el procesamiento de salida. La última entrada de la tabla (UserContext) no hace referencia a una propiedad de nodo que puede ser invalidada, sino que se usa para almacenar datos a transferir entre los nodos SCAAsyncRequest y SCAAsyncResponse, como muestra la Tabla 2:

Tabla 2. Información de entorno local establecida por los nodos SCA durante el procesamiento de salida
Propiedad de entorno localDescripción
LocalEnvironment.Destination.SCA.Request.OperationCambia la operación a invocar para un mensaje saliente
LocalEnvironment.Destination.SCA.Request.TimeoutCambia el tiempo de espera (únicamente en nodo SCARequest)
LocalEnvironment.Destination.SCA.Request.Binding.WebServices.Transport.HTTP.WebServiceURLCambia la URL del enlace de servicios web de un mensaje saliente
LocalEnvironment.Destination.SCA.Request.Binding.MQ.queueManagerNameCambia el Queue Manager de la solicitud del enlace MQ de un mensaje saliente
LocalEnvironment.Destination.SCA.Request.Binding.MQ.queueNameCambia la cola de la solicitud del enlace MQ de un mensaje saliente
LocalEnvironment.Destination.SCA.Request.UserContext
LocalEnvironment.SCA.Response.UserContext
Guarda y recupera datos de contexto del entorno local (únicamente en nodos SCAAsyncRequest y SCAAsyncResponse)

Ventajas de los nodos SCA en comparación con los nodos MQ y SOAP existentes

Cuando se realiza integración de aplicaciones usando Message Broker, Integration Developer y Process Server el uso de nodos SCA proporciona las siguientes ventajas:

  • Los nodos SCA simplifican la integración de aplicaciones y mejoran la consumabilidad al usar Message Broker con Process Server. Los distintos asistentes ayudan a configurar en pocos clics la aplicación Message Broker para que se comunique con Process Server. En versiones anteriores a Message Broker V7, tomaba mucho tiempo desarrollar el modelo de mensaje y configurar los detalles de enlace en los nodos de transporte.
  • Si la aplicación de proceso de negocios decide cambiar su método de comunicación, lo único que deberá hacer es importar una nuevo PI a Message Broker y así actualizar los nodos SCA para que usen el nuevo enlace. La pestaña Binding de los nodos SCA muestra las propiedades de enlace específicas en base al enlace especificado en el SCDL incluido en la definición Broker SCA. Por lo tanto, es muy sencillo cambiar de servicios web a MQ (y viceversa) en el mismo nodo. En versiones anteriores a Message Broker V7, el cambio de nodos SOAP a nodos MQ (y viceversa) resultaba engorroso.
  • El nodo SCAReply es indiferente con respecto a los enlaces. Si usted tiene SCAInput múltiples con diferentes enlaces, podrá pasar a tener un único SCAReply para devolver una respuesta. Si usaba los nodos SOAP o MQ, necesitará nodos SOAPReply y MQOutput independientes para devolver respuestas a Process Server.
  • Puede migrar de aplicaciones existentes para usar los nuevos nodos SCA generando una definición Broker SCA y una configuración de mensaje y luego usando la definición Broker SCA saliente o entrante generada para configurar los nodos SCA.
  • Importar componentes SCA a Message Broker usando el asistente de importación es muy sencillo. Simplemente exporte el archivo PI de Integration Developer y luego use el asistente de importación para importarlo a Message Broker; esto creará el modelo de mensaje y configurará los nodos SCA nodes. Si intenta realizar manualmente esta acción, exportando XSD y WSDL, podría introducir errores si comienza del WSDL incorrecto.
  • Exportar componentes SCA de Message Broker usando el asistente de exportación es muy sencillo. El asistente exporta los artefactos SCDL, XSD y WSDL que puedan importarse a Integration Developer. En versiones anteriores a Message Broker V7, estos componentes debían importarse manualmente y los detalles de enlace debían configurarse con cuidado en la importación SCA o exportación SCA en Integration Developer. Usando el asistente de exportación, se garantiza que el SCDL exportado contiene los detalles de enlace correctos.
  • Los nodos SCA contienen la opción de propagar el mensaje SOAP entero o únicamente el cuerpo SOAP. Los nodos SOAP no brindan la opción de propagar únicamente el cuerpo SOAP y es necesario usar un nodo SOAPExtract para propagar el cuerpo SOAP en el flujo descendente.
  • El nodo SCAInput posee terminales dinámicas que permiten que el nodo en sí mismo rutee el mensaje a la terminal de operación correspondiente en base a la operación meta que se encuentra en el tiempo de ejecución del mensaje. Los nodos SOAP, en cambio, no poseen terminales dinámicas y es necesario configurar manualmente el flujo para que el ruteo se realice en base al contenido de los nodos.
  • El mecanismo de arrastrar y soltar facilita la creación y configuración de los nodos SCA. Puede crear nodos sincrónicos (SCARequest) o asincrónicos (SCAAsyncRequest/SCAAsyncResponse) a partir de la definición Broker SCA saliente. Los nodos SCAInput y SCAReply se crean y configuran a partir de una definición Broker SCA entrante. El mecanismo de arrastrar y soltar además determina los nodos que pueden crearse si la interfaz tiene definidas únicamente operaciones unidireccionales.
  • Con el enlace MQ, los nodos SCARequest y SCAAsyncRequest completan automáticamente la información apropiada en el MQMD del mensaje que se envía a Process Server. Si intentara usar nodos MQ, tendría que usar el nodo MQHeader para completar el TargetFunctionName y establecer la información de ID de correlación.
  • Con el enlace MQ, el nodo SCAReply establece el ID de correlación en base a lo especificado en el SCDL. Si intentara usar los nodos MQ, tendría que establecer el ID de correlación usando un nodo Compute o MQHeader.
  • Es posible cambiar los valores de las distintas propiedades invalidándolos en el entorno local. No existe una acción equivalente a invalidar la operación a invocar o a almacenar datos en UserContext usando los nodos SCAAsyncRequest y SCAAsyncResponse en los nodos MQ.
  • El nodo SCAInput crea un identificador de respuesta al que puede accederse desde el entorno local. Así, aunque usted tenga un nodo de solicitud entre los nodos SCAInput y SCAReply, le será posible devolver una respuesta al cliente originador almacenando el ReplyIdentifier. Los nodos MQ no cuentan con una funcionalidad equivalente.

Conclusión

WebSphere Message Broker V7 incorpora cinco nodos nuevos para simplificar la interoperabilidad con Process Server: los nodos SCAInput y SCAReply para la administración de mensajes entrantes (flujo Message Broker invocado por un proceso de negocios alojado en Process Server) y los nodos SCARequest, SCAAsyncRequest y SCAAsyncResponse para la administración de mensajes salientes (flujo Message Broker que invoca un punto final SCA en Process Server). Los nuevos asistentes simplifican la integración de aplicaciones y le permiten efectuar una integración ascendente (comenzando en Integration Developer) o descendente (comenzando en Message Broker). Los nodos pueden usarse con enlaces de servicios web o enlaces MQ. En resumen, se recomienda usar los nodos SCA siempre que se busque integrar una aplicación Message Broker con un proceso de negocios alojado por Process Server.

Demostración de nodos SCA

Este artículo incluye una demostración en Flash animada y autoejecutable para guiarlo a través de los distintos los pasos de uso de los nodos SCA en WebSphere Message Broker V7. Descargue el archivo zip que se incluye a continuación, descomprímalo y haga clic en el archivo sca_demo_viewlet_swf.html.


Descargar

DescripciónNombretamaño
Animated self-running demo of SCA nodesSCA_nodes_demo.zip14 MB

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=465419
ArticleTitle=Uso de nodos SCA en WebSphere Message Broker V7
publish-date=08012011