# JFire

JFire es un sistema de Planificación de recursos empresariales y Customer Relationship Management.
El sistema ha sido escrito completamente en Java y se basa en las tecnologías Java EE 5 (antes J2EE), JDO 2, Y Eclipse RCP 3. Por lo tanto, tanto el cliente como el servidor pueden ampliarse con facilidad y requieren sólo un esfuerzo relativamente bajo para personalizarlos para determinados sectores o empresas.
Desde noviembre de 2009, hay un ciclo de lanzamiento de software estable de JFire, que contiene muchos módulos, por ejemplo, para el control de usuario y derechos de acceso, contabilidad, gestión de almacén, comercio directo en línea con otras empresas o clientes finales (por ejemplo, a través de una tienda en línea), un editor de gráficos interactivos de 2 dimensiones y otros plugins útiles. Un módulo de informes de empresa, basado en el proyecto BIRT, permite la edición y de representación de los informes, estadísticas y documentos similares (por ejemplo, facturas).
Aunque el objetivo principal del proyecto es servir como un framework (marco) sólido y flexible para así facilitar la implementación de las aplicaciones específicas del sector, contiene módulos para su uso fuera de caja en las pequeñas y medianas empresas.
Como JFire utiliza JDO como capa de persistencia, es independiente de la base de datos del sistema de gestión (DBMS) subyacente y dedica a los desarrolladores el trabajo propenso a errores de la escritura SQL. Además, el uso de JDO hace posible emplear otros tipos de SGBD (por ejemplo, Bases de datos orientadas a objetos). Según el sitio web del proyecto, JFire se suministra con la implementación de referencia JDO2 DataNucleus, compatible con muchas bases de datos relacionales, y con base de datos DB4O.
A pesar de que Java EE, JDO y Eclipse RCP ofrecen muchas ventajas, tienen el inconveniente de que requieren un periodo de entrenamiento más largo que las viejas tecnologías (por ejemplo, direct SQL).
JFire fue publicado en enero de 2006 bajo licencia GNU Lesser General Public License (LGPL). Por lo tanto, es un software libre y todo el mundo puede redistribuirlo, modificarlo y usarlo de forma gratuita.

## Historia

La historia de JFire comienza en 2003, cuando la empresa NightLabs con Tom Mallers y Jerry Stuart decidió desarrollar un nuevo software de ventas y distribución. Como querían basar este nuevo sistema en un ERP integrado en una suite de software (en lugar de múltiples programas por separado), comenzaron a buscar un marco adecuado. Después de algunas investigaciones y evaluaciones, se decidió poner en marcha un proyecto usando como marco ERP y basándose en nuevas tecnologías como JDO y RCP de Eclipse, lo que haría más fácil construir otros proyectos sobre ellos.
Cuando por primera vez fue lanzado en enero de 2006, rápidamente se ganó la atención de la comunidad Eclipse: La revista alemana Eclipse publicó un artículo en mayo de 2006, el proyecto fue invitado a la EclipseCon 2006, la revista Eclipse Magazine India publicó un artículo en diciembre de 2006 y en abril de 2007, el proyecto fue invitado al Eclipse Forum Europe (foro Eclipse de Europa), donde impresionó al equipo del proyecto BIRT con su constructor paramétrico de flujos de trabajo.
A finales del 2009, la empresa VIENNA Advantage absorbió Jfire siendo esta descontinuada.

## Objetivo

La meta principal del proyecto es proporcionar un marco que facilite el desarrollo de los sistemas ERP sectorial. En este aspecto, difiere significativamente de la mayoría de otros proyectos de ERP, que tienen como objetivo principal ser una solución out-of-the-box para los usuarios finales.
El equipo del proyecto JFire considera que las demandas dirigidas al software ERP varían tanto, que una solución completa tiene algunas desventajas, como que el servir para todo implica de que, o bien los usuarios se enfrentan a muchas opciones de configuración y poca claridad, o bien no proporcionan suficiente flexibilidad.
Por lo tanto, la mayoría de los módulos JFire numerosos sirven principalmente como una base para las extensiones y no pueden ser utilizados directamente por los usuarios finales (o sólo parcialmente).

## Arquitectura

JFire consta de dos partes - el servidor y los diferentes tipos de clientes -. Hasta el momento, el cliente más completo es un cliente pesado (rich client). Además, existe un cliente web JSP, que actualmente sólo es compatible con una parte de la funcionalidad (por ejemplo, una tienda web). Algunas aplicaciones basadas en JFire también emplean otros tipos de clientes (por ejemplo, dispositivos móviles utilizados en Yak, un sistema de control de acceso). Debido a que JFire permite a diferentes empresas y organizaciones cooperar directamente, un servidor también puede actúa como cliente para otros servidores, y viceversa . Cada organización tiene su propio almacén de datos JDO (JDO datastore), lo que garantiza un alto grado de protección de la intimidad. Entre organizaciones, sólo se intercambian los datos requeridos esencialmente por el socio de negocios.
Siguiendo la idea marco, JFire se construyó para ser muy modular:
* en el cliente, consiste en plugíns OSGi basados en Eclipse Rich Client Platform (RCP),
* en el servidor, JFire se compone de módulos Java EE EAR.
Debido a su modularidad, JFire también se utiliza como base para las aplicaciones no-ERP, las cuales emplean menor número de módulos (por ejemplo, sólo el de usuario, derechos de acceso y gestión de organización).