Para seleccionar la ERP a estudiar, primero se confeccionó una lista representativa de sistemas ERP Open/Free.
Muchos proyectos Open/Free se encuentran en el sitio SourceForge.net, por lo cual fue nuestra primera fuente de proyectos. Como se trata de proyectos Open/Free muchas veces las páginas de éstos incluyen referencias a otros similares o complementarios. Así confeccionamos una larga lista de software que se presentaba a sí mismo como ERP Open/Free o similar.
Para cada uno de estos paquetes se relevó la documentación en línea y se descartó aquellos que no cumplían con dos o más de los requerimientos básicos que se establecieron en el capítulo 2. Por ejemplo, se dejaron de lado los que no hayan liberado versiones estables.
Existen tres grandes categorías en las que se pueden clasificar los sistemas ERP, basados en las herramientas con las que están implementados. Mediante PHP o algún lenguaje de scripting, mediante Java, y mediante herramientas y tecnologias alternativas.
A continuación veremos algunos paquetes de software de cada categoría y la discusión sobre pros y contras. A propósito incluimos paquetes de software que fueron descartados para explicar las causas.
Cuenta con 9 módulos, esta escrito en PHP y corre sobre phpGroupWare. Provee funcionalidades de contabilidad para PyMEs y utiliza phpgw para administrar las cuentas contables. Actualmente este proyecto está continuado como CK-ERP.
Lenguaje |
PHP |
DBMS |
MySQL |
Licencia |
GPL |
Fecha de última versión |
Enero, 2005 |
Última versión |
V0.11.1 |
Sitio |
Comentario:
Es un ejemplo paradigmático de aplicaciones de contabilidad LAMP. Usan Apache como servidor web, MySQL como RDBMS, GNU/Linux como sistema operativo y PHP como lenguaje. Mediante PHP construyen un frontend que permite hacer consultas a bases de datos y desplegar los resultados en paginas web.
Tiene la ventaja de que basta un browser del lado del cliente para acceder a la aplicación. La instalación es trivial, de pocos minutos, y consiste en crear la base de datos y poblarla. En general, a estos sistemas los acompañan consultas en SQL que pueblan la BD automáticamente con datos de ejemplo. Además, en la página web suele haber un demo completamente funcional.
Son aplicaciones muy sencillas que de ERP tienen solamente el nombre y a veces la apariencia. Si bien PHP es adecuado para hacer consultas vía web, y MySQL se ha caracterizado por tiempos muy cortos para establecer conexiones (lo cual lo hace ideal para consultas a BD vía web) no es adecuado para desarrollar aplicaciones ERP porque no separa la capa de lógica de negocio de la capa de presentación.
Con PHP no se puede modelar una lógica de negocio compleja ni un manejo adecuado de control de transacciones: el código consiste en un conjunto de if-clauses anidados, asociados a los campos de la pantalla, y consultas SQL.
Respecto a la seguridad, la mayoría de estos sistemas trabajan con Apache y soportan mod_ssl and openssl.
Otras aplicaciones de este tipo son SQL Ledger, web-ERP, Nola, etc.
Es una ERP con CRM; por sus características excepcionales la elegimos como 2da. aplicación a estudiar.
Lenguaje |
Java |
DBMS |
Oracle, Sybase, Fyracle (Firebird),MaxDB, Daffodil |
Licencia |
CPL (basada en MPL) |
Fecha de última versión |
Febrero, 2005 |
Última versión |
V2.5.2 |
Sitio |
Comentario: ver capítulos 4, 5, y 6.
Distributed Enviroment for Administration. Reportada como la mejor ERP Open/Free disponible y que maneja gestión de ordenes, facturación, y presupuesto para grandes empresas, con una interfaz de usuario amigable y seguridad y funcionalidad de reportes.
Lenguaje |
? |
DBMS |
? |
Licencia |
? |
Fecha de última versión |
? |
Última versión |
? |
Sitio |
Comentario:
Desafortunadamente no pudimos encontrar los fuentes para bajarlos de ningún lado. Los links están muertos o no tienen los fuentes.
Lenguaje |
Python |
DBMS |
PostgreSQL, MySQL |
Licencia |
GPL |
Fecha de última versión |
Enero, 2005 |
Última versión |
|
Sitio |
Comentario:
Se llama así porque está basado en 5 conceptos1: recursos, nodos, movimientos, path, items. Este modelo es llamado el Universal Business model, porque es posible mapear a esos conceptos toda la información.
Estos conceptos sirven para modelar los procesos de negocio y a la vez permiten la metaplanificación, que es la posibilidad de planificar recursos con cualquier nivel de granularidad. Un meta-recurso o meta-nodo agrupa recursos u otros meta-recursos (como si fuera una superclase). Por ejemplo, planificar la venta de 10000 lamparitas de 25 watts a shoppings centers, o la venta de 10000 lamparitas de 25 watts Phillips al Montevideo Shopping Center. En el ejemplo, los shopping centers son un meta-nodo.
También permiten las transformaciones, que es un recurso construido a partir de la composición compleja de otros recursos. Una transformación se puede prototipar. La ventaja de esto es que se puede reutilizar el código encapsulando relaciones genéricas y acciones comunes a muchos procesos de negocios. Por ejemplo el módulo de salarios y de facturación usan en gran parte el mismo código.
Otro concepto interesante es el de variaciones, que elimina la necesidad de taxonomías complejas o numerosos registros para tener varios códigos para el mismo producto. En el ejemplo, las lamparitas de 25 watts son un recurso. Las lamparitas de 25 watts Phillips son una variación de ese recurso. Otro ejemplo podría ser memoria RAM y la variación la capacidad (256Mb, 512Mb, etc.)
Surgió de la necesidad de Corany, una empresa de fabricación de accesorios de vestir, para desarrollar una ERP propia a la que pudiera modificar, pero con limitado presupuesto (EU 80.000). Las restricciones de presupuesto hicieron que se eligiera como lenguaje de desarrollo a Python porque reducía los tiempos de desarrollo debido a que permite la metaprogramación2 y porque se puede usar tanto como lenguaje de desarrollo como lenguaje de scripting, y luego incorporar esos scripts al desarrollo central.
Usa el servidor de aplicaciones Zope, que implementa su propia BD orientada a objetos capaz de almacenar objetos Python y su propio motor de workflow. Mediante ZSQLCatalog se pueden hacer consultas SQL sobre la Base de Datos Orientada a Objetos, ya que se usa una BD relacional como índice de la Base de Datos Orientada a Objetos (se mapean los atributos relevantes para las búsquedas a columnas, tablas y bases de datos).
La empresa, con base en Europa tenía que comunicarse con una sucursal en África por lo que se desarrolló un mecanismo de sincronización basado en SyncML (ERP5SyncML) robusto y confiable bajo la GPL. La sincronización funciona en forma similar al EDI: si una regla de negocio local necesita operar sobre un recurso remoto, se hace una copia del recurso, se sincroniza y se trabaja sobre la copia.
Existe una implementación en producción sobre un cluster de 8 CPUs con 80 usuarios concurrentes con 8 sesiones simultaneas cada uno, 2.000.000 objetos Python y 100.000.000 filas en el ZSQLCatalog. Recientemente liberaron un CD live.
Proyecto español de ERP/CRM.
Lenguaje |
C++, Javascript |
DBMS |
PostgreSQL, MySQL |
Licencia |
GPL |
Fecha de última versión |
Enero, 2005 |
Última versión |
V1.6 |
Sitio |
Comentario:
Es un producto maduro con un instalador similar a los vistos en sistemas comerciales, tanto para la aplicación base como para los módulos y cuenta con muy buena documentación introductoria. Se hace notar que hay ciertos módulos a los que solamente se puede tener acceso a través de suscripción.
Tiene dos versiones: Lite, y Enterprise. La primera, totalmente funcional, basada en parte en una tecnología que llaman A3D (a cubo d). La segunda, para cumplir requerimientos de empresas con mayores exigencias, estará implementada completamente en A3D, cuando se finalice dentro de un año y medio.
La idea es que un servidor transmite fragmentos de código que es interpretado por los clientes. Ambas versiones son compatibles a nivel de módulo.
Los datos y el software para manipularlo se guardan en el DBMS. Los clientes construidos con A3D, obtienen del DBMS los formularios, código a ejecutar, plantillas de informes, consultas, estructura de las tablas y los datos a tratar, los procesan y lo muestran al usuario. De esta forma cualquier modificación del software se almacena en el SGBD y los clientes A3D son conscientes inmediatamente de estos cambios ya que para procesar algún dato primero obtienen como procesarlo desde el mismo SGBD.
Es de fácil mantenimiento. Todas las modificaciones hechas en los módulos que se encargan de la lógica de negocio almacenados en el servidor son inmediatamente reflejadas en los puestos clientes, de la misma manera que con un navegador WEB se obtiene siempre la última versión de una página WEB cuando es modificada en el servidor.
Lenguaje |
C |
DBMS |
PostgreSQL |
Licencia |
GPL |
Fecha de última versión |
Junio, 2003 |
Última versión |
V1.5 |
Sitio |
Comentario:
Es un proyecto que apunta a proveer una ERP Open Free genérica. Pero por el momento, la versión 1.5 esta especializada en talleres automotrices. Esta instalada con éxito en una cadena de estos talleres. Sin embargo, no funciona en tiempo real. Las bases de datos se replican diariamente vía modem. Sumado a que no es genérica aun, no será considerada para el estudio.
GNUe es un conjunto de herramientas (incluido un servidor de aplicaciones), y un conjunto de aplicaciones construidas con esas herramientas que abarcan desde recursos humanos, contabilidad, CRM y administración de proyecto a SCM y e-commerce.
Lenguaje |
Python |
DBMS |
Varios (incl. PostgreSQL, MySQL) |
Licencia |
GPL |
Fecha de última versión |
Nunca una versión completa |
Última versión |
Nunca una versión completa |
Sitio |
Comentario:
Brinda las herramientas (como formularios data-aware, sistema de reportes, servidor de aplicaciones, etc) que proveen un marco para que profesionales de T.I. construyan o adecuen aplicaciones y las implanten eficazmente en organizaciones grandes o pequeñas.
Esta plataforma tendría las ventajas de una arquitectura abierta y fácil de mantener. Las aplicaciones, escritas usando dichas herramientas, implementarían un ERP completo. Desafortunadamente el ERP nunca fue completado, aunque hay versiones de los componentes actualizados en 2005, son versiones 0.5, o sea, no aptas para producción.
Linux-Kontor es una ERP hecha completamente en Java, con una arquitectura de tres capas (DB, servidor de aplicaciones y cliente).
Lenguaje |
Java |
DBMS |
AdabasD |
Licencia |
LGPL |
Fecha de última versión |
Enero, 2003 |
Última versión |
? |
Sitio |
Comentario:
El proyecto parece haber sido descontinuado ya que no se actualiza el sitio web en inglés (el proyecto es Alemán) desde el 2002.
Es un proyecto para construir una arquitectura débilmente acoplada que sirva de infraestructura a software de gestión empresarial.
Lenguaje |
Java, Javascript, Prolog |
DBMS |
PostgreSQL, MaxDB (entre otros) |
Licencia |
MIT |
Fecha de última versión |
Marzo, 2004 |
Última versión |
V3.0 |
Sitio |
Comentarios:
Está especializada en el comercio electrónico más que en las funcionalidades de una ERP. Hace más de seis meses que se liberó la última versión. Al no cumplir con dos de los requerimientos básicos, no será considerada.
Es una de las primeras iniciativas de ERPs con código abierto, pero no es Open/Free (p.ej. la licencia prohíbe redistribuir el código fuente con modificaciones, salvo a la empresa OpenMFG) motivo por el cual no vamos a considerarla.
Lenguaje |
C++, Qt |
DBMS |
PostgreSQL, Oracle, MS SQL |
Licencia |
Propietarias |
Fecha de última versión |
? |
Última versión |
? |
Sitio |
Es similar a SQL Ledger, esta escrito en PHP. Por un lado incluye mas características, como salarios, pero por otro no es internacional ni ha liberado versiones desde 2002.
Lenguaje |
PHP |
DBMS |
MySQL |
Licencia |
GPL |
Fecha de última versión |
Marzo, 2002 |
Última versión |
v1.1.2 |
Sitio |
Comentario: Ver CK-Ledger.
Provee contabilidad básica, facturación y pagos. Esta desarrollado en perl y usa PostgreSQL. Ha sido traducido y adecuado a 20 idiomas. Desde el punto de vista contable, aunque es simple esta bien diseñado para una compañía pequeña. Tiene interfaz web e implementa los módulos compras, ventas, cuentas a cobrar, cuentas a pagar, contabilidad, stock, etc. Genera salida en postcript y PDF y soporta varias monedas.
Lenguaje |
Perl |
DBMS |
PostgreSQL, Oracle, DB2 |
Licencia |
GPL |
Fecha de última versión |
Enero, 2005 |
Última versión |
v2.4.8 |
Sitio |
Comentario: Ver CK-Ledger.
Es una ERP para la cual hay una versión Open (Value Light) escrita en Delphi.
Lenguaje |
Delphi, Java |
DBMS |
? |
Licencia |
GPL |
Fecha de última versión |
Enero, 2004 |
Última versión |
v1.1 |
Sitio |
Comentario:
Depende de Delphi, que no es Open/Free. Además hace más de seis meses que no libera ninguna versión. Al no cumplir dos de los requerimientos básicos, no será considerada.
Está traducida a varios idiomas, soporta varias monedas, distintos depósitos, los módulos de ventas, cuentas a cobrar, compras, cuenta a pagar, contabilidad, banco y análisis de ventas. Permite creación de kits (productos que son agregación de otros) y listas de precios flexibles. Genera facturas y reportes en pdf, y solamente precisa un browser.
Lenguaje |
PHP |
DBMS |
MySQL |
Licencia |
GPL |
Fecha de última versión |
Diciembre, 2004 |
Última versión |
v2.9 |
Sitio |
Comentario: Ver CK-Ledger.
1Recurso es un recurso abstracto en un proceso de negocios, p.ej. dinero. Nodo es una entidad que recibe o envía recursos. Movimiento es la descripción del flujo de recurso entre nodos. Path es el camino de acceso de un nodo a un recurso. Item es una instancia física de un recurso.
2Metaprogramación es una técnica que permite redefinir la semántica del lenguaje en tiempo de ejecución basado en propiedades o tablas. Es más fácil establecer a posteriori comportamientos específicos, y por tanto, configurar.
Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.