Архитектура коллекции событий

Сбор событий — это процесс получения сведений о событиях из одного или нескольких источников, таких как XML-файлы, приложения или базы данных и пересылки этих данных приложению уведомления. Эту задачу выполняют поставщики событий.

Каждое приложение использует одного или нескольких поставщиков событий для сбора событий. Каждый поставщик событий пересылает данные приложению, используя один из трех API-интерфейсов событий: API объектов событий, API XML или API SQL Server. На следующей схеме показано высокоуровневое представление принципов работы этих интерфейсов API.

Архитектура сбора событий

  • API-интерфейс объектов событий использует объекты Event и EventCollector для пересылки отдельных событий. Используя имена полей в таблице событий, приложение пересылает объект Event сборщику событий, который затем записывает эти данные в таблицу событий.
  • API-интерфейс XML предоставляет возможность массовой загрузки XML-данных. Поставщик событий XML собирает XML-документ или XML-поток из источника событий и пересылает данные XML EventLoader, который затем записывает события в таблицу событий.
  • API-интерфейс SQL Server использует хранимые процедуры для загрузки данных о событиях из объектов базы данных. Двумя типовыми способами использования поставщика событий SQL Server являются применение этого поставщика с использованием хранимой процедуры и запуск запроса в соответствии с расписанием. Поставщик событий получает результирующий набор и записывает его в таблицу событий, используя хранимые процедуры API.

Представления классов событий

При создании экземпляра служб Notification Services службы Notification Services добавляют представление с таким же именем, как и у класса событий. Это представление является источником событий для запросов на создание уведомлений.

SQL Server 2005 Notification Services также поддерживают вставку событий в это представление. Вставка событий в это представление приводит к тому, что службы Notification Services создают и закрывают пакет событий для каждой инструкции вставки.

Стандартные и пользовательские поставщики событий

Разработчики приложений служб Notification Services могут создавать пользовательские поставщики событий, используя любой из API-интерфейсов, описанных выше, или они могут использовать стандартных поставщиков событий, поставляемых со службами Notification Services. Стандартные поставщики событий могут получать XML-данные из папки наблюдения, могут запрашивать базы данных SQL Server, а также могут запрашивать кубы служб Analysis Services. Дополнительные сведения см. в разделе Стандартные поставщики событий.

Пользовательские поставщики событий предоставляют выполняемые функции, недоступные ни у одного из стандартных поставщиков событий. Например, может появиться необходимость собрать данные из файла, разделенного запятыми, получаемого из системы котировок ценных бумаг. Используя API-функции служб Notification Services, разработчик может создать поставщик событий, обладающий этими функциями. Дополнительные сведения о пользовательских поставщиках событий см. в разделе Разработка пользовательского поставщика событий.

Внутрипроцессные и внепроцессные поставщики событий

Поставщики событий могут быть внутрипроцессными и внепроцессными.

Внутрипроцессные поставщики событий запускаются службами Notification Services. Внутрипроцессные поставщики событий могут работать либо непрерывно, либо в соответствии с расписанием, заданным в определении приложения. Эти поставщики событий запускаются компонентом служб Notification Services, называемым сервером поставщиков событий. Сервер поставщиков событий запускается с использованием того же расписания, что и компонент генератора, это расписание задано в определении приложения.

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

Пакетирование событий

Поставщики событий записывают события в пакеты. Запись событий в пакеты позволяет генератору одновременно соединять текущий набор подписок со всеми событиями из пакета событий. Эта пакетная обработка повышает производительность приложений.

См. также

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

Архитектура управления подписками
Архитектура обработки подписок
Форматирование уведомлений и архитектура доставки

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

Представления служб Notification Services
Определение классов событий
Определение поставщиков событий

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

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