web-dev-qa-db-fra.com

OSGi: Quelles sont les différences entre Apache Felix et Apache Karaf?

Apache Karaf est un sous-projet de Apache Felix . Il est défini comme "un conteneur OSGi léger".

Je ne comprends pas quand dois-je utiliser le poids lourd et quand utiliser le poids léger. Leur site n'explique pas trop cela.

122
GabiMe

L'étiquette 'conteneur OSGi léger' contraste Karaf avec des conteneurs OSGi plus riches en fonctionnalités, pas avec Felix .

Pour citer Guillaume Nodet (l'auteur de Karaf) d'ici :

Felix n'est que le cœur d'exécution OSGi. Karaf fournit une "distribution" basée sur Felix en ajoutant d'autres fonctionnalités telles qu'une console, un mécanisme d'accès distant SSH, un déployeur de fichiers et plus encore.

Dans ce schéma de l'architecture Karaf, Felix (ou une autre implémentation OSGi - actuellement Equinox est également pris en charge) est la boîte OSGi, les autres boîtes sont les fonctionnalités ajoutées par Karaf:

Karaf Architecture Par conséquent, à moins que vous ayez des besoins spécifiques qui ne sont pas satisfaits par Karaf (nécessitant un accès à l'implémentation sous-jacente), il est généralement judicieux de l'utiliser car il fournit plus de `` prêt à l'emploi ''.

204
Matthew Murdoch

@Marcel Karaf n'est pas monolithique ou énorme comme un serveur Java EE. C'est une implémentation très mince et minimaliste. C'est un produit de base sans beaucoup de fonctionnalités autres qu'une console de base, le chargement de fichiers donc que vous pouvez réellement lire les fichiers de configuration, etc. Le dernier fichier Zip est de 19,1 Mo. Oui. Petit. Il peut facilement fonctionner sur de petits appareils et fonctionner en mode embarqué.

Ce à quoi vous pensez peut-être quelque chose de plus comme ServiceMix qui utilise Karaf comme noyau/noyau. Mais il inclut CXF, ActiveMQ, Camel et d'autres bibliothèques dans sa configuration complète. Même alors, ils ont des tailles minimales, moyennes et complètes.

Vraiment, pour 99% des projets, il ne serait pas logique de commencer directement avec Felix et de ne pas utiliser Karaf à la place.

5
Ranx0r0x