Procesamiento de eventos de negocios con WebSphere Business Events - Parte 4: Integración de Business Events con WebSphere Enterprise Service Bus y WebSphere Process Server

La Parte 4 de esta serie le muestra cómo crear un módulo de mediación IBM®WebSphere®ESB para interactuar con WebSphere Business Events, el principal producto de IBM®para el procesamiento de eventos de negocios.

Eric Erpenbach, Senior Software Engineer, IBM

Eric Erpenbach photoEric Erpenbach es Software Engineer para IBM en Rochester, Minnesota. Si bien ha trabajado en muchas áreas de la familia de productos WebSphere desde el año 2000, actualmente se ocupa de las tecnologías de reglas de negocios, las arquitecturas impulsadas por metadatos y los aspectos de gobernabilidad para estas dos áreas. En su tiempo libre, Eric disfruta de las actividades al aire libre que Minnesota ofrece las cuatro estaciones del año. Para contarlo, escríbale a: eerpenb@us.ibm.com.



Doina Klinger, Software Engineer, IBM Hursley Laboratory

Doina Klinger photoDoina Klinger trabaja como Advisory Software Engineer en el IBM Hursley Software Laboratory. Es desarrolladora de WebSphere Business Events. Antes trabajó como Developer y Development Lead en diversos productos y componentes de WebSphere y, más recientemente, en WebSphere Enterprise Service Bus y WebSphere Integration Developer. Dentro de sus intereses figuran Eclipse y las tecnologías de procesamiento de mensajes y eventos. Doina se unió a IBM en 2000, después de obtener su MSC en Ciencias de la Computación en la Universidad Purdue. Para comunicarse con Doina, escríbale a dklinger@uk.ibm.com.



Callum Jackson, Software Engineer, IBM

Photo of Callum Jackson Callum Jackson es Software Engineer del equipo WebSphere ESB en el IBM Hursley Software Lab en el Reino Unido. Callum pertenece al equipo de WebSphere ESB desde 2005 y anteriormente trabajó en aplicaciones de servicios de software en SOA para la industria de las telecomunicaciones. Para contactar a Callum, escríbale a callumj@uk.ibm.com.



29-07-2011

Introducción

La Parte 1 de esta serie introdujo el sistema de negociación que se usa para toda esta serie. En la Parte 2, usted creó y probó la aplicación del sistema de negociación. En este artículo, usted aprenderá a integrar WebSphere Enterprise Service Bus (de aquí en más, ESB) V6.1.0.1 y WebSphere Process Server (de aquí en más, Process Server) V6.1.0.1 con una solución de procesamiento de eventos de negocios. Este artículo no le ofrece información detallada sobre los antecedentes de Business Events, ESB o Process Server. En cambio, este artículo se concentra en los patrones de integración entre estos productos.

Este artículo está orientado a los usuarios de ESB, Process Server y WebSphere Integration Developer (de aquí en más, Integration Developer) que desean explotar las capacidades de Business Events como parte de una solución de mediación o de procesamiento de negocios.

WebSphere Enterprise Service Bus

WebSphere ESB V6.1.0.1 es un producto de IBM que sirve para la integración de tecnologías orientadas a servicios, orientadas a mensajes e impulsadas por eventos. Usted puede crear e implementar soluciones de integración de mediación para conectar aplicaciones de software nuevas y ya existentes dentro de una misma empresa y entre diferentes empresas. ESB le permite contar con la virtualización de servicios y el acoplamiento holgado entre solicitadores de servicios y proveedores de servicios. Para llevar un mensaje desde una interfaz de servicio hasta otra, suele ser necesario realizar diversas operaciones en el mensaje (como, por ejemplo, el enriquecimiento y la transformación del mensaje) y realizar un ruteo basado en los contenidos del mensaje en cuestión.

WebSphere Process Server

WebSphere Process Server V6.1 es una plataforma completa de integración de arquitectura orientada a servicios (SOA), que es el entorno de tiempo de ejecución central de una solución de gestión de procesos de negocios (BPM). BPM y Process Server le permiten desarrollar aplicaciones que satisfacen sus requisitos de negocios y adaptarlas rápidamente a los cambios del mercado. Las soluciones BPM que involucran la automatización de procesos de negocios y tareas humanas potencian los estándares BPEL, SCA, los servicios web y los JMS.


El escenario de integración

Como lo describimos en las partes anteriores de esta serie, el escenario se basa en un sistema de negociación en el que una aplicación Business Events procesa eventos de compra y venta. Si un mismo cliente compra y vende un producto en una hora, el sistema Business Events genera una acción SellAfterBuy. Si un cliente completa tres acciones de este tipo en un mismo día e involucrando siempre al mismo tipo de producto, se genera una acción SpeculativeCustomer. Usaremos la misma aplicación Business Events que creamos en la Parte 2. La única modificación que haremos al proyecto de Business Events consiste en especificar la información de un conector nuevo para los eventos y las acciones.

Ampliaremos el escenario para que incluya la integración con ESB y discutiremos dónde Process Server encajaría normalmente dentro de la solución. La Figura 1 le muestra la arquitectura de alto nivel del escenario de integración que se describe en este artículo:

Figura 1. Arquitectura de integración de WebSphere ESB y Business Events
Arquitectura de integración de WebSphere ESB y Business Events

Como puede observar en la Figura 1, la arquitectura de integración tiene cinco componentes clave:

  • El cliente del sistema de negociación, que es responsable de enviar solicitudes al sistema de negociación. Como este artículo se concentra en la integración de ESB y Business Events, este componente se implementa usando Web Service Explorer en Integration Developer.
  • WebSphere ESB, que es responsable de la mediación de mensajes en todo el sistema. Este artículo se concentra en este componente. ESB recibirá el mensaje del cliente y lo reenviará al sistema Business Events. Discutiremos la implementación del módulo de mediación en mayor detalle más adelante en este artículo.
  • Business Events, que es responsable de detectar cuándo ocurrió una regla de negociación. Usaremos la aplicación que creamos en la Parte 2.
  • El sistema de negociación de ESB, que es responsable de ejecutar la operación que envió el cliente. Este componente se encuentra fuera del alcance de este artículo y no se lo menciona en la sección de implementación.
  • El sistema de procesamiento de acciones, que es responsable de realizar el proceso de negocios cuando el sistema Business Events inició una acción. Como este artículo no se concentra en las vastas capacidades de procesamiento de negocios de Process Server, implementaremos este componente como un componente Java™ y describiremos cómo se integra Process Server.

El escenario de integración cumple con los siguientes principios de diseño:

  • Todas las comunicaciones entre ESB y Business Events se realizan por medio de JMS, para así lograr el rendimiento óptimo. La integración a nivel de JMS se logra mediante el uso de una JMS import (importación JMS) y una JMS export (exportación JMS), para que el flujo de ESB interactúe con Business Events, y usando el Message Queue Connector (Conector de cola de mensajes) para eventos y acciones en Business Events.
  • Todos los eventos publicados en Business Events fluyen lógicamente a través de un módulo de mediación en ESB, que transforma el objeto de negocios específico en la estructura de evento que requiere Business Events.
  • De manera similar, todas las acciones generadas desde Business Events fluyen lógicamente a través de un módulo de mediación, que transforma la estructura genérica de la acción en el objeto de negocios específico que requiere el sistema de procesamiento de acciones.
  • Se usa un esquema genérico para los eventos y las acciones de Business Events con el objetivo de ilustrar cómo se puede lograr el mapeo en ESB sin importar la estructura de los eventos.

Estos principios le garantizan que el sistema de negociación y el cliente no conocen el procesamiento de eventos de negocios que se está llevando a cabo. Por lo tanto, no se requiere ningún tipo de modificación.

Tenga en cuenta que Business Events tiene dos funciones principales en lo que hace a su interacción con ESB. Para las solicitudes que llegan a ESB fluyendo desde el cliente del sistema de negociación, Business Events es un servicio externo o, más precisamente, un observador que detecta patrones de eventos sin influenciar el flujo. Luego de identificar los patrones y de que Business Events genere acciones, Business Events actúa como un cliente que envía solicitudes al flujo de ESB que procesa las acciones.

Terminología

El uso de términos entrantes y salientes es relativo al producto al que hacen referencia. El flujo saliente desde un punto de vista de ESB (es decir, las solicitudes de negociación del cliente que se transforman y envían a Business Events) es entrante para Business Events y viceversa. En este artículo, usaremos la terminología relativa a ESB.

La integración con Business Events que se demostró en este artículo usa el Message Queue Connector. Este conector actúa como un puente entre el proveedor de mensajería en ESB y el proveedor interno de mensajería de Business Events. Este enfoque simplifica la configuración requerida cuando ESB o Business Events ya está instalado. Como se lo indicó en otros artículos de esta serie, Business Events usa temas JMS internamente entre el marco del conector y el motor central de Business Events. Por lo tanto, ESB puede colocar un mensaje directamente en un tema interno de Business Events para que se realice el procesamiento. Si bien esto puede mejorar el rendimiento general, también crea dudas sobre las topologías de implementación (lo que está fuera del alcance de este artículo).

Creación de la solución

Usaremos la aplicación Business Events que creamos en laParte 2para ilustrar cómo usted puede usar ESB como un punto de contacto para enviar eventos y consumir acciones.

Usted puede importar el archivo Project Interchange (Intercambio de proyecto) de la solución a Integration Developer. Ver la sección Descargas o siga las instrucciones que figuran en este artículo para crear el proyecto desde cero. A medida que describimos los pasos necesarios para crear la aplicación, discutiremos los puntos clave de diseño.

Notas:

  1. Las instrucciones y el archivo de intercambio de proyecto aplican a la versión V6.1.01 de ESB, Process Server e Integration Developer.
  2. Las instrucciones asumen que usted ya inició Integration Developer y creó un módulo de mediación nuevo denominado WESBtoWBEIntegration.

Creación de interfaces y objetos de negocios

Business Events requiere que el evento de entrada y los objetos de acción salientes se adecúen a un formato XML general. El tiempo de ejecución de ESB y las herramientas Integration Developer requieren una representación XSD de este formato para que se puedan crear las transformaciones y los enlaces JMS puedan comprender exitosamente el XML entrante y saliente. Estos objetos ya fueron modelados y se los puede descargar desde el archivo Director.xsd. Para importar estos objetos a su aplicación, complete los siguientes pasos:

  1. Seleccione el proyecto WESBtoWBEIntegration en el navegador de Business Integration.
  2. Seleccione File (Archivo) => Import (Importar) => General => File System (Sistema de archivos).
  3. Especifique la ubicación del archivo Director.xsd descargado y tilde el recuadro correspondiente.
  4. Haga clic en Finish (Finalizar).

Como se puede observar en la Figura 2, se crean cuatro objetos de negocios nuevos en su aplicación: connector, connector-bundle, connector-object y field.

Figura 2. Objetos de negocios de Business Events
Objetos de negocios de Business Events

Estos objetos de negocios son representaciones abstractas de cualquier acción o evento entrante o saliente de Business Events. Analicemos la estructura en mayor detalle:

  • Un connector es el elemento XML de alto nivel que le ofrece información tal como el nombre del conector y la fecha y hora de presentación. El elemento connector puede incluir un elemento secundario connector-bundle.
  • Un connector-bundle se corresponde con una acción o con un evento. En la actualidad, un mensaje connector sólo puede incluir un evento o una acción. Sin embargo, un evento o una acción pueden incluir uno o más objetos de eventos o acciones. Estos objetos se representan como connector-objects en el modelo.
  • Un connector-object realiza el mapeo hacia un objeto de un evento o de una acción. Esto incluye el nombre del objeto y un conjunto de campos (fields).
  • Los fields son una serie de pares de valores clave en un connector-object.

La Figura 3 le muestra la estructura jerárquica de los objetos de negocios:

Figura 3. Estructura jerárquica de los objetos de negocios de Business Events
Estructura jerárquica de los objetos de negocios de Business Events

Ahora que ya importó los objetos de negocios genéricos para Business Events, el próximo paso consiste en crear los objetos de negocios específicos para la aplicación. Se requiere la existencia de cuatro objetos de negocios para el Trading System (Sistema de Negociación) o para modelar las acciones específicas que se recibirán desde Business Events. Complete los siguientes pasos para el objeto de negocios SellAfterBuyProcess:

  1. Para crear un objeto de negocios nuevo, seleccione el proyecto WESBtoWBEIntegration desde el navegador de Business Integration.
  2. Seleccione File => New (Nuevo) => Busine****ss Object (Objeto de negocios).
  3. Especifique SellAfterBuyProcess en el campo Name (Nombre) y haga clic en Finish.
  4. Haga clic en el ícono para agregar un elemento.
  5. En la pestaña Description (Descripción) del recuadro Properties (Propiedades), en el campo Name, ingrese CustomerID y seleccione string (cadena) en el campo Type (Tipo).
  6. Haga clic en el íconopara agregar otro elemento.
  7. En la pestaña Description del recuadro Properties, en el campo Name, ingrese Date y seleccione dateTime en el campo Type.
  8. Seleccione File => Save (Guardar) para guardar el objeto de negocios.

Repita los pasos anteriores para los dos próximos objetos de negocios usando la información que le brindamos a continuación:

  • TradeObject representa la negociación que el consumidor final presentó ante el sistema de negociación. La siguiente tabla le muestra los campos de TradeObject.
NameType
StockID (ID del stock)String
CustomerID (ID del cliente)String
Price (Precio)Double (Doble)
Quantity (Cantidad)Double
Date (Fecha)dateTime (Hora)
tradeType (Tipo de negociación)Cadena limitada a BUY (COMPRA) o SELL (VENTA)
  • BuyAcknowledgementProcess es la representación de ESB de un evento BuyAck de Business Events. Tiene los siguientes campos:
NameType
CustomerIDString
StockIDString
DatedateTime

El último objeto de negocios, SpeculativeCustomerProcess, es un súper conjunto de SellAfterBuyProcess. Para crear este objeto de negocios, haga lo siguiente:

  1. Para crear un objeto de negocios nuevo, seleccione el proyecto WESBtoWBEIntegration desde el navegador de Business Integration.
  2. Haga clic en File => New => Business Object.
  3. Especifique SpeculativeCustomerProcess en el campo Name.
  4. Seleccione SellAfterBuyProcess en el campo Inherit from (Heredar desde).
  5. Haga clic en Finish.
  6. Seleccione File => Save para guardar el objeto de negocios.

La Figura 4 le muestra la estructura de los cuatro objetos de negocios.

Figura 4. Estructura jerárquica de los objetos de negocios de la aplicación
Estructura jerárquica de los objetos de negocios de la aplicación

Ahora que ya hemos definido los objetos de negocios para la aplicación, el siguiente paso consiste en crear las interfaces requeridas. Usted deberá crear cuatro interfaces para permitir la comunicación en la aplicación Trade System y la integración con Business Events.

En primer lugar, usted debe crear una interfaz que pueda recibir solicitudes desde el cliente. Complete los siguientes pasos para crear una interfaz de negociación.

  1. Para crear una interfaz nueva, seleccione el proyecto WESBtoWBEIntegration desde el navegador de Business Integration.
  2. Seleccione File => New = > Interface (Interfaz).
  3. Especifique Trading en el campo Name y haga clic en Finish.
  4. Haga clic en el ícono Add one-way operation (Agregar una operación de sentido único).
  5. Cambie el nombre de la operación de operation1 a sendTradeEvent.
  6. Cambie el tipo de la entrada de string a TradeObject.
  7. Seleccione File => Savepara guardar la interfaz.

Repita estos pasos para crear las tres interfaces restantes usando la información que le brindamos a continuación:

  • La interfaz WESB_to_WBE permite el envío de eventos a Business Events para su procesamiento. La interfaz tiene un método de dirección única denominado event_emission c on un único parámetro con un tipo de connector.
  • La interfaz WBE_to_WESB le permite a ESB consumir acciones generadas por Business Events. La interfaz tiene un método de dirección única denominado processAction con un único parámetro con un tipo de connector.
  • CustomerProcess es la interfaz de negocios con el sistema de back-end que procesará las acciones generadas por el sistema Business Events una vez que hayan sido transformadas usando la mediación de ESB. Esta interfaz tiene tres métodos de dirección única para cada tipo de acción definida en el sistema. Las siguientes tablas le muestran los detalles de la interfaz CustomerProcess.
Nombre del métodoNombre del parámetroTipo de parámetro
showSellAfterBuyActioninput1SellAfterBuyProcess
showSpeculativeCustomerActioninput1SpeculativeCustomerProcess
showBuyAcknoledgementActioninput1BuyAcknowledgementProcess

La Figura 5 le muestra las interfaces para la aplicación:

Figura 5. Interfaces para la aplicación
Interfaces para la aplicación

Definición del diagrama de montaje

Ahora que ya ha definido todos los objetos de negocios y las interfaces para la aplicación, está listo para definir las interacciones de alto nivel entre los componentes en el diagrama de montaje.

Como mencionamos con anterioridad, este artículo se concentra en la integración de ESB y Business Events y, por ende, el TradingSystem en sí mismo se omite de la implementación. La aplicación le ofrece una interfaz para que los clientes puedan presentar solicitudes de negociación que se transformarán y reenviarán a Business Events para su procesamiento. Otra interfaz recibe acciones desde Business Events. Luego, a estas acciones se las transforma en objetos de negocios específicos que se envían a un componente stub para su procesamiento. Este componente simplemente registra la solicitud en datos de salida estándar.

Complete los siguientes pasos para crear el diagrama de montaje:

  1. Haga doble clic en el diagrama de montaje en el proyecto WESBtoWBEIntegration en el navegador de Business Integration. Ya se ha creado un módulo de mediación, pero no incluye ninguna interfaz o referencia. Usted las agregará luego.
  2. Arrastre y suelte la interfaz CustomerProcess en el diagrama de montaje y seleccione Component with no Implementation Type (Componente sin tipo de implementación)en el menú de contexto (como se observa en la Figura 6).
    Figura 6. Creación de BackEndSystem
    Creación de BackEndSystem
    Este componente se usa como el sistema de back-end para procesar las acciones derivadas por Business Events. Cambie el nombre del componente BackEndSystem.
  3. Arrastre y suelte la interfaz Trading en el diagrama de montaje y seleccione Export with Web Service Binding (Exportar con enlace de servicio web) y soap/http en el menú de contexto de Transport (Transporte). Esta exportación la usarán los clientes de negocios para acceder al Trading System.
  4. Arrastre y suelte la interfaz WESB_to_WBE en el diagrama de montaje y seleccione Import with no Binding (Importar sin enlace) desde el menú de contexto. Esta interfaz se usará para enviar eventos a Business Events para su procesamiento. Cambie el nombre de la interfaz WBEEvent.
  5. Arrastre y suelte la interfaz WBE_to_WESB en el diagrama de montaje y seleccione Export with no Binding (Exportar sin enlace) en el menú de contexto. Esta interfaz se usa para recibir acciones desde Business Events para su procesamiento. Cambie el nombre de la interfaz WBEAction.
  6. Cuando una acción se envía desde Business Events hasta ESB por medio de una exportación JMS, no existe información contextual para determinar el método que se debería invocar en la interfaz. Para solucionar este problema, hemos creado un selector de función personalizado que define de un modo predeterminado e inamovible el método como processAction(como se observa en el Listado 1). Si la interfaz WBE_to_WESB se define como se lo describe en los pasos anteriores, el selector de función adjunto trabajará sin modificaciones.

    Importe WBEFunctionSelect.jar a su proyecto seleccionando WESBtoWBEIntegration => File => Import (Importar). En la ventana Import, seleccione General => Archive File (Archivo) y haga clic en Next (Siguiente). Seleccione el archivo JAR y haga clic en Finish (Finalizar).

    El Listado 1 le muestra el código del selector de función.

Listado 1. Código del selector de función
public class WBEFunctionSelector implements
FunctionSelector { /** * The function selector is hardcoded to always select * a
method called 'processAction.' If this is incorrect, the value * MUST be modified.
*/ public String generateEISFunctionName(Object[] arg0) throws SelectorException {
return "processAction"; } }
  1. Ahora que ya ha creado la exportación WBE_to_WESB y el selector de función de Business Events, usted debe definir el enlace para la exportación.
    1. Haga clic en el botón derecho del mouse sobre la exportación WBEAction recientemente creada y seleccione Generate Binding (Generar enlace) => Messaging Binding (Enlace de mensajería) => JMS Binding (Enlace JMS).
    2. En el recuadro de diálogo Configure JMS Export Service (Configurar servicio de exportación JMS), especifique la siguiente información (como se observa en la Figura 7):
      • Dominio de mensajería JMS: Seleccione Punto a punto.
      • Configuración de punto final: Seleccione Configurar los nuevos recursos del proveedor de mensajería.
      • Configuración de seguridad: Marque Especificar un alias de credencial de seguridad de Servicios de Autorización y Autenticación Java (JAAS) cuando la seguridad del servidor esté activada.
      • Configuración de enlace de datos: Especifique com.ibm.websphere.sca.jms.data.impl.JMSDataBindingImplXM (El XML del objeto de negocios que usa JMSTextMessage o JMSByteMessage).
      • Configuración del selector de función: Especifique com.ibm.wbe.WBEFunctionSelector.
      Figura 7. Creación del enlace de WBE_to_WESB
      Creación del enlace de WBE_to_WESB
  2. Para definir el enlace para la importación WESB_to_WBE, haga lo siguiente:
    1. Haga clic en el botón derecho del mouse sobre la importación WBEEvent y seleccione Generate Binding => Messaging Binding => JMS Binding.
    2. En el recuadro de diálogo Configure JMS Export Service, especifique la siguiente información (como se observa en la Figura 8):
      • Dominio de mensajería JMS: Seleccione Punto a punto.
      • Configuración de punto final: Seleccione Configurar nuevos recursos de proveedor de mensajería.
      • Configuración de seguridad: Marque Especificar un alias de credencial de seguridad de Servicios de Autorización y Autenticación Java (JAAS) cuando la seguridad del servidor esté activada.
      • Ingreso de datos de autenticación J2C: Especifique SCA_Auth_Alias.
      • Configuración de enlace de datos: Especifique com.ibm.websphere.sca.jms.data.impl.JMSDataBindingImplXM. (El XML del objeto de negocios que usa JMSTextMessage o JMSByteMessage).
      • Configuración del selector de función: Especifique com.ibm.wbe.WBEFunctionSelector.
      • Marque la propiedad de encabezado de mensaje Generate "TargetFunctioName" (Generar "TargetFunctioName") para el Selector de función JMS predeterminado.
      Figura 8. Creación del enlace de WESB_to_WBE
      Creación del enlace de WESB_to_WBE
  3. Cree una implementación stub para el BackEndSystem que consume las acciones de Business Events luego de la transformación realizada por el módulo de mediación de la siguiente manera:
    1. Haga clic en el botón derecho del mouse sobre BackEndSystemy seleccione Generate Implementation (Generar implementación) => Java.
    2. En el recuadro de diálogo Generate Implementation, haga clic en OK (Aceptar). La clase Java del stub se generará automáticamente.
    3. Reemplace los métodos generados con el código que figura a continuación:
Listado 2. Código de reemplazo para los métodos generados
publicvoidshowSellAfterBuyAction(DataObject input1) {
System.out.println("Sell After Buy action"); XMLSerialisationHelper
helper =newXMLSerialisationHelper();try{
System.out.println(helper.writeString(input1)); }catch(Exception e) {
} }publicvoidshowSpeculativeCustomerAction(DataObject input1) {
System.out.println("Speculative Customer action"); XMLSerialisationHelper
helper =newXMLSerialisationHelper();try{
System.out.println(helper.writeString(input1)); }catch(Exception e) {
} }publicvoidshowBuyAcknowledgementAction(DataObject input1) {
System.out.println("Buy Acknowledgement action"); XMLSerialisationHelper
helper =newXMLSerialisationHelper();try{
System.out.println(helper.writeString(input1)); }catch(Exception e) {
} }
  1. Por último, cree las siguientes conexiones entre las exportaciones, las importaciones y el componente SCA:
    • TradingExport1 => WESBtoWBEIntegration
    • WBEAction => WESBtoWBEIntegration
    • WESBtoWBEIntegration => BackEndSystem
    • WESBtoWBEIntegration => WBEEvent

Acaba de terminar de configurar el diagrama de montaje. El diagrama completo debería ser similar al que se puede observar en la Figura 9.

Figura 9. Diagrama de montaje completo
Diagrama de montaje completo

Definición del módulo de mediación

En esta sección, analizaremos el proceso de creación de los flujos de mediación para convertir el objeto de negocios entrante (en formato específico) en el formato genérico de Business Events y, luego de esto, de vuelta al formato específico del objeto de negocios.

  1. Cuando creó el diagrama de montaje, usted agregó interfaces y referencias al módulo de mediación. Por lo tanto, ahora debe regenerar la implementación. Haga clic en el botón derecho del mouse sobre WESBtoWBEIntegration y seleccione Regenerate Implementation (Regenerar implementación). Luego de esto, haga clic en OK.
  2. Para mapear la posible lógica de flujo a nivel de las operaciones, cree el siguiente conexionado:
    • sendTradeObject => eventEmission
    • processAction => showSellAfterBuyAction
    • processAction => showSpeculativeCustomerAction
    • processAction => showBuyAcknowledgementAction

    La Figura 10 ilustra esta configuración.

    Figura 10. Mapeo de operaciones del módulo de mediación
    Mapeo de operaciones del módulo de mediación
  3. Ahora, definamos el flujo de solicitudes de la operación sendTradeObject, que se invoca cuando el cliente envía una solicitud al sistema de negociación para su procesamiento. Es posible enviar dos tipos de evento: compra o venta. El flujo de mediación tiene que filtrar el mensaje entrante, creando una ruta para transformar el mensaje en una estructura de evento Sell (Venta) de Business Events y otra para transformar el mensaje en una estructura de evento Buy (Compra) de Business Events. Resulta importante tener en cuenta que hemos eliminado el sistema de negociación en esta etapa. En el mundo real, existiría una lógica de ramificación para la convocación del sistema de negociación. Pero como nos hemos concentrado en la integración de ESB y Business Events, hemos omitido esta etapa. Seleccione la operación sendTradeObject y complete los siguientes pasos para crear y configurar las primitivas:
    1. Agregue una primitiva MessageFilter al lienzo de la siguiente forma:
      1. Cambie el nombre de la primitiva por SellOrBuyFilter.
      2. Esta primitiva va a rutear el mensaje entrante hacia una de dos transformaciones posibles. Por ende, debemos agregar dos terminales nuevas a la primitiva para representar estas rutas. Seleccione la primitiva y, en la sección Terminal del recuadro Properties, haga clic en el botón derecho del mouse sobre la sección Output terminal (Terminal de salida) y seleccione Add Output Terminal (Agregar terminal de salida). En el recuadro de diálogo Terminal configuration (Configuración de terminal), especifique Buy como el nombre del terminal y haga clic en OK.
      3. Repita este proceso para agregar otra terminal denominada Sell.
      4. Ahora que ya definió las terminales, usted debe especificar la lógica de ruteo. En la sección Details (Detalles) del recuadro Properties, seleccione Add (Agregar). En el recuadro de diálogo Add/Edit (Agregar / Editar), ingrese /body/sendTradeObject/input1/tradeType="BUY" en el campo Pattern (Patrón), asegúrese de que el terminal Buy esté seleccionada en el campo Terminal name (Nombre del terminal) y haga clic en OK.
      5. Repita el paso anterior para crear otro patrón con /body/sendTradeObject/input1/tradeType="SELL" en el campo Pattern y Sell para el terminal.

      Luego de esto, la configuración de la primitiva debería ser similar a la que se puede observar en la Figura 11.

      Figura 11. Propiedades de filtro de mensajes para el evento de negociación
      Propiedades de filtro de mensajes para el evento de negociación
    2. Ahora, agregue dos primitivas de transformación XSL y cámbieles el nombre por ToWBESell y ToWBEBuy. No completaremos la configuración de la hoja de estilo hasta que hayamos terminado el conexionado.
  4. Ahora que ya hemos agregado todas las primitivas al lienzo, usted debe implementar el conexionado que figura en la tabla a continuación:
FuenteNombre del terminalDestinoNombre del terminal
Input NodeoutSellOrBuyFilterIn
SellOrBuyFilterbuyToWBEBuyIn
SellOrBuyFiltersellToWBESellIn
ToWBEBuyoutCallOutIn
ToWBESelloutCallOutIn

Su flujo de mediación debería ser similar al que se puede observar en la Figura 12.

Figura 12. Flujo de mediación de eventos
Flujo de mediación de eventos

Ahora que ya hemos definido el conexionado del flujo, usted puede configurar el XSLT. El Listado 3 es una copia del XML entrante. El Listado 4 es el XML saliente esperado.

Listado 3. XML entrante
<input1>
<StockID>IBM</StockID>
<CustomerID>1234</CustomerID>
<Price>123.50</Price>
<Quantity>1000</Quantity>
<Date>2008-04-26T21:32:52</Date>
<tradeType>BUY</tradeType>
</input1>
Listado 4. XML saliente
<connectorversion="2.2">
<connector-bundletype="event" name="Buy">
<connector-objectname="Trade"> <field name="StockID"
type="String">IBM</field> <field name="CustomerID"
type="String">1234</field> <field name="Price"
type="Real">123.50</field> <field name="Quantity"
type="Real">1000</field> <field name="Date"
type="dateTime">2008-04-26T21:32:52</field>
</connector-object> </connector-bundle>
</connector>

El XML saliente se puede dividir en dos secciones: los valores estándar de plantilla que siguen siendo los mismos para el tipo de evento presentado (resaltados en negrita) y los elementos de los campos que se completan desde el mensaje entrante.

  1. Seleccione la primitiva ToWBEBuy. En la vista Details del recuadro Properties, seleccione New (Nuevo). En el recuadro de diálogo New XML Mapping (Nuevo mapeo XML), seleccione Finish para aceptar todos los valores predeterminados.
  2. La herramienta de mapeo XSLT se visualiza con el mapa fuente a la izquierda y el mapa de destino a la derecha. Expanda la estructura a la izquierda y a la derecha para poder ver todos los elementos.
  3. Haga clic en el botón derecho del mouse sobre los atributos de la versión del elemento connector en el cuerpo de destino y sobre Create Transformation (Crear transformación) en el menú de contexto. Esto crea un recuadro Assign (Asignar) automáticamente a la izquierda de los atributos de la versión (como se observa en la Figura 13).
    Figura 13. Asignación del valor de la versión
    Asignación del valor de la versión
  4. El recuadro Properties debería mostrar la pestaña General automáticamente. Ingrese 3.0 en el campoValue (Valor), como se observa en la Figura 14.
    Figura 14. Configuración del valor de la versión
    Configuración del valor de la versión
  5. Repita este proceso para los atributos type y name del elemento connector-bundle, configurando los valores como event y Buy respectivamente.
  6. Repita el proceso una vez más para el atributo name del elemento connector-object, configurando el valor como Trade. Su transformación debería ser similar a la que se puede observar en la Figura 15.
    Figura 15. Valores estáticos configurados para la transformación del evento
    Valores estáticos configurados para la transformación del evento
  7. La segunda fase de la transformación consiste en copiar la información relevante desde la fuente en el mapa de pares de valores de destino. Comience por seleccionar el elemento StockID de la fuente y conectarlo al elemento field de destino. Esto crea una transformación Inline map automáticamente (como se observa en la Figura 16).
    Figura 16. Creación de la conexión con el elemento field
    Creación de la conexión con el elemento field
  8. Podrá observar una marca de explicación en rojo en Inline map. Esto se debe a la estructura array dentro del mapa de destino. Como hay un solo connector-object en nuestro destino, su índice de array siempre será 1. Y, como éste es el primer elemento field, su índice de array será 1. Para ingresar la información del índice de array, seleccione Inline map y la pestaña Cardinality (Cardinalidad) en el recuadro Properties. Ingrese 1 para el índice de array de connector-object y 1 para el índice de array de field(como se observa en la Figura 17).
    Figura 17. Configuración de la cardinalidad de Inline map
    Configuración de la cardinalidad de Inline map
  9. Ahora que hemos resuelto la estructura de array, usted debe implementar el mapeo hacia inline map. Haga clic en la flecha amarilla que apunta hacia abajoasociada con inline map. Esto mueve el editor de transformación hacia inline map.
  10. Ahora, mueva el valor almacenado en el elemento fuente StockID hasta el valor del elemento field. Cree una conexión entre StockID y value de field (como se observa en la Figura 18).
    Figura 18. Almacenamiento de StockID en value
    Almacenamiento de StockID en value
  11. Luego de esto, usted debe asignar valores estáticos a los atributos name y type del elemento field. De manera similar al proceso que usamos con anterioridad, haga clic en el botón derecho del mouse sobre el atributo name del elemento field y seleccione Create Transformation (Crear transformación). Esto crea un recuadro Assign a la izquierda del atributo name (como se observa en la Figura 19).
    Figura 19. Almacenamiento de valores estáticos en el atributo name
    Almacenamiento de valores estáticos en el atributo name
  12. El recuadro Properties debería mostrar la sección General automáticamente. Ingrese StockID en el campo Value.
  13. Repita este proceso para el atributo type usando String como valor. Ahora, usted debería tener un inline map completo como el que se puede observar en la Figura 20.
    Figura 20. Inline map completo
    Inline map completo
  14. Use la flecha amarilla que apunta hacia arribapara volver al nivel superior de la transformación.
  15. Acaba de completar uno de los cinco inline maps. Usando el mismo proceso, cree cuatro inline maps más con la siguiente información:
    • Cree un inline map entre la fuente CustomerID y el índice del array de destino 2 Field, usando CustomerID para el atributo name y String para el atributo type.
    • Cree un inline map entre la fuente Price y el índice del array de destino 3 Field, usando Price para el atributo name y Real para el atributo type.
    • Cree un inline map entre la fuente Quantity y el índice del array de destino 4 Field, usando Quantity para el atributo name y Real para el atributo type.
    • Cree un inline map entre la fuente Date y el índice del array de destino 5 Field, usando Date para el atributo name y dateTime para el atributo type.

    Acaba de completar la transformación para ToWBEBuy. Dicha transformación debería ser similar a la que se puede observar en la Figura 21.

    Figura 21. Transformación ToWBEBuy completa
    Transformación ToWBEBuy completa
  16. Repita el mismo proceso para la transformación ToWBESell. La única modificación consiste en cambiar el atributo name de connector-bundle por Sell en vez de Buy.

El flujo de mediación para los eventos que ingresan a Business Events está completo. Ahora, debemos concentrarnos en el flujo de mediación de la operación processAction. Seleccione processAction para visualizar el flujo de mediación vacío. Al igual que con el flujo anterior, agregaremos las primitivas requeridas al lienzo de la siguiente manera:

  1. Agregue una primitiva de mediación MessageFilter al lienzo haciendo lo siguiente:
    1. La primitiva va a rutear la acción entrante de Business Events hacia una de las tres transformaciones posibles. Para esto, debemos agregar tres terminales nuevas a la primitiva. Seleccione la primitiva y, en la sección Terminal del recuadro Properties, seleccione la sección Output terminal (Terminal de salida), haga clic en el botón derecho del mouse y seleccione Add Output Terminal (Agregar termina de salida).
    2. Aparecerá la ventana terminal configuration. Ingrese speculativeCustomer como el nombre del terminal y haga clic en OK.
    3. Repita este proceso para agregar otras dos terminales denominadas sellAfterBuy y buyAck.
    4. Luego de definir todas las terminales, usted puede especificar la lógica de ruteo. En la sección Details del recuadro Properties, seleccione Add.
    5. En el recuadro de diálogo Add/Edit, ingrese /body/processAction/input1/connector-bundle/@name='Speculative Customer' en el campo Pattern. Asegúrese de haber seleccionado speculativeCustomer en el campo Terminal name y haga clic en OK.
    6. Repita este proceso para agregar otro patrón con /body/processAction/input1/connector-bundle/@name='Sell After Buy' como el patrón y sellAfterBuy como el terminal.
    7. Repita este proceso para agregar un patrón con /body/processAction/input1/connector-bundle/@name='Buy Ack' como el patrón y buyAck como el terminal.

    La configuración de la primitiva debería ser similar a la que se puede observar en la Figura 22.

    Figura 22. Configuración del filtro de mensajes para la acción
    Configuración del filtro de mensajes para la acción
  2. Agregue tres primitivas de transformación XSL denominadas speculativeCustomerAction, buyAction y sellAfterBuyAction.

Luego de agregar todas las primitivas al lienzo, cree las siguientes conexiones:

FuenteNombre del terminalDestinoNombre del terminal
Input NodeoutActionFilterin
ActionFiltersellAfterBuysellAfterBuyActionin
ActionFilterspeculativeCustomerspeculativeCustomerActionin
ActionFilterbuyAckbuyAckActionin
sellAfterBuyActionoutCallOutin
speculativeCustomerActionoutCallOutin
buyAckActionoutCallOutin

Su flujo de mediación debería ser similar al que se puede observar en la Figura 23.

Figura 23. Conexionado del flujo de mediación de la acción
Conexionado del flujo de mediación de la acción

Luego de definir el conexionado del flujo, usted puede configurar el XSLT. El Listado 5 es una copia del XML entrante. El Listado 6 es el XML saliente esperado.

Listado 5. XML entrante
<connectorversion="3.0">
<connector-bundletype="action" name="Sell After Buy">
<connector-objectname="Trade Out"> <field
name="CustomerID" type="String">1234</field> <field
name="StockID" type="String">IBM</field> <field
name="Date" type="dateTime">2008-04-26T21:32:52</field>
<field name="Quantity" type="Real">9</field>
<field name="Price" type="Real">130.00</field>
<field name="Key" type="String">Key1</field>
</connector-object> </connector-bundle>
</connector>
Listado 6. XML saliente
<input1>
<CustomerID>1234</CustomerID>
<Date>2008-04-26T21:32:52</Date>
</input1>

El XML saliente es una decodificación de los elementos de campo del XML entrante.

  1. Seleccione la primitiva SellAfterBuyAction.
  2. En la vista Details del recuadro Properties, seleccione New.
  3. En el recuadro de diálogo New XML Mapping (Nuevo mapeo XML), seleccione Finishpara aceptar todos los valores predeterminados.
  4. La herramienta de mapeo XSLT aparece con el mapa fuente a la izquierda y el mapa de destino a la derecha. Expanda la estructura a la izquierda y a la derecha para poder observar todos los campos. La estructura de Business Events a la izquierda es una estructura genérica para todas las instancias de eventos y acciones. Usted debe realizar un mapeo desde esta estructura genérica hasta el objeto de negocios específico de la acción. Usted debe mapear dos transformaciones. En primer lugar, seleccione el elemento field y conéctelo con el elemento de destino CustomerID.
  5. Se genera una transformación de submapa. Seleccione la flecha azul que apunta hacia abajo asociada con el submapa y seleccione Custom. El editor XSLT debería ser similar a lo que se puede observar en la Figura 24.
    Figura 24. Mapeo XSLT de la acción
    Mapeo XSLT de la acción
  6. Como se trata de una transformación personalizada, usted debe agregar una expresión XPath personalizada. En la pestaña General del recuadro Properties, agregue $field[@name='CustomerID'] como la expresión XPath personalizada (como se observa en la Figura 25).
    Figura 25. XPath personalizada para el elemento field
    XPath personalizada para el elemento field
  7. Repita este proceso para agregar una conexión entre el elemento field fuente y el elemento de destino Date con una XPath personalizada de $field[@name='Date'].
  8. Usted acaba de completar la configuración de XSLT para la primitiva SellAfterBuyAction. Repita este proceso para las dos primitivas XSLT restantes. La expresión XPath personalizada está en el mismo formato que el que se puede observar con anterioridad: $field[@name='<ELEMENT_NAME>'].
  9. Usted acaba de terminar de desarrollar el flujo de mediación para la aplicación. Seleccione File => Save para guardar el flujo de mediación.

Posibles puntos de integración de Process Server

Como lo mencionamos con anterioridad, se usó un componente Java (BackEndSystem) para simular un sistema (SpeculativeCustomer) que reaccionará a los eventos de negocios identificados por Business Events. Este componente Java se podría reemplazar fácilmente con una importación vinculada con un módulo con una exportación conectada a un proceso de negocios, una tarea humana u otro servicio.

La Figura 26 le muestra la importación SCA que reemplazaría el componente Java. El componente de mediación se debería conectar para llamar al proceso de negocios (como se observa en la Figura 27).

Figura 26. Importación del proceso de negocios
Importación del proceso de negocios
Figura 27. Proceso de negocios
Proceso de negocios

Como lo describimos con anterioridad, el formato de evento genérico que usó Business Events se debe transformar en objetos de negocios específicos a la aplicación. ESB le ofrece esta capacidad y es una parte clave de la integración entre Business Events y Process Server. Debido a que ESB transforma los datos de los eventos en datos específicos a la aplicación, los eventos de negocios identificados en Business Events pueden impulsar el procesamiento en aquellas aplicaciones que funcionan en Process Server.


Instalación y prueba del escenario

La solución de integración de ESB y Business Events se basa en el uso de un conector de cola de mensajes para los eventos y las acciones de Business Events. Esencialmente, el conector procesa vínculos entre la instancia de ESB y WebSphere Application Sever (donde se ejecuta el tiempo de ejecución de Business Events), transfiriendo mensajes desde una cola hacia otra.

Esta sección describe cómo probar el módulo de mediación que usted creó con anterioridad. Este proceso se puede dividir en cuatro secciones:

  • Instalación de la aplicación de ESB
  • Configuración del proveedor de mensajería de ESB
  • Modificación e instalación de la aplicación de Business Events
  • Prueba del escenario

Instalación de la aplicación de ESB

Los siguientes pasos asumen que usted ya cumplió con todos los pasos que se mencionan en este artículo para crear la aplicación en la sección anterior o que importó el archivo de intercambio de proyecto completo.

  1. En Integration Developer, inicie WebSphere ESB Server v6.1 desde el recuadro Servers (Servidores).
  2. Agregue el proyecto WESBtoWBEIntegration al servidor haciendo clic en el botón derecho del mouse sobre WebSphere ESB Server v6.1 en el recuadro Servers y seleccionando Add and Remove Projects (Agregar y eliminar proyectos).
  3. En el recuadro de diálogo Add and Remove Projects, seleccione WESBtoWBEIntegration y haga clic en Add. Luego de esto, haga clic en Finish.
  4. En la pestaña Servers, usted debería ver que la aplicación se implementó en el servidor (como se observa en la Figura 28).
    Figura 28. Aplicación de ESB implementada en el servidor
    Aplicación de ESB implementada en el servidor

Configuración del proveedor de mensajería de ESB

Desafortunadamente, la fábrica de conexión generada durante la instalación de la aplicación de ESB no es una fábrica de conexión de colas como lo requiere Business Events. Por lo tanto, usted debe crear una Queue Connection Factory (Fábrica de conexión de colas) manualmente para acceder.

  1. Dirija su navegador hacia la consola de administración de ESB. Por ejemplo: http://localhost:9060/admin
  2. Ingrese el nombre de usuario y la clave (los valores predeterminados para ambos campos son admin) y haga clic en Log in (Iniciar sesión).
  3. Seleccione Resources (Recursos) => JMS => Queue connection factories (Fábricas de conexión de colas), como se observa en la Figura 29.
    Figura 29. Selección de Queue Connection Factories
    Selección de Queue Connection Factories
  4. En el campo Scope (Alcance), seleccione server level (nivel del servidor) y haga clic en New.
  5. Seleccione Default messaging provider (Proveedor de mensajería predeterminado) y haga clic en OK.
  6. Especifique los siguientes valores:
    • Nombre: Business Events Connection Factory
    • Nombre de JNDI: jms/WESBtoBusiness Eventscf
    • Nombre del bus: SCA.APPLICATION.xxxCell.Bus
    • Alias de autenticación gestionado por el componente: SCA_Auth_Alias
    • Es posible que deba ingresar un Provider endpoint (Punto final del proveedor) si no está usando la configuración predeterminada del puerto. Sin embargo, esto dependerá de su configuración. Ingrese al Centro de información de WebSphere Application Server para mayor información.
    • Haga clic en OK.

    La Figura 30 le muestra la fábrica de conexión de colas creada.

    Figura 30. Fábrica de conexión de colas creada
    Fábrica de conexión de colas creada
  7. Haga clic en Save.
  8. Reinicie el servidor ESB para efectivizar las modificaciones.

Modificación e instalación de la aplicación de Business Events

Antes de probar el escenario, usted debe realizar algunas modificaciones a la aplicación de Business Events para que ésta pueda recibir eventos y enviar acciones a las colas JMS en las que escuchará ESB y, luego de esto, implementar la aplicación.

  1. Inicie WebSphere Business Events Director Data.
  2. Seleccione File > Open Project (Abrir proyecto) y especifique la ubicación de la aplicación Trading.xml provista en la sección Descargas.
  3. Debajo de Touchpoints (Puntos de contacto), expanda Trade System para visualizar los eventos y las acciones asociadas (como se observa en la Figura 31).
    Figura 31. Eventos y acciones de Trade System
    Eventos y acciones de Trade System
  4. Haga clic en el botón derecho del mouse sobre el evento Buy y seleccione Event Properties (Propiedades del evento).
  5. En el recuadro de diálogo Event Buy Properties (Propiedades del evento Buy), seleccione la pestaña Connection (Conexión).
  6. Desmarque File System Connection (Conexión del sistema de archivos), si está marcada, y marque Message Queue Connection (Conexión de cola de mensajes). Luego de esto, haga clic en Configure (Configurar).
  7. En el recuadro de diálogo Message Queue Event Connection (Conexión de evento de cola de mensajes), especifique WESBtoWBEIntegration/WBEEvent_SEND_D en el campo Queue Name (Nombre de cola). (Si le colocó un nombre diferente al módulo de mediación o a las importaciones / exportaciones JMS, este nombre será incorrecto y usted deberá encontrar el valor de JNDI JMS Queue (Cola JMS de JNDI) en la consola de administración de ESB o Process Server seleccionando Resources => JMS => Queues (Colas).)
  8. Haga clic en Provider (Proveedor).
  9. En el recuadro de diálogo Provider, especifique lo siguiente (como se observa en la Figura 32):
    1. Seleccione com.ibm.websphere.naming.WsnInitialContextFactory en el campo Context Factory Class (Clase de fábrica de contexto).
    2. Especifique la URL para el proveedor de JMS. Si ESB es el único servidor en la máquina, éste será el valor predeterminado: iiop://localhost:2809. Dependiendo de su configuración de ESB y Process Server, es posible que deba personalizar esta configuración.
    3. En el campo Factory Name (Nombre de fábrica), ingrese jms/WESBtoWBEcf.
    4. Si la seguridad está activada en su sistema ESB o Process Server, configure Username y Password para permitir que el conector establezca una conexión. El valor predeterminado para ambos campos es Admin.
    5. Haga clic en OK.
    Figura 32. Configuración del proveedor de JMS
    Configuración del proveedor de JMS
  10. En el recuadro de diálogo Message Queue Event Connection, haga clic en Apply (Aplicar) y, luego de esto, sobre OK.
  11. En el recuadro de diálogo Event Buy Properties (Propiedades del evento Buy), haga clic en OK.
  12. Repita el mismo proceso para configurar el evento Sell.
  13. Repita el mismo proceso para configurarlas acciones Buy Ack, Sell After Buy y Speculative Customer (Cliente especulativo), pero ingrese el siguiente JNDI JMS Queue Name (Nombre de cola JMS de JNDI): WESBtoWBEIntegration/WBEAction_RECEIVE_D.
  14. De no haberlo hecho, inicie su entorno de tiempo de ejecución de Business Events y todos los servidores de base de datos asociados.
  15. Para implementar la aplicación en el servidor, seleccione Tools (Herramientas) => Repositories (Repositorios).
  16. Seleccione todos los activos y haga clic enAdd In (Agregar en).
  17. En el recuadro de diálogo Repository Properties (Propiedades del repositorio), ingrese los detalles de conexión para el servidor de Business Events (por ejemplo, localhost y 9080) y haga clic en OK.
  18. Complete los campos User name (Nombre de usuario) y Password (Clave)(el valor predeterminado para ambos campos es admin) y haga clic en Login.
  19. Cierre la ventana Repository (Repositorio) y cierre Director Data.
  20. Dirija su navegador hacia la consola de administración de Business Events. Por ejemplo: http://localhost:9060/admin. (Si hay instaladas múltiples instancias de Application Server, es posible que la información del puerto sea diferente.)
  21. Seleccione Applications (Aplicaciones) => Enterprise Applications (Aplicaciones empresariales).
  22. Marque WBERuntimeEAR y haga clic en Stop (Detener)(como se observa en la Figura 33).
    Figura 33. Detención de la aplicación de Business Events
    Detención de la aplicación de Business Events
  23. Marque WBERuntimeEAR una vez más y haga clic en Start (Iniciar).
  24. Abra una solicitud de comando y navegue hacia <WBE_INSTALL>\director\bin.
  25. Inicie el marco del conector ingresando el comando: connector.bat.

La aplicación de Business Events se instaló exitosamente y se inició el conector. Ahora, usted está listo para probar la integración de ESB.

Prueba del escenario

Usted usará Integration Developer Web Service Explorer para probar la solución.

  1. En la perspectiva de Business Integration, haga clic en la pestaña Physical Resources (Recursos físicos).
  2. Expanda el proyecto WESBtoWBEIntegration, haga clic en el botón derecho del mouse sobre WESBtoWBEIntegration_TradingExport1.wsdl y seleccione Web Services (servicios web) => Test with Web Service Explorer (Probar con Web Service Explorer).
  3. En Web Service Explorer, haga clic en sendTradeObject.
  4. Especifique la siguiente información:
    • ID del producto: IBM
    • ID del cliente: 12345
    • Precio: 130.00
    • Cantidad: 100
    • Fecha: 2008-06-06T10:58:45.651Z
    • Tipo de negociación: Buy
  5. Haga clic en Go (Continuar).
  6. Repita el proceso pero seleccione Sell como Tipo de negociación en vez de Buy.
  7. Haga clic en la pestaña Console (Consola). Usted debería poder ver una acción Sell After Buy y Buy Acknowledgement (como se observa en la Figura 34).
Figura 34. Ejemplo del resultado de la aplicación
Ejemplo del resultado de la aplicación

Resumen

En este artículo, usted aprendió a crear una aplicación que demuestra los puntos de integración entre ESB y Business Events para eventos y acciones. Usando un componente de flujo de mediación, usted creó transformaciones XSLT para transformar los mensajes específicos a la aplicación en el formato soportado por Business Events. También creó un flujo de mediación que contiene transformaciones XSLT para procesar las acciones enviadas por Business Events. Luego de esto, usted configuró los recursos JMS para ESB para enviar los eventos a Business Events y para que Business Events envíe las acciones a ESB. Por último, usted probó la solución con eventos enviados a ESB y, luego, a Business Events, y vio acciones generadas por Business Events y consumidas por ESB.


Descargas

DescripciónNombretamaño
Project interchange containing the mediation flowsWESBtoWBEIntegration.zip35KB
Schema representing WBE events and actionsDirector.zip1KB
XML for the trading systemTradingSystem.zip3KB

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=484584
ArticleTitle=Procesamiento de eventos de negocios con WebSphere Business Events - Parte 4: Integración de Business Events con WebSphere Enterprise Service Bus y WebSphere Process Server
publish-date=07292011