Liferay portal описание

Обновлено: 03.07.2024

Только вчера закончил свой первый, полнофункциональный портлет для Liferay (SVN/Mercurial/CVS браузер) — и хочу поделится некоторым опытом (пусть и минимальным). К тому же по Liferay вроде на Хабре еще ничего не пробегало. Статья очень поверхностная — но тем не менее, надеюсь, даст некоторое начальное представление

Что такое Liferay

Как и многие другие технологии в J2EE, API портлетов стандартизовано через JSR (Java Specification Request). За портлеты отвечают JSR-168 (Portlet 1.0) & JSR-268 (Portlet 2.0) а так же ряд других JSR (например JSR-301 — Portlet Bridge Specification for JavaServer Faces)

Стандарты / не стандарты

Стандарты это хорошо! Это даже очень хорошо! Но, если брать конкретный пример (мой портлет) — то я принял решение разрабатывать портлет именно под Liferay — то есть, не работающий на других порталах. Почему? Ну во-первых, сильно сомневаюсь, мой портлет будет использоваться где-то еще кроме Liferay (если все-таки кто-то захочет — бужу делать общую версию), а заточка портлета именно под Liferay позволяет использовать большой набор дополнительных сервисов и заготовок.

В мое случае мне очень пригодился тэг отрисовки таблиц: формируешь набор данных — и отображаешь его в виде таблицы при помощи этого тега — в результате получаешь таблицу, стилистически оформленную как и все другие таблицы в Liferay, с разбиением данных на «страницы» (pagination), навигацией между страницами, управление количеством элементов на одной странице. Так как таблица у меня присутсвует чуть-ли не на каждой форме — мне это было критично и использование Liferay-специфичной функциональности сильно облегчило мне жизнь

Но, в каждом проекте, я думаю, это должно решаться индивидуально — при возможности — лучше следовать стандартам (и обеспечить переносимость) — но, если переносимость не нужна и решение создается под конкретный портал — можно и использовать специфичные сервисы и функциональность.

Корпоративные порталы (Enterprise Information Portal — EIP) из моды постепенно превратились в незаменимый инструмент бизнеса, обеспечивая сотрудников единой точкой доступа к данным, инструментами управления бизнес-процессами и средствами обмена информацией. Проект Liferay, распространяемый под Open Source лицензией, вполне успешно конкурирует с большинством коммерческих решений.

Liferay vs MS SharePoint

Нетрудно заметить, что Liferay напрямую конкурирует с MS SharePoint. Даже сами разработчики в первое время не стеснялись называть его открытым аналогом SP. Между любыми решениями для организации порталов много общего (Oracle Portal, IBM WebSphere Portal, SAP NetWeaver Portal не исключение), все они предоставляют базовый набор функций, и подчас он практически полностью совпадает. Но есть, конечно, и различия в организации. Самое главное — это отсутствие привязки к разработкам одного производителя. Естественно, что SP интегрирован с другими решениями Microsoft (сервер, MS SQL, MS Office и другими), без которых его функциональность либо нельзя использовать, либо функции будут неполными. То есть, чтобы все заработало по полной, понадобятся лицензии и еще на ряд продуктов, даже если они больше нигде использоваться не будут. И если подсчитать, то эти затраты будут немалы.

Аналогичная ситуация и с другими портальными решениями. Liferay здесь сильно выигрывает, так как не зависит от одного поставщика и прекрасно вписывается в уже существующую инфраструктуру, не требуя при внедрении дополнительных расходов на приобретение ПО. Администратор будет работать с привычными продуктами. На eApps готовый сервер с Liferay-Tomcat обойдется всего в 34 доллара в месяц, при этом будет доступна круглосуточная поддержка и прочие вкусности. Есть и минусы. Сегодня нетрудно найти специалиста по SP, а вот внедрением Liferay занимаются не так много компаний. Но при самостоятельном внедрении отыскать нужную информацию не так уж и сложно.

Установка Liferay в Ubuntu Linux

Liferay написан на Java и поэтому работает на любой платформе, для которой доступна JRE и сервер приложений. Официально поддерживается работа с ОС Windows, *nix, OS X. По умолчанию в качестве СУБД используется Hypersonic SQL, которая ставится автоматически, но она подходит для тестовых сред и небольших нагрузок. В промышленных средах лучше подключить: MySQL, PostgreSQL, MS SQL, Oracle, DB2, Sybase или Ingres. Готовые образы с предустановленным Liferay можно найти в Amazon AWS, Bitnami, eApps и многих других облачных сервисах. Это самый простой и быстрый способ протестировать в работе Liferay (хотя развертывание Liferay на подготовленную ОС занимает от силы минут пять). Для теста подойдет любой современный компьютер с 2+ Гб ОЗУ (на облачных серверах минимально работает и с 1 Гб). Проект предлагает готовые комплекты с серверами приложений Tomcat, Geronimo, GlassFish, JBoss, Jetty, JOnAS, Resin и исходный код. Установим Liferay CE с сервером приложений Tomcat на систему, работающую под управлением Ubuntu 14.04 LTS с СУБД MySQL. Выбор сервера приложений — вопрос вкуса. Другие варианты установки отличаются только особенностями конфигурирования используемых приложений. В случае необходимости миграции на другую СУБД в панели управления предложен удобный инструмент. Проверяем наличие JDK:

Если Java нет, в ответ не получаем список пакетов, которые нужно установить. Ставим:

Далее необходимо установить переменные JAVA_HOME:

Скачиваем нужный файл и распаковываем в каталог.

$ sudo unzip liferay-portal-tomcat-jre-6.2-ce-ga2-20140321144642639.zip –d /opt

Окно Basic Configuration

Окно Basic Configuration

Здесь три подраздела:

  • Portal — название и язык по умолчанию, флажок Add Sample Data позволит добавить записи и наглядно оценить возможности портала;
  • Administrator User — данные администратора (имя и email);
  • Database — выбор СУБД для работы, по умолчанию стоит Hypersonic.

В принципе, все понятно. Нам нужна MySQL. В поле Database выбираем Change и из списка MySQL, вводим учетную запись и пароль и нажимаем Finish Configuration. Некоторое время придется подождать, пока будет выполнена установка. Настройки будут сохранены в файле portal-setup-wizard.properties.

Пару слов о конфигурационных файлах. Все настройки изначально сохранены в JAR-файлах, но трогать их нельзя. Все изменения следует заносить в overriding-файлы с расширением properties. Но администратор может редактировать только два из них — portal-ext.properties и portal-setup-wizard.properties. Эти два файла считываются последними и переопределяют установки в других файлах. Сделать это можно в любом текстовом редакторе. Малое количество упрощает перенос настроек между несколькими серверами. Параметров внутри много, и все они расписаны в документации. Некоторые настройки доступны только в них. Например, возможность просмотра сессий пользователей, нагружающих систему, доступна лишь после активации ее в конфигурационном файле.

Как вариант, можем сразу создать БД и нужную учетную запись. Название базы lportal используется в Liferay по умолчанию, поэтому и мы выберем его.

Переходим к порталу. Принимаем условия лицензионного соглашения, указываем пароль администратора и ключевое слово для его восстановления.

Результат

Liferay Portal оказался достаточно стабильным порталом. Порадовала его изначальная направленность на горизонтальное масштабирование, наличие кучи Java API’s и точек расширения, позволяющих поменять чуть ли не все что угодно. Также очень порадовало большое количество конфигурационных свойств, изменение которых позволяло быстро переходить от высоко оптимизированного кода страницы и статики к его девелоперской конфигурации, в которой намного проще отлаживаться. Вообще, создалось впечатление, что платформа создана программистами для программистов!
Google Closure Templates оправдали абсолютно все ожидания. Теперь это мой фаворит среди шаблонизаторов!
Возможность строить страницы для сайта из кубиков, которые напрямую друг с другом не связаны, а общаются только по шине событий, действительно прекрасна. Код получается хорошо структурированным, разбитым на логические части. При этом получаешь дополнительные преимущества: возможность использовать один и тот же портлет с разными внешними видами на разных страницах без единой строчки кода, простоту изменения внешнего вида страницы за счет легкого (drag&drop) перемещения блоков по странице, независимость работы всей страницы от работоспособности конкретного портлета.

Особенности реализации

Знакомство с интерфейсом Liferay

В результате получаем готовый портал. Точнее, в зависимости от задач, его еще настраивать и настраивать, но основа уже есть, и дальнейшие действия не требуют особой подготовки. После входа встречает приветственная страница Welcome To Liferay Portal, здесь мы получаем ссылки на основную документацию, которая может пригодиться при первом знакомстве. Для управления потребуется указать данные админа или, если это новый пользователь, создать учетную запись. Настройкам поддается буквально все: цвет, расположение, текст и так далее. Управление любыми указанными настройками понятно и логично, с ними справится пользователь без особой подготовки, поэтому расписывать их смысла нет. Но, учитывая, что их много, при первом знакомстве лучше просто все перепробовать самому.

Меню вверху страницы позволяет управлять сайтом, персональными настройками пользователя (включая добавление новых страниц) и администрировать Liferay. Под кнопкой Admin скрывается две основные настройки: в Site Administration добавить объект (страницу, статью, документ, вики, теги, навигацию и прочее), управлять страницей, макетом и настройками сайта.

Настройка страницы

Настройка страницы

Здесь же выбирается логотип, тема сайта, указывается описание, стиль ссылок, вид с мобильных устройств, правка CSS и многое другое. Глобальные установки Liferay доступны только для администратора в панели управления (Control Panel).

Здесь четыре основных пункта:

  • Users — управление учетными записями пользователей и организаций, группами и ролями, политикой паролей, мониторинг активности;
  • Sites — управление сайтами, шаблонами сайтов и страниц;
  • Apps — установка и конфигурация портлетов, управление лицензией;
  • Configuration — установки портала, функции администрирования.

Портлеты поставляются в виде WAR/LPKG-архивов. С помощью меню вверху страницы их можно установить (Admin -> Control Panel -> Configuration -> AppManager -> Install), указав URL или файл на локальном носителе. Чтобы скачать портлет, потребуется учетная запись в Store.

Например, в Liferay CE 6.2 почему-то убрали поддержку русского по умолчанию. Но это несложно решить. Скачиваем (его легко найти поиском) и устанавливаем портлет, как написано выше. Затем идем в Admin -> Control Panel -> Configuration -> Portal Settings -> Display settings и редактируем список доступных языков Available Languages. Сохраняем результат. После этого русский будет в списке Default Language. Выбираем. Здесь же регулируем часовой пояс, лого сайта, доступ к приложениям Google и прочие настройки.

Локализация Liferay

Локализация Liferay

В других вкладках Control Panel можем просмотреть ресурсы, свойства системы/портала, установить уровни журналирования, указать данные SMTP/POP3-сервера, выполнить некоторые операции администрирования (очистить ОЗУ, сбросить кеш, проверить таблицы БД и другие), ограничить максимальный размер загружаемого файла и указать список разрешенных расширений. В случае необходимости создания нескольких порталов в Admin есть соседствующий пункт. Процесс очень прост: нажимаем «Добавить» и указываем название, почтовый домен, виртуальный хост и опционально максимальное количество пользователей. Описывать все настройки нет смысла, все они логичны, назначение многих понятно из названия.

Задача

  1. Регулярно проводить промо-акции, делать скидки, вводить новые сервисы.
  2. Периодически менять дизайн страниц, элементов пользовательского интерфейса. Например, срочно оформить сайт к Новому году и к Black Friday.
  3. Уметь отображать на сайте контент, который предоставляют подрядчики.
  4. Интегрировать корзину в каждую страницу общего портала оператора.
  5. Иметь возможность без единой строчки кода добавлять новые сервисы существующих типов, а также новые типы сервисов.

Проблемы и решения

  • Первый путь – Staging environment.Суть его в том, что ставятся два инстанса Liferay: один — это мастер изменений, второй – продакшн. На первом вносишь все изменения, убеждаешься, что они работают, и после этого нажимаешь кнопку [Применить]. После этого все изменения чудным образом перемещаются на продакшн сервер. Но, к сожалению, этот подход не удовлетворяет многим требованиям, описанным выше.
  • Второй путь – Export/Import – казалось бы, идеальная и правильная штука, но и тут не обошлось без сюрпризов. Экспорт ведется в специальном формате LAR, который является обычным зипником с кучей XML. А проблема в том, что никакой логики в этих XML не наблюдается. Каждый тип конфигурации, каждый тип данных и прочее переводится в XML по-своему! Причем в этом XML такое количество постоянно меняющейся и зависящей от окружения служебной информации, что их мерж оказывается просто невозможным. Так при импорте одинаковой конфигурации с двух разных серверов получается результат различный на 90%.

Проект Liferay

Liferay представляет собой веб-платформу для строительства бизнес-решений, объединяющую разные приложения в единое информационное пространство. С его помощью можно построить порталы с интеграцией корпоративных приложений, динамические веб-сайты, базу знаний и социальные сети. Сотрудники для доступа к данным и обмена информацией будут использовать одно приложение. Распространяется с исходным кодом под двойной лицензией: GNU GPL и коммерческой. Liferay далеко не новичок на рынке и пользуется в мире популярностью. Начиная с 2011 года аналитическое агентство Gartner в отчете Magic Quadrant for Horizontal Portals относит Liferay к лидерам, где он находится рядом с решениями от Microsoft, IBM, SAP и Oracle. С официального сайта портал скачали более четырех миллионов раз, разработчики говорят о примерно 350–500 тысячах установок в организациях самого разного назначения. Cреди них и компании с мировым именем: министерство обороны Франции, Cisco, Andorra Telecom и многие другие.

Как и принято в любых подобных системах, Liferay легко адаптируется под любые условия. После установки базовая система содержит только некоторый оптимальный набор. Все дополнительные функции Liferay реализованы посредством подключения модулей, называемых портлетами. В Liferay Marketplace доступно большое число готовых к использованию компонентов, часть из которых распространяется бесплатно.

В Liferay Marketplace найдем большое количество портлетов

В Liferay Marketplace найдем большое количество портлетов

Сервер Liferay готов к применению в организациях любого размера, легко масштабируется, может работать в кластере и развертываться в облаке. Поддерживается интеграция со службами каталогов LDAP и Active Directory, системами Single Sign-On (CAS, OpenSSO, NTML, SiteMinder). Для работы с почтой подойдет любой SMTP/S, IMAP/S или POP3/S сервер. Все приложения и информация при помощи различных методов (SOAP, REST, RSS, внутренние API) интегрируются в единый интерфейс, упрощающий работу с Liferay. На сегодня это десятки продуктов: для генерации отчетов, системы электронного документооборота, CMS, ERP/CRM, система бизнес-аналитики Pentaho BI, Libre/OpenOffice и многое другое. Все это позволяет быстро и с минимумом затрат внедрить корпоративный портал с нужными функциями.

Одна установка Liferay может обслуживать несколько организаций и сайтов. Портал поддерживает одновременно несколько языков интерфейса, при подключении выдается страница по настройкам браузера. Внешний вид портала автоматически подстраивается под размер экрана, в том числе под мобильные устройства.

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

Для создания контента предлагается встроенный редактор с функцией проверки правописания, но в Marketplace доступно несколько альтернатив. Любая информация в Liferay структурируется при помощи тегов и категорий. Liferay поддерживает протокол MS SharePoint, то есть пользователи могут работать с файлами MS Office, находящимися на локальных дисках, и загружать их в хранилище Liferay. Поддерживаются версии документа, блокировка редактирования, автоматическая конвертация формата, галерея изображений, поиск, доступ по WebDAV, публикация и многое другое. Внешний вид портала, веб-сайта или отдельной страницы меняется при помощи тем и макетов. Внешний вид и функциональность кабинета полностью настраивается как администратором, так и самим пользователем при помощи тем, шаблонов, портлетов и виджетов. Для статей, записей и подобного также предусмотрены шаблоны, что позволяет стандартизировать документацию. Реализован и каталог программного обеспечения, он позволяет определить набор ПО, доступного пользователям для загрузки.

Проект разработал собственный клиент синхронизации документов с порталом Liferay Sync, поддерживающий drag’n’drop, журналирование изменений и откат к предыдущим версиям, возможность редактирования файла сразу несколькими пользователями. Доступны версии для Windows, OS X, iOS и Android. При такой функциональности какой-то особой подготовки от пользователя и администратора не требуется. Все действия выполняются интуитивно, поддерживается drag’n’drop, AJAX делает среду интерактивной.

Теперь самое интересное. Liferay выпускается под двойной лицензией: Community Edition под лицензией GNU GPL и коммерческой Enterprise Edition. Возможности CE несколько урезаны: недоступна поддержка 24 х 7 х 1, встроенные функции аналитики, аудита, контроля производительности. Но что-то из этого можно компенсировать при помощи бесплатных плагинов. Все основные функции портала остались нетронутыми, и на первых порах смысла в покупке EE нет, достаточно использовать CE, чтобы как минимум присмотреться к Liferay. В ЕЕ плата берется в зависимости от функциональности сервера, никаких клиентских лицензий (вроде Client Access License, используемой в продуктах Microsoft) не предусмотрено, поэтому в случае расширения ничего доплачивать не придется. Стоит отдельно отметить большое количество официальных партнеров, занимающихся внедрением Liferay по всему миру.

На сегодня актуальная версия — 6.2, но уже ведется разработка 7.0.0, и можно ознакомиться с предрелизом. Проект предоставляет хорошую подборку документации (на английском). Поэтому ответ можно найти на любой вопрос и без официальной поддержки. Но иногда документация запаздывает, поэтому некоторые вопросы по версии 6.2 следует смотреть в более ранних релизах. Например, Getting Started на момент написания этих строк для 6.2 отсутствовал.

Также следует отметить наличие еще одного продукта Liferay Social Office, ориентированного на организацию совместной работы, с базовыми функциями портала.

Выбор технологии

Выводы

  1. Liferay – мощный инструмент для построения как внутренних, так и массовых порталов.
  2. Liferay позволил решить поставленные перед нами задачи без дополнительных капитальных вложений в разработку своего «велосипеда».
  3. Liferay – система, позволяющая делать защищенные, нагруженные и богатые функционалом решения настолько гибко, насколько это возможно.

Всем спасибо за то, что дочитали статью до конца. Надеюсь, она была достаточно интересна.

Получите бесплатную консультацию от нашего специалиста.

Liferay, BigData

Liferay Portal – мощная, но в то же время гибкая система с открытым исходным кодом, предназначенная для построения корпоративных порталов. Liferay Portal состоит из системы управления контентом и инструментария для организации совместной работы и предоставляет широкие возможности для их кастомизации. В настоящее время система внедрена и используется такими компаниями, как Cisco, Vodafone, Lufthansa и другими.

Liferay является хорошо масштабируемой, высоко производительной и надежной платформой для построения корпоративных бизнес-решений.


Преимущества Liferay

Модульность

Поддержка широкого спектра различных бизнес модулей, возможность разработки и внедрения собственных.

Поддержка облачных технологий

Нет необходимости приобретать аппаратную часть для поддержки портала.

Web-интерфейс

Возможность работы в системе территориально-удаленных сотрудников с любых устройств через браузер без установки дополнительного ПО.

Liferay доступен по лицензиям GNU LGPL и commercial лицензией с предоставлением технической поддержки.

Возможность использования предустановленных Liferay портлетов позволяет уменьшить затраты на создание портала.

Liferay реализован на Java и поддерживает множество баз данных, включая MySQL, MsSQL, Postgres, Oracle, а также Liferay поддерживает расширения написанные на различных языках программирования, включая Ruby и PHP. портлеты.

Вывод

Liferay представляет собой очень мощное, но одновременно понятное в конфигурировании и сопровождении решение, которое прекрасно интегрируется практически в любую сеть и уже заслужило доверие именитых организаций.


Многие из нас уже не раз писали разного рода магазины. Но большие e-commerce проекты в быстро растущей и развивающейся компании разрабатывать приходится нечасто. К таким решениям предъявляются дополнительные требования, такие как конфигурируемость, адаптивность к изменениям, возможности встраивания в другие системы и прочее. Для написания такого решения компания Netcracker использовала Liferay Portal фреймворк. В итоге получили достаточно преимуществ, но и без проблем не обошлось.

Читайте также: