Apache OFBiz: Difference between revisions

Content deleted Content added
m Disambiguating links to Object-orientation (link changed to Object-oriented programming) using DisamAssist.
 
(181 intermediate revisions by 88 users not shown)
Line 1:
{{Short description|Open-source enterprise resource planning software}}
{{ Infobox_Software
{{Multiple issues|
{{More citations needed|date=June 2011}}
{{third-party|date=September 2015}}
}}
{{Infobox software
| name = Apache OFBiz
| logo = [[image:Apache OFBiz Logologo.jpg|190px]]svg
| screenshot = [[Image:Screenshot Apache OFBiz.PNG|250px|Apache OFBiz Screenshot]]
| caption = Apache OFBiz Screenshot running
| collapsible = yes
| developer = [[Apache Software Foundation]]
| discontinued = No
| latest_release_version = 3.0.0
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest_release_date = {{release date|2004|03|13}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest_preview_version = 4.0.0
| latest preview version =
| latest_preview_date =
| latest preview date =
| operating_system = [[Cross-platform]]
| repo = {{URL|https://github.com/apache/ofbiz-framework|OFBiz Repository}}
| programming_language = [[Java (programming language)|Java]]
| programming language = [[Java (programming language)|Java]], [[XML]], [[FreeMarker]], [[Groovy (programming language)|Groovy]], [[JavaScript]]
| genre = [[business processes|Business Process]]
| license operating system = [[Apache LicenseCross-platform]] 2.0
| websitegenre = http://ofbiz.apache.org[[Business process]]
| license = [[Apache License 2.0]]
| website = {{URL|//ofbiz.apache.org}}
}}
'''Apache OFBiz''' is an [[Open-source software|open source]] [[enterprise resource planning]] (ERP) system. It provides a suite of enterprise applications that integrate and automate many of the [[business process]]es of an enterprise.{{Citation needed|date=November 2019}}
{{Portal|Free software|Free Software Portal Logo.svg}}
 
'''Apache Open For Business''' (Apache OFBiz) is [[Open Source]] [[automation software]] that is an [[Apache Top Level Project]]. As automation software it comprises a mature suite of enterprise applications that integrate and automate many of the [[business processes|business processes]] of an enterprise.
OFBiz is an [[Apache Software Foundation]] top level project.
 
== Overview ==
Apache OFBiz is a framework that provides a [[common data model]] and a set of [[business process]]es.
<!-- Missing image removed: [[Image:http://www.opensourcestrategies.com/images/architecture_ofbiz.jpg]] -->
 
Actually, Apache OFBiz is a framework + a common data model + [[business processes|business process]].
All applications are built around a common architecture using common data, logic and process components.
Beyond the framework itself, Apache OFBiz offers functionality including:
 
* [[Accounting]] (agreements, invoicing, vendor management, [[general ledger]])
* The framework provides the entire basic infrastructure on which functionality is built.
* Asset maintenance
* Apache OFBiz aggregates functionalities like:
* Catalogue and product management
** [[Enterprise resource planning|ERP]] - planning
* Facility and [[warehouse management system]] (WMS)
** [[Customer relationship management|CRM]] - customer management
* Manufacturing execution / [[manufacturing operations management]] (MES/MOM)
** [[eCommerce]]
* Order processing
** [[Supply Chain Management|SCM]]
* [[Order management system]] (OMS) Including multi-channel order processing, drop-shipping support, and enhanced inventory management.
** [[MRP]]
* Inventory management, automated stock replenishment etc.
** [[CMMS]]/[[Enterprise Architecture Management|EAM]]
** [[PointContent ofmanagement salesystem]] - POS(CMS)
* [[Human resources]] (HR)
** (…)
* People and group management
* [[Project management]]
* [[Sales force management system|Sales force automation]]
* Work effort management
* Electronic [[point of sale]] (ePOS)
* [[Electronic commerce]] (eCommerce)
* [[Scrum (development)]] (Scrum software development support)
 
== Technology ==
All Apache OFBiz functionality is built on a common framework. The functionality can be divided into the following distinct layers:
 
=== Presentation layer ===
All of Apache OFBiz functionality is built on a common framework. The functionality can be divided into the following distinct layers:
Apache OFBiz uses the concept of "screens" to represent the Apache OFBiz pages. Each page is, normally, represented as a screen. A page in Apache OFBiz consists of components. A component can be a header, footer, etc. When the page is rendered all the components are combined as specified in the screen definition. Components can be Java Server Pages ([JSP]s) <deprecated>, FTL pages built around [[FreeMarker]] [[Template engine (web)|template engine]], forms or menus widgets. Widgets are an OFBiz specific technology.
 
=== PresentationBusiness Layerlayer ===
The business, or application layer defines services provided to the user. The services can be of several types: Java methods, SOAP, simple services, workflow, etc. A service engine is responsible for invocation, transactions and security.
 
Apache OFBiz uses a set of open source technologies and standards such as [[Java platform|Java]], [[Java Platform, Enterprise Edition|Java EE]], [[XML]] and [[SOAP]]. Although Apache OFBiz is built around the concepts used by Java EE, many of its concepts are implemented in different ways; either because Apache OFBiz was designed prior to many recent improvements in Java EE or because Apache OFBiz authors didn't agree with those implementations.
Apache OFBiz uses the concept of "screens" to represent the Apache OFBiz pages. Each page is, normally, represented as a screen. A page in Apache OFBiz consists of components. A component can be a header, footer, etc. When the page is rendered all the components are combined together as specified in the screen definition. Components might be Java Server Pages ([JSP]s) <deprecated>, FTL pages built around [[FreeMarker]] [[template engine]], Forms and Menus Widgets : an OFBiz specific technology.
 
=== BusinessData Layerlayer ===
The data layer is responsible for database access, storage and providing a common data interface to the business layer. Data is accessed not in [[Object-oriented programming|object oriented]] fashion but in a [[Relational database|relational]] way. Each [[Entity class|entity]] (represented as a row in the database) is provided to the business layer as a set of generic values. A generic value is not typed, so fields of an entity are accessed by the [[Column (database)|column]] name.
 
=== Key integrations ===
Application layer defines services provided to the user. The services can be of several types: java methods, SOAP, simple services, workflow, etc. A service engine is responsible for aspects such as invocation, transactions, security, etc.
Apache Solr is an enterprise search server with a REST-like API. It's highly scalable, adaptable, comprehensive, and capable of processing and handling large amounts of data. The Apache Solr / OFBiz integration not only speeds up searches, but also greatly enhances the search capabilities of OFBiz. Solr also added faceted and hierarchical search capabilities to OFBiz.
Apache Ofbiz uses a set well established open source technologies and standards like [[Java platform|Java]], [[J2EE]], [[XML]], [[SOAP]], etc. Although Apache OFBiz is built around the concepts used by [[J2EE]], many of its concepts are implemented in different ways of that in [[J2EE]]; either because Apache OFBiz is prior to many of recent [[J2EE]] improvements or because Apache OFBiz authors didn’t agree with those implementations.
 
REST offers several advantages that make it a preferred choice for building and consuming web services particularly utilizing micro services architecture. The greatest benefit is the support for headless architecture.
=== Data Layer ===
 
Gradle, though it's a separate tool outside of OFBiz, this development is nonetheless significant because it simplifies the maintenance and upgrade of OFBiz dependencies on external libraries, which makes it easier to keep the system up to date and secure.
Data layer is responsible for database access, storage and to provide a common data interface to Business layer.
Data is accessed not in [[Object Oriented]] fashion but in a "relational way". Each entity (represented as a row in the database) is provided to the business layer as a Generic Value. A generic value is not typified, so, fields of an entity are accessed by the column name.
 
=== DomainHistory Layer ===
The OFBiz project was created by David E. Jones and Andrew Zeneski on April 13, 2001. The project was initially hosted as The Apache Open For Business Project on SourceForge and Open For Business Project (Apache OFBiz) at Open HUB.
 
Between September 2003 and May 2006, it was hosted as a java.net project, but the project has been removed from there. It has begun to be widely used around 2003. After incubating since January 31, 2006, it became a Top Level Apache project on December 20, 2006: Apache OFBiz Incubation Status.
As consequence of the interface provided by the data layer, which only provides Generic Values representing table instances, which are table rows, there is not an [[OO]] ___domain model in Apache OFBiz. Therefore the ___domain model can be considered [[Anemic Domain Model|Anemic]].
 
== See also ==
Apache OFBiz is implemented on Three Tier Architecture:
* [[Comparison of shopping cart software]]
* [[Comparison of accounting software]]
* [[Comparison of project management software]]
* [[List of ERP software packages]]
 
== References ==
* Presentation Tier
{{Reflist}}
* Application Tier
* Data Tier
<!--
Here a list of the existing open source components that are used in the Apache OFBiz and maybe before the project is started.
see the link=[http://docs.ofbiz.org/display/OFBIZ/Open+Source+Projects+and+Standards]
{| class="wikitable"
! Component
! Description
|-
| [[Apache Tomcat]] || Web application server supporting Java Servlet 2.5 and JavaServer Pages ([[JSP]]) 2.1
|-
| [[Jetty (web server)|Jetty]] || Web application server supporting Java Servlet 2.5 and JavaServer Pages 2.1 -- an alternative to the Tomcat server
|-
| [[BeanShell] ||
|-
| [[FreeMarke]] || Open source [[EJB|Enterprise JavaBeans (EJB)]] Container System and EJB Server that supports Enterprise JavaBeans at the 3.0 level, including Container Managed Persistence 2 (CMP2) and EJB Query Language (EJBQL)
|-
| [[XAPool]] || Open source [[Java Persistence API]] (JPA) 1.0 implementation
|-
| [[Apache ServiceMix]] || Open source Enterprise Service Bus (ESB) and component suite based on the Java Business Interface (JBI) standard on JSR 208.
|-
| [[Apache Axis]] and [[Apache Scout]] || [[SOAP|A Simple Object Access Protocol (SOAP)]] implementation (Axis) and JSR 93 ([[JAXR]]) implementation (Scout) for Web services and Web Services Interoperability Organization (WS-I) Basic Profile support
|-
| [[Javolution]] ||
|-
| [[Apache Derby]] || Full-fledged relational database management system (RDBMS) with native Java Database Connectivity (JDBC) support
|-
| [[Apache WADI]] || Clustering, load balancing and failover solution for the web application container tier &nbsp;<sup id="fn_1_back">[[#fn 1|[1]]]
|-
| [[DataVision]] ||
|}-->
 
==Books==
*{{cite book
| last = Howell
| first = Rupert
| coauthors = Jonathon Wong
| title = '''Apache OFBiz Development: The Beginner's Tutorial '''
| edition = 1st
| isbn = 1847194001
| date = 31 October 2008
| publisher = [[Packt Publishing]]
}}
 
== External links ==
*[http://ofbiz.apache.org/ Official Apache OFBiz website]
*[http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-7900&yr=2007&track=6 Apache OFBiz Session at JavaOne 2007]
 
{{apacheERP software}}
{{Apache Software Foundation}}
 
[[Category:Apache Software Foundation projects|OFBiz]]
[[Category:AccountingFree accounting software]]
[[Category:Free e-commerce software]]
[[Category:Free industrial software]] <!-- because of MRP -->
[[Category:Free ERP software]]
[[Category:Free software programmed in Java (programming language)]]
[[Category:Web applications]]
 
[[es:Apache OFBiz]]
[[fr:Apache OFBiz]]