Download AEQ - Ajax Enabled Query - Uwsp

yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
AEQ - Ajax Enabled Query,
Universal Query Tool and Classroom Support Software
Robert Dollinger
Mathematics and Computing Department, University of Wisconsin Stevens Point,
Stevens Point, Wisconsin, USA,
[email protected]
Bernau Pamela
Mathematics and Computing Department, University of Wisconsin Stevens Point,
Stevens Point, Wisconsin, USA,
[email protected]
William Nadeau
Mathematics and Computing Department, University of Wisconsin Stevens Point,
Stevens Point, Wisconsin, USA,
[email protected]
Abstract: AEQ – Ajax Enabled Query is a Rich Internet Application that acts both as a universal
query tool and database client, as well as an educational software supporting activities related to
database classes. The AEQ tool incorporates functionality likely to enhance students’ learning and
instructors’ teaching experience in multiple areas of the instructional process: (1) Remote access the AEQ tool allows direct, on-line, authenticated access to the databases for operations usually
provided by database client tools. (2) Universal query tool - one single, specifically tailored, Web
based interface is used for various types of databases (Microsoft SQL Server, Oracle, MySQL and
others). (3) Course content provider and management – instructors can upload and manage
course content that integrates with the query tool. (4) Collaborative learning tool – AEQ users
work either in a private space or in a shared environment, where they can exchange messages, and
engage in collaborative activities.
1. Introduction
The AEQ tool is a multipurpose Web based application that has been developed in order to improve on the student’s
learning experience, as well as the instructor’s teaching experience in classes that have databases as their main focus.
The application was designed to simplify and enhance a variety of activities performed by students and/or
instructors by providing features such as: reliable remote access to databases, seamless integration of all available
database types through a universal robust interface, ability of instructors to add and organize class content, manage
student accounts and class lists, ability of students to view live course content and perform live query execution on
several database types, ability of students and instructors to share work and communicate easily and much more.
The idea of creating a tool such as AEQ comes from the opportunities provided by technologies like AJAX
(Asynchronous JavaScript And XML) that are successful in supporting the concept of Rich Internet Applications
with characteristics that are very similar Windows applications while maintaining the advantages that favor the Web
applications. Any browser can be used to run a Web application which makes them widely available and platform
independent. By incorporating the AJAX technology Web applications acquire valuable features that in the past
were available only in Windows applications: responsiveness, interactivity, flexibility, and increased capability to
manage data in a variety of forms. This paper presents our experience with the AEQ project: vision, design,
development, implementation and testing, impact on the teaching process and assessment of the benefits using AEQ
in classroom. The remainder of the paper is organized as follows: section 2 identifies the main features of the
application and the requirements it must satisfy, while section 3 presents the functional modules of the application.
Section 4 provides relevant details related to implementation. Section 5 outlines the strategy for assessing and
evaluating the AEQ application, as well as the approach for further refinement and integration into the existing
course activities. Finally, section 6, concludes with some thoughts about the experience of engaging into the
development of this project, as well as the impact of the AEQ tool on the current teaching practices.
2. Features of the AEQ Tool
The AEQ tool provides a hybrid software functionality, part educational software and collaborative tool, part
universal query and development tool, and part classroom and course content management. While for educational
software requirements and quality assessment there are studies available in the specialized literature (Blease, 1986;
Brogan, 2001; Gold, 1984; Goyne, 2000; Lauterbach, 1989), for the database query and development features we
relied to a large extent on our own experience with the various commercial DBMS client tools. AEQ attempts to
provide features similar to these Windows forms based applications by leveraging the capabilities of the new AJAX
technology. The AJAX technology (Gibbs, 2007; McClure, 2006; Moore, 2007) plays a key role in the development
of the AEQ tool due to the requirement to closely mimic the behavior of standard database client tools, traditionally
developed as Windows applications: high level of interactivity, responsiveness, and flexible manipulation of data.
The following core features have been identified as part of the AEQ Tool specification:
Provide reliable remote access to database servers via Internet – the AEQ tool is a Web based application
available with the appropriate credentials from anywhere on the Internet.
Content provider and universal query tool – AEQ provides access to course content and materials through a
hierarchical content provider. Queries within the content can instantly be executed against the target databases.
Universal query and development tool – AEQ is a query tool with features specifically tailored for use in
course related activities, thus abstracting out the differences among various DBMSs and the complex
functionality related to database administration
Domain specific collaborative learning tool – the AEQ tool can function in two different modes: private and
shared. Users in shared mode share their input and responses from the database with other concurrent users
Content manager – The AEQ tool provides an upload and edit feature available to instructors in order to
prepare their course materials and make them available through the application.
Course and class management tool – AEQ also provides support for activities the instructors usually have to
perform at the beginning/end of semester for setting/cleaning up the classroom environment.
3. Structure of the AEQ Application
The AEQ application consists of several functional modules acting on three different levels: (1) The AJAX Client –
consists of the JavaScript code, as well as the HTML and CSS associated to the various Web pages. The AJAX
client takes care of the immediate user interaction that does not require the Web Server’s participation, issues
background AJAX requests upon specific user actions, receives and processes the data returned by the Web Server,
(2) The AEQ Web Site – is located on a campus Web Server and consists of the middle-tier logic of the application.
It receives regular Web page or AJAX requests from the AJAX Client, interacts with the backend and/or target
databases, and responds to the client requests, (3) The AEQ Backend Database – is located on a campus database
server and stores data that is vital to the functioning of the application: course lists, course content, student/user lists,
passwords and permissions, information about the registered target databases and other, as well as database specific
functionality in the form stored procedures.
In addition to the three components above, the AEQ application also interacts with a number of target databases
towards which the user’s queries are directed. The main functions of the component modules are described bellow:
3.1. The SQL Launcher
One of the most important functional modules is the SQL Launcher. It provides a Web based universal interface to
execute SQL queries and commands against a variety of DBMSs’. This module is a good example of embodiment
for one of the most important changes the AJAX technology is expected to bring to Web users, that is “free the
computer users from the constraints of desktop applications and from the dependence on a specific software
provider” (McClure, 2006). From any Web browser the SQL Launcher provides the capability to query any type of
database system for which a plug-in adapter has been installed. Currently, plug-ins are available for the Oracle,
MySQL and MSSQL databases. The SQL Launcher is designed to make the user experience as seamless as possible,
as if it were a typical client side application. Some helper tool like visualizing the list of tables and their structure as
well as the views and their definitions are also available.
3.2. Content Viewer and Manager
The Content Viewer and Manager has the role to complement the SQL Launcher in an enhanced educational
experience, integrating in one single tool both course content and interactive working features. It provides a
structured and intuitive interface to serve the needs of both students, who are able to view the available course
content, and instructors, who have the possibility to add/edit/delete and manage the content of their courses in a
flexible way. Two different views, a Student View and an Instructor View of the course content are provided. The
Student View allows users to navigate through the course content by using a context sensitive Table of Contents
which is a tree-view control where a click on an item brings forward the corresponding full content. Much more
functionality is available to instructors who are also able to manage their course content (Figure 1). The main tool is
an editable Table of Content Manager where instructors can dynamically rearrange the chapters of their course in a
tree structured pattern. There are two types of nodes in this tree: folder nodes, which are essentially wrapper
containers or folders, representing for example course sections, and content nodes, which contain the actual course
materials. The structure of this tree can be modified by dynamically moving around the nodes and changing their
relative positions through a drag-and–drop function. In addition, specific functions are available for each type of
node, and can be accessed by a simple right click on the node: AddNew, Delete, Rename, and Edit Content. Adding
content nodes can be done in two ways: upload a file, or save the text content from the rich text editor.
3.3. The Administration Tool
The AEQ tool has a well structured user management and security system able to properly control users’ access to
its resources. User account support is provided through the Membership, Roles, and Profile features built in to
ASP.NET (Mitchell 2006). These built in features are used for authenticating, adding, creating, deleting, and
modifying user account information, which is stored in a specific set of required tables created automatically, and
placed in the AEQ back-end database. Three different roles have been defined for the AEQ application:
(1) Administrator – this role is the only one that provides access to the Administrator tab. There is one single
administrator for a given installation of the AEQ application. The main task of the administrator is to create and
delete Instructor accounts.
(2) Instructor - only instructors and the administrator have access to the Class Management tab which allows them
Figure 1. Content Manager
to create classes, import students to each class and create corresponding student accounts (Figure 2). The goal of the
Class Management tab is to support instructors with the routine management tasks they perform at the start and end
of each semester: create a new class, manage accounts and working databases for the students in that class, as well
as remove a class with all dependent information associated to it. The instructor would first create a class with a
given unique name. Next the student accounts can be created based on a student list in an external CSV file. For
each student that is imported, a new Student user is created with an automatically generated username and password,
and then the procedures are called to create the working MSSQL, MySQL, and Oracle databases for the user. The
corresponding connection strings are linked to the user account, and an e-mail is sent to each new user providing
them with their username and password for the application. The instructor also has the ability to drop selected
classes or students along with all dependent databases.
(3) Student – this is the most restrictive role in the application. None of the functionality related to the
Administrator and Instructor role are available to student users. Students are limited to access the course content
viewer, the SQL Launcher and the features in the chatroom. All users, including students, have access to a My
Profile tab to change their password.
3.4. The Chatroom and Shared Mode Support
The AEQ users can communicate and work together remotely by three different features that complement each other:
(1) The Chatroom – is an AJAX driven chat feature that is implemented within the main design of the application,
so that it is available at any time no matter the kind of activity the user is performing. The feature consists of a
resizable chat window and a text box to edit and send messages, (2) The Active Users Window – complements the
functionality of the Chatroom by showing the list of users currently online and their session mode, i.e. shared or not,
(3) Shared Mode Support – every user can view his/her activity history that consists of the past executed queries
and their truncated outcome as logged in the AEQ database. When a user enters the shared mode his/her history is
made available to all other users who then can view, copy and test on their own the queries just produced by their
peers. This last feature allows the students to truly share their work and experience, while through the Chatroom
feature they can share comments and suggestions related to the executed queries and their outcome.
4. Implementation
The implementation of the AEQ tool is based on an architecture distributed on three levels of coding: JavaScript on
the user machine, ASP.NET and C# on the Web Server, and SQL stored procedures on the backend database server.
In order to provide a seamless user interface and a Windows application-like user experience in a Web environment,
the AEQ tool incorporates a number of cutting edge technologies. The application was developed in ASP.NET, with
server-side code written in C#.NET. The AEQ tool relies on an MSSQL backend database (for class and user
Figure 2. User and Class Manager
management, as well as course content). The application is intensively using the AJAX technology as most of the
communication between the browser and the Web server is performed through fast asynchronous XMLHttpRequest
calls to Http handlers incorporated in the AEQ site. Generally, most of the data transferred between the Web
browser, the Web server and the backend database is encoded in XML format, and transformed on the client side
through JavaScript and CSS. The AEQ application has been developed with a multi-tier architecture in mind and by
rigorously observing the OO principles and good programming practices. Several implementation objectives where
kept mind during the development process:
1. Modularity – the issue of code modularity has been approached from several perspectives: (a) Layered
functionality – the code structure of AEQ reflects the development principles of multi-tier applications with
each layer handling a specific type of functionality. The typical scenario is that of a JavaScript component
issuing an AJAX request that is captured by an Http handler on the server side, which is then propagated
through the layers of the middle-tier classes, towards a database manager class that deals with the details of
interfacing with a data source like the MSSQL database, (b) Code factoring and use of utility functions –
avoiding redundant code is another prime objective that has been taken care of by carefully developing a set of
utility classes that capture low level functionality used in the upper layers of the application.
2. Module interchangeability and use of plug-in concept - the application is currently to working with a
MSSQL backend database, and three types of target databases: MSSQL, MySQL and Oracle. The incorporation
of a larger number of database types simply requires the creation of a wrapper class for each additional type.
This wrapper class materializes a plug-in with rigorously defined interface that is completely independent of the
type of the database type added as a target to AEQ.
3. Code portability – the AEQ application manages a variety of persistent resources from several different
locations and host machines. Accordingly, the capability to seamlessly relocate the application or to install it on
a different location has been a permanent concern. Currently, all information pointing to application resources,
database connection strings, target database locations, file locations etc. are either expressed as relative to the
application Web site location or listed in the applications’ Web.config file for easy reconfiguration.
4. Cross-browser compatibility –browser independent code and styling was used all across the application and
all styling information has been exported to external css files.
5. Security – user access to the functions of the AEQ application is determined by the privileges granted to the
corresponding account: student, professor, and administrator. The ASP.NET built-in membership and role
management service takes care of user authentication and user account and roles management with the user
information being stored in the AEQ back-end database. In addition the possibility of two frequent security
flaws is addressed: (a) SQL injection - the entire code has been carefully sanitized so that all SQL requests
from the AEQ application to the backend database uses explicit SQL parameter objects, as opposed to the
vulnerable practice of building SQL strings with inserted values, (b) Identity theft – the account names and
passwords of all AEQ users are stored in the backend database exclusively in encrypted format.
5. Assessment of the AEQ Tool
By adopting the AEQ tool in the database classes, improvements on various aspects of student’s learning and of
instructor’s teaching experience were anticipated: (1) Availability - the AEQ tool acts as a Web complement, and in
some situation, even as a replacement of various DBMS client query tools that will be much widely available, (2)
Integration - as a combination of both content viewer and query tool, AEQ act as integrator between the
development process and domain content, (3) Simplicity - the universal query feature of AEQ provides a unique and
simplified interface to several DBMSs at the same time, making it easier to focus on the intrinsic task of
understanding syntax differences between various SQL dialects, as well as on portable SQL syntax, (4)
Collaboration - the chatroom feature and shared mode capability are expected to stimulate the collaborative
learning experience among students.
The AEQ tool has impact not only on students’ experience, but also on instructors’ activity: (1) The dual nature of
query tool and content viewer of AEQ is expected to encourage instructors to develop their course materials with
interaction in mind, thus opening a variety of opportunities for innovation in course development; (2) As a Web
based content management tool, and with the available chatroom capability the AEQ provides the opportunity for
joint class development, co-authoring, and even co-teaching.
The assessment process has been approached as a cyclic activity meant to provide the development team with the
feedback needed to improve and refine the AEQ tool. The features of the AEQ tool were refined, extended or
replaced by other features in a phased process of alternating development, implementation, and assessment over
several cycles. In this sense, the AEQ experience is only partially a software development project, as the incremental
process of implementation in real classroom environments, followed by thorough assessment from several
perspectives are equally important. The information in this process was collected from students, directly and
indirectly, through interviews and surveys, as well as from their instructors.
6. Conclusions
The richness of publications on the topics educational software shows that there is no shortage of visions about how
information technology in general and educational software in particular, may change the way we teach and the way
our students learn. However, reality seems to be behind expectations when it comes to the role information
technology should play in the realization of the “dream of universal access to high–quality, personalized educational
content (…) available both synchronously and asynchronously” (van Dam et. all 2005). The complexity and
multidisciplinary nature of the factors conditioning progress in this area needs to be correctly recognized and
understood. Successful and effective teaching is first of all about interaction, and also about availability. The on-line
teaching experience demonstrates how important it is to properly address the shift from the traditional forms of
instructor-student or student-student interaction towards the new forms of interaction involving various technologies
used in distance education (Ekhaml, Roblyer 2005; Feenberg, Xin 2005). The other important factor in the equation
is availability, as without easy and widespread access, even the most wonderful tool will have limited or no impact.
Van Dam (van Dam et. all 2005) also points out that achieving the ambitious goals of modern education has been
conditioned by the pace of advances in hardware and software technology. The implication of this is that any
incremental progress in technology would be followed by educational tools that “fill the gap” by putting the new
technology to work. In this perspective, the AEQ tool presented in this paper, may have the chance to be on the right
track by its potential widespread availability due to the ubiquitous presence of the Internet, as well as through the
way it approaches the issue of interaction by leveraging the AJAX technology.
Blease Derek (1986) Evaluating Educational Software, Chapter 5, pp.96, Published by Rutledge, 1986, ISBN
Brogan Patricia (2001) The Good, The Bad, and the Useless – Recognizing the signs of quality in educational
Van Dam Andries, Becker Shasha, Simpson Rosemary (2005) Next-Generation Educational Software: Why We
Need It and a Research Agenda for Getting It, EDUCAUSE Review, vol. 40, no.2, (March/April 2005):26-43.
Ekhaml Leticia, Roblyer M.D. (2005) How Interactive are YOUR Distance Courses? A Rubric for Assessing
Interaction in Distance Learning, Online Journal of Distance Learning Administration, Volume III, (Number II).
Feenberg Andrew, Xin Cindy (2005) A Teacher's Guide to Moderating Online Discussion Forums: From Theory to
Gibbs Matt, Wahlin Dan (2007) Professional ASP.NET 2.0 AJAX, Wiley Publishing, Inc.
Gold, Patricia Cohen (1984) Educational Software--New Guidelines for Development, AEDS Journal, Vol.18, no.1,
pp. 41-50, Fall 1984
Goyne, June S., Sharon K., McDonough, Dara D. Padgett (2000) Practical Guidelines for Evaluating Educational
Software, The Clearing House, July 1, 2000,
Lauterback, Roland (1989) In Search of Quality – Educational Software, Zeitschrift fur Padagogik, Vol.35, no.5,
pp.699-710, September 1989
McClure, Wallace B., Cate Scott, Glavich Paul, Shoemaker Craig (2006) Beginning AJAX with ASP.NET, Wiley
Publishing, Inc.
Mitchell Scott (2006) Examining ASP.NET 2.0's Membership, Roles, and Profile - Part 3,
Moore Dana, Raymond Budd, Edward Benson (2007) Professional Rich Internet Applications: AJAX and Beyond,
Wiley Publishing, Inc.