You are on page 1of 38

Open Source ERP+CRM

Solution for the Java™


Platform
Jorg Janke
CTO
Accorto, Inc.

1235, Open Source ERP+CRM Solution in Java


Overall Goal

Learn about Design Strategy


and Implementation Decisions
… to meet business requirements for an integrated
Enterprise Resource Planning (ERP) and
Customer Relationship Management (CRM)
application
… to target Small-Medium-Enterprises (SME)
globally with a Open Source Collaboration strategy
… using nothing but Java™ Technology
(JFC/Swing, Servlet/JSP™, EJB™, JDBC™, JMS,
Rules Engine, etc.)

Middle
Beginning 2 1235, Open Source ERP+CRM Solution in Java
Learning Objectives

• As a result of this presentation, you will


have a better understanding of:
– Global Business Application Requirements
– Compiere Application Architecture
– Design Decisions and Alternatives
– Use of Java Technology
• Bonus:
– You can get Compiere & use it for free
(www.compiere.org/download)

Middle
Beginning 3 1235, Open Source ERP+CRM Solution in Java
Speaker’s Qualifications

• Jorg Janke is CTO and Founder of Accorto, Inc.


(www.accorto.com), the main contributor of
Compiere Open Source ERP+CRM
(www.compiere.org)
• 20+ years ERP business experience with
ADV/Orga, UNISYS and Oracle (Director
Applications Development)
• First General Ledger Prototype in Smalltalk in ’88
evolved into today’s Compiere architecture.
• BA in Accounting & CS, MBA

Middle
Beginning 4 1235, Open Source ERP+CRM Solution in Java
Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 5 1235, Open Source ERP+CRM Solution in Java

Product Introduction

• Two Logical Products


– The Compiere Framework
– The Compiere Product / Application
• Compiere Framework
– Specific Toolset for Business Applications
– Life-cycle support
• Creating Functionality
• Deploying Solutions
• Maintenance
• Presentation concentrates on Framework

Middle 6 1235, Open Source ERP+CRM Solution in Java



Product Introduction (cont.)

• Compiere Product (Application)


– Integrated Business Application
– ERP (Enterprise Resource Planning) and
CRM (Customer Relations Management)
– For Small-Medium-Enterprises
– In the Global Market
• Multi-Language, Multi-Currency, Multi-Tax,
Multi-Accounting, Multi-Org

Middle 7 1235, Open Source ERP+CRM Solution in Java



Target Market Requirements

• Easy User Interface (hide complexity)


– Show only what I need !! Main Driver
– Show it in my language
• Easy Install & Implementation
– High Performance, Scalable
– Hosting Option
• Operated by End-Users (no IT) Main Driver
• Easy to Customize and Extend
– Reporting
– Interfaces
• Required Functionality

Middle 8 1235, Open Source ERP+CRM Solution in Java



User Requirements

• The User Profile


– Basic IT literate
– Basic Subject knowledge (Accounting)
• Need to minimize
– Implementation costs and time
• Formal Requirements Analysis
– Getting good requirements is hard and expensive
• Formal Training
– Operation complexity
• Product Lifetime: 10+ years

Middle 9 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 10 1235, Open Source ERP+CRM Solution in Java

Dynamic User Interface

• Principles
– Generate – don’t code !
• New window in 30 minutes (after Design)
– Hide not needed Fields
• Two UI’s
– Rich UI – “Client/Server” è Intranet
• Windows / Swing
– Java Environment Install
– Reach UI – Web è Internet
• Servlet / JSP
– HTML 4.0 Browser

Middle 11 1235, Open Source ERP+CRM Solution in Java



Application Dictionary

• Central Definition of
Elements/Fields
– Validation
– Default (static, dynamic)
– Appearance
– Label, Help
• Grouped into
– Tables/Columns
– Windows/Tabs

Middle 12 1235, Open Source ERP+CRM Solution in Java



Why not “everything web” ?

• Web HTML Applications Limits - as of Today


– Requires multiple tiers and
more complex infrastructure
– Not easy to automatically install b le
i l a
– Client site navigation & validation limited a …
a v r e
– Very limited dynamic behavior u t he
b yw
– Inconsistencies across Browsers … er
– Latency ev
– User feedback
• Applet would solve it, but
– Requires significant downloads (i.e. the JFC/Swing
API)
– Browser Restrictions (e.g. Airport/Hotel stations)
Middle 13 1235, Open Source ERP+CRM Solution in Java

Compiere Framework Demo

• Reach “HTML” • Rich “Windows”


Interface Interface
– Simplified Look&Feel – Menu search
– Dynamic Capabilities – Editors
– Zoom
– Workflow

Middle 14 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 15 1235, Open Source ERP+CRM Solution in Java
ƒ
Simple Installation

• Automatic Install
– Oracle 8.1.7 Database Install (*)
– Client Install (incl. Java Runtime)
– Server Install, incl. The Enterprise JavaBeans™
(EJB™) specification
• (Currently Semi-) Automatic Install
– Oracle 8.1.7 Apache Web Interface
• Automatic Upgrade of Application Clients
• Manual Install
– EJB technology on separate Tier
– Java™ Servlet API/JavaServer Pages™ (JSP™)
technology-based Engine on separate Tier

Middle 16 1235, Open Source ERP+CRM Solution in Java


ƒ
t i o n
Fast Implementation e nta hours
p lem an 4
Im s th
l es
in
• Principle: No decision is final
– Business Rules and Information Needs Change
– Good Requirements/Gap Analysis is hard
• Dependent on Business Experience
• Dependent on Product Capabilities Knowledge
• Rule Based & All rules can be changed
– On the fly – including damage control
– By the (authorized) user
• Allows fast Start - with
Refinements and Adjustments as you go

Middle 17 1235, Open Source ERP+CRM Solution in Java


ƒ
Open Interfaces

• XML based Interfaces


– Open Applications Group Interface Specifications
– Open Financial Exchange
• Additional “flat file” import
(Comma/Tab delimited, fixed format)
– Product (Definition, Price, Movements)
– Business Partners
– Chart of Accounts
• … not so Open Interfaces
– EDI will be with us for a while
– In preparation
• QuickBooks, Great Plains, Lawson, JD Edwards

Middle 18 1235, Open Source ERP+CRM Solution in Java


ƒ
What do the Tiers do?

• Client • Server
– Presentation – Business Rules
– UI Generation • EJB specification
– Input validation • Database (PL/SQL)
– Background / “Batch”
• Processing (JMS
• Browser API, DB Job Control)
– Presentation • Control/Scheduling
(JMS API, DB
– Simple validation (JS) Advanced Queuing)
• Web Server
– UI Generation
– Input validation
Middle 19 1235, Open Source ERP+CRM Solution in Java
ƒ
Supporting 2 to n Tiers

Java HTML Java HTML


Application Browser Application Browser

IOOP
HTML/SSL

Web
Web Server
Server
JDBC

IOOP

JDBC
EJB
EJB

Web Server
EJB Database
Database

Middle 20 1235, Open Source ERP+CRM Solution in Java


ƒ
High Performance, Scalable

• Implementation Options
– From Two Tier …
• “Client/Server”
• Integrated DB/EJB/Web Server & Browser
• Minimizes Communication
– … to n Tier
• Independent tier for EJB™ technology and/or Web
Server
• Designed to be Hostable
– ASP / Service Bureau

Middle 21 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 22 1235, Open Source ERP+CRM Solution in Java

The User is the Operator

• Operator-less environment
– Predefined Backup & Recovery Procedures
– Use of Database failure management features
• System needs to detect Errors
– Users make errors (or: System did not prevent it)
– Users sometimes don’t notice errors
– Error detection levels
• Document
• Application
• Database

Middle 23 1235, Open Source ERP+CRM Solution in Java



Save-fail

• Complex applications cannot be fail-save


– Too many potential sources
– Users define “Error” broader Works as designed

• System needs to be Error-Tolerant


– System Available while in Error
• Differentiate between Document handling
and (Accounting) Consequences
– Ability to recover and also un-do setup errors
• E.g. Re-run posting, if rules were not correct

Middle 24 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 25 1235, Open Source ERP+CRM Solution in Java

Customization

• Standard Customizations
– Window/Report Definition
• Sequence of Fields; Sort Order; Display Rules
• Terminology (e.g. Item vs. Product)
– Access Rules, Workflows, etc.
• Beyond Standard Customization
– Rule customization (ILOG JRules Language)
– Call-out for custom validation (Java™ technology)
– Database Triggers (PL/SQL or Java technology)
– Special Reports (InetSoft Style Report XML)
– User supplied Java technology-based classes (“Java
Classes”) for non-standard Documents, Key
Performance Measures, …

Middle 26 1235, Open Source ERP+CRM Solution in Java



Extensions (new Products)

• New Application Dictionary entries


– Table/Column, Window/Tab/Field
– Processes/Reports
– Validation Rules
• Upgrade recognizes extensions
• Toolset “Sources” Available
– Rational Rose
– ER/Studio, RapidSQL (Embacadero)
– Oracle Enterprise Manager
– JTest, OptimizeIt, Install Anywhere, …

Middle 27 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 28 1235, Open Source ERP+CRM Solution in Java

Integrated Reporting

• Principle: Generate – don’t code !


• Lists & Reports
– Field Selection, Sorting, Sub-Totals, …
– Dynamic Group-by
• Financial Reporting
– Balance Sheet, Cash Flow, …
• Based on InetSoft Style Report
– Easy to integrate
– Some issues:
• Use different (version) of XML “Java Library”
• No support for Master/Detail Reporting

Middle 29 1235, Open Source ERP+CRM Solution in Java



Additional Reporting Options

• Compiere Business Views


– Predefined “user ready” de-normalized views
– For SQL based external reporting tools
– Uses same security rules as Application
• Report Views
– User defined normalized views
– Using the integrated Reporting Infrastructure

Middle 30 1235, Open Source ERP+CRM Solution in Java


Topic Areas

• Product Introduction & Requirements


• Dynamic User Interface
• Installation and Implementation
• Operations
• Customization & Extensions
• Reporting
• Open Source Collaboration

Middle
Beginning 31 1235, Open Source ERP+CRM Solution in Java

Open Source Collaboration

• Why give it away?


– Market entry cost for new ERP/CRM vendor
– Core Solution for specific ERP needs
– Developing countries can substitute lack of
funds with manpower
• How does Accorto make money?
– Support & Services for Core Solution

Middle 32 1235, Open Source ERP+CRM Solution in Java


Open Source Benefits

• Public scrutiny
– More stable – “Peer Reviews”
– No chance to hide something
• User driven Priorities
• Building User & Developer Community
– Availability of specific solutions
and extensions
– Additional Support Option

Middle 33 1235, Open Source ERP+CRM Solution in Java


Java™ Technology Lessens
Learned

• Java technology is ideal for complex Applications


– Standard Libraries from multiple Vendors
– Higher Productivity than 4GL tools
– Custom extensions using Interfaces & Dynamic
Class Loading
• There is no Magic in Integration work
– Reused Components use different Libraries
(versions) or Vendor specifics (e.g. XML)
– Component Installation & Rollout differences
determine Vendor Switching Costs

Middle
End 34 1235, Open Source ERP+CRM Solution in Java
Summary

• You now have a better understanding of:


– Global Business Application Requirements
– Compiere Application Architecture
– Design Decisions and Alternatives
– Use of Java Technology

Middle
End 35 1235, Open Source ERP+CRM Solution in Java
Useful Links

• www.compiere.org
• www.accorto.com
• www.opensource.org
• www.openapplications.org
• www.ofx.net

Middle
End 36 1235, Open Source ERP+CRM Solution in Java
1235, Open Source ERP+CRM Solution in Java