Crear contratos de Service Broker

Los contratos definen el nombre de una tarea empresarial concreta y enumeran los tipos de mensaje utilizados en dicha tarea. Los contratos de Service Broker definen dos funciones del servicio diferentes: el iniciador y el destino. El iniciador de una conversación comienza la conversación enviando un mensaje al destino. El contrato que utiliza la conversación define la función del servicio que puede enviar mensajes de un tipo determinado.

Para cada tarea que realiza el servicio, cree un contrato que incluya los tipos de mensaje para cada paso de la tarea. Para cada tipo de mensaje, especifique si el tipo de mensaje se envía del iniciador al destino, del destino al iniciador, o en ambas direcciones.

Un contrato no especifica el orden de los mensajes ni el número de mensajes de un tipo determinado que se pueden enviar. Service Broker requiere que el iniciador envíe el primer mensaje en una conversación de diálogo. Después del primer mensaje, no hay ningún requisito de orden.

Los mismos tipos de mensaje pueden utilizarse en más de un contrato. Por ejemplo, un mensaje que está compuesto de un documento XML que contiene el número de pieza y la cantidad puede ser útil en una tarea que acepta un pedido de un cliente, una tarea que administra el inventario y una tarea que solicita el envío. Cada tarea se corresponde a un contrato distinto, pero los tres contratos pueden utilizar el mismo tipo de mensaje.

El formato de red para un mensaje incluye el nombre del contrato. Por tanto, los nombres del contrato se eligen a menudo para evitar problemas de intercalación y conflictos de denominación. Para obtener más información sobre la denominación, vea Asignación de nombres a objetos de Service Broker.