Типовые варианты использования компонента Service Broker

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

  • Асинхронные триггеры

  • Надежную обработку запросов

  • Надежный сбор данных

  • Распределенную серверную обработку для клиентских приложений

  • Консолидацию данных для клиентских приложений

  • Широкомасштабную пакетную обработку

Асинхронные триггеры

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

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

Надежная обработка запросов

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

Надежный сбор данных

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

Распределенная серверная обработка для клиентских приложений

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

Консолидация данных для клиентских приложений

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

Широкомасштабная пакетная обработка

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