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 !! – Show it in my language
Main Driver
• Easy Install & Implementation – High Performance, Scalable – Hosting Option
• Operated by End-Users (no IT) • Easy to Customize and Extend – Reporting – Interfaces
• Required Functionality Middle
8
1235, Open Source ERP+CRM Solution in Java
Main Driver
•
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 • Servlet / JSP – HTML 4.0 Browser
Middle
11
1235, Open Source ERP+CRM Solution in Java
è Internet
‚
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 le – Not easy to automatically install b a l i … – Client site navigation & validation limited a v e a r t he – Very limited dynamic behavior u 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” Interface – Simplified Look&Feel – Dynamic Capabilities
Middle
14
1235, Open Source ERP+CRM Solution in Java
• Rich “Windows” Interface – – – –
Menu search Editors Zoom Workflow
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
ƒ
Fast Implementation • Principle: No decision is final
n o i t nta hours e lem an 4 p Im s th es l in
– 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 – Presentation – UI Generation – Input validation
• Server – Business Rules • EJB specification • Database (PL/SQL)
– Background / “Batch”
• Browser – Presentation – Simple validation (JS)
• Web Server – UI Generation – Input validation Middle
19
1235, Open Source ERP+CRM Solution in Java
• Processing (JMS API, DB Job Control) • Control/Scheduling (JMS API, DB Advanced Queuing)
ƒ
Supporting 2 to n Tiers
Java Application
HTML Browser
Java Application
HTML Browser
IOOP JDBC
HTML/SSL
IOOP
JDBC
Web Web Server Server
EJB EJB
Web Server EJB Database
Middle
20
1235, Open Source ERP+CRM Solution in Java
Database
ƒ
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 – – – – –
Middle
26
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, …
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 – – – –
Middle
27
Rational Rose ER/Studio, RapidSQL (Embacadero) Oracle Enterprise Manager JTest, OptimizeIt, Install Anywhere, …
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: – – – –
Middle End
35
Global Business Application Requirements Compiere Application Architecture Design Decisions and Alternatives Use of Java Technology
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