2009-04-09 8 views
14

Mi piace molto il concetto di bundle modulari implementato da OSGi.Mini-OSGi che può essere eseguito in una sandbox (come AppEngine o WebStart)?

Mi piacciono anche i servizi di "distribuzione gestita" come Google AppEngine (per applicazioni Web) o Java WebStart (per software client).

Queste due idee sembrano complementare l'una all'altra piuttosto bene concettualmente.

Tuttavia, lo standard OSGi include un paio di funzionalità che rendono impossibile l'esecuzione di implementazioni come Felix o Equinox su macchine virtuali sandbox, come AppEngine o Webstart. In questi ambienti, ad esempio, non è possibile ottenere l'accesso diretto a un file system che preclude la cache del bundle OSGi che viene utilizzata per archiviare le librerie native e natatorie persistenti.

Ora, non ho molto interesse nell'uso delle librerie native o nello stato di bundle persistente. Esiste qualche framework che implementa il concetto di bundle e servizi di base di OSGi (idealmente in un modo compatibile in modo che i bundle OSGi possano essere implementati così com'è), ma può funzionare senza una cache di bundle (e altre strutture non disponibili in una sandbox) ?

Sto cercando qualcosa come una versione limitata di Felix che funziona su AppEngine o WebStart.

Naturalmente, se il motore WebStart e Google AppEngine appena forniti servizi framework OSGi out-of-the-box che sarebbe grande, troppo ...

Aggiornamento: Un altro aspetto molto limitante di AppEngine è che non puoi iniziare nuove discussioni. Ciò impedisce (tra le altre cose) la gestione del ciclo di vita del bundle asincrono. Ovviamente non è un problema con WebStart.

risposta

0

Se il tuo unico problema proviene dalla cache del bundle e non ne hai bisogno, è possibile che tu possa sbarazzartene impostando questa proprietà su null in Equinox o Felix? Sono abbastanza sicuro che questa cache non sia obbligatoria per far funzionare Equinox (non so per Felix)

1

Sono abbastanza sicuro che possa essere fatto, e This eclipse help page potrebbe probabilmente iniziare. Se ho capito bene, i tuoi bundle devono essere firmati e il tuo file jnlp deve richiedere tutte le autorizzazioni.

+0

Sì, la parte "richiesta tutte le autorizzazioni" è il problema ... – Thilo

+0

Puoi collaborare? Voglio dire: se il tuo codice ha esigenze legittime, perché non chiedere all'utente di concedere le autorizzazioni per soddisfare queste esigenze? Qualcosa che ti costringe in questo campo? –

+0

Il codice dell'applicazione non richiede l'accesso al file system. Ma OSGi ne ha bisogno internamente. È un bisogno legittimo? Forse sì forse no. – Thilo

1

Dovresti parlare con Chris Aniszczyk. Lo ha fatto funzionare con Equinox e Knopflerfish. Vedi lo screenshot qui: http://twitpic.com/300lk Stava progettando di bloggarlo a riguardo, ma credo che al momento sia piuttosto impegnato. Ecco il link al suo blog: http://mea-bloga.blogspot.com/

+0

Interessante. Spero che faccia blog su questo.Ho iniziato il mio piccolo esperimento qui: http://drop.io/appengine/ http://miniosgi.appspot.com/ – Thilo

+0

Ha fatto un blog a riguardo ora: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/ – Thilo

+0

Questo è il problema, quando le persone hanno troppi blog. È difficile raggiungerli tutti (specialmente se non li conosci tutti ;-)) Grazie per il puntatore. Sembra che non abbiano ancora incontrato il problema del threading, ma hanno colpito quello che stavi affrontando con lo storage ... –

Problemi correlati