Cómo: Implementar el enrutamiento basado en contenido mediante propiedades de contexto de mensaje
Objetivo
En esta sección se muestra cómo usar el itinerario del kit de herramientas de Microsoft BizTalk ESB Designer para crear un itinerario que seleccione un destinatario del mensaje basado en la propiedad de contexto del mensaje y, a continuación, enruta un mensaje a ese destinatario mediante el servicio de mensajería de Broker de itinerarios.
En este tema, completará los pasos siguientes:
Cree un itinerario con un agente de itinerarios y dos servicios de enrutamiento con solucionadores estáticos.
Pruebe el itinerario mediante la aplicación de ejemplo Cliente de prueba de itinerarios.
Nota
No se proporciona ningún servicio de agente basado en orquestación en la implementación actual.
Requisitos previos
Los procedimientos de este tema de procedimientos requieren la finalización de los requisitos previos para las actividades de desarrollo.
Pasos
Para crear un modelo DSL de itinerarios de ESB
En Visual Studio, abra C:\HowTos\Patterns\Patterns.sln.
En Explorador de soluciones, haga clic con el botón derecho en ItinerarioLibrario, seleccione Agregary, a continuación, haga clic en Nuevo itinerario.
En el cuadro de diálogo Agregar nuevo elemento , haga clic en ItinerarioDsl en el panel Plantillas.
En el cuadro Nombre , escriba ChoiceRouter y, a continuación, haga clic en Agregar.
Para configurar las propiedades del itinerario
En Visual Studio, haga clic en la superficie de diseño del itinerario de ChoiceRouter . En el ventana Propiedades ChoiceRouter, configure las siguientes propiedades:
En la lista desplegable Exportador de modelos, haga clic en Exportador de itinerarios XML.
En la sección Configuración de extensor , haga clic en el botón de puntos suspensivos (...) situado junto a la propiedad Archivo XML de itinerario .
En la lista desplegable Propiedad Modo de exportación , haga clic en Estricto.
En el cuadro de diálogo Seleccionar archivo XML , escriba C:\HowTos\Itinerarios\ChoiceRouter en el cuadro Nombre de archivo y, a continuación, haga clic en Guardar.
Nota
Este paso le permite exportar el itinerario como XML a una ubicación de archivo local. Al exportar un itinerario a una ubicación de archivo local, en lugar de a la base de datos de itinerarios, puede probar el itinerario mediante la aplicación cliente de prueba de ESB. Completará este proceso más adelante en este tema de procedimientos.
Para definir la estructura del itinerario
En el Cuadro de herramientas, arrastre un elemento de modelo on-Ramp a la superficie de diseño. En el ventana Propiedades OnRamp1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ReceiveNAOrder.
En la lista desplegable Extender , haga clic en Extensor de rampa.
En la lista desplegable Aplicación de BizTalk , haga clic en Microsoft.Practices.ESB.
En la lista desplegable Puerto de recepción, haga clic en OnRamp.Itinerary.
En el Cuadro de herramientas, arrastre un elemento de modelo del servicio De Broker de itinerarios a la superficie del diseñador y, a continuación, colóquelo en el lado derecho del elemento de modelo On-Ramp . En ItineraryBrokerService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba RouteBrokerService.
En la lista desplegable Extender , haga clic en Extensor de agente de mensajería.
En la lista desplegable Contenedor , expanda ReceiveNAOrdery, a continuación, haga clic en Controladores de recepción.
En la lista desplegable Nombre de servicio , haga clic en Microsoft.Practices.ESB.Itinerary.Services.Broker.MessagingBroker.
Haga clic con el botón derecho en la colección Filter y, a continuación, haga clic en Agregar nuevo filtro. En el ventana Propiedades Filter1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ASMXFilter.
Haga clic en la lista desplegable Implementación de filtros y, a continuación, haga clic en Filtro XPath.
Haga clic en la propiedad Expression y escriba count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ProcessItinerary.asmx')]) > 0.
Haga clic con el botón derecho en la colección Filter y, a continuación, haga clic en Agregar nuevo filtro. En el ventana Propiedades Filter1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba WCFFilter.
Haga clic en la lista desplegable Implementación de filtros y haga clic en Filtro XPath.
Haga clic en la propiedad Expression y escriba count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ESB. ItineraryServices.WCF')]) > 0.
Haga clic con el botón derecho en la colección Resolver del elemento de modelo RouteBrokerService y, a continuación, haga clic en Agregar nuevo solucionador. En el ventana Propiedades Resolver1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ResolverBrokerRoute.
En la lista desplegable Implementación del solucionador , haga clic en Extensión de resolución messageContext.
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento del modelo ReceiveNAOrder al elemento de modelo RouteBrokerService .
En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo en el elemento modelo RouteBrokerService . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba RouteToFileFromASMX.
En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender de mensajería.
Nota
Esta propiedad define que el proceso tendrá lugar en una canalización (mensajería). Como alternativa, si el proceso tendrá lugar en una orquestación, establezca la propiedad Itinerary Service Extender en Orchestration Extender.
En la lista desplegable Contenedor , expanda ReceiveNAOrdery, a continuación, haga clic en Controladores de recepción.
En la lista desplegable Nombre de servicio , haga clic en Microsoft.Practices.ESB.Services.Routing.
Haga clic con el botón derecho en la colección Resolver del elemento de modelo RouteToFileFromASMX y, a continuación, haga clic en Agregar nuevo solucionador. En el ventana Propiedades Resolver1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ResolverFromAsmx.
En la lista desplegable Implementación del solucionador , haga clic en Extensión de resolución estática.
En la lista desplegable Nombre de transporte , haga clic en ARCHIVO.
Haga clic en la propiedad Ubicación de transporte y escriba c:\howtos\out\asmx%MessageId%.xml.
Desde el Cuadro de herramientas, arrastre un elemento de modelo Off-Ramp a la superficie de diseño y colóquelo a la derecha del elemento de modelo RouteToFileFromASMX . En el ventana Propiedades OffRamp1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendASMXOrder.
En la lista desplegable Extender , haga clic en Off-Ramp ESB Extender.
En la lista desplegable Aplicación de BizTalk , haga clic en GlobalBank.ESB.
En la lista desplegable Puerto de envío, haga clic en DynamicResolutionOneWay.
En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo entre el elemento de modelo RouteToFileFromASMX y el elemento de modelo SendASMXOrder . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendPortFilterASMX.
En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender fuera de rampa.
En la lista desplegable Off-Ramp ,expanda SendASMXOrdery, a continuación, haga clic en Send Handlers (Enviar controladores).
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo RouteToFileFromASMX al elemento de modelo SendPortFilterASMX .
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo SendPortFilterASMX al elemento de modelo SendASMXOrder .
En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo a la derecha del elemento de modelo RouteBrokerService . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba RouteToFileFromWCF.
En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender de mensajería.
Nota
Esta propiedad define que el proceso tendrá lugar en una canalización (mensajería). Como alternativa, si el proceso tendrá lugar en una orquestación, establezca la propiedad Itinerary Service Extender en Orchestration Extender.
En la lista desplegable Contenedor , expanda ReceiveNAOrdery, a continuación, haga clic en Controladores de recepción.
En la lista desplegable Nombre de servicio , haga clic en Microsoft.Practices.ESB.Services.Routing.
Haga clic con el botón derecho en la colección Resolver del elemento de modelo RouteToFileFromWCF y, a continuación, haga clic en Agregar nuevo solucionador. En el ventana Propiedades Resolver1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ResolverFromWCF.
En la lista desplegable Implementación del solucionador , haga clic en Extensión de resolución estática.
En la lista desplegable Nombre de transporte, haga clic en ARCHIVO.
Haga clic en la propiedad Ubicación de transporte y escriba c:\howtos\out\wcf%MessageId%.xml.
Desde el Cuadro de herramientas, arrastre un elemento modelo Off-Ramp a la superficie de diseño y colóquelo a la derecha del elemento de modelo RouteToFileFromWCF . En el ventana Propiedades OffRamp1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendWCFOrder.
En la lista desplegable Extender , haga clic en Off-Ramp ESB Extender.
En la lista desplegable Aplicación de BizTalk , haga clic en GlobalBank.ESB.
En la lista desplegable Puerto de envío, haga clic en DynamicResolutionOneWay.
En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo entre el elemento de modelo RouteToFileFromWCF y el elemento de modelo SendWCFOrder . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendPortFilterWCF.
En la lista desplegable Extender del servicio de itinerarios , haga clic en Extensor de rampa desactivada.
En la lista desplegable Off-Ramp ,expanda SendWCFOrdery, a continuación, haga clic en Send Handlers (Enviar controladores).
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo RouteToFileFromWCF al elemento de modelo SendPortFilterWCF .
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo SendPortFilterWCF al elemento de modelo SendWCFOrder .
En el cuadro de herramientas, arrastre un elemento de modelo Deportar itinerario al borde derecho de RouteBrokerService. En el ventana Propiedades De itinerarioBrokerOutPort1, configure las siguientes propiedades:
Haga clic en la propiedad Name y, a continuación, escriba Puerto WCF.
En la lista desplegable Filtro , haga clic en WCFFilter.
En la lista desplegable Resolver , haga clic en ResolverBrokerRoute.
En el Cuadro de herramientas, arrastre un elemento de modelo Deportar itinerario al borde inferior de RouteBrokerService. En el ventana Propiedades De itinerarioBrokerOutPort1, configure las siguientes propiedades:
Haga clic en la propiedad Nombre y, a continuación, escriba PUERTO ASMX.
En la lista desplegable Filtro , haga clic en ASMXFilter.
En la lista desplegable Resolver , haga clic en ResolverBrokerRoute.
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento modelo port de WCF al elemento de modelo RouteToFileFromWCF .
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento modelo de puerto ASMX al elemento de modelo RouteToFileFromASMX .
Para exportar el modelo para su uso con el cliente de prueba de itinerarios
Nota
Tendrá que exportar el itinerario dos veces: una vez en XML y una vez a la base de datos para probar el enrutamiento a través del agente.
En Visual Studio, haga clic con el botón derecho en la superficie de diseño del itinerario de ChoiceRouter y, a continuación, haga clic en Exportar modelo.
Nota
La versión XML del itinerario se abre en Visual Studio.
En el Explorador de Windows, vaya a C:\HowTos\Itinerarios y, a continuación, observe la creación del XML del itinerario (ChoiceRouter.xml).
En Visual Studio, haga clic con el botón derecho en la superficie de diseño del itinerario de ChoiceRouter y, a continuación, haga clic en Exportar modelo.
En el ventana Propiedades, haga clic en Exportador de itinerarios de base de datos en la lista desplegable Exportador de modelos.
En el ventana Propiedades, establezca la propiedad Base de datos de itinerarios cadena de conexión para que apunte a la base de datos de itinerarios.
En la lista desplegable Estado del itinerario , seleccione Implementado.
En Visual Studio, haga clic con el botón derecho en la superficie de diseño del itinerario de ChoiceRouter y, a continuación, haga clic en Exportar modelo.
Para probar el itinerario
Abra la aplicación de ejemplo Cliente de prueba de itinerarios mediante el acceso directo creado durante los requisitos previos para las actividades de desarrollo (C:\HowTos\ESB.Itinerary.Test.exe - Acceso directo).
En el cliente de prueba de itinerarios, desactive la casilla Usar servicio WCF y, a continuación, haga clic en Cargar itinerario.
En el cuadro de diálogo Abrir archivo de itinerario , vaya a C:\HowTos\Itinerarios. Seleccione ChoiceRouter.xmly haga clic en Abrir para cargar el itinerario.
Haga clic en Aceptar para cerrar el mensaje "Itinerario cargado correctamente".
En el cliente de prueba de itinerarios, haga clic en el botón de puntos suspensivos (...) situado junto al cuadro Cargar mensaje .
En el cuadro de diálogo Seleccionar documento XML para cargar , vaya a C:\Patterns\HowTos. Seleccione NAOrderDoc.xml y haga clic en Abrir para cargar el mensaje de prueba.
Haga clic en el botón Enviar solicitud . Cuando finalice la prueba, haga clic en Aceptar para cerrar el mensaje de confirmación que aparece.
En el Explorador de Windows, vaya a C:\HowTos\Out. Compruebe que los mensajes ASMX%MessageID%.xml se han escrito en este directorio.
Haga clic en la casilla Usar el servicio WCF del cliente de prueba de itinerarios. En el cuadro Nombre del itinerario , escriba ChoiceRouter y, a continuación, haga clic en el botón Enviar solicitud . Cuando se complete la prueba, haga clic en Aceptar para cerrar el mensaje de confirmación.
En el Explorador de Windows, vaya a C:\HowTos\Out. Compruebe que los mensajes WCF%MessageID%.xml se han escrito en este directorio.
Recursos adicionales
Para obtener más información, vea los siguientes temas relacionados: