6cccf2f6eb2578b7207f9a3db8c47c8f.ppt
- Количество слайдов: 43
Notes & Domino 7 Новые возможности для разработки приложений Владимир Панов
О чем будет рассказано. . . Ü Domino Designer 7: изменения в интерфейсе, новые функции и возможности Новые элементы дизайна приложений Lotus. Script, @-функции, Java, C/С++ Web-сервисы NSFDB 2 – новая подсистема хранения данных Domino в базах DB 2 Интеграция «толстых» клиентов (Notes и Workplace) Ü И другие, еще более интересные вещи… Ü Ü Ü
Domino Designer 7. 0 Ü Изменен список элементов дизайна n n n Ü Ü Более удобное представление информации Редактирование «по месту» названия и комментария Сортируемая колонка «Комментарий» Кнопка «Sign» в списках агентов, web-сервисов и библиотек Кнопка/индикатор в тулбаре, управляющая LS-отладчиком
Новые функции для разработчика приложений Ü Ü Java-отладчик для агентов, web-сервисов и библиотек (интеграция с внешней Java IDE, например, Eclipse) Профилирование операций с Notes-объектами в Lotus. Script- и Java-агентах Сравнить с Team. Studio Profiler
Новое в элементах дизайна Ü Представления и папки: n n Ü Для работы с DB 2 (подробнее дальше) n n Ü Shared-колонки (как отдельные элементы дизайна) Right-click – меню DB 2 Query View DB 2 Access View Web-сервисы
Shared-колонки
Right-click – меню Ü Определяемые разработчиком View или Folder действия, запускаемые через меню правой кнопкой мыши
Программирование Ü Ü Java 1. 4. 2 Несколько новых методов и свойств в Notes-классах n n n Ü Несколько новых @-функций n Ü Notes. Database. Get. Modified. Documents Notes. Document. Collection. Until. Time Notes. DOM. . . @DB 2 Schema, @Is. DB 2, @Is. Embedded. Inside. WCT, . . . Notes C API n n n DB 2 Support Functions NSFDb. Stamp. Notes. Multi. Item Encryption/decryption APIs http: //www-128. ibm. com/developerworks/lotus/library/nd 7 -security-api/ Ü Lotus. Script: Практически ничего нового
Web-Сервисы Ü Ü Ü Ü Новая возможность для интеграции на базе стандартов: SOAP 1. 1, WSDL 1. 1 Это можно делать и до 7 -й версии, но «вручную» Пока только в одну сторону: Domino выступает как провайдер (host) Новый элемент дизайна – Web Service, развитие webагентов Designer 7 обслуживает разработку Задача Http – обеспечивает выполнение Программный код (на Lotus. Script или Java) автоматически синхронизируется с WSDL-описанием сервиса
Web-Сервисы Security Advan ced
Web-Сервисы Ü Show WSDL Web Services Ü При импорте WSDLфайла автоматически создается необходимая структура классов При изменении кода WSDL-интерфейс сервиса обновляется
Web-Сервисы Ü Ü К web-сервисам применимы все правила безопасности web-агентов Вызов сервиса (HTTP Post): http: //host/busytimews. nsf/busytimelookup? Open. Web. Service Ü Получение WSDL-документа, описывающего интерфейс сервиса (HTTP Get): http: //host/busytimews. nsf/busytimelookup? WSDL
NSFDB 2 Ü NSFDB 2 в Domino 7 – результат нескольких лет работы Lotus и IBM над проектом с кодовым названием «Mission IMPOSSIBLE»
NSFDB 2: Что это такое Ü Ü Ü Альтернативная подсистема хранения данных Domino, использующая возможности DB 2 8. 2 вместо обычной файловой системы Это не замена для традиционной NSF. Они могут сосуществовать на одном сервере Domino, одни базы в обычных nsf-файлах, от других остаются файлы размером 5 байт с текстом {DB 2}. По заверениям IBM традиционная NSF не будет «забыта» , более того, она продолжает совершенствоваться
NSFDB 2: Конфигурации серверов
NSFDB 2: Цели проекта Ü Ü Ü Функциональная прозрачность для пользователей и совместимость для традиционных приложений Простые инструменты администрирования Новая функциональность, основанная на применении реляционных технологий n DB 2 Query View n DB 2 Access View Инструменты сторонних разработчиков, например, для Backup Производительность НЕ была целью для 7. 0 !
NSFDB 2: Архитектура Domino 7
NSFDB 2: Архитектура Domino 7 Ü Ü Граница проведена на очень низком уровне Обеспечивается API-совместимость Все сервисы Domino работают без модификаций Проводимая оптимизация влияет на все приложения Domino
NSFDB 2: Структура данных Ü Для каждой базы Domino в DB 2 создается своя «схема» , содержащая один и тот же набор таблиц (см. дальше). Название схемы соответствует имени файла NSF:
NSFDB 2: NSFSCHEMA
NSFDB 2: DB 2 Access View Ü DAV – определяемое разработчиком DB 2 -view, обеспечивающее «внешний» (из любых приложений DB 2) доступ к определенным записям (документам) Domino
NSFDB 2: DB 2 Access View Ü Ü Ü DB 2 Access View (DAV) – элемент дизайна, определяющий, какие поля из каких документов базы должны быть представлены в колонках соответствующей таблицы в базе DB 2 Могут быть выбраны все документы базы или документы определенной формы Спец. колонки #Note. Id, #UNID, #Modified Поддерживаются типы данных: Text, Text List, Time, Number Multi-value – поля преобразуются в текст с заданным разделителем
NSFDB 2: DB 2 Access View Ü Обращаясь к DAV с помощью SQL, можно: n n Читать Notes-данные с учетом прав доступа к базам и документам. Domino участвует в определении прав доступа. Чтение выполняется быстро, так как обрабатывается самой DB 2. Добавлять, модифицировать и удалять записи. Такие операции транслируются в запросы к Domino, чтобы решить проблемы конфликтов, блокировок и т. п. Однако, транзакции Domino по-прежнему поддерживает только на уровне отдельного документа
NSFDB 2: DB 2 Query View Ü Ü Ü DB 2 Query View (DQV) - «обычное» view, но вместо @-формулы отбора задается SQL-запрос (тоже SELECT, но совсем другой). Поля получаемой по запросу таблицы могут использоваться в формулах колонок вида. SQL-запрос выполняется каждый раз при открытии вида пользователем или приложением, Domino не хранит индекс, как для обычных view Ü Ü Текст SQL-запроса задается @формулой, которая вычисляется при открытии Query. View, => можно передавать параметры, зависящие от пользователя, настроек, данных SQL-запрос выполняется DB 2 – одной из самых современных РСУБД. Возможности почти безграничны. Примеры далее. . .
NSFDB 2: DB 2 Query View Ü Возможности применения Ü Доступ к DB 2 Access View в текущей базе Domino. Если в SELECT присутствует колонка #Note. Id, документы даже открываются. Имеет смысл, если требуется «join» с другими данными или еще какие-нибудь операции, выполняемые DB 2 лучше, чем Domino Доступ сразу ко многим базам Domino Доступ к «обычным» базам DB 2, в том числе «федеративный» DB 2 Enterprise включает средства для подключения других баз, например, Oracle, MSSQL, . . . , можно добраться и до них Можно использовать функции DB 2 XML-Extender, получая данные в том xmlформате, который нужен, например, web-приложению. Вероятно, можно использовать и другие «расширители» , например, Text. Extender – можно выполнять полнотекстовые запросы по данным в DB 2 Рекурсивные SQL-запросы позволяют оперировать с иерархией произвольной «глубины» , таким образом, можно представить и обработать в DB 2 иерархию ответных документов Ü Ü Ü
NSFDB 2: Пример DB 2 Query. View На рисунке - структура данных примерной базы, входящей в комплект DB 2. Если построить аналогичное Notes-приложение традиционным способом, не обойтись без дублирования данных. Например, в документе Employee просто необходимо поле Dept. Name. Применение DAV+QV позволит этого избежать
NSFDB 2: …Пример DB 2 Query. View SQL-запрос для Query. View, в котором можно сгруппировать сотрудников по подразделениям (достаточно указать DEPTNAME в категоризованной колонке): Select e. EMPNO, e. First. Nme ||' '|| e. Last. Name as NAME, e. PHONENO, e. SALARY, d. DEPTNAME from DB 2 ADMIN. SAMPLE_EMPLOYEE As e, DB 2 ADMIN. SAMPLE_DEPARTMENT As d where e. WORKDEPT = d. DEPTNO SQL-запрос для Query. View, в котором, наоборот, показываются только подразделения, но для каждого вычисляется суммарная зарплата сотрудников: Select d. DEPTNAME, sum(e. SALARY) as SAL_TOTAL from DB 2 ADMIN. SAMPLE_EMPLOYEE As e, DB 2 ADMIN. SAMPLE_DEPARTMENT As d where e. WORKDEPT = d. DEPTNO group by d. DEPTNAME
NSFDB 2: Возможности применения Ü Ü Самая «тесная» интеграция приложений Domino и DB 2 «Нормализация» обычных Domino приложений (особенно в сочетании с LEI или DECS) Построение отчетов, которое в Domino всегда было проблемой Идея: Формирование истории изменений Dominoдокументов (триггерами на DAV), затем показ в приложении данных на определенный момент времени в прошлом (с помощью Query. View)
NSFDB 2: Архитектура ИС Ü Принципы построения архитектуры информационной системы 1. 2. 3. 4. 5. 6. Минимизировать дублирование атрибутивной информации в документах (оставить только то, что необходимо для FT-поиска и управления доступом к документам, так как эти функции работают "по-старому". Минимизировать использование "обычных" view, вместо них создавать DB 2 Query View (DQV) с SQL-запросами по таблицам, созданным как DB 2 Access View (DAV). Атрибутивные поля документов "опубликовать" в DB 2 с помощью DAV. Как правило понадобится по одному DAV на каждую форму (тип документа). Получим дублирование всей атрибутивной информации, но только однократное, а не многократное (и в документах и в индексах представлений), как это обычно бывает. Все необходимые представления реализуются как DQV (пока непонятно, как быть с иерархией респонсов, можно ли ее реализовать в DQV). В формах необходимые данные из других (взаимосвязанных) документов также получаются при открытии с помощью Lookup по представлению типа DQV. Опционально, можно реализовать агенты (бизнес-процедуры), модифицирующие взаимосвязанные документы, как встроенные процедуры (в том числе триггеры).
NSFDB 2: Архитектура ИС Ü Отрицательные моменты в применении перечисленных выше правил: n n Ясно, что применение этих правил в полном объеме к существующей системе потребует почти полной ее переделки. Такая система вообще не будет работать в NSF-варианте, то есть, например, не будет работать локально.
NSFDB 2: Чего НЕТ в 7. 0 Ü Ü Нет официального релиза!!! NSFDB 2 пока может использоваться только в опытном режиме Также отсутствуют: n n Ü Ü Ü NSF”Oracle”, NSF”MSSQL”, … Fast Replication (репликация в пределах кластера на уровне файловой системы) Локальное шифрование баз (локально для сервера) Shared Mail, IMAP 4, LOG. NSF (нельзя разместить в DB 2) Максимум - две интернациональных последовательности сортировки одновременно (в NSF до 256) Полнотекстовый индекс пока создается и используется постарому (в файловой системе) Не все платформы поддерживаются, в основном Windows и AIX Производительность не была целью проекта 7. 0, … вот она и не достигнута! Задача HTTP не поддерживает DB 2 Query. View
NSFDB 2 или DECS/LEI? Ü NSFDB 2 n Ü DECS/LEI n n Ü SQL Query. View – возможность, которой нет в DECS/LEI Возможность независимого определения структур данных и последующей интеграции Virtual Documents – документы существуют только как записи в прикладной базе DB 2 заданной структуры Вывод: и в NSFDB 2 и в DECS/LEI есть свои уникальные фичи. Поэтому целесообразно использовать сочетание NSFDB 2 и DECS/LEI
NSFDB 2: Кому все это надо? Ü Ü Если в вашей организации уже используется система на основе DB 2 Если вам нужно решать задачи, перечисленные ранее Если разработчики имеют опыт работы с SQL Если использование инструментов администрирования DB 2 имеет конкретные преимущества для вашей организации
Кое-что еще… Ü Ü Ü Более высокая производительность Domino 7: Миф или реальность? Интеграция Notes 7 и Workplace Rich Client Что дальше? Будет ли жизнь после
Производительность Domino 7: Миф или реальность? Ü IBM: n n n Domino 7 использует CPU на 15 -50% меньше, чем Domino 6 Domino 7 поддерживает на 50% больше пользователей на той же платформе Примечание: в тестах учитывалась только работа пользователей с почтовой системой (много «небольших» баз единоличного пользования) n Информация общедоступна: • http: //www-128. ibm. com/developerworks/lotus/library/nd 7 -perform/ • http: //www. Notes. Bench. Org/
Производительность Domino 7: Миф или реальность? Ü Интер. Траст: (по результатам нагрузочного тестирования Company. Media 3. 1) n n База СМ-Вн. Д объемом 9 ГБ содержит 800 тыс. док, с ней одновременно работают несколько сотен пользователей При равных условиях Domino 7 больше грузит CPU, чем D 6 Однако, при некотором числе Notes-пользователей Domino 6 перестает реагировать на клиентские запросы, даже если ресурсов хватает (для IBM x. Series 366 это примерно 250) Если ресурсов достаточно, Domino 7 может поддерживать в 3 раза больше пользователей, например, когда D 6 перестает реагировать на запросы более чем 200 Notes-клиентов, Domino 7 уверенно тянет 600 и не «зависает» даже при 1000!
Интеграция «толстых» клиентов (Notes и Workplace) Ü Ü IBM Workplace Rich Client - он же: n IBM Workplace Client Technology (WCT) n IBM Workplace Managed Client (WMC) «Толстый» клиент - целый программный комплекс, устанавливаемый на рабочей станции и обеспечивающий: n n n Доступ к приложениям Workplace множество общих для разных приложений элементов интерфейса (например, программ редактирования офисных документов) и сервисов, например: локальное хранилище данных (причем, защищенное шифрованием) синхронизацию данных с LWP-сервером автоматическую установку/обновление клиентского ПО с сервера в соответствии с заданными политиками и даже облегченный вариант J 2 EE - EJB-контейнер, обеспечивающий выполнение в клиенте бизнес-логики приложений, в том числе, в off-line режиме
IBM Workplace Rich Client Ü Ü Основа “толстого клиента" Workplace Eclipse Rich Client Platform (RCP), обладающая совершенной открытой архитектурой, и поразительной расширяемостью, заложенной в саму платформу. Она то и позволяет на небольшой основе (объем Eclipse RCP 3. 0 Run. Time – около 8 МБ) создавать очень разные клиентские приложения или достраивать ее новыми слоями технологических компонент, опять таки наследующими возможности расширения и кастомизации от базовой платформы. Одно из интересных «расширений» - Workplace Designer, обеспечивающий визуальную среду разработки J 2 EE- приложений для Workplace. Другое – Notes-Plug. In. Начиная с версии 7 Notes клиент может запускаться «внутри» Rich-клиента Workplace как его расширение.
Rich Client, Notes-Plug. In и Notes-приложения. . . Ü Ü Ü Начиная с Notes 7. 0 и WMC 2. 5 один толстый клиент может становиться частью другого На существующие Notesприложения эта замена практически не влияет, поскольку функциональность Notes внутри WMC поддерживается полностью В 2006 г. появится такой «сборный» клиент (Notes+WMC) на платформе Linux.
Rich Client, Notes и Company. Media
. . . Rich Client, Notes-Plug. In и Notes-приложения Ü Ü В последующих версиях (7. x, 8, 9, …) IBM собирается развивать это направление интеграции Notes и LWP, и со временем для Notes-приложений, работающих в Notes-Plugin внутри WMC, откроются дополнительные функциональные возможности, основанные на интеграции с приложениями и компонентами WMC, разрабатываемыми как IBM, так и другими компаниями. Например, можно будет использовать в Notes встроенные в WMC "офисные" приложения для работы с текстами, электронными таблицами и презентациями
Перспективы совместного развития Notes/Domino и Workplace.
Вопросы? Владимир Панов panov@intertrust. ru
6cccf2f6eb2578b7207f9a3db8c47c8f.ppt