Портлеты входят в программное обеспечение
порталов.
Портлет — это многократно используемый компонент, который содержит в себе некоторые данные, набор собственных бизнес функций и стандартную схему свойств (property schema), определяющую содержание сервиса портлета, в том числе и то, каким образом этот портлет отображается в браузере пользователя. Портлет — это Java-сервлет, который работает внутри портала.
Портлеты — своеобразные программы, которые, по существу, являются пользовательским представлением соответствующего им персонифицированного информационного наполнения. С технической же точки зрения, портлет — это фрагмент кода, который исполняется на сервере порталов и позволяет встраивать информационное наполнение в страницы портала. Большинство реализаций серверов порталов — это Web-приложения на базе J2EE.
J2EE — одна из самых известных серверных компонентных моделей. В J2EE серверные компоненты размещаются в специальных контейнерах (контейнерах компонентов).
Контейнер компонентов представляет собой среду исполнения для серверного компонента; он вызывает компонент и предоставляет специфические для компонента службы (например, информация о пользователе и сохранение состояния объекта между сеансами).
Точно так же портлеты размещаются в контейнерах портлетов. API портлетов определяет интерфейс между портлетом и контейнером портлетов.
Как и
сервлет, портлет существует в единственном экземпляре, который создается один раз в контейнере портлетов, а затем может многократно использоваться в различных нитях управления. В состав API портлетов входят следующие элементы:
- запрос и ответ, которые предоставляют и получают информацию, необходимую для вызова портлета;
- сеанс, который хранит информацию между вызовами портлета;
- конфигурационные объекты;
- действия, которые отвечают за поддержку связи между несколькими порталами посредством модели взаимодействия, аналогичной модели "издатель — подписчик".
В дополнение к контейнеру портлетов сервер порталов должен предоставлять службу получения информационного наполнения и службу сохранения состояния между сеансами, которые позволяют портлетам хранить информацию в специальном буфере. Однако самая важная служба портлета — это служба пользовательской информации, которая дает портлетам доступ к информации, касающейся пользователей, в том числе предпочтения, данные о настройке и т.д.
Ядро портала получает запрос сервлета от контейнера сервлета и преобразует этот запрос в запрос портлета, который оно направляет соответствующему портлету. Портлет должен извлечь информационное наполнение, используя службы портлета, предоставленные сервером порталов. Затем ядро портала объединяет множество ответов портлетов и возвращает ответ сервлета пользователю. Чтобы корректным образом вывести страницу, служба агрегирования должна учесть предпочтения пользователей и возможности устройства.
Поскольку в будущем портлеты будут строиться на основе единого стандарта (прежде всего — это стандартное
XML-описание), компании смогут создавать библиотеки этих компонентов для построения корпоративных информационных порталов, а системные администраторы смогут распространять компоненты, используя эти библиотеки.
Две наиболее перспективные технологии создания корпоративных информационных порталов на основе портлетов — это Digital Dashboard от Microsoft и J2EE-портлеты от группы компаний, куда входят Apache Software Foundation, BEA, IBM, iPlanet, Oracle, Epicentric.