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


Приложения компонента Service Broker

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

Компоненты приложений

Приложение Service Broker состоит из следующих компонентов.

  • Одна или несколько программ, которые реализуют задачу или набор связанных задач. Вне SQL Server приложения могут быть написаны в любой среде программирования, способной запускать инструкции Transact-SQL в SQL Server. В SQL Server приложения могут быть написаны как хранимые процедуры с использованием Transact-SQL или любого языка, совместимого со средой CLR.

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

  • Контракт и типы сообщений, определяющие структуру и направление сообщений, которые используются при обмене данными между службами.

  • Очередь, удерживающая сообщения для службы.

  • Кроме того, маршруты и привязки удаленной службы. Маршруты сопоставляют сетевой адрес с именем удаленной службы. Привязки удаленной службы сопоставляют имя службы с участником локальной базы данных. Компонент Service Broker использует связанный с конкретным участником сертификат, чтобы обрабатывать авторизацию и шифрование сообщений для удаленной службы. Компонент Service Broker разрешает конфигурацию маршрутов и привязок удаленной службы во время развертывания приложения, не требуя изменений в нем. Это позволяет администраторам перемещать службы и учетные данные безопасности, не внося изменения в код приложений. Дополнительные сведения о настройке маршрутов и привязок удаленных служб см. в разделе Администрирование (компонент Service Broker).

Язык обработки данных (DML) компонента Service Broker

Обычно приложение задает объекты определения служб в процессе установки. В процессе запуска приложение отправляет и получает сообщения с помощью языка обработки данных (DML) компонента Service Broker. Инструкции DML делятся на три большие категории: сообщения, диалоги и группы сообщений.

Сообщения

Компонент Service Broker предоставляет следующие операции для работы с сообщениями.

  • Инструкция SEND отправляет сообщение конкретному диалогу.

  • Инструкция RECIEVE получает одно или более сообщение из очереди. Все полученные сообщения относятся к одной группе сообщений.

Диалоги

Компонент Service Broker предоставляет следующие операции для работы с диалогами.

  • Инструкция BEGIN DIALOG CONVERSATION начинает диалог между двумя службами. Так как подобное взаимодействие затрагивает только две службы, оно является диалогом.

  • Инструкция END CONVERSATION завершает одну из сторон диалога.

  • Инструкция BEGIN CONVERSATION TIMER доставляет сообщение таймера диалога в одну сторону диалога в указанное время.

  • Инструкция GET_TRANSMISSION_STATUS возвращает для диалога описание последней ошибки передачи. Если последняя попытка передачи сообщения для диалога была успешной, то инструкция не возвращает описание.

Группы сообщений

Компонент Service Broker предоставляет следующие операции для работы с группами сообщений.

  • Инструкция GET CONVERSATION GROUP возвращает идентификатор группы сообщений для получаемого сообщения в очереди. Инструкция также блокирует группу сообщений.

  • Инструкция MOVE CONVERSATION перемещает диалог из одной группы сообщений в другую. Инструкция блокирует как исходную, так и целевую группы сообщений.