This chapter introduces prerequisites to working with WAF as well as the tools that are available to the developer.
It is presumed that anyone developing for WAF has sufficient knowledge in his or her area of expertise and can perform accordingly. For this reason, both high-level concepts, such as database design and programming theory, and basic concepts, such as command line usage and shell scripting, are not addressed.
A developer undertaking additions and modifications to this complex system needs a sufficient level of appropriate knowledge. In particular, a developer should be knowledgeable and skillful in the following areas:
Java — the programming language used in WAF.
Servlets and JSP — the J2EE standards used in WAF.
SQL — used for directly accessing the relational databases in cases where the object-relational mapping provided by the persistence engine is deemed insufficient.
UML — parts of the Unified Modeling Language's basic vocabulary, especially those related to class diagram, are used by the persistence framework.
XML and XSLT — key standards used in the WAF presentation system.
CSS — used to style WAF pages.
Concepts of Object Oriented (OO) programming.
Relational database design and object-relational mapping concepts.
In addition, a knowledge of Perl is necessary for extending the build system. PL/SQL and PL/pgSQL are used to maintain certain denormalizations in the database.
A developer either needs to understand how to install, configure and administrate the chosen database or have an experienced DBA performing those functions.
Finally, anyone who is involved with the installation, configuration and administration of the server(s) and development environments for the WAF implementation requires sufficient skill in the target installation OS, e.g. Red Hat Enterprise Linux AS.
Chapter 14 References contains references to additional resources that can help in understanding WAF.