Chapter 1. WAF Overview

This chapter is an overview of the Web Application Framework architecture. This high-level viewpoint is especially useful for gaining a good understanding of how WAF works. It is written with both the technical developer and the technical manager/team leader in mind.

WAF is a web application development framework. Some of the web applications that have been developed using WAF include Red Hat Content Management System and Red Hat Portal Server. WAF runs in any standards-compliant servlet container. For more details about system requirements, see the Red Hat Web Application Framework Installation Guide.

Figure 1-1 describes the architecture of WAF from a high-level perspective.

Figure 1-1. Basic Configuration

1.1. General Architecture

The WAF architecture described in Figure 1-1 follows the standard n-tier design pattern, with separate presentation, domain (business logic), data, and data model layers. Web applications built on WAF also follow the same n-tier design patter, leveraging the infrastructure provided by WAF.

1.1.1. The Layers

The four layers in the WAF architecture are:

  • Presentation Layer (UI) — presents information to the user

  • Domain Layer (Business Logic) — encapsulates business logic

  • Data Layer — stores and retrieves data

  • Data Model — stores data in a structured, format in a durable fashion

These layers are shown in Figure 1-2:

Figure 1-2. Basic Configuration

1.1.1.1. Presentation Layer

The Presentation Layer is responsible for presenting information to the end user. The presentation layer accepts processed, structured data from the domain layer and is responsible for styling the data appropriately and delivering the content in a format appropriate for the end user.

1.1.1.2. Domain Layer

The Domain Layer contains Domain Objects, which are abstractions of entities that exist in the business domain, for example, Party, Person, Group, Company, Department, Team, Product, Order, Line Item.

1.1.1.3. Data Layer

The Data Layer contains two very important components:

Data Objects

Provide read and/or write access to the persistent properties of Domain Objects.

Persistence Metadata

Describes a Domain Object e.g., its name, its properties, and how each property is mapped into the Data Storage layer. This description is written using the Persistence Definition Language (PDL) format. PDL was designed to be used specifically in WAF. PDL is discussed in more detail in Section 2.3 Persistence Definition Language (PDL).

1.1.1.4. Data Storage Layer

The data storage layer Contains the mechanism(s) employed for storing data persistently. This is typically a relational database (RDBMS) such as Oracle9i™ database or PostgreSQL, combined with a data model. It may also include other mechanisms, such as an LDAP directory or filesystem.