OSDC 2008 Apache Ofbiz Talk

Embed Size (px)

Citation preview

OSDC 2008 Talk

Implementing a Custom B2B System Using Apache Ofbiz:

Stories from the front line

Guy [email protected]

http://www.conchus.com/

Theme created bySakari Koivunen and Henrik OmmaReleased under the LGPL license.

Outline

Our situation

What is Ofbiz

Our Development Journey

Conclusion

Our Situation

Client required B2B E-commerce solution

Small number of users (around 4000)

Huge range of products (around 100,000)

Complex and large orders ($10,000+ not unusual)

System to be expanded to act as portal to:

information stored on ERP

access custom business processes (which we had to implement :-) )

Our Situation (cont)

Constrains

Small budget

Small development team

Pressure to release functioning system early

Vague and fluid requirements

Our Situation (cont)

We decided to give Ofbiz a go because:

Cost

$0 to buy and after contacting one of the authors relatively cheap support if we got into trouble.

OOTB (Out of the Box) functionality provided

E-commerce and Order Management was there

Good quality code build from the data model up

We felt confident the applications and frameworks would grow nicely as our system evolved

What is Ofbiz - Overview

Ofbiz = Open For Business

Enterprise Automation Software

Part of Apache: http://ofbiz.apache.org/

Started in 2001

Founders

David E. [email protected]

Andy [email protected]

Apache License Version 2.0

Framework AND Applications

What is Ofbiz The Inspiration (Code)

What is Ofbiz The Inspiration (Data Model)

What is Ofbiz - Technologies

Written in Java BUT logic can be written in

Beanshell, Groovy

Jython

Ofbiz XML language called Minilang

Is a set of Java web application so sits happily in any Java Web or Application Container

Composed of two sections

Framework

Applications

What is Ofbiz Framework AND Applications

+

What is Ofbiz - Framework

Framework Elements (some)

Entity Engine (so good!!!)

How we interact with database

Service Engine

How we interact with the system

User Interaction

Request Mapper

Screen Widget Thingy

XML form generation

What is Ofbiz Framework (cont)

Framework Integration

Integration of third party tools for:

Reporting (Jasper and FOP)

Workflow (Shark)... deprecated

IO tools for reading and writing

CSV files

Fixed width files (was very useful)

Framework Tools

For traversing and managing framework elements.

What is Ofbiz Framework: Entity Engine

Ofbiz does not do ORM but keeps data relational

Works for many DBs and can transparently use multiple DBs in a single system

Also supports replication at the framework level!!!

Gives user tools for CRUD operations

Entity model and seed data written in XML

What is Ofbiz Framework: Entity Engine - Entity Model

...

...

What is Ofbiz Framework: Entity Engine - Seed Data

...

What is Ofbiz Framework: Entity Engine Data Model

Implementation of The Data Model Resource Book by Len Silverston

Highly flexible and comprehensive with over 700 tables and useful seed data in default install

What we really loved about the system

What is Ofbiz Framework: Entity Reference Tool

What is Ofbiz Framework: Service Engine

Can be written in:

Java, Jython, Beanshell/Groovy

Minilang (Ofbiz XML language)

Anything you want with customised handler

Filtering of data coming in/out of service

Have ECA (Event Condition Action)

Transactional

Synchronous, Asynchronous and Scheduled

What is Ofbiz Framework: Service Reference Tool

What is Ofbiz Framework: Integration

All the parts of the framework work well with each other i.e.

Entity Created

CRUD Services created based on Entity

Form created based on Entity

What is Ofbiz Applications (Marketing Speak)

Open source enterprise automation software project i.e.

Open Source ERP

Open Source CRM

Open Source E-Business / E-Commerce

Open Source SCM (Supply Chain Management)

etc.

What is Ofbiz Applications (What You See)

Applications

E-commerce

Product Management

Price Management

User and Party Mangement

Workeffort Application

Accounting Application

etc.

What is Ofbiz Applications: Accounting App

What is Ofbiz Applications: Ecommerce App

Our Development Journey

Requirements Gathering

What does the client want

What can Ofbiz do

Exploring Ofbiz processes and data model helped us clarify clients requirements (we were geeks not business analysts)

Importing Data

From existing ERP (Fixed width tango)

From divisions (saved $$$ for client)

From customers (CSV and MS Excel magic for non-GUI bulk entry)

Our Development Journey (cont)

Exporting Data

Orders to existing ERP

Generating customer reports, orders and invoices etc (50,000+ pages per month... yes we email most of them now)

Customisation of Applications

Work on e-commerce and order managements

Our Development Journey (cont)

Creating own Application

Originally created own Accounting app

Now Ofbiz has own Accounting app

Web portal for existing ERP

Created marketing CMS

Used Drupal (PHP)

integrated Ofbiz and Drupal with CAS (Central Authentication Server)

Our Development Journey (cont)

Recruiting Talent

Not many Ofbiz experts around

Working with Ofbiz developers

Excellent response time on mailing lists

Getting code added to trunk...

Conclusion: Is it for me?

Ramp up time

Support and training

Problem domain relates to Ofbiz

Is technology sexy?

Conclusion: Is it for me? (cont)

Alternatives

Ofbiz based:

Opentaps http://www.opentaps.org/

Neogia http://www.neogia.org/

Java based:

Compiere http://www.compiere.com/

Conclusion: Happy Hacking

Docs

Website

http://ofbiz.apache.org

http://docs.ofbiz.org/display/OFBADMIN/OFBiz+Documentation+Index

Related Books

http://docs.ofbiz.org/display/OFBADMIN/OFBiz+Related+Books

Book

http://www.packtpub.com/apache-ofbiz-development-beginners-tutorial/book

Conclusion: Happy Hacking (cont)

Videos

Framework videos

http://docs.ofbiz.org/display/OFBTECH/Framework+Introduction+Videos+and+Diagrams

Old conference videos

http://ofbiz.apache.org/VideosConf.html

Demo

https://demo.hotwaxmedia.com/ecommerce

https://demo.hotwaxmedia.com/webtools

Questions?

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level