2009-10-23 13 views

Antwort

194

Das Label Karaf 'leichte OSGi-Container' mit reichem OSGi-Containern, nicht mit mehr Funktion Felix kontrastiert.

Um Guillaume Nodet (Karaf des Autors) from here zu zitieren:

Felix nur der OSGi Kernlaufzeit ist. Karaf bietet eine "Distribution" basierend auf Felix, indem er weitere Funktionen wie eine Konsole, einen SSH-Remoting-Mechanismus, einen Datei-Deployer und mehr hinzufügt.

In diesem Diagramm der Karaf Architektur, Felix (oder eine andere Implementierung OSGi - derzeit Equinox wird ebenfalls unterstützt) die OSGi-Box ist, sind die anderen Felder der durch Karaf zusätzlichen Features:

Karaf Architecture Daher es sei denn, Sie haben spezielle Bedürfnisse, die von Karaf nicht erfüllt werden (Zugriff auf die zugrunde liegende Implementierung erforderlich), ist es normalerweise sinnvoll, dies zu verwenden, da es mehr 'out of the box' bietet.

+2

Danke. Das löscht die Verwirrung :) – GabiMe

+0

Danke, tolle und saubere Erklärung. – eduardohl

+4

Ein nettes Feature eines OSGi-Containers ist, dass Sie nur die benötigten Pakete auswählen und in Ihrem Container bereitstellen können. Mein Rat wäre also, zuerst Ihre Anwendung zu entwerfen und dann auszuwählen, was Sie brauchen. Der Ratschlag, "einfach die gesamte Plattform zu installieren, weil sie funktionsreich ist", klingt ein bisschen so, als würde man zu den riesigen Java EE-Anwendungsservern zurückkehren. Jetzt sage ich nicht, dass Apache Karaf annähernd so groß ist wie diese, ich möchte nur betonen, dass Sie nur das einsetzen können und sollten, was Sie wirklich brauchen. –

3

@Marcel Karaf ist nicht monolithisch oder riesig wie ein Java EE-Server. Es ist eine sehr schlanke und minimalistische Implementierung. Es ist ein Kernprodukt ohne viel Funktionalität außer einer einfachen Konsole, dem Laden von Dateien, so dass Sie Konfigurationsdateien lesen können, usw. Die neueste Zip-Datei davon ist 19,1 MB. Ja. Klein. Es kann leicht auf kleinen Geräten laufen und in Embedded arbeiten.

Was Sie vielleicht denken, ist etwas wie ServiceMix, die Karaf als Kern/Kernel verwendet. Aber es enthält CXF, ActiveMQ, Camel und andere Bibliotheken in seiner vollständigen Konfiguration. Selbst dann haben sie minimale, mittlere und volle Größen.

Wirklich, für 99% der Projekte würde es keinen Sinn machen direkt mit Felix anzufangen und stattdessen Karaf zu benutzen.

-1

Derzeit gibt es drei beliebte OSGi Open-Source-Behälter:

- 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

Das Projekt Apache hält ein OSGi-Container für allgemeine Zwecke genannt Felix. Hier als ServiceMix und

verwendet

Der Hauptunterschied zwischen den ServiceMix und Karaf ist, dass ServiceMix bündelt eine Reihe von anderen Integrationskomponenten - ActiveMQ Message-Broker, die Camel-Routing-Engine und ein paar andere Dinge

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