Technical Architecture

Application follows layered architecture. It has four layers, Presentation, Business, Data Access and Integration layers.

Figure : Layered Architecture

Presentation Layer

The presentation layer implements the user interface of the application. It renders content for the user to view and manipulate, and interprets user commands into application transactions.

The presentation layer will be implemented using the Struts framework. This framework, based on servlet and JSP technologies, provides advanced features for rendering dynamic web content and processing user inputs.

This layer follows the MVC (Model View Controller) design pattern. View and Controller will be implemented by presentation layer.

Business Layer

The business layer encapsulates the business transactions of the Application. The presentation layer generally invokes these business transactions. However, they can be invoked from inbound interfaces also.

Stateless Java Beans execute the business transactions while plain Java objects as data containers to store the data as it transits between the presentation layer and the database. Stateless Java Beans provide declarative transaction management and resource pooling, allowing the programmer to concentrate on implementing the business logic.

Data Access Layer

The Data Access layer provides low-level services to communicate with database. The primary component of the Data Access Layer is Hibernate Data Access Framework.

The Data Access Framework provides simplified methods to persist data in the database and fetch the data from database. It also contains error-handling utilities for failed operations reported by the database.

Integration Layer

The Integration layer provides application a way to integrate other applications and other servers like EMAIL, SMS and Other Web Services.

It is implemented by JAVA Beans.

MVC – Model View Controller

Layered Architecture contains MVC components.  View and Controller at presentation layer and Model at business layer.

Figure : MVC contained by Layered Architecture


Layers are independent from each others. If you change one layer it will not impact other layers. In other words each layer is independently replaceable.