| XPage is an XML-based tool for automatic generation of data-intensive 
web-based applications.  It means that the tool is programmed in XML 
language; it produces a web-based application as the product; and it is intended 
for development of applications which are basically dealing with data storage, 
retrieval and manipulation tasks.  It is not stated in that long 
expression, but the tool relies on relational database systems as the data 
source; that is the data of the product application is stored in a 
relational database system. This tool was developed in an effort to produce a software development 
environment which can totally eliminate or greatly ease the phase of 
implementation for web-based applications which are designed for managing structured 
information.  Although we are calling it a tool, it is actually an 
architecture together with an associated tool for developing applications based 
on that architecture. The view of this tool from a web-based application is a set of dynamic pages 
which are linked together, interact with the user and work with the data stored 
in a relational database.  The interesting point about this architecture is 
that it is not trying to deviate from the intrinsic nature of the web.  
Neither it is trying to build a new paradigm for web-based programming nor is it 
fitting another programming technology to the web environment.  It is based 
on the conventional server-side programming for developing dynamic web pages, 
with the major difference that it is not based on writing program code. The tool has a page-oriented approach for  application development, hence 
the name XPage.  Every page of the product application is described with a 
high-level abstract XML document.  In the runtime environment, these XML documents are automatically 
and transparently transformed into stand-alone server-side scripts (currently in PHP) 
using an XSL Transformation.  
Based on their functionality and responsibility, every page of the product 
application is classified into 
one of the five basic page types supported by the tool: 
  View pages retrieve the information from the data sources and 
  display it to the end userInsert pages obtain user input using HTML forms and store the data 
  in the systemEdit pages are used for modifying the stored dataSearch pages allow the end user to query the information stored in 
  the systemDelete pages are used for data removal Although looking very similar, the format of the XML documents is different for each type of the page.  The information provided in the XML 
documents is mainly concerned with the data model of the page; the data source 
or data target of the page, the data items that it displays or manipulates and 
the format in which it displays or inputs data. The web, while introduced initially as a medium for broadcasting information, 
is increasingly used as a platform for implementing software systems.  
Existence of the standard client (web browser), possibility of using the system 
from remote locations, intrinsic network access, centralized management of data,  
improved security model and convenience of using HTML forms for generating user 
interfaces are among the advantages of using the web as a development platform. On the other hand, managing the development of web-based 
systems is often difficult.  In particular, it is not straightforward to 
separate the logic and presentation for these systems, as the program code is 
usually embedded within the HTML document, both in server-side and client-side 
technologies.  However this tool introduces a high-level abstract language 
for defining the pages, which lets the developer focus on the data instead of 
writing program code. Moreover, most data-intensive applications are based on a number of recurrent 
design patterns.  The basis of such applications is managing 
structured information.  For example, primitive data manipulation 
operations like insert, edit and delete are repeatedly used in every part of these 
systems, however every time it is just the data source that changes and the 
process is merely repeated.  Validating user input in data entry forms is 
another process which is widely repeated.  This repetition in the logic of 
the application results in similar program files and similar user input forms.  
Not only does it make difficult the implementation and maintenance phases, but 
also it makes the development process quite error-prone.  However this tool 
offers a different development model allowing the developer to take 
advantage of the solutions implemented in the generic program files of the tool. |