El marco OSGi (iniciativa Open Services Gateway) proporciona una arquitectura modular dinámica que se ha utilizado en muchas aplicaciones como Eclipse Equinox, Apache Felix, etc. Comprender cómo funciona el marco OSGi es útil para desarrollar complementos de Eclipse y muchas otras aplicaciones de molecularidad. En este artículo, se explica la descripción general de alto nivel de la arquitectura.
La arquitectura del marco OSGi consta de tres capas conceptuales. Cada capa depende de la (s) capa (s) debajo de ella. El siguiente diagrama describe la descripción general de cada capa.
Capa de módulo
La capa de módulo define el concepto de módulo OSGi: paquete, que es un archivo JAR con metadatos adicionales. Un paquete contiene archivos de clase y recursos relacionados, como imágenes, archivos xml.
A través del archivo de metadatos manifest.mf, la capa de módulo declara qué paquetes contenidos en el archivo JAR son visibles desde el exterior y declara de qué paquetes externos depende el paquete.
Algunos ejemplos de metadatos:
Paquete de exportación: com.programcreek.helloexport
Declara qué paquetes son visibles para los usuarios.
Paquete de importación: com.programcreek.helloimport
Declara cuándo se requieren paquetes externos.
Capa de ciclo de vida
Esta capa define cómo se instalan y administran dinámicamente los paquetes en el marco OSGi. Proporciona una forma para que un paquete obtenga acceso al marco OSGi subyacente.
Si OSGi fuera un automóvil, la capa de módulos proporcionaría módulos como llantas, asientos, etc., y la capa de ciclo de vida proporcionaría el cableado eléctrico que hace que el automóvil funcione.
Capa de servicio
En esta capa, los proveedores de servicios publican servicios en el registro de servicios, mientras que los clientes de servicios buscan en el registro los servicios disponibles para usar.
Esto es como una arquitectura orientada a servicios (SOA) que se ha utilizado ampliamente en servicios web. Aquí los servicios OSGi son locales para una sola máquina virtual, por lo que a veces se llama SOA en una máquina virtual.
* Parte del contenido es del libro «OSGi en acción».