Packaging Solutions - Ismael Ciordia

12
Openbravo Get Together Technology Day Packaging Solutions Barcelona, April 2008 Speaker: Ismael Ciordia

description

One of the coolest improvements in the 2.40 release is the capacity to create Industry Templates that will dramatically reduce the implementation cost and time of Openbravo. During this session, Industry Templates will be presented from a theoretical and practical point of view: its concepts, what can be included within an Industry Template, how to create, distribute and maintain them, etc.

Transcript of Packaging Solutions - Ismael Ciordia

Page 1: Packaging Solutions - Ismael Ciordia

Openbravo Get TogetherTechnology Day Packaging Solutions

Barcelona, April 2008Speaker: Ismael Ciordia

Page 2: Packaging Solutions - Ismael Ciordia

Page 2PR-OB Get Together-XXX-date

Concepts and Objectives

Packaged solutions in 2.40

Next steps

Agenda

Page 3: Packaging Solutions - Ismael Ciordia

Page 3PR-OB Get Together-XXX-date

Concepts and ObjectivesOpenbravo Get Together – Packaging Solutions

• Module: an optional and independent piece of software that implements a new functionality not included in Openbravo core (eg. a report, a set of tables and windows to manage a business process, a PayPal connector, …)

• Industry Template: a simple mechanims that provides everything that is needed to operate Openbravo ERP in a given industry

Page 4: Packaging Solutions - Ismael Ciordia

Page 4PR-OB Get Together-XXX-date

Concepts and ObjectivesOpenbravo Get Together – Packaging Solutions

• An Openbravo module is and independent piece of software– Functionality implemented within the module is independent

– This software is independent in the whole life cycle: development and maintenance. It should only take care of fulfilling the interface

– In an Openbravo instance installation of modules is independent from its dependencies (just check them) and could be done at any time. Since it is optional it could be also uninstalled at any time

• Module dependencies– A module has a set of dependencies (Openbravo core, other modules)

– The interface with its dependencies should be clear. This interface is a “contract” that should be guaranteed

– The simplest way to describe dependencies is by a list of packages required and and for each package a list of supported versions

– Dependencies are one-way: from the module to the packages it depends on, never the opposite (only to keep the interface stable)

Page 5: Packaging Solutions - Ismael Ciordia

Page 5PR-OB Get Together-XXX-date

Concepts and ObjectivesOpenbravo Get Together – Packaging Solutions

• When developing or maintaining a module the developer only takes care of the internal functionality of the module and of the interface with its dependencies

• It allows distributed and decoupled development.

• It isolates the development and maintenance in a single point

• The interface should be simple and stable to be efficient

Objective of Openbravo modules is to gain effectiveness in the development process

...

...

Page 6: Packaging Solutions - Ismael Ciordia

Page 6PR-OB Get Together-XXX-date

Concepts and ObjectivesOpenbravo Get Together – Packaging Solutions

Objective of Openbravo Industry Templates is to gain effectiveness in the implementation process

• An Openbravo Industry Template…– ...aims to reduce the implementation time and cost and lowering the barriers of adoption of

Openbravo. Because of that, the user experience if of paramount importance. It must very easy for a user not having technical or system implementation skills and having very little knowledge of Openbravo to select and deploy an Industry Template.

– A secondary goal is to enable partners with industry specific expertise to package their expertise in the form of a template and to distribute it to the whole Openbravo user community.

Page 7: Packaging Solutions - Ismael Ciordia

Page 7PR-OB Get Together-XXX-date

Concepts and Objectives

Packaged solutions in 2.40

Next steps

Agenda

Page 8: Packaging Solutions - Ismael Ciordia

Page 8PR-OB Get Together-XXX-date

Packaged solutions in 2.40Openbravo Get Together – Packaging Solutions

• In Openbravo 2.40 it is possible to develop any Openbravo functionality in isolated development branches

• Code has been structured to allow easy merge from different sources

• It allows “packaging” solutions within a development branch and deploy those solutions to end customers

• It is based on development tools (SCM) such as Subversion

Page 9: Packaging Solutions - Ismael Ciordia

Page 9PR-OB Get Together-XXX-date

Packaged solutions in 2.40 – How to create a Packaged SolutionOpenbravo Get Together – Packaging Solutions

• It follows the same development process as when implementing Openbravo in a Customer:

1. Identify functional requirements for the Industry you want to prepare the packaged solution

2. Prepare the development branch from the latest Openbravo maintenance branch and configure the development environment (ID’s configuration)

3. Develop all the new functionality and configure Openbravo core modules to get the functional requirements

4. Follow best practices: is better to implement new functionality by using the Application Dictionary than with manual code: request new Usability Patterns if needed!

5. Freeze and perform QA processes

• Openbravo maintenance patches can be applied to the packaged solution branch to be merged with its own fixes. From here a consolidated maintenance patch can be delivered to Customers using the packaged solution

• Installation of packaged solution in customers:– From sources: create a customer branch from the branch of your packaged solution

– Prepare an installer using BitRock technology (using Openbravo files)

Page 10: Packaging Solutions - Ismael Ciordia

Page 10PR-OB Get Together-XXX-date

Concepts and Objectives

Packaged solutions in 2.40

Next steps

Agenda

Page 11: Packaging Solutions - Ismael Ciordia

Page 11PR-OB Get Together-XXX-date

Next stepsOpenbravo Get Together – Packaging Solutions

Objective is to enable Users without development skills to create Industry Templates

• Modularity from a User perspective– The experience of the user of deploying modules should be similar to the one of Firefox

plugins: you should be able to browse a catalog of modules, install, deploy and upgrade them directly from the Openbravo Administration UI. You should also be able to uninstall modules.

– Finally, the author of a module should be able to indicate which versions of Openbravo are compatible with it and which other modules if any it depends on. The installation of a module should validate that these dependencies are met.

• Industry Templates as a configuration file– List of modules included

– Configuration file for Openbravo core modules and optional modules

– Code is not included in a Industry Template

• It will be straightforward to move from current packaged solutions to modules and Industry Templates: do not wait for the next release to start!

Page 12: Packaging Solutions - Ismael Ciordia

Page 12PR-OB Get Together-XXX-date

Thank you!

Openbravo Get Together