Structuring Data Bases From UML To Code

Total Page:16

File Type:pdf, Size:1020Kb

Structuring Data Bases From UML To Code

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.

Figure 1. Content Manager (2) Instructor - only instructors and the administrator have access to the Class Management tab which allows them 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,

Figure 2. User and Class Manager 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 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.

References

Blease Derek (1986) Evaluating Educational Software, Chapter 5, pp.96, Published by Rutledge, 1986, ISBN 0709939159 Brogan Patricia (2001) The Good, The Bad, and the Useless – Recognizing the signs of quality in educational software, http://www.electronicschool.com/2001/03/0301f3.html 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 Practice. 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, http://www.allbusiness.com/technology/computing-information- technology-overview/7358245-1.html 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, http://aspnet.4guysfromrolla.com/articles/040506-1.aspx Moore Dana, Raymond Budd, Edward Benson (2007) Professional Rich Internet Applications: AJAX and Beyond, Wiley Publishing, Inc.

Recommended publications