Русский | English
О компании | Новости | Продукты | Решения | Услуги | Техническая поддержка | Разработчикам | Статьи | Карта сайта
Lotus Domino и Web: разработка приложений - заметки для программиста
Статьи

LOTUS DOMINO И WEB: РАЗРАБОТКА ПРИЛОЖЕНИЙ - ЗАМЕТКИ ДЛЯ ПРОГРАММИСТА

В рамках 4-го релиза Domino начинается его интеграция с web, и сам сервер становится полноценным HTTP-сервером. Следующие релизы Domino Web-сервера добавляют ему новый функционал (например, различные менеджеры сервлетов, повышение версий поддерживаемых JVM, и т.д.), Однако, не вникая в детали, можно говорить о двух основных функциях Domino Web-сервера:

1. Domino Web-сервер является полнофункциональным HTTP-сервером. Другими словами, он (сервер) может «отдавать» статичные (или условно статичные) файлы, включая HTML, image, JavaScript, апплеты и т.д., в ответ на HTTP-запрос браузера;
2. При обращении браузера к динамическим ресурсам Domino по специальным URL, сервер «на лету» строит HTML-страницу, визуализирующую запрашиваемый объект Domino.

Разумеется, это очень упрощенная модель (например, уже упоминалось, что Domino Web-сервер поддерживает технологию сервлетов), но она (эта модель) позволяет сосредоточиться на основных проблемах создания web-приложений в рамках технологии Lotus Domino. Перечислим основные из них:

  • При создании web-приложений на Domino разработчик значительно ограничен в использовании возможностей встроенных языков программирования. Так на языке @-формул из 380 встроенных @-команд в web поддерживается чуть больше 40. Язык LotusScript поддерживается только в трех типах web-агентов и т.д.;

  • Проблемы безопасности приложений. В web не работают или значительно упрощены стандартные механизмы аутентификации, авторизации, шифрования, электронно-цифровой подписи и т.д. При необходимости следует использовать дополнительные слои, например, SSL + x.509 сертификаты и т.д.;

  • Производительность приложений. Генерация HTML-страниц «на лету» естественно забирает ресурсы у сервера, поэтому неправильно спроектированное приложение может вообще вызвать отказ сервера. Например, если первая страница сайта генерируется агентом, то одновременное обращение большого числа пользователей может привести к ситуации «отказ в обслуживании». Разработчикам требуется самостоятельно заботиться о балансировке нагрузки, выделяя в разные разделы часто изменяемые и более статичные данные;

  • Результат генерации «на лету» HTML-страниц из ресурсов Domino не всегда очевиден. Часто такая процедура приводит к появлению в выходной странице «дополнительных», по мнению разработчика, тегов (например, <P>, <BR>, <UL> и т.д.). Как следствие, многие разработчики оставляют «на откуп» Domino только те возможности, которые не могут реализовать самостоятельно. Если посмотреть исходный код полноценных web-сайтов, построенных на технологии Domino, то, например, в формах от собственно Domino оставляют только поля, а внешнее оформление идет на DHTML.

Конечно, не все так плохо. Существует достаточно большое количество сайтов, нормально работающих с большим числом пользователей, и использующих данные из Domino. Технология Domino с каждым релизом предлагает новые возможности в области web-строительства (например, JSP custom tag library, встроенный HTML-редактор и т.д.). Автор сам использовал Domino для создания порталов с числом обращений более 2000 хостов в день. Обобщая собственный опыт и опыт своих коллег в области Domino web-строительства, можно высказать следующие рекомендации:

  • Перед созданием web-проекта на Domino надо оценить масштаб развернутой инфраструктуры Domino в рамках конкретного предприятия. Если на предприятии инфраструктура Domino не развернута или находится в зачаточном состоянии, то web-строительство с использованием Domino вряд ли целесообразно. Тот факт, что Domino Designer является средой быстрой разработки приложений (RAD), включая web-приложения, не должно служить оправданием для создания web-проектов на Domino;

  • Предоставлять Domino возможность преобразовывать «на лету» только те свои объекты, самостоятельная реализация которых затруднена или невозможна с использованием других web-технологий (т.е. HTML-оформление разработчикам следует брать на себя). Автор вообще склоняется к мысли, что если на некотором сайте требуется оперировать с данными Domino, то для их визуализации следует полностью отказаться от стандартных URL работы с объектами Domino. В этом случае обмен данными между сайтом и Domino может идти с использованием любых интеграционных технологий, поддерживаемых Domino (например, XML, CORBA, JDBC и т.д.). Другими словами, Domino будет выступать только как хранилище данных, а их визуализацию поручать другим механизмам. Неявно эту мысль подтверждает и сам IBM. В 6-й версии Domino у базы данных появилось свойство Don't allow URL open (не разрешать использовать URL для открытия объектов БД), применение которого запрещает в web-приложениях использовать стандартные URL Domino;

  • Серьезное внимание уделять безопасности web-приложений. Даже, если ваш сайт не предусматривает Авторского доступа к информации через Интернет, все равно найдутся люди, которые захотят проверить ваш web-проект на прочность;

  • Использовать в web-приложении только проверенные нагрузочным тестированием технологии;

  • По возможности минимизировать трафик web-сервер <-> браузер. В web-строительстве следует не забывать, что Интернет каналы обычно уже каналов внутренней локальной сети Domino <-> Lotus.

Тел.: +7 (495) 918-3314, +7 (495) 918-3111. Факс: +7 (495) 918-3111. E-mail: info@ronix.ru, support@ronix.ru
(c) 1997-2008 Роникс Системс. Все права защищены.