OpenXava
From Wikipedia, the free encyclopedia
OpenXava is a framework for developing business applications in an effective way. It allows rapid and easy developing of CRUD modules and report generation, but also it's flexible enough to develop complex real life business applications as accounting packages, customer relationship, invoicing, warehouse management, etc.
OpenXava uses XML as definition language and Java as programming language.
Currently OpenXava generates Java Web Applications (J2EE/Java EE), they can be deployed in any Java Portal Server (JSR168) as portlet applications.
The essence of OpenXava is that the developer defines instead of programming, and the framework automatically provides the user interface, the data access, the Java code, the default behavior, etc. In this way, all common issues are solved easily, but the developer always has the possibility of manually programming any part of the application, in this way it is flexible enough to solve any particular cases. OpenXava is based on the concept of the business component.
Contents |
[edit] Business Component versus MVC
A business component includes all software artifacts needed to define a business concept. OpenXava is a business component framework because it allows defining all information about a business concept in a single place. For example, for defining the concept of Invoice, in OpenXava a single file (Invoice.xml) is used, and all information about invoice concept (including data structure, user interface layout, mapping with database, validations, calculations, etc) is defined there.
In a MVC framework the business logic (the Model]), the user interface (the View) and the behavior (the Controller) is defined separately. These types of frameworks are useful if the rate of change for logic and data structures is low and the possibility of changing user interface technology or data access technology is high.
In OpenXava for adding a new field to an Invoice the developer only needs to touch a single file: Invoice.xml But, the MVC frameworks are bad when the changes of structure and data is very frequent (as in the business application case). Imagine the simplest change, adding a new field to an Invoice, in an MVC framework, the developer must to change the user interface, the model class, the database table, moreover if the developer uses J2EE design patterns he has to change the DTO class, the Facade Session Bean, the Entity Bean mapping, etc.
Another advantage of the business component frameworks is work distribution for teams. It's easy to do a business logic oriented distribution (Invoice for one developer, Delivery for another, etc), and not by technology layer (business logic for one developer, user interface for another, etc)
[edit] Features
These are some of the main features of OpenXava:
- High productivity for developing business applications.
- Short learning curve and easy to use.
- Flexible enough to create sophisticated applications.
- It's possible to insert custom functionality in any place.
- Based on the concept of business component.
- Adapted to work with legacy database schemas.
- Generate a full J2EE application: including user interface and model classes (with POJOs or EJBs)
- Supports WebSphere 6.0, 5.1 and 5.0, JBoss 4.0.x and 3.2.x using native EJB CMP2 Entity Beans.
- Supports any application server (Tomcat, JBoss, WebSphere, etc) using POJOs + Hibernate.
- Supports JSR168: All OpenXava modules are standard portlets too.
- EJB3 JPA complete support
- It's tested with the portals: JetSpeed 2, WebSphere Portal and Liferay.
- Easy integration of reports made with JasperReports (that use Jakarta Velocity and VTL - Velocity Template Language)
- Some little support for aspects.
- Licensed under LGPL.
- The developer can use English or Spanish.
- All labels and messages are in English, Spanish, German language, Indonesian language, French language and Catalan language, with more coming.