In contrast to conventional web sites, a web application is
not just a set of web pages linking to each other; a web
application is a software system which includes application logic
and maintains a state by enforcing the notion of a session. Web
applications usually have more requirements to meet than
conventional software as they operate in a more heterogeneous
environment and accessed by a larger number of users. With the
fast growth of online applications, several technologies have
been developed to support creating web applications. Among
these technologies, Java has proved itself to be the industry
standard for developing enterprise applications due to its
stability, portability, flexibility and the number of services and
APIs it provides. However, Java development has always been
considered very complex due to the vast number of libraries and
tools it provides especially the Java Enterprise Edition (JEE)
which is used to develop web based applications [4]. The Java
community has tried to simplify JEE application development
by introducing development frameworks that provide out of the
box features and best practices and design patters to developers
[5][6]. Java Specification developed Enterprise Java Beans
(EJB) to provide easier implementation for the JEE platform but
unfortunately it remained very complex and difficult. On the
other hand, the open source community has been very active and
has come up with a large number of frameworks. Some of these
frameworks have had better acceptance by the developers and
become more common than others.
Developing quality web applications especially using Java
platform often require developers to follow some discipline and
proven development methods to minimize development efforts
[7]. One way to accomplish this is through using a web
application framework (WAF). A WAF is defined as “a generic
definition of the possible application objects, together with a
generic definition of the application's navigational and
processing architecture” [8]. A WAF can be used to produce
dynamic web applications which run on browsers using the
HTTP(s) protocol. It facilitates the integration and reuse of
software components and might be used to build different
applications in different domains[9]; a WAF goes far beyond
user interfaces as they also provide support for database
transactions; messaging services and business logic [10].
A WAF will lie between the web application and the
application server working as an interlink between them [11]. A
typical WAF for JEE is shown in Figure 2.
As a conclusion from the previous discussion, a web
application framework is a software framework that specializes
in developing web applications and provides a set of reusable
and extensible libraries and APIs to facilitate the development of
quality web applications in different contexts.