Criando serviços do Service Broker

A definição de um serviço do Service Broker inclui os nomes dos contratos para os quais o serviço é destino. Um serviço de destino representa um endereço que aceita solicitações para as tarefas identificadas pelos contratos que o serviço especifica. Um serviço inicial representa um endereço de retorno para uma conversação com um serviço de destino.

Um serviço que representa um processo comercial como um conjunto distinto de tarefas. Cada contrato do serviço representa uma tarefa específica. Um serviço pode especificar mais de um contrato e um contrato pode ser usado por mais de um serviço.

Cada serviço usa uma fila para armazenar mensagens. As mensagens enviadas ao serviço são enviadas para a fila. Em geral, os aplicativos são mais fáceis de implementar quando um serviço usa somente uma determinada fila. Porém, para fins de flexibilidade, o Service Broker permite vários serviços para especificar a mesma fila. Nesse caso, o aplicativo trata de todas as mensagens do mesmo tipo da mesma forma ou inspeciona o nome do tipo de mensagem e o nome do serviço para determinar como processar a mensagem. Essa estratégia pode ser conveniente quando um aplicativo suporta várias versões do mesmo serviço.

O formato de rede para uma mensagem inclui o nome do serviço. Portanto, os nomes de serviço são escolhidos freqüentemente para evitar assuntos de agrupamento e conflitos de nomenclatura. Para obter mais informações sobre nomenclatura, consulte Nomeando objetos do Service Broker.

Para criar um serviço, você deve fazer o seguinte:

  1. Crie tipos de mensagem que definam os dados que podem ser enviados e recebidos.

  2. Crie um contrato que identifique os tipos de mensagem que podem ser usados e qual ponto de extremidade pode enviá-los para realizar uma determinada tarefa.

  3. Crie um aplicativo para receber, processar e enviar mensagens, conforme necessário, para realizar uma determinada tarefa.

  4. Crie uma fila para armazenar as mensagens de entrada para o serviço. Você pode associar a fila a um procedimento armazenado de ativação de forma que o broker ative automaticamente o procedimento armazenado para processar as mensagens assim que chegarem.

  5. Crie um serviço e o associe à fila que receberá as mensagens para o serviço. O serviço expõe os contratos que definem as tarefas que o serviço executará em nome de outros serviços. O serviço não precisa especificar contratos para tarefas que o serviço solicita de outros serviços.

As etapas exatas envolvidas na criação de um serviço podem diferir um pouco dependendo das necessidades específicas do serviço. Por exemplo, quando você cria um serviço para tratar notificações de evento, o tipo de mensagem e o contrato já estarão definidos pelo SQL Server, portanto, não há necessidade de criá-los.