terminology osgi

terminology - ¿Qué es OSGi y cuáles son algunos ejemplos de su uso?



(2)

Acabo de comenzar a escuchar el término OSGi (mientras leía los tutoriales en contenedores comunes de Java EE como GlassFish y Spring), sin embargo, no he podido encontrar una explicación simple, directa y fácil de entender de lo que OSGi Es que un novato de empresa como yo lo entendería.

¿Puede alguien proporcionar una explicación tan falsa? Tal vez con algunos ejemplos o incluso extractos de código?

¡Gracias!


A expensas de algunos votos a la baja ;-), me gustaría responder esto con mis propias palabras (para que pueda ser corregido en mi entendimiento).

Construimos aplicaciones como un conjunto de módulos, cada módulo funcionalmente cohesivo dentro de sí mismo y acoplado libremente con otros módulos. Esto tiene muchas ventajas como ya sabrás. A lo largo del tiempo, la unidad de modularidad ha mejorado de funciones a clases y paquetes a una unidad de implementación (como jar en Java y Assembly en .Net). Pero todo esto es solo durante el tiempo de desarrollo, una vez que se implementa la aplicación (que es un conjunto de módulos), el servidor todavía la ve como una aplicación monolítica gigante, es decir, los límites lógicos no se conservan durante el tiempo de ejecución. OSGi hace que estos límites sean explícitos durante el desarrollo, así como el tiempo de ejecución, aparte de otros beneficios descritos aquí

Le sugiero este excelente libro gratuito para que comience OSGi en la práctica.

Si trabaja en la plataforma Java, también revise esta presentación: ¿Por qué se han basado las especificaciones de OSGi en la tecnología Java ™?


En pocas palabras, OSGi es un sistema dinámico de módulos para Java. Define los medios para instalar, desinstalar, actualizar, iniciar y detener módulos. Esos módulos se denominan paquetes, pero son, en su forma más simple, en realidad archivos Java con un Manifest especial. Los módulos se pueden instalar, desinstalar, etc. sin detener o reiniciar la máquina virtual Java.

Un marco OSGi gestiona el ciclo de vida y las dependencias descritas entre los paquetes de forma segura. Un paquete debe indicar qué paquetes Java exporta y qué importa. Las declaraciones de importación y exportación se pueden anotar con información de la versión, de modo que incluso puede tener más de una versión del mismo paquete en la misma máquina virtual de Java.

OSGi Alliance es la organización que especifica el marco OSGi y muchos servicios que lo acompañan, por ejemplo, para administrar datos de configuración, acceso a dispositivos, etc.

Esto es solo una descripción muy básica. OSGi es mucho más. Visite https://www.osgi.org/developer/architecture/ (una introducción a la arquitectura de OSGi) y https://www.osgi.org/developer/where-to-start/ (muchos enlaces) y otras lecturas recomendadas por la Alianza OSGi).