Moodle Client Project
This is a post to announce the work that the Open University is working on in partnership with Intel on producing a Moodle client that has the ability to synchronise with a remote Moodle server.
Trawling though the public Moodle forums there has been prior discussions which serves as useful background information to our work; see: http://moodle.org/mod/forum/discuss.php?d=45633 .
Given the complexity and scope of this project, this is an initial posting to describe our work and to gather interest. There will be future postings that cover more technical aspects of our project. At this stage, we welcome feedback from the community on any issue that arises from reading this posting.
What are the usage scenarios for this project?
Our original starting point was to provide a solution for those users who would like to use Moodle on their local desktop/laptop computer and in a situation where they are not online; whether that be because of lack of internet/network infrastructure being available or because of financial issues such that they cannot afford constant connectivity.
The scenario can be extended to users who are mobile and are constantly on the move and carries a small laptop/ultra mobile computer as part of their travels. In this scenario, they will have limited connectivity whilst travelling on public transports (planes, trains, boats, and cars) but will have intermittent connectivity when they are between destinations or when they arrive in an office or accommodation that offers internet access. As such, for some periods they will work offline and for some period work online.
A final scenario arises as a benefit of supporting the two previous scenarios. In this scenario, the Moodle client is a standalone instance of Moodle that can be synchronised with a remote Moodle server. The Moodle client can then be considered the Personal Learning Environment (PLE) that a learner controls. Through the functions of the Moodle client, he or she can synchronise with an institutional Moodle virtual learning environment (VLE) and grab content and resources as published by the teaching institution. Similarly, the Moodle client user can compose content (e.g. Moodle Forum postings, etc.) through their Moodle client in offline mode and synchronise changes to the Moodle server when they are ready.
Some have argued that this work is irrelevant given that today, everyone is connected to the internet such that an offline, syncrhonisable Moodle client is unnecessary.
This statement may be true of the richer nations in the world and also those living near hi-tech capital cities. But for the developing nations, connectivity is I believe a serious issue which leads to such issues as “information poverty”.
I believe this project and it's potential outcome will reinforce and add value to the various current projects related to offering laptops to each and every child. Intel is sponsoring the Classmate PC project (see: http://www.classmatepc.com/ and http://www.vnunet.com/vnunet/news/2155284/intel-takes-laptop-per-child ) and MIT’s Nicholas Negroponte is promoting the One Laptop per Child (see: http://laptop.media.mit.edu/ ). Whereas these project initiatives tackles the technology and hardware provisions, this project may offer the software solutions to the hardware package with Moodle as the central learning platform both online as the VLE and offline as a potential PLE.
There are some parallels in this project with the Moodle Community Hub project; see: http://docs.moodle.org/en/Community_hub .
I see the key difference at this stage is that the Moodle client is owned by the learner and through the Moodle client can connect with institutional Moodle servers to gather content and resources and to post personal content and resources.
The same technology and development produced by this project can be used for the Moodle Community Hub project to allow Institutional Moodle server talking to another Institutional Moodle server, but presently this is not the focus of this project.
What is the architecture of Moodle Client?
Moodle client is a full, standard installation of Moodle on a desktop/laptop computer. The key difference is where possible we will help the user configure and install Moodle on their local computer with no technical knowledge whatsoever. Assuming, the installation is a smooth process, the user will have a fully working Moodle instance on their local computer and effectively can have full admin control of that Moodle instance.
Moodle becomes Moodle Client through possessing an additional Moodle module which gives the local Moodle instance the capability of synchronising with a remote Moodle server. The remote Moodle server will have a counterpart Moodle module installed to support the synchronisation process.
The synchronisation module and all communication from it are initiated by the Moodle client. Moodle servers simply respond to Moodle Client request and can decide for security reasons to reject or deny any request from the Moodle Client and also filter and select what data processing operations to perform. Similarly no Moodle server can initiate communication with a Moodle client and as such no network ports or external public access is required from the machine running Moodle client.
Moodle client will only synchronise with those Moodle modules that have extended their capabilities to support synchronisation. Our perspective is that we are offering the infrastructure for synchronisation to happen between Moodle Client and Moodle server; but leaving the actual modules that support this capability as a decision for Moodle module developers to opt in and provide support. From our own project perspective, we are aiming to produce a fully working syncrhonisable solution for Moodle Forum as a proof of concept and also as a potential benefit for the Open University’s own business requirements.
Work done to date
We have completed technical feasibility study and technical proof of concept. This work has given us confidence to make this public posting.
Our technical proof of concept demonstrates that a client Moodle instance cans synchronise with a Moodle server instance with the focus on Moodle Forums as the module being synchronised.
In this proof of concept, synchronisation is one way with the client requesting Moodle Forum changes from the Moodle server. After the synchronisation process is completed, the Moodle client will possess the same data as the Moodle server. The test can be continued by making further changes on the Moodle server and repeating the synchronisation process to replicate the server changes to the Moodle client.
The outcome is a simple synchronisation between two Moodle instances, but the bulk of our work has been developing the needed infrastructure to support this processes with minimal changes to Moodle core code and also minimising the impact required from Moodle module developers to make their Moodle module synchornisable.
We have technical documents outlining our solution and also a downloadable demonstration of our technical studies. Please contact me ( email@example.com ) to register your interest and I will provide details to the documentation and code.
We are aiming to provide a working solution with Moodle Forums as our key demonstrator for the next Moodle Moot in October 2007.
Given the technical feasibility is now completed, in mid-May 2007 we will start in earnest in developing Moodle Forum as a synchronisable Module.
The latter half of the development will concentrate on developing an installation wizard that will help a non-technical user install Moodle Client on their local desktop/laptop computer and have it configured to talk to a remove Moodle server.
There is a lot more to say about this project, but this posting serves as an initial posting to gather people’s interest and feedback in helping this project develop.
I am very keen to gather community ineterest in this project and also whether people are keen to donate their time and effort.
Feel free to contact me directly or through the postings.