2009-04-09 15 views
14

Me gusta mucho el concepto de paquetes modulares implementados por OSGi.Mini-OSGi que se puede ejecutar en un entorno limitado (como App Engine o WebStart)?

También me gustan los servicios de "implementación administrada" como Google AppEngine (para aplicaciones web) o Java WebStart (para software de clientes).

Estas dos ideas parecen complementarse conceptualmente entre sí.

Sin embargo, el estándar OSGi incluye un par de características que hacen imposible que las implementaciones como Felix o Equinox se ejecuten sobre las máquinas virtuales con espacio aislado, como AppEngine o Webstart. En estos entornos, no es posible obtener acceso directo a un sistema de archivos, por ejemplo, que excluye la memoria caché del paquete OSGi que se usa para almacenar el estado del paquete persistente y las bibliotecas nativas.

Ahora, no tengo un gran interés en el uso de bibliotecas nativas o tengo un estado de paquete persistente. ¿Existe algún marco que implemente el paquete central y el concepto de servicios de OSGi (idealmente de manera compatible para que los paquetes OSGi puedan desplegarse en él tal cual), pero puede funcionar sin un caché de paquetes (y otras funciones no disponibles en un entorno limitado)? ?

Estoy buscando algo así como una versión limitada de Felix que funciona en App Engine o WebStart.

Por supuesto, si el motor WebStart y el Google App Engine acaba de proporcionar servicios de infraestructura de OSGi fuera de la caja, que sería grande, demasiado ...

Actualización: Otro aspecto muy limitante de AppEngine es que no puedes iniciar nuevos Temas. Esto evita (entre otras cosas) la administración del ciclo de vida del paquete asíncrono. Obviamente no es un problema con WebStart.

Respuesta

0

Si su único problema proviene del paquete caché y no lo necesita, puede deshacerse de él estableciendo esta propiedad como nula en Equinox o Felix? Estoy bastante seguro de que este caché no es obligatorio para ejecutar Equinox (no lo sé para Felix)

1

Estoy bastante seguro de que se puede hacer, y This eclipse help page podría comenzar. Si lo entiendo correctamente, sus paquetes deben estar firmados y su archivo jnlp necesita solicitar todos los permisos.

+0

Sí, la parte "solicitar todos los permisos" es el problema ... – Thilo

+0

¿Puede colaborar con eso? Quiero decir: si su código tiene necesidades legítimas, ¿por qué no pedirle al usuario que otorgue permisos para cumplir con estas necesidades? ¿Hay algo que te obligue en este campo? –

+0

El código de la aplicación no necesita acceso al sistema de archivos. Pero OSGi lo necesita internamente. ¿Es eso una necesidad legítima? Tal vez tal vez no. – Thilo

1

Deberías hablar con Chris Aniszczyk. Lo hizo funcionar con Equinox y Knopflerfish. Vea la captura de pantalla aquí: http://twitpic.com/300lk Estaba planeando bloguear al respecto, pero supongo que está bastante ocupado en este momento. Aquí está el enlace a su blog: http://mea-bloga.blogspot.com/

+0

Interesante. Espero que sí blog sobre eso.He comenzado mi propio pequeño experimento aquí: http://drop.io/appengine/ http://miniosgi.appspot.com/ – Thilo

+0

Ha blog sobre eso ahora: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/ – Thilo

+0

Ese es el problema, cuando las personas tienen demasiados blogs. Es difícil ponerse al día con todos ellos (especialmente si no los conoces a todos ;-)) Gracias por el puntero. Parece que todavía no se han encontrado con el problema del enhebrado, pero toca el que estabas enfrentando con el almacenamiento ... –

Cuestiones relacionadas