Образец Flight

Изменения: 17 июля 2006 г.

Образец Flight представляет собой событийно-управляемое приложение Microsoft SQL Server 2005 Notification Services, которое формирует подписанным пользователям уведомления о ценах на авиабилеты в соответствии с типом подписки.

Сценарий

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

Компания, в которой работает приложение Flight, передает в него данные об изменениях цен на перелеты через XML-файл, помещаемый в отслеживаемую папку. Затем службы Notification Services собирают эти данные и формируют уведомления для соответствующих подписчиков.

Уведомления формируются, когда выполняются следующие условия.

  • В событии цена билета ниже цены билета, указанной в подписке.
  • В событии аэропорт отправления соответствует аэропорту отправления, указанному в подписке.
  • В событии аэропорт назначения соответствует аэропорту назначения, указанному в подписке.
  • В событии авиакомпания соответствует авиакомпании, указанной в подписке (если указано).

Если для одного подписчика имеется несколько уведомлений, подлежащих отправке в одно и то же время, службы Notification Services производят сводную доставку, объединяя несколько уведомлений в одно. Затем службы Notification Services форматируют уведомление при помощи модуля форматирования данных XSLT и через указанный канал доставки (электронную почту или файл) рассылают уведомление.

Языки

XML, XSD, XSLT и Microsoft Visual C# или Microsoft Visual Basic.

Возможности

Образец Flight пользуется следующими функциями служб Notification Services.

Часть образца Возможности

Класс событий

Очередь основных событий (без хроники событий).

Класс подписки

Управляемые событиями подписки.

Класс уведомления

Сводная доставка.

Поставщики событий

Поставщик событий наблюдателя файловой системы.

Модули форматирования данных

Модуль форматирования данных XSLT.

Протоколы доставки

Протокол доставки файлов и протокол доставки SMTP.

Предварительные требования

Прежде чем запустить этот образец, убедитесь, что установлено следующее программное обеспечение.

  • SQL Server 2005, включая следующие компоненты.
    • Компонент Database Engine.
    • Службы Notification Services.
    • Среда SQL Server Management Studio.
    • Образцы служб Notification Services. Данные образцы входят в комплект SQL Server 2005. Последнюю версию образцов можно загрузить в центре разработчиков на SQL Server.
    • Пакет .NET Framework SDK 2.0 или среда Microsoft Visual Studio 2005. Пакет .NET Framework SDK можно получить бесплатно. См. раздел Установка пакета .NET Framework SDK.

Также убедитесь, что следующие компоненты Microsoft Windows установлены и функционируют.

  • Служба SMTP, являющаяся компонентом служб IIS. В системах Microsoft Windows Server 2003 служба SMTP по умолчанию вместе с IIS не устанавливается. См. инструкции по установке и использованию службы SMTP в документации Windows.

Построение экземпляра служб Notification Services

Для построения экземпляра необходимо выполнить следующие действия.

  • Создать экземпляр служб Notification Services.
  • Зарегистрировать экземпляр служб Notification Services.
  • Предоставить разрешения на SQL Server, базу данных и папки.

Следующие процедуры показывают, как нужно выполнять задачи образца Flight.

Шаг 1. Создать экземпляр служб Notification Services

  1. Открыть среду SQL Server Management Studio и подключиться к экземпляру SQL Server.

  2. В обозревателе объектов щелкнуть правой кнопкой мыши папку служб Notification Services и выбрать пункт Создать экземпляр служб Notification Services.

  3. В диалоговом окне Создать экземпляр служб Notification Services щелкнуть Обзор и выберать файл InstanceConfig.xml в корневой папке образца Flight.

  4. В окне Параметры введите значения для трех параметров.

    • SampleDirectory — путь корневой папки образца Flight. Путь по умолчанию — «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight».
    • NotificationServicesHost — имя сервера служб Notification Services.
    • SQLServer — имя экземпляра SQL Server.
  5. Установите флажок Включить экземпляр после его создания.

  6. Нажмите кнопку ОК.

  7. После того, как службы Notification Services закончат создание экземпляра, нажмите кнопку Закрыть.

Шаг 2. Зарегистрируйте экземпляр служб Notification Services

  1. В среде SQL Server Management Studio откройте узел служб Notification Services, щелкните правой кнопкой мыши экземпляр FlightInstance, выберите пункт Задачи и затем выберите пункт Зарегистрировать.

  2. В диалоговом окне Регистрация установите флажок Создать службу Windows. Служба Windows запустит на этом компьютере экземпляр служб Notification Services.

  3. В поле Вход в службу введите имя входа и пароль Windows. Это учетная запись Windows, под которой будет выполняться служба. Если для доступа к SQL Server используется проверка подлинности Windows, то служба Windows будет также использовать эту учетную запись для соединения с SQL Server.

  4. Если для доступа к SQL Server необходимо использовать проверку подлинности SQL Server, выберите Проверка подлинности SQL Server в пункте меню Проверка подлинности и введите имя входа и пароль SQL Server.

    Рекомендуется использовать проверку подлинности Windows.

  5. Нажмите кнопку ОК.

  6. После того, как службы Notification Services закончат регистрацию экземпляра, нажмите кнопку Закрыть.

ms160946.note(ru-ru,SQL.90).gifПримечание.
Если образец служб Notification Services развертывается при помощи учетной записи, принадлежащей владельцу базы данных или системному администратору, разрешения SQL Server на учетную запись предоставлять не нужно. Предоставление этих разрешений завершится ошибкой, на которую можно не обращать внимания. Для обеспечения безопасности при развертывании приложений необходимо использовать учетные записи с наименьшими правами доступа.

Шаг 3. Предоставление разрешений на SQL Server, базу данных и папки

  1. В обозревателе объектов разверните узел Безопасность.

  2. При необходимости создайте новое имя учетной записи базы данных для службы Windows, щелкните правой кнопкой мыши Имена входа, выберите Создать имя входа и создайте его.

    • Для использования проверки подлинности Windows выберите пункт Проверка подлинности Windows и введите учетную запись Windows, которая указывалась при регистрации экземпляра.
    • Для использования проверки подлинности SQL Server выберите пункт Проверка подлинности SQL Server и введите имя входа и пароль, которые указывались при регистрации экземпляра.
  3. Если имя входа, используемое службой Windows, уже имеет доступ к SQL Server, щелкните его правой кнопкой мыши и выберите пункт Свойства.

  4. В левой области диалогового окна Имя входа выберите пункт Сопоставление пользователей.

  5. Предоставьте разрешения для базы данных FlightInstanceNSMain.

    1. В окне Пользователи, сопоставленные с этим именем входа выберите пункт FlightInstanceNSMain.
    2. В поле Членство в роли базы данных для: FlightInstanceNSMain выберите пункт NSRunService.
  6. Предоставьте разрешения для базы данных FlightInstanceFlight.

    1. В окне Пользователи, сопоставленные с этим именем входа выберите пункт FlightInstanceFlight.
    2. В поле Членство в роли базы данных для: FlightInstanceFlight выберите пункт NSRunService.
  7. Нажмите кнопку ОК, чтобы применить разрешения SQL Server.

  8. При помощи проводника Windows настройте безопасность для папки Events.

    1. Найдите папку Events образца.
    2. Щелкните правой кнопкой мыши папку Events, выберите пункт Общий доступ и безопасность и перейдите на вкладку Безопасность.
    3. Нажмите кнопку Добавить и добавьте учетную запись, используемую службой Windows.
    4. В окне Имена групп или пользователей выберите только что добавленную учетную запись.
    5. В поле Разрешения выберите разрешения Чтение и Изменение.
    6. Нажмите кнопку ОК, чтобы применить изменения.
  9. Настройте безопасность для папки Notifications.

    1. Найдите папку Notifications образца.
    2. Щелкните правой кнопкой мыши папку Notifications, выберите пункт Общий доступ и безопасность, затем выберите вкладку Безопасность.
    3. Нажмите кнопку Добавить и добавьте учетную запись, используемую службой Windows.
    4. В окне Имена групп или пользователей выберите добавленную учетную запись.
    5. В поле Разрешения выберите Запись.
    6. Нажмите кнопку ОК, чтобы применить изменения.

Создание файла ключа для строгого имени

Если файл ключа для строгого имени еще не создавался, создайте его следующим образом.

To generate a strong name key file

  1. Откройте командную строку Microsoft Visual Studio 2005. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

    -- или --

    Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

  2. Используйте команду CD, чтобы сменить текущий каталог командной строки и перейти в каталог, в котором установлены образцы.

    ms160946.note(ru-ru,SQL.90).gifПримечание.
    Чтобы определить каталог, в котором установлены образцы, нажмите кнопку Пуск, укажите пункты Все программы, Microsoft SQL Server, Документация и учебные материалы, а затем выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, то образцы расположены в каталоге «<системный_диск>:\Program Files\Microsoft SQL Server\100\Samples».
  3. В командной строке выполните следующую команду, чтобы создать файл ключа:

    sn -k SampleKey.snk

    ms160946.note(ru-ru,SQL.90).gifВажно!
    Дополнительные сведения о паре ключей для строгого имени см. в статье по строгим именам и безопасности для платформы .NET Framework в центре разработчиков .NET в MSDN.

Выполнение образца

Чтобы запустить образец, выполните следующее:

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

В следующих процедурах показано, как выполнить эти задачи и затем просмотреть полученные уведомления.

Шаг 1. Запустите экземпляр

  1. В обозревателе объектов откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши экземпляр FlightInstance и выберите Запуск.

Шаг 2. Добавьте подписчиков и подписки

  1. Постройте решение Flight или Flight_VB в среде Visual Studio.

    Если используется пакет Microsoft .NET Framework SDK, выполните следующее.

    1. Нажмите кнопку Пуск, выберите пункт Все программы\Microsoft .NET Framework SDK v2.0 и нажмите кнопку Командная строка пакета SDK.
    2. Найдите корневую папку образца Flight. Введите следующую команду для размещения по умолчанию:
      cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight
    3. Чтобы выполнить сборку решения Visual Studio, введите следующее:
      [C#] 
      msbuild Flight.sln
      [Visual Basic] 
      msbuild Flight_VB.sln

    При использовании среды Visual Studio 2005 выполните следующее:

    1. откройте файл решения на выбор (Flight.sln или Flight_VB.sln);
    2. постройте решение.
  2. Запустите файл AddSubscribers.exe.

    По умолчанию данный файл расположен в папке «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\язык\AddSubscribers\bin\Debug».

  3. Запустите файл AddSubscriptions.exe.

    C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscriptions\язык\AddSubscriptions\bin\Debug.

ms160946.note(ru-ru,SQL.90).gifПримечание.
Для приложений рабочей среды или при выполнении приложения от учетной записи с ограниченными правами доступа в базах данных экземпляра и приложения добавьте имя входа SQL Server для приложения к роли базы данных NSSubscriberAdmin.

Шаг 3. Отправьте события

  1. В обозревателе Windows найдите корневую папку образца Flight, затем скопируйте файл EventData.xml во вложенную папку Events.

    При удалении файла поставщик событий наблюдателя за файловой системой считывает данные из файла, отправляет их приложению и затем изменяет расширение файла на «done».

    Если в процессе чтения или отправки данных происходит ошибка, поставщик событий изменяет расширение файла на ERR. Дополнительные сведения о данной ошибке см. в обозревателе событий Windows.

Шаг 4. Просмотрите уведомления

  1. Службам Notification Services понадобится около одной минуты для создания уведомлений.

  2. Используя обозреватель Windows, найдите папку Notifications образца Flight. Необходимо найти файл с именем FileNotifications.txt. Данный файл содержит уведомления на основе файлов.

  3. Перейдите к папке, в которую помещаются сообщения электронной почты. Обычно это одна из папок в каталоге «C:\Inetpub\mailroot». В зависимости от состояния SMTP-сервера уведомления должны находиться в папке Pickup или в папке Queue. Если запущена служба SMTP, сообщения могут быть перемещены в папку Badmail.

Удаление образца

Чтобы удалить образец Flight, выполните следующие инструкции.

Удаление образца Flight

  1. В обозревателе объектов среды SQL Server Management Studio откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши экземпляр FlightInstance и выберите пункт Остановить.

  3. Щелкните правой кнопкой мыши экземпляр FlightInstance, выберите Задачи, затем выберите Отменить регистрацию.

  4. Щелкните правой кнопкой мыши экземпляр FlightInstance, выберите Задачи, затем выберите Удалить.

См. также

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

Образцы служб SQL Server Notification Services
Обеспечение безопасности служб Notification Services

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

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

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Добавленное содержимое
  • Добавлены сведения о запуске образцов с разрешениями владельца базы данных.

5 декабря 2005 г.

Измененное содержимое
  • Изменены инструкции по созданию файла ключа, в том числе его имя и расположение.