OSGi: Які відмінності між Apache Felix та Apache Karaf?


131

Apache Karaf - це підпроект Apache Felix . Він визначається як "легкий контейнер OSGi".

Я не розумію, коли слід використовувати важку вагу і коли використовувати легку вагу. Їх сайт не пояснює це занадто багато.

Відповіді:


209

Етикетка «Легкий контейнер OSGi» контрастує з Карафом з більш багатими функціями контейнерами OSGi, а не з Felix .

Цитувати Гійома Нодета (автора Карафа) звідси :

Фелікс - це просто основний час роботи OSGi. Karaf забезпечує "розподіл" на основі Felix, додаючи інші функції, такі як консоль, механізм видалення SSH, розгортач файлів тощо.

На цій схемі архітектури Карафа Фелікс (або інша реалізація OSGi - наразі також підтримується Equinox ) - це поле OSGi, інші поля - функції, додані Карафом:

Караф архітектура Тому, якщо у вас немає конкретних потреб, які не задовольняються Карафом (вимагає доступу до базової реалізації), зазвичай має сенс використовувати це, оскільки це забезпечує більше "поза коробкою".


5
Одна приємна особливість будь-якого контейнера OSGi полягає в тому, що ви можете вибрати лише необхідні пакети та розгорнути їх у свій контейнер. Тому моя порада буде спочатку створити свою програму, а потім вибрати те, що вам потрібно. Порада "просто встановити всю платформу, оскільки вона багата на функції", трохи схожа на повернення до величезних серверів додатків Java EE. Зараз я не кажу, що Apache Karaf є де-небудь настільки великим, як ті, я просто зазначаю, що ви можете і повинні просто розгорнути те, що вам потрібно.
Marcel Offermans

1
Мені здається, ця відповідь неповна, оскільки вона не згадує про випадки використання вбудовування Felix у додаток (без необхідності використання контейнера, такого як Karaf) - наприклад, для забезпечення можливості плагіна - що таке моя інтерпретація наступне посилання. Я помиляюся? (Я не експерт.) Посилання: felix.apache.org/documentation/subprojects/…
J Woodchuck

6

@Marcel Karaf не є монолітним або величезним, як сервер Java EE. Це дуже тонка і мінімалістична реалізація. Це основний продукт без особливих функціональних можливостей, крім основної консолі, завантаження файлів, щоб ви могли фактично читати конфігураційні файли тощо. Найновіший ZIP-файл - 19,1 Мб. Так. Маленький. Він може легко працювати на невеликих пристроях і працювати у вбудованих.

Ви можете думати про щось подібне до ServiceMix, який використовує Karaf як ядро ​​/ ядро. Але він включає CXF, ActiveMQ, Camel та інші бібліотеки у повній його конфігурації. Навіть тоді вони мають мінімальні, середні та повні розміри.

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


-1

В даний час є три популярні контейнери з відкритим кодом 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.