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.
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.
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:
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.
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.
The Data Layer contains two very important components:
Provide read and/or write access to the persistent properties of Domain Objects.
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).
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.