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 servicios. Las colas de Service Broker proporcionan otras ventajas, como el bloqueo automático de mensajes del mismo grupo de conversación.
  • Servicios:**son extremos con direcciones para las conversaciones. Los mensajes de Service Broker se envían desde un servicio a 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 usa los objetos de SQL Server de la lista anterior para dirigir 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.

En el siguiente diagrama se 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.

Vea también

Conceptos

Tipos de mensajes
Contratos
Colas
Generar aplicaciones con Service Broker
Servicios

Otros recursos

Tutoriales de Service Broker

Ayuda e información

Obtener ayuda sobre SQL Server 2005