Openbravo is a fully functional integrated web-based open source enterprise management system, commonly known as ERP, that is much more at a cost that is far less. If you are a small or midsize enterprise (SME) and you are looking for a system to manage your business … it’s time to get your own ERP!
Openbravo started as an open source project more than five years ago under the Tecnicia codename. Very fond of the capabilities of web-based applications, we set out to develop an enterprise management application (commonly know as ERP) like no other: more fair, robust, adaptable and easy to use than what had ever been previously attempted. Obviously, it had to be a web application, and it had to be in open source.
Today we have a stable product which is in production on a number of happy clients. So we felt it was about time to share our experience and give back to the community our own developments.
Architecture:
Development Environment
Openbravo is a pure web-based application built following the MVC model. Most of the code is automatically generated based on the Data Model Dictionary by an engine that we call Wizard for Application Development (WAD). The engine executes and recompiles the application every time the system administrator changes the configuration to accommodate a user’s request.

This execution create files for the different components of the MVC model as the figure above shows:
- Model: xsql files with executable SQL statements
- View: HTML & XML files define the layout of the forms and define the relation with the data
- Control: java servlets define the actions to be executed, manage the model and generate the view.
Execution Environment
To run the code, the application must be installed in a server running MVC Foundation Framework (which provides support for the MVC architecture) and a group of third-party applications which we call the Operating Environment. Users require nothing more than a standard web browser.

Both WAD and the MVC-FF are largely Openbravo’s own development. The Data Model Dictionary is an extension of Compiere’s, with original modules (such as production), and adjustments necessary to adapt it to European and Spanish accounting standards and payment processes.
Openbravo’s Operating Environment
Openbravo requires a group of well-known third party applications such as Tomcat, Ant, Log4j, and some other utilities. Oracle 10g database (release 2 SE) or PostgreSQL is also required.
The model is based on standard SQL statements, so there it is not necessary to use an EJB server. We use Apache Tomcat as the servlet container, but others can be used instead.
Ant is used to make the builds and Log4j is used for debugging purposes.
All of these applications can be installed both on Linux or Windows.
MVC Foundation Framework (MVC-FF)
MVC-FF is composed of a set of utilities developed by Openbravo: XmlEngine, SQLC and HttpBaseSecureServlet. MVC-FF is needed to allow the development of decoupled files for the Model, View and Control components of the MVC architecture.
This set of utilities has been used in the development of many other MVC applications, and it has proven to be very efficient for the Openbravo development team
XmlEngineXmlEngine is a utility used to create XML/HTML documents from a template in XML/HTML format and an XML configuration file with the dynamic data to be inserted in the template. XmlEngine is easy to use because the design of the template is the identical to that of the final document desired. The input of data is made identifying the places where data will be displayed by using standard XML/HTML attributes like “id” or tags such as “DIV”. The configuration file maps the data source fields with the places identified in the template. To improve performance, the templates are read and stored in memory. When a page is required, the template creates a document that fills with the data provided by the application. With this tool we generate the forms for editing a record, list a selection of records, create reports with grouping levels or print specific forms of the application.
SQLCSQLC (SQL Compiler) is a utility used to avoid the repetitive task of writing Java classes to interact with the database. The input is an XML file that contains standard SQL statements and the parameters used in the statements. SQLC reads this file and generates a Java class that has all the code necessary to connect to the database, execute the statement, read the record and create standard Java types as return for the methods.
HttpBaseServlet
HttpBaseServlet and HttpBaseSecureServlet are the servlets from which all of the servlets of the system that implement the Control component of MVC are derived. These servlets implement common functionalities such as authentication, authorization, database connectivity and error handling. The servlets deriving from HttpBaseSecureServlet make the standard control of reading data, interacting with the database with classes generated by SQLC and providing the output with XmlEngine.
Data Model Dictionary and WAD
The automation of code generation is achieved by using the data model dictionary and the WAD (Wizard for Application Dictionary). WAD automatically generates all the files of the application with an MVC architecture. The files that are generated use XmlEngine, SQLC and HttpBaseSecureServlet.
The automation of code generation provides a better quality because the files are always coded using the same rules and style. The knowledge of the domain is contained by the model and not in manually written code. Also, the improved functionalities implemented over time in WAD are added to all the files when the code is regenerated without any additional intervention.
see more:
http://www.openbravo.com/
DL di http://sourceforge.net/project/showfiles.php?group_id=162271