Skip to content. | Skip to navigation

Informatik 5
Information Systems
Prof. Dr. M. Jarke
Sections
Personal tools
You are here: Home Projects The XMPP Experience

The XMPP Experience


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

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 and to share knowledge among the members of the project.

Design

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 http://role-sandbox.eu/spaces/iwc 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 http://dbis.rwth-aachen.de/gadgets/iwc/resources/iwc.manual.pdf, including a general overview, API documentation, tutorials, and sample code. Furthermore, we provide the materials of two developer workshops at JTEL12 (http://dbis.rwth-aachen.de/gadgets/jtel2012/) and Dev8eD 2012 (http://dbis.rwth-aachen.de/gadgets/dev8ed/) featuring ROLE IWC. 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. Another branch of work related to ROLE IWC resulted in the DireWolf framework for distributing and migrating widget-based Web applications across different devices. 
 

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

 
(more to come soon)

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.

    Implementation

    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 (http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-09) and API (http://dev.w3.org/html5/websockets/), as specified in http://tools.ietf.org/html/draft-moffitt-xmpp-over-websocket-00.
     
    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.
     
    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: https://github.com/hocken/wxg. Christian's code has been taken over by our student worker Andreas Guth (https://github.com/Gordin/wxg) 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. https://github.com/metajack/strophejs/issues/68). 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. 

    Evaluation

     
    • 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.

    Links

    http://xmpp.org/

    Research staff

    Theses

    Publications

    Document Actions
    Project Publications

    István Koren, Daniel Schuster, Thomas Springer

    Session Mobility for Collaborative Pervasive Apps Using XMPP

    Proceedings of the 4th International Workshop on Pervasive Collaboration and Social Networking (PerCol)

    Dejan Kovachev, Yiwei Cao, Ralf Klamma

    Building mobile multimedia services: a hybrid cloud computing approach

    Multimedia Tools and Applications

    Khaled Rashed, Dominik Renzel, Ralf Klamma

    Trust-aware Media Quality Profiles in Fake Multimedia Detection

    Proceedings of the International Workshop on Multimedia on the Web, in conjunction with i-Know and i-Semantics 2011, 7–9 September, Messe Congress Graz, Austria, PP. 27-32, IEEE Computer Society, 2011.

    More publications…