An extension module is a piece of additional functionality that can be deployed optionally and independently on top of Openbravo. Examples of modules include additional reports, additional windows, connectors, translations and much more.
EXTEND, DON’T CUSTOMIZE
Modules makes it much simpler to adapt Openbravo to specific needs. Instead of having to customize the code to match new requirements, a module extends the functionality and is easy to configure, providing higher flexibility and greatly simplifying the process of adapting the system to your needs.
Openbravo follows a Model Driven Development (MDD) approach. This means that Openbravo uses a technology-agnostic model to define application components, such as windows and processes. Based on this application model, code and other software artifacts are generated from metadata information, which is stored in the Openbravo Application Directory. The Application Dictionary maps physical database tables and columns in its own tables and builds on top of this the rest of the system. The user interface is automatically created from this information, which results in a powerful tool to rapidly create new windows without needing to write code. Modules combine application dictionary components with other elements such as database objects and reference data for faster delivery of new functionality.
EASIER UPDATES AND UPGRADES
Developing using modules means packaging independently. Because there is a proper definition of module dependencies and the APIs are kept stable, the process of updating or upgrading an instance with new version modules or new standard functionality delivered by Openbravo is straightforward and can be performed in one user click.
MORE EFFICIENT DISTRIBUTED DEVELOPMENT
The development team working on the creation of a module can work in isolation from other teams; they only need a stable API from the other modules they use and the life cycle of this module (including releases) is independent from other modules, providing a solid basis for high quality output.
MORE EFFICIENT SHARING OF FUNCTIONALITY
Developing using modules makes it much simpler to share new functionality with other people. If developers want to share their modules all they need to do is to package and publish their module in the Openbravo Central Repository. After that, these modules will be publicly available and other users can search for them and install them through a simple installation process.