Professional Documents
Culture Documents
Chapter 3 - Modularity
3.0v3
2008-2012 Openbravo S.L.U. All rights reserved. The information in this document is confidential and may not be disseminated or disclosed to third parties (either in digital form or on paper) without the prior written consent of Openbravo S.L.U.
Modularity
Overview
Key concept of Modularity introduced in version 2.50 A paradigm shift in the way Openbravo ERP functionality is developed
Modularity is the ability for developers to build, package and distribute Extension Modules and for users to install, uninstall and update them
Chapter 3 Modularity
Page
Modularity
Agenda
Traditional Approach
Overview
Management
Developer's View
The Ecosystem
Chapter 3 Modularity
Page
Traditional Approach
The Problem
Functionality required can vary per country and industry area. Pre-2.50 Openbravo ERP offered a monolithic architecture. Multiple development of the same functionality is a waste of resources. Each partner is locked into maintaining their own customizations for the lifecycle of the application. No mechanism to share functionality with the Openbravo community. If a partner in India builds some functionality, they have no way of sharing that with other partners in the community.
Chapter 3 Modularity
Page
Traditional Approach
Customizing vs. Extending
Customizing
Open Source SW is tempting to customize since it is usually more innovative but less mature With Great Power Comes Great Responsibility Tendency to find yourself with a piece of software too complicated to upgrade and too expensive to maintain Open Source developers prone to hacking and changing code
Extending
ALL Openbravo ERP developments should be done as part of a module as of Openbravo ERP version 2.50 Much easier to apply core enhancements/fixes/patches Start with Vanilla Solutions: most often, customizations initially thought essential are in fact not needed New developments neatly packaged and distributed
http://paolojuvara.blogspot.com/2009/05/extend-dont-customize.html
Openbravo SL, 2007-2011 Chapter 3 Modularity Page
Modularity
Agenda
Traditional Approach
Overview
Management
Developer's View
The Ecosystem
Chapter 3 Modularity
Page
Overview
Terminology
Chapter 3 Modularity
Page
Overview
Advantages
Developers
Distributed development Lower barriers to contribution Shorter time to market coverage
End Users
Broader and deeper functional Better Localization Support
Chapter 3 Modularity
Page
Modularity
Agenda
Traditional Approach
Overview
Management
Developer's View
The Ecosystem
Chapter 3 Modularity
Page
Management
The Vision
A working Openbravo ERP system will be composed of both the Core Openbravo module plus Extension Modules; Module, Pack and Template.
Chapter 3 Modularity
Page
10
Management
The Central Repository
The Central Repository is a system embedded in the Openbravo Forge to provide services related to Openbravo Modules for developers and users.
Chapter 3 Modularity
Page
11
Management
Module Management Console
Search for modules Scan for updates Add new modules Remove installed modules Rebuild the application
NOTE: If a module is ever uninstalled the following happens: 1. if it was a template with a configuration script, the screen customizations are reversed 2. data of any custom data structures is preserved and not deleted
Chapter 3 Modularity
Page
12
Modularity
Agenda
Traditional Approach
Overview
Management
Developer's View
The Ecosystem
Chapter 3 Modularity
Page
13
Developer's View
Types of Modules
Modules
Base content container
Packs
Collection of modules Simplify deployment Encourage fine grained modules Special packs are localization and verticalization packs Concepts
Able to add new elements to Openbravo Cannot modify elements of other modules or of Core
The combination of a pack and a configuration script Able to modify the behavior of other modules, including Core Industry Templates
Chapter 3 Modularity
Page
14
Developer's View
Artefacts
Application
Dictionary Components
Software Resources
Module.obx
Reference
Data
Application Dictionary Components referred by transactions and that tend not to change frequently
Charts of accounts, tax codes, banks, product categories, etc. Can be defined at system, client or organization level.
Configuration Script
Chapter 3 Modularity
Page
15
Developer's View
Packaging
Managing modules must be as easy as possible for the developers. All the modules content (all the artifacts described earlier) is located within its subfolder inside the main Openbravo/modules folder Modules are distributed as .obx files plain zip files of the modules folder A set of ant tasks is offered to automate packaging
Chapter 3 Modularity
Page
16
Modularity
Agenda
Traditional Approach
Overview
Management
Developer's View
The Ecosystem
Chapter 3 Modularity
Page
17
The Ecosystem
Forge: Register a Project and Publish the Module
The Procedure: Login to Openbravo Forge http://forge.openbravo.com/ Register your Project. Select the services you want to be available for your project, for example a discussion forum. Select My Profile. You will see that the module you registered in Openbravo ERP is listed. Click the module. Associate the module with the project. Navigate to the location of your module's .obx file. And select Publish OBX File.
Chapter 3 Modularity
Page
18
The Ecosystem
Forge: Make Use of the Free Tools
Rich Project Management Tools List and Publish Free, Professional (free with OBPS) and Commercial projects/modules Commercialize your modules with Openbravo Exchange (http://exchange.openbravo.com/)
Chapter 3 Modularity
Page
19
The Ecosystem
Forge: Leverage Existing Offer Available for download through Openbravo ERP or from the Openbravo Forge http://forge.openbravo.com/openbravo/moduleslist
Chapter 3 Modularity
Page
20
Modularity
Further Reading
You are recommended to attend or review the series of Extension Module Demonstrations Videos. You can find all resources for this at :
http://wiki.openbravo.com/wiki/ERP/2.50/Extension_Module_Demonstrations_Videos
The following additional features can be found in the developers guide under advanced features. They are not covered in this class but make for recommended further reading. UUIDs Module Dependencies How to manage version numbers On line translation Model Implementation concept Modes of deployment class and war Master data and sample data
http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Concepts/Modularity#Development_of_Module_artifacts
Openbravo SL, 2007-2011 Chapter 3 Modularity Page
21
Chapter 3 Modularity
Page
22