Categoría:OSGI

De ChuWiki

OSGI es una especificación para el desarrollo de aplicaciones modulares en java. La implementación más conocida es equinox, de la gente de eclipse

Al intentar hacer aplicaciones modulares en java, java se queda corto. Aparte de la posibilidad de repartir las clases en paquetes y de ocultar información con los private y los protected, poco más puede hacer. Cuando las aplicaciones crecen y se necesita una modularidad realmente importante y en serio, se puede requerir cosas como:

  • Que los módulos puedan cargarse o descargarse en caliente, sin parar la aplicación.
  • Que los módulos realmente no se vean entre ellos, de forma que no hay conflicto entre clases de uno y otro, o entre las dependencias de uno y otro. Por ejemplo, si el módulo1 depende de log4j 1.12 y el módulo2 depende de log4j 1.15, en java estándar habría problemas, que con OSGI no.
  • Que en una misma aplicación puedan coexisistir dos versiones del mismo módulo, sin necesidad de renombrar todos los paquetes para evitar conflictos de clases.

Todo esto lo resuelve OSGI, básicamente hacinendo que cada módulo tenga su propio classloader, de forma que lo que ve ese módulo no tiene nada que ver con lo que ve otro módulo. Si quremos que los módulos compartan clases, uno de ellos tiene que indicar explicitamente qué paquetes exporta para que sean visibles por otros módulos, y el otro módulo tiene que indicar qué paquetes quiere ver de qué módulos y versiones.

Páginas en la categoría «OSGI»

Las siguientes 7 páginas pertenecen a esta categoría, de un total de 7.