RIA-Bus: A conceptual technique to facilitate the AJAX-based rich Internet application development
No Thumbnail Available
Date
2015
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Uva Wellassa University of Sri Lanka
Abstract
Rich Internet Applications (RIAs) have become quite popular in this era of Web2 (Lawton, 2008). Compared to the
traditional Web Applications, RIAs are faster, responsive and they have rich Graphical User Interfaces (GUIs) (Paulson,
2005). Among plugin-based approach and script-based approach, Asynchronous Javascript And Xml (AJAX) – which is
a script-based technique to develop RIAs – grabbed the demand of the engineers due to many good features of AJAX.
AJAX uses stable languages HTML, CSS, JavaScript; it is free; and do not need third party plugins (Farrell & Nezlek,
2007).
However the complexity of the AJAX based RIAs are considered high due to various reasons (Li & Peng, 2012) (Mesbah
& Deursen, 2007). Hence, the application of Rapid Application Development (RAD) practices are not supported adequate
in AJAX based RIAs engineering (Dissanayake & Dias, The Significance of Importance of an Architectural Pattern for
AJAX Based Rich Internet Applications, 2014). To maintain the sustainability of both the developed RIA and the
engineering project – not only in the initial development life cycle, but also in post deployment stages – it is important to
identify the main cause of these complexities and address it.
Methodology
We conducted a literature survey to gain the background knowledge of the RIAs, AJAX, RAD, architectural patterns and
the relationship between these areas. The main intention was to identify and understand the complexities and difficulties
of enabling RAD in AJAX based RIA engineering.
As we gain the knowledge and identify some facts related to the complexities in AJAX based RIA engineering, we
conducted a cross-sectional survey to verify the facts identified in literature survey. Also understanding of the up to date
nature of the AJAX based RIA development was gained by analyzing the data gathered in the cross-sectional survey. The
targeted crowed was the individuals engaged in AJAX based RIA engineering; specifically in the design and development
phases. Data were gathered using a structured questionnaire with closed end questions and analyzed using statistical
methods.
Parallel to the surveys, a series of experiments were conducted to understand and get the experience of AJAX based RIA
designing and development techniques, tools, and complexities. This series of experiments was conducted as a prototype
based incremental development. In each and every incremental complexities were identified, and some techniques to
address the identified complexities were tested. The knowledge gained in the early iterations was applied to the later
iterations. We used HTML5 and CSS3 for GUI development, JavaScript for client-side development along with jQuery
library, and PHP as the server-side development language. Apache server was used to host the web application and for
databases MySQL serer was used.
Results and Discussion
The key finding of the literature survey is, that the main reason for the complexities engaged in AJAX based RIAs
engineering is, the lack of availability of architectural formalism for AJAX based RIAs engineering (Dissanayake, Dias,
& Jayawardena, 2013).
In the analysis of the cross-sectional survey, we derived and highlighted the following results. The understanding of the
general AJAX architecture is not difficult, and there is a good usage of Computer Aided Software Engineering (CASE)
tools in AJAX RIA development. However, the difficulty level of implementing AJAX features in the same page
increases, with the number of AJAX features in the page (Dissanayake & Dias, 2014).
One of the complexities we noted throughout the series of experiments is that the difficulties engaged in the file
management of the project. Referring to the AJAX general architecture, standard practice when implementing an AJAX
feature is, pointing the AJAX request to a dedicated PHP script file in the server. This dedicated script file contains the
code for the logic, to provide the complete respond for the particular request. Usually these script files contain few lines
of codes, needed to handle the single request. When the number of AJAX requests increases, the number of the script
files also increase parallel. To provide more rich features in the application, the need for more AJAX features grows, and
as more AJAX features implemented, probably the AJAX request handling script files will be piled up in the server. As
the number of script files increases, the logic could be scattered and it may create a complex environment, where the
management of the server-side implementation is difficult. This setting will lower the realization of the architectural
structure of the system too. Furthermore – due to the aforementioned facts – in the needs of modifications of the RIA, the
effort needed will be higher, and this environment may affect the sustainability of the project too.
To control this situation we propose a conceptual technique, we name it as the RIA-Bus (Dissanayake & Dias, 2014).
Instead of maintaining numerous small script files in the server to handle the AJAX requests, we advise to keep a single
script file – what we call the RIA-Bus – which contains the code to receive all the AJAX requests; direct the processing
of the request to the necessary scripts or functions; and respond back the client, with the results returned from the functions
in the other script files. Figure 01 illustrates the architectural structure of the RIA-Bus.
A parameter will be sent to the RIA-Bus along with the request by the AJAX engine, to indicate the type of the AJAX
feature, which requests the service. Based on the type of the feature, the RIA-Bus can decide, to where the processing
should be passed. RIA-Bus is responsible for reading all the data sent by the AJAX engine – using either GET or POST
method – and pass the data to the function dedicated for processing the data. Figure 02 shows a sample PHP code of a
RIA-Bus.
The script files may contain code for all the logic of the application and organized in a way easy to manage. For an
example all the user related functions may be written in one file and products related function may be written in another
file. These files can be included into the RIA-Bus as needed and the functions in them can be called according to the type
of the feature of the AJAX request.
Description
Keywords
Networks, Science and Technology, Computer Science, Web Development, Technology