This document describes Moodbile, a Moodle web services extension for mobile applications. It was created to address the lack of mobile optimization in Moodle's user interface and to support increasing mobile access. Moodbile adds two layers to Moodle's architecture: an external API layer that implements services for mobile integration like courses, content, and users, and a web services connector layer that supports protocols like JSON, JSONP and REST. It also addresses authentication using OAuth to allow for mobile access without IP restrictions. Moodbile clients have been created for HTML5, Android and iOS platforms.
Moodbile, a Moodle web services extension and mobile apps
1. Moodbile: a Moodle web services
extension for mobile applications
Jordi Piguillem, Marc Alier, María José Casany, Enric
Mayol, Nikolas Galanis, Franciso J. García-Peñalvo, Miguel
Ángel Conde
1st Moodle Research Conference 2012
2. Motivation
Accessibility of internet-enabled mobile
devices (smartphones, tablets,
ultrabooks, etc.)
Moodle UI not optimized for small touch
screens
Increasing percentage of accesses of
Atenea (UPC Moodle server) done via
mobile devices
1st Moodle Research Conference 2012
3. Motivation
Atenea: UPC’s Moodle based digital platform
Some access numbers for the first 6 months of 2011
(Casany et al. 2012):
Total number of logged actions: ~15M
Actions from mobile devices: 3,76%
% of actions from PCs that are logins: 30,41%
% of actions from mobile devices that are logins: 49,51%
1st Moodle Research Conference 2012
4. Issues
Moodle 2.0 shipped with Web Services
Architecture
Provided web services are mostly geared
towards:
– Bulk Operations
– Administration
We need web services for accessing:
– Activity modules
– Contents
– Language strings
– Messages
– Capabilities
1st Moodle Research Conference 2012
5. Moodle Web Services
Architecture
Adds two logical layers to Moodle’s
architecture
1. Moodle External API Layer
2. Web Services Connector Layer
1st Moodle Research Conference 2012
6. Moodbile
Design an extension to Moodle Web
Services Architecture that provides access
to the most suitable features for mobile
applications
Features identified using two sources
(Casany et al. 2012):
1. Atenea’s web server logs
2. Atenea’s Moodle logs
1st Moodle Research Conference 2012
8. External API Layer
Implementation of the services for mobile
integration
Basic Services
– Course, User, Groups
Course Content Services
– Assignment, Forum, Resource, Quiz
Personal Content Services
– Blog, Calendar, Grade, Message
System Services
– Lang, System
1st Moodle Research Conference 2012
11. WS Connectors Layer
Provides additional web service protocols
• JSON (AJAX with JSON format messages)
• JSONP
• JSON-RPC
• JSON-RPC with OAuth
• REST with OAuth
1st Moodle Research Conference 2012
13. Authentication
In a mobile environment, security issues are
critical
IP filtering is not possible for mobile devices
OAuth as an alternative to username/password
and token methods
Choice of protocol and authentication left to the
various clients.
• HTML5: JSON-AJAX
• Android: JSON-RPC, JSON-RPC/OAuth
• iOS: Rest/OAuth
1st Moodle Research Conference 2012