Sono sicuro che capirò la differenza mentre comincio a fare più cose relative a OSGi, ma ho pensato che fosse una buona domanda da chiedere, dal momento che non mi è chiaro da un paio di ricerche veloci su Google. Se qualcuno ha una risposta chiara e concisa ...Qual è la differenza tra Equinozio e Vergine?
risposta
Un'analogia impreciso: Equinox è il motore, la Vergine è l'auto.
Equinox è il runtime dal progetto Eclipse (alternative implementazioni includono Felix (da Apache) e Knopflerfish).
Vergine utilizza Equinox al suo interno ma fornisce molte delle cose si richiederebbe se usarlo in produzione. La Vergine è fondamentalmente il progetto Server SpringSource dm donato alla Fondazione Eclipse, quindi ovviamente ha un forte supporto per tutto ciò che riguarda la Primavera. Esistono molti prodotti simili (Karaf (ServiceMix) e numerosi application server Java EE).
Un OSGi runtime è in genere un piccolo ambiente (runtime), quel tanto che basta per lanciare/forniscono il quadro OSGi. Prodotti come Virgo offrono le funzionalità di produzione/impresa comuni in modo coerente e testato e spesso includono accesso a shell remota, supporto di app Web, sicurezza, ecc.
È possibile lavorare direttamente con un runtime, aggiungendo ogni funzionalità come richiesto , ma mentre questo può essere utile per i sistemi con risorse limitate, è in genere un grande sforzo per una piccola ricompensa (a parte l'istruzione, ovviamente).
Tecnicamente, Equinox è il framework OSGi e Virgo è il contenitore. Un container gira su una struttura e aggiunge funzionalità. Le tecnologie concorrenti a questo sono Felix e Karaf che sono il framework OSGi di Apache Software Foundation (Felix) e il contenitore (Karaf). La differenza tra l'offerta ASF e la fondazione Eclipse offre principalmente che le offerte Eclipse sono l'implementazione di riferimento della specifica OSGI 4.2.
L'implementazione di riferimento Vergine "sottosistemi" è infatti un importante miglioramento per l'impiego coordinato di insiemi di fasci. In Karaf, usano un meccanismo di distribuzione "caratteristiche". La principale differenza tra un meccanismo di distribuzione di "sottosistemi" e "caratteristiche" è che nei sottosistemi è possibile separare specifici gruppi di librerie e impedire che i loro pacchetti vengano utilizzati al di fuori di un sottosistema definito. Con le funzionalità tutti i pacchetti resi disponibili ad altre librerie sono resi disponibili a livello di contenitore.
Grande risposta, vorrei aggiungere a questo che la Vergine supporta il concetto di "sub-sistemi" e una divisione tra la regione kernel e una regione utente per pacchi. Ciò garantisce che i bundle installati dall'utente non possano interferire con il kernel e consente anche l'implementazione di isole indipendenti di funzionalità, dette anche applicazioni, senza interferenze incrociate. –
Ottima risposta. Una sola correzione: Virgo è il progetto Server SpringSource dm fornito a Eclipse e Gemini Blueprint è il progetto Spring DM donato a Eclipse. –
corretto, grazie Glyn – earcam