Що нас чекає в liferay 7

Що нас чекає в Liferay 7.0 +10

  • 01.09.15 9:30 •
  • akakunin •
  • # 265919 •
  • Хабрахабр •
  • 10 •
  • 8079

- такий же як Forbes, тільки краще.

Компанія Liferay оголосила про вихід останньої milestone версії Liferay 7.0 m7. Це означає що далі підуть вже альфи і бети, в яких буде йти виправлення помилок - функціональних ж змін вже особливо не очікується. І хоча до релізу ще приблизно півроку, вже зараз можна подивитися що ж нового нас чекає в новій версії Liferay

Що таке Liferay?


Спочатку невеликий вступ для тих, хто не знає що таке Liferay. Якщо в двох словах - це SharePoint, але на Java і Open-Source.
Якщо дуже спрощено - то це найточніше визначення. Хоча все звичайно не так просто і так прямолінійно.
Якщо трохи детальніше - це веб-портал, що розробляється на технологіях Java Enterprise Edition (про технології трохи нижче) за схемою Open Source. При цьому є компанія, яка займається целеноправленним розвитком даного продукту і надає Enterprise- підтримку (вже за гроші). Liferay можна застосовувати
  • і класично - як внутрішньокорпоративний портал (організація спільної роботи співробітників) або корпоративну соцмережу,
  • і для створення зовнішніх сайтів (один із прикладів - недавно згадуваний на Хабре сайт мобільного оператора Yota),
  • а можна використовувати його як платформу для розробки своїх додатків (дуже добре на ньому виходять різні B2B і B2C рішення).

Зміни в архітектурі


Основним нововведенням, через якого нова версія буде 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) можна буде вже зробити просто окремим плагіном.

геопривязку контенту


Можна тепер прив'язати будь-який контент до географічній точці і будувати (наприклад) інтерактивні карти

Шаблони для Staging-а


У Liferay є така штука як Staging - це коли ви на окремому (тестовому) сайті готуєте всі необхідні зміни (нові сторінки, новий контент) і потім після натискання кнопки (або за розкладом) після проходження необхідного узгодження публікуєте на робочому сервері. Штука корисна, так як (наприклад) дозволяє не «ламати» навантажений продуктовий кластер а спокійно робити свої зміни на тестовому сервері і потім публікувати їх вночі на прод. Правда в житті вилазить купа нюансів - і хто працював в Liferay зі staging-му гідно оцінить можливість запам'ятовувати конфігурацію для stage у вигляді шаблонів для повторного використання.

Насправді це лише невеликий список основних змін. В ході роботи над новою версією хлопці з Liferay вже виконали величезну роботу (тільки в рамках Liferay 7.0 m7 закрито близько 170-ти User Story) і дуже хочеться сподіватися що вони доведуть роботу до кінця (з гарною якістю) і через півроку ми побачимо нову версію .

А яких рішень не боїтеся?
Ну і - не знаю що у вас сталося з Альфреско - але були негативні відгуки про Liferay. Мені здається загальна проблема в наступному - системи (що Alfresco, що Liferay) досить складні - для реалізації більш-менш складних завдань потрібен досвід. Найчастіше ж складається як - беруть (бо безкоштовно) - садять адміна або unior-розробника - мовляв «поколупатися - що там і як», потім сяк-так вирішують поставлене завдання - вона ніфіга не вирішується, все працює погано і криво, а підсумку вирішують що продукт «відстій» і все викидають.
Мені звичайно прикро таке спостерігати - так як проблема в даному випадку не в продукті - а в умінні з ним звертатися - але такі ситуації зустрічав не раз.

Ну можу з вами погодитися akakunin. на моїй практиці з Альфреско працювала команда зрілих програмістів і 90% з них плювалася від неї, а деякі йшли з проекту. Найгірше в таких рішеннях це те що ми приймаємо правила гри зустрічаючись на ці плюшки що ви описуєте в своїй статті, а потім розуміємо що проблем і обмежень (websockets в вашому випадку) на порядок більше але час вже минув.
Я не ризикну стверджувати які можуть бути проблеми у liferelay але я впевнений що вони є, будь то горизонтальне масштабування або використання в зв'язці з документо орієнтованим сховищем.
А не боюся я простих рішень, подивіться наприклад на jhipster. це зовсім інший підхід який не нав'язує то як ти будеш вирішувати завдання і які технології будеш використовувати. Моноліт або мікро сервіс, документо-орієнтована СУБД або реляційна, websockets або long polling. Все в руках розробників. Саме в сторону спрощення та прискорення розробки рухається індустрія, а не в бік таких монструозних рішень.

Тому - для кожного завдання - свій інструмент. Десь так - простіше самому розробити систему (не з нуля - а використовуючи в якості відправної точки якийсь framework або стек - будь то jhispter, entando, cuba і так далі - список можна продовжити) - а десь (для більш складних завдань) простіше все-таки взяти готовий продукт і допілівать його (благо open source і вихідні є).

А тепер ситуація
Не варто очікувати рішення від jhipster це всього лише генератор шаблону проекту на популярному стеку технологій. У вас буде повна свобода по вирішенню цього завдання стандартними способами. Я не кажу вже про те що в документо орієнтованої СУБД такої проблеми просто не виникло і можливо для СЕД краще не прикручувати ACL, а змінити СУБД.

По роботі довелося повозитися з Liferay. Залишилося дуже погане враження. Монстроузность додаток під 300 метром. Документації особливо немає, постів і відповідей майже немає, код жахливий.

Абсолютно не розумію навіщо може знадобитися така штука.

Ну не погоджуся з вами.

Так - додаток досить складне. За моїми прикидками час «входу» - до півроку. 300 метрів - ну так це додаток Enterprise рівня. Порівняйте з іншими лідерами Гантера (SharePoint, WebSphere Portal, SAP, Oracle) - ті ще більше й монструозність - на їхньому тлі Liferay супер легкість і простота.

Код - цілком нормальний.

У мене три роки досвіду з Liferay, особливо скріплет на jsp сторінках доставляють. А вже про монстра у вигляді AUI я взагалі мовчу.

Особисто моя думка - якщо потрібно базовий функціонал з мінімальними модифікаціями - Liferay просто немає альтернативи, потужний API, купа готових портлетів, маркетплейс. Якщо ж хоча б трохи нетривіальні завдання - і розробка перетворюється в захоплюючу плавання по залишкам документації та палінні форумів з відповідями типу «ну ось тут як би десь подивіться там», тому волію з нуля робити ніж будується з Liferay.

Схожі статті