what technology source que org open camel osgi apache-karaf apache-servicemix

osgi - technology - servicemix que es



Apache Karaf vs. Servicemix (4)

¿Alguien usa Karaf en lugar de Servicemix? Si es así, ¿cómo llegó a esta decisión? Soy consciente de que Servicemix agrega una capa de funcionalidad alrededor de Karaf, solo por curiosidad si Karaf se está usando por sí solo y por qué


Aquí hay una pequeña ilustración comparativa que hice. Pasando del caso más simple (JVM con funciones OSGi proporcionadas por Apache Felix en la parte inferior), a funciones OSGi más completas / manejables ( Apache Karaf en el medio), a suficientes funciones para implementar instancias completas de ESB ( Apache ServiceMix en la parte superior) ( tenga en cuenta que "un ESB" no es un producto, sino un conjunto de puntos finales, enrutadores, bases de datos, funciones ETL y otras cosas que se configuran juntas de una manera particular específica de la tarea).


Estamos usando Karaf para algunas de nuestras aplicaciones. Ya estábamos usando Camel (JMS y Esper) para la integración entre varias plataformas diferentes (una instancia de JBoss 4.2, una de Tomcat y varias de Felix) y, como esto funcionaba bien, había poca justificación para migrar esto (lo que habría sido una causa para considere ServiceMix).

La única razón por la que tenemos algunos nodos de Felix es que su uso es limitado (en los escritorios de los clientes), rara vez se necesitan / actualizan y quería la huella más pequeña para estos nodos. Para cualquier cosa OSGi en el servidor, estamos usando Karaf.

Karaf proporciona todas las funciones que esperaría y necesitaría para un entorno de producción (consulte la información de la etiqueta apache-karaf ). Hacemos nuestro desarrollo y pruebas contra el marco mínimo estándar (usando pax-exam) pero implementamos en Karaf.

Si no necesita un ESB, JCA, BPEL, etc. pero desea un contenedor OSGi sólido y ajustable, entonces Karaf por sí solo es más que adecuado. (Y si necesita un subconjunto limitado de la funcionalidad de ServiceMix, siempre puede instalarlos en una instancia de Karaf).

También puede personalizar la distribución de Karaf como parte de una compilación maven. Personalmente, me gusta tener el contenedor como parte de la compilación de la aplicación, ya que puedo verificar, compilar y ejecutar la configuración completa desde la línea de comandos en un tiempo mínimo.

Recientemente, hay un subproyecto de agrupación en clúster de Karaf llamado Cellar utiliza HazelCast, no estoy seguro de si esto se aplica también a ServiceMix.


Karaf NO viene con CXF.

Su núcleo puro extraído de ServiceMix. Sin embargo, puede instalar CXF en Karaf como se muestra a continuación.

karaf: root ()> feature: repo: add cxf

Una vez que se agrega la URL de la función, podemos ver las características "proporcionadas" mediante el siguiente comando.

karaf: root ()> feature: repo: feature: list | grep cxf

Para instalar cxf dispara el siguiente comando

karaf: root ()> característica: instalar cxf


La vida de Karaf comenzó como el núcleo de ServiceMix. Actualmente, ServiceMix es realmente un conjunto de paquetes que se implementan en un contenedor Karaf. ServiceMix tiene una serie de paquetes muy útiles que hacen muchas cosas geniales que karaf no hace. Dicho esto, la razón principal para usar ServiceMix es si desea: 1) un ESB, 2) NMR (una característica que le permite crear comunidades entre paquetes Y instancias de Karaf).

Dicho esto, el grupo ServiceMix está actualmente planeando la versión 5, que eliminará las funciones de ESB y RMN y se centrará en ser un contenedor de gestión para Camel. En ESB se requiere mucho esfuerzo para crear componentes que puedan describirse utilizando BPL (Business Process Language). Sin embargo, la gente que escribió ServiceMix comenzó a centrarse en la implementación de EIP (Enterprise Integration Patterns), que en gran medida hace lo mismo que BPL, pero lo hace de una manera más estandarizada y aceptada. Este trabajo se realizó bajo el proyecto Camel.

Así que, en definitiva. Si está utilizando ServiceMix 4+, también está utilizando Karaf. Si desea un entorno de integración más robusto, el entorno elegido hoy (al menos en el mundo de Apache / Felix) es Karaf, Camel y algunos paquetes de Servicemix.