Usos habituales de Service Broker

Service Broker puede resultar útil en cualquier aplicación que necesita realizar el procesamiento de forma asincrónica o que necesita distribuir el procesamiento entre varios equipos. Entre los usos habituales de Service Broker se incluyen:

  • Desencadenadores asincrónicos

  • Procesamiento confiable de consultas

  • Recopilación confiable de datos

  • Procesamiento distribuido en el servidor para aplicaciones cliente

  • Consolidación de datos para aplicaciones cliente

  • Procesamiento por lotes a gran escala

Desencadenadores asincrónicos

Muchas aplicaciones que utilizan desencadenadores, como los sistemas de procesamiento de transacciones en línea (OLTP), pueden beneficiarse de Service Broker. Un desencadenador pone en cola un mensaje que solicita trabajo de un servicio de Service Broker. El desencadenador no realiza realmente el trabajo solicitado. En realidad, crea un mensaje que contiene información sobre el trabajo que se va a hacer y envía este mensaje a un servicio que realiza el trabajo. A continuación, el desencadenador vuelve.

Cunado la transacción original se confirma, Service Broker entrega el mensaje al servicio de destino. El programa que implementa el servicio realiza el trabajo en una transacción independiente. Al realizar este trabajo en una transacción independiente, la transacción original puede confirmarse inmediatamente. La aplicación evita que el sistema se ralentice por mantener la transacción original abierta mientras se realiza el trabajo.

Procesamiento confiable de consultas

Algunas aplicaciones deben procesar de forma confiable las consultas, independientemente de los errores del equipo, de problemas de suministro eléctrico o de problemas similares. Una aplicación que necesita el procesamiento confiable de consultas puede enviar consultas mediante el envío de mensajes a un servicio de Service Broker. La aplicación que implementa el servicio lee el mensaje, ejecuta la consulta y devuelve los resultados. Estas tres operaciones tienen lugar en la misma transacción. Si se produce un error antes de que la transacción se confirme, se revierte toda la transacción y el mensaje vuelve a la cola. Cuando el equipo se recupera, la aplicación se reinicia y vuelve a procesar el mensaje.

Recopilación confiable de datos

Las aplicaciones que recopilan datos de un conjunto grande de orígenes pueden sacar partido de Service Broker para recopilar datos de forma confiable. Por ejemplo, una aplicación comercial con varios sitios puede utilizar Service Broker para enviar información sobre transacciones a un almacén central de datos. Dado que Service Broker proporciona una entrega de mensajes asincrónica confiable, cada sitio puede continuar procesando transacciones incluso si el sitio pierde temporalmente la conexión con el almacén central de datos. La seguridad de Service Broker ayuda a garantizar que los mensajes no se envían a un destino incorrecto y a proteger los datos en tránsito.

Procesamiento distribuido en el servidor para aplicaciones cliente

Las aplicaciones grandes que tienen acceso a varias bases de datos de SQL Server pueden beneficiarse de Service Broker. Por ejemplo, una aplicación Web para hacer pedidos de libros puede utilizar Service Broker en el servidor para intercambiar información entre las distintas bases de datos que contienen datos sobre pedidos, clientes, inventario y crédito. Dado que Service Broker proporciona una cola de mensajes y la entrega confiable de mensajes, la aplicación puede continuar aceptando pedidos incluso si una de las bases de datos no está disponible o está sobrecargada. En este escenario, Service Broker funciona como un marco para un sistema OLTP distribuido.

Consolidación de datos para aplicaciones cliente

Las aplicaciones que deben utilizar o mostrar información simultáneamente desde varias bases de datos pueden aprovecharse de Service Broker. Por ejemplo, una aplicación de servicio al cliente que consolida datos de varias ubicaciones en una pantalla puede utilizar Service Broker para ejecutar estas solicitudes en paralelo en lugar de hacerlo de forma secuencial, lo cual reduce el tiempo de respuesta de la aplicación. La aplicación de servicio al cliente envía las solicitudes a distintos servicios en paralelo; a medida que los servicios responden a las solicitudes, la aplicación de servicio al cliente recopila las respuestas y muestra los resultados.

Procesamiento por lotes a gran escala

Las aplicaciones que deben realizar procesamiento por lotes a gran escala pueden aprovecharse de las colas y el procesamiento en paralelo que ofrece Service Broker para controlar grandes volúmenes de trabajo de forma rápida y eficaz. La aplicación almacena datos que se procesan en una cola de Service Broker. Un programa lee periódicamente la cola y procesa los datos. Una aplicación puede aprovecharse de la mensajería confiable que proporciona Service Broker para realizar el procesamiento por lotes en un equipo distinto del equipo donde se origina la solicitud.