EU (ROLE, Learning Layers), DFG (CONTICI, UMIC), DAAD, BIT-RS
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.
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.
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.
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
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 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
LAS/MobSOS XMPP Server
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.
Published in 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.
Published in Anna Carreras, Jaime Delgado, Xavier Maroñas, Víctor Rodríguez (Eds.): Proceedings of the 11th International Workshop of the Multimedia Metadata Community on Interoperable Social Multimedia Applications (WISMA-2010), CEUR Workshop Proceedings Vol-583 Barcelona, Spain, May 19-20, 2010.
Published in H. Kosch, R. Klamma, M. Lux, M. Spaniol and F. Stegmaier (eds.): Proceedings of the 12th International Workshop of the Multimedia Metadata Community, the 2nd Workshop focusing on Semantic Multimedia Database Technologies 2010, collocated with the 5th International Conference on Semantic and Digital Media Technologies (SAMT2010), Saarbrücken, Germany, December 2, 2010, CEUR-WS.org Vol. 680, 17-28.