Архитектура служб
В этом разделе описываются объекты баз данных, которые определяют основные принципы проектирования приложений, использующих компонент 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 предоставляются имена для конкретных бизнес-задач или наборов бизнес-задач.
См. также