Новый компонент Service Broker

В Microsoft SQL Server 2005 появился компонент Service Broker, новая технология конструирования распределенных приложений, интенсивно использующих базы данных и отличающихся безопасностью, надежностью и возможностью масштабирования.

Описание компонента Service Broker

Компонент Service Broker является частью компонента Database Engine. Компонент Service Broker предоставляет:

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

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

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

Кроме того, компонент Service Broker обеспечивает надежный обмен сообщениями между экземплярами SQL Server. Компонент Service Broker поддерживает представление приложений в виде иерархии служб. В этой архитектуре логика бизнес-системы реализована как набор сетевых служб. Приложения, которым необходимы функции, реализуемые этими службами, взаимодействуют со службами с помощью сообщений. При обмене сообщениями между экземплярами компонент Service Broker использует протокол TCP/IP. Компонент Service Broker предусматривает возможности, позволяющие предотвратить неавторизованный доступ по сети и обеспечить шифрование сообщений, передаваемых по сети.

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

Реализация механизма сообщений в SQL Server позволяет компоненту Service Broker предоставить следующие преимущества:

  • Высокая степень масштабируемости. Так как очереди сообщений являются частью баз данных SQL Server, при их обработке могут использоваться преимущества производительности компонента SQL Server Database Engine. Кроме того, для обработки сообщений из очереди могут запускаться несколько экземпляров служб. Тем самым повышается масштабируемость приложений среднего яруса. Компонент Service Broker обеспечивает активацию интегрированной программы, что позволяет приложениям эффективно использовать системные ресурсы. По мере изменения нагрузки на службу приложение компонента Service Broker может динамически масштабироваться.
  • Координация, упорядочение и блокировка сообщений. Компонент Service Broker автоматически обрабатывает множество трудных задач, необходимых для создания приложений, использующих механизм обмена сообщениями. При диалоге приложение, использующее компонент Service Broker, всегда получает каждое сообщение только один раз. В ходе диалога сообщения поступают в том же порядке, в каком они были отправлены. Сообщения в связанных диалогах автоматически группируются вместе, позволяя приложению легко соотносить сообщения с разными службами. Компонент Service Broker позволяет за один раз считывать сообщения только одному участнику группы сообщений. Приложения используют эту встроенную блокировку для безопасного и эффективного выполнения параллельной обработки.
  • Интеграция с данными базы данных. Очереди сообщений, хранимых в базе данных SQL Server, являются частью базы данных. Они становятся неотъемлемой частью всех сеансов резервного копирования базы данных и восстанавливаются вместе с данными при восстановлении базы данных из резервной копии. Операции с сообщениями являются неотъемлемой частью любой транзакции, включающей в себя данные базы данных. При этом, в отличие от ситуации, когда очередь сообщений управляется службой, отделенной от сервера базы данных, отсутствует необходимость управлять распределенными транзакциями.
  • Связь с безопасностью базы данных. Для обеспечения защиты приложений компонент Service Broker использует функции безопасности SQL Server 2005.

Для получения дополнительных сведений о компоненте Service Broker см. Знакомство с компонентом Service Broker.

См. также

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

Новые возможности SQL Server 2005

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

Introduction to Service Broker Programming

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

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