Chapter 2. Architecture

Table of Contents

Overview
Web layer
Business layer
Persistent layer

Overview

Any business user-friendly application logic can be divided as:

Tiers demonstrates this logic division on the web-based business application example. A high-level view of the Tiers architecture:

Web layer

Is responsible for GUI showing, user input control, converting GUI events to calls to the business components.

Business layer

Is responsible for business rules support, concurrent access management, persistent model constraints check.

Persistent layer

Is responsible for persistent object model support: load from / save to data storage.

Every layer will be described in the details below.

Web layer

Web layer main components:

Component responsibilities:

  • HTML page: user view of system data/images/controls/navigation, JavaScript/CSS inclusion.

  • JavaScript: simple user input control that do not require server-side execution.

  • CSS: HTML page layout properties.

  • Maverick framework:

    • does Web layer initialization: maverick.xml parsing, XSL stylesheets precompiling/caching, Controller singletons creation.

    • populates Form objects from HttpRequest.

    • dispatches request processing to corresponding Controller.

    • converts created Model to DOM form, applies XSL to DOM, returns result response to Browser.

  • maverick.xml: URL to (Controller,XSL stylesheets) mapping configuration, Maverick framework customization parameters.

  • XSL stylesheet: Model DOM form to HTML page transformation rules.

  • Form: HttpSession-stored JavaBean object populated from HttpRequest, contains GUI web form state.

  • Controller: Form creation, converting GUI events to calls to the business components, Model building, XSL stylesheet selection.

  • Model: JavaBean object presentation of GUI data, includes Form.

Used interfaces/protocols:

  • HTTP(S): Servlet container <-> Browser

  • DOM,JAXP: Java <-> XSL stylesheet

  • RMI: Controller <-> Business component

  • JNDI: Business component lookup

Business layer

Business layer main components:

Component responsibilities:

  • Business logic bean: business methods implementation, concurrent access control, persistent model constraints check.

  • Data access object (DAO): Java API to persistent model, object queries construction.

  • Tester: functional testing of Business logic bean via remote interfaces.

Used interfaces/protocols:

  • Hibernate Query Language, Hibernate Session API: DAO <-> Persistent layer

  • RMI: Tester <-> Business logic bean

  • JNDI: Business logic bean lookup, Hibernate service lookup

Persistent layer

Persistent layer main components:

Component responsibilities:

  • Initializer: initial persistent data creation via Persistent objects, Hibernate Session API.

  • Hibernate service: object/relational persistence and query service, persistent objects storing to /loading from relational database.

  • Connection pool service: database connections cache.

  • Relational database server: persistent data storage, simple entities relationship constraints support.

Used interfaces/protocols:

  • Hibernate Query Language, Hibernate Session API: Initializer <-> database

  • SQL queries over TCP/IP: Hibernate <-> database

  • JNDI: connection pool service lookup