Не так давно я описал новые фичи, которые ждут пользователей и разработчиков в новой версии Liferay 7.0. У меня иногда спрашивают — а почему Liferay? Для меня ответ прост — в том стеке технологий, в котором мы работаем (Jave EE плюс ориентация на Open Source) я просто не вижу альтернатив.

Да, мы давно занимаемся внедрением порталов на Liferay, но я не слепой фанатик и стараюсь иногда выныривать из своего мирка и смотреть вокруг. А вдруг? Вдруг альтернативы есть? Давайте сегодня рассмотрим одну из них — портал GateIn — совместное производство JBoss и eXo.

image

Почему я решил начать с GateIn? JBoss (теперь RedHat) компания с давними традициями в мире Open Source и уважаемая в мире Java EE. У нее есть целый спектр различных продуктов — начиная конечно же  c их знаменитого сервера (теперь называется WildFly) и заканчивая нишевыми решениями. Если и ожидать серьезного конкурента для Liferay — то в первую очередь с их стороны.

Собака должна есть свою еду?


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

C Liferay все чисто — сайт liferay.com честно крутиться на самом Liferay — ок, продукт настолько хорош, что его производитель доверил ему и свой сайт, и свои форумы и прочее.

А что с GateIn? Сайт gatein.jboss.org крутится на Магнолии (Magnolia CMS). Ну ладно, в конце концов реализация внешних сайтов — не совсем задача портала, мы можем это ему простить. А что насчет сообщества разработчиков — developer.jboss.org/en/gatein — упс — Jive. А почему не сам GateIn? Записываем GateIn первый минус — сам разработчик (JBoss) предпочел для себя другое решение — это уже о многом говорит.

Люди, ау?


А что вообще с сообществом? Выбирая Open Source продукт очень важно знать, что ты не останешься с ним один-на-один, а найдется 100500 других таких же бедолаг, вместе с которыми ты не будешь чувствовать себя таким одиноким.

Форумы на сайте developer.jboss.org произвели грусное впечатление — последнее сообщение в девелоперском форуме — 6 месяцев назад, в пользовательском — 3 месяца назад. Последний блог — полтора года назад. Последняя версия на странице Downloads — от 2013-ого года (если говорить о самом Jboss Portal) и 2014-ый год если говорить о GateIn. А продукт вообще жив?

А скачать?


На самом деле — если бы не мой академический интерес — на этом изучение продукта я бы и закончил. Но я упорный — а потому я все-таки попробовал его скачать.

Но начнем с того, что не понятно — а что качать? Есть GateIn, есть Jboss Portal. В чем разница? Что именно мне надо?

Если я правильно понял — GateIn — это такой community driven проект, а потом JBoss на его основе делает свой портал. Потому я решил сразу начать JBoss Portal 6.1.0 build from GateIn 3.6 (релиз 2013-ого года) — ссылка потребовала от меня логина или регистрации… Нет, мне не жалко, но шансов, что я дойду до финала все меньше и меньше. После логина я попал в недра сайта www.jboss.org/products/portal/get-started где узнал, что оказывается есть JBoss Portal 6.2.0 — от 15-ого года. Странно что на сайте GateIn об этом ничего не сказали. Итак — я остановился на JBoss Portal 6.2.0

Сим-сим откройся


Скачал, распаковал, посмотрел. Внутри JBoss AS 7.5.0, стартанул штатно. После старта, согласно документации пошел на Management Console: http://localhost:9990/ — но мне вежливо сказали что пользователей еще нет — и объяснили куда идти. Сходил, создал — и вот я внутри.

image

Тут все штатно для Jboss, но практически не интересно с точки зрения портала. Сам портал доступен по адресу http://localhost:8080/portal (при первом запуске попросил сменить админский пароль — удобно).

Тонкости администрирования


Я не буду вдаваться в подробности управления контентом, навигации и прочие удобно/не удобно. Удобство — дело привычки — и тут я не могу судить объективно — все таки я привык к Liferay и Jboss мне по любому будет непривычен. Но рассмотрим ряд базовых функций (в моем понимании). Начнем с администрирования.

Multitenancy

В Liferay есть такое понятие как Portal Instance. Это по сути дела возможность в рамках одного физического приложения запустить несколько порталов (каждый на своем домене) — как результат — эти порталы имеют общий код (и по сути дела запущены в рамках одного процесса Java) — но разные данные (пользователи, сайты и все прочее). В JBoss Portal я этого не нашел — теоретически это можно реализовать через домены самого Jboss AS — но это несколько другое.

Оргструктура

Возможность задать оргструктуру (причем с несколькими корнями — то есть завести не одну, а несколько организаций) есть. Пользователя можно назначить в несколько элементов оргструктуры с разными ролями (membership) — тут тоже все ок. И даже покопавшись, я нашел как для любого элемента орг-структуры создать свой сайт. Пусть и не удобно (стоп, я же обещал не говорить про это) — но сделать можно.

image

Мультисайтовость

Есть возможность создать несколько сайтов (Space-ов) в рамках одного портала — они могут быть привязаны как к какому-то элементу орг-структуры — так возможно и быть сами по себе.

Модель безопасности

Ролевая, вернее на пару — группа (элемент орг-структуры) — membership (роль в элементе орг-структуры). Я нашел настройки прав доступа к странице и конкретному портлету на странице (показывать или нет).

image

Хотя модель административных объектов у Liferay и JBoss Portal-а не совпадает — в целом основные вещи в плане администрирования в GateIn сделать можно. При этом, не говоря о удобстве-неудобстве — а о том, какое впечатление производит UI… я наблюдаю за развитием Liferay несколько лет — и вижу как последние годы идет «полировка» админки — реально прорабатывается Usability, реально люди стараются чтобы даже новый пользователь быстрее смог сориентироваться, найти нужные кнопки, сделать необходимые действия в меньшее количество кликов. Как итог — портал производит впечатление продукта.

Тут же меня не покидало ощущение «поделки» — особенно на фоне Liferay или админской консоли того же JBoss AS.

Наполнение


Ну хорошо, пользователей завели, по оргструктуре их распихали, сайты со страницами сделали, права раздали. А дальше? Чем мы будем наполнять страницы? И тут вылезает ключевая разница. Если в Liferay сразу ставится куча портлетов (виджетов) плюс еще большая куча доступна (например) через тот же Liferay Marketplace — то тут пустота. Пара виджетов типа «калькулятор», ооочень базовый виджет для размещения веб-контента, Iframe портлет — и все.

Быть или не быть


Как итог — единственный вариант в котором я вижу что можно использовать GateIn (или Jboss Portal — тут я так и не понял до конца как его правильней называть) — это ситуация, когда вам надо сделать полностью кастомный портал со своими портлетами, и по каким-то причинам вам очень близок стек продуктов JBoss. Ну и по сравнению с порталом Liferay — не придется вычищать кучу лишнего что дает Liferay пользователям по умолчанию — тут вы получите сразу некоторый минимум. Наверное все.

Можно ли сделать на нет более-менее вменяемый внешний сайт? Сомневаюсь. Можно ли поднять внутри-корпоративный портал — тоже вряд ли — нет базовых портлетов по организации совместной работы. Можно ли на нем поднять какую-то B2B платформу с набором своих, разработанных портлетов — да, такое сделать можно.

Но активность сообщества (вернее ее отсутствие) ставит крест на реальном применении данного продукта — как минимум я бы не рискнул делать проект по которому в форумах одно сообщение за полгода. А есть кто-то на хабре кто рисковал? Может я ошибаюсь и все не так плохо?

UPDATE: Liferay и JBoss — дружба на век


Как мне тут правильно подсказали — с 28 февраля 2015-ого года Liferay и JBoss заключили партнерское соглашение: http://www.liferay.com/redhat-jboss — как результат — JBoss перестал продавать подписку на свой портал и теперь рекомендует своим пользователям использовать Liferay.

Комментарии (8)


  1. RAMAZAN
    09.09.2015 07:16
    +2

    Хороший обзор-сравнение, и самый главный вывод уже сделан, сам Redhat не использует у себя свой же портал. Видать прикупили на будущие, что бы если что не опоздать на убегающий поезд.


    1. akakunin
      09.09.2015 08:25
      +2

      Как я понял — они его не покупали — а развивали достаточно давно — но сил развить что бы из проекта это превратилось в ПРОДУКТ (ценный сам по себе — без привязки к производителю и его стеку продуктов) уже не хватило.


  1. Timmmm
    09.09.2015 11:29

    IBM, Jetspeed-2, Pluto :)?


    1. akakunin
      09.09.2015 11:34

      В очереди — я не планирую на этом останавливаться, но из списка — IBM WebSphere портал — не open-source, Jetspeed-2 и Pluto еще большие «поделки» чем JBoss (по крайней мере на то время когда я их смотрел — может конечно что-то изменилось за последние пару лет)


      1. hardex
        09.09.2015 11:49
        +1

        Лучше не пытайтесь, WS portal — это consultingware


  1. webkumo
    09.09.2015 11:42
    +2

    Кхм… позвольте усомниться в вашей объективности — Liferay откровенно чрезмерно усложнённая система. По крайней мере 2 года назад было так.


    1. akakunin
      09.09.2015 11:45
      +2

      Я старался быть объективен — но действительно это может не всегда получаться.
      Liferay — сложен так как реализует сложный функционал. То что точно ему в минус — это что «из коробки» идет куча мусора — в ядро системы входит куча портлетов (функционала) который может быть и не нужен. И тут я как раз и отметил — что вариант использования JBoss в том случае если требуется чистый Portlet Container — без лишнего функционала.


    1. akakunin
      09.09.2015 11:53
      +2

      Ну и еще про сложность — каждый инструмент для своего типа задач. Я когда с клиентом встречаюсь — первым делом выясняю зачем им портал, какие у них стоят задачи — чтобы понять, а нужен ли им Liferay в принципе.
      Если им надо промо сайт на 5 страниц — не нужен Liferay — любая CMS на PHP сделает его проще и быстрее чем это будет на Liferay.
      Если им надо чисто внутренний портал на 10-100 человек — не нужен Liferay — это будет дорого и неэффективно — есть более дешевые и простые решения
      Если нужно реализовать какой-то процесс с тремя типами участников — не нужен Liferay — любой программист с прямыми руками напишет систему с требуемым функционалом с нуля или на базе top-level framework-а значительно быстрее.
      Ну а если задача реально сложная — очевидно что для ее решения требуются сложные системы.