Ofbiz Guy Gershoni 20060621
-
Upload
melbournepatterns -
Category
Business
-
view
1.053 -
download
0
description
Transcript of Ofbiz Guy Gershoni 20060621
Ofbiz
Guy Gershoni
An introduction and reflections about the Ofbiz framework.
Outline
● Introduction to Ofbiz
● Introduction to Framework
● Introduction to Data Model
● Is it for me?
Introduction to Ofbiz
● Overview● What is Ofbiz?● What is under the hood?● Overview of Framework● Overview of Applications
Overview
● Ofbiz = Open For Business● www.ofbiz.org● Started in 2001 (I think)● Founders
David E. Jones [email protected] Andy Zeneski [email protected]
● MIT License moving to Apache● Currently in Apache Incubator
http://incubator.apache.org/projects/ofbiz.html
What is Ofbiz?
● 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 under the hood?
● All written in Java (1.4)● Sits happily in any Web Container i.e.
Tomcat or Jetty● Composed of two sections
Framework Applications
Framework - Overview
● Framework Service Engine Entity Engine Request Manager Screen Manager Integration of third party tools for:
● Reporting● Workflow● etc.
Applications - Overview
● Applications E-commerce Product Mangement Price Management User and Party Mangement etc.
Introduction to Framework
● Entity Engine How we interact with database
● Service Engine How we interact with the system
● Minilang XML language for writing business logic
● User Interaction Request Mapper Screen Widget Thingy
Entity Engine
● Ofbiz does not do ORM but keeps data relational
● Works for many DBs and can tranperantly use multiple DBs in a single system
● Gives user tools for CRUD operations● Entity model and seed data written in
XML
Entity Model<entity entity-name="Party"
package-name="org.ofbiz.party.party"
title="Party Entity">
<field name="partyId" type="id-ne"></field>
<field name="partyTypeId" type="id-ne"></field>
...
<prim-key field="partyId"/>
<relation type="one" fk-name="PARTY_PTY_TYP" rel-entity-name="PartyType">
<key-map field-name="partyTypeId"/>
</relation>
<relation type="one" fk-name="PARTY_CUL" title="CreatedBy" rel-entity-name="UserLogin">
<key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
</relation>
...
<index name="PARTYEXT_ID_IDX">
<index-field name="externalId"/>
</index>
</entity>
Seed Data
<entity-engine-xml>
<AgreementItemType agreementItemTypeId="SUBAGREEMENT" description="Sub-Agreement" hasTable="N" parentTypeId=""/>
...
</entity-engine>
Service Engine
● Can be written in: Java Beanshell Minilang Anything you want with customised handler
● Have ECA● Transactional● Synchronous, Asynchronous and
Schedualed
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
● All elements can be written in XML but are extendable
Introduction to Data Model
● Based on book “The Data Model Resource Book” by Len Silverston
● Highly flexable and comprehensive with over 700 tables in default install
● What we really loved about the system
Is it for me?
● Ramp up time● Support and training● Problem domain relates to Ofbiz● Is technology sexy?
Happy Hacking
● Have a look at www.ofbiz.org for tutorials and videos
● Search and email the mailing lists● Contact me [email protected]