Опубликован: 29.07.2008 | Доступ: свободный | Студентов: 1264 / 145 | Оценка: 4.49 / 4.15 | Длительность: 17:53:00
Лекция 9:

Введение в службы Notification Services

< Лекция 8 || Лекция 9: 1234567

Инфраструктура разработки

Теперь давайте приступим к созданию нашего приложения. SQL Server Management Studio не включает шаблон для проектов служб Notification Services, хотя можно создать проект для размещения файлов, имеющих отношение к службам Notification Services.

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

Установка примеров (образцов) SQL Server.Далее в материале этой лекции используется пример Tutorial, который включен в образцы к службам Notification Services. Хотя для того, чтобы изучать содержание данной лекции, примеры устанавливать необязательно, образцы к службам Notification Services, поставляемые с SQL Server 2005 помогут лучше понять службы Notification Services в целом, путем сравнения нескольких бизнес-сценариев и решений для них. Чтобы установить образцы SQL Server 2005, ознакомьтесь с темой "Установка образцов" в Электронной документации по SQL Server 2005/

Кроме того, можно установить примеры и изучить темы Учебника по службам Notification Services в дополнение к материалам этой лекции.

Совет. Раздел "Образцы: службы Notification Services" в Электронной документации по SQL Server 2005 включает тему, которая называется "Диагностика образцов" и может помочь вам при возникновении непредвиденных ошибок в процессе изучения действий, описанных далее в этой лекции.
Создаем новый проект для служб Notification Services

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

Аналогично, службы Notification Services будут содержать минимум данных о самих подписчиках, сохраняя для каждого из них только идентификатор. Если нужно отслеживать информацию о подписчиках, следует подумать о разработке стандартного приложения или использовать решение, основанное на членстве. Идентификатор, хранимый службами Notification Services, представляет собой связь между службами и решением для отслеживания информации о подписчиках.

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

Создаем особую базу данных приложения
  1. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio).
  2. В меню File (Файл) выберите команду Open (Открыть), затем File (Файл). Найдите в папке My Documents\MicrosoftPress\ SQLAppliedTechSBS\Chapter13 сценарий BirdingDatabase Creation.sql.
  3. Измените путь к файлу базы данных, чтобы он указывал на папку, в которой вы хотите создать базу данных.
  4. Выполните сценарий, чтобы создать базу данных, таблицы и содержимое таблиц.
Создаем проект и решение SQL Server 2005 Management Studio
  1. Откройте SQL Server Management Studio и установите соединение с сервером базы данных.
  2. В меню File (Файл) выберите New, Project (Создать, Проект). Выберите в качестве шаблона SQL Server Scripts (Сценарии SQL Server). Этот шаблон используется потому, что SQL Server Management Studio не включает шаблонов проектов для служб Notification Services. Дайте проекту имя SQL2005StepByStep_NS. Выберите папку. Снимите флажок Create Directory For Solution (Создать каталог для решения). Нажмите кнопку ОК, чтобы создать проект.
  3. Через Проводник Windows скопируйте из папки My Documents\MicrosoftPress\SQLAppliedTechSBS\Chapter13 в папку, в которой вы сохраняете проект, следующие файлы:
    • EmptyADF.xml
    • SQL2005StepByStepICF.xml
    • BirdingTransform.xslt (Этот файл не понадобится до окончательной обработки, просто добавьте его сейчас для удобства.)
  4. В окне Solution Explorer (Обозреватель решений) щелкните правой кнопкой мыши SQL2005StepByStep_NS и выберите из контекстного меню команду Add Existing Item (Добавить существующий элемент). В диалоговом окне Add Existing Item (Добавление существующего элемента) выберите из раскрывающегося списка Files of Type (Типы файлов) All Files (Все файлы). Добавьте перечисленные выше два файла в проект. Оба файла будут помещены в папку Miscellaneous, как показано на рисунке:

  5. Щелкните правой кнопкой мыши файл EmptyADF.xml и выберите из контекстного меню команду Rename (Переименовать). Измените имя файла на BirdingADF.xml.
  6. В Проводнике Windows в папке проекта создайте новую папку с именем Notifications. В этой папке будут сохранять файлы, создаваемые в процессе доставки уведомлений.
Предупреждение. Кроме того, нужно выбрать учетную запись пользователя, которая будет действовать от имени экземпляра служб Notification Services. Эта учетная запись должна обладать необходимыми полномочиями на создание и изменение файлов в папках назначения.

Основа приложения служб Notification Services

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

Определение схем

Файл ADF состоит из нескольких разделов, которые используются для описания схемы таблиц, содержащих информацию о событиях, подписках и уведомлениях. Как уже упоминалось ранее, файл ADF - это XML-файл, который должен соответствовать предварительно определенной схеме XSD.

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

Команды SQL, которые выполняют операции сопоставления или обновления, называются правилами, например, правило событий, правило хроники событий или запланированные правила.

В следующих разделах мы создадим файл ADF, который будет содержать все схемы объектов, о которых здесь говорилось.

Определяем класс событий
  1. Откройте для редактирования файл BirdingADF.xml, выполнив двойной щелчок на нем в окне Solution Explorer (Обозреватель решений).
  2. Просмотрите его содержание и найдите комментарии XML, которые служат указателями места заполнения для добавляемого содержимого.
  3. Схема для событий должна включать следующие поля:

  • Регион
  • Дата и время наблюдения
  • Описание наблюдения
  • Категория наблюдения

Вместо комментария <!-- Replace with EventClasses XML --> введите или вставьте следующий фрагмент XML:

<!- Event Classes -> 
<EventClasses> 
  <EventClass>
    <EventClassName>SightData</EventClassName>
    <Schema> 
      <Field>
        <FieldName>RegionID</FieldName>
        <FieldType>varchar(5)</FieldType>
        <FieldTypeMods>not null</FieldTypeMods> 
      </Field> 
      <Field>
        <FieldName>Date</FieldName>
        <FieldType>datetime</FieldType>
        <FieldTypeMods>not null</FieldTypeMods> 
      </Field> 
      <Field>
        <FieldName>Observation</FieldName>
        <FieldType>nvarchar(500)</FieldType>
        <FieldTypeMods>not null</FieldTypeMods> 
      </Field> 
      <Field>
        <FieldName>Category</FieldName>
        <FieldType>char(1)</FieldType>
        <FieldTypeMods>not null</FieldTypeMods> 
      </Field> 
    </Schema> 
    <IndexSqlSchema> 
      <SqlStatement>
        CREATE INDEX myIndex
            ON SightData ( Date ); 
      </SqlStatement> 
    </IndexSqlSchema> 
  </EventClass> 
</EventClasses>

Обратите внимание на структуру содержимого. Она выглядит как обычное определение схемы базы данных, но выражено при помощи синтаксиса XML. Мы объявляем имя класса событий вместо имени таблицы, затем поля, типы данных, модификаторы для приема нулевых значений и т. д.

Кроме того, при объявлении полей, которые будут формировать таблицу событий SightData, можно включить информацию об индексах, которые, по вашему мнению, полезно будет применить при обращении к таблице правила сопоставления. Таким образом, если известно, что правило сопоставления будет использовать данные столбца RegionID в качестве фильтра либо самостоятельно, либо в предложении JOIN, можно дать указание службам Notification Services создать соответствующие индексы. Это будет полезно в тех случаях, если данные поступают в больших пакетах; это не характерно для примера с Птицландией, поэтому в индексах нет необходимости. Элемент IndexSqlSchema показан просто как напоминание. Дополнительную информацию об использовании индексов для повышения производительности запросов можно найти в "Повышение производительности запроса" "Повышение производительности запроса".

Дополнительная информация Для определения схем в ADF существуют дополнительные параметры. Дополнительную информацию о доступных элементах можно найти в Электронной документации по SQL Server 2005 в теме "Справочник по файлам определения приложений".
< Лекция 8 || Лекция 9: 1234567