Занятие 10. Добавление подписчиков и подписок

На этом занятии предстоит изучить два файла VBScript и понять, как они используются для отправки данных о подписчиках и подписках в службах Notification Services, а затем выполнить сценарии добавления данных подписчиков в базу данных экземпляра и добавления данных подписок в базу данных приложения.

Управление подписчиками и подписками

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

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

Данные подписчиков хранятся в объектах базы данных экземпляра. Все приложения, размещаемые в экземпляре служб Notification Services, используют одинаковые данные подписчиков.

В данных подписок указывается, сведения о каких приложениях интересны подписчику (к примеру, город, по которому следует предоставлять прогнозы погоды). Кроме того, здесь определяется, какое устройство принимает уведомления. В приложении может содержаться встроенная логика выбора устройств подписчиков на основе условной логики, например, дня, времени или важности сообщения.

Данные подписок хранятся в базах данных приложений, При этом для каждого приложения предусмотрены собственные данные подписок.

В большинство приложений служб Notification Services включен интерфейс, который позволяет подписчикам управлять данными подписчиков и подписок. Как правило, это приложения ASP.NET, но с помощью объектов SMO служб Notification Services можно также разрабатывать приложения Windows, веб-службы или любые другие интерфейсы. Дополнительные сведения см. в разделе Разработка интерфейсов управления подписками.

Обзор интерфейса управления подписками на прогнозы погоды

Для простоты в приложении Weather выполняется массовая загрузка данных подписчиков и подписок с использованием двух файлов VBScript. Это способ не является распространенным при управлении подписчиками и подписками, но его можно применять для моделирования и проверки приложений уведомлений.

Эти сценарии иллюстрируют порядок вызова интерфейсов служб Notification Services из компонентов COM. Службы Notification Services написаны на управляемом коде (C#) и доступны как с помощью управляемого, так и с помощью неуправляемого кода.

AddSubscribers.vbs

Первый файл VBScript с именем AddSubscribers.vbs добавляет трех подписчиков в экземпляр приложения Weather.

Сначала необходимо создать объекты NSInstance и Subscriber:

Dim nsInstance, nsSubscriber, nsSubscriberDevice
' Create and initialize NSInstance object.
Set nsInstance = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSInstance")
nsInstance.Initialize "Tutorial"
' Create and initialize NSSubscriber object.
Set nsSubscriber = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.Subscriber")
nsSubscriber.Initialize (nsInstance)

Далее следует добавить трех подписчиков с помощью объекта Subscriber:

' Add subscribers.
nsSubscriber.SubscriberId = "stephanie"
nsSubscriber.Add

nsSubscriber.SubscriberId = "david"
nsSubscriber.Add

nsSubscriber.SubscriberId = "richard"
nsSubscriber.Add

Наконец, необходимо создать объект SubscriberDevice и добавить устройства подписчика для каждого из подписчиков:

' Create NSSubscriberDevice object.
Set nsSubscriberDevice = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.SubscriberDevice")
nsSubscriberDevice.Initialize (nsInstance)

' DeviceName must match subscriptions that use this device
nsSubscriberDevice.DeviceName = "myDevice"

' Add a file device for each subscriber
nsSubscriberDevice.SubscriberId = "stephanie"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "stephanie@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add

nsSubscriberDevice.SubscriberId = "david"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "david@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add

nsSubscriberDevice.SubscriberId = "richard"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "richard@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add

AddSubscriptions.vbs

Второй файл VBScript с именем AddSubscriptions.vbs добавляет одну подписку для каждого из трех подписчиков.

Сначала необходимо создать и инициализировать объекты NSInstance, NSApplication и Subscription:

Dim nsInstance, nsApplication, nsSubscription
' Create NSInstance object.
Set nsInstance = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSInstance")
nsInstance.Initialize "Tutorial"

' Create NSApplication object.
Set nsApplication = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSApplication")
nsApplication.Initialize (nsInstance), "Weather"

' Create Subscription object.
Set nsSubscription = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.Subscription")
nsSubscription.Initialize (nsApplication), "WeatherCity"

Затем следует создать общие свойства для всех загружаемых подписок:

nsSubscription.SetFieldValue "DeviceName", "myDevice"
nsSubscription.SetFieldValue "SubscriberLocale", "en-us"

Наконец, следует добавить соответствующие подписки:

nsSubscription.SubscriberId = "stephanie"
nsSubscription.SetFieldValue "City", "Seattle"
nsSubscription.Add

nsSubscription.SubscriberId = "david"
nsSubscription.SetFieldValue "City", "Orlando"
nsSubscription.Add

nsSubscription.SubscriberId = "richard"
nsSubscription.SetFieldValue "City", "Seattle"
nsSubscription.Add

Загрузка данных подписчиков и подписок

Изучив сценарии, их можно использовать для загрузки данных подписчиков в экземпляр учебника, а данных подписок — в приложение Weather.

Загрузка данных подписчиков и подписок

  1. В проводнике Windows найдите папку «Weather» учебника. Расположение этой папки по умолчанию: «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\tutorial\Weather».

  2. Дважды щелкните файл AddSubscribers.vbs.

    Должно быть выведено сообщение «Подписчики успешно добавлены».

  3. Дважды щелкните файл AddSubscriptions.vbs.

    Должно быть выведено сообщение «Подписки успешно добавлены».

ms167266.note(ru-ru,SQL.90).gifПримечание.
Если после установки служб SQL Server 2005 Notification Services установить службы Notification Services 2.0, будут зарегистрированы неправильные версии сборок для взаимодействий COM, и эти сценарии не будут работать. Дополнительные сведения см. в разделе Как зарегистрировать сборку ядра служб Notification Services для взаимодействия COM.

Просмотр данных подписчиков

После добавления данных подписчиков в приложение можно просматривать сведения о подписчиках и устройствах с использованием запроса ViewSubscribersAndDevices.sql.

Просмотр данных подписчиков

  1. В обозревателе решений раскройте Weather, затем Запросы и дважды щелкните значок ViewSubscribersAndDevices.sql.

  2. Нажмите клавишу F5, чтобы выполнить запрос.

    Должны быть отображены сведения о трех подписчиках и их устройствах.

  3. Закройте файл ViewSubscribersAndDevices.sql.

Просмотр данных подписок

После добавления данных подписок в приложение можно просматривать сведения о подписках с использованием запроса ViewSubscriptions.sql.

Просмотр данных подписок

  1. В обозревателе решений дважды щелкните значок ViewSubscriptions.sql.

  2. Нажмите клавишу F5, чтобы выполнить запрос.

    Должны быть отображены три подписки, по одной на каждого подписчика.

  3. Закройте файл ViewSubscriptions.sql.

Следующее занятие

Занятие 11. Передача событий в приложение Weather

См. также

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

Учебник по службам Notification Services

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

Разработка интерфейсов управления подписками
Построение решений на основе служб Notification Services
Введение в службы SQL Server Notification Services

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

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