Порталы – это следующее поколение приложений, предоставляющих доступ к бизнес-приложениям через Web-интерфейс всем видам клиентов. Порталы предоставляют пользователям сайта единую точку доступа к различным приложениям и ресурсам. Независимо от того, где информация находится и какой тип имеет, портал представляет ее в виде, дружественном для конечного пользователя. Полноценное портал-решение должно обеспечивать пользователей удобным доступом ко всему, что необходимо для успешного выполнения их работы. Портал – web-сервер, который объединяет, настраивает и персонализирует содержимое, чтобы дать представление о корпоративной информационной системе.
Возможности порталов
Портал предоставляет всесторонний подход и доступ к инструментам и сервисам, доступным через Web-интерфейс.
Портлеты – основные блоки, из которых строится портал, в то же время это полноценные приложения, соответствующие шаблону проектирования Model-View-Controller. Каждый портлет разрабатывается, развертывается, управляется и отображается независимо от других портлетов.
Что такое сервлет (servlet)? Что такое JSP?
У портлетов может быть несколько состояний и видов в соответствии с событийными возможностями. Базируясь на модели контейнера, портлеты выполняются внутри контейнера портлетов. Они могут перенаправить запрос или ошибки браузеру.
Портальный сервер
Портальный сервер обрабатывает запросы клиентов. Как сервер Web-приложений имеетWeb-контейнер для управления выполняющимися компонентами, так и портальный сервер имеет контейнер для управления выполнением портлетов.Portlet API – это расширение над спецификацией для сервлетов, т.е. контейнер портлетов по определению является и Web-контейнером.
Портлет – это подключаемый Web-компонент (вполне самостоятельное приложение, средой выполнения которого служит портальный сервер), обеспечивающий динамическое содержимое как часть визуального пользовательского интерфейса. Portlet API наследует возможности Servlet API (где-то расширяя эти возможности, а где-то ограничивая, например, сессия портала не повторяет до конца концепцию сервлетной сессии), и вследствие этого портлеты обладают возможностями сервлетов, а также дополнительными свойствами.
В отличие от сервлетов, портлеты обрабатывают запросы doView(), doConfigure() и doEdit(), приходящие не от браузера, а от портального сервера.
Возможности портлетов:
- встроенная поддержка автоматического использования различных JSP-страниц для различных пользовательских устройств, таких как настольные компьютеры, Palm-компьютеры с ограниченными Web-браузерами, PDA и мобильные телефоны;
- назначать права пользователям групп на использование портлетов. В случае отсутствия оных они даже не будут видеть портлеты;
- создание сохраняемых между сессиями пользовательских настроек;
- публикация в виде Web-сервиса;
- разделение сложных приложений на задачи, когда группа тесно связанных задач равняется одному портлету;
- добавление новых функций к приложению;
- хорошая совместимость с брандмауэрами (firewalls), так как они (портлеты) используют стандартные Web-протоколы для получения и отображения информации;
- одноразовая установка и настройка портлета для пользователей.
- относятся к J2EEWeb-компонентам;
- управляются контейнерами;
- генерируют динамическое Web-содержимое при помощи запросов и ответов.
- портлеты генерируют часть документа, в то время как сервлеты генерируют его полностью;
- за счёт того, что операции кодирования URL выполняются на стороне сервера, пользователь не может обратиться к нему напрямую, зная имя портлета: портлет ведь часть страницы, поэтому знания одного URL мало;
- портлеты имеют несколько иную схему управления запросами, которые делятся на запросы выполнения действий и запросы генерирования содержимого;
- портлеты придерживаются стандартного набора состояний, которые определяют их контекст работы и правила генерации содержимого.
- имеют расширенный механизм для управления и сохранения своей конфигурационной информации;
- есть доступ к информации о пользовательском профиле, не таком тривиальном, как предоставляют сервлеты.
- View – основное состояние портлета;
- Help – если портлет обеспечивает состояние помощи;
- Edit – редактирование параметров портлета с сохранением результатов для этого конкретного пользователя;
- Configure – конфигурирование портлета с охранением результатов для всех пользователей, права к состояниям никак не относятся.
- Установить переменную окружения JAVA_HOME=C:jdk1.5.0
- Добавить в переменную окружения PATHзначение %JAVA_HOME%bin
- Загрузить и установить Apache Ant с http://ant.apache.org/
- Распаковать скачанный архив, например, в папку C:ant
- Установить переменную окружения ANT_HOME=C:ant
- Добавить в переменную окружения PATHзначение %ANT_HOME%bin
- Загрузить и установить Jetspeed2 c сервераhttp://portals.apache.org/jetspeed-2/
- Распаковать загруженный архив, например, в папку C:jetspeed2
- Прописать в файле build.propertiesпримеров
- Перезагрузить Windows
- Выполнить
- Выполнить
- Зайти в корневой каталог приложения и выполнить команду “antdeploy”
- Ввести в браузер http://localhost:8080/jetspeed
- Ввести пароль администратора (по умолчанию логин установлен в “admin”, как и пароль)
- Настроить отображаемые портлеты.
Источник: studfile.net
JIRA настройка портлетов. Минутка на развитие вместе с S-PRO LAB
Что такое портлеты?
Портлет — это такая программка или вэб-сервис, которая служит для интеграции корпоративного портала с другим приложением, или с базой данных, или с другим порталом.
Портлеты умеют получать данные из интегрируемого приложения, обрабатывать их и формировать какой-нибудь информационный блок или модуль, который отображается на портале. Пользователь может с помощью этого блока взаимодействовать с интегрируемым приложением. Собственно, практически весь контент портала может состоять из блочков — портлетов.
Портлеты делятся на локальные и удаленные. Локальные портлеты (обычно это ява-приложения) выполняются на программной платформе портала. Удаленные портлеты (обычно вэб-сервисы) выполняются на удаленном сервере и передают результат работы порталу на языке XML.
Чтобы можно было создавать порталы, используя уже готовые портлеты, как кирпичики, придумали стандарт JSR (Java Portlet Specification) который обеспечивает интероперабельность портлетов для различных порталов.
Топ 3 лучших Helpdesk
2011. PayDox реализовал виджеты для корпоративных порталов
Web-система электронного документооборота и совместной работы PayDox получила новый функционал под названием PayDox Portal. Он позволяет встраивать информационные блоки и элементы управления в любые корпоративные сайты. Это реализуется простой вставкой HTML-кода виджета на страницу сайта. Например, можно отображать на корпоративном сайте списки документов для согласования или ознакомления текущим пользователем, папки и файлы виртуального каталога PayDox, актуальные задачи и поручения для данного пользователя, активные бизнес-процессы. В любой сайт можно также включить списки задач из PayDox Case Management, что позволит сотрудникам контролировать исполнение поручений, обсуждать любые размещенные материалы и документы, публиковать комментарии и сообщения непосредственно на своем корпоративном сайте.
2008. PersonAll = Netvibes для интранета
Похоже, французский стартап PersonAll правильно уловил смысл понятия Enterprise 2.0 — это ПРОСТЫЕ инструменты, которыми удобно пользоваться и которые не надо внедрять месяцами. И своим изобретением — системой PersonAll, они хотят заменить сложнейшие корпоративные порталы.
Основной элемент PersonAll — настраиваемая стартовая страничка, на которой сотрудник может вывести все необходимые данные и инструменты для работы. Это то же самое, что Netvibes или iGoogle, только предназначеное для работы в интранете за корпоративным файерволом.
Фишка системы в том, что эта страничка поддерживает и стандарты виджетов которые становятся очень популярными в интернете (например, гаджеты гугла), и корпоративный стандарт JSR 168, который позволяет добавлять на страничку портлеты. Это позволит очень просто встраивать в страничку как простейшие rss-ленты новостей, так и панели управления из корпоративных приложений. Кроме домашней странички, PersonAll оснащен дополнительными социальными инструментами — профайлом, социальными закладками с тэгами и возможностью подписки на обновления по определенным сотрудникам. В добавок в системе есть возможность управлять правами доступа к своему контенту и просматривать отчеты по активности сотрудников.
2007. JBoss Portal поддерживает Google Gadgets
Топ 3 лучших Helpdesk
Топ 5 социальных интранетов
2007. Google Gadgets доступны в порталах IBM WebSphere
IBM выпустила бесплатный портальный компонент, позволяющий подключать к порталам WebSphere Portal мини веб-приложения (виджеты) Google Gadgets, количество которых на сегодня насчитывает около 4 тыс. В наборе присутствуют гаджеты подачи потокового видео с YouTube, практические бизнес-приложения: карты, переводчики, трекеры доставки почтовых отправлений, а также окна со сводкой погоды, новостями, поиском по аудиозаписям или в Wikipedia. IBM Portlet for Google Gadgets позволяет загружать мини-приложения Google, превращать их в портлеты WebSphere и безопасно пользоваться ими под защитой межсетевого экрана. Возможность использования Gadgets поддерживается в WebSphere Portal 6.0 и WebSphere Portal Express. Для проекта интеграции WepSphere Portal с разработками Google последняя предоставила IBM набор интерфейсов API.
2007. BEA WebLogic Portal 10 в стиле Web 2.0
BEA Systems выпустила новую версию своей системы построения порталов — BEA WebLogic Portal 10. В компании особо выделяют новые возможности продукта, отвечающие технологиям Web 2.0. В частности, это средства поддержки Web-сервисов, работающих по протоколу REST (Representational State Transfer). WebLogic Portal 10 позволяет создавать портлеты, доступные для использования по REST внешними Web-приложениями.
Например, портлет, обеспечивающий функцию поиска телефона служащего, может быть посредством REST экспонирован во внешнем Web-приложении. Кроме того, в составе WebLogic Portal имеется библиотека AJAX для построения высокоинтерактивных приложений. Поддержка спецификации WSRP (Web Services for Remote Portlets) 2.0 обеспечивает связь между портлетами и возможность их динамического обновления. Обновлены средства администрирования портала. BEA WebLogic Portal требует для работы сервера Java-приложений BEA WebLogic Server.
2006. Oracle и Adobe представили пакет разработки для Java-порталов
Используя AJAX и Flash, разработчики смогут создавать интерактивные интерфейсы с изменяющимися в реальном времени элементами визуализации данных. Пакет реализует интеграцию Adobe Flex – структуру для создания корпоративных приложений на Flash, с последними стандартами веб-сервисов и порталов, говорит Джефф Уоткотт (Jeff Whatcott), старший директор по маркетингу продуктов подразделения Adobe по бизнесу для предприятий и разработчиков. По его словам, пакет позволит создавать приложения для Web 2.0. Интеграция возможна с текущей версией Oracle Portal, и будет встраиваться в последующие версии продукта. Компании также намерены работать над интеграцией технологии в рамках стандартов «Portlet» — «приложений для порталов» — JSR168, JSR286 и WSPR2.0, разработанных рабочей группой Portlet.
2003. Стандарты корпоративных порталов: JPS и WSPR
В настоящее время разрабатываются два взаимодополняющих стандарта в области порталов. Первый, проходящий стадию открытого рецензирования, — Java Portlet Specification; он призван стандартизовать поведение окна портлета и средства его взаимодействия с сервером. Стандарт создан и поддерживается компаниями, в числе которых Sun, IBM, BEA, SAP, Oracle, Vignette, Plumtree, Novell, Sybase и др. Второй, Web Services for Remote Portals (WSRP), разрабатывается группой компаний, в которую входят многие из перечисленных, а также Microsoft. WSRP представляет стандартизованные портлеты в качестве «визуальных» Web-служб, которые можно вызывать удаленно независимо от их местонахождения. В числе прочего WSRP обеспечит взаимодействие между элементами порталов на основе платформ Java и .Net. ***
Источник: www.intranetno.ru
[ELMA3] Портлеты
Портлет – это компонент веб-страницы. Портлет имеет настройки от которых зависит его функциональность и внешний вид.
Пример: портлет Задачи: Веб-страницы могут формироваться из произвольного набора портлетов, эту задачу может выполнять администратор или пользователь наделенный соответствующими правами.
Администратор может видеть список всех доступных в системе портлетов на странице Портлеты по адресу /ContentArea/Portlets, там же задаются настройки портлетов по умолчанию.
Настройки портлетов
Общий вид и содержимое страниц задается администратором, при этом пользователи могут настраивать интерфейс и менять логику работы. Инфраструктура портала позволяет это сделать за счет персонализации.
Персонализация позволяется сохранять настройки страниц и портлетов в долговременное хранилище с возможностью разделения индивидуальных данных.
Область персонализации – это круг пользователей, на которых распространяется изменения персонализации на данной странице (в портлете). Каждый порлет на странице может находится в одной из двух областей: Shared, User. Изменения в области Shared применяются ко всем пользователям, в области User – только к текущему пользователю.
Видимость портлета определяет является ли данный портлет видимым для отдельного пользователя или для всех пользователей. Видимость портлета определяется каким образом он добавлен на страницу, если добавлен как Shared, то портлет является общим, если как User, то – индивидуально настраиваемым.
Область свойства позволяет установить контроль над тем, какие свойства персонализации будут настраиваться всеми пользователями, а какие только администратором в зависимости от того в какой области находится портлет.
Таблица соответствия областей персонализации портлетов и свойств.
Shared | Значение может менять только администратор или пользователь наделенный соответствующими правами. | Отдельные пользователи могут менять персональные свойства. Поскольку свойства Zone, Order, Collapsed являются User Scope пользователи могут переносить портлеты, сворачивать и разворачивать (сворачивание может быть запрещено отдельно). |
User | Отдельный пользователь может менять настройки User и Shared Scope, поскольку портлет является недоступным для других пользователей. | То же, что и для Shared. |
Пример использования персонализации в главных страницах
Главные страницы работают следующим образом, администратор создает набор главных страниц, все портлеты добавляются в Shared Scope, из-за чего они выгладят для всех пользователей одинаково. Отдельно взятый пользователь может персонализировать страницы, менять расположение портлетов, настройки отображения, т.е. менять настройки User Scope, может добавлять другие портлеты, при этом персональные изменения не увидят другие пользователи. Таким образом, администратор может установить базовый набор портелтов на страницах, который пользователи могут настроить под себя, при этом остается контроль за общими портлетами, например, один из портлетов можно удалить и он исчезнет у всех пользователей
Базовые настройки портлетов
Все портлеты имеют базовый набор настроек, дополнительно к базовым настройкам каждый портлет может иметь дополнительные настройки.
Обратите внимание на то, что кнопки настройки портлета в режиме просмотра страницы будут видны только при первом выбранном значении, в других случаях диалог настройки портлета можно будет вызвать только из режима настройки страницы.
Запретить или разрешить пользователю сворачивать портлет.
Задает гипертекстовую ссылку в заголовке портлета, если значение не введено то будет использоваться значение по умолчанию для данного типа портлета.
Задает адрес изображения в заголовке портлета. Если значение не введено, то будет использоваться значение по умолчанию для данного типа портлета.
Включить асинхронную загрузку
Если выбрано значение Да, то содержимое портлета загружается после загрузки содержимого страницы по средствам отдельного http-запроса. Включение этой опции может ускорить загрузку страницы, на которой размещено много портлетов.
Показать кнопку ручного обновления
Если включено, то в заголовке портлета появляется дополнительная кнопка, которая перезагружает содержимое портлета без перезагрузки всей страницы.
Значения свойства устанавливается в true, когда пользователь закрывает портлет нажатием кнопки (Х).
Свойство хранит идентификатор зоны, в которой располагается портлет. Значение меняется, когда пользователь перетаскивает портлет методом drag’n’drop.
Порядок расположения портлета в зоне, представляет из себя число. Значение меняется, когда пользователь перетаскивает портлет методом drag’n’drop.
Портлет свернут/развернут, значение меняется, когда пользователь сворачивает или разворачивает портлет.
Настройки портлетов по умолчанию
Администратор может установить значения настроек портлета по умолчанию, эти значения будут использованы при добавлении нового портлета на страницу. Например, в настройках по умолчанию для какого-то портлета можно включить асинхронную загрузку.
Как сделать свой портлет
Чтобы сделать новый портлет, следует реализовать точку расширения EleWise.ELMA.Web.Mvc.ExtensionPoints.IPortlet . Для большинства случаев можно использовать базовый класс EleWise.ELMA.Web.Mvc.Portlets.Portlet . Этот класс реализует большинство методов и по сути облегчает разработку новых компонентов. Новая версия плагина для Visual Studio 2010 позволяет создать портлет из уже готового шаблона. Для начала Вам требуется создать проект из шаблона – веб-модуль. Далее необходимо выбрать в обозревателе решений папку, в которую будет помещен портлет, и выбрать Добавить – Новый элемент – ELMA – Веб-портлет ELMA 3.
Пример веб-модуля
Вы можете обратиться к статье article-6130.html за более полным описанием шагов по созданию портлета.
После этого в Ваш проект будет добавлен файл, включающий в себя представление и сам класс, реализующий логику работы портлета. Уже сейчас Вы можете собрать свой проект, и добавить Ваш модуль в папку Modules установленной системы, для того чтобы увидеть Ваш портлет. Далее представлено более детальное описание каждого метода и свойства класса портлета.
Жизненный цикл класса реализующего IPortlet таков, что не подразумевается никакого хранения информации между вызовами его методов, т.е. другими словами в классе не должно быть никаких переменных состояния .
Минимальный набор методов, который нужно определить, это:
/// /// Идентификатор портлета /// public abstract Guid Uid < get; >/// /// Текст заголовка /// public abstract string Name < get; >/// /// Описание портлета /// public abstract string Description < get; >/// /// Вернуть содержимое портлета /// /// Html helper /// /// public abstract MvcHtmlString Content(HtmlHelper html, TSettings data); /// /// Привилегия по которой пользователь может видеть портлет. Если нет привилегии то null. /// /// protected abstract Permission PortletPermission();
Пример простого портлета, который показывает форму для запуска бизнес-процессов:
namespace EleWise.ELMA.Workflow.Processes.Web.Portlets < /// /// Портлет «Запуск процесса» /// [Component] public class StartProcessPortlet : Portlet < public static string UID_S = «»; public static Guid UID = new Guid(UID_S); public StartProcessPortlet() < _profile = base.Profile as PortletProfile ?? PortletProfile.Default; _profile.ImageUrl = «#x12/Process.gif»; _profile.Customizable = true; >/// /// Идентификатор портлета /// public override Guid Uid < get < return UID; >> public override MvcHtmlString Content(HtmlHelper html, StartProcessPortletPersonalization data) < return RenderContentAction(html, «StartProcessPortlet», «ProcessHeader», ProcessesRouteProvider.AreaName, data); >/// /// Текст заголовка /// public override string Name < get < return SR.T(«Запуск процесса»); >> /// /// Описание портлета /// public override string Description < get < return SR.T(«Портлет для запуска процессов»); >> private readonly PortletProfile _profile; /// /// Дополнительные настройки веб части /// public override IPortletProfile Profile < get < return _profile; >> protected override Permission PortletPermission() < return WorkflowWebPermissionProvider.WorkflowAccessPermission; >> >
В случае если для портлета требуются дополнительные настройки, следует создать класс наследующий EleWise.ELMA.Web.Mvc.Portlets.PortletPersonalization . Персонализируемые свойтва помечаются атрибутом EleWise.ELMA.Web.Mvc.Portlets.PersonalizationAttribute, который принимает один параметр типа EleWise.ELMA.Web.Mvc.Portlets.PersonalizationScope, который определяет область.
Пример персонализируемого свойства:
/// /// Оформление /// [Category(«Внешний вид»)] [Model.Attributes.DisplayName(«Название»)] [Personalization(PersonalizationScope.Shared)] public string Name
В приведенном примере указана область Shared, кроме того, указаны категория и экранное название свойства, которые используется при генерации формы настроек.
Типы персонализируемых свойств должны быть сериализуемыми, PortletManager использует бинарную сериализацию.
Не следует переопределять свойства класса PortletPersonalization и вносить какую-либо логику в код персонализируемых свойств, последствием модет быть неопределенное поведение менеджера портлетов.
За хранение, изменение и загрузку настроек отвечает PortletManager , при разработке портлета достаточно пометить свойство соответствующим атрибутом.
Для редактирования свойств используется всплывающий диалог, есть два варианта встраивания дополнительный свойств в эту форму. Первый способ, он же самый простой, это автоматическая генерация формы. Все свойства помеченные атрибутом PersonalizationAttribute автоматически отображаются в этой форме, сохранение и отображение значений выполняется автоматически. Пример свойство Сортировать по для портлета Задачи:
[Serializable] public class TasksPortletPersonalization : PortletPersonalization < [Personalization(PersonalizationScope.User)] [Category(«Внешний вид»)] [Model.Attributes.DisplayName(«Сортировать по»)] public TasksPortletSortExpression SortSettings < get; set; >>
Диалог настройки выгладит так:
Второй способ, это добавить в диалог свою форму, для этого следует переопределить метод:
/// /// Вернуть разметку формы настройки портлета /// /// Html helper /// /// public virtual MvcHtmlString Settings(HtmlHelper html, TSettings data)
Возвращенная разметка будет вставлена в диалог, при сохранении будет использовать стандартный ASP.NET MVC Binding. Персонализируемые свойства должны быть помечены атрибутом HiddenInputAttribute с параметром DisplayValue=false . Пример настроек портлета Задачи от меня:
/// /// Портлет Задачи от меня /// [Component] public class FromMeTasksPortlet : Portlet < . public override MvcHtmlString Settings(HtmlHelper html, FromMeTasksPortletPersonalization data) < return RenderSettingsPartialView(html, «FromMeTasks/FromMeTasksPortletSetting», data); >> [Serializable] public class FromMeTasksPortletPersonalization : PortletPersonalization < private int daysAgo = 1; [Personalization(PersonalizationScope.User)] [Required(true)] [HiddenInput(DisplayValue = false)] public int DaysAgo < get < return daysAgo; >set < daysAgo = value; >> private int daysAhead = 1; [Personalization(PersonalizationScope.User)] [Required(true)] [HiddenInput(DisplayValue = false)] public int DaysAhead < get < return daysAhead; >set < daysAhead = value; >> private bool showCompleted = true; [Personalization(PersonalizationScope.User)] [HiddenInput(DisplayValue = false)] public bool ShowCompleted < get < return showCompleted; >set < showCompleted = value; >> >
Форма настроек выглядит так:
Кроме того, можно менять персонализацию портлетов программно, для этого следует использовать PortletManager API.
При реализации методов Content и Settings более эффективным будет использовать рендеринг PartialView, чем вызом метода контроллера, т.к. на это тратятся дополнительные ресурсы.
Дополнительные возможности для разработки портлетов
Несколько одинаковых портлетов на странице – если свойство портлета AllowMultipleInstance равно false, то пользователь не сможет вывести на страницу второй такой портлет.
PortletManager – логика работы портлетов реализована в классе EleWise.ELMA.Web.Mvc.Portlets.PortletManager, с его помощью можно переиспользовать портлетную систему, что и сделано в модуле Управление проектами.
Permission Constraints – дополнительные ограничения на манипуляции с портлетами можно задать с помошью точки расширения EleWise.ELMA.Web.Mvc.Portlets.IPortletsRestrictionProvider.
Главная страница по умолчанию – при первом запуске системы ELMA автоматически создается одна общая главная страница, на которую автоматически добавляются портлеты. Чтобы портлет оказался на этой странице следует реализовать интерфейс EleWise.ELMA.Web.Mvc.ExtensionPoints.IDefaultHomePagePortletsProvider.
Прикрепленные файлы
Источник: www.elma-bpm.ru