OSGi: Quali sono le differenze tra Apache Felix e Apache Karaf?


Risposte:


209

L'etichetta "contenitore OSGi leggero" contrappone Karaf con altri contenitori OSGi ricchi di funzionalità, non con Felix .

Per citare Guillaume Nodet (autore di Karaf) da qui :

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

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

Architettura di Karaf 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 utilizzarlo poiché fornisce più "out of the box".


5
Una caratteristica interessante di ogni container OSGi è che puoi selezionare solo i bundle di cui hai bisogno e distribuirli nel tuo container. Quindi il mio consiglio sarebbe di progettare prima l'applicazione, 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 è grande quanto quelle, sto solo sottolineando che puoi e dovresti semplicemente implementare ciò di cui hai effettivamente bisogno.
Marcel Offermans,

1
Mi sembra che questa risposta sia incompleta in quanto non menziona il caso d'uso di incorporare Felix in un'applicazione (senza la necessità di utilizzare un contenitore come Karaf) - ad esempio per fornire funzionalità di plug-in - che è la mia interpretazione del seguente link. Ho sbagliato? (Non sono un esperto.) Link: felix.apache.org/documentation/subprojects/…
J Woodchuck

6

@Marcel Karaf non è monolitico o enorme come un server Java EE. È un'implementazione molto sottile e minimalista. È 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ò essere facilmente eseguito su piccoli dispositivi e funziona in modalità embedded.

Quello a cui potresti pensare è qualcosa di più simile a 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 complete.

Davvero, per il 99% dei progetti là fuori non avrebbe senso iniziare direttamente con Felix e non usare invece Karaf.


-1

Attualmente, ci sono tre popolari contenitori OSGi open source:

  - 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 è usato come ServiceMix e

La differenza principale tra ServiceMix e Karaf è che ServiceMix raggruppa un sacco di altri componenti di integrazione: broker di messaggi ActiveMQ, motore di routing Camel e altre cose

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.