Контейнер портлета, такой как pluto или jetspeed на движке приложений google?

Я пытаюсь создать что-то вроде "сервера портлетов" на движке приложений Google. (как открытый исходный код)

Я бы хотел использовать стандарты JSR168 / 286, но я думаю, что ограничения движка приложения сделают это где-то между сложным и невозможным.

Кто-нибудь пробовал запустить jetspeed или приложение, которое использует плутон внутри на движке приложения google?

Основываясь на моих текущих знаниях портлетов и движка приложений Google, я предвижу следующие проблемы:

Военный файл с портлетами с точки зрения развертывания является более или менее полным веб-приложением (да, я знаю, что он действительно не работает без сервера портала). Военный файл может содержать собственный web.xml и т. Д. Это затрудняет развертывание на движке приложения, поскольку приложения не видны друг другу, поэтому все портлеты, содержащие архивы, должны быть включены в военный файл развернутого приложения. сервер портала на базе движка ".

«Портлеты» (по крайней мере, в liferay) запускаются как постоянные процессы сервлетов на основе их portlet.xmls и web.xmls, которые расположены в одном месте для каждого загруженного архива портлетов. Я думаю, что это может быть проблематично в движке приложения, потому что все находится в одном большом «веб-приложении», поэтому получить доступ к portlet.xmls из каждого архива может быть сложно.

На мой взгляд, это предотвращает стопроцентную совместимость.

Есть ли здесь кто-нибудь, у кого есть опыт работы с портлетами и движком приложений?

Как вы думаете, возможно ли изменить jetspeed, pluto или любой другой контейнер портлетов, чтобы иметь возможность запускать его на движке приложения?


person Patrick Cornelissen    schedule 08.04.2010    source источник


Ответы (1)


Я кратко рассмотрел это - ваша самая большая проблема заключается в том, что спецификация Portlet основана на некоторых ключевых элементах спецификации сервлета, но переопределяет их - в частности, обычно требуется поддержка кросс-контекстных вызовов.

Хотя можно спроектировать одно веб-приложение, содержащее несколько портлетов и контейнер сервлетов (часто это делается для портлетов администратора или, в случае Liferay, большей части их стека), это непросто.

На самом деле, если смотреть на создание портального типа в AppEngine, я бы гораздо более внимательно посмотрел на размещение виджетов OpenSocial (если вам действительно нужны стандарты), возможно, работающих в Shindig или размещенных на внешнем хостинге. Это также может обеспечить совместимость с JSR-168, поскольку существует ряд (не очень хороших) портлетов-мостов для размещения виджетов, и написать такой адаптер несложно.

person jayshao    schedule 09.04.2010
comment
Разделяю ваши опасения по поводу проблем со спецификацией портлета. В настоящее время я подумываю определить свою собственную спецификацию gloudlet для модулей, которые работают внутри моего контейнера. Я собираюсь разработать его аналогично JSR286, но в рамках ограничений движка приложения. Кстати: если люди хотят помочь мне в изучении и создании стандарта / framework / tools: code.google. com / p / gloudy - это проект, который я для этого начал. - person Patrick Cornelissen; 09.04.2010
comment
Честно говоря, я не уверен, что это полезный уровень абстракции. ИМХО, спецификация портлета представляет собой архитектурный тупик (иронично, учитывая, сколько работы портала / портлета я проделал). Я думаю, что компоновка на стороне клиента - это способ, которым будет идти вся спецификация, с подобными SSO сеансами общих приложений и аутентификацией на основе атрибутов, заполняющей все другие интересные аспекты того, что делают портлеты. Я бы серьезно рассмотрел возможность включения виджетов (стандартизованных или простых), а не попыток развить другую модульную архитектуру фрагментов HTML. - person jayshao; 09.04.2010
comment
Что вы имеете в виду под композицией на стороне клиента? Получение виджетов на основе AJAX? Но откуда вы взяли определение страницы? Я пытаюсь создать основу для создания полных сайтов. Я не думаю, что виджеты здесь помогут. - person Patrick Cornelissen; 12.04.2010
comment
Спецификация портлета идет намного дальше, чем просто страница - это жизненный цикл набора @pretty. Я бы, вероятно, использовал JSP или скорость для загрузки моего представления, или, если вы хотите, чтобы проблема настройки конечного пользователя сохраняла JSON TREE, ПРЕДСТАВЛЯЮЩУЮ МАКЕТ - person jayshao; 15.04.2010