You are on page 1of 22

Basic Development Training

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

Modularity
Agenda

Traditional Approach

Overview

Management

Developer's View

The Ecosystem

Openbravo SL, 2007-2011

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.

Openbravo SL, 2007-2011

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

Avoid at all costs!

Use the benefits of maintainability and solution packaging! A MUST READ!

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

Overview
Terminology

Let's define some terms:


Module any extension on top of core Openbravo ERP Artifact a framework element of Openbravo ERP (window, stored procedure, etc) Localization country specific functionality Vertical industry specific functionality Monolithic - rigid Pack type of module that groups a few basic modules together Template type of module that allows changes to the core Ecosystem community & partners not having to reinvent the wheel

Openbravo SL, 2007-2011

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

Global reach for all contributors


Licensing Freedom Community Collaboration Development Scalability Drive by contributions

Lower total cost of ownership and


improved return on investment (ROI) Reduced Implementation Time and faster return on investment (ROI) Richer Ecosystem

Ease of development in the Life-cycle : high power of extension module.

Ease of deployment in the

Life-cycle : installation, updates


and uninstall.

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

Modularity
Agenda

Traditional Approach

Overview

Management

Developer's View

The Ecosystem

Openbravo SL, 2007-2011

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.

Openbravo SL, 2007-2011

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.

Openbravo SL, 2007-2011

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

12

Modularity
Agenda

Traditional Approach

Overview

Management

Developer's View

The Ecosystem

Openbravo SL, 2007-2011

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

Application Dictionary components Software resources Reference data

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

14

Developer's View
Artefacts

Application
Dictionary Components

Metadata that describe Openbravo ERP


Windows, Tabs, Fields, Messages, etc.

Software Resources

Openbravo ERP components not expressed as metadata


Java classes, jar libraries, XML files, etc.

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

Changes in Application Dictionary Components to support a specific set of business processes


Hide / show tabs or fields, replace standard processes, etc. Only meaningful changes are allowed.

Openbravo SL, 2007-2011

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

16

Modularity
Agenda

Traditional Approach

Overview

Management

Developer's View

The Ecosystem

Openbravo SL, 2007-2011

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.

Openbravo SL, 2007-2011

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/)

Openbravo SL, 2007-2011

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

Openbravo SL, 2007-2011

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

Openbravo SL, 2007-2011

Chapter 3 Modularity

Page

22

You might also like