Log in / create account
View source | Discuss page | Page history | Printable version   
ADVERTISEMENT
Accounting eLearning Courses
PDF Tools
Add page
Print collection (0 pages)
Collections help
Partnerships
SourceForge.net Logo
Openbravo ERP at SourceForge

SourceForge.net Logo
Openbravo POS at SourceForge

Open Solution Alliance Logo
Openbravo at Open Solutions Alliance

Design principles for Openbravo Green

Rating :
N/A
(0 votes cast)
You have to be registered to be able to vote

This document is no longer current and it is kept here for archival reasons. As of November 2008, some of the capabilities described in this paper are available in the product while others will be implemented in subsequent releases as part of the normal development cycle - see this post for more details.


Contents

Introduction

Green is the codename for the third major release of Openbravo. This release will be built on the strengths of the current release, improving those areas where limitations to the current model have been encountered.

Vision

Openbravo is working to create the best open source ERP for SMEs ever made. To make this come true, we need a platform architecture capable of attracting users and developers.

We strongly believe in a community-driven ERP, and this is indeed our main goal and vision: to provide a free, open source ERP, based in a distributed development model and led by a community of users and developers. This is why we find potential improvement opportunities in our ERP. The current Openbravo framework is built upon an efficient MVC and MDA framework. However, we want to make it easier for the community to contribute.

Openness

Openbravo Interoperability

Openbravo is an open source project built on open source technologies. We aim to leverage on the excellent infrastructure components developed by the open source community to ensure our platform benefits from the advantages and stability of components supported by a large community. Whenever necessary we plan to contribute back to those communities if our own requirements make it desirable to do so.

In order to reach our main goal, we have redefined the current Openbravo platform. Our first priority is to wipe the entrance barriers out. Because of this, as the architecture base and roots we need mature, open source, platform independent, flexible, extensible and widely proven tools. This is why we have chosen powerful enterprise application development tools: mainly Spring, Hibernate, Apache Tomcat, Apache Ant, DWR, Dojo, JasperReports, PostgreSQL and MySQL. We also aim to comply with relevant and applicable open standards such as: XHTML, XML, Java EE, Java portlets, SOAP, ISO3166, ISO369 and ISO4217.

We have a very clear picture of the global solutions required by our customers, where the ERP is one part -a main one- of the whole system. But we don't want to fight in all wars nor reinvent the wheel, so we are completely focused on creating the ERP while offering easy integration schemas with other enterprise grade applications such as CRM, external POS, OLAP analysis and BI, DMS, etc. As a first step in this direction we are members of the OSA, an organization of leading companies dedicated to making enterprise-class open software solutions work together by promoting interoperability -single sign-on, common integrated user interface, etc- between applications. Being most of these applications open source make them fit perfectly with our philosophy. And as they are widely used, it's easier for everyone to contribute. Secondly, to facilitate the integration we are documenting our whole platform, from our development manual to the E/R model.

Web based rich client

This ERP is completely web-based. We can't even imagine it otherwise. We understand the network as a platform, delivering and allowing users to use applications entirely through a browser. We find this specially appropriate for an ERP client interface. The requirements are minimum: a web browser is available on virtually all computer systems. Moreover, being web-based means the product can be delivered over the Internet, allowing to update the application without distributing and installing software on potentially hundreds of client computers.

Lately the demand for web-based user interfaces is growing fast as the number of Internet services increase. Now the technology used in web based applications can offer rich client interfaces with even more functionality, usability and ease of use than the traditional desktop applications.

With technologies like AJAX or similar frameworks it is possible to have a rich, interactive and user-friendly interface. They provide real-time control in a separate program, eliminating the need to refresh a traditional HTML based web browser. The typical HTML controls such as buttons, input boxes or combo-boxes are pretty much limited and not extensible. Instead, frameworks such as Dojo or Yahoo offer richer solutions.

Openbravo Green is going to be architectured from the very beginning to support multitenant Software as a Service (SaaS) extending the current model to support customizations at client level.

Two different products

There are two kind of possible contributions: improvements to the core of the product, the architecture itself. And the ERP specific ones, such as creation of new verticals, modules or plug-ins. Following this logic the Openbravo platform is to be split into two different products: a development platform and the ERP itself.

This conceptual and physical isolation provides great benefits. Firstly the two products can be independently developed, mutually benefiting each other. For instance, any technological platform improvement will be immediately reflected in the ERP. Secondly, the platform should only take care of offering the core and common functionalities. This makes it specific-application agnostic, more general, and thus allows to use this platform to build other information systems.

Dictionary model based

One of the current platform's strengths lays on its dictionary, built based in a Model Driven Development (MDD). The most important aspect of a MDD architecture is the fact that it's focused on the model rather than in the program itself. It describes all the desired components of the system: tables, windows, reports, etc. Then the whole ERP is written following this model. So the real value of the ERP is condensed in this dictionary model, and at the same time it is isolated from other technologies not related to the ERP.

The system modeled by MDD is going to be implemented through a MVC architecture, using Spring.

Currently most of the Openbravo ERP's windows consist on data editing and processing interfaces, such as the Sales Order Window. This kind of interfaces are formed by various elements such as input and combo boxes, selectors, check-boxes or radio buttons among others, all them defined in the Application Dictionary. As this interfaces are built through this Application Dictionary, it is important for it to be flexible and extensible. This means it will be an easy job to add new functional object types and properties into the dictionary model.

The power of an ERP comes with its customization level. Openbravo understands this need, and this is why the new platform and Application Dictionary give special importance to this key point. Openbravo Green will have native support for localization and customization, consequenced by its multi nature: multilanguage, multiclient, multicurrency. This is possible thanks to the business logic implementation, which is typically localized or customized -such as tax calculation and accounting processing- by engine rules and by architecturing the whole system in a modular way.

Modularity

In a distributed development model such as this one, with many teams and individuals contributing to the project, the new Openbravo platform introduces the possibility to package these contributions into modules. From a user and functional point of view there are different kind of modules:

From a software management perspective these modules will be self-contained with all the information needed to guarantee the proper behaviour of the Openbravo application after the installation of a desired module. Information like an identifier, description, Openbravo version, dependencies with other modules, scripts for installation and uninstallation and the functionality included. The Openbravo module management tool will assist the Openbravo administrator with the installation or uninstallation.

Openbravo will create a central repository with modules, easily accessible from the Openbravo module management tool, to offer the best modules available to the users. This way when an user needs a certain functionality, there will be the possibility to search in this repository for a module that fits the user's requirements and then test it, before trying to develop a new module. This repository will also be opened to all Openbravo developers who want to contribute with custom modules.

Upgrade from previous releases

For the migration process from Release 2 to Openbravo Green we will prepare a full set of migration tools, methodologies and tests to minimize the effort and to ensure the reliability of the upgraded system.

Further information

For more information check the White paper.

You can browse its source code repository or get a copy using Subversion with the following command:

 svn co https://openbravo.svn.sourceforge.net/svnroot/openbravo/branches/green green

Test it in our online demo.

Retrieved from "http://wiki.openbravo.com/wiki/Design_principles_for_Openbravo_Green"

This page has been accessed 30,542 times. This page was last modified 14:01, 31 October 2008. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.


Category: Architecture