Fusible JBoss - Apache Karaf

En este capítulo, discutiremos sobre Apache Karaf y por qué se llama un contenedor OSGi ligero junto con sus beneficios y otras características importantes.

El problema de JVM

La máquina virtual JVM o Java no actúa como una máquina virtual real. Una máquina que le permitirá detener, iniciar o reiniciar los componentes que se ejecutan en su interior sobre la marcha. A veces puede permitir implementaciones en caliente a nivel de clase, pero no hay forma de que pueda implementar o anular la implementación de un componente de su aplicación en su máquina virtual sin reiniciarla.

Para resolver este problema y permitir la modularidad en la aplicación Java, Fuse utiliza un tiempo de ejecución basado en OSGi conocido como Apache Karaf.

OSGi

La tecnología OSGi es un conjunto de especificaciones que definen un sistema de componentes dinámicos para java. Estas especificaciones permiten un modelo de desarrollo en el que las aplicaciones están compuestas (dinámicamente) de muchos componentes diferentes (reutilizables).

Beneficios de OSGi

  • Reduced Complexity - La aplicación se construye como componentes de colaboración que ocultan los detalles de su implementación entre sí, lo que reduce la complejidad.

  • Reusability - Muchos componentes pueden aprovechar el mismo componente implementado en un contenedor.

  • Deployment - OSGi proporciona soporte para iniciar, detener y actualizar componentes sobre la marcha con sus API de administración del ciclo de vida sin reiniciar el contenedor.

Paquetes Vs Características

A continuación se muestra la comparación entre paquetes y características.

manojos

Los paquetes son equivalentes a OSGi, lo que los archivos jar a JVM. Los paquetes son artefactos que se pueden implementar en un contenedor OSGi. Los paquetes son componentes que trabajan juntos o independientemente para formar una aplicación.

Estos paquetes se pueden instalar, desinstalar, actualizar, iniciar o detener en tiempo de ejecución sin reiniciar el contenedor.

Caracteristicas

Las funciones son una forma de implementar varios paquetes juntos. A veces tiene más sentido implementar paquetes en grupo. Las características nos permiten implementar un grupo de paquetes con un solo comando.

¿Por qué otro contenedor?

Apache Karaf es un tiempo de ejecución basado en OSGi, es donde se ejecutan nuestros paquetes de aplicaciones. Fuse usa Apache Karaf como su tiempo de ejecución en el que los paquetes se ejecutan y colaboran para proporcionar funcionalidad comercial.

Karaf se basa en Felix y equinoccio, que son marcos OSGi.

Arquitectura Karaf

Apache Karaf agrega las siguientes funcionalidades adicionales al tiempo de ejecución básico de OSGi.

Implementación en caliente

Karaf admite la implementación en caliente. Contiene un directorio de implementación en caliente. Todo lo que se coloca en este directorio se implementa e instala automáticamente en Karaf como un paquete.

Inicio sesión

Karaf proporciona un registro centralizado mediante la generación de registros para todos los paquetes en $Fuse_home/data/log. Podemos editar la configuración del registrador enorg.ops4j.pax.logging.cfg en $Fuse_home/etc directory.

Consola de administración

Karaf proporciona una consola de administración lúcida y sofisticada para interactuar con la instancia en ejecución de fuse. También proporciona un conjunto de comandos preinstalados que se pueden usar para administrar y monitorear componentes (Bundle) en tiempo de ejecución. Esta consola es extensible por lo que nos permite agregar nuevos comandos a la consola agregando nuevos paquetes a la consola.

Acceso SSH

Karaf permite el acceso remoto a esta consola de administración con SSH. Cualquiera con credenciales válidas puede conectarse a la consola de administración de karaf a través del terminal SSH.