LedgerSMB es un sistema de contabilidad por partida doble en software libre. Los datos contables son almacenados en un servidor de base de datos SQL y un navegador web estándar puede ser usado como su interfaz de usuario. El sistema utiliza el lenguaje Perl y un módulo de interface de base de datos Perl para el procesamiento, y a PostgreSQL para el almacenamiento de datos.

LedgerSMB
Información general
Tipo de programa Planificación de recursos empresariales, Contabilidad-
Desarrollador Diversos desarrolladores
Lanzamiento inicial 06 de septiembre de 2006 (17 años, 7 meses y 14 días)
Licencia GPL
Información técnica
Programado en Perl
Versiones
Última versión estable 1.11.12 ( 09 de abril de 2024 (11 días))
Enlaces

LedgerSMB es distribuido bajo los términos de la GNU General Public License.

Historia editar

LedgerSMB comenzó como una bifurcación (fork) del SQL-Ledger. Sin embargo, se ha bifurcado rápidamente y la futura arquitectura tiene muy poco que ver con su ascendencia.

La controversia de la bifurcación editar

El proyecto comenzó cuando Chris Travers, descontento con el manejo de los errores (bug) de seguridad en el SQL-Ledger, asociado con Christopher Murtagh para producir un parche para el CVE-2006-4244.[1]​ Este fue aparentemente reportado al autor del SQL-Ledger, Dieter Simader, varios meses antes[2]​ a Chrises trabajando en un parche. El lanzamiento inicial de LedgerSMB tiene como su base al SQL-Ledger 2.6.16 con el parche para el CVE-2006-4244. Este lanzamiento, junto con el acceso completo del error en la lista de correo principal,[3]​ hizo tensas las relaciones entre los partidarios del SQL-Ledger y los miembros del naciente proyecto LedgerSMB.

La bifurcación del LedgerSMB es considerada por algunos[4]​ como parte de la razón de la cláusula anti bifurcación[5]​ en la licencia de breve duración SQL-Ledger Open Source License, la licencia que fue usada para el SQL-Ledger 2.8.0.

Próximos lanzamientos editar

El lanzamiento 1.1.0 combinó muchos parches que habían sido hechos para otros clientes pero no cambiaron la estructura del código de ninguna manera significativa. Para ese entonces, sin embargo, la mayor parte de los miembros principales estaban infelices con la arquitectura actual y habían decidido trabajar en refactorizar el código.

El lanzamiento 1.2.0 incluyó un número de profundas correcciones de seguridad y los principios del proceso de refactorización. Fueron centralizados el código de la matriz del impuesto y el precio. Este lanzamiento fue muy problemático y el equipo principal terminó quitando las versiones 1.2.0 y 1.2.1 de la distribución pública debido a un número de problemas en la integración con viejo y el nuevo código. Muchos miembros del equipo principal han expresado frustración al nivel de problemas, pero Chris Travers generalmente ha comparado los problemas a los de Apache 2.0,[6]​ donde los cambios en arquitectura han causado lanzamientos problemáticos. Mientras que puede ser demasiado pronto de decir, la esperanza general es que la versión 1.2.x será el lanzamiento más difícil y más problemático, quizás de todos.

Al mismo tiempo, no puede ser negado que un número de problemas en la versión 1.2.0 eran el resultado de intentar hacer demasiado, demasiado rápidamente, sin la revisión adecuada. Es difícil criticar el proyecto para esto en algunos casos (como la eliminación de los problemas de la inyección SQL) pero queda por ver si el proyecto puede continuar moviéndose adelante de tal manera de prevenir que esto sea un problema en el futuro.

Arquitectura futura editar

El base de código original del proyecto tenía un número de defectos. El código Perl generaba tanto solicitudes a la base de datos y páginas web por concatenación o por impresión del texto de modo que saliera como una página distinta. Aunque esto funcionaba razonablemente bien, también hizo a la interfaz muy difícil de modificar, y la interoperabilidad con los proyectos escritos en otros lenguajes era particularmente difícil.

De frente a estos desafíos, el equipo de LedgerSMB desarrolló una nueva arquitectura que aborda estos problemas agregando soporte a plantillas en la interfaz de usuario, y moviendo todas las llamadas a la base de datos a procedimientos almacenados. Aunque en estructura se asemeja estrechamente al Modelo Vista Controlador (MVC), no se divide en precisamente la misma manera que otras implementaciones MVC.[7]

La versión 1.3 moverá varias partes importantes del software a la nueva arquitectura incluyendo las interfaces de la gerencia del contacto y administrativa.

Referencias editar

  1. «The Full Disclosure of CVE-2006-4244». Consultado el 8 de julio de 2007. 
  2. «Tony Fraser's mention of previously reporting the bug». Consultado el 8 de julio de 2007. 
  3. «Full disclosure thread on the SQL-Ledger mailing list (some posts may be hidden)». Consultado el 8 de julio de 2007. 
  4. «Slashdot discussion of the SQL-Ledger licence change of 2.8.0». Consultado el 8 de julio de 2007. 
  5. «Linux Weekly News article about the licence change». Consultado el 8 de julio de 2007. 
  6. Travers, Chris (31 de mayo de 2007). «web-based accounting». Consultado el 25 de enero de 2008. 
  7. The New Architecture Overview

Enlaces externos editar