Creating Applications for Real-Time Collaboration with XMPP and Android on Mobile Devices

Creating Applications for Real-Time Collaboration with XMPP and Android on Mobile Devices

Daniel Schuster (TU Dresden, Germany), István Koren (TU Dresden, Germany), Thomas Springer (TU Dresden, Germany), Dirk Hering (TU Dresden, Germany), Benjamin Söllner (TU Dresden, Germany), Markus Endler (Pontifical Catholic University of Rio de Janeiro (PUC-Rio), Brazil) and Alexander Schill (TU Dresden, Germany)
DOI: 10.4018/978-1-61520-655-1.ch045
OnDemand PDF Download:


The goal of this chapter is to discuss the challenges of generic protocols and platforms for mobile collaboration in general and for the adoption of XMPP for mobile collaboration in particular. The chapter will introduce the XMPP protocol family, discuss its potentials and issues for mobile collaboration, and describe experiences with the implementation of mobile collaborative middleware and applications based on XMPP. In particular the protocol family has been used to create a generic middleware for mobile collaboration providing a set of generic services such as publish/subscribe, group management, and chat functionality, as well as advanced functionality for geo-location and geo-tagging, map visualization, and multimedia content sharing. For the implementation of our platform and applications XMPP is used in combination with the Android platform running on the mobile devices. The authors describe their experiences in adjusting and adopting XMPP protocol implementations based on Java on the Android platform.
Chapter Preview


There is already a multitude of collaborative applications available in mobile environments. Although they share a good amount of common functionality, most of them are built from scratch, or are tailored to a specific device platform using proprietary libraries. An open and customizable environment for mobile collaborative applications is still missing. To set up a generic environment for mobile collaboration support, the selection of the right set of underlying protocols is of high importance. Based on the protocols for collaboration the foundations for interoperability, scalability, portability and performance are created.

In earlier work (Springer et al., 2008) we introduced the Mobilis reference architecture as a service-oriented approach to support developers of mobile collaborative applications with a framework covering all the different aspects and layers of such applications. This comprises the device operating system, basic communication and context services, a service environment with commonly used functionality as well as the applications at the application layer. As can be seen in Figure 1, each of these four layers comprises a distinguished set of individual services. The functionality of the services at the Mobilis service layer will be described later in this chapter.

Figure 1.

Mobilis reference architecture

The Mobilis reference architecture already provides a good guideline for developers of mobile collaborative applications. It served already as a basis for the development of a set of applications adopting diverse collaboration functionality:

  • MobilisFunFlags: So-called fun flags can be tagged to locations at a map to notify other users of the application about cool places. Images and text notes can be attached to these places.

  • MobilisGuide: Tourists travelling together can create and join closed groups and are able to be aware of the other group members visualized as icons on a map-based view. They can interact by selecting icons of group members on the map, for instance to chat with each other or contact one another directly.

  • MobilisBuddy: Users get an alert if friends from social networks such as Facebook are in proximity (for instance if the distance is less than 100 meters) and can locate them on a map or call them.

  • MobilisTrader: Users of this application offer products such as a used washing machine or mobile phone together with the location of the product. Other users may insert requests for products. If request and offer matches within a pre-defined distance, both users get an alert and may contact each other.

These activities have been mainly carried out to drive the identification of appropriate services at the Mobilis service level which can be reused in different applications. The implementation of the various applications also enriched our experiences with the service platform. During the prototype development we also tested different target platforms. As described in (Springer et al., 2008), we implemented the MobilisGuide application for the three different platforms Java ME, Java SE, and Android. Furthermore, we tried different alternatives to realize the basic connectivity encapsulated in the Basic Services layer such as NaradaBrokering (Pallickara & Fox, 2003), Google App Engine (Google, 2009), and the eXtensible Messaging and Presence Protocol (XMPP) (XMPP, 2009).

Key Terms in this Chapter

Social Network: Web 2.0 application building online communities of people who share interests and/or activities.

Mobile Collaborative Applications: Collaborative applications are pieces of software to help people engaged in common task to achieve their goals. These applications are also called groupware while we prefer the term collaborative application or collaboration applications. The word “mobile” refers to such applications used on mobile devices such as mobile phones or PDAs. While notebooks may also be considered mobile devices, we focus on resource-restricted devices like mobile phones in this chapter.

Service Environment: Logical architecture comprising client and server components (services) including standard interfaces and protocols as well as mechanisms for registering and finding services and their properties.

XMPP: The eXtensible Messaging and Presence Protocol is a family of XML-based network protocols for open real-time communication and collaboration standardized by the IETF and further developed by the XMPP Standards Foundation (XSF).

Android: Mobile operating system running on a Linux kernel. Android is maintained by the Open Handset Alliance led by Google.

XEP: XMPP Enhancement Proposals are specifications for extensions of XMPP written in the same format like the XMPP core standards but not standardized within the IETF. The XEPs are reviewed by the XMPP Standards Foundation (XSF) and published on its website.

Proximity-Based Services: Subclass of location-based services, i.e., services accessible with mobile devices through a mobile network making use of the geographical position of the device, especially the geographical proximity of two or more devices.

Complete Chapter List

Search this Book: