Arquitectura de servicio

En esta sección se describen los objetos de base de datos que especifican el diseño básico de una aplicación que utiliza Service Broker.

En tiempo de diseño, las aplicaciones de Service Broker especifican los siguientes objetos:

  • Tipos de mensajes: definen los nombres de los mensajes que se intercambian entre aplicaciones. Opcionalmente, proporcionan validación para los mensajes.

  • Contratos:especifican la dirección y el tipo de mensajes de una conversación dada.

  • Colas:almacenan mensajes. Este mecanismo de almacenamiento permite la comunicación asincrónica entre los servicios. Las colas de Service Broker proporcionan ventajas adicionales, como bloquear automáticamente los mensajes del mismo grupo de conversación.

  • Servicios:extremos con direcciones para las conversaciones. Los mensajes de Service Broker se envían desde un servicio hasta otro. Un servicio especifica una cola para retener mensajes y los contratos en los que el servicio puede ser el destino. Un contrato proporciona un servicio con un conjunto bien definido de tipos de mensajes.

Una aplicación de Service Broker utiliza los objetos de SQL Server de la lista anterior para efectuar una conversación. Cualquier programa que pueda ejecutar instrucciones Transact-SQL en SQL Server puede utilizar Service Broker. Las aplicaciones pueden ser procedimientos almacenados escritos en Transact-SQL o en un lenguaje compatible con CLR o bien programas externos que se conectan con una instancia de SQL Server.

El diagrama siguiente muestra un servicio de Service Broker:

Relación de objetos de Service Broker

Como se muestra en la ilustración, el contrato ProcessExpenses especifica tres tipos de mensajes: SubmitExpense, AcceptDenyExpense y ReimbursementIssued. El contrato enumera los tipos de mensajes necesarios para una conversación que lleva a cabo una tarea de reembolso de gastos. El contrato ProcessExpenses controla todas las conversaciones entre el servicio ProcessExpense y cualquier servicio que inicia una conversación con ProcessExpense. El servicio ProcessExpense almacena mensajes entrantes y salientes en la cola ExpenseQueue. El procedimiento almacenado ExpenseProcessing recibe mensajes de esta cola, los procesa y los envía de nuevo a la cola para enrutarlos al broker adecuado si se necesita respuesta.

En esta sección

  • Tipos de mensajes
    Los participantes de una conversación deben estar de acuerdo en el nombre y el contenido de cada mensaje. Los tipos de mensaje definen los nombres y el contenido.

  • Contratos
    Los contratos definen los tipos de mensaje que utiliza una aplicación para realizar una tarea determinada.

  • Colas
    Las colas almacenan los mensajes de Service Broker.

  • Servicios
    Los servicios de Service Broker son nombres para tareas empresariales o conjuntos de tareas empresariales específicas.