A Monitored Student Testing Application Using Cloud Computing

Similar documents
Cisco Hybrid Cloud Solution: Deploy an E-Business Application with Cisco Intercloud Fabric for Business Reference Architecture

ORACLE APPLICATION EXPRESS 5.0

1 Building, Deploying and Testing DPES application

Web-based Instant Messaging

How To Understand The Architecture Of An Ulteo Virtual Desktop Server Farm

Deepak Patil (Technical Director) iasys Technologies Pvt. Ltd.

Accessing Data with ADOBE FLEX 4.6

Customer Bank Account Management System Technical Specification Document

4D and SQL Server: Powerful Flexibility

How To Create A Virtual Private Cloud On Amazon.Com

MEGA Web Application Architecture Overview MEGA 2009 SP4

XTendTraders.com Trading room simulator

How To Deploy Sangoma Sbc Vm At Amazon Cloud Service (Awes) On A Vpc (Virtual Private Cloud) On An Ec2 Instance (Virtual Cloud)

Web Pages. Static Web Pages SHTML

RemoteApp Publishing on AWS

Client/server is a network architecture that divides functions into client and server

PROJECT MANAGEMENT SYSTEM

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

Introducing the Adobe Digital Enterprise Platform

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Sostenuto 4.9. Hardware and Software Configuration Guide. Date: September Page 1 of 13

POINT-TO-POINT vs. MEAP THE RIGHT APPROACH FOR AN INTEGRATED MOBILITY SOLUTION

Creating an ESS instance on the Amazon Cloud

Avaya Aura Orchestration Designer

AppBoard TM 2.6. System Requirements. Technical Documentation. Version July 2015

Intranet Website Solution Based on Microsoft SharePoint Server Foundation 2010

Rich Internet Applications

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

1. Introduction 1.1 Methodology

Understanding Evolution's Architecture A Technical Overview

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version ForeScout Mobile

By Kundan Singh Oct Communication

Software Architecture Document

Offerte del 13 giugno 2014

File S1: Supplementary Information of CloudDOE

Japan Communication India Skill Development Center

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Live Guide System Architecture and Security TECHNICAL ARTICLE

Adobe Flash Player and Adobe AIR security

Background on Elastic Compute Cloud (EC2) AMI s to choose from including servers hosted on different Linux distros

What Is the Java TM 2 Platform, Enterprise Edition?

Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising

Adobe Experience Manager: Social communities

Testing and Deploying IBM Rational HATS 8.5 Applications on Apache Geronimo Server 3.1

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

OpenText Information Hub (ihub) 3.1 and 3.1.1

Microsoft SharePoint 2013 with Citrix NetScaler

Sabre Red Apps. Developer Toolkit Overview. October 2014

Alfresco Enterprise on AWS: Reference Architecture

What s New in VMware vsphere 5.1 VMware vcenter Server

HP OO 10.X - SiteScope Monitoring Templates

TG Web. Technical FAQ

ni.com Remote Connectivity with LabVIEW

Japan Communication India Skill Development Center

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

ActiveVOS Clustering with JBoss

for Networks Installation Guide for the application on the server August 2014 (GUIDE 2) Lucid Exact Version 1.7-N and later

for Networks Installation Guide for the application on the server July 2014 (GUIDE 2) Lucid Rapid Version 6.05-N and later

A Modular Approach to Teaching Mobile APPS Development

Middleware- Driven Mobile Applications

Statement and Confirmation of Own Work

VIA CONNECT PRO Deployment Guide

Skynax. Mobility Management System. System Manual

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

Orientation Course - Lab Manual

Adobe Systems Incorporated

Deploy Remote Desktop Gateway on the AWS Cloud

NovaBACKUP xsp Version 15.0 Upgrade Guide

Fahad H.Alshammari, Rami Alnaqeib, M.A.Zaidan, Ali K.Hmood, B.B.Zaidan, A.A.Zaidan

IBM Rational Web Developer for WebSphere Software Version 6.0

Payment Card Industry and Citrix XenApp and XenDesktop Deployment Scenarios

Tibbr Installation Addendum for Amazon Web Services

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

Software Requirement Specification For Flea Market System

Crystal Reports for Borland JBuilder


Day-Care Environment Communication and Database

How To Secure Your Data Center From Hackers

Rich Internet Applications

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

HPC Portal Development Platform with E-Business and HPC Portlets

Using DeployR to Solve the R Integration Problem

How Oracle MAF & Oracle Mobile Cloud can Accelerate Mobile App Development

OpenSSO: Cross Domain Single Sign On

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS


KonyOne Server Installer - Linux Release Notes

NetBeans IDE Field Guide

Getting Started with Attunity CloudBeam for Azure SQL Data Warehouse BYOL

Instant Chime for IBM Sametime For IBM Websphere and IBM DB2 Installation Guide

SMART Vantage. Installation guide

VIA COLLAGE Deployment Guide

Introduction to IBM Worklight Mobile Platform

Assignment # 1 (Cloud Computing Security)

Transcription:

A Monitored Student Testing Application Using Cloud Computing R. Mullapudi and G. Hsieh Department of Computer Science, Norfolk State University, Norfolk, Virginia, USA r.mullapudi@spartans.nsu.edu, ghsieh@nsu.edu Abstract This paper presents the design and implementation of a prototype online monitored testing application which has been deployed in the Amazon Web Services Cloud using Amazon s Elastic Compute Cloud platform. The interactive application allows students to take tests online for their courses while the instructors are logged in simultaneously and conduct the tests. The application allows the students to request hints from the responsible instructor during the test and also enables the instructor to provide the hints if so desired. The prototype application was developed using Apache Tomcat web server, Adobe Flash Builder for the user front-ends, and MySQL for the back-end database. The application logic was implemented primarily in Java 1.6 using Eclipse IDE for Java EE Developers. The application was developed and runs on Microsoft Windows platforms. Keywords: cloud computing; online testing; monitored testing 1 Introduction To enhance the teaching and student learning in information technology and related computing disciplines, especially in gateway or remedial courses, it is important to conduct quizzes, tests, and exams frequently and meaningfully to gain insights into students achieving the desired learning outcomes or not, on both collective and individual basis. Online testing applications and systems are becoming increasingly widely used due to the major benefit of convenience that they bring to the participants. Students can take the tests from anywhere with internet access. Instructors can schedule the tests at times that are convenient to the students. The convenience factor is especially important for distance-learning or online courses. The conventional online testing applications generally do not provide the instructors with capability to control the pace of the test in real time. Also they generally do not allow the students to ask for help from the instructors, or the instructors to provide appropriate help during the tests interactively. An instructor generally finds out the performance of a student on a test only after the test is complete, without a great deal of insight as to the difficulties or problems that prevented the student from being able to correctly answer a question. Hence, these testing applications are useful for evaluation or assessment purposes. However, they do not generally provide a collaborative problem-solving capability between an instructor and a student during a scheduled test. The monitored student testing application described in this paper attempts to add such a collaborative problemsolving capability into online testing applications by allowing the students to ask for help and the responsible instructor to provide hints if so desired, all during the testing interactively. In addition, cloud computing (1) is gaining momentum as a critical technological and business solution in both public and private sectors, including the education and training segments. The major business benefits of cloud computing include: business agility, new business models, less operational issues, better use of resources, and less capital expense (2). The application described in this paper is designed to take advantage of the benefits offered by cloud computing. The initial design and prototype implementation of such a monitored student testing application was completed through a M.S. Project research (3) at Norfolk State University. The prototype application was developed using Apache Tomcat web server (4), Adobe Flash Builder (5) for the user front-ends, and MySQL (6) for the back-end database. The application logic was implemented primarily in Java 1.6 using Eclipse IDE for Java EE Developers (7). The application was developed and runs on Microsoft Windows platforms. Once the application was developed and tested on a local Windows 7 Enterprise system, it was then deployed to the Amazon Elastic Compute Cloud (EC2) platform (8) which is a product offered by Amazon Web Services (AWS) (9). We chose to use the AWS because it is a low-cost public cloud service which offers a high level of flexibility and performance. We chose to use the EC2 because it is a well-known service that provides the application developers with complete control of their computing resources and lets the developed applications run on Amazon s proven computing environment. Furthermore, the AWS offers an attractive Free Tier option that is very useful for prototype development and deployment purposes. For this research project, we used the AWS Free Tier service. This paper is organized as follows. Section 2 discusses the user scenarios for the initial design and prototype implementation of a monitored student testing application.

Section 3 presents the high-level design of the prototype application. Section 4 describes how the prototype application was developed and deployed on a local system. Section 5 discusses how the prototype application was deployed to the EC2 platform in AWS cloud so it could be accessed from outside of the cloud. A summary and discussion on future work are presented in Section 6. 2 User Scenarios A new user needs to first register with the application as a Professor or a Student. A registered Professor can create test papers each containing a list of questions and correct answers. The Professor then specifies the date/time for the test. Upon the scheduled time for a test, the responsible Professor can log into the application, start the test, monitor the progress of the test, and supply the hints/suggestions if requested by students and the Professor deems it appropriate to do so. The Professor also determines when to post the next question to all participating Students. The Professor can also track the students performance as the test progresses. A registered Student can log into the application to find out what tests are scheduled. At the scheduled time for a test, the Student can log in and take the test as each question is posted by the responsible Professor. If the Student needs help, he/she can ask the Professor for hints in real time. A Student can also track his/her own performance and the Student s standing in comparison to the class as the testing progresses. 3 Software Design This section presents an overview of the software design and components used for the prototype monitored student testing application that has been deployed on AWS EC2 platform. 3.1 Required Software The off-the-shelf software packages required for the development and deployment of the prototype monitored student testing application are: 1) Adobe Flash Builder 4.5/4.7; 2) Eclipse IDE for Java EE Developers; 3) Apache Tomcat 6.0 web server; 4) MySQL 5.1 database server; and 5) MySQL 5.1 GUI Tools. 3.2 Application Software Architecture To provide the desired level of performance, maintainability, and reusability, the best practices for developing web applications call for using a three-tiered architecture consisting of client, application server, and back-end databases. For our application, we choose Apache Tomcat as the Web Application Server and MySQL as the relational database management system. Both are open source and high performance implementations which have been widely used for development and deployment worldwide. With this architecture, user requests are transmitted by the client to Apache Tomcat Web Application Server which processes the user requests based on the application logic implemented by the server. The Apache Tomcat server also accesses the MySQL databases to store, modify, or retrieve data. The responses to user requests are transmitted from the Apache Tomcat server to the client that in turn presents the results to the users. Figure 1 depicts the software architecture of the application as viewed by the key components: Professors, Students, MySQL databases, and Apache Tomcat application logic. Create Account Login CreateTestPaper Start the Test Professor Test Results Logout Attempt Test View Test Report Students View Results Get Registered Login CreateTestPaper View Online Students Conduct Test Attend the Test Results Test Report Logout Store Check Authentication Store Retrieve Update Retrieve /Store Retrieve Retrieve Update Status HTTP Request J2EE Server HTTP Response Figure 1. Application Software Architecture 3.3 UML Representations Retrieve Data MySQL Unified Modeling Language (UML) is a standardized specification language for object modeling (10). UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model. It's a refinement of earlier Object Oriented Design and Object Oriented Analysis methodologies. These diagrams can be divided into two groups: Structural Diagrams, which model the organization of the solution, and Behavioral Diagrams, which model the functionality of the solution. 3.3.1 Class Diagram Class diagrams are the structural diagrams used to identify the class structure of a system, including the properties and methods of each class. Also depicted are the various relationships that can exist between classes, such as an inheritance relationship. The class diagram is one of the most widely used diagrams from the UML specification. Figure 2 depicts the class diagram for two classes: Professor and Student for our application. Store Data

3.3.2 Use Case Diagrams Figure 2. Class Diagram Use case diagrams are Behavior Diagrams and are used to identify the functionality provided by the system (use cases), the users who interact with the system (actors), and the association between the users and the functionality. Use cases are used in the analysis phase of software development to articulate the high-level requirements of the system. The primary goals of use case diagrams include: 1) Providing a high-level view of what the system does; 2) Identifying the users ("actors") of the system; and 3) Determining areas needing human-computer interfaces. Figure 3 shows the use case diagram for the Professor and Figure 4 shows the use case diagram for the Student. Figure 4. Use Case Diagram for Student 3.3.3 Sequence Diagram Sequence diagrams are also Behavior Diagrams and are used to document the interactions between classes to achieve a result, such as a use case. The sequence diagram lists objects horizontally, and time vertically, and models these messages over time. Figure 5 is the sequence diagram depicting the interactions among the key components of our application. P : Professor S : Student App : Application DB : Databse Register store registration details login validate login validate set questions store all questions start the test answer the questions one by one send answers for validation respond with results display the result Figure 3. Use Case Diagram for Professor provides whole report in graphical format logout Figure 5. Sequence Diagram for Professor and Student

3.3.4 Collaboration Diagram Collaboration diagrams are also Behavior Diagrams and are designed for modeling the interactions between objects. This type of diagram is a cross between an object diagram and a sequence diagram. It uses a free-form arrangement of objects which makes it easier to see all iterations involving a particular object. Figure 6 is the collaboration diagram depicting the interactions among the key components of our application as a sequence of events and messages. P : Professor 16: provides whole report in graphical format 1: 6: login 8: set questions 10: start the test 17: App : Application 3.4 Database Tables Figure 6. Collaboration Diagram In order to execute the project, several MySQL tables are created to store the relevant information: 1) Student Details table for storing information for each Student registered in the system. 2) Professor Details table for storing information for each Professor registered in the system. 3) Exam Schedule table for storing information for each exam created and scheduled by a Professor. 4) Test Papers table for storing the questions and correct answers for each exam created by a Professor. 5) Test Scenario table for storing the status of an exam and the Professor and Students who are participating in an exam. 6) Student Questions table for storing the status of each Student s progress on answering the questions in an exam. 7) Student Result table for storing the answers given by each Student to the questions in an exam. 8) Total Results table for storing the results for all students taking an exam. 9) Student Marks table for storing the scores for each Student. 3.5 User Front-Ends 14: display the result 15: S : Student 2: Register 4: login 11: answer the questions one by one 18: logout 3: store registration details 5: validate 7: validate 9: store all questions 12: send answers for validation 13: respond with results DB : Databse To develop the GUI front-ends with cross-platform support, we choose to use Adobe Flash Builder (Version 4.5 and 4.7) which is a popular Integrated Development Environment (IDE) for building games and applications. The Flash Builder supports the ActionScript language and the open source Flex framework (11). It also supports MXML which is an XML-based user interface markup language first introduced by Macromedia in March 2004. We use MXML to declaratively lay out the GUI interface of our application, provide tags that correspond to classes in the Flex framework, and implement the foundational logic and application behaviors. We also use ActionScript-based scripts embedded in MXML files to provide flow control and object manipulation features that are not available in MXML. The Flash Builder IDE is used to compile the MXML into standard binary SWF files which can then be used by Adobe Flash Player. The Flash Player is a web browser plug-in that delivers expressive crossplatform, browser-based applications, content, and video that work consistently across browsers on a broad range of devices, including smartphones, tablets, personal computers, and TVs. (12) 4 Prototype Application Development The prototype application was developed on Microsoft Windows platform using the Eclipse IDE for Java EE Developers (Juno release). The developed code was first installed and tested on a local Windows platform (Windows 7 Enterprise version). Once proven operational in a local environment, the developed code was then installed and tested on a Windows Server 2008 virtual machine running on Amazon s EC2 platform. 4.1 Software Modules The prototype software is organized into four modules: 1) Users Module which provides the functionality to authenticate and register the users (Professors and Students) who wish to use the application. 2) Professor Module which provides the functionality for a Professor to create and schedule a test, log in at the scheduled test time, conduct the test, give hints and suggestions to students who ask for help, view test scores, and compare a student s test scores with other students in the class. 3) Student Module which provides the functionality for students to find out test schedules, take a test, ask for hints if so desired, and view the individual s test scores in graphical form. 4) Cloud Module which supports the deployment of the entire application on a cloud and the ongoing monitoring of its operation in the cloud. 4.2 Local Development There are five major steps involved in developing, deploying, and using the prototype application in a local environment (on a Windows 7 Enterprise system): 1) Set up the system. 2) Develop the application.

3) Deploy the application. 4) Run the application. 5) Access the application locally. 4.2.1 System setup To set up the local development and execution environments, five major software packages are required: 1) Install Eclipse IDE for Java EE Developers. 2) Install Adobe Flash Builder 4.7 Premium release. 3) Install MySQL Server (5.1.67). 4) Install MySQL GUI Tools (5.0.r17). 5) Install Apache Tomcat Server (6.0.36). 4.2.2 Application development The main application logic is implemented primarily in a Java program called MonitoredTestingService, using the Eclipse IDE. The GUI front end is implemented in MXML and ActionScript code using the Flash Builder IDE. The database tables for the local MySQL Server are created using SQL scripts and MySQL GUI tools. 4.2.3 Application deployment The following major steps are used to deploy the application software on a local Windows 7 system: 1) Create a local Apache Tomcat v6.0 server in Eclipse s workspace using Eclipse IDE. 2) Start the local Apache Tomcat v6.0 Server from within the Eclipse IDE. 3) Deploy the application MonitoredTestingService onto the local Apache Tomcat v6.0 Server within the Eclipse workspace. 4) Deploy the bin-release code produced by the Flash Builder IDE for this application, at the same location for the main application MonitoredTestingService, onto the local Apache Tomcat Server within the Eclipse workspace. 5) Configure the local Apache Tomcat Server within the Eclipse workspace for a different TCP port number (using 9090 instead of the default value of 8080). 6) Configure the local MySQL Server and create the database tables required for the application. 4.2.4 Application execution To run the application, the following major software components need to be running: 1) The local MySQL Server with the database tables appropriately created and initialized for the application. 2) The local Apache Tomcat Server within the Eclipse workspace with the required application software deployed and configuration changes made. 4.2.5 Application access To access the application locally, start a web browser (e.g., Microsoft Internet Explorer) with the URL set to: http://localhost:9090/mts/monitoredtestingservice.html. This will bring up the Monitored Student Testing Service homepage with a LoginPage dialog box at the center of the page, as illustrated in Figure 7 below. Figure 7. Homepage Display for Local Access 5 Cloud Deployment Once the application had been developed and tested on a local Windows 7 Enterprise system, the application was next deployed to the Amazon EC2 cloud. The major steps in deploying and using the application in Amazon EC2 cloud include: 1) Set up an EC2 Instance pre-loaded with a standard Windows Server 2008 R2 operating system. 2) Set up the EC2 Instance with the prerequisite software. 3) Deploy the application onto the EC2 Instance. 4) Run the application on the EC2 Instance. 5) Access the application using a web browser executed on the EC2 Instance. 6) Access the application using a web browser executed on a remote system. 5.1 Set up Cloud Instance To simplify the set up process, we choose to load the instance with a standard Windows Server 2008 R2 operating system. The security policy for the EC2 instance needs to be modified to permit the following TCP ports through the built-in firewall for the EC2 instance: HTTP, MYSQL, RDP (for remote desktop), and 9090 (for Apache Tomcat server). Next, a RDP connection is set up between a remote Windows 7 system and the EC2 instance running Windows Server 2008 R2 operating system. The RDP connection is used for deploying the application onto the EC2 instance and administering/monitoring the application subsequently. For the ease of application deployment and future maintenance, we choose to install all the pre-requisite software on the EC2 instance: Eclipse IDE for Java EE Developers; Adobe Flash Builder 4.7; MySQL Server and MySQL GUI Tools; and Apache Tomcat Server.

Next, copy the application software onto the EC2 instance. Then, deploy and run the application on the EC2 instance as described in the previous section. 5.2 Accessing Application in Cloud Once the application is deployed onto the EC2 instance, we first test the application by accessing it through a web browser session launched from the EC2 instance. Next we access the application from a web browser launched on a remote system with the URL set to: http://x:9090/mts/monitoredtestingservice.html, where x is the public DNS address (e.g., ec2-184-73-116- 127.compute-1.amazonaws.com) assigned to the EC2 instance. Figure 8 below shows the homepage displayed for remote access to the EC2 instance. Figure 8. Homepage Display for Remote Access 6 Summary and Future Work This paper presents the design and prototype implementation of a cloud-based monitored student testing application. This application is designed to allow the instructors to conduct and monitor the tests in real-time. It also allows the students to ask the instructors for hints during the tests, and the professors to supply hints or suggestions if they deem appropriate to do so. The pace of each test is also controlled by the responsible instructor in real-time based on the performance of the students as they answer each question. A student can also display in real-time his/her test score and its standing among the student s cohorts. This monitored approach for student testing can be very useful for undergraduate gateway or remedial courses which are critical for laying the foundation for students success in more advanced courses down the road. It is very important for the instructors in these courses to make sure that students learn the required topics successfully. The traditional online testing approach does not provide the instructors real-time control of the pace of the test, or a mechanism for students to ask for and receive hints from the instructor in real-time. This type of real-time interaction between the instructor and the students can be very useful when the instructor wants to make sure that a certain percentage of students who are taking the test have correctly answered a question. With a cloud-based implementation, this type of application can offer a high degree of convenience for instructors and students as they can work from anywhere. It can also leverage the benefits of cloud computing in cost efficiency and improved availability. A tradeoff of this monitored approach is that the responsible instructor needs to be online and conduct the testing in an active manner. This is different from the traditional online testing approach which does not require the instructor to be online and actively involved with the testing during the time the testing is scheduled. Another constraint of the initial prototype implementation of the monitored student testing application is that all students taking the same test are working on the same questions at the same pace. This may be too restrictive for courses with students of very diverse abilities and preparations. In the future versions of the prototype implementation, we plan to allow students to move forward at their own pace, while still allowing the instructors to actively monitor the performance of students and provide hints when requested by students interactively during the testing. The initial prototype implementation of the application only supports the questions and answers in simple text and multiple choice formats. We plan to add capabilities to support questions and answers in more flexible and multimedia formats. We also plan to conduct experiments with a small number of gateway and remedial courses in the computer science and information technology curricula to collect feedback from the participating instructors and students on the efficacy of this monitored student testing approach. 7 Acknowledgement G. Hsieh s research was supported in part by U.S. Army Research Office, under contract no. W911NF-12-1- 0081, and U.S. Department of Energy, under grant no. DE- FG52-09NA29516/A000. 8 References 1. Mell, Peter and Grance, Timothy. The NIST Definition of Cloud Computing. NIST. 2011. NIST Special Publication 800-145. 2. Schouten, Edwin. 5 Cloud Business Benefits. Wired. October 16, 2012. 3. Mullapudi, RamaKrishna. Monitored Student Testing Service using Cloud Computing. Department of Computer Science, Norfolk State University. Norfolk, Virginia, 2013. MS Project.

4. Apache Tomcat. [Online] The Apache Software Foundation. [Cited: April 5, 2013.] http://tomcat.apache.org/. 5. Adobe Flash Builder Family. [Online] Adobe Systems Inc. [Cited: April 5, 2013.] http://www.adobe.com/products/flash-builder.html. 6. MySQL. [Online] [Cited: April 5, 2013.] http://www.mysql.com/. 7. Eclipse Downloads. [Online] Eclipse Foundation. [Cited: April 5, 2013.] http://www.eclipse.org/downloads/. 8. Amazon Elastic Compute Cloud (Amazon EC2). [Online] Amazon.com Inc. [Cited: April 5, 2013.] http://aws.amazon.com/ec2/. 9. Amazon Web Services. [Online] Amazon.com Inc. [Cited: April 5, 2013.] http://aws.amazon.com/. 10. Unified Modeling Language. [Online] Object Management Group. [Cited: April 5, 2013.] http://www.uml.org/. 11. Flex. [Online] Adobe Systems Inc. [Cited: April 5, 2013.] http://www.adobe.com/products/flex.html. 12. Adobe Flash runtimes. [Online] Adobe Systems Inc. [Cited: April 5, 2013.] http://www.adobe.com/products/flashplayer.html.