Architecture du service

Cette section décrit les objets de base de données qui spécifient la conception de base d'une application utilisant Service Broker.

Au moment de la conception, les applications Service Broker spécifient les objets suivants :

  • Types de messages — Ils définissent les noms des messages échangés entre les applications. Le cas échéant, ils fournissent la validation pour ces messages.

  • Contrats— Ils spécifient la direction et le type des messages dans une conversation donnée.

  • Files d'attente— Elles stockent les messages. Ce mécanisme de stockage permet la communication asynchrone entre les services. Les files d'attente Service Broker fournissent des avantages supplémentaires, tels que le verrouillage automatique des messages dans un même groupe de conversations.

  • Services— Ils représentent des points de terminaison adressables pour des conversations. Les messages Service Broker sont envoyés d'un service à l'autre. Un service spécifie une file d'attente pour la conservation des messages et précise les contrats pour lesquels le service peut être la cible. Un contrat fournit un service doté d'une série bien définie de types de messages.

Une application Service Broker utilise les objets SQL Server de la liste mentionnée ci-dessus pour mener une conversation. Tout programme exécutant des instructions Transact-SQL dans SQL Server peut utiliser Service Broker. Les applications peuvent être des procédures stockées écrites en Transact-SQL ou dans un langage compatible CLR, mais aussi des programmes externes qui se connectent à une instance de SQL Server.

Le diagramme suivant montre un service Service Broker :

Relations d'objets Service Broker

Comme montré dans l'illustration, le contrat ProcessExpenses précise trois types de messages : SubmitExpense, AcceptDenyExpense et ReimbursementIssued. Le contrat répertorie les types de messages nécessaires pour une conversation accomplissant une tâche de remboursement de frais. Le contrat ProcessExpenses régit les conversations entre le service ProcessExpense et tout service engageant une conversation avec ce service. Le service ProcessExpense stocke les messages entrants et sortants dans la file d'attente ExpenseQueue. La procédure stockée ExpenseProcessing traite les messages qu'elle reçoit de cette file d'attente avant de les y renvoyer, afin qu'ils soient acheminés vers le broker approprié si une réponse est nécessaire.

Dans cette section

  • Types de messages
    Les participants d'une conversation doivent s'accorder sur le nom et le contenu de chaque message. Les types de messages définissent les noms et le contenu.

  • Contrats
    Les contrats définissent les types de messages qu'une application utilise pour accomplir une tâche particulière.

  • Files d'attente
    Les files d'attente stockent les messages Service Broker.

  • Services
    Les services Service Broker représentent les noms de tâches ou jeux de tâches spécifiques liés à l'activité de l'entreprise.