Cómo usar puertos de enlace directo de orquestación de socio
Los puertos de enlace directo de orquestación de socio permiten llevar a cabo la comunicación entre orquestaciones a través de los puertos. Puede crear dos patrones de comunicación: enlace directo de orquestación de asociados reenviado y enlace directo de orquestación inversa de asociados. Esos dos patrones proporcionan comunicación explícita entre las orquestaciones, lo que significa que existe una orquestación destinataria específica cuando se usa el enlace directo de orquestación de socio de avance y una orquestación remitente específica cuando se usa el enlace directo de orquestación de socio inverso.
También puede diseñar enlaces directos de orquestación de socio implícitos, siguiendo uno de estos procedimientos:
Haga que el receptor sea un puerto de enlace directo de cuadro de mensajes y cree un filtro que acepte mensajes de una orquestación de envío concreta.
Haga que el remitente sea un puerto de enlace directo de cuadro de mensajes y promocione propiedades que coincidan con una suscripción en la orquestación de recepción.
Para configurar un puerto enlazado directo de orquestación de asociados, en el Asistente para configuración de puertos, especifique Direct for Port binding (Direct for Port binding ) y seleccione To receive messages from other orchestrations (Para recibir mensajes de otras orquestaciones), seleccioneeste puerto aquí y en esas orquestaciones, en función de si recibe o envía mensajes en este puerto. A continuación, seleccione el puerto en la lista desplegable Puerto en orquestación de asociados . El tipo de puerto de ambos puertos debe ser el mismo, lo que significa que el tipo de mensaje también debe ser el mismo. Además, para poder dirigir el enlace a un puerto de orquestación de asociados, el modificador de tipo del tipo de puerto debe ser Interno para orquestaciones dentro del mismo ensamblado o Público para permitir que una orquestación de otro ensamblado se enlace a él. Las polaridades de los puertos deben ser opuestas. Por ejemplo, si un extremo es un puerto de envío, el otro debe ser de recepción.
Para obtener un ejemplo de cómo usar puertos enlazados directos de orquestación de asociados, consulte el ejemplo del SDK "Enlace directo a una orquestación" en https://go.microsoft.com/fwlink/?LinkId=73703.
Enlace directo de orquestación de socio de avance
Es el patrón de comunicación típico que se usa para el enlace directo de orquestación de socio. Este tipo de enlace de orquestación de socio de avance permite enlazar varios remitentes al mismo destinatario.
Para configurar el enlace directo de orquestación de socio de avance, haga lo siguiente:
En Orquestación A, seleccione la forma Puerto en el Cuadro de herramientas de orquestación. De esta forma, se inicia el Asistente para configuración de puertos.
En la página Propiedades del puerto , en el campo Nombre , escriba
MyReceivePort
. Haga clic en Next.En la página Seleccionar un tipo de puerto , seleccione Crear un nuevo tipo de puerto. En el campo Nombre del tipo de puerto , escriba
MyPartnerPortType
. Haga clic en Next.En la página Enlace de puerto, en la lista desplegable Dirección del puerto de comunicación , seleccione Siempre recibiré mensajes en este puerto. En la lista desplegable Enlace de puertos, seleccione Directo.
Seleccione Para recibir mensajes de otras orquestaciones, seleccione este puerto aquí y en esas orquestaciones y, a continuación, en la lista desplegable Puerto en orquestación de asociados , seleccione OrchestrationA.MyReceivePort. Haga clic en Next.
En la página Finalización del Asistente para puertos, haga clic en Finalizar.
En Orquestación B, seleccione la forma Puerto en el Cuadro de herramientas de orquestación. De esta forma, se inicia el Asistente para configuración de puertos.
En la página Propiedades del puerto , en el campo Nombre , escriba
MySendPort
. Haga clic en Next.En la página Seleccione un tipo de puerto , seleccione Utilizar un tipo de puerto existente. En Tipos de puerto disponibles, seleccione MyPartnerPortType y, a continuación, haga clic en Siguiente.
En la página Enlace de puerto, en la lista desplegable Dirección del puerto de comunicación , seleccione Siempre enviaré mensajes en este puerto. En la lista desplegable Enlace de puertos, seleccione Directo.
Seleccione Para enviar mensajes a otras orquestaciones, seleccione este puerto aquí y en esas orquestaciones y, a continuación, en la lista desplegable Puerto en orquestación de asociados , seleccione OrchestrationA.MyReceivePort. Haga clic en Next.
En la página Finalización del Asistente para puertos, haga clic en Finalizar.
Nota
Existe un enlace seguro desde la orquestación remitente hasta la orquestación receptora. Por consiguiente, si desea modificar la orquestación receptora o si desea cambiar la versión de la orquestación destinataria, deberá actualizar la configuración en tiempo de diseño del puerto de enlace directo de orquestación de socio remitente. No obstante, debido a que la orquestación receptora no tiene un conocimiento explícito de la orquestación remitente, puede actualizar la orquestación remitente sin que afecte a la orquestación destinataria.
En la configuración anterior, la orquestación A es el destinatario y la orquestación B es el remitente. La configuración permite a Orchestration B enviar mensajes a OrchestrationA.MyReceivePort y permite a Orchestration A recibir los mensajes enviados a OrchestrationA.MyReceivePort. Además, puede agregar una orquestación C que sea el segundo remitente y una orquestación D que sea el tercer remitente, usando la misma configuración que para la orquestación B.
Enlace directo de orquestación de socio inverso
No se trata del patrón de comunicación típico que se usa para el enlace directo de orquestación de socio. En este patrón, la dirección del enlace es inversa a la dirección de comunicación. Este tipo de enlace de orquestación de socio inverso permite que un solo remitente se comunique con varios receptores.
Nota
Si usa un tipo de puerto bidireccional con el enlace de orquestación de socio inverso, entonces debe configurar los filtros de recepción para garantizar que solo uno de los destinatarios consuma este mensaje. Esto se debe a que un puerto de petición-respuesta espera una sola respuesta. Si varios destinatarios reciben el mensaje, entonces el puerto de petición-respuesta acepta la primera respuesta y todas las respuestas subsiguientes se suspenden sin posibilidad de reanudarlas. El motor de mensajería produce una excepción cuando se intenta enviar el mensaje en esta situación e indica que hay varios destinatarios para un puerto de petición-respuesta.
Para configurar el enlace directo de orquestación de socio inverso, haga lo siguiente:
En Orquestación A, seleccione la forma Puerto en el Cuadro de herramientas de orquestación. De esta forma, se inicia el Asistente para configuración de puertos.
En la página Propiedades del puerto , en el campo Nombre , escriba
MySendPort
. Haga clic en Next.En la página Seleccionar un tipo de puerto , seleccione Crear un nuevo tipo de puerto. En el campo Nombre del tipo de puerto , escriba
MyPartnerPortType
. Haga clic en Next.En la página Enlace de puerto, en la lista desplegable Dirección del puerto de comunicación , seleccione Siempre enviaré mensajes en este puerto. En la lista desplegable Enlace de puertos, seleccione Directo.
Seleccione Para enviar mensajes a otras orquestaciones, seleccione este puerto aquí y en esas orquestaciones y, a continuación, en la lista desplegable Puerto en orquestación de asociados , seleccione OrchestrationA.MySendPort. Haga clic en Next.
En la página Finalización del Asistente para puertos, haga clic en Finalizar.
En Orquestación B, seleccione la forma Puerto en el Cuadro de herramientas de orquestación. De esta forma, se inicia el Asistente para configuración de puertos.
En la página Propiedades del puerto , en el campo Nombre , escriba
MyReceivePort
. Haga clic en Next.En la página Seleccione un tipo de puerto , seleccione Utilizar un tipo de puerto existente. En Tipos de puerto disponibles, seleccione MyPartnerPortType y, a continuación, haga clic en Siguiente.
En la página Enlace de puerto, en la lista desplegable Dirección del puerto de comunicación , seleccione Siempre recibiré mensajes en este puerto. En la lista desplegable Enlace de puertos, seleccione Directo.
Seleccione Para recibir mensajes de otras orquestaciones, seleccione este puerto aquí y en esas orquestaciones y, a continuación, en la lista desplegable Puerto en orquestación de asociados , seleccione OrchestrationA.MySendPort. Haga clic en Next.
En la página Finalización del Asistente para puertos, haga clic en Finalizar.
Nota
Existe un enlace seguro desde la orquestación receptora hasta la orquestación remitente. Por consiguiente, si desea modificar la orquestación receptora o actualizar la versión de la orquestación receptora, deberá actualizar la configuración del puerto del remitente. La orquestación remitente no tiene un conocimiento explícito de la orquestación receptora, de modo que puede actualizar la orquestación receptora sin que afecte a la orquestación remitente.
En la configuración anterior, la orquestación A es el remitente y la orquestación B es el destinatario. La configuración permite a orchestration A enviar mensajes a Orchestration B a través de OrchestrationA.MySendPort y permite a Orchestration B recibir mensajes de OrchestrationA.MySendPort. Además, puede agregar una orquestación C que sea el segundo destinatario y una orquestación D que sea el tercer destinatario, usando la misma configuración que para la orquestación B.
Consulte también
Cómo usar puertos enlazados directos del cuadro de mensajes cómo usar Self-Correlating puertos enlazados directos