XPages
XPages — это технология веб-разработки, созданная компанией IBM для построения динамических веб-приложений, работающих на платформе IBM Domino (ранее Lotus Domino). XPages представляет собой фреймворк, основанный на языке Java и технологии JavaServer Faces (JSF), который позволяет разработчикам создавать веб-интерфейсы для приложений, управляемых базами данных IBM Domino, без необходимости глубокого знания традиционных веб-технологий (HTML, CSS, JavaScript на уровне сервера). Технология была анонсирована в 2007 году и стала основным инструментом для создания современных веб-решений в экосистеме IBM Domino вплоть до прекращения поддержки платформы в 2024 году.
История
Предпосылки создания
Платформа IBM Domino (ранее Lotus Notes/Domino) с середины 1990-х годов использовалась для создания корпоративных приложений, таких как системы документооборота, почтовые серверы и базы данных. Однако её веб-интерфейсы, реализованные через серверные агенты на LotusScript или Java, были сложны в разработке и не соответствовали современным стандартам веб-дизайна. К середине 2000-х годов возникла потребность в более гибком инструменте, способном интегрироваться с Ajax, CSS и JavaScript, а также поддерживать стандарты Web 2.0.
Разработка и выпуск
XPages была впервые представлена на конференции Lotusphere в 2007 году. Первая версия вошла в состав IBM Lotus Domino 8.0, выпущенного в 2008 году. Технология базировалась на JavaServer Faces (JSF) 1.2 и использовала собственную реализацию IBM — «XPages runtime». В 2010 году с выходом IBM Lotus Domino 8.5.2 были добавлены поддержка мобильных устройств и улучшенная интеграция с Eclipse.
Эволюция и прекращение поддержки
В 2013 году IBM передала разработку Domino и XPages компании HCL Technologies (по лицензионному соглашению). HCL продолжала выпускать обновления, включая HCL Domino 12.0 (2021 год) с улучшенной поддержкой XPages. Однако в 2022 году HCL объявила, что XPages не будет включена в будущие версии Domino, а основной упор делается на современные веб-фреймворки, такие как Node.js и React. В 2024 году HCL прекратила поддержку XPages в новых релизах Domino, рекомендовав миграцию на альтернативные платформы.
Архитектура и принципы работы
Компонентная модель
XPages основана на модели компонентов JavaServer Faces (JSF). Каждая страница (XPage) представляет собой XML-файл с расширением .xsp, содержащий иерархию компонентов: панели, таблицы, кнопки, поля ввода, списки и т.д. Компоненты связываются с данными из базы Domino через «источники данных» (data sources), которые могут быть документами, представлениями или папками.
Серверное выполнение
В отличие от классических веб-приложений, где логика выполняется на клиенте, XPages обрабатывает события на сервере IBM Domino. Когда пользователь взаимодействует с элементом (например, нажимает кнопку), запрос отправляется на сервер, где выполняется серверный код (на Java или JavaScript), обновляется состояние компонентов, и клиенту возвращается обновлённая HTML-разметка. Это позволяет использовать полный доступ к данным Domino (документы, ACL, сессии) без необходимости писать сложный клиентский код.
Интеграция с Domino
XPages тесно интегрирована с объектной моделью Domino:
- Документы: компоненты могут отображать и редактировать поля документов (Rich Text, даты, числа, вложения).
- Представления: компоненты «View» и «View Panel» отображают данные из представлений Domino с поддержкой сортировки, фильтрации и постраничного вывода.
- ACL: управление доступом осуществляется на уровне сервера, что обеспечивает безопасность корпоративных приложений.
Клиентская часть
Несмотря на серверную модель, XPages поддерживает клиентские технологии:
- JavaScript: для обработки событий на стороне браузера (например, валидация полей, анимация).
- CSS: для стилизации компонентов.
- Dojo Toolkit: встроенная библиотека Dojo (с версии 8.5.2) предоставляет готовые виджеты (календари, диалоговые окна, автозаполнение).
Классификация
По типу приложений
XPages использовалась для создания:
- Корпоративных порталов: системы управления документами, базы знаний, интранеты.
- Рабочих процессов: маршрутизация документов, согласование заявок, управление задачами.
- Клиентских интерфейсов: замена устаревших клиентов Lotus Notes на веб-версии.
- Мобильных приложений: адаптивные версии для смартфонов и планшетов (с поддержкой XPages Mobile Controls).
По версиям
- XPages Classic (до 8.5): базовая функциональность, поддержка JSF 1.2, ограниченная клиентская настройка.
- XPages Extension Library (с 8.5.2): набор дополнительных компонентов (диалоги, меню, диаграммы, календари), разработанный IBM и затем OpenNTF.
- XPages for Mobile (с 8.5.3): компоненты для мобильных устройств (списки, формы, кнопки), оптимизированные под сенсорное управление.
Разработка и инструменты
Среда разработки
Основным инструментом для создания XPages является IBM Domino Designer (позже HCL Domino Designer) — среда на базе Eclipse, входящая в состав клиентского пакета Domino. Разработчик может:
- Создавать XPages в визуальном редакторе (drag-and-drop компонентов).
- Редактировать XML-код страницы вручную.
- Писать серверный код на Java (через «Java-бины») или JavaScript (серверный JavaScript, SSJS).
- Использовать библиотеки Dojo и Extension Library.
Языки программирования
- Java: для создания управляемых бинов (managed beans), серверных обработчиков событий, интеграции с внешними системами.
- Server-Side JavaScript (SSJS): упрощённый язык для быстрой разработки, похожий на JavaScript, но выполняемый на сервере Domino.
- Client-Side JavaScript: для клиентской логики (валидация, анимация, вызовы Ajax).
- XPages Expression Language (EL): для связывания компонентов с данными (например,
#{document1.fieldName}).
Расширения и библиотеки
- OpenNTF XPages Extension Library: бесплатный набор компонентов от сообщества OpenNTF, включающий диаграммы, календари, меню, панели вкладок.
- Domino REST API: для интеграции XPages с внешними приложениями через REST-сервисы (доступен с Domino 10.0).
- Bootstrap for XPages: адаптация CSS-фреймворка Bootstrap для стилизации XPages.
Применение
Корпоративный сектор
XPages активно применялась в крупных организациях, использующих IBM Domino:
- Государственные учреждения: системы электронного документооборота (например, в России — платформа «Дело» на базе Domino).
- Финансовые организации: банки, страховые компании — для управления клиентскими данными, заявками и отчётами.
- Производственные компании: системы управления проектами, базы знаний, интранеты.
Примеры приложений
- Система согласования договоров: XPages-форма с workflow, где документ проходит по этапам утверждения.
- База знаний сотрудников: XPage с поиском по документам, категориям и тегам.
- Портал самообслуживания: для сотрудников — просмотр личных данных, заявок на отпуск, заказ канцелярии.
Преимущества и недостатки
Преимущества
- Быстрая разработка: визуальный редактор и готовые компоненты сокращают время создания веб-интерфейсов.
- Интеграция с Domino: прямой доступ к данным, безопасности и бизнес-логике платформы.
- Серверная безопасность: данные не передаются на клиент без необходимости, что снижает риски утечек.
- Кроссплатформенность: приложения работают в любом современном браузере без установки клиента Lotus Notes.
Недостатки
- Зависимость от платформы: XPages работает только на сервере IBM/HCL Domino, что ограничивает миграцию на другие технологии.
- Сложность отладки: серверная модель затрудняет диагностику ошибок, особенно при большом количестве компонентов.
- Устаревшая архитектура: к 2020-м годам XPages уступает современным фреймворкам (React, Angular, Vue) по производительности и гибкости.
- Прекращение поддержки: с 2024 года HCL не выпускает обновления для XPages, что вынуждает организации мигрировать на альтернативы.
Критика и перспективы
Критика
Критики XPages отмечали:
- Высокий порог входа: разработчики, не знакомые с Domino и JSF, сталкивались с трудностями при освоении технологии.
- Производительность: при большом количестве пользователей серверная обработка могла приводить к задержкам.
- Закрытость: технология была привязана к продуктам IBM/HCL, что ограничивало сообщество разработчиков.
Перспективы
С прекращением поддержки XPages организации, использующие Domino, вынуждены выбирать:
- Миграция на HCL Domino REST API: создание новых веб-интерфейсов с помощью современных фреймворков (React, Angular) при сохранении серверной части Domino.
- Переход на альтернативные платформы: такие как Microsoft SharePoint, Alfresco, или Open Source-решения (Nextcloud, OnlyOffice).
- Полный отказ от Domino: замена на облачные сервисы (Google Workspace, Microsoft 365) или ERP-системы.
См. также
- IBM Domino
- JavaServer Faces
- Lotus Notes
- HCL Domino REST API
Источники
- IBM Redbooks: «XPages Extension Library: A Practical Guide» (2011).
- HCL Domino Documentation: «XPages Overview» (2021).
- OpenNTF: «XPages Extension Library» (2023).
- Статья «The End of XPages: What’s Next for Domino Developers?» на портале «Domino Developer» (2022).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →