The 6 Layers

layermodel

The View Layer

The view layer is responsible for providing the application to the users.

  • Functional

    • Data Presentation
    • Data Entry
  • Technical

    • HTML, JavaScript, JSP

The Control Layer

The control layer offers access to the back-end. The control layer provides CRUD operations and commands.

  • Functional

    • Authentication
    • Translating front-end requests to back-end operations
    • Translating back-end data to the front-end
  • Technical

    • Struts2

The Proxy Layer

The Proxy layer is a technical layer, responsible for isolating the back-end technology (EJB3) from the front-end.

Should the interface technology in the logic layer change, only the proxy layer needs to be adapted, and the control and view layers can remain unchanged.

  • Technical

    • JNDI

The Logic Layer

The logic layer offers operations on the data elements in the system, independent of the persistence technology. The layer is also responsible for the execution of the tasks related to the workflow.

The logic layer is the heart of the application, because it implements the business logic of the domain. Should the technologies be switched, the custom code implemented here should remain unchanged.

  • Functional

    • Executes Business Logic
    • Offers CRUDS operations
  • Technical

    • EJB3 - Session beans, which offer technical transactions
    • EJB3 - Dependency Injection

The Data Layer

The data layer is responsible for the interaction with the persistence technology. The current implementation assumes an RDBMS, controlled via JPA and JDBC.

The interface communicating with other layers uses technology independent transport data. Internally, this is translated to the specific data and technologies for JPA.

  • Functional

    • Executing Queries
    • Executing CRUD operations
  • Technical

    • EJB3 in order to function within technical transactions and dependency injection
    • JPA for database access
    • Translation of technical data to and from technology independent data

The Shared Layer

Provides no functional behavior. Provides a number of classes used in the other layers for communication.

  • Technical

    • Provides the Technology independent transport objects and interfaces