JFire
Encyclopedia
JFire is an Enterprise Resource Planning
and Customer Relationship Management
system.
The system has been written entirely in Java
and is based on the technologies Java EE
5 (formerly J2EE), JDO
2, Eclipse RCP
3. Hence, both client
and server
can easily be extended and it requires only a relatively low effort to customize it for specific sectors or companies.
Since November 2009, there is a stable JFire release containing many modules
, e.g. for user and access rights control, accounting, store management, direct online trade with other companies or end-customers (e.g. via a web shop), an editor for interactive 2-dimensional graphics and other useful plugins. A reporting module which is based on BIRT
allows for the editing and rendering of reports, statistics and similar documents (e.g. invoices).
Even though the main goal of the project is to serve as a robust and flexible framework
and thus to ease the implementation of sector-specific applications, it contains modules for the out-of-the-box
usage in small and medium-sized enterprises.
Because JFire uses JDO as persistence layer
, it is independent of the underlying database management system
(DBMS) and spares developers the error-prone work of writing SQL
. Furthermore, the use of JDO makes it possible to employ other DBMS types (e.g. object database
s). According to the project's website, JFire is shipped with the JDO2 reference implementation DataNucleus
, which supports many relational database
s and db4o.
Even though Java EE, JDO and Eclipse RCP provide many advantages, they have the disadvantage that they require a longer training period than older technologies (e.g. direct SQL).
JFire was published in January 2006 under the conditions of the GNU Lesser General Public License
(LGPL). Therefore, it is Free Software and everyone can redistribute it, modify it and use it free of charge.
sales and distribution software. Because they wanted to base this new system on an ERP within one integrated application suite
(rather than multiple separate programs), they started to search for a suitable framework. After some research and evaluations, they decided to launch such an ERP framework project based on new technologies like JDO and Eclipse RCP, which make it easy for other projects to build upon.
When first released in January 2006, it quickly gained attention in the Eclipse community: The German Eclipse Magazine published an article in May 2006, the project was invited to the EclipseCon 2006, the Eclipse Magazine India published an article in December 2006 and in April 2007, the JFire project was invited to the Eclipse Forum Europe, where it impressed the BIRT team with its graphical parameter workflow builder.
The JFire project team believes that the demands directed at ERP software vary in such a high degree, that a complete solution has some major disadvantages: In their opinion, such one-fits-all-solutions confront their users either with too much configuration and too little clarity or do not provide enough flexibility.
Therefore, most of the numerous JFire modules serve mainly as a base for extensions and cannot be used directly by end users (or only partially).
web client, which currently supports only a part of the functionality (e.g. a web shop). Some applications built on JFire employ other types of clients, as well (e.g. mobile devices
used in Yak, an access control system). Because JFire enables different companies/organizations to cooperate directly, a server acts as client to other servers, as well. Each organization has its own JDO datastore, which guarantees a very high degree of protection of privacy. Between organizations, only data essentially required by the business partner are exchanged.
Following the framework idea, JFire is built very modular: In the client, it consists of OSGi
plug-ins based on the Eclipse Rich Client Platform (RCP) and in the server, JFire is composed of Java EE EAR modules. Due to its modularity, JFire is used as base for non-ERP applications, too, which employ a smaller number of modules (e.g. only the user, access rights and organization management).
The Trade-Module offers many interfaces for easy integration of external systems like third-party payment- or delivery-systems. Additionally it provides extension possibilities to build your own Business Application on top of JFire.
Furthermore you can combine your Trade platform with the Editor2D module in order to edit and visualize things, if it is needed for your business.
Enterprise resource planning
Enterprise resource planning systems integrate internal and external management information across an entire organization, embracing finance/accounting, manufacturing, sales and service, customer relationship management, etc. ERP systems automate this activity with an integrated software application...
and Customer Relationship Management
Customer relationship management
Customer relationship management is a widely implemented strategy for managing a company’s interactions with customers, clients and sales prospects. It involves using technology to organize, automate, and synchronize business processes—principally sales activities, but also those for marketing,...
system.
The system has been written entirely in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and is based on the technologies Java EE
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...
5 (formerly J2EE), JDO
Java Data Objects
Java Data Objects is a specification of Java object persistence. One of its features is a transparency of the persistent services to the domain model. JDO persistent objects are ordinary Java programming language classes ; there's no requirement for them to implement certain interfaces or extend...
2, Eclipse RCP
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
3. Hence, both client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
and server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
can easily be extended and it requires only a relatively low effort to customize it for specific sectors or companies.
Since November 2009, there is a stable JFire release containing many modules
Modularity (programming)
Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...
, e.g. for user and access rights control, accounting, store management, direct online trade with other companies or end-customers (e.g. via a web shop), an editor for interactive 2-dimensional graphics and other useful plugins. A reporting module which is based on BIRT
BIRT Project
The Business Intelligence and Reporting Tools Project is an open source software project that provides reporting and business intelligence capabilities for rich client and web applications, especially those based on Java and Java EE...
allows for the editing and rendering of reports, statistics and similar documents (e.g. invoices).
Even though the main goal of the project is to serve as a robust and flexible framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
and thus to ease the implementation of sector-specific applications, it contains modules for the out-of-the-box
Out of the box
Out of the box is the term used to denote items, functionalities, or features that do not require any additional installation. In addition to being used for tangible products, the phrase is often used in a less literal sense for software, which may not be distributed in an actual box but offer...
usage in small and medium-sized enterprises.
Because JFire uses JDO as persistence layer
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....
, it is independent of the underlying database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...
(DBMS) and spares developers the error-prone work of writing SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
. Furthermore, the use of JDO makes it possible to employ other DBMS types (e.g. object database
Object database
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming...
s). According to the project's website, JFire is shipped with the JDO2 reference implementation DataNucleus
DataNucleus
DataNucleus is an open source project which provides a series of software products around data management in Java....
, which supports many relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
s and db4o.
Even though Java EE, JDO and Eclipse RCP provide many advantages, they have the disadvantage that they require a longer training period than older technologies (e.g. direct SQL).
JFire was published in January 2006 under the conditions of the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
(LGPL). Therefore, it is Free Software and everyone can redistribute it, modify it and use it free of charge.
History
The history of JFire starts in 2003, when the company NightLabs decided to develop a new ticketTicket (admission)
A ticket is a voucher that indicates that one has paid for admission to an event or establishment such as a theatre, movie theater, amusement park, zoo, museum, concert, or other attraction, or permission to travel on a vehicle such as an airliner, train, bus, or boat, typically because one has...
sales and distribution software. Because they wanted to base this new system on an ERP within one integrated application suite
Software suite
A software suite or application suite is a collection of computer programs, usually application software and programming software of related functionality, often sharing a more-or-less common user interface and some ability to smoothly exchange data with each other.Sometimes software makers...
(rather than multiple separate programs), they started to search for a suitable framework. After some research and evaluations, they decided to launch such an ERP framework project based on new technologies like JDO and Eclipse RCP, which make it easy for other projects to build upon.
When first released in January 2006, it quickly gained attention in the Eclipse community: The German Eclipse Magazine published an article in May 2006, the project was invited to the EclipseCon 2006, the Eclipse Magazine India published an article in December 2006 and in April 2007, the JFire project was invited to the Eclipse Forum Europe, where it impressed the BIRT team with its graphical parameter workflow builder.
Goal
The project's main goal is to provide a framework which eases development of sector-specific ERP systems. In this aspect, it differs significantly from most other ERP projects, which aim primarily at being an out-of-the-box solution directly for end-users.The JFire project team believes that the demands directed at ERP software vary in such a high degree, that a complete solution has some major disadvantages: In their opinion, such one-fits-all-solutions confront their users either with too much configuration and too little clarity or do not provide enough flexibility.
Therefore, most of the numerous JFire modules serve mainly as a base for extensions and cannot be used directly by end users (or only partially).
Architecture
JFire consists of two parts - the server and different types of clients. So far, the most comprehensive client is a rich client. Additionally, there exists a JSPJavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
web client, which currently supports only a part of the functionality (e.g. a web shop). Some applications built on JFire employ other types of clients, as well (e.g. mobile devices
Handheld device
A mobile device is a small, hand-held computing device, typically having a display screen with touch input and/or a miniature keyboard and less than . Early pocket sized ones were joined in the late 2000s by larger but otherwise similar tablet computers...
used in Yak, an access control system). Because JFire enables different companies/organizations to cooperate directly, a server acts as client to other servers, as well. Each organization has its own JDO datastore, which guarantees a very high degree of protection of privacy. Between organizations, only data essentially required by the business partner are exchanged.
Following the framework idea, JFire is built very modular: In the client, it consists of OSGi
OSGi
The Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
plug-ins based on the Eclipse Rich Client Platform (RCP) and in the server, JFire is composed of Java EE EAR modules. Due to its modularity, JFire is used as base for non-ERP applications, too, which employ a smaller number of modules (e.g. only the user, access rights and organization management).
Server
The Base-Module is responsible for Authentication, User- and Rightsmanagement and builds the core for transactions between different organisations and servers. On top of it comes the Trade-Module which includes Accounting, Store-Management, Reporting and forms the base for a general distribution sales network.The Trade-Module offers many interfaces for easy integration of external systems like third-party payment- or delivery-systems. Additionally it provides extension possibilities to build your own Business Application on top of JFire.
Client
The Client is based on the Eclipse RCP framework and makes extensively use of its flexible plugin management. The design is similar to the server. The Base module provides you with the Graphical User Interface for administration of users and organisations. The Trade modul lets you easily configure the sales-conditions of your products, write invoices, keep the overview over your finances and show you detailed reports of all transactions.Furthermore you can combine your Trade platform with the Editor2D module in order to edit and visualize things, if it is needed for your business.