2012-01-23 9 views
15

Estoy buscando maneras de implementar y actualizar una aplicación OSGI (específicamente Karaf). Parece que hay varias opciones. Una es usar el repositorio OSGi Bundle Repository (OBR), otra es usar funciones en Karaf, y la tercera es usar Karaf Cave.Cuál es la diferencia entre las características en Karaf y OBR

No estoy muy seguro de cómo estas opciones son realmente diferentes. Todos parecen estar haciendo las mismas cosas. ¿Son simplemente implementaciones diferentes de la misma funcionalidad? ¿Podría alguien explicar las diferencias o proporcionar algunas recomendaciones?

Respuesta

38

Las características de Karaf y OBR son diferentes formas de resolver el (tipo de) mismo problema. Ambos le permiten instalar paquetes OSGi en un marco OSGi, pero la forma en que deciden qué paquetes instalar es diferente.

Con la función Karaf, proporciona un archivo (feature.xml, por ejemplo) que enumera explícitamente las URL de todos los paquetes de la función. Pueden vivir en el sistema de archivos, en un repositorio maven o en cualquier otro lugar que pueda describirse mediante una URL.

OBR, por otro lado, resuelve qué paquetes resolver en función de los requisitos y las capacidades. Resolverá las dependencias transitivas de lo que sea que esté instalando como punto de partida y se asegurará de que todas estén instaladas. Por lo general, debe configurar uno o más repositorios externos que admitan el formato OBR, y luego un sistema de resolución OBR en su tiempo de ejecución proporcionará paquetes desde esos repositorios. Entonces puede decir "Necesito el paquete org.foo" o "Necesito un servicio OSGi que implemente org.bar" y el proveedor decidirá qué paquetes se adaptan mejor a sus necesidades. OBR es más flexible y genérico que las características de Karaf, pero podría ser excesivo si solo está instalando un conjunto bien definido de paquetes en un marco que ya está preparado con la infraestructura que necesita. Tampoco lo ayuda si los paquetes que conforman su aplicación no tienen dependencias entre sí, igual tendrá que incluirlos en su "conjunto inicial".

La distinción se vuelve un poco borrosa, porque las características de Karaf le permiten especificar rangos de versión en las URLs maven, por lo que incluso con una función puede ser un poco flexible en lo que se aprovisiona. Las características de Karaf también tienen una interoperabilidad con OBR para que pueda escribir su archivo de definición de características en términos de requisitos de OBR.

Creo que Karaf Cave es una implementación de OBR con algunas características. Por lo tanto, es un servidor en lugar de una nueva 'tecnología', como características o aprovisionamiento de OBR.

- Empresa OSGi en Acción: http://www.manning.com/cummins

+2

auto-publicidad de la manera correcta;) buena respuesta, gracias! – Kjellski

+0

"pero podría ser exagerado si solo está instalando un conjunto bien definido de paquetes en un marco que ya está preparado con la infraestructura que necesita" Busqué en exceso obr en Google y me llevó a este artículo ... tal vez algún día , pero no todavía :) – sloven

Cuestiones relacionadas