Skip to content. | Skip to navigation

Personal tools
You are here: Home Projects The XMPP Experience

The XMPP Experience

Research field Advanced Community Information Systems (ACIS)
Funding EU (ROLE, Learning Layers), DFG (CONTICI, UMIC), DAAD, BIT-RS
Status completed

The Extensible Messaging and Presence Protocol (XMPP) is an open and extensible protocol for the exchange of XML data in near real-time. Although most use cases of the protocol are still coined by the protocol's instant messaging background, it is also interesting for a more general range of services, particularly lightweight mobile middleware. The goal of the project is to systematically design, implement, and evaluate XMPP related services in a community information system context, to share knowledge with other researchers active on XMPP and to contribute parts of our prototypes to the XMPP FLOSS community.

XMPP Research Blog

In December 2014 we launched the XMPP research-oriented blog This blog is an ongoing collaboration with our colleagues Daniel Schuster and Philipp Grubitzsch from TU Dresden. Mission is to collect and to present scientific research work based on XMPP. Core contribution is a high-quality bibliography collection of recent and past scientific works based on XMPP, carefully curated and up-to-date. The blog additionally lists demos and comments on latest scientific works to make XMPP-based research more accessible to the broader XMPP community, not only for researchers.

The blog is available here:

Interwidget Communication

Inter-widget communication (IWC) enables event-based communication between Web-based widgets as they are used in (social networking) platforms such as iGoogle, orkut, etc. IWC usually follows the Publish-Subscribe pattern (cf. Birman & Joseph, 1987). Instead of ‘hard-wiring’ widgets with each other, all widgets within the same environment are notified of all events and then decide for themselves to react accordingly, depending on the event payload. In the context of the ROLE project, we employ the ROLE IWC framework for both Local Interwidget Communication (LIWC) within a local widget environment (i.e. in the same browser window) and Remote Interwidget Communication (RIWC) among different browser instances, users and machines. LIWC is realized with HTML5 Web Messaging available in most major browsers. RIWC is realized using XMPP, in particular the XMPP Publish-Subscribe XEP.
ROLE Interwidget Communication Architecture
ROLE IWC is integrated with the ROLE SDK. An experimental SaaS-deploy of the ROLE SDK is available at http://role-sandbox.euCheck to see a demonstration of the ROLE IWC in the ROLE Sandbox. Developers interested in developing with the ROLE IWC API should take a look at the official documentation available at, including a general overview, API documentation, tutorials, and sample code. Furthermore, we provide the materials of two developer workshops at JTEL12 ( and Dev8eD 2012 ( featuring ROLE IWC. ROLE IWC was the basis for two other projects: a port of ROLE IWC to Apache Rave and the DireWolf framework for user interface distribution and migration, described next.
Role IWC in the ROLE SDK

Remote IWC in Apache Rave

Recently, we prepared and proposed a patch integrating the ROLE IWC concept with the IWC concept realized in Apache Rave. As accompanying materials we prepared a video trailer showing ROLE IWC integrated in Apache Rave, documentation adapted to development and deployment in Apache Rave, and a set of IWC-enabled widgets for Apache Rave, inspired by the widgets we previously prepared for demonstrating ROLE IWC. 
Remote IWC in Apache Rave (watch fullscreen for complete annotations)

DireWolf - Distributing & Migrating Widget-based Web Applications across Different Devices

Web applications have overcome traditional desktop applications especially in collaborative settings. However, the bulk of Web applications still follow the "single user on a single device" computing model. Therefore, we created the DireWolf framework for rich Web applications with Distributed User Interfaces (DUIs) over a federation of heterogeneous commodity devices supporting modern Web browsers such as laptops, smart phones and tablet computers. The DUIs are based on widget technology coupled with cross-platform inter-widget communication and seamless session mobility. In particular, we built DireWolf on top of the ROLE SDK and its XMPP-based Inter-widget communication. Inter-widget communication connect the widgets and enable real-time collaborative applications as well as runtime migration in our framework. For a single user, DireWolf provides more flexible control over different parts of an application by enabling the simultaneous use of smart phones, tablets and computers. As reference use case of the DireWolf framework we realized a collaborative semantic video annotation application in the domain of cultural heritage documentation.
Distributing & Migrating User Interfaces with DireWolf

Trust in Roster Lists

One of the XMPP core features are roster or contact lists. Each user maintains such a list to manage contacts to other XMPP users, possibly distributed across the whole XMPP network and usually connected to a mutual subscription of presence information. In many cases, users put other users on their contact list and share presence without knowing them very well (e.g. business cooperation, social network contact), and it's the question if these contacts are trustable. The current XMPP core RFC 3921 does not involve any explicit notion of trust besides having someone on the roster or not. In our group we intend to address this issue by a simple extension of the current core RFC backed by trust-inference algorithms and respective Web services (cf. Golbeck, 2005).

Mobile-Cloud Multimedia Services

Mobile devices ease acquisition of multimedia since many of such devices have built-in camera which give the ability to capture high resolution images and videos. Despite the rapid advances in mobile technology, many constraints still prohibit smartphones to run resource-demanding applications in pervasive environments. Emerging cloud computing opens an access to unlimited resources for mobile devices. However, the combination of both technologies to deliver sound mobile cloud applications and services raises new challenges and requirements. XMPP enables building of real-time, flexible, scalable and extensible software architecture, joining the heterogeneous parts of mobile systems. These features make XMPP the perfect protocol for mobile cloud computing. Representative use cases include mobile real-time collaboration, metadata synchronization, multimedia session management, asynchronous services, etc.

XmmC - Real-time Collaboration-enabled Mobile Augmented Reality with Semantic Multimedia

XMPP-based Mobile Multimedia Collaboration (XmmC) is a mobile real-time collaborative system for multimedia that performs the collaboration on an open, customizable XMPP-based lightweight framework. It provides basic components for building mobile collaborative applications. In a broader sense, XmmC provides a set of services so that mobile clients can perform multimedia acquisition, real-time collaborative annotation and at the same time blend these operations within a Mobile Augmented Reality (MAR) browser. We defined custom XMPP protocol extensions (XEPs) for these services to fulfill the effective communication between client and server side. The shared data for augmented reality is stored and shared as custom XML data in the Augmented Reality Markup Language (ARML). Furthermore, we define new XEPs for exchanging the AR related data and managing multimedia and annotating the related multimedia among community members. Moreover, XmmC integrates with existing MPEG-7 multimedia services, thus achieving interoperability with the MPEG-7 multimedia standard. Thus, it takes advantage of large existing multimedia metadata repositories.
Collaborative Image Annotation & Mobile AR in XmmC

    WXG - Gateway for XMPP over WebSocket

    WXG (pronounce as "Wixig") is a Java-implementation of a gateway enabling communication with native XMPP servers over the WebSocket protocol ( and API (, as specified in
    Until now, one of the common techniques in using XMPP in JS-powered Web applications was to make use of BOSH and XMPP over BOSH. However, with the advent of the WebSocket protocol and API already widely available in modern Web browsers, the unstable and slow BOSH technique should be replaced. Currently, most XMPP servers are not equipped with connectors for receiving and delivering stanzas over the WebSocket protocol. Our LAS/MobSOS server is among the first servers to implement such a connector with the integration of WXG instead of operating the gateway as an external component. In the meantime, the XMPP over WebSocket draft was heavily updated. WXG will follow as soon as the specification has become stable again.
    The figure below illustrates the basic functionality provided by WXG.
    WXG - XMPP over WebSocket Gateway
    WXG was originally released as an external FLOSS project on github by our diploma student Christian Hocken: Christian's code has been taken over by our student worker Andreas Guth ( who is constantly adapting WXG to new versions of the respective specifications. In the meanwhile, specifications for both WebSocket and XMPP over WebSocket are close to becoming stable.

    Contributions to strophe.js - Transport Layer & Plug-ins

    Strophe.js is a JavaScript-based XMPP client library, which is used in many of our groups prototypes and contributions to projects such as ROLE. Until now, Web clients only relied on the XMPP over BOSH transport mechanism, which is available across a high variety of browsers, but is inherently unstable and inefficient. The appearance of XMPP over WebSocket could change this situation significantly. We are actively contributing code to strophe.js to support the transition towards XMPP over WebSocket (cf. Furthermore, we have successfully contributed several XEP plugins/plugin improvements to strophe, such as for MUC and PubSub.

    LAS/MobSOS XMPP Server

    We are continuously developing our LAS/MobSOS XMPP server, mostly as a research tool for monitoring and analyzing community practice and success in terms of user-to-user and user-to-service interaction, but also as a hosting solution of a plain XMPP server combined with a lightweight and highly extensible application server engine. Currently, LAS/MobSOS supports major parts of the XMPP core RFCs 3920 and3921 as well as basic implementations of several standard XEPs such as XMPP Multi-User Chat or XMPP Service Discovery as well as own experimental extensions. LAS/MobSOS accepts native XMPP connections and was recently extended by a connector for XMPP over WebSocket, which was then spun off into WXG. 

    MobSOSX XMPP Monitoring

    As part of the overall MobSOS Test-bed and homonymous success model for community services, MobSOSX was designed and implemented as a monitoring module for LAS/MobSOS, but it was also successfully transferred as a plugin into the Openfire XMPP Server. With MobSOSX, arbitrary XMPP communication can be monitored and logged in a database serving raw communication data as well as higher-level views as a means for analyzing manifold forms of communication patterns, i.e. request-response, push, broadcast, etc.

    XMPP-enabled Web Widgets

    In the context of the ROLE project we are developing Web widgets compliant with the OpenSocial gadget specification and enabled to connect to an XMPP network. As an added value to a Web 2.0 Knowledge Map used for teaching computer science for mechanical engineers at ZLW/IMA at RWTH Aachen university we implemented XMPP chat widgets in several versions in order to support direct communication between learners in topic-centered chat rooms. IWC is employed to achieve integration with this Wiki-based system in a way that whenever a learner chooses a certain topic, he automatically enters the respective chat room and broadcasts his current learning topic to his co-learners. The widget below can be used as a regular XMPP chat client for instant messaging & multiuser chat rooms. 


    • Web 2.0 Knowledge Map: analysis of learning success and learner communication in computer science course for mechanical engineers at RWTH Aachen university in cooperation with ZLW/IMA
    • SOCRATES XMPP: analysis of community success factors on the example of an XMPP-based chat tool for aphasics
    • ROLE IWC: evaluation study on XMPP over BOSH in a federated XMPP network setting
    • UMIC Demonstrator "XMPP Inter-widget Communication for Distributed Mobile Web Interfaces - Collaborative Semantic Video Annotation Services for Professional Communities": application of ROLE IWC for the distribution of a single Web application across multiple devices; presented at UMIC day 2011.



    Research staff



    Document Actions
    Project Publications

    Ralf Klamma

    Near-Real-Time Social Computing

    Computer 48(9): 90–92. doi: 10.1109/MC.2015.266

    Petru Nicolaescu, Kevin Jahns, Michael Derntl, Ralf Klamma

    Yjs: A Framework for Near Real-Time P2P Shared Editing on Arbitrary Data Types

    Proceedings of the 15th International Conference on Web Engineering (ICWE 2015), Rotterdam, The Netherlands, June 23-26, 2015 (Best Demo & Best Poster Award)

    Daniel Schuster, Philipp Grubitzsch, Dominik Renzel, István Koren, Ronny Klauck, Michael Kirsche

    Global-Scale Federated Access to Smart Objects Using XMPP

    Randall Bilof (Ed.): Proceedings 2014 IEEE International Conference on Internet of Things (iThings 2014), Green Computing and Communications (GreenCom 2014), and Cyber-Physical-Social Computing (CPSCom 2014)

    More publications…