Поделиться через


Архитектура служб

В этом разделе описываются объекты баз данных, которые определяют основные принципы проектирования приложений, использующих компонент Service Broker.

На стадии разработки приложения компонента Service Broker определяют следующие объекты.

  • Типы сообщений — определяют имена сообщений, которыми обмениваются приложения. По выбору проверяют правильность сообщений.
  • Контракты— указывают направление движения и типы сообщений в данном диалоге.
  • Очереди— хранят сообщения. Этот механизм хранения реализует асинхронный обмен данными между службами. Очереди компонента Service Broker обеспечивают дополнительные преимущества, такие как автоматическая блокировка сообщений внутри одной группы сообщений.
  • Службы— это адресуемые конечные точки диалогов. Сообщения Service Broker пересылаются из одной службы в другую службу. Служба указывает очередь для хранения сообщений, а также контракты, для которых данная служба может являться целью. Контракт предоставляет службе набор четко определенных типов сообщений.

Приложение компонента Service Broker использует перечисленные в вышеприведенном списке объекты SQL Server для проведения диалога. Использовать компонент Service Broker может любая программа, способная выполнять инструкции Transact-SQL в SQL Server. Приложениями могут быть хранимые процедуры, написанные на Transact-SQL или на другом CLR-совместимом языке. В роли приложений могут выступать и внешние программы, подключаемые к экземпляру SQL Server.

На публикуемой ниже диаграмме показана служба Service Broker.

Связь объектов компонента Service Broker

Как показано на этой иллюстрации, в контракте ProcessExpenses указываются три типа сообщений: SubmitExpense, AcceptDenyExpense и ReimbursementIssued. В контракте перечислены типы сообщений, необходимые для диалога, в ходе которого решается задача возмещения расходов. Контракт ProcessExpenses регулирует все диалоги между службой ProcessExpense и другими службами, инициирующими диалог со службой ProcessExpense. Служба ProcessExpense сохраняет все входящие и исходящие сообщения в очереди ExpenseQueue. Хранимая процедура ExpenseProcessing получает сообщения из этой очереди, обрабатывает их и возвращает сообщения в ту же очередь для маршрутизации на соответствующий брокер, если требуется ответ.

См. также

Основные понятия

Типы сообщений
Контракты
Очереди
Создание приложений, работающих с компонентом Service Broker
Службы

Другие ресурсы

Учебники по компоненту Service Broker

Справка и поддержка

Получение помощи по SQL Server 2005