Lightweight, Component-based, and Database-oriented Web Application Framework

About | Overview | Documentation



The most critical part in the installation process is the preparation of the senvironment required by the framework. This environment is actually an integration of web-based support software that consists of operating system, web server, database application server, and main scripting language to be used in the application development. Regardless of the operating systems to be used (Linux/Unix, Windows, or Mac), the rest of three other software elements are conveniently supported by the XAMPP distribution. XAMPP is a bundle installation package containing Apache, MySQL, and PHP/Perl scripting language.


The tutorial gives the basic ideas of how web application could be developed with less effort helped by web-based development tools and automatic code generator scripts provided by the framework. The main objective of the tutorial is to provide a hands-on experience to developers to apply the main concepts of architecture and design, and development approaches used by the framework. It will help developers to further understand the rest of other conceptual and technical parts of the framework.


Web-based Support Tools

There are two categories of web-based support tools provided by the framework, as briefly described below:

Application Development Tool:

Provides facilities to manage application link's node hierarchy structure that involves basic node's operations such as adding new nodes, updating node's attributes, and deletion of an existing nodes. More complex operations are including the management of node's references to application resources and control on resource's parameters. Application resources can be the framework's component-type modules or just a simple static HTML files.

Application Administration Tool:

Application Administration Tool is actually one of the applications developed using the framework thus it's under the scope of control of the previously described Application Development Tool. Main facilities provided by the Application Administration Tool are more focused on application maintenance operations. It involves user and group entities management, and access control of these entities to the application resources (link nodes, component-type modules, and database items).

Architecture and Design

Adopting the idea of the Model View Controller (MVC) architecture, the framework proposes the Controller View Controller (CVC) architecture for its conceptual specifications. In CVC archictecture the controller has become a dominant element and more focus has been placed on it. The controllers are treated as a component with built-in generic aplication specifications that are ready to be implemented as a semi-complete solution inside the application. Component specifications are obtained by capturing and abstracting the most possible generic requirements of the target problem domain (web-based applications) where the architecture and design would be based on.



The framework enforces Component Based Development (CBD) approach through the abstraction of the generic specifications of web application. These generic specifications are implemented as Perl modules written in Object Oriented Programming (OOP) style. Inside the framework, the modules which are written following these specifications are known as component-type modules. One of the specifications is to solve the integration of business logic for data manipulation and presentation internally inside the modules themselves.

To support application data presentation, component-type modules will internally process the view-template assigned to them. A view-template is simply a standard HTML document contains special structured tags to split its content into several different content parts, known as view-element. A collection of view-elements inside a single view-template will be passed to the hook functions invoked by the implementation of the component-type modules. Inside the hook function, view-element content is manipulated by data presentation modules to generate the final content presentation.


Modules and APIs

In general, framework's modules are classified into two different groups that are the core modules and the component-type modules. The core modules provide basic web application development facilities as listed below:
  • Base module that provides basic application functions following web application generic specifications defined by using the CBD approach. All framework's component-type modules are derived from this base module.
  • CGI and session data handling.
  • High level database APIs to simplify and automate database operations.
  • Application related data structure instance creation.
  • Mapping of application data instance to view-element for content presentation.
Inside the framewok, component-type modules are treated as application components. They provide various generic web application business logic solutions either as a fully-complete solution (black-box) or as a semi-complete solution(white-box). Generic tasks and solutions supported by current available component-type modules are including application link structure handling, database operations (view/search/insert/update/delete), calendar-based application data control, JSON-based data service, and dynamic control for the selection of active-component to be composed inside the application.