Plugins What's new

Historia y Arquitectura Modular en IDempiere (OSGI)

Carlos Ruiz, Co-Fundador del proyecto IDempiere, nos habla sobre los inicios del proyecto, sus predecesores tecnológicos, y la visión de contar con una arquitectura distribuida o modular basada en plugins que permitiera centrar esfuerzos en contar con un núcleo estable

En el 2014, en un evento organizado por ACIS (Asociación Colombiana de Ingenieros de Sistemas), Carlos Ruiz nos habla de como, junto a Heng Sin, ambos fundadores del proyecto IDempiere, logran sentar los cimientos de lo que hoy es la arquitectura de la plataforma de software IDempiere, cuya visión de ambos consistía en lograr separar o desacoplar el núcleo de la plataforma de todas y cada una de las funcionalidades de negocio o de gestión administrativa existentes, así como de aquellas nuevas funcionalidades de negocio que se pudiesen crear en adelante, de esta forma lo que se buscaba era contar con un núcleo independiente, que potenciado por su Diccionario Activo o Diccionario de la Aplicación sirviese de marco de trabajo (framework) para la construcción rápida de módulo(s) de cualquier tipo y que estos módulos pudiesen estar desacoplados a través de plugins (componentes) capaces de ser instalados y desinstalados con facilidad sin alterar o desestabilizar el núcleo de la plataforma ERP.

OSGI  (el sistema de módulos dinámicos para Java)

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).

Para OSGi, un componente software es una librería o aplicación que puede ser dinámicamente descubierta y usada por otros componentes.En el caso de IDempiere, los plugins (componentes) formarían parte de los Bundles.

OSGi permite la gestión dinámica de paquetes. Esta dinamicidad solo atañe a las clases y no implica la gestión dinámica de las aplicaciones. Como remedio, un paquete expone sus funciones (servicios) a los otros paquetes y, a la inversa, puede usar funciones (servicios) ofrecidos por los otros paquetes. Las funciones están relacionadas con el nivel de instancia: corresponden a clases en ejecución., puedes conocer un poco más aquí

Apache Felix Console

Apache Felix Web Console es una herramienta simple para inspeccionar y administrar instancias del framework OSGi utilizando su navegador web favorito.

En el caso puntual de IDempiere nos permite añadir, actualizar, eliminar, detener, resetear, etc plugins o módulos desarrollados en el ERP, puedes encontrar mayor información en el siguiente artículo

Leer más: Historia y Arquitectura Modular en IDempiere (OSGI)

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