Architecture

From JRapid

Jump to: navigation, search

Contents

Description

The architecture of a JRapid web application follows a standard multi-tier approach uniting a variety of different technologies to provide a professional, robust and easily customizable solution. The back end, as in most multi-tier systems is a Database of your choice to persist the information accumulated. The middle tier encompasses java objects (POJO) providing Services that are exposed via the Controller to a front end written in HTML and JavaScript. At each step in the process, JRapid strives for flexibility. Services, controllers and entities are all easily extendable and customizable providing an excellent base of auto-generated code without restricting the ability to add to that base. Every layer of the application is automatically generated based on the model definition provided from the database tables and to the front end allowing users to list and edit these objects.

Marshalling and Unmarshalling is an important piece of functionality that JRapid provides for each application. These processes handle how the persisted data in bytes is used to create or recreate the plain old java object and how those objects are stored and transferred between layers.

MVC (Model-View-Controller)

JRapid applications follow the model-view-controller architectural pattern. The goal of MVC is to reduce complexity and increase flexibility by separating the display and manipulation of information (UI) from the business logic. The view displays the information in the system to the user based on queries to the model. The controller handles modifications and requests changes to update the model's state. Both retrieval of objects, and storing of changes are done via services provided by the Controller.

Main Components

The main components generated by JRapid may be identified as:


JRapid Application Architecture


Example

If a simple Company entity is created, by default the following files specific to it are generated:

WebContent/Main folder:

  • Company_form.html
  • Company_list.html

xml subpackage:

  • CompanyFull.xml

dao subpackage:

  • CompanyDAO.java
  • CompanyDAOAbstract.java

dao.hbm subpackage:

  • Company.hbm.xml

dao.hibernate subpackage:

  • HibernateCompanyDAO.java
  • HibernateCompanyDAOAbstract.java

services subpackage:

  • CompanyServices.java
  • CompanyServicesAbstract.java

entities subpackage:

  • Company.java
  • CompanyAbstract.java

See also

Personal tools