OSGi: Каковы различия между Apache Felix и Apache Karaf?

Apache Karaf является подпроектом Apache Felix, Он определяется как "легкий контейнер OSGi".

Я не понимаю, когда следует использовать тяжеловес и когда использовать легкий вес. Их сайт не слишком объясняет это.

Ответ 1

"Легкий контейнер OSGi container" контрастирует Karaf с более богатыми функциональностью контейнерами OSGi, не с Felix.

Процитировать Guillaume Nodet (автор Karaf) отсюда:

Felix - это только основное время работы OSGi. Karaf предоставляет "дистрибутив" на основе Felix, добавляя другие функции, такие как консоль, механизм удаленного доступа SSH, средство развертывания файлов и многое другое.

На этой диаграмме архитектуры Karaf Felix (или другая реализация OSGi - в настоящее время Equinox также поддерживается) - это поле OSGi, другие ящики - это функции, добавленные Karaf:

Karaf Architecture Поэтому, если у вас нет особых потребностей, которые не удовлетворяются Karaf (требуя доступа к основной реализации), обычно имеет смысл использовать это, поскольку он предоставляет больше "из коробки".

Ответ 2

@Marcel Karaf не является монолитным или огромным, как сервер Java EE. Это очень тонкая и минималистическая реализация. Это основной продукт без большой функциональности, отличной от базовой консоли, загрузки файлов, чтобы вы могли читать файлы конфигурации и т.д. Последний zip файл - 19,1 МБ. Да. Маленький. Он может легко работать на небольших устройствах и работать во встроенных системах.

То, о чем вы, возможно, думаете, больше похоже на ServiceMix, который использует Karaf как ядро ​​/ядро. Но он включает CXF, ActiveMQ, Camel и другие библиотеки в полной конфигурации. Даже тогда они имеют минимальные, средние и полные размеры.

Действительно, для 99% проектов там было бы бессмысленно начинать прямо с Феликса и вместо этого использовать Карафа.

Ответ 3

В настоящее время существуют три популярных контейнера 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

Проект Apache поддерживает контейнер OSGi общего назначения под названием Felix. Здесь используется как ServiceMix и

Основное различие между ServiceMix и Karaf заключается в том, что ServiceMix объединяет множество других компонентов интеграции - ActiveMQ брокером сообщений, движком маршрутизации Camel и некоторыми другими вещами

В соответствии с: http://kevinboone.net/osgitest.html