# JFire

JFire é um sistema de ERP e CRM.
Totalmente desenvolvido em JAVA, é baseado nas tecnologias Java EE 1.4 (antes conhecido como J2EE), JDO 2 e Eclipse RCP 3. Assim, ambos cliente e servidor podem ser facilmente estendidos e requerem relativamente pouco esforço para personalizá-los a um setor específico ou a uma empresa.
Atualmente, JFire encontra-se em versão beta, mas já oferece módulos para usuários e controle de acesso, contabilidade, gerenciamento de estoque, transações diretas online com outras empresas ou consumidor final (exemplo via web shop), editor para gráficos 2D and outros plugins. O módulo de relatórios, o qual é baseado no BIRT, permite edição e inserção em HTML (rendering) de relatórios, estatísticas e documentos similares (exemplo Pedido de Compra).
Além de ser um robusto e flexível framework e fácil de implementar para um específico setor, JFire contém módulos para uso fora-da-caixa por pequeno e médio empreendimentos.
Devido ao uso do JDO como camada persistente, sendo o sistema de gerenciamento do banco de dados (DBMS) independente da camada inferior, isso faz com erros com códigos SQL sejam evitados. Além disso, o uso do JDO possibilita o emprego de outros tipos de DBMS. De acordo com o site do projeto, JFire vem com JDO2 e referência de implementação JPOX, o qual suporta muitos banco de dados relacionais e db4o.
Mesmo Java EE, JDO e Eclipse RCP oferecendo muitas vantagens, essas tecnologias requerem um período maior de treinamento comparando-se com (Exemplo: SQL direto).
JFire foi publicado em Janeiro de 2006 com base nas condições do GNU Lesser General Public License (LGPL). Entretanto, ele é gratuito e qualquer um pode redistribuir, modicar e usar sem custos de aquisição.

## História

A história do JFire começa em 2003, quando a empresa NightLabs decide desenvolver um ticket software de vendas e distribuição. Como eles queriam basear esse novo sistema num ERP com um application suite integrado (ao invés de multiplos programas em separado), começaram então a pesquisar por um framework que pudesse comporta-lo. Após pesquisas e avaliações, decidiram lançar o projeto em ERP framework baseado em novas tecnologias tais como JDO e Eclipse RCP, o qual facilita a construção de outros projetos no topo do projeto raiz.
Após a primeira publicação em Janeiro de 2006, JFire rapidamente ganhou atenção da comunidade Eclipse: A Revista Eclipse Alemanha, publicou um artigo em Maio de 2006, o projeto foi convidado ao EclipseCon 2006, a revista Eclipse India publicou um artigo em Dezembro de 2006 e em Abril de 2007, o projeto JFire foi convidado ao Eclipse Forum Europe, onde impressionou a equipe BIRT com o seu parâmetro gráfico para construção de fluxo de trabalho.

## Objetivo

O principal objetivo do projeto é fornecer um framework o qual facilite desenvolvimento de específicos setores de um sistema ERP. Nesse aspecto, Jfire difere significativamente da maioria dos outros projetos de ERP, sendo uma solução fora-da-caixa para o usuário final.
O time do projeto JFire acredita que a demanda e necessidades do usuário final de ERP software varia de caso para caso, e uma solução completa tem algumas grandes desvantagens. Na opinião deles, uma solução única para todos confronta os usuários ou com muita configuração ou com pouca claridade ou não tem flexibilidade suficiente.
Entretanto, a maioria dos numerosos módulos JFire serve somente como base para ser estendido e não pode ser usado pelo usuário final.

## Arquitetura

JFire consiste de duas partes – o servidor e diferente tipos de clientes. Até então, o Rich Client é o cliente mais completo. Adicionalmente, contém um JSP web client, atualmente suportando apenas funcionalidades parciais (exemplo: web shop). Algumas aplicações construídas para o JFire emprega outros tipos de clientes, tais como Celulares usados em Yak, usado em um sistema de controle de acessos. Como JFire pode abilitar diferente empresas/organizações para cooperar diretamente, um servidor atua como sendo cliente do outro. Cada organização possui sua própria JDO banco de dados, o qual garante um alto nível de proteção de privacidade. Entre organizações, apenas dados essenciais requerido pelo parceiro comercial são trocadas.
Seguindo a ideia de um framework, JFire é modularr: No lado do cliente consiste de OSGi plug-ins baseado no Eclipse Rich Client Platform (RCP) e do lado do servidor, JFire é composto dos módulos Java EE EAR. Devido a sua modularidade, JFire também usado como base de aplicações que não são ERP, as quais requeiram pequeno número de módulos (exemplo: Somente o usuário, controle de direito de acesso e gerenciamento organizacional).