Aplicaciones de Service Broker

Las aplicaciones de Service Broker se componen de uno o más programas y de los objetos de base de datos que dichos programas usan. Las aplicaciones se comunican creando conversaciones entre componentes independientes denominados servicios e intercambiando a continuación mensajes dentro de dichas conversaciones. Las aplicaciones usan Service Broker ejecutando las instrucciones Transact-SQL en una base de datos SQL Server.

Componentes de aplicaciones

Una aplicación de Service Broker se compone de:

  • Uno o más programas que implementan una tarea o un conjunto relacionado de tareas. Fuera de SQL Server, las aplicaciones se pueden escribir en cualquier entorno de programación que puede ejecutar instrucciones Transact-SQL en SQL Server. Dentro de SQL Server, las aplicaciones se pueden escribir como procedimientos almacenados mediante Transact-SQL o un lenguaje compatible con Common Language Runtime (CLR).

  • Un servicio que expone las tareas a otros servicios. Un servicio es un objeto de Service Broker que proporciona un nombre direccionable para un conjunto de tareas relacionadas. Otros servicios inician conversaciones con este servicio para realizar las tareas.

  • Un contrato y tipos de mensaje que definen la estructura y la dirección de los mensajes que se usan en las comunicaciones entre los servicios.

  • Una cola para contener los mensajes para el servicio.

  • Opcionalmente, las rutas y los enlaces de servicio remoto. Las rutas asocian una dirección de red al nombre de un servicio remoto. Los enlaces de servicio remoto asocian un nombre de servicio a una entidad de seguridad de base de datos local. Service Broker usa el certificado asociado a la entidad de seguridad especificada para controlar la autorización para el servicio remoto y el cifrado de los mensajes intercambiados con el servicio remoto. Service Broker permite configurar las rutas y los enlaces de servicio remoto que se van a configurar mientras la aplicación está en implementación sin requerir cambios a la aplicación. Esto permite a los administradores mover los servicios y cambiar las credenciales de seguridad sin realizar cambios en el código de la aplicación. Para obtener más información sobre cómo configurar rutas y enlaces de servicio remoto, vea Administración (Service Broker).

DML de Service Broker

Una aplicación suele preparar los objetos de definición de servicio en el momento de la instalación. Mientras se ejecuta, la aplicación envía y recibe mensajes mediante el lenguaje de manipulación de datos (DML) de Service Broker. Las instrucciones DML pertenecen a tres amplias categorías: mensajes, conversaciones y grupos de conversación:

Mensajes

Service Broker proporciona las operaciones siguientes para admitir el trabajo con los mensajes:

  • La instrucción SEND envía un mensaje en una conversación concreta.

  • La instrucción RECEIVE recibe uno o más mensajes de una cola. Todos los mensajes recibidos pertenecen al mismo grupo de conversación.

Conversaciones

Service Broker proporciona las operaciones siguientes para admitir el trabajo con las conversaciones:

  • La instrucción BEGIN DIALOG CONVERSATION comienza una conversación entre dos servicios. Dado que la conversación implica exactamente dos servicios, la conversación es un diálogo.

  • La instrucción END CONVERSATION termina un lado de una conversación.

  • La instrucción BEGIN CONVERSATION TIMER entrega un mensaje del temporizador de diálogo a un lado de una conversación en un momento concreto.

  • La instrucción GET_TRANSMISSION_STATUS devuelve una descripción del error de la última transmisión para una conversación. Si el último intento de transmitir un mensaje para la conversación fue correcto, la instrucción no devuelve una descripción.

Grupos de conversación

Service Broker proporciona dos operaciones por trabajar con grupos de conversación:

  • La instrucción GET CONVERSATION GROUP devuelve el identificador del grupo de conversación para el siguiente mensaje por recibir en una cola. La instrucción también bloquea el grupo de conversación.

  • La instrucción MOVE CONVERSATION mueve una conversación de un grupo de conversación a otro. La instrucción bloquea el grupo de conversación original y el grupo de conversación de destino.