JFire

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
JFire
JFire Logo.svg
Entwickler NightLabs
Aktuelle Version 1.2.0-stable Farnsworth
(30. November 2011)
Betriebssystem plattformunabhängig
Programmier­sprache Java
Kategorie Enterprise-Resource-Planning
Lizenz GNU Lesser General Public License
www.jfire.net

JFire ist ein ERP- und CRM-System, das im Januar 2006 als freie Software unter der LGPL veröffentlicht wurde.

Eigenschaften und Funktionen[Bearbeiten]

Das System wurde vollständig in Java geschrieben und basiert auf den Technologien JavaEE 5 (früher J2EE), JDO 2 und Eclipse RCP 3. Damit sind sowohl Client als auch Server leicht erweiterbar und das System kann mit verhältnismäßig geringem Arbeitsaufwand auf spezialisierte Branchen- bzw. Unternehmens-Bedürfnisse zugeschnitten werden.

Seit November 2009 gibt es eine stabile Version mit zahlreichen Modulen, beispielsweise für Benutzer- und Rechte-Verwaltung, Konto-Führung (Fakturierung), Lager-Verwaltung, den direkten Online-Handel mit anderen Unternehmen oder auch Endkunden (z. B. via Webshop) und einen Editor für interaktive 2D-Graphiken. Auch ein Reporting-Modul auf Basis von BIRT steht zur Verfügung, welches sowohl die Darstellung als auch das Bearbeiten von Berichten und ähnlichen Dokumenten (z. B. Rechnungen) erlaubt.

Obwohl es das Haupt-Ziel des Projektes ist, als robustes und flexibles Framework die einfache Gestaltung branchen-spezifischer Applikationen zu ermöglichen, enthält es bereits generische Module für den „von-der-Stange“-Gebrauch in kleinen und mittelständischen Unternehmen.

Durch die Benutzung von JDO als Persistenz-Layer ist JFire unabhängig vom verwendeten Datenbanksystem und erspart Entwicklern das fehleranfällige Schreiben von SQL. Darüber hinaus sind dadurch auch andere DBMS-Typen (z. B. Objektdatenbanken) möglich. Laut Projekt-Seite wird JFire mit der JDO2-Referenzimplementation JPOX geliefert, welche neben db4o zahlreiche relationale Datenbanken unterstützt.

Zwar bieten JavaEE, JDO und Eclipse RCP viele Vorteile, doch stellen sie auch eine höhere Zugangsschwelle für Entwickler dar als ältere Technologien (z. B. direktes SQL), da jede für sich bereits einiges an Einarbeitungszeit erfordert.

Historie[Bearbeiten]

Die Vorgeschichte von JFire begann 2003, als das Unternehmen NightLabs entschied, ein neues Ticketing-System zu entwickeln. Weil sie die neue Software auf einem ERP innerhalb einer integrierten Anwendung (anstatt mehrerer separater Programme) aufbauen wollten, begannen die Entwickler, nach einem geeigneten Framework zu suchen. Nach einiger Recherche und Evaluierungen fiel die Entscheidung, selbst ein solches ERP-Framework-Projekt zu beginnen. Um es anderen Projekten möglichst einfach zu machen, darauf aufzubauen, wurde beschlossen, auf neue Technologien wie JDO und Eclipse RCP zurückzugreifen.

Nach dem ersten Release im Januar 2006 zog das Projekt schnell die Aufmerksamkeit der Eclipse-Community auf sich: Das deutschsprachige Eclipse Magazin veröffentlichte im Mai einen Artikel[1] über JFire und es wurde zur EclipseCon 2006 eingeladen[2]. Im Dezember des gleichen Jahres veröffentlichte das Eclipse Magazine in Indien einen Artikel[3]. Im April 2007 wurde JFire zum Eclipse Forum Europe eingeladen und beeindruckte dort das BIRT-Team mit seinem graphischen Parameter-Workflow-Builder[4].

Ziel[Bearbeiten]

Das Hauptziel des Projektes ist es, als Framework anderen Entwicklern die Erstellung von branchenspezifischen ERP-Systemen zu erleichtern. Damit unterscheidet es sich maßgeblich von vielen anderen ERP-Projekten, die als „von-der-Stange“-Lösung direkt auf Endanwender abzielen.

Das JFire-Projektteam vertritt die Ansicht, dass der ERP-Bereich derart unterschiedliche Anforderungen stellt, dass eine ERP-Gesamtlösung den Nachteil hat, entweder die Benutzer mit zu viel Konfiguration und Unübersichtlichkeit zu konfrontieren oder aber zu wenig Flexibilität zu bieten.

Die meisten der zahlreichen JFire-Module dienen daher hauptsächlich als Ausgangsbasis für Erweiterungen und sind ohne diese für den Endbenutzer nicht oder nur teilweise nutzbar.

Architektur[Bearbeiten]

Zunächst einmal besteht JFire aus einem Server und verschiedenartigen Clients. Der derzeit umfangreichste Client ist ein Rich-Client. Darüber hinaus ist auch ein Web-Client verfügbar. Letzterer bietet bislang jedoch nur einen Teil der Funktionen (z. B. einen Webshop). Einige JFire-basierte Applikationen verwenden auch andere Arten von Clients (z. B. Mobilgeräte in Yak, einem Zugangskontrollsystem). Da JFire die direkte Zusammenarbeit verschiedener Unternehmen bzw. Organisationen ermöglicht, agieren auch die Server untereinander als Clients. Jede Organisation verfügt dabei über einen eigenen JDO-Datastore, wodurch ein hohes Maß an Datenschutz gewährleistet ist.

Dem Framework-Gedanken folgend ist JFire sehr modular aufgebaut, wobei im Client OSGi-Plugins auf Basis der Eclipse-Rich-Client-Platform (RCP) und im Server JavaEE-EAR-Module zum Einsatz kommen. Auf Grund seiner Modularität wird JFire auch als Basis für nicht-ERP-Software verwendet, die lediglich auf eine geringe Zahl von Modulen zurückgreift (z. B. lediglich für Benutzer-, Rechte- und Organisations-Verwaltung).

Features[Bearbeiten]

JFire verfügt über zahlreiche Module, die die folgenden Features bereitstellen:

Auftragsverwaltung[Bearbeiten]

Es können sowohl Aufträge für den Wareneinkauf als auch den -verkauf erstellt werden. Die einzelnen Posten können sich dabei in ihren Eigenschaften signifikant unterscheiden, denn wie ein Produkt aussieht, wird durch eine konkrete Implementation definiert. Es gibt derzeit folgende Produkt-Arten:

  • Nichtspezialisiertes Produkt mit fester Beschreibung & festem Preis: Dies ist ein klassisches Produkt, wie man es auch in einem Webshop zum Kauf anbietet.
  • Nichtspezialisiertes Produkt mit dynamischer Beschreibung & dynamischem Preis: Die Beschreibung des Produkts und sein Preis werden erst während des Verkaufs festgelegt. Dies ist gut geeignet für die Verwaltung von Dienstleistungen, deren Beschreibung meist individuell ist.
  • Gutschein: Gutscheine können mit einem graphischen Layout versehen und auf einem normalen Drucker während des Verkaufs gedruckt werden. Die Einlösung während eines (anderen) Verkaufsvorgangs ist mit Hilfe eines Barcode-Readers möglich.

Buchhaltung[Bearbeiten]

JFire verwaltet Einnahme- und Aufwandskonten, Debitoren- und Kreditorenkonten, Gutscheinkonten etc.; es gibt einige Berichte hierzu:

  • Gebuchte Artikel: Auflistung aller gebuchten Artikel mit zugehörigen Zahlungen.
  • Rechnungsliste: Auflistung aller gebuchten Rechnungen während eines bestimmten Zeitraums für einen/mehrere Benutzer.
  • Verkaufsbericht: Aufsummierung aller Verkaufs-/Kaufs-Transaktionen pro Produkttyp.
  • Zahlungsliste: Auflistung aller Zahlungen während eines bestimmten Zeitraums für einen/mehrere Benutzer.

Die automatisierte Erstellung von Bilanzen/Jahresabschlüssen ist derzeit noch nicht möglich.

Kundenverwaltung (CRM)[Bearbeiten]

  • Die Datenstruktur einer „Person“ kann in JFire vom Benutzer ohne Programmierung erweitert werden. Es stehen dabei zahlreiche Datentypen zur Verfügung - vom einfachen Text-Feld über Auswahllisten bis zu HTML (mit Wysiwyg-HTML-Editor).
  • Es wird erfasst, welcher Kunde wann was gekauft hat. Diese Daten können z.B. für die Anzeige von Kaufempfehlungen in einem Webshop verwendet werden.
  • Über ein Telefonanlagen-Schnittstellen-Modul können Kunden (oder andere Personen) direkt aus der Applikation angerufen werden. Da sich Telefonanlagen verschiedener Hersteller jedoch nicht über eine einheitliche Schnittstelle ansprechen lassen, benötigt JFire für jede Telefonanlage ein spezifisches Treiber-Modul. Derzeit gibt es ein solches ausschließlich für Asterisk.

Issue-Tracking[Bearbeiten]

  • Aufgaben können erfasst und Mitarbeitern zugewiesen werden.
  • Die benötigte Zeit für eine Aufgabe kann vom Mitarbeiter erfasst werden.
  • Aufgaben unterstützen nicht nur Datei-Anhänge, sondern alle JFire-Objekte können prinzipiell mit einer Aufgabe verlinkt werden. Benutzeroberfläche existiert bislang für folgende:
    • Person (Kunde, Lieferant, Mitarbeiter)
    • Auftrag
    • Angebot
    • Rechnung
    • Lieferschein
    • Aufgabe (z. B. um ein „Duplikat“ als solches zu markieren oder Abhängigkeiten zwischen Aufgaben zu erfassen).

Lagerverwaltung[Bearbeiten]

Im Backend ist die Lagerverwaltung weitgehend vollständig. Das System weiß jederzeit, an welchem Lagerort (z. B. Lagerregal in Lagerhalle) welches Produkt zu finden ist. Die Benutzeroberfläche für die Lagerverwaltung ist derzeit noch recht rudimentär.

Einzelnachweise[Bearbeiten]

  1. : Eclipse Magazin (Deutschland). 7, Nr. 3.06, 2006.
  2. EclipseCon 2006: JFire - Open Source RCP based ERP framework. 23. Juni 2006. Abgerufen am 6. Juli 2007.
  3. : Eclipse Magazine (Indien). 5, 2006.
  4. BIRT World: JFire and BIRT. 15. Mai 2007. Abgerufen am 6. Juli 2007.

Weblinks und Artikel[Bearbeiten]