Архитектура служб
В этом разделе описываются объекты баз данных, которые определяют основные принципы проектирования приложений, использующих компонент 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.
Как показано на этой иллюстрации, в контракте ProcessExpenses указываются три типа сообщений: SubmitExpense, AcceptDenyExpense и ReimbursementIssued. В контракте перечислены типы сообщений, необходимые для диалога, в ходе которого решается задача возмещения расходов. Контракт ProcessExpenses регулирует все диалоги между службой ProcessExpense и другими службами, инициирующими диалог со службой ProcessExpense. Служба ProcessExpense сохраняет все входящие и исходящие сообщения в очереди ExpenseQueue. Хранимая процедура ExpenseProcessing получает сообщения из этой очереди, обрабатывает их и возвращает сообщения в ту же очередь для маршрутизации на соответствующий брокер, если требуется ответ.
См. также
Основные понятия
Типы сообщений
Контракты
Очереди
Создание приложений, работающих с компонентом Service Broker
Службы
Другие ресурсы
Учебники по компоненту Service Broker