|
|
- Info
The XMPP Experience
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 R emote 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.
DireWolf - Distributing and Migrating Widget-based Web Applications across Different Devices
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
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 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 and 3921 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
2013
-
Session Mobility for Collaborative Pervasive Apps Using XMPP
Published in Proceedings of the 4th International Workshop on Pervasive Collaboration and Social Networking (PerCol)
2012
-
Building mobile multimedia services: a hybrid cloud computing approach
Published in Multimedia Tools and Applications
2011
-
Trust-aware Media Quality Profiles in Fake Multimedia Detection
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.
2010
-
Towards Detecting Faked Images
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.
-
Collaborative Fake Media Detection in a Trust-Aware Real-Time Distribution Network
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.
-
Augmenting Pervasive Environments with an XMPP-based Mobile Cloud Middleware
Published in Proceedings of International Workshop on Mobile Computing and Clouds (MobiCloud 2010) in conjunction with MobiCASE 2010, October 28, 2010, Santa Clara, CA, USA.
|
-
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.
|