BTT Chapter 03 Modularity Introduction (1)

Embed Size (px)

Citation preview

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    1/22

    Basic Development Training

    Chapter 3 - Modularity3.0v3

    2008-2012 Openbravo S.L.U. All rights reserved. The information in this document is confidential and may not be disseminated or disclosed tothird parties (either in digital form or on paper) without the prior written consent of Openbravo S.L.U.

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    2/22

    Page 2 Openbravo SL, 2007-2011 Chapter 3 Modularity

    ModularityOverview

    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 distributeExtension Modules and for users to install, uninstall and update them

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    3/22

    Page 3 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Modularity Agenda

    Traditional Approach

    Overview

    Management

    Developer's View

    The Ecosystem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    4/22

    Page 4 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Traditional ApproachThe 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 theapplication.

    No mechanism to share functionality with the Openbravo community.

    If a partner in India builds some functionality, they have no way of sharing that withother partners in the community.

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    5/22Page 5 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Traditional ApproachCustomizing vs. Extending

    A MUST READ!http://paolojuvara.blogspot.com/2009/05/extend-dont-customize.html

    Open Source SW is tempting to customize

    since it is usually more innovative but lessmature

    With Great Power Comes GreatResponsibility

    Tendency to find yourself with a piece ofsoftware too complicated to upgrade and tooexpensive to maintain

    Open Source developers prone tohacking and changing code

    Avoid at all costs! Use the benefits of maintainability and solution packaging!

    Extending ALL Openbravo ERP developments should

    be done as part of a module as of OpenbravoERP version 2.50

    Much easier to apply coreenhancements/fixes/patches

    Start with Vanilla Solutions: most often,customizations initially thought essential arein fact not needed

    New developments neatly packaged anddistributed

    Customizing

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    6/22Page 6 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Modularity Agenda

    Traditional Approach

    Overview

    Management

    Developer's View

    The Ecosystem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    7/22Page 7 Openbravo SL, 2007-2011 Chapter 3 Modularity

    OverviewTerminology

    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

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    8/22Page 8 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Overview Advantages

    Distributed development Lower barriers to contribution

    Shorter time to market Global reach for all contributors

    Licensing Freedom

    Community Collaboration

    Development Scalability Drive by contributions

    Broader and deeper functional coverage

    Better Localization Support Lower total cost of ownership and

    improved return on investment (ROI)

    Reduced Implementation Time and

    faster return on investment (ROI) Richer Ecosystem

    Developers End Users

    Ease of development in theLife-cycle : high power ofextension module.

    Ease of deployment in theLife-cycle : installation, updatesand uninstall.

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    9/22Page 9 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Modularity Agenda

    Traditional Approach

    Overview

    Management

    Developer's View

    The Ecosystem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    10/22Page 10 Openbravo SL, 2007-2011 Chapter 3 Modularity

    ManagementThe Vision

    A working Openbravo ERP system will be composed of both the Core Openbravo module plus ExtensionModules; Module, Pack and Template.

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    11/22Page 11 Openbravo SL, 2007-2011 Chapter 3 Modularity

    The Central Repository is a system embedded in the Openbravo Forge to provide services related to Openbravo Modules for developers and users.

    ManagementThe Central Repository

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    12/22

    Page 12 Openbravo SL, 2007-2011 Chapter 3 Modularity

    ManagementModule Management Console

    Search for modules

    Scan for updates

    Add new modules

    Remove installedmodules

    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 reversed2. data of any custom data structures is preserved and not deleted

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    13/22

    Page 13 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Modularity Agenda

    Traditional Approach

    Overview

    Management

    Developer's View

    The Ecosystem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    14/22

    Page 14 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Concepts

    Modules Packs

    Industry Templates

    Base content container Application Dictionary componentsSoftware resourcesReference data

    Able to add new elements toOpenbravo

    Cannot modify elements of other modules or of Core

    Collection of modulesSimplify deploymentEncourage fine grained modulesSpecial packs are localization andverticalization packs

    The combination of a pack and aconfiguration script Able to modify the behavior of other modules, including Core

    Developer's ViewTypes of Modules

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    15/22

    Page 15 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Module.obx

    Application

    DictionaryComponents

    SoftwareResources

    ReferenceData

    ConfigurationScript

    Metadata that describe Openbravo ERPWindows, Tabs, Fields, Messages, etc.

    Openbravo ERP components not expressed as metadataJava classes, jar libraries, XML files, etc.

    Application Dictionary Components referred by transactionsand that tend not to change frequently

    Charts of accounts, tax codes, banks, product categories, etc.Can be defined at system, client or organization level.

    Changes in Application Dictionary Components to support aspecific set of business processes

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

    Developer's View Artefacts

    l

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    16/22

    Page 16 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Developer's ViewPackaging

    Managing modules must be as easy aspossible for the developers.

    All the modules content (all the artifactsdescribed earlier) is located within itssubfolder inside the main Openbravo/modulesfolder

    Modules are distributed as .obx files plainzip files of the modules folder

    A set of ant tasks is offered to automatepackaging

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    17/22

    Th E t

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    18/22

    Page 18 Openbravo SL, 2007-2011 Chapter 3 Modularity

    The EcosystemForge: 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 moduleyou registered in Openbravo ERP is listed.Click the module.

    Associate the module with the project.

    Navigate to the location of your module's .obxfile. And select Publish OBX File.

    The Ecos stem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    19/22

    Page 19 Openbravo SL, 2007-2011 Chapter 3 Modularity

    The EcosystemForge: 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/ )

    The Ecosystem

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    20/22

    Page 20 Openbravo SL, 2007-2011 Chapter 3 Modularity

    Available for download through Openbravo ERP or from the Openbravo Forge

    http://forge.openbravo.com/openbravo/moduleslist

    The EcosystemForge: Leverage Existing Offer

    Modularity

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    21/22

    Page 21 Openbravo SL, 2007-2011 Chapter 3 Modularity

    ModularityFurther 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.

    UUID

    s

    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

  • 7/31/2019 BTT Chapter 03 Modularity Introduction (1)

    22/22

    Page 22 Openbravo SL, 2007-2011 Chapter 3 Modularity