(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Книга по Lotus. Разработка приложений в среде Domino 7: Глава 5 (электронная книга)

Команда Авторов International Technical Support Organization, специалисты International Technical Support Organization, IBM

Глава 1 :: Глава 2 :: Глава 3 :: Глава 4

В Lotus Domino Designer 7 появились новые улучшенные средства диагностирования и отладки. Это дополнения к профилированию кода, улучшение отладки LotusScript и удаленная отладка Java. Благодаря этим нововведениям и дополнениям можно улучшить производительность приложений Lotus Domino. Взяв в качестве примера приложение ITSO Electronics, мы займемся исследованием некоторых компонентов из инструментария Lotus Domino Designer. Среди них:

  • профилирование кода: оптимизация производительности в приложении ITSO Electronics;
  • отладка LotusScript: применение улучшенных инструментов отладки LotusScript в приложении ITSO Electronics;
  • отладка в Java: удаленная отладка приложения ITSO Electronics.

5.1 Профилирование кода в приложении ITSO Electronics

В Lotus Domino Designer 7 включен мощный оптимизатор кода, Profiler - инструмент, профилирующий код и позволяющий разработчику приложения измерять время, требуемое для выполнения методов в агентах, Web-сервисах и библиотеках скриптов в приложениях Lotus Notes и Domino. Измерение производительности методов в границах приложения Lotus Domino позволяет разработчикам определить недостатки кода и сфокусироваться на оптимизации тех его фрагментов, выполнение которых отнимает больше всего времени, что отражается на производительности. В этом разделе мы рассмотрим, как с помощью профилирования кода достичь максимальной производительности и эффективности приложения ITSO Electronics.

Profiler исследует и оценивает методы как в Java, так и в LotusScript, включая операции над объектами Lotus Domino, такими как база данных Lotus Domino. Можно включить поддержку профилирования в агенте или в Web-сервисе, для чего следует открыть закладку Security окна свойств и активировать опцию Profile this agent (Профилировать этот агент) или Profile this web service (Профилировать этот Web-сервис). Профилирование происходит каждый раз, когда выполняется агент или Web-сервис, в котором активировано профилирование. Профилирование агента происходит и на клиенте Lotus Notes, и на сервере Lotus Domino. После активирования опции профилирования на второй закладке окна свойств Agent (см. рис. 5.1) профилирование агента будет производиться, начиная со следующего запуска агента.

Рис. 5.1. Окно свойств Agent
Рис. 5.1. Окно свойств Agent

Агент может быть профилирован вне зависимости от того, запущен он как агент, работающий по расписанию, Web-агент или вручную через меню Action. Профилирующая информация хранится в профильном документе в базе данных, связанной с этим агентом. Для просмотра профилирующей информации выберите профилируемый агент, после чего щелкните Agent - View Profile Results (Агент - Просмотреть результаты профилирования). В верхней части каждого профильного документа записано название агента и время профилирования. Общее затраченное время равно общему количеству времени, в течение которого работал агент. За ним следует полное измеренное время, которое обычно несколько меньше из-за того, что значения времени округляются в меньшую сторону.  Например, значения меньше одной миллисекунды в профильном документе округляются до нуля. В профилирующей таблице содержится строка для каждого вызванного метода Domino Objects, а также 5 столбцов:

  • Class (Класс): название класса Domino Objects, используя стандартные имена, такие как Session, Database, Document.
  • Method (Метод): названия метода или свойства Domino Objects, записанные с помощью стандартных имен, таких как CurrentDatabase, AppendItemValue и Save.
  • Operation (Операция): для свойств, тип операции, либо Get, либо Set.
  • Calls (Вызовы): количество вызовов метода или свойства.
  • Time (Длительность): количество времени, затраченного на выполнение вызова в миллисекундах. Символ «<» означает, что времени для вычисления недостаточно.

Информация в профилирующей таблице упорядочена по убыванию, то есть сначала показаны методы, на выполнение которых ушло больше всего времени. Из профилирующей таблицы этого примера, представленной на рис. 5.2, видно, что метод UpdateFTIndex оказался той частью агента, которая отнимает максимальное количество времени.

Рис. 5.2. Результаты профилирования кода
Рис. 5.2. Результаты профилирования кода

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

5.2 Отладка LotusScript в приложении ITSO Electronics

В Lotus Domino Designer 7 усилены возможности отладки LotusScript за счет большей наглядности средств отладки. В дополнение к запуску отладки через системное меню разработчики приложений теперь могут начинать и прекращать отладку с помощью иконки. Сообщение, указывающее на начало или прекращение отладки LotusScript, располагается на панели состояния, а не в окне сообщений. В этом разделе мы продемонстрируем новые средства диагностики на примере приложения ITSO Electronics.

Для отладки LotusScript-приложения ITSO Electronics с использованием новых возможностей и средств отладки выполните следующие действия:

  1. Чтобы включить отладчик, щелкните по кнопке Debug LotusScript (Отладить LotusScript), расположенной на панели инструментов. В строке состояния появится сообщение «LotusScript debugging started» (рис. 5.3.).

    Рис. 5.3. Запуск отладчика LotusScript
    Рис. 5.3. Запуск отладчика LotusScript

  2. Чтобы отключить отладчик, снова щелкните по иконке Debug LotusScript. В строке состояния появится сообщение «LotusScript debugging terminated» (рис. 5.4).

    Рис. 5.4. Остановка отладчика LotusScript
    Рис. 5.4. Остановка  отладчика LotusScript

5.3 Отладка Java в приложении ITSO Electronics

Пожалуй, самое интересное дополнение к инструментарию отладчика в Lotus Domino Designer 7 -это удаленная отладка Java. Удаленная отладка Java позволяет разработчику приложения в среде Lotus Domino отладить агенты Java, предварительные просмотры в Web и библиотеки скриптов, работающие под управлением клиента Lotus Notes Java Virtual Machine (JVM) с отладчиком, поддерживающим Java Platform Debugger Architecture (JPDA), таким как Rational Application Developer, основанном на технологии Eclipse. И хотя вы не можете отладить код Java, работающий на сервере Lotus Domino, JPDA предлагает богатый набор функций, когда дело касается локальной отладки кода Java. В этом разделе мы продемонстрируем удаленную отладку Java в приложении ITSO Electronics, используя Rational Application Developer.

5.3.1 Включение отладки Java в клиенте Lotus Notes

Клиент Lotus Notes поддерживает отладку Java в представленных ниже контекстах. В каждом контексте есть свой собственный JVM. Код Java из библиотеки скриптов выполняется в контексте вызывающего кода. Отладку в каждом контексте может производить единовременно лишь один пользователь.

  • Foreground (Передний план): код Java, который интерактивно выполняется в клиенте Lotus Notes, например агент, запускаемый из меню Actions.
  • Background (Задний план): код Java, который выполняется в клиенте Lotus Notes под управлением загрузчика заданий, например локальный агент, работающий по расписанию.
  • Web preview (Предварительный просмотр Web): код Java, просматриваемый в браузере через Lotus Domino Designer, например апплет на форме.

Для включения отладки Java в приложении ITSO Electronics на клиенте Lotus Notes выполните следующее:

  1. Выберите File - Tools - Java Debugging Preferences (Файл - Сервис - Параметры отладки Java). Откроется окно свойств Java Debugging, представленное на рис. 5.5.

    Рис. 5.5. Окно свойств Java Debugging
    Рис. 5.5. Окно свойств Java Debugging

  2. Для включения отладки переднего плана (foreground debugging) выберите Client Agents/Applets (Агенты/приложения клиента) и определите номер порта, через который будут подключаться отлаживающие компьютеры и Lotus Notes (рис. 5.6). Очистите это поле, если хотите отключить данную функцию.

    Рис. 5.6. Окно свойств Java Debugging с выбранным типом агента Client Agents/Applets
    Рис. 5.6. Окно свойств Java  Debugging с  выбранным типом агента Client  Agents/Applets

  3. Для включения  отладки предпросмотра в Web (Web preview debugging), выберите Http Preview (Просмотр в протоколе Http) и определите номер порта, по которому могли бы подключаться компьютеры, на которых запущен клиент Lotus Notes. Очистите это поле, если не хотите использовать данную функцию.
    Выберите номер свободного порта. Чтобы узнать, какие порты используются на данном компьютере, работающем под управлением операционной системы Windows, выполните в командной строке команду: > netstat -a(для вызова командной строки щелкните Пуск - Выполнить (Start - Run), после чего введите с клавиатуры cmd и нажмите на клавишу Enter). По умолчанию отладка Java выключена.

Если вы выполняете изменения в параметрах переднего плана (foreground) и заднего плана (background), Lotus Notes необходимо перезапустить. Если вы выполните изменения в параметрах предварительного просмотра Web (Web preview), необходимо будет произвести перезапуск предварительного просмотра.

5.3.2 Включение отладки Java в агенте, Web-сервисе или библиотеке скриптов

Чтобы включить отладку Java, перейдите к закладке Security окна свойств Agent, или Web Services, или Script Library и выберите Compile Java code with debugging information (Компилировать код Java с предоставлением информации об отладке) (рис. 5.7).

Рис. 5.7. Compile Java code with debugging information
Рис. 5.7.  Compile Java code with debugging information

При компилировании кода Java, который будет отлаживаться вне Lotus Domino Designer, компилируйте его с параметром -g. После модификации агента или Web-сервиса экспортируйте исходный код в доступный для отладчика файл.
Для получения дополнительной информации о JPDA см.:
http://java.sun.com/products/jpda

5.3.3 Подключение отладчика к JVM

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

  1. Запустите клиент Lotus Notes и отройте приложение ITSO Electronics, содержащее агент или Web-сервис, который необходимо отладить с помощью включенного отладчика Java.
  2. Запустите отладчик.
  3. Создайте проект Java и переключитесь на перспективу Java (Java perspective), так же как на рис. 5.8. Выберите File - New - Project (Файл - Создать - Проект). Выберите Java в окне Project, введите название проекта и щелкните по кнопке Finish (Завершить). Переключитесь к перспективе Java, либо откройте проект, если он уже существует.

    Рис. 5.8. Просмотр перспективы Java
    Рис. 5.8. Просмотр перспективы Java

  4. Чтобы вставить исходные файлы Java, сделайте щелчок правой кнопкой мыши по папке проекта, находящейся в левой панели, и выберите из контекстного меню Import (Импортировать) (см. рис. 5.9).

    Рис. 5.9. Импортирование перспективы Java
    Рис. 5.9. Импортирование перспективы Java

  5. Выберите тип файлов, который необходимо импортировать, а затем с помощью функции Browse (Обзор) укажите путь к исходным файлам Java. Выберите папку, в которую будут сохранены импортируемые файлы (рис. 5.10).

    Рис. 5.10. Перспектива Java и окно Important
    Рис. 5.10. Перспектива Java и окно Important

  6. Щелкните по кнопке Finish для импорта файлов. Если исходный код Java не импортирован, то вы сможете увидеть поток выполняемых задач и сможете получить доступ к переменным, однако вы не сможете увидеть исходный код и установить контрольные точки, поскольку отладчику доступен только импортированный исходный код (рис. 5.11).

    Рис. 5.11. Импортированный исходный код Java
    Рис. 5.11. Импортированный исходный код Java

  7. В Lotus Notes запустите агент или Web-сервис, который необходимо отладить.
  8. В Rational Application Developer выберите Run - Debug (Выполнить - Отладка) и введите название конфигурации отладчика (рис. 5.12). Перейдите к закладке Connect (Подключения). Выберите проект, введите имя хоста или адрес компьютера Lotus Notes и введите номер порта отладки Java в клиенте Lotus Notes. В качестве адреса хоста необходимо использовать 127.0.0.1, если клиенты Lotus Notes и Eclipse находятся на одном компьютере. Щелкните по кнопке Apply (необходимо только для первого раза или если изменена конфигурация), а затем по кнопке Debug, чтобы присоединить отладчик.

    Рис. 5.12. Установка параметров подключения отладчика
    Рис. 5.12. Установка параметров подключения  отладчика

    После присоединения отладчика вы увидите поток выполняемых задач JVM. Поток агента выглядит следующим образом: Thread(AgentThread: JavaAgent)(Running)
    Вы можете приостановить поток выполняемых задач, чтобы получить контроль над ним. В этот момент становятся доступными обычные средства отладчика (установка точек прерывания, пошаговая трассировка, продолжение, просмотр переменных значений и т. д.).
    Агент Java должен работать достаточно долго, чтобы можно было присоединить отладчик к JVM. Вы можете отложить выполнение в начале процедуры, например вставив цикл с предписаниями ожидания.
    Если Lotus Notes и отладчик находятся на разных компьютерах и вы получили сообщение «Failed to connect to remote VM» («Не удалось подключиться к удаленной VM»), то это, вероятнее всего, свидетельствует о том, что выбранный порт используется другим процессом. Попробуйте определить другой номер порта и перезапустить Lotus Notes.
    Для получения более подробной информации об удаленной отладке Java обратитесь к Lotus Domino Designer 7 Help по адресу: http://www.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf

5.3.4 Рассуждения о безопасности

Отладка Java по сети небезопасна. Вам следует перезапустить Lotus Notes или предварительный просмотр в Web без включенной отладки Java, когда вы не отлаживаете Java-код. Чтобы отключить отладку Java, перейдите к п. 5.3.1, «Включение отладки Java на в клиенте Lotus Notes». 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 27.05.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM Domino Messaging Client Access License Authorized User License + SW Subscription & Support 12 Months
IBM Domino Utility Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM DOMINO ENTERPRISE CLIENT ACCESS LICENSE AUTHORIZED USER LICENSE + SW SUBSCRIPTION & SUPPORT 12 MONTHS
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM Domino Enterprise Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Разработка устройств на микроконтроллерах (16)
Профессиональный программист. Основная специализация: МИКРОКОНТРОЛЛЕРЫ, АССЕМБЛЕР для любых...
 
Пишу программы на заказ для студентов (206)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Разработка программ базы данных (16)
Написание прикладных компьютерных программ (базы данных) на заказ. Разработка корпоративных...
 
Пишу программы на заказ профессионально (3073)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Ищу программиста для написания программы (29)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
 
 



    
rambler's top100 Rambler's Top100