2009-04-09 18 views
14

J'aime vraiment le concept de bundles modulaires mis en œuvre par OSGi. J'apprécie également les services de «déploiement géré» comme Google AppEngine (pour une application Web) ou Java WebStart (pour un logiciel client).Mini-OSGi pouvant fonctionner dans un sandbox (comme AppEngine ou WebStart)?

Ces deux idées semblent se compléter les unes les autres plutôt bien conceptuellement. Cependant, la norme OSGi inclut quelques fonctionnalités qui empêchent l'exécution d'implémentations telles que Felix ou Equinox sur des machines virtuelles en mode sandbox, telles que AppEngine ou Webstart. Dans ces environnements, il n'est pas possible d'obtenir un accès direct à un système de fichiers, par exemple, ce qui exclut le cache de regroupement OSGi utilisé pour stocker les bibliothèques de l'état du bundle persistant et les bibliothèques natives.

Maintenant, je ne m'intéresse pas beaucoup à l'utilisation de bibliothèques natives ou à l'état de paquet persistant. Existe-t-il un framework qui implémente le concept de bundle et de services d'OSGi (idéalement de manière compatible pour que les bundles OSGi puissent y être déployés), mais peut fonctionner sans cache (et d'autres fonctionnalités non disponibles dans un sandbox) ?

Je cherche quelque chose comme une version limitée de Felix qui fonctionne sur AppEngine ou WebStart.

Bien sûr, si le moteur WebStart et Google AppEngine seulement ont fourni des services-cadre OSGi hors-the-box, ce serait génial aussi ...

Mise à jour: Un autre aspect très limitatif de AppEngine est que vous ne pouvez pas démarrer de nouveaux threads. Cela empêche (entre autres) la gestion du cycle de vie du faisceau asynchrone. De toute évidence pas un problème avec WebStart.

Répondre

0

Si votre seul problème provient du cache du bundle et que vous n'en avez pas besoin, vous pouvez vous en débarrasser en définissant cette propriété sur null dans Equinox ou Felix? Je suis assez sûr que ce cache n'est pas obligatoire pour avoir Equinox pour fonctionner (ne sais pas pour Felix)

1

Je suis assez sûr que cela peut être fait, et This eclipse help page pourrait probablement vous aider à démarrer. Si je comprends bien, vos paquets doivent être signés et votre fichier jnlp doit demander toutes les permissions.

+0

Oui, la partie "demander toutes les permissions" est le problème ... – Thilo

+0

Pouvez-vous élaborer sur ce sujet? Je veux dire: si votre code a des besoins légitimes, pourquoi ne pas demander à l'utilisateur d'accorder des autorisations pour répondre à ces besoins? Quelque chose vous contraignant dans ce domaine? –

+0

Le code de l'application n'a pas besoin d'un accès au système de fichiers. Mais OSGi en a besoin en interne. Est-ce un besoin légitime? Peut-être peut-être pas. – Thilo

1

Vous devriez parler à Chris Aniszczyk. Il l'a fait fonctionner avec Equinox et Knopflerfish. Voir la capture d'écran ici: http://twitpic.com/300lk Il prévoyait de bloguer à ce sujet, mais je suppose qu'il est très occupé en ce moment. Voici le lien vers son blog: http://mea-bloga.blogspot.com/

+0

Intéressant. J'espère qu'il en parle sur le blog.J'ai commencé ma propre petite expérience ici: http://drop.io/appengine/ http://miniosgi.appspot.com/ – Thilo

+0

Il a fait un blog à ce sujet maintenant: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/ – Thilo

+0

C'est le problème, quand les gens ont trop de blogs. Il est difficile de les rattraper tous (surtout si vous ne les connaissez pas tous ;-)) Merci pour le pointeur. On dirait qu'ils n'ont pas encore rencontré le problème du filetage, mais ils ont frappé celui que vous faisiez face au stockage ... –