Openbravo Architecture

Openbravo 2.50: New Architectural Developments: Data Access Layer and REST Webservices

maandag 5 januari 2009

The Openbravo 2.50 release contains a number of new architectural developments which can be of great interest for Openbravo developers and system integrators.

The first main development is the Data Access Layer which provides the application developer with an object-oriented view on the Openbravo database. The Data Access Layer is also used to support new XML conversion functionality which allows the application developer to convert business objects from and to XML. The XML conversion logic again forms the basis for export and import of Client data and new REST webservices functionality provided in Openbravo 2.50.

I will cover these new developments in a series of posts which will be published the coming weeks.

In this first post for Openbravo, let me also introduce myself. I am responsible for some of the new architecture developments at Openbravo, both design and development. My background is both in ERP system as well as technical Java coding. Next to Openbravo I am involved in open source development as a committer of the Eclipse Modeling Framework project. I am looking forward to work further on extending the Openbravo architecture and hope for extensive feedback from the community on the new developments in the Openbravo 2.50 release.

The starting point for the blog series will be the new Data Access Layer (DAL). The DAL provides an object-oriented layer over the Openbravo database. It is based on Hibernate using model-driven code generation techniques. The Data Access Layer provides the application developer with the following functionality:

  • type safe querying and retrieval of business objects from the database.
  • a convenient API to update or create new data in the database.
  • a type safe interface to update information of a business object, increased productivity by making the properties of a business object directly visible through getters and setters (in the development environment).
  • transaction and context handling.
  • security and validation checking.
  • automatically maps new entries in the application dictionary to database tables and columns.
  • generates Java class business objects (and their associations) on the basis of the Application Dictionary model.

With the DAL the application developer does not need to type in tedious/type-unsafe sql queries. He/she can make use of the code completion and compile time checking functionality of his/her development environment. The Data Access Layer can also be easily integrated in test driven development approach as it operates independent from servlet containers such as Tomcat.

The Data Access Layer uses an in-memory representation of the application dictionary (the runtime model). This runtime model is used to convert business objects from and to XML. The XML conversion functionality is very usefull for integration scenarios. It is the basis for new functions such as the export and import of Client data and Webservice functionality. The XML Conversion functionality will be discussed in a separate technical post.

The 2.50 release also provides completely new REST webservice functionality. The REST webservice offers a common APO to query, retrieve and update all Openbravo business objects (persisted in the database). The REST webservice can be reached using simple (REST) URI's making it easy to use, test and try out. The Openbravo REST framework is easy to extend and allows you to add your own (REST) webservices. I will spend a separate post on REST Webservices and how to create your own WebService.

This post was just an introduction to give you a feel for what is coming in 2.50. The next posts will dive into more details, starting with an architecture description followed by the standard Hello World DAL example!

0 reacties: