Designing Mobile Collaborative Applications for Cloud Environments

Designing Mobile Collaborative Applications for Cloud Environments

Nadir Guetmi (Poitiers University, France) and Abdessamad Imine (Lorraine University, France & INRIA-LORIA Grand-Est, France)
DOI: 10.4018/978-1-4666-9916-8.ch003
OnDemand PDF Download:
No Current Special Offers


Mobile devices have experienced a huge progress in the capacity of computing, storage and data visualization. They are becoming the device of choice for operating a large variety of applications while supporting real-time collaboration of people and their mobility. Despite this progress, the energy consumption and the network coverage remain a serious problem against an efficient and continuous use of these mobile collaborative applications and a great challenge for their designers and developers. To address these issues, this chapter describes design patterns that help modelling mobile collaborative applications to support collaboration through the cloud. Two levels are presented: the first level provides self-control to create clones of mobile devices, manage users' groups and recover failed clones in the cloud. The second level supports group collaboration mechanisms in real-time. These design patterns have been used as a basis for the design of a mobile collaborative editing application.
Chapter Preview


Recent statistics indicate that the world is evolving towards more connected mobile devices. Indeed, by the end of 2014, the number of mobile-broadband subscriptions reaches 2.3 billion globally (Brahima Sanou, 2014). Mobile devices enable users to manipulate powerful applications that take benefit of the increasing availability of built-in communication network and better data exchange capabilities of mobile devices. Accordingly, real-time data streams and web applications (such as mobile commerce, social networking and ad-hoc collaboration) are seamlessly incorporated in mobile applications.

However, even though mobile devices hardware and network modules continue to evolve and to improve, mobile devices will always be resource-poor, less secure, with unstable connectivity, and with constrained energy. Resource deficiency is a main issue for many applications, and as a result, computation on mobile devices will always involve a compromise (Satyanarayanan, 2009). 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. Cloud computing is a multi-purpose paradigm that aggregate several technologies such as virtualization, peer-to-peer networks and autonomic computing. Of course, a deeper user expertise is not necessary to benefit from all these technologies. 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. The goal of autonomic computing is to provide self-configuration capabilities such as on-demand resources provisioning (e.g. memory size) without requiring user intervention.

The definition of design patterns is more challenging in new applications for cloud-supported mobile collaborative services, because the combination of mobile and cloud environments raises many design issues such as the management of real-time collaborative works (e.g. a collaborative editing works). These mobile collaborative applications involve many mobile users to manipulate shared data. So, they require suitable design patterns for modeling communication and synchronization services that are intended to be deployed in the cloud and several mobile devices, while delegating the maximum of inherent tasks to the cloud. Moreover, other processes such as installation, deployment, configuration, monitoring and management of software modules must be well modeled to fully provide the collaborative service to mobile users in the cloud.

This chapter provides a reusable design model of mobile collaborative applications in the cloud. It aims to meet the objective of providing pure decentralized synchronization mechanisms for preserving the consistency of the shared resources under constraints of mobile applications, namely the short-life battery and the connection instability. Accordingly, design solutions are illustrated for addressing the challenge of modeling the cloning and collaboration services in the cloud. The proposed design patterns concern two levels: the first level provides self-control to create clones of mobiles, manage users' groups and recover failed clones in the cloud. The second level presents group collaboration mechanisms in real-time, without any role assigned to the server.

The present chapter is structured in seven sections: Second section presents how mobile users collaborate via the cloud, and illustrates a use case example. Third section enumerates requirements to be satisfied when designing mobile collaborative applications. Fourth section describes two design patterns for managing the cloning of mobile devices and ensuring collaboration between these devices. Fifth section presents a mobile collaborative editing application designed according the proposed design patterns. Sixth section reviews the related work and seventh section concludes this chapter.

Complete Chapter List

Search this Book: