2010-04-08 21 views
7

Estoy intentando crear algo como "servidor de portlet" en el motor de la aplicación de Google. (como fuente abierta)Contenedor de portlet como pluto o jetspeed en el motor de la aplicación google?

Me gustaría utilizar los estándares JSR168/286, pero creo que las restricciones de el motor de la aplicación lo harán complicado o imposible.

¿Alguien ha intentado ejecutar jetspeed o una aplicación que usa pluto internamente en el motor de la aplicación de google?

Basado en mi conocimiento actual de portlets y el motor de aplicación de Google estoy anticipando estos problemas:

Un archivo de la guerra con los portlets es desde el punto de vista de implementación más o menos una aplicación web completa (sí, lo sé que realmente no funciona sin un servidor de portal ). El archivo war puede contener su propio web.xml, etc. Esto hace que la implementación en el motor de la aplicación sea bastante difícil, porque las aplicaciones son no visibles entre sí, por lo que todos los portlets que contienen archivos deben ser incluidos en el archivo war del archivo desplegado "servidor de portal basado en el motor de la aplicación".

Los "portlets" son (al menos en liferay) comenzó servlet como permanente procesos, en base a sus portlet.xmls y web.xmls que se encuentra en el mismo lugar durante cada archivo portlet que se carga. Creo que esto puede ser problemático en el motor de la aplicación , porque todo está en una gran "aplicación web", por lo que puede ser difícil acceder al portlet.xmls de cada archivo desde .

Esto impide una compatibilidad del 100% en mi opinión.

¿Hay alguien que tenga alguna experiencia con la combinación de portlets y el motor de aplicación ?

¿Crees que es factible modificar jetspeed, pluto o cualquier otro contenedor de portlet para poder ejecutar en el motor de la aplicación?

Respuesta

2

Lo he visto brevemente: su mayor problema es que la especificación de Portlet se basa en algunas especificaciones de servlet pero sobrepasa algunas de ellas, específicamente requiere compatibilidad con llamadas de contexto cruzado.

Si bien es posible diseñar una sola aplicación web que contenga varios portlets y el contenedor de servlets (a menudo hecho para portlets de administración, o en el caso de Liferay gran parte de su pila) no es fácil.

En realidad, si se trata de hacer cosas de tipo de portal en AppEngine, miraría mucho más de cerca el alojamiento de widgets de OpenSocial (si realmente quieres estándares), tal vez corriendo en Shindig o alojado externamente. Esto también puede obtener compatibilidad con JSR-168, ya que hay una cantidad de portlets de puente (no geniales) para alojar widgets, y no es un adaptador difícil de escribir.

+0

Comparto sus inquietudes con respecto a los problemas con las especificaciones del portlet. Actualmente estoy pensando en definir mi propia especificación "gloudlet" para los módulos que se ejecutan dentro de mi contenedor. Voy a diseñarlo de manera similar a JSR286 pero dentro de los límites de las restricciones del motor de la aplicación. Por cierto: si la gente quiere ayudarme a explorar y construir el estándar/framework/herramientas: http://code.google.com/p/gloudy/ es el proyecto que he comenzado para él. –

+0

Honestamente, no estoy seguro de que sea un nivel útil de abstracción. La especificación de portlet en mi humilde opinión representa un callejón sin salida arquitectónico (irónico teniendo en cuenta la cantidad de trabajo de portal/portlet que he hecho).Creo que la composición del lado del cliente es la forma en que funcionarán todas las especificaciones, con sesiones de aplicaciones compartidas similares a SSO y autenticación basada en atributos que completan todos los demás aspectos interesantes de lo que hacen los portlets. Consideraría seriamente la incorporación de widgets (estandarizados, o simplemente simples) sobre tratar de desarrollar otra arquitectura modular de fragmentos de HTML. – jayshao

+0

¿Qué quiere decir con "composición del lado del cliente"? ¿Recopilación de widgets basada en AJAX? Pero, ¿de dónde obtendrías la definición de "página"? Estoy tratando de construir el marco para construir sitios completos. No creo que los widgets hagan el truco aquí. –

Cuestiones relacionadas