Service Broker es un marco de trabajo de aplicación de base de datos que permite que procesos relacionados con bases de datos internas o externas envíen y reciban mensajes entre sí. Service Broker usa extensiones para Transact-SQL (T-SQL) y lenguajes de programación .NET estándar para proporcionar entrega y confirmación de mensajes asincrónicos confiables y confirmación entre extremos de bases de datos.
Service Broker usa el motor central y las extensiones de SQL Server (2005, 2008) para que los desencadenadores de SQL Server implementen este servicio. También usa colas de mensaje que son definidas por el desarrollador y se incluyen en las propias bases de datos. El uso de colas de mensajes residentes en la base de datos proporciona algunas ventajas, como integridad en las transacciones.
Comparación entre Service Broker y MSMQ
MSMQ y Service Broker suelen ser comparados entre sí. MSMQ es parte de Windows y es gratuito. Service Broker requiere licencias de SQL Server en cada extremo. En MSMQ, no está garantizado el ordenamiento de mensajes. Es responsabilidad de la lógica de la aplicación llevar registro de la secuencia de llegada y ordenarlos si la secuencia es importante.
MSMQ también requiere el uso de un protocolo de ejecución de dos fases para realizar transacciones distribuidas. Debido a que Service Broker está integrado en la base de datos de SQL Server, realiza la mensajería de transacciones de manera más rápida y eficiente que MSMQ. Esto resulta especialmente cierto en un escenario de enrutamiento de mensajes que incluyen mensajes cifrados, donde MSMQ tiene que descifrar un mensaje completo para enrutarlo en el siguiente extremo.
Más aún, cuando construye una aplicación que usa MSMQ su lógica de procesamiento y los datos que se transferirán están separados. Con Service Broker, están dentro de la base de datos y protegidos por las funciones de protección estándar de la base de datos, como copia de seguridad/recuperación, creación de espejos y protección contra caídas. Con MSMQ, esto es responsabilidad de la aplicación.
Service Broker le permite definir mensajes, colas de datos y diálogos entre instancias de SQL Server. Debido a que estas definiciones residen dentro de instancias de bases de datos de SQL Server, Service Broker puede aprovechar la naturaleza transaccional inherente de SQL Server. Además, al tener todo implementado dentro de bases de datos distribuidas de SQL Server, resuelve uno de los problemas más difíciles en la mensajería: garantizar que un mensaje enviado de un extremo a otro se envía al extremo que recibe una y sólo una vez.
No hay comentarios.:
Publicar un comentario