atize the interface generation based in the close re-
lationship between the data model and the interfaces
that users need. Thus, the early approaches gener-
ated automatically forms that allow the user interac-
tion with tables((Arturo Pizano and Iizawa, 1993))
or objects((Branko Milosavljevic and Milosavljevic,
2003)). However, most of these first attempts((Olsen,
1989), (Arturo Pizano and Iizawa, 1993), (Chris-
tian Janssen, 1993), (Vigna, 2002), (Branko Milosavl-
jevic and Milosavljevic, 2003)) lacked of interfaces
that handled important application elements like: user
management, security policies, menus, reports, etc ..
In addition, most of these first proposals were not
platform independent but offered a strong dependence
with elements like operating systems or database sys-
tems.
Most recent approaches ((eGen, 2005),(JSenna,
2005)) success in automatizing the major part of a
complete web-interface application however they fail
to support important aspects of interfaces like com-
plex forms where several entities (i.e. several related
tables) are involved in the same form. Some of these
approaches also lack of the customization that cus-
tomers frequently demand. In addition theses systems
are attached to their own development toolkit that pre-
vents third parties to contribute or improve the devel-
opment tools.
We have developed a new approach that aims
to overcome all the problems previously mentioned.
The outcome is a system named WAINE, a sys-
tem with the features of: efficiency, independence,
reusability and simplicity necessary to potentially in-
crease the productivity of software companies that de-
velop medium-complexity-level web-based applica-
tions. The architecture of WAINE is based in a model
that captures the relationship between the main as-
pects of a typical management application (e.g. users,
menus, forms, security, etc..) and the application de-
velopment is based in a simple descriptive language.
2 SYSTEM REQUIREMENTS
The challenges that our system pursues are the fol-
lowing:
• Independence. This key feature encompasses
other requirements like: OS independence, data-
source independence (i.e. relational databases,
XML files, text files, directories, etc...), web-
server, browser and application specification tool
independence.
• Security. Another key feature that should be in-
cluded is at least: Access Control List (ACL) and
different authentication methods (i.e. password
files, LDAP, IP address, etc...). New authentica-
tion methods should be easily added to the sys-
tem.
• Web-based interface. This requirement is basic
to grant universal access and suppress installation
costs to applications. Additionally, the applica-
tion should be able to represent results with dif-
ferent layouts and issue complex widgets which
include charts, images or multimedia data. New
widgets and form layouts should be easily added
to the system.
• Zero programming. The application development
should use the minimum coding task possible.
Ideally, it should lack of any code except for, ob-
viously, a declarative language used to describe
the objects of the application model, but minimal
pieces of software like actions or events could be
potentially coded in some programming language.
• Customizable. The applications generated must
be easy to configure. From different look&feels
for menus, forms, etc... to the configuration of
data sources, form templates, internationalization,
etc ... Also should be customizable for single
users with particular needs (for example for ac-
cessibility issues). The engine must be easy to ex-
tend for new authentication methods, datasource
types, form layouts, form widgets, etc...
• Independence between logic and GUI design. The
system should allow the application-logic and
graphic design teams work separately as done
in (Puerta, 1997). This is a key factor in web-
based development.
• Efficient. The run-time engine must be light and
small enough to run in low-performance hardware
or embedded systems.
3 THE APPLICATION MODEL
This section proposes a simple model to capture all
the components of an application. We first describe
each component of the model and then we explain the
relationship between them using an ERD.
3.1 Model Components
3.1.1 Users and Groups
Users represent different ways of interacting with the
application and allow the access control mechanisms
necessary to achieve a secure system.
WAINE - Automatic Generator of Web Based Applications
227