Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-1
LAYERS
MOBILIS
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Session Mobility for Pervasive
Collaborative Apps using XMPP
PerCol 2013, San Diego - 2013-03-18
István Koren, RWTH Aachen University, ACIS Group
Daniel Schuster & Thomas Springer, TU Dresden, Computer Networks
{daniel.schuster | thomas.springer}@tu-dresden.de
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-2
LAYERS
MOBILIS
Responsive Open
Community Information
Systems
Community Visualization
and Simulation
Community Analytics
Community Support
Web
An
alytics
Web
En
gin
eeri
ng
{Advanced | ATLAS | Awesome | Aachen}
Community Information Systems (ACIS)
Requirements
Engineering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-3
LAYERS
MOBILIS
Session Mobility?
Refers to…
– IP mobility protocols
– multimedia session mobility
– application migration
Examples
– Card Game on a TV
– Collaborative Editing
our work is about Session Mobility for
Collaborative Pervasive Apps!
fig.1: Cisco WebEx
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-4
LAYERS
MOBILIS
Related Works
Plain SIP: session handoff and call
transfer (INVITE, REFER, …)
Multi-Device Manager
(Stähle et al.)
RFC 5631:
SIP Session Mobility
fig.2: SIP REFER
fig.3: Multi-Device System
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-5
LAYERS
MOBILIS
Requirements
Session Transfer
Session Split
Device Discovery
Packet Filtering
fig.4: Session Transfer
fig.5: Session Split
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-6
LAYERS
MOBILIS
Why XMPP?
Standard based solution
Real-time XML based message exchange
Supports multiple sessions per user
– [email protected]/tablet
Various Extension Protocols (XEPs)
– Multi-User Chat, Pub Sub, File Transfer
Library availability!
– Smack, Strophe etc.
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-7
LAYERS
MOBILIS
Device Discovery
① Personal Device
– Instant Messaging on tablet + phone
② Public Device (Kiosk Mode)
– using a large public display at a metro station
③ Ad-Hoc
– including presentation hardware in meeting rooms
Device Discovery
Session Transfer
Session Split
Packet Filtering
fig.6: Session Split
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-8
LAYERS
MOBILIS
(1) Personal Device Discovery
via QR codes, NFC
Resources!<!-- Out -->
<iq from="[email protected]/desktop"
to="[email protected]" type="get" id="1">
<query xmlns="http://jabber.org/protocol/disco#items">
</query>
</iq>
<!-- In -->
<iq type="result" from="[email protected]"
to="[email protected]/desktop" id="123">
<query xmlns="http://jabber.org/protocol/disco#items">
<item jid="[email protected]/desktop"/>
<item jid="[email protected]/phone"/>
<item jid="[email protected]/tablet"/>
</query>
</iq>
lst.1: Querying own resources
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-9
LAYERS
MOBILIS
(2) Public Device Discovery
standalone device
XMPP daemon
using as personal device
remote login mechanism
fig.7: Kiosk Device QR discovery
fig.8: Remote Login
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-10
LAYERS
MOBILIS
(3) Ad-Hoc Discovery
XEP-0174: Serverless Messaging
– over Multicast DNS – TXT [email protected]
port.p2pj=5562
status=avail
lst.2: Advertising Presence via mDNS
fig.9: mDNS Service Discovery
fig.10: ad-hoc Light Switch
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-11
LAYERS
MOBILIS
Session Transfer
two general approaches
– packet logging and replay
– application specific bundling
<iq from="[email protected]/mobile“
to="[email protected]/tablet“
type="get" id="234">
<query xmlns="mobilis:iq:sessionmobility#sessiontransfer">
<mechanisms xmlns="mobilis:params:sessiontransfer“>
<mechanism>INBAND-XMPP</mechanism>
<mechanism >FILES</mechanism >
<mechanism>BUNDLE-COMPRESSED-ZIP</mechanism>
</mechanisms>
</query>
</iq>
lst.3: Offering Session Transfer Mechanisms
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-12
LAYERS
MOBILIS
Session Split
packet sent to bare JID: delivery depends on server
configuration
as fallback, we support client-based message
forwarding
calls for another requirement: Packet Filtering
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-13
LAYERS
MOBILIS
Packet Filtering
intelligent packet routing
defined by endpoint
XEP-0273: Stanza Interception and Filtering
Technology (SIFT)
– Stanza (Message, IQ or Presence)
– Sender/Recipient
– Payload
fig.11: communication footprint of a LBG
Device Discovery
Session Transfer
Session Split
Packet Filtering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-14
LAYERS
MOBILIS
Mobilis Framework
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-15
LAYERS
MOBILIS
Conclusion
QR based discovery appreciated
Ad-Hoc
– session transfer over local link
– towards IoT
Problems
– extension implementation & deferrals & experimentals
state transfer using publish-subscribe
– as a more general approach
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-16
LAYERS
MOBILIS
Current Tasks & Plans
integrate HTML5 technologies
– XMPP over WebSocket
– WebRTC
use XEP-0280: Message Carbons for Session Split
commit an OAuth extension to the XMPP community
Case A:
Juliet sends Message to [email protected]:
Message is forked and sent to:
[email protected]/home
[email protected]/garden
Case B:
Juliet sends Message to [email protected]/home:
Message is sent to:
[email protected]/home
…and forwarded to:
[email protected]/garden
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-17
LAYERS
MOBILIS
OAuth for Remote Login within XMPP
XEP-0235: OAuth Over XMPP – not the right scope
the Google Talk & Windows Live Messenger way…
they integrate browser-based authentication
1) https://developers.google.com/talk/jep_extensions/oauth
2) http://msdn.microsoft.com/library/live/hh826554
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
mechanism="X-OAUTH2"
auth:service="oauth2"
xmlns:auth="http://www.google.com/talk/protocol/auth">
base64("\0" + user_name + "\0" + oauth_token)
</auth>
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
mechanism="X-MESSENGER-OAUTH2">
ACCESS_TOKEN
</auth>
lst.4: Google Talk OAuth1
lst.5: Windows Live Messenger OAuth2
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-18
LAYERS
MOBILIS
Thank you!
Contacts:
xmpp://[email protected]
http://dbis.rwth-aachen.de/cms/staff/koren
Check out the Mobilis framework of TU Dresden
http://mobilis.inf.tu-dresden.de
The research work described here is partially funded through the LAYERS FP7 ICT
Integrated Project (grant agreement no 318209) of the European Union.
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-19
LAYERS
MOBILIS
References
[] R. Shacham, H. Schulzrinne, S. Thakolsri, and W. Kellerer, “Session initiation protocol
(SIP) session mobility,” RFC 5631, IETF, 2009.
[] T. Chang and Y. Li, “Deep shot: a framework for migrating tasks across devices using
mobile phone cameras,” in Pro- ceedings of the 2011 annual conference on Human
factors in computing systems, 2011.
[] J. Hildebrand, J. Moffitt, and P. Saint-Andre, “Stanza inter- ception and filtering
technology (SIFT),” 2011.
[] P. Saint-Andre, “XEP-0174: Serverless messaging,” http://xmpp.org/extensions/xep-
0174.html, 2008.
[] J. Hildebrand, J. Moffitt, and P. Saint-Andre, “XEP-0273: Stanza inter- ception and
filtering technology (SIFT),” 2011.
[] J. Hildebrand and M. Miller, “XEP-0280: Message Carbons” 2012.
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
I5-FL-0213-20
LAYERS
MOBILIS
fin