Портлет: компоненты веб-интерфейса

Что такое портлет: краткий ликбез для заказчика
Портлет — это модульный элемент веб-интерфейса, который отображается на странице как самостоятельный блок. В отличие от цельной страницы, портлет работает как виджет: он может содержать форму, график, таблицу или новостную ленту. Технически это Java-компонент, работающий в портал-контейнере (например, Liferay, WebSphere или uPortal).
Для бизнеса портлеты дают три ключевых преимущества. Первое — повторное использование: один портлет (например, календарь бронирования) можно встроить на разные страницы портала без дублирования кода. Второе — независимая разработка: каждый портлет обновляется отдельно, не ломая остальной интерфейс. Третье — персонализация: пользователь может настраивать расположение и видимость портлетов под свои задачи.
С точки зрения клиента, заказывающего разработку, портлет — это не "программа", а готовый функциональный блок, который вы получаете в виде zip-архива (WAR-файла) с инструкцией по развертыванию. Взаимодействие с исполнителем строится вокруг передачи такого блока, его установки и поддержки.
Как заказать портлет: этапы и контракт
Процесс заказа начинается с заполнения технического задания (ТЗ). Вам не нужно быть Java-разработчиком: достаточно описать, что должен делать портлет. Пример: "Портлет выводит таблицу с последними заказами клиента, позволяет отфильтровать по дате и экспортировать в CSV". Исполнитель сам предложит структуру данных и логику.
После утверждения ТЗ составляется коммерческое предложение (КП). В него включаются три обязательные части: стоимость разработки, сроки (обычно от 5 до 30 рабочих дней в зависимости от сложности) и условия приемки. Важный пункт — кто предоставляет тестовый сервер (стенд) для установки портлета. Чаще всего это сторона заказчика, но исполнитель может развернуть свою демо-среду за дополнительную плату.
Оплата, как правило, разбивается на два транша: 50% перед стартом проекта и 50% после успешной приемки на тестовом стенде. Фиксируйте в договоре, что окончательный расчет происходит только после того, как портлет корректно запущен в вашей инфраструктуре и подтверждена его работа в портал-контейнере.
Что происходит после оплаты: pipeline от кода до поставки
- Анализ и прототипирование (1-3 дня). Команда уточняет детали: какие портал-контейнеры вы используете (версия, настройки), какие библиотеки доступны. Создается низкодетализированный макет интерфейса портлета — вы его утверждаете.
- Разработка ядра (60% времени). Пишется Java-код, контроллеры и view-шаблоны (JSP, FreeMarker или React на стороне сервера). На этом этапе портлет работоспособен, но не оптимизирован.
- Интеграция и тестирование (30% времени). Портлет собирается в WAR-архив. Исполнитель проводит автоматические тесты (юнит-тесты) и проверку совместимости с вашей версией контейнера. Вы получаете ссылку на демо-стенд.
- Фиксация и упаковка. Исправляются ошибки, выявленные при приемке. Финальный архив подписывается контрольной суммой (SHA-256). Вместе с архивом вы получаете документацию: описание конфигурационных файлов (portlet.xml, web.xml) и инструкцию по установке.
Средний срок от оплаты до получения архива — 15 рабочих дней для типового портлета (3-5 форм, 2-3 таблицы, один внешний API-запрос). Сложные интеграции (с SAP, 1С, CRM) увеличивают срок до 30-45 дней.
Доставка, установка и запуск на вашем сервере
Вы получаете архив по защищенному каналу (например, SFTP или через личный кабинет исполнителя). Помимо WAR-файла, в поставку входят: файл описания изменений (changelog), пример настройки прав доступа (security-constraints) и SQL-скрипт, если портлет использует отдельную таблицу в базе данных.
Установка занимает от 20 минут до 2 часов и состоит из трех шагов. Первый: остановите портал-контейнер (томкат или websphere). Второй: скопируйте WAR-файл в папку webapps (для Liferay — deploy). Третий: запустите контейнер — портлет автоматически развернется. Если портлет требует изменений в файле portal-ext.properties (Liferay), команда поддержки пришлет готовую вставку для этого файла.
После первого запуска важно проверить три параметра: доступность портлета (он отображается в списке виджетов админ-панели), корректность подключения к базе данных (если используется), и работу кэша (не падает ли страница при повторном запросе). При возникновении ошибок (например, ClassNotFoundException) — это почти всегда несоответствие версий библиотек контейнера. Инженер поддержки удаленно подключается к вашему стенду через VPN или TeamViewer и исправляет конфигурацию.
Техническая поддержка: что входит и как долго
- Гарантийная поддержка (первые 30 дней после приемки). Бесплатно исправляются критические ошибки (падает весь портал, не загружаются данные, ошибки в вычислениях). Срок реакции — 8 рабочих часов. Исправление ставится обновленной версией WAR-файла.
- Базовая поддержка (1 месяц — 1 год). Доступ по email и тикет-системе. Включает консультации по настройке, мелкие доработки интерфейса (смена цвета, добавление поля в форму) — не более 10 часов в месяц. Стоимость — 15-20% от стоимости разработки в год.
- Расширенная поддержка (от 1 года). Включает обновление портлета под новые версии контейнера (например, миграция с Liferay 7.3 на 7.5), оптимизацию производительности, подключение новых API. Сроки работ — по отдельному соглашению с фиксацией бюджета.
Важный момент: поддержка НЕ включает восстановление данных, если их случайно удалил ваш администратор, или ремонт инфраструктуры (сломался сервер, слетели права доступа). Всегда уточняйте эти границы в договоре.
Критерии приемки: как убедиться, что портлет работает
- Функциональная полнота: все указанные в ТЗ кнопки, формы, фильтры и выпадающие списки активны и корректно сохраняют/выводят данные.
- Совместимость: портлет корректно отображается в трех последних версиях Google Chrome, Mozilla Firefox и Edge (проверьте это на своем стенде).
- Производительность: время отклика при загрузке страницы с портлетом не превышает 2 секунд при ста одновременных запросах (нагрузочное тестирование проводится исполнителем, результаты прилагаются к акту приемки).
- Безопасность: портлет не открывает доступ к файловой системе сервера (отсутствуют инъекции), не отправляет данные на сторонние домены без вашего письменного разрешения.
Если хотя бы один пункт не выполнен, вы имеете право не подписывать акт и не выплачивать остаток. Исполнитель обязан устранить замечания в течение 5 рабочих дней.
Перспективы развития портлетов и ваш план действий
Современные портлеты переходят на микросервисную архитектуру: вместо монолитного WAR-файла вы получаете набор контейнеризованных сервисов (Docker), которые запускаются независимо от портал-контейнера. Это повышает отказоустойчивость: если один портлет упал, остальные продолжают работать. В 2026 году это стандарт для enterprise-проектов.
Для заказчика это означает, что в контракте на разработку портлета стоит отдельно прописать требование: "архитектура должна допускать развертывание в Docker-контейнере". Это сэкономит вам деньги на миграцию через 1-2 года. Также рекомендую закладывать бюджет на ежегодный аудит безопасности портлетов — это предотвратит утечку данных через уязвимости.
Ваш дальнейший путь прост: закажите сначала пилотный портлет (например, график продаж) на тестовом стенде. Убедитесь в качестве работы команды и скорости поддержки. Если все устраивает — распространите подход на все разделы портала. Типичный клиент за первый год заказывает 3-4 портлета и далее снижает затраты на поддержку на 40% за счет унификации компонентов.
Добавлено: 27.04.2026
