Desarrollo Plugins

¿Que es OSGI ?

OSGi es una de las tecnologías de software distribuido que más impacto está causando últimamente. Prueba de ello es que proyectos open source tan populares como Eclipse o la framework de aplicaciones empresariales Java EE Spring han adoptado esta tecnología como base de sus productos. La razón principal para ello es que OSGi define una infraestructura extremadamente eficiente para el desarrollo de aplicaciones basadas en servicios (SOA) dentro de una máquina virtual Java (JVM). Su principal misión es reducir la complejidad de construir, mantener, desplegar y gestionar el ciclo de vida de aplicaciones en cualquier tipo de dispositivo computacional.

La plataforma de servicios OSGi es una tecnología que aporta modularidad dinámica a Java y responde a la necesidad de estandarizar la integración de software. Mediante OSGi, Java se convierte en un entorno idóneo para afrontar tanto la integración como el desarrollo de software. Mientras Java proporciona la portabilidad requerida para soportar productos en diferentes plataformas, OSGi facilita las primitivas estándar para construir aplicaciones a partir de pequeños componentes reutilizables y cooperativos. Para OSGi, un componente software es una librería o aplicación que puede ser dinámicamente descubierta y usada por otros componentes.

La incorporación de la tecnología OSGi a un dispositivo en red (bien empotrado o en forma de servidor) le aporta la capacidad de gestionar el ciclo de vida de sus componentes de software y permite la composición dinámica de aplicaciones dentro de él desde cualquier otro punto de la red. Gracias a OSGi, los componentes software pueden ser instalados, actualizados o eliminados sobre la marcha, sin tener que interrumpir la operación del dispositivo o servidor. Además, OSGi añade únicamente una ligera capa de software que es adecuada incluso para su despliegue y uso en la gestión de componentes software en dispositivos empotrados. Eso explica que este estándar no solamente prometa como una gran tecnología para mejorar los servidores de aplicaciones Java actuales sino que sea actualmente utilizada en sectores tan dispares como la automoción, domótica o los dispositivos móviles. Los atributos de su elegante especificación lo han hecho atractivo y aplicable a diversos mercados. Por ejemplo, Nokia y Motorota han propuesto una nueva arquitectura software basada en OSGi para los teléfonos inteligentes de la próxima generación. La industria del automóvil ha adoptado también OSGi. Esta plataforma de servicios es parte integral de la plataforma de comunicaciones de BMW en la serie 5. Incluso algunos productos de electrónica como Philips iPronto, Nokia N800 y E70, la unidad de almacenamiento en red Linksys NSLU2 empiezan a incorporar OSGi

Desafortunadamente, OSGi es una tecnología que a pesar de existir desde 1999 no ha contando con gran popularidad entre los desarrolladores de sistemas distribuidos y aplicaciones web basadas en Java hasta hace poco. Sin embargo, esto está cambiando radicalmente en los últimos meses debido a que son muchos los expertos que se han dado cuenta de la idoneidad de OSGi para constituir la base de las próximas versiones de servidores de aplicaciones Java. Prueba de este interés es que frameworks Java como Eclipse y Spring ya están basadas en él, mientras que Apache e IBM ya han preparado también versiones de sus servidores de aplicaciones Java EE (Felix y WebSphere, respectivamente) siguiendo la filosofía OSGi y otros como JBoss planean hacerlo a corto plazo.

Acerca del Autor

Pablo Valdivia

Pentaho Architect | Senior Software Engineer - QA at WSO2, Backend & Cloud engineer | AWS-SAA® | Azure Developer | Data Science | Business Analytics, Big Data Specialist | Consultor SAP, IDempiere & Odoo ERP

Agregar Comentario

Click aquí para comentar el post