Partager via


Applications Service Broker

Les applications Service Broker sont constituées d'un ou de plusieurs programmes et d'objets de bases de données utilisés par les programmes. Les applications communiquent en créant des conversations entre les composants indépendants appelés services, puis en échangeant les messages au sein de ces conversations. Les applications utilisent Service Broker en exécutant les instructions Transact-SQL dans une base de données SQL Server.

Composants d'application

Une application Service Broker se compose des éléments suivants :

  • Un ou plusieurs programmes qui implémentent une tâche ou un ensemble de tâches associé. En dehors de SQL Server, les applications peuvent être écrites dans n'importe quel environnement de programmation capable d'exécuter les instructions Transact-SQL dans SQL Server. À l'intérieur de SQL Server, les applications peuvent être écrites comme procédures stockées à l'aide de Transact-SQL ou d'un langage CLR (Common Language Runtime) compatible.

  • Un service qui expose les tâches à d'autres services. Un service est un objet Service Broker qui fournit un nom adressable pour un ensemble de tâches associé. D'autres services démarrent les conversations avec ce service pour exécuter les tâches.

  • Un contrat et les types de message qui définissent la structure et la direction des messages utilisés dans les communications entre les services.

  • Une file d'attente pour contenir les messages du service.

  • Le cas échéant, les itinéraires et les liaisons de service distant. Les itinéraires associent une adresse réseau au nom d'un service distant. Les liaisons de service distant associent un nom de service à une entité de sécurité de la base de données locale. Service Broker utilise le certificat associé à l'entité spécifiée pour gérer l'autorisation du service distant et le chiffrement des messages échangés avec le service distant. Service Broker autorise la configuration des itinéraires et des liaisons de service distant pendant que l'application est en phase de déploiement sans requérir de modifications sur l'application. Cela permet aux administrateurs de déplacer les services et de modifier les informations d'identification de sécurité sans apporter de modifications au code de l'application. Pour plus d'informations sur la configuration des itinéraires et des liaisons de service distant, consultez Administration (Service Broker).

DML Service Broker

Généralement, une application configure les objets de définition du service au moment de l'installation. En cours d'exécution, l'application envoie et reçoit des messages à l'aide du langage de manipulation de données (DML) Service Broker. Les instructions DML se répartissent en trois grandes catégories – messages, conversations et groupes de conversations :

Messages

Service Broker fournit les opérations suivantes pour prendre en charge l'utilisation de messages :

  • L'instruction SEND envoie un message sur une conversation spécifique.

  • L'instruction RECEIVE reçoit un ou plusieurs messages d'une file d'attente. Tous les messages reçus appartiennent au même groupe de conversations.

Conversations

Service Broker fournit les opérations suivantes pour prendre en charge l'utilisation de conversations :

  • L'instruction BEGIN DIALOG CONVERSATION commence une conversation entre deux services. Comme la conversation implique la présence de deux services exactement, la conversation constitue un dialogue.

  • L'instruction END CONVERSATION met fin à l'un des côtés de la conversation.

  • L'instruction BEGIN CONVERSATION TIMER délivre un message du minuteur de dialogue à l'un des participants de la conversation à un moment spécifique.

  • L'instruction GET_TRANSMISSION_STATUS retourne une description de la dernière erreur de transmission lors d'une conversation. Si la dernière tentative de transmettre un message pour la conversation a réussi, l'instruction ne retourne pas de description.

Groupes de conversations

Service Broker fournit deux opérations pour utiliser les groupes de conversations :

  • L'instruction GET CONVERSATION GROUP retourne l'identificateur du groupe de conversations pour le prochain message à recevoir de la file d'attente. L'instruction verrouille également le groupe de conversations.

  • L'instruction MOVE CONVERSATION déplace une conversation d'un groupe de conversations vers un autre. L'instruction verrouille à la fois le groupe de conversations d'origine et le groupe de conversations de destination.