Connecting Mobile Learning To The Cloud
In 2009 the University of Wisconsin-Extension's Academic Advanced Distributed Learning Co-Laboratory (AADLC) signed a partnership agreement with the Florida Virtual School (FLVS) to create an iPhone iOS application1.. The app, Revu4u (Review for You), is designed to help students prepare for Advanced Placement (AP) tests, which enable high-school students to acquire college credit in various subjects.
Revu4u is a free app that allows students to download question "packs" covering different AP content areas. The app includes one free question pack (algebra) and question packs in other subjects are available for purchase. Once a pack of questions has been purchased and downloaded, students can practice for AP tests using their iPhone. Students also have the option to participate in a leaderboard ranking system to see how they compare to others in the same content areas.
Revu4u was designed as a test bed for instructional apps that combine mobile technology and distributed or "cloud" computing. There were three key elements to the project: A native iOS app, a question pack authoring tool, and a cloud-hosted database. This article focuses on the project's cloud database component (Amazon SimpleDB). The following sections describe the rationale for choosing Amazon SimpleDB and associated challenges that had to be overcome to create a successful software system.
Several project needs led AADLC developers to select Amazon SimpleDB as the Revu4u database solution. Based on the structure of the Apple App Store at the time of development, the default option was to create all question pack content in the iOS application itself. However that approach created problems for maintaining control of content. FLVS holds license agreements with several content providers. Some of these agreements require FLVS to maintain control over content when delivered to students. For most Web courses, this control is easily handled by using databases on FLVS servers. There were concerns about allowing content to be embedded in the application because the only way to make changes or revoke access to specific content pieces was to reprogram the application. Storing the content in a separate database under FLVS control eased ownership concerns and allowed updating of individual question packs. An added benefit of using a separate storage platform was that the content could be made available to other mobile operating systems in the future.
There are many ways to store digital content using traditional databases. FLVS has an extensive data center to support its online courses but the team had no idea what scale would be needed to support a fledgling application. Investing in significant server hardware for an experimental application would make the project untenable. When an application is released through the Apple App Store, however, there is no way to limit the number of downloads. At the time Revu4u was in development in 2009, the App Store ecology was relatively sparse with fewer than 35,000 apps available for download . Given the potential market of 14 million Apple iOs devices at that time  and the relatively small number of apps available, success posed its own risk.
Developers at the AADLC were already experimenting with Amazon's Web Services for other projects. Some testing indicated it was possible to store content using Amazon's SimpleDB and deliver the content into an Apple iOS application. Amazon only charges for usage and storage so there were no upfront costs to test a solution that could scale to millions of users. If there were only a few downloads, then the cost would literally be pennies.
One final requirement was that the data storage solution could eventually be replicated on servers behind a firewall. An open source software project called NSimpleDB replicates the Amazon SimpleDB data model. Using this solution, AADLC developers could create an independent version of the Revu4u storage solution if it was ever needed .
While Amazon SimpleDB met the project requirements, there were some initial issues to overcome. Three key challenges included learning how to use a schema-less database, working with file size limitations, and connecting Amazon SimpleDB to Revu4u through the Apple App Store. The following sections provide a description of design decisions in response to these hurdles.
Working from nothing: First use of a schema-less database.Anyone familiar with database development is aware relational databases are usually structured through a schema, which is to say a set of rules to ensure accuracy and consistency in the data expressed through a series of formulas. Amazon SimpleDB is a "schema-less" database. This makes the system more versatile overall, but poses a fundamental challenge for those accustomed to working with a schema as it forces rethinking almost everything about the way content is stored and retrieved.
Amazon SimpleDB was just moving out of beta testing and into wide distribution at the time AADLC began developing Revu4u. While there were a few scattered news stories and blog posts on this new data service[5, 6], a lack of concrete examples meant that AADLC developers had to create a conceptual map as a starting point. The lead AADLC software engineer developed a concept map of Amazon SimpleDB based on his existing knowledge of relational databases. While the more traditional elements of a relational database are absent in Amazon SimpleDB (e.g. tables, rows, columns), he worked to establish which native functions could at least approximate these components.
Amazon uses the concept of "domains" to denote storage areas. While there are some significant differences between domains and tables in traditional databases, it is a close conceptual match. Within a domain, an Amazon SimpleDB "item" could approximate a row, and an "item attribute" could be thought of as a column. While the differences between each of these functions in Amazon SimpleDB and their counterparts in a typical database are technically more substantial than this analogy suggests, this conceptual mapping gave AADLC developers a way to organize our approach to the project.
File size limitations. Amazon's Web Services site now touts the use of Amazon SimpleDB to support iOS applications . However at the time this project was in development, the concept was still new. One challenge was to determine how to format the question packs so they could be downloaded and used in the iOS mobile application. This formatting had to take into account the size limitations imposed by Amazon SimpleDB.
The question content FLVS sent to the AADLC was already in XML files. Each XML file contained a question stem, answer choices, and feedback. Breaking this file apart into component parts was possible but that would have meant more complexity in rendering the content on the iPhone. The team therefore decided to keep all parts of the question as a single file. Mapping this structure back to Amazon SimpleDB was more challenging than originally envisioned because keeping the question together meant a larger file size. The Amazon Simple DB "item attribute" was used to store the content elements. Item attributes, however, are limited in size to only 1024 bytes. Some questions contained more than 1024 bytes of information. The solution required a workaround of breaking each question into a chunk no bigger than 1024 bytes. An additional attribute was added to identify each question part so they could be reassembled when downloaded to the iPhone app. Breaking a question into chunks based on size rather than component parts of the question (i.e. stem, answers, feedback), made reassembly far easier for the iPhone app.
Even this item attribute workaround faced limitations when dealing with extremely large questions. While item attributes are limited to 1024 bytes, each item is limited to 256 attributes. Questions containing images, for example, quickly exceeded 256*1024 bytes. The lead software engineer at the AADLC developed an additional workaround that allowed a question to span across items. Each item name was appended with a value that showed that they were part of the same question. The iPhone app
Connecting cloud to mobile. The last challenge was to make a connection from Amazon Simple DB through the Apple App Store so question packs could be downloaded to Revu4u. When the project began, Apple did not allow any in-app purchasing and the team spent considerable time figuring out how to get separate question packages into the app. About halfway through the effort, Apple changed this policy and the ability to make purchases inside the app was permitted. This policy change allowed the team to focus on the mechanics of moving the data rather than trying to develop a workaround.
Each question pack was given an Amazon SimpleDB key mapped to a purchasing code in the Apple App Store. When users select a new question pack for download on their iPhone, the App store manages the financial transaction and then requests the appropriate XML files for that question pack from Amazon SimpleDB. The question pack, in the form of raw data, is then downloaded to the user's iPhone. Revu4u parses the raw question data, presents it in a human-readable format, and handles scoring and feedback
Apple approved Revu4u in April 2010. While the number of Revu4u downloads peaked in the hundreds (about 600 per month) and not in the millions, the database cost for that peak month was less than $2 (USD). Amazon SimpleDB was instrumental in allowing the project to be financially and technically feasible. Revu4u is still available for iOS devices through the Apple App Store.
Revu4u is a simple multiple-choice test preparation app with limited data requirements. The Academic ADL Co-Lab is now working on a more robust system, which will push this mobile and cloud approach in new directions. Funded under a "Broad Agency Announcement" research contract with the U.S. Department of Defense, MASLO (Mobile Access to Supplementary Learning Objects) is an open source development project that will be available in early summer 2012. MASLO will continue to support multiple-choice questions but will also allow other forms of supplemental instructional content