adapting open-source softaw re for …seaopenresearch.eu/journals/articles/spas_1_42.pdf · fedena...

15
SEA - Practical Application of Science Volume I, Issue 1 (1), 2013 348 Bogdan MICU GHILIC George STANCU ADAPTING OPEN-SOURCE SOFTWARE FOR ENTERPRISE Keywords Open-source Software enterprise CRM ERP OFBIZ JEL classification M15 Abstract Low developed companies do not use ERP solutions for resource management, they don't have CRM systems for tracking customers, online presence is low and consequently they are selling low volumes. Their work does not generate enough capital to buy specialized software and the local community is too small to create open-source software for them. When adapting an open-source enterprise solution, from a certain level of integration, it is necessary to align to the Romanian legislation. For this you need more than a simple translation. For example, in accounting, the Romanian chart of accounts should be used, the local fiscal calendar, the rules of the Romanian legislation and the specific identifiers for Romanian companies. The solution: Open source applications can be localized. A small community cannot create complex system starting from nothing, but they can adapt existing ones already created and used all over the world. Given the individual characteristics of the Romanian market, open source ERP, CRM and e-commerce will be integrated by specialized consultancy agency in Romania just as is done in France (Compiere), Spain (Openbravo), Belgium (OpenERP) or the United States (Apache oFBiz). This will not generate license costs for the companies, only the expenses for hardware and implementation consultancy. If we can create a common infrastructure, hardware cost will be waived for cloud SaaS offering, in opposition with the on-premise option.

Upload: trannhi

Post on 02-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

348

Bogdan MICU GHILICGeorge STANCU

ADAPTING OPEN-SOURCESOFTWARE FOR ENTERPRISE

KeywordsOpen-source

Software enterpriseCRMERP

OFBIZ

JEL classificationM15

Abstract

Low developed companies do not use ERP solutions for resource management, theydon't have CRM systems for tracking customers, online presence is low and consequentlythey are selling low volumes. Their work does not generate enough capital to buy specializedsoftware and the local community is too small to create open-source software for them.

When adapting an open-source enterprise solution, from a certain level ofintegration, it is necessary to align to the Romanian legislation. For this you need more thana simple translation. For example, in accounting, the Romanian chart of accounts should beused, the local fiscal calendar, the rules of the Romanian legislation and the specificidentifiers for Romanian companies.

The solution:Open source applications can be localized. A small community cannot create complex

system starting from nothing, but they can adapt existing ones already created and used allover the world.

Given the individual characteristics of the Romanian market, open source ERP, CRMand e-commerce will be integrated by specialized consultancy agency in Romania just as isdone in France (Compiere), Spain (Openbravo), Belgium (OpenERP) or the United States(Apache oFBiz).

This will not generate license costs for the companies, only the expenses for hardwareand implementation consultancy. If we can create a common infrastructure, hardware costwill be waived for cloud SaaS offering, in opposition with the on-premise option.

Page 2: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

349

OPEN SOURCE TRENDS

Low developed companies do not useERP solutions for resource management, theydon't have CRM systems for trackingcustomers, online presence is low andconsequently they are selling low volumes.Their work does not generate enough capital tobuy specialized software and the localcommunity is too small to create open-sourcesoftware for them.

When adapting an open-source enterprisesolution, from a certain level of integration, itis necessary to align to the Romanianlegislation. For this you need more than asimple translation. For example, in accounting,the Romanian chart of accounts should beused, the local fiscal calendar, the rules of theRomanian legislation and the specificidentifiers for Romanian companies.

The solution:

Open source applications can belocalized. A small community cannot createcomplex system starting from nothing, butthey can adapt existing ones already createdand used all over the world.

Given the individual characteristics of theRomanian market, open source ERP, CRMand e-commerce will be integrated byspecialized consultancy agency in Romaniajust as is done in France (Compiere), Spain(Openbravo), Belgium (OpenERP) or theUnited States (Apache oFBiz).

This will not generate license costs forthe companies, only the expenses for hardwareand implementation consultancy. If we cancreate a common infrastructure, hardware costwill be waived for cloud SaaS offering, inopposition with the on-premise option.

Choosing the right enterprise open-sourcesolution

Enterprise open-source IT platforms

ERP PackageLanguage

BaseLicense Other Info

DeveloperCountry

A1.iO Java ATOL

ERP for Public Sector,Campus Management,

Healthcare,Logistics A1.iO

Worldwide

Adaxa Suite Java GPLIntegrated ERP built

on AdempiereAustralia/New

Zealand

Adempiere Java GPLStarted as a fork of

CompiereSpain

Compiere Java GPL/CommercialAcquired by Consona

Corporation in June 2010US

Dolibarr PHP, MySQL GPL

EpesiBIM PHP, MySQL MIT license Web based application Poland, USA

ERP5Python, Zope,

MySQLGPL Based on unified model

Brazil, France,Germany, Japan

Sénégal

ERPNEXTPython,

JavaScript,MySQL

GPLERP for small and medium

businessesIndia

FedenaRuby,

MySQLApache License

ERP forSchools/Universities

India

FrontAccounting PHP, MySQL GPLv3 Web-Based system

GNUEnterprise

Python GPLv3

HeliumV Java AGPL ERP for small and Austria,

Page 3: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

350

ERP PackageLanguage

BaseLicense Other Info

DeveloperCountry

medium businesses Germany

JFire Java LGPL

KualiFoundation

Java ECLfor higher education, by

higher education

LedgerSMBPerl,

PostgreSQLGPL

started as a fork of SQL-Ledger in 2006

Worldwide

OFBiz Apache, Java Apache License 2.0ERP for small and medium

businesses

Openbravo Java

Openbravo PublicLicense (OBPL), a freesoftware license basedon the Mozilla Public

License (MPL)

Spain

OpenERPPython,

PostgreSQLAGPLv3

OpenERP version 7.0 wasreleased on 12/21/12,

OpenERP was formerlyknown as Tiny ERP

Belgium, India,USA

PhreedomPHP,

Javascript,MySQL

GPLv3Expanded from

Phreebooks accountingengine

USA

PostbooksC++,

JavaScript,PostgreSQL

CPALProduced by XTuple,uses Qt framework

SQL-LedgerPerl,

PostgreSQLGPL

Tryton Python GPLv3Started as a fork of

OpenERP

WebERP PHP, MySQL GPLv2LAMP based system

Source: Wikipedia 01.06.2013http://en.wikipedia.org/wiki/List_of_ERP

_software_packages

APACHE OPEN FOR BUSINESSPROJECT

About Apache Open for Business projectOpen for Business (OFBiz) is a suite of

enterprise applications built on a commonarchitecture using common data, logic andprocess components. The loosely couplednature of the applications makes thesecomponents easy to understand, extend andcustomize.

The tools and architecture of OFBiz makeit easy to efficiently develop and maintain

enterprise applications. This makes it possiblefor the creators and maintainers of the projectto quickly release new functionality andmaintain existing functionality withoutextensive effort. It also makes it easy tocustomize and extend existing functionalitywhen there is a specific need.

The architecture alone makes it easier tocustomize the applications for a particularneed, but many of the best flexibility points inthe system would be meaningless and evenimpossible if the system was not distributed asopen source software. OFBiz is licensed underthe Apache License Version 2.0 which grantsanyone the right to customize, extend, modify,repackage, resell, and many other potentialuses of the system.

Page 4: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

351

No restrictions are placed on theseactivities because they are necessary foreffective use of this type of software. Unlikeother open source licenses, such as the GPL,your changes do not have to be released asopen source. There are obvious benefits tocontributing certain improvements, fixes andadditions back to the core project, but somechanges will involve proprietary orconfidential information that must not bereleased to the public. For this reason OFBizuses the Apache License Version 2.0 whichdoes not require this.

Another benefit of this open sourcemodel is that constant feedback it is receivedfrom those who are using the software. Theseway, there are sent countless bug fixes,improvement suggestions, and best-practicebusiness advice from users and potential usersof OFBiz. Many of the greatest features in theproject were inspired by some comment orsuggestion sent to the mailing lists associatedwith the project.

To make sure OFBiz functionality istimely and useful the development teamalways start by researching public standardsand common usage for any component theyare working on. This helps them support anduse common vocabularies and gives them aninstant breadth of options and features that canonly be achieved through standards processesand other group efforts. It also opens doors inthe future for flexible communication withother systems that are built around the samestandards, both inside system and in partner orother organizations.

The applications and applicationcomponents that come with the system providea broad and flexible basis that can be used as-is with the best-practices based designs, orcustomized to a special needs. Theapplications facilitate management ofeverything from parties and products toaccounting, customer service and internalresource and asset management.

MAJOR APPLICATIONCOMPONENTS

Through collaboration in a largecommunity and an on-going developmenteffort OFBiz hopes to include features thatautomate every aspect of enterpriseinformation and knowledge. Early in thedevelopment and design of the project thecreators were searching for a good initial datamodel to use as a foundation for the system.

They researched other ERP and CRMsystems and looked at various general andsystem specific books. The most used bookwas The Data Model Resource Book, RevisedEdition, Volumes 1 and 2 by Len Silverston.After a few weeks of translating the logicaldata models described in these books intoflexible and normalized physical data modelsApache they had their initial systemorganization. Since that time the initial datamodel has gone through hundreds of revisionsand refinements based on real-life use of thesystem and compatibility with dozens ofexisting public standards. Because of theflexible system architecture it is easy to makechanges to the data model. This is necessaryfor the on-going improvement of the projectand makes it easy for users to make changesthat suit their specific needs.

The top level applications and applicationlogic components are organized in almost thesame structure as the data model. Once theorganization of one level of the system isunderstood moving to other levels in thesystem takes very little effort.

The following is a brief overview of themajor functional areas of the system. Many ofthese have functionality that exists now and allhave data elements defined that cover theneeds of that part of the system. As furtherfunctionality is implemented the teamcontinually refine the data model, but all of themajor data element definitions are in place.

Page 5: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

352

Figure 1 - OfBiz Runway

Common DataThe Common Data in the system includes

entities such as Geographic Boundaries, Unitsof Measure, Status Codes, Enumerations, andso forth. Most of this data is seed data that isimported when the system is installed andgenerally needs very few changes over time.Geographic boundary and other applicableseed data is based on ISO and other standards.

ContentThe Content entities are used to track data

resources and structure them into generalcontent and knowledge. They include manyconcepts such as: a separation of informationand organization allowing a data resource tobe used in many content structures; flexibleorganization of content including free-formassociation in graphs or more constrainedorganization in trees, lists, named maps,templates etc.; the specification of meta-data

for content and data resources that can be usedto implicitly organize and explicitly describethe information. Individual pieces of contentcan be in various text and binary formatsdescribed by standard MIME types andcharacter encodings.

Once general maintenance tools for thisinformation are in place, more advanced toolssuch as keyword based, meta-data based, andintelligent searching or text mining toautomatically create additional structure ormeta-data can be used to enable enterprisewide document and knowledge management.

The Content entities also includeinformation about Web-based content such aspages and interaction with content includingvisits to a site (or application) and informationabout every request sent to the site. This isuseful for tracking what users are doing withan application for security, marketing,usability and other reasons.

Page 6: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

353

Figure 2 - OFbiz Content

SecurityThe Security entities are used to control

access to various parts of the system andinclude user login accounts, login audit data,permission data, and so forth. Additional morerestrictive security is accomplished throughthe Party entities and the association of Partiesto various other data in specific Roles. Forinstance one user might have a Permission toview and modify all Product data whereanother user only has permission to view andmodify the Product data if the user isassociated as a Merchandiser with a categorythat the product is in.

PartyA Party can be either a Person, or a group

of Parties. A Party Group could be a company,an organization within the company, asupplier, a customer, and so forth. Information

that describes Parties or is directly related toParties is contained in these entities.

One type of related data is ContactMechanisms such as postal addresses, phonenumbers, email addresses, internet URLs.Another is Roles that the Party acts in such asCustomer, Supplier, Employee, Manager,Merchandiser, etc. Generally a single partywill interact with different parts of the systemin many different roles.

Another type of data that fits into theParty category is information aboutcommunication and agreements betweenParties. This gets into the area of relationshipmanagement and also includes informationabout issues or trouble tickets that a Party mayhave. These entities are used along with theWork Effort entities to plan and track theresearch and resolution of such issues.

Page 7: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

354

Figure 3 – Ofbiz Parties

ProductThe Product entities contain information

about products that are for sale or for usewithin a company. Products can be goods orservices and there are various types of goodsincluding raw materials, subassemblies andfinished goods. Product information includesdescriptive information about the products butis not used for describing actual instances(where applicable) or physical goods, that iswhere Inventory Items come into play. AnInventory Item contains information aboutwhere a particular good is located, the status ofthe item, and a serial number for serializeditems or quantity on hand and available topromise amounts for non-serialized inventory.

Products can be organized into ProductCategories. A single product can be a memberof multiple categories and even categoriesthemselves can be children of multiplecategories and can have multiple childcategories. Products can also be associatedwith one another to designate concepts such asvariants, cross-sells, up-sells, marketingpackages, etc.

Categories can be associated withdifferent Catalogues. A Product Catalogue isessentially a starting point for all informationabout a particular set of products to be sold.Promotions and inventory managementoptions are associated with each catalogue sothat different sales channels can behavedifferently even with the same set ofunderlying products.

To flexibly model different types offeatures that products often have, there areentities for defining types of features andactual features that can be applied to products.For instance, you might say that this shirt is asize large and is a blue coloured shirt. Size andcolour are types of features and large and blueare actual features applied to the specific shirtproduct.

Multiple prices can be associated with asingle product, as can multiple costs. Differentprices can be specified for different currencies,different sets of facilities (or stores), and fordifferent date ranges.

This is a good place to introduce thewide-spread use of effective dating in OFBiz.There are two fields commonly used toexpress effective dates: fromDate and

Page 8: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

355

thruDate. In the product price example thefromDate and thruDate are used to denote thata price goes into effect on a certain date and ata certain time and expires at a certain date andtime. This can be used to keep a history ofprice changes, and to effectively managetemporary promotional prices.

In addition to explicitly specifying pricesthere are also entities and logic that uses theentities to have rules about prices. For instanceyou could create a rule that is in effect for acertain time period that puts all of the productsin a certain category on sale. Or, you couldgive special prices to specific customers orgroups of customers with a simple rule.

Figure 4 – Ofbiz Product

OrderThe Order entities are used to manage

information about sales and purchase ordersand information leading up to an order. Forexample a request for a specific product orfeature may be submitted by a customer andthat would be tracked by the request entities inthe Order package.

The request can be tracked and turnedinto a requirement which can be used to createa Work Effort (a task, for instance; see theWork Effort section below) that will satisfythe requirement and fulfil the request. Once arequirement is made, a quote can be producedwhich, if accepted by the customer, can beused to create an order. Once an order isfulfilled an invoice can be created from the

order. Invoices are part of the Accountingentity package described below.

Orders consist of an Order Header andany number of Order Line Items andAdjustments that describe the detail of theOrder. There are various pieces of informationrelated to an Order that can be associated witheither the header or an individual or multipleline items of an order. Examples include theshipping destination and shipping preferencesof an order which may be the same for all lineitems, or may be different for each one.

Adjustments are used to containinformation about things that change the priceof an order that are not actual goods orservices sold or purchased. Examples includetaxes, shipping, discounts, surcharges, and so

Page 9: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

356

forth. An adjustment can be either a flatamount, a flat amount per quantity, or apercentage of the subtotal of the entire order orthe line item it is associated with. Tax andshipping are handled as special cases and eachadjustment can specify whether or not itshould be included in the sub-total for taxand/or the sub-total for shipping.

Payment preferences can be tracked as anorder is created to automate payment once aninvoice is created. This is especially useful forpayment by credit card or other electronicmeans. If no payment preferences are specifiedthen a standard invoicing and billing processcan be used.

Figure 5 – Ofbiz Order

FacilityA Facility is a building or other physical

location. Examples include warehouses, stores,office buildings, individual rooms in a largerfacility, loading docks, et cetera. Generally afacility will have Contact Mechanismsassociated with it such as a postal address or aphone number.

Facilities can be grouped into FacilityGroups which in turn can be contained in otherFacility Groups. Examples of groups includestore chains, districts, regions, and special

groups used for marketing or the pricing ofproducts.

Inventory Items can be associated with afacility and even a specific location within afacility. Facility Locations can be tracked andmanaged independently of the Inventory Itemsthey contain for easy management ofwarehouse spaces and easy location of specificInventory Items.

Parties can be associated with Facilitiesto represent where a person works, whichorganization controls or operates the facility,who manages the facility, et cetera.

Page 10: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

357

Figure 6 - Ofbiz Facility

ShipmentThe Shipment entities are used to track

incoming and outgoing shipments and to issueitems from inventory or receive items intoinventory.

A Shipment consists of multipleShipment Items each of which, like an OrderItem, represents a certain quantity of a specificProduct. When Shipments are received theycan be reconciled with a purchase order andthat information is tracked in the ShipmentReceipt entity.

When an Inventory Item is issued for anoutgoing shipment it is associated with a PickList that can be prepared from multipleShipments to more efficiently route thepicking path in the warehouse or other facility.

Shipment Packages can be created whichrepresent a single box or shipping unit. Asingle box can contain multiple ShipmentItems, even items from different Shipmentsassuming that they are going to the samedestination.

The Shipment Route entities are used tosplit up a Shipment's journey into multipleroute segments. One route segment for a

Shipment could be a commercial carrier whileanother could be a private carrier or acompany owned truck.

AccountingThe Accounting entities are organized

according to old age and generally acceptedprinciples such as double-entry accounting, aGeneral Ledger with hierarchical accounts,journals and posting of transactions andcorresponding entries. The structure isprimarily based on the OMG GL standard andthe work that was done on an AR/APextension of the OMG GL standard. Thiscorrelates well with other standards such asebXML and OAGIS.

The Accounting entities are structuredsuch that accounts for multiple organizationscan be managed. The multiple organizationscould be multiple companies, or departmentsor other organizations within a company. EachOrganization can have various GL Accountsassociated with it so that it can operate with itsown subset of the Master Chart of Accounts.Each Organization can also have its own set ofJournals for flexibility, even though the use ofJournals should be as minimal as possible in

Page 11: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

358

favour of allowing the system to automaticallycreate and post transactions based on businessevents triggered by standard procedures anddocuments such as purchase and sales orders,invoices, inventory transfers, payments,receipts, and so forth.

There are also entities in place forbudgeting and the reconciliation of budgetsagainst actual GL Account balances for aspecific fiscal period. There are also entities

used to track custom Fiscal Periods and otherentities to keep summary results for accountsin specific periods.

Entities to track Fixed Assets are also partof the Accounting entity package. Thisincludes depreciation information in additionto maintenance, scheduling of Fixed Assets(along with the Work Effort entities), and soforth.

Figure 7 - Ofbiz Accounting

MarketingThe Marketing entities are used to track

information about Marketing Campaigns andrelated information such as Contact Lists(mailing, email, or calling lists) and TrackingCodes. Tracking Codes are primarily used in

automated systems to keep track of where acustomer came from and can be used forcommission purposes in addition to analysingthe effectiveness of specific MarketingCampaigns including advertisements,partnerships or affiliations, and so forth.

Page 12: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

359

Figure 8 - Ofbiz Marketing

Work EffortA Work Effort can be one of many things

including a task, project, project phase, to-doitem, calendar item, or even a WorkflowActivity.

Notice: OFBiz uses an Event DrivenArchitecture (EDA) and ECAs (SECA, EECA,MECA) are used in OFBiz to drive theWorkflow. ECA is the acronym of EventCondition Action. SECAs are for Services(triggered on services conditions), EECA arefor Entity (triggered on entities conditions),MECAs are for Mail.

There are also entities in the Work Effortentity package for keeping track of timesheetsand the pay rate of specific Parties performing

Work Efforts. In addition various otherresources can be tracked such as Fixed Assets,Facilities, et cetera.

When Work Efforts are used formanufacturing or other modification ofProducts the Products and Inventory Itemsconsumed and produced by the specific WorkEffort can be tracked.

Human ResourcesThe Human Resources entities are used to

keep track of positions, responsibilities, skills,employment, termination, benefits, training,pay grades and payroll preferences,performance reviews, resumes andapplications, and other Human Resourcesrelated information.

Page 13: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

360

Figure 9 - Ofbiz Human Resources

Architecture and System OrganizationArchitecture is really just a fancy word

for the organization and composition ofapplication components. There are manydifferent "tools" available as part of Java,J2EE and the OFBiz Core Framework that canbe used together in order to efficiently andeffectively organize data and business logic, toprovide interfaces to other systems, and tocreate user interfaces for humans to interactwith the system.

Entities and ServicesThe most basic components in OFBiz are

Entities and Services. An Entity is a relationaldata construct that contains any number ofFields and can be related to other entities.Basic entities correspond to actual databasestructures. There is also a type of entity calleda "view-entity" that can be used to create avirtual entity from other entities to combinesets of fields by joining other entities together.These constructs can be used to summarizeand group data in general and prepare it forviewing or use in a program.

In usual architectures the data orpersistence layer alone consists of hundreds of

thousands or millions of lines of code thatmust be maintained as the system is developedand customized. With the Entity Engine this isall distilled into only thousands of lines ofXML data definitions that drive an easy todynamic API. Even less-experiencedprogrammers can become productive with thistool in a few days without learning SQL.

There is the "Web Services" buzz that hasspread to every corner of the softwareindustry. The OFBiz system not only uses theservice pattern to communicate with othersystems, it also uses the service pattern insidethe system to provide a clean and easy to usefacility for creating and running business logiccomponents.

A Service is a simple process thatperforms a specific operation. A servicedefinition is used to define the input andoutput parameters that the service consumesand produces. Data passed to the service canbe automatically validated before the actuallogic is called using this definition. After aservice is run the results can be validated inthe same way.

Other services can be run automatically atdifferent points of the running of a service by

Page 14: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

361

using Event-Condition-Action (ECA) rules todenote what other services should be calledand under what circumstances. This allowslogic to be extended without modifying theoriginal logic and allows the system to beorganized cleanly such that each serviceperforms one simple, specific task.

Services can be implemented in a numberof different ways to make it easier forengineers to match the tools available to thetask at hand. It also makes it easy to keep trackof the logic components in the system whichmay exists in hundreds of different files andeven on different computers used inside thecompany or computers of a partneringcompany.

Web Framework and XML Mini-Languages

There are many useful tools in the OFBizCore Framework that address points ofdifficulty in web, client-server and peer-to-peer based enterprise applications. A toolexists for simplifying the use of flat data filesmaking it easier to integrate with legacysystems. Various tools exist for organizing andstructuring web-based content and applicationswith a flexible separation of logic andpresentation. These tools along with thestandard J2EE and other Java tools make iteasy for the system to communicate withhuman users and other systems.

To make it easier to use these CoreFramework tools another component called anXML Mini-Language has been created thatallows an engineer or other user to create anXML file with simple, well-definedinstructions that the system can understand andexecute. Expressing logic in a Mini-Lang"simple-method" often requires only one thirdas much code as an equivalent Java methodand is much easier to read and modify forsemi-technical users. Processing form input,composing services into larger services, andinteracting with data in the database arecommon things that can be done easily withthis tool.

CONCLUSION ON APACHEOFBIZ SOLUTION

The Open for Business Project is acollaborative effort involving a large group ofusers and developers and is moderated by asmall central team. The applications and

framework components are being used in awide variety of businesses and applicationsand are customized heavily in manycircumstances to meet the needs of theorganizations using the software.

This is only possible and can only operateefficiently and effectively as an open sourceproject. This is in sharp contrast to the style ofmost commercial vendors that restrict manypossible uses of and extensions to theirsoftware through design limitations orlicensing restrictions in order to extract agreater profit from the use of the software.Much of the early commercial software wasmuch more flexible and open and lessrestrictive than many modern packages. Asthat trend continues more developers and usersof software start to consider a more trustingalternative.

While those who contribute to the project,including the moderators, choose not to forceothers who use it to pay them, they can benefitin many other ways. Often the user will findthat the system is so close to what they needthat a small amount of effort can change thesystem to be perfect for them. If that effort iscontributed back to the community others in asimilar situation can help improve andmaintain it. The contributor can freely upgradehis own system with other improvements inthe main project without having to worryabout changes that might conflict with hisaddition.

In general OFBiz is meant to provide somuch value that the user will be willing andhappy to contribute something back and keepthe effort going. This again is in sharp contrastto the commercial approach of forcing users topay for every right of use or modificationrelated to the software. The open sourceapproach enables information sharing and thatinformation can be leveraged by all in thecommunity to improve the use of the softwarefor their own needs.

So, for the moderators of the project:what do they get for all of the time spentdesigning frameworks and applications,writing code, and answering questions? It goesback to the basic law of the harvest: you reapwhat you sow. The more value somethingprovides, the more it is worth.

Page 15: ADAPTING OPEN-SOURCE SOFTAW RE FOR …seaopenresearch.eu/Journals/articles/SPAS_1_42.pdf · Fedena Ruby, MySQL Apache License ERP for Schools/Universities India FrontAccounting PHP,

SEA - Practical Application of ScienceVolume I, Issue 1 (1), 2013

362

References[1] Wikipedia:

http://en.wikipedia.org/wiki/List_of_ERP_software_packages

[2] Apache Ofbiz Documentation:http://ofbiz.apache.org/documentation.html

[3] All the print screens that are presented in thisarticle are from my version of Ofbiz installedon my development server.