Información general de enrutamiento

Al diseñar soluciones de arquitectura orientadas a los servicios, suele resultar útil crear un servicio intermedio que se encargue de enrutar los mensajes entrantes a sus destinos en función de un conjunto de reglas personalizables. Un servicio intermedio proporciona varias ventajas como:

  • Enrutamiento basado en contenido

    • Agregación de servicios

    • Control de versiones de servicios

    • Enrutamiento de prioridad

  • Puente protocolar

  • Control de errores

Aunque es posible crear un servicio intermedio que logre uno o más de estos objetivos, a menudo este tipo de implementación está vinculado a una solución o un escenario concretos y no se puede aplicar directamente a las nuevas aplicaciones.

El servicio de enrutamiento proporciona un intermediario de SOAP genérico, dinámicamente configurable y conectable que se combina con los modelos del canal y de servicio WCF y le permite realizar enrutamiento basado en contenido de mensajes basados en SOAP.

Ee517423.note(es-es,VS.100).gifNota:
Actualmente, el servicio de enrutamiento no permite enrutar servicios de WCF REST. Para enrutar las llamadas del RESTO, puede usar System.Web.Routing o Solicitud Enrutamiento (https://go.microsoft.com/fwlink/? LinkId=164589).

Enrutamiento basado en contenido

El enrutamiento basado en contenido es la capacidad de enrutar un mensaje en función de uno o más valores contenidos dentro del mensaje. El servicio de enrutamiento inspecciona cada mensaje y lo enruta al extremo de destino en función del contenido del mensaje y de la lógica de enrutamiento creada. El enrutamiento basado en contenido proporciona una base para la agregación de servicios, el control de versiones del servicio y el enrutamiento de prioridad.

El servicio de enrutamiento le permite configurar la lógica usada para realizar enrutamientos basados en contenido, así como actualizar dinámicamente la lógica del enrutamiento en tiempo de ejecución.

Agregación de servicios

Mediante el enrutamiento basado en contenido, puede exponer un extremo que recibe los mensajes de las aplicaciones cliente externas y, a continuación, enruta cada mensaje al extremo interno adecuado en función de un valor del mensaje. Esto es útil para proporcionar un extremo concreto para diversas aplicaciones back-end y también presentar un extremo de la aplicación a los clientes mientras factoriza su aplicación en diversos servicios.

Control de versiones del servicio

Cuando migra a una nueva versión de la solución, puede que tenga que mantener la versión antigua en paralelo para servir a los clientes existentes. A menudo, esto requiere que los clientes que se conectan a la versión más reciente usen una dirección diferente al comunicarse con la solución. El servicio de enrutamiento le permite exponer un extremo de servicio que sirve a ambas versiones de la solución enrutando los mensajes a la solución adecuada en función de la información específica de la versión contenida en el mensaje.

Enrutamiento de prioridad

Al proporcionar un servicio para varios clientes, puede tener un contrato de nivel de servicio con algunos socios que requiere que todos los datos de estos socios se procesen por separado de los de otros clientes. Mediante un filtro que busca la información específica del cliente incluida en el mensaje, puede enrutar con facilidad los mensajes de socios concretos a un extremo creado para cumplir los requisitos de su contrato de nivel de servicio.

Puente protocolar

Uno de los desafíos en escenarios intermedios es que los extremos internos pueden tener distintos requisitos de versión de SOAP o transporte que el extremo en el que se reciben los mensajes. Para admitir este escenario, el servicio de enrutamiento puede acortar los protocolos, incluido el procesamiento del mensaje de SOAP a MessageVersion requerido por los extremos de destino. De esta manera, se puede usar un protocolo para la comunicación interna, mientras que el otro se usa para la comunicación externa.

Control de errores

Otro desafío al que se enfrentan los intermediarios es qué hacer cuando se detecta un error en la transmisión al destino. El servicio de enrutamiento le permite definir extremos adicionales que se usarán para enviar el mensaje en el caso de un error de comunicación al realizar el envío al destino primario. Esto le permite implementar múltiples copias redundantes de un servicio como copias de seguridad en caso de un error de la red u otros errores de comunicación.