2009-10-23 14 views

risposta

194

L'etichetta 'contenitore OSGi leggero' è contrastante Karaf con più contenitori includono ricca OSGi, non con Felix.

citare Guillaume Nodet (autore del Karaf) from here:

Felix è proprio il core runtime OSGi. Karaf fornisce una "distribuzione" basata su Felix aggiungendo altre funzionalità come una console, un meccanismo di comunicazione remota SSH, un deployer di file e altro ancora.

In questo diagramma dell'architettura Karaf, Felix (o altra implementazione OSGi - attualmente Equinox è supportato anche) è la casella OSGi, le altre caselle sono le caratteristiche aggiunte da Karaf:

Karaf Architecture Pertanto, a meno che tu non abbia esigenze specifiche che non sono soddisfatte da Karaf (che richiede l'accesso all'implementazione sottostante), di solito ha senso utilizzarle poiché fornisce più "out of the box".

+2

Grazie. Questo chiarisce la confusione :) – GabiMe

+0

Grazie, spiegazione eccellente e pulita. – eduardohl

+4

Una delle funzionalità di un contenitore OSGi è che è possibile selezionare solo i pacchetti necessari e distribuirli nel contenitore. Quindi il mio consiglio è di progettare prima la tua applicazione e quindi scegliere quello che ti serve. Il consiglio di "installare l'intera piattaforma perché è ricco di funzionalità" sembra un po 'come tornare agli enormi server di applicazioni Java EE. Ora non sto dicendo che Apache Karaf sia così vicino a tutti, sto solo facendo notare che puoi e dovresti semplicemente implementare ciò di cui hai effettivamente bisogno. –

3

@Marcel Karaf non è monolitico o enorme come un server Java EE. È un'implementazione molto sottile e minimalista. Si tratta di un prodotto di base senza molte funzionalità diverse da una console di base, il caricamento dei file in modo da poter effettivamente leggere i file di configurazione, ecc. L'ultimo file zip di esso è 19.1 MB. Si. Piccolo. Può funzionare facilmente su dispositivi di piccole dimensioni e lavorare in embedded.

Quello che stai pensando è qualcosa di più come ServiceMix che usa Karaf come core/kernel. Ma include CXF, ActiveMQ, Camel e altre librerie nella sua configurazione completa. Anche allora hanno dimensioni minime, medie e piene.

In realtà, per il 99% dei progetti là fuori non avrebbe senso iniziare direttamente con Felix e non utilizzare Karaf.

-1

Attualmente, ci sono tre popolari open source contenitori OSGi:

- Equinox. It is the modular Java runtime at the heart of the Eclipse IDE, 
    - Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications. 
    - Apache Felix. Is the open source OSGi container from the Apache Software Foundation. 

http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

Il progetto Apache mantiene un contenitore OSGi generico chiamato Felix. Qui viene utilizzato come ServiceMix e

La differenza principale tra i ServiceMix e Karaf è che ServiceMix impacchetta un mucchio di altri componenti di integrazione - ActiveMQ broker di messaggi, il motore di routing Camel, e alcune altre cose

Secondo: http://kevinboone.net/osgitest.html

Problemi correlati