Блоги

Навигационные полоски

Обзор проекта Launchpad от Liferay
На прошедшей Liferay DevCon 2015 наиболее интригующей была презентация Introducing Launchpad Project. Почему наиболее интригующей? Дело в том, что на предыдущей DevCon 2014 было обещано разделить backend и frontend - мол это позволит вам писать на backend-е любые сервисы и дальше использовать их с любого front-end-а. Нам это актуально для некоторых проектов - где нас просят просто "положить" html-файлы ( со всеми необходимыми css, js и прочее) и предоставить необходимые сервисы. "К черту темы, портлеты и прочие Liferay-евские штуки - мы вам уже сделали весь html - просто положите его под свой чертов Liferay  и реализуйте необходимые сервисы с предоставлением данным" - примерно так звучит задача.
В реальности все оказалось не совсем то, на что (я лично) рассчитывал.
Что такое Launchpad?
Launchpad -  это Backend as a Service - то есть сервис для быстрого построения backend-сервисов (простите за товтологию) - которые потом можно использовать где угодно (любой веб-сайт, мобильное приложение, другие сервисы).
Как это в итоге выглядит?
При заходе на главный сайт http://liferay.io -  попадаем на страницу с кратким описанием продукта. Дальше вход по паролю. Регистрации нет - надо запросить доступ и через некоторое время вышлют инвайт. Я уже получил - так что могу идти дальше.
После входа попадаем в Dashboard - где получаем доступ к списку приложений. Вся работа идет в рамках какого-то приложения. 
Создаем свое приложение - указывая имя и url где оно будет находится.
 
После создания - попадаем в панель приложения. Тут есть работа с непосредственно сервисами (о них чуть ниже), так же можно настроить безопасность, роли, мониторинг. Упс - пока не можем - но будем иметь возможность (проект в разработке).
Приложение - это набор сервисов - создаем свой сервис (например Echo) и в нем реализуем единственный метод echo (в API Builder-е). Для каждого метода можно задать как он вызывается ( GET, POST  и прочее), какие у него параметры что мы ожидаем в BODY а главное - обработчик. В нашем случае мы просто возвращаем полученный параметр.
После того как метод (API) создано - мы можем его дернуть в API Explorer,  посмотреть как работает - а так же вставить код для вызова метода в наш сайт (на JavaScript)  или приложение (на Java).
В документации описаны варианты работы с JSON данными, поддерживается Real-Time взаимодействие - данные автоматически обновляются в клиенте при изменении данных на сервисе.
Самое Полезное
Самое классное что есть в Launchpad - это чат. Походу разработчики там "живут" круглосуточно и можно спокойно задавать любые вопросы - да и просто потрепаться с Zeno или Igor-ем - ребята мне быстро помогли с возникшими вопросами. Чат реально понравился :)

Зачем?

Но основной вопрос - зачем? Я понимаю что микросервисы сейчас горячая штука и не хочется отставать. Я бы понял если бы в Liferay, как платформе, появились какие-то возможности по быстрому и удобному созданию микросервисов. Но запускать новый сервис? Если честно - я так и не понял чем Launchpad лучше того же Google Cloud Enpoints - который базируется на зрелой платформе  Google Cloud в которой все уже дано есть: и автоматическое масштабирование, и мониторинг и многое многое другое что ребятам из Liferay еще только предстоит реализовывать.
 
Время покажет - в любом случае Игорю & Co удачи!
16.10.2015