Ich mag das Konzept von modularen Bundles, wie es von OSGi implementiert wird.Mini-OSGi, das in einer Sandbox ausgeführt werden kann (wie AppEngine oder WebStart)?
Ich mag "Managed Deployment" Dienste wie Google App Engine (für Web-Anwendung) oder Java WebStart (für Client-Software) auch.
Diese beiden Ideen scheinen sich-andere eher gut konzeptionell zu ergänzen.
Der OSGi-Standard enthält jedoch einige Funktionen, die es unmöglich machen, dass Implementierungen wie Felix oder Equinox auf virtuellen Sandbox-Maschinen wie AppEngine oder Webstart ausgeführt werden. In diesen Umgebungen ist es beispielsweise nicht möglich, direkten Zugriff auf ein Dateisystem zu erhalten, wodurch der OSGi-Bundle-Cache ausgeschlossen wird, der zum Speichern von permanenten Bundle-Status und nativen Bibliotheken verwendet wird.
Nun, ich habe kein großes Interesse an der Verwendung von nativen Bibliotheken oder habe persistent Bündel Zustand. Gibt es ein Framework, das das Kernbündel- und Servicekonzept von OSGi implementiert (idealerweise in einer kompatiblen Weise, so dass OSGi-Bundles wie es eingesetzt werden kann), aber ohne einen Bundle-Cache (und andere Einrichtungen, die nicht in einer Sandbox verfügbar sind) arbeiten kann? ?
Ich bin auf der Suche nach so etwas wie eine begrenzte Version von Felix, die auf App Engine oder WebStart funktioniert.
Natürlich, wenn der WebStart Motor und die Google App Engine nur OSGi Framework-Service bereitgestellt out-of-the-Box, das wäre toll, auch ...
Update: Ein weiterer sehr einschränkender Aspekt der App Engine ist, dass du keine neuen Threads starten kannst. Dies verhindert (unter anderem) das asynchrone Paket-Lebenszyklus-Management. Offensichtlich kein Problem mit WebStart.
Ja, die „Anforderung alle Berechtigungen“ Teil das Problem ist ... – Thilo
Können Sie das ellaborate? Ich meine: Wenn Ihr Code legitime Bedürfnisse hat, warum bitten Sie den Benutzer nicht, Berechtigungen zu erteilen, um diese Bedürfnisse zu erfüllen? Alles, was dich in diesem Bereich einschränkt? –
Der Anwendungscode benötigt keinen Dateisystemzugriff. Aber OSGi braucht es intern. Ist das ein legitimes Bedürfnis? Vielleicht, vielleicht nicht. – Thilo