by Nadir Guetmi, Moulay Driss Mechaoui and Abdessamad Imine
Designing reliable and resilient collaborative applications has become a hot topic in mobile cloud computing, raising challenging issues such as data management and failure recovery.
The powerful evolution of hardware, software and data connectivity of mobile devices (such as smartphones and tablets) stimulates people to publish and share their personal data independently of spatial and temporal constraints. Indeed, by the end of 2014, the number of mobile-broadband subscriptions reached 2.3 billion globally . Taking advantage of the increasing availability of built-in communication networks, mobile devices enable users to manipulate collaborative applications, such as communicating by email and short messages, playing games, sharing information, organizing videoconferences, and coordinating business events.
Although mobile device hardware and network modules are continually evolving and improving, these devices will always be resource-poor and with unstable connectivity and constrained energy . For instance, to manage natural catastrophe recovery in disaster-stricken zones, collaboratively writing a shared report in real-time through ad-hoc peer-to-peer mobile networks is often very expensive because it requires enormous energy consumption to (i) manage the rescue team scalability (join and leave events), and most importantly, (ii) synchronize multiple copies of the shared report to maintain a consistent and global view of the disaster situation. Moreover, it is not possible to ensure a continuous collaboration due to frequent disconnections.
To overcome the mobile device resource limitations, one straightforward solution is to leverage cloud computing, which is an emerged model based on virtualization for efficient and flexible use of hardware assets and software services over a network without requiring user intervention. Virtualization extends the mobile device resources by offloading execution from the mobile to the cloud where a clone (or virtual machine) of the mobile is running. Cloud computing allows users to build virtual networks ‘à la peer-to-peer’ where a mobile device may be continuously connected to other mobiles to achieve a common task. Current cloud systems provide only the creation of infrastructures as only the process for provisioning the system. However, other steps such as installation, deployment, configuration, monitoring and management of failure recovery are needed to fully provide reliable and resilient collaboration for mobile users in the cloud. For example, users must be able to easily recover all shared documents in the event of a technical hitch (e.g. crash, theft or loss of mobile device) and be able to seamlessly continue the collaboration.
In , we have designed a new cloud-based platform to ensure an efficient and scalable real-time collaboration service for mobile devices. Thus, each user owns two copies of the shared document (such as XML or RDF documents) with the first copy stored in the mobile device and the second on its clone (at the cloud level). The user modifies the mobile copy and then sends local modifications to the clone in order to update the second copy and propagate these modifications to other clones (i.e. other mobile devices).
Figure 1: Architecture of our cloud-based collaboration service
As illustrated in Figure 1, our service consists of two levels. The first level (Cloning Engine) provides self-protocol to manage the complete life cycle of clones. This protocol (i) instantiates clones for mobile devices, (ii) builds virtual peer-to-peer networks across collaborative groups, (iii) seamlessly manages the join and leave of clones inside the groups, and (iv) creates a new instance of a clone when a failure appears. Our cloning deployment protocol also deals with many failure situations and it allows any failed clone to restore its consistent state and re-join its collaborative group. This cloning-based solution enables us to achieve data availability and fault tolerance. Indeed, the shared data and the collaborative service are continuously available. Even if a user’s mobile device is lost, the user can recover the current shared data from the clone copy. Moreover, the user can work during disconnection by means of the mobile device’s copy.
Clone-to-clone and mobile-to-clone interactions may cause concurrent updates to lead to data inconsistency. Thus, the second level (Collaboration Engine) furnishes group collaboration mechanisms in real-time and procedures for maintaining consistency of shared documents. All concurrent updates are synchronized in decentralized fashion in order to avoid a single point of failure, where each clone communicates and synchronizes itself with all other clones. Thus, it offers (i) better performance as the bottlenecks will be eliminated, and (ii) better fault tolerance, since if one clone fails, the rest of the system can still function. This data synchronization is mainly performed at the cloud level, minimizing the amount of energy used by the mobile device during collaboration.
 Brahima Sanou: “The World in 2014: ICT Facts and Figures”, http://www.itu.int/en/ITUD/Statistics/Documents/facts/ICTFactsFigures2014-e.pdf, 2014
 M. Satyanarayanan, et al.: “The case for vm-based cloudlets in mobile computing”, Pervasive Computing, IEEE, 8(4), 14-23, 2009.
 N. Guetmi, et al.: “Mobile Collaboration: a Collaborative Editing Service in the Cloud”, to appear in ACM SAC, 2015.
LIAS/ISAE-ENSMA, Poitiers University, Chasseneuil, France