Что нас ждет в Liferay 7.0
Компания Liferay объявила о выходе последней milestone версии Liferay 7.0 m7. Это означает что дальше пойдут уже альфы и беты, в которых будет идти исправление ошибок — функциональных же изменений уже особо не ожидается. И хотя до релиза еще примерно полгода, уже сейчас можно посмотреть что же нового нас ждет в новой версии Liferay
Что такое Liferay?
Сначала небольшое вступление для тех, кто не знает что такое Liferay. Если в двух словах — это SharePoint, но на Java и Open-Source.
Если очень упрощенно — то это самое точное определение. Хотя все конечно не так просто и так прямолинейно.
Если чуть подробней — это веб-портал, разрабатываемый на технологиях Java Enterprise Edition (о технологиях чуть ниже) по схеме Open Source. При этом есть компания, которая занимается целеноправленным развитием данного продукта и оказывает Enterprise- поддержку (уже за деньги). Liferay можно применять
- и классически — как внутрикорпоративный портал (организация совместной работы сотрудников) или корпоративную соцсеть,
- и для создания внешних сайтов (один из примеров — недавно упоминавшийся на хабре сайт мобильного оператора Yota),
- а можно использовать его как платформу для разработки своих приложений (очень хорошо на нем получаются различные B2B и B2C решения).
Подробней можно почитать на самом сайте Liferay или у нас (уже на русском).
Изменения в архитектуре
Основным новшеством, из-за которого новая версия будет 7.0, а не (например) 6.3 это переход на OSGI. Это огромное изменение в плане внутренней архитектуры (да и всей экосистемы вокруг Liferay, так как это влечет за собой и изменения в разработке плагинов). Когда-то давно-давно, Liferay базировался на EJB. EJB тогда были вторые, они были большие и тяжелые, и требовали больших и тяжелых серверов для запуска (минимум JBoss) — что не всегда было оправданно. Потом Liferay перевели на легкий Spring Framework — и этого задела ему хватило лет на 7 (могу ошибаться в какой точно версии произошел этот переход —, но достаточно давно). И вот теперь OSGI. Что это дает пользователям (хотя скорее программистам, реализующим решения на базе Liferay — конечным пользователям все равно на каких технологиях сделано):
- Ядро портала теперь модульное. Можно легко отключить лишнее. Один из минусов Liferay называли, что в его ядре много «лишнего». Ставя Liferay пользователи получали не только Portlet Container и админку с необходимым базовым функционалом —, но и кучу модулей, причем необходимость некоторых из них вызывала большие сомнения. Теперь можно будет сформировать свой набор модулей, которые мы хотим что бы вошли в ядро
- Все плагины (дополнения к порталу) разрабатываются теперь как OSGI модули. Раньше каждый плагин был отдельным web-приложением (с точки зрения Application Server-а) которое общалось с порталом через хитрый механизм под названием BeanLocator (который был по сути дела хаком). Теперь все честно, все строго в рамках базовых технологий
- Проще вносить изменения в само ядро портала. Просто замените модуль реализующий требуемую функциональность на свой. Все, надеюсь больше не потребуется никаких ext-плагинов (кто занимался глубокой кастомизацией Liferay, тот поймет)
Итак, ждем с нетерпением. Одно пугает — такие серьезные архитектурные изменения не даются легко и просто —, но я надеюсь что все-таки к релизу версия (в том числе и силами сообщества) будет хорошо протестирована.
Чего к сожалению не ожидается:
- Сервером по умолчанию по прежнему остается Tomcat 7. На самом деле очень хотелось бы увидеть Tomcat 8 и использование WebSockets в портале
- Реализация веб-сервисов по прежнему на первом Axis. Тут без слов. Видимо придется ждать 8-ой версии.
Изменения в UI
Большие изменения ожидаются в пользовательском интерфейсе:
- Новая тема. Обещают более «легкую», mobile-friendly и все такое. Так же и более кастомизируемую. Пока сложно оценить что за этим стоит, но если сделают надпись «Powered by Liferay» отключаемой или конфигурируемой — это будет большим шагом вперед :)
- Новое управление. Всем. Нет теперь отдельной Control Panel-и. Есть Product Menu (вылезает слева). Управление страницей из боковых кнопок перекочевало в подвал страницы. Ну и многое другое. Тут я чувствую придется долго привыкать
- Загрузка страниц Ajax-ом: многие портлеты теперь могут загружать свой контент без перезагрузки страницы (например переход из списка блогов к конкретной записи). Важно — что такая поддержка на уровне базового framework-а, так что ее можно использовать везде.
Audience Targeting
На самом деле плагин Audience Targeting доступен уже и в 6.2, но в 7-ке он должен раскрыться во всей красе. Что это такое? Это сегментирование пользователей портала (по различным критериям) и отображение различного контента для различных сегментов. Плюс поддержка компаний. Базовый функционал для любой уважающей себя CMS наконец-то стал доступен и в Liferay (а как нам его не хватало!)
Понятно, что (например) геолокацию и сегментирование по регионам России придется дописывать —, но это (смотрим выше на OSGI) можно будет уже сделать просто отдельным плагином.
Новый редактор
Liferay продолжает смелый эксперимент по внедрению своего нового, инновационного редактора. Нет больше никаких тулбаров и кнопочек. Только контекстное редактирование
Тоже такое решение — на любителя. У меня например есть клиенты, которые просят выкинуть из Liferay 6.2 CKEditor 4 и ввернуть старый FCKEditor 3, ибо он «больше похож на старый ворд которым все привыкли пользоваться». Вот и как им объяснять про инновационное контекстное редактирование?
Благо что можно легко настраивать какой именно редактор используется
Геопривязка контента
Можно теперь привязать любой контент к географической точке и строить (например) интерактивные карты
Шаблоны для Staging-а
В Liferay есть такая штука как Staging — это когда вы на отдельном (тестовом) сайте подготавливаете все необходимые изменения (новые страницы, новый контент) и потом по нажатию кнопки (или по расписанию) после прохождения необходимого согласования публикуете на рабочем сервере. Штука полезная, так как (например) позволяет не «ломать» нагруженный продуктовый кластер, а спокойно делать свои изменения на тестовом сервере и потом публиковать их ночью на прод. Правда в жизни вылезает куча нюансов — и кто работал в Liferay со staging-ом по достоинству оценит возможность запоминать конфигурацию для stage в виде шаблонов для повторного использования.
На самом деле это лишь небольшой список основных изменений. В ходе работы над новой версией ребята из Liferay уже выполнили огромную работу (только в рамках Liferay 7.0 m7 закрыто порядка 170-ти User Story) и очень хочется надеяться что они доведут работу до конца (с хорошим качеством) и через полгода мы увидим новую версию.