Компания IBM
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 529 / 63 | Оценка: 4.48 / 4.37 | Длительность: 08:45:00
Лекция 2:

Использование интеграции с DB2 для улучшения приложения ITSO Electronics

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >
Аннотация: В этой лекции рассматриваются вопросы интеграции IBM Lotus Notes и Domino 7 с IBM DB2 Universal Database (UDB) на примере приложения ITSO Electronics

В этой лекции мы обсудим новые возможности, возникающие при интеграции IBM Lotus Notes и Domino 7 с IBM DB2 Universal Database (UDB). Там, где это необходимо, мы используем в качестве примера приложение ITSO Electronics для объяснения новых возможностей разработки приложений.

Ниже вы найдете информацию, в которой будут раскрыты следующие темы:

  • Введение в интеграцию Domino и DB2.
  • DB2 Access Views.
  • Query Views.
  • Работа с интегрированными данными DB2.
  • Анализ безопасности DB2 и Lotus Domino.
  • Поиск и устранение неисправностей в DB2 и Lotus Domino.
Замечание IBM Lotus Notes и Domino 7 с поддержкой DB2 были выпущены с ограниченной доступностью (Limited Availability); как таковые они не доступны для общего пользования, а рассчитаны только для оценки их возможностей. Для получения дополнительной информации о программе Limited Availability, а также другой важной информации, касающейся этой темы, посетите страницу в Интернете http://www.ibm.com/lotus/nsfdb2.

2.1 Введение в интеграцию Domino и DB2

Lotus Notes и Domino имеют в арсенале широкий спектр средств для интеграции с реляционными базами данных, бизнес-системами, а также системами планирования и управления ресурсами предприятия (enterprise resource planningERP), такими как Lotus Enterprise Integrator, Domino Enterprise Connection Services, Data Connection Resources и Lotus Connectors LotusScript Extensions. Lotus продолжает эти традиции с Notes и Domino 7, предоставляя в распоряжение разработчика новые децентрализованные возможности разработки приложений для интеграции с реляционными базами данных IBM DB2, которые одинаково могут применять как бизнес-пользователи, так и ведущие разработчики приложений. Лаборатории Lotus и DB2 в пределах корпорации IBM работали вместе для улучшения интеграционных возможностей, а сервер Domino 7 обеспечивает возможность выборочно определить новые или существующие базы данных Domino, так как в них включена поддержка DB2. Пользователи получают открытый доступ к базам данных Domino с поддержкой DB2 через сервер Domino 7, но сами базы данных хранятся в DB2. Таким образом, становится возможным в базе данных Domino с поддержкой DB2 использовать реляционные конструкции, а также данные из базы данных Domino с поддержкой DB2 в реляционных конструкциях. В то же время сохраняется поддержка функций Notes API, включая репликацию данных, маршрутизацию почты и административный доступ. Так как IBM DB2 является реляционной системой базы данных, данные с отдельных баз данных DB2, таблиц, видов и интегрированных объектов могут быть легко скомбинированы в новые наборы данных, используя общие поля данных и отношения. Все это позволяет разработчику работать с данными и представлять их другими, более удобными способами, и облегчает создание более интегрированных и значимых приложений в среде Domino и других средах, использующих данные Domino, данные DB2 и реляционные возможности. Более подробно эти возможности мы обсудим далее в этой главе.

До того как использовать новые интеграционные возможности Domino и DB2, вы должны установить сервер DB2 и сконфигурировать сервер Domino 7 для подключения к серверу DB2. В Lotus Domino 7 новые интеграционные возможности доступны в операционных системах Microsoft Windows и IBM AIX \text{\textregistered} 5LTM.

Локальная установка DB2

При настройке интеграции Domino и DB2 можно выбирать между локальной или удаленной установкой. При выборе локальной установки оба сервера, и Domino и DB2, будут установлены на одном компьютере. Локальную установку лучше использовать для тестовой среды или для системы с малой производительностью. На рис. 2.1 показана система с локальной установкой.

Локальная установка: сервер Domino и сервер DB2 установлены на одном компьютере

Рис. 2.1. Локальная установка: сервер Domino и сервер DB2 установлены на одном компьютере

Удаленная установка DB2

Для систем с высокой нагрузкой на сервер, скорее всего, лучше будет выполнить удаленную установку. В таком случае сервер Domino и сервер DB2 будут установлены на разных компьютерах. На рис. 2.2 представлен пример удаленной установки.

Удаленная установка: сервер Domino и сервер DB2 установлены на разных компьютерах

Рис. 2.2. Удаленная установка: сервер Domino и сервер DB2 установлены на разных компьютерах

Существует два уровня интеграции с DB2. В первом случае сервер Domino и сервер DB2 устанавливаются на одном и том же компьютере, а во втором случае – на разных.

Если вы решили установить оба сервера на одном компьютере, вам необходимо выполнить приведенную ниже процедуру.

  1. Установить Domino 7 на сервере Domino.
  2. Установить приведенные ниже элементы на сервере DB2:
    • DB2 UDB Enterprise Server Edition версии 8.2.2, включая следующие файлы:
      • DB2 UDB Enterprise Server V8.2;
      • DB2 Universal Database версии 8 с пакетом исправлений 9a.
    • Разблокирующий ключ ограниченного доступа.
  3. Установить сервер DB2 Access.

Если вы решили устанавливать оба сервера, Domino и DB2, на разных компьютерах, то вам необходимо выполнить следующую процедуру.

  1. Установить Domino 7 на сервере Domino.
  2. Установить приведенные ниже элементы на сервере DB2:
    • DB2 UDB Enterprise Server Edition версии 8.2.2, включая следующие файлы:
      • DB2 UDB Enterprise Server V8.2;
      • DB2 Universal Database версии 8 с пакетом исправлений 9a.
    • Разблокирующий ключ ограниченного доступа.
  3. Установить DB2 Run-Time Client на сервере Domino.
  4. Установить сервер DB2 Access на том же компьютере, что и сервер DB2.
Замечание Убедитесь в том, что вы удалили с компьютера, на котором собираетесь устанавливать сервер DB2 Access, все версии Lotus Notes и Domino, вышедшие раньше версии 7.0. В противном случае система не будет работать. Если есть необходимость сохранить раннюю версию сервера Lotus Notes/Domino, то переименуйте папку, в которой хранятся файлы этой программы. Убедитесь в том, что nnotes.dll не находится в PATH.

В данном издании мы обращаем внимание на новые элементы разработки приложений, появившиеся в Domino 7. Поэтому рассматривается только основные моменты процесса установки. Для получения более подробной информации о том, как установить и обслуживать интеграцию Domino и DB2, обратитесь к следующим источникам:

Совет Во время установки необходимо определить несколько имен пользователей DB2. Имена пользователей DB2 должны соответствовать приведенным ниже правилам присвоения имен и быть написаны заглавными буквами:
  • ID (идентификаторы) пользователей в системах, построенных на основе Linux \text{\textregistered} и UNIX \text{\textregistered} , могут содержать до 8 символов.
  • Имена пользователей в системах, построенных на основе Microsoft Windows, могут содержать до 30 символов. Однако практически у систем Microsoft Windows NT\text{\textregistered} , Windows 2000, Windows XP, Windows Server 2003 предел составляет 20 символов.
  • Когда не используется клиентская идентификация, клиенты 32-битовых не Windows-систем, подключающиеся к Windows NT, Windows 2000, Windows XP и Windows Server 2003, с именами пользователей длиннее 8 символов, поддерживаются только в том случае, если имя пользователя и пароль определены в явной форме.
  • Имена и ID пользователей не могут:
    • быть словами USERS, ADMINS, GUESTS, PUBLIC, LOCAL или любыми другими зарезервированными словами SQL (Structured Query Language);
    • начинаться со слов IBM, SQL или SYS ;
    • включать диакритические символы.

2.2 DB2 Access Views

В Lotus Notes и Domino применяется иной принцип хранения данных по сравнению с тем, что используется в реляционных базах данных, таких как DB2. В реляционных базах данных информация упорядочивается и распределяется по строго структурированным таблицам, а в базе данных Domino документы или "записки" ( "notes" ), состоящие из списка полей, сохраняются в формате неструктурированного файла. Такой способ хранения информации усложняет доступ к данным Domino из DB2. Для решения данной проблемы в Domino 7 были введены DB2 Access Views, общие ресурсы, позволяющие определить представление DB2, обращающееся к данным Domino путем систематизации последних в таблицу, которую можно запросить с помощью языка структурированных запросов (SQL). DB2 Access Views являются элементами разработки приложений заднего плана и не видны конечным пользователям.

DB2 Access Views доступны только для баз данных, хранящихся на сервере DB2. Перед созданием DB2 Access View на сервере Domino должна быть активирована DB2 и база данных должна находиться в системе DB2. Если вы создадите локальную реплику базы данных или реплику на сервере Domino 7.0, на котором DB2 не активирована, то DB2 Access View будет находиться в базе данных, однако им нельзя будет воспользоваться или он не будет видимым в Lotus Domino Designer.

Когда в базе данных Lotus Notes включается поддержка DB2, Domino создает схему базы данных DB2 для хранения доступных пользователю представлений Lotus Notes. Имя схемы основывается на имени файла NSF. Любые созданные вами DB2 Access Views будут также расположены в этой схеме.

Когда вы создаете DB2 Access View, информация копируется в специальную таблицу DB2. После создания и инициализации данных в DB2 Access View Domino автоматически синхронизирует обновления между неструктурированными данными Domino и структурированными данными столбцов в DB2 Access View. Следовательно, обновлять DB2 Access View нет необходимости.

2.2.1 Создание DB2 Access Views

Для создания нового DB2 Access View вам необходимо выполнить приведенные ниже действия. К тому же вы можете обратиться к справке Lotus Domino 7 Designer, которую можно найти по следующему адресу в Интернете: http://www.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf

  1. Откройте базу данных, в которой активирована поддержка DB2 в Lotus Domino Designer 7.0.
  2. На панели проектирования выберите Shared Resources => DB2 Access views.
  3. Щелкните по кнопке New DB2 Access view (Создать новый DB2 Access View). Откроется окно, показанное на рис. 2.3.
    Закладка основных свойств DB2 Access View

    Рис. 2.3. Закладка основных свойств DB2 Access View
  4. В окне DB2 Access View вы можете:
    • Присвоить имя DB2 Access View.
    • Выбрать форму или формы, связанные с DB2 Access View. Вы можете выбрать, какие именно документы включать, базируясь на содержании поля Form документа. Можно либо выбрать все формы, либо выбрать некоторые из доступных форм, приведенных в списке. Если у документа отсутствует поле формы, он будет включен в DB2 Access View, только если вы выберете пункт меню All Forms (Все формы).
    • Параметры DB2 Inserts and Updates будут верны только в том случае, если вы выполните операторы insert или update SQL-выражения из DB2:
      • Compute with form on DB2 insert or update (Пересчитывать по форме при операциях DB2 insert и update ). Включите эту опцию, если выбранные формы содержат вычисляемые поля и вы хотите, чтобы формулы были пересчитаны, когда документ создается или обновляется с помощью SQL.
      • Default form to use for DB2 inserts (Форма по умолчанию для вставок DB2). Пользователи DB2 могут осуществлять операции вставки, обновления и удаления (если у них есть права на это) с данными в DB2 Access View. В Domino 7 можно выбрать только один тип документа (основанный на форме) для создания с помощью SQL-оператора INSERT. Документы любого типа (основанные на любой форме) могут быть обновлены или удалены из SQL.
  5. Перейдите к закладке Advanced (Дополнительные) окна DB2 Access View, как показано на рис. 2.4.
    Закладка Advanced окна DB2 Access View

    Рис. 2.4. Закладка Advanced окна DB2 Access View
    Здесь вы можете выбрать приведенные ниже опции:
    • Include UNID in access view (Включить UNID в access view).

      Когда вы установите этот флажок, вы сможете получить доступ к уникальному идентификатору документа Lotus Notes ( UNID ) через DB2 Access View.

    • Include OID in access view (Включить OID в access view).

      OID расшифровывается как Origination Identifier (идентификатор создания). Если вы выберете эту опцию и выберете ее в SQL-формуле Query View, то ссылки документа будут работать, когда элементы вида выбраны и скопированы в виде таблицы.

    • Include modified time in access view (Включить отметку времени изменения документа в access view).

      Выберите эту опцию, чтобы включать отметку времени изменения документа в Notes для каждой записи в DB2 Access View. Обратите внимание на то, что эта отметка времени преобразуется в стандарт GMT (Гринвичское время).

    • Normalize to GMT for time zone conversions (Нормализировать под GMT для осуществления преобразований между различными часовыми поясами).

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

  6. Закройте окно свойств DB2 Access View.
  7. Нажмите кнопку Choose Field (Выбрать поле), после чего на вашем экране появится окно, показанное на рис. 2.5.
    Окно DB2 Access View Choose Field

    Рис. 2.5. Окно DB2 Access View Choose Field
  8. В окне Choose Field вы можете:
    • Выбрать поля, которые хотите включить из каждой формы.

      В Domino 7 DB2 Access View может содержать максимум 84 столбца. Если вам понадобится большее количество данных, придется определить несколько DB2 Access Views.

    • Щелкните по кнопке ОК для подтверждения выбора.

      Список выбранных элементов DB2 Access View появится в рабочей области.

  9. Нажмите кнопку Insert Field (Вставить поле), чтобы включить дополнительные поля.

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

  10. Дважды щелкните по каждому элементу Access View Entry, чтобы отредактировать его свойства. См. рис. 2.6.
    Свойства Access View Entry

    Рис. 2.6. Свойства Access View Entry

Для полей, которые были добавлены с помощью команды Insert Field, первые три свойства должны быть заполнены. Для полей, выбранных из форм, соответствующие свойства заполняются автоматически. В этом окне присутствуют следующие поля для заполнения:

  • Field Name (Название поля).

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

    Замечание Если использовался метод Choose Field при определении полей для DB2 Access View, вы сможете редактировать имена полей в окне свойств. Однако если вы измените название поля таким образом, что оно не будет соответствовать названию поля в документе, соответствующий столбец в DB2 окажется пустым.
  • Notes type (Тип данных Notes).

    Показывает тип данных Lotus Notes для этого поля.

    Замечание Следующие типы данных Notes не поддерживаются в DB2 Access Views: Formula, rich text, rich text light.
  • DB2 Type (Тип данных DB2).

    Показывает тип данных DB2 для данного поля. Lotus Notes присваивает этому полю значение по умолчанию, связанное с типом выбранного поля Notes.

Замечание Если имеется целое число ( integer ), определенное в DB2 Access View, и вы пытаетесь обновить этот столбец с помощью операторов SQL INSERT или UPDATE, используя при этом действительное число ( real ), то перед обновлением DB2 преобразует действительное число в целое, и десятичная часть числа будет отброшена.

Представленные ниже атрибуты значимы для всех элементов DB2 Access View.

  • Create DB2 index field (Создать индексированное поле DB2). Этот столбец DB2 индексируется для увеличения скорости поиска по базе данных. Используя приведенную ниже команду, эта опция создает DB2-индекс, основанный на столбце таблицы:
    > CREATE INDEX ON TABLE x (coly)
    Использование индексов требует дополнительного пространства на системе хранения и обновления большего количества ресурсов, зато запросы такого типа выполняются намного быстрее, особенно если в TABLE x хранится большое количество строк:
    > SELECT cola, colb, colc FROM x WHERE coly=<some value>
    Индексация в DB2 – это расширение возможностей для разработчиков в среде Domino, однако существуют индексы, оптимизирующие выборку данных, которые нельзя создать в Domino Designer. Например, эта команда оптимизирует следующий запрос:
    > CREATE INDEX ON TABLE x (cola, colb, colc)
    В данном примере индекс используется для сортировки данных. При отсутствии индекса, когда таблица увеличивается, эта операция является наиболее ресурсоемкой:
    > SELECT cola, colb, colc FROM x WHERE cola = <some value> ORDER BY cola,
    colb, colc
  • DB2 column length (Длина столбца DB2). Это свойство определяет длину столбца в DB2 Access View. При выборе значения для данного поля зачастую приходится искать компромисс между противоположными целями. Возможно, вы захотите отобразить максимально возможное количество полей, но помните, что максимальная длина столбца непосредственно влияет на пространство, занимаемое DB2 Access View в базе данных DB2. При преобразовании полей Notes необходимо помнить о том, что существует предел максимального количества данных, которые можно сохранить в таблице DAV. Длина всех полей данных вместе с зарезервированным DB2-пространством не может превышать 16384 байт. Если необходимо хранить более 16000 байт данных, то часть текстовых полей можно преобразовать в тип LONG VARCHAR. При преобразовании поля в этот тип данных, в таблице сохраняется небольшой "локатор" ("locator"), а текущее поле данных (до 32000 байт на одно поле) сохраняется в виде большого символьного объекта (Character Large Object, CLOB ). Использование CLOB позволяет увеличить емкость DAV (84*32000), однако вы должны использовать тип LONG VARCHAR, только если не можете поместить данные "линейно", так как CLOB работает медленнее и занимает больше дискового пространства, чем линейное хранение данных. При создании или обновлении DB2 Access View сервер Domino автоматически проверит DB2 Access View на превышение максимальной длины; таким образом, не придется вручную считать длину. Тем не менее, вы можете использовать рекомендации, приведенные в табл. 2.1, для оценки "линейной" длины данных.
    Таблица 2.1. Виды данных и их длина в DB2 Access View
    Тип Длина в DAV Комментарии
    VARCHAR 5 + заявленная длина Например, для хранения VARCHAR(40) потребуется 45 байт
    LONG VARCHAR 25 Линейный локатор
    DOUBLE 9 Фиксированный размер
    TIMESTAMP 11 Фиксированный размер
    DATE 5 Фиксированный размер
    TIME 4 Фиксированный размер
    INTEGER 9 Фиксированный размер
  • Allow truncation of Notes data (Позволить усечение данных Notes ). Иногда размер поля может быть больше, чем максимальная длина столбца, которую вы определили для элемента DB2 Access View. Когда вы разрешите усечение данных, содержание по достижении максимальной длины будет обрезаться. Если вы не разрешите усечение, то при достижении предела во время заполнения DB2 Access View на консоли сервера появится следующее сообщение: "Access Table field data exceeds defined length".

    В Domino 7 параметр Allow truncation of Notes data по умолчанию отключен. В дальнейшем мы настоятельно рекомендуем включить этот параметр для всех элементов DB2 Access View Entry, в которых содержатся текстовые данные. Однако существует одно исключение: если вы планируете делать SQL-запросы на обновление DB2 Access View из DB2, этот параметр дает разрешение на усечение данных до заданной длины, что может привести к потере данных.

    Замечание Мы рекомендуем вам выбрать параметр Allow truncation of Notes data для всех элементов Access View.
< Лекция 1 || Лекция 2: 12345 || Лекция 3 >