Arquitetura de Serviço

Esta seção descreve os objetos de banco de dados que especificam o design básico de um aplicativo que usa o Service Broker.

Em tempo de design, os aplicativos do Service Broker especificam os seguintes objetos:

  • Tipos de mensagem — Defina os nomes das mensagens trocadas entre aplicativos. Se desejar, forneça validação para as mensagens.

  • Contratos — Especifique a direção e o tipo de mensagem em uma determinada conversação.

  • Filas — Armazene mensagens. O mecanismo de armazenamento permite a comunicação assíncrona entre os serviços. As filas do Service Broker fornecem benefícios adicionais, como o bloqueio automático de mensagens no mesmo grupo de conversação.

  • Serviços — São pontos de extremidade endereçáveis para conversações. As mensagens do Service Broker são enviadas de um serviço para outro. Um serviço especifica uma fila para conter as mensagens e determina os contratos para os quais o serviço pode ser o destino. Um contrato fornece um serviço com um conjunto bem definido de tipos de mensagem.

Um aplicativo do Service Broker usa os objetos do SQL Server na lista anterior para realizar uma conversação. Qualquer programa que possa executar instruções Transact-SQL no SQL Server pode usar Service Broker. Os aplicativos podem ser procedimentos armazenados escritos em Transact-SQL ou em uma linguagem compatível com CLR ou podem ser programas externos que se conectam a uma instância do SQL Server.

O diagrama a seguir mostra um serviço do Service Broker.

Relação de objetos do Service Broker

Como mostrado na ilustração, o contrato ProcessExpenses especifica três tipos de mensagem: SubmitExpense, AcceptDenyExpense e ReimbursementIssued. O contrato lista os tipos de mensagem necessários para uma conversação que executa uma tarefa de reembolso de despesa. O contrato ProcessExpenses rege todas as conversações entre o serviço ProcessExpense e quaisquer serviços que iniciam uma conversação com o serviço ProcessExpense. O serviço ProcessExpense armazena mensagens de entrada e saída na fila ExpenseQueue. O procedimento armazenado ExpenseProcessing recebe mensagens dessa fila, processa-as e as envia de volta à fila para roteamento para o agente apropriado, caso uma resposta seja necessária.

Nesta seção

  • Tipos de mensagem
    Os participantes de uma conversação devem concordar com o nome e o conteúdo de cada mensagem. Os tipos de mensagem definem nomes e conteúdo.

  • Contratos
    Os contratos definem quais tipos de mensagem um aplicativo usa para realizar uma tarefa em particular.

  • Filas
    As filas armazenam mensagens do Service Broker.

  • Serviços
    Os serviços do Service Broker são nomes para tarefas comerciais específicas ou conjuntos de tarefas comerciais.