Crear servicios de Service Broker

La definición de un servicio de Service Broker incluye los nombres de los contratos para los que el servicio es un destino. Un servicio de destino representa una dirección que acepta solicitudes para las tareas identificadas por los contratos que el servicio especifica. Un servicio iniciador representa una dirección de retorno para una conversación con un servicio de destino.

Un servicio representa un proceso de negocio como un conjunto distintivo de tareas. Cada contrato dentro del servicio representa una tarea concreta. Un servicio puede especificar más de un contrato y más de un servicio puede utilizar un contrato.

Cada servicio utiliza una cola para almacenar los mensajes. Los mensajes enviados al servicio se entregan a la cola. En general, las aplicaciones son más fáciles de implementar cuando sólo un servicio utiliza una cola determinada. Sin embargo, para mayor flexibilidad, Service Broker permite a varios servicios especificar la misma cola. En este caso, la aplicación podrá tratar todos los mensajes del mismo tipo de la misma manera o inspeccionar el nombre del tipo de mensaje y el nombre del servicio para determinar cómo procesar el mensaje. Esta estrategia puede ser útil cuando una aplicación admite varias versiones del mismo servicio.

El formato de red para un mensaje incluye el nombre del servicio. Por consiguiente, los nombres del servicio 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.

Para crear un servicio, debe hacer lo siguiente:

  1. Crear tipos de mensaje que definan los datos que se pueden enviar repetidamente.

  2. Crear un contrato que identifique los tipos de mensaje que se pueden utilizar y qué extremo puede enviarlos para realizar una tarea determinada.

  3. Crear una aplicación para recibir, procesar y enviar los mensajes necesarios para realizar la tarea determinada.

  4. Crear una cola para almacenar los mensajes entrantes para el servicio. Puede asociar la cola a un procedimiento almacenado de activación para que el agente active automáticamente el procedimiento almacenado y procese los mensajes según lleguen.

  5. Crear un servicio y asociarlo a la cola que recibirá los mensajes para el servicio. El servicio expone los contratos que definen las tareas que el servicio realizará en nombre de otros servicios. El servicio no necesita especificar los contratos para las tareas que el servicio solicita de otros servicios.

Los pasos exactos implicados para crear un servicio pueden diferir un poco dependiendo de las necesidades concretas del servicio. Por ejemplo, al crear un servicio para administrar notificaciones de eventos, el tipo de mensaje y el contrato ya están definidos por SQL Server, de modo que no hay ninguna necesidad de crearlos.