ROLE



 LAYERS


                                            Session Mobility
                                              using XMPP


                          FOSDEM 2013 – XMPP DevRoom, 2012-02-02
                                        István Koren
                                   RWTH Aachen University
                         Advanced Community Information Systems (ACIS)
Lehrstuhl Informatik 5
                                  koren@dbis.rwth-aachen.de
(Information Systems)
   Prof. Dr. M. Jarke
   I5-FL-0213-1           This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
ROLE
                                          Session Mobility?
 LAYERS                     Refers to…
                             – IP mobility protocols
                             – multimedia session mobility
                             – application migration


                            SIP
                             – REFER                         fig.1: SIP REFER

                             – RFC 5631
                          this talk is about Session Mobility for
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
                         Collaborative Pervasive Apps!
   I5-FL-0213-2
ROLE
                                         Session Mobility!
 LAYERS                     Session Transfer




                            Session Split




Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
   I5-FL-0213-3
ROLE
                         Session Mobility in the wild…
 LAYERS




                         fig.1: Deep Shot © Google




Lehrstuhl Informatik 5
(Information Systems)
                                                     fig.2: Cisco WebEx © Cisco
   Prof. Dr. M. Jarke
   I5-FL-0213-4
ROLE
                                        Device Discovery
                             Personal Device
                                               <!-- Out -->

 LAYERS                                       <iq from="alice@mobilis.inf.tu-dresden.de/desktop"
                                                   to="alice@mobilis.inf.tu-dresden.de" type="get" id="1">
                                                 <query xmlns="http://jabber.org/protocol/disco#items">
                                               </query>
                                               </iq>

                                               <!-- In -->

                             Resources!        <iq type="result" from="alice@mobilis.inf.tu-dresden.de"
                                                   to="alice@mobilis.inf.tu-dresden.de/desktop" id="123">
                                                 <query xmlns="http://jabber.org/protocol/disco#items">
                                                   <item jid="alice@mobilis.inf.tu-dresden.de/desktop"/>
                                                   <item jid="alice@mobilis.inf.tu-dresden.de/phone"/>
                                                   <item jid="alice@mobilis.inf.tu-dresden.de/tablet"/>
                                                 </query>
                                               </iq>

                                               lst.1: Querying own resources




                            QR codes, NFC

Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
   I5-FL-0213-5
ROLE
                                         Public Device – Kiosk
 LAYERS                   standalone device
                          XMPP daemon
                          as personal device
                           remote login mechanism

                                                           fig.3: Kiosk Device




Lehrstuhl Informatik 5
(Information Systems)
                             fig.4: Remote Login
   Prof. Dr. M. Jarke
   I5-FL-0213-6
ROLE
                                                     OAuth & XMPP
 LAYERS                   XEP-0235: OAuth Over XMPP? deferred
                          the Google Talk & Windows Live Messenger way…
                              <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>

                              lst.2: OAuth @ Google Talk

                              <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
                                  mechanism="X-MESSENGER-OAUTH2">
                                ACCESS_TOKEN
                              </auth>

                              lst.3: OAuth @ Windows Live Messenger


                            integrate browser-based authentication?
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
   I5-FL-0213-7
ROLE
                                                   ad hoc Discovery
 LAYERS                     XEP-0174: Serverless Messaging
                              jid=lightsensor@xmpp.org
                              port.p2pj=5562
                              status=avail

                              lst.4: Advertising Presence via mDNS




                                                                     fig.5: mDNS Service Discovery



Lehrstuhl Informatik 5
(Information Systems)               fig.6: ad-hoc Light Switch
   Prof. Dr. M. Jarke
   I5-FL-0213-8
ROLE
                                                   Session Transfer
 LAYERS                     two general approaches
                             – packet logging and replay
                             – application specific bundling
                             <iq from="alice@example.org/mobile“
                                 to="alice@example.org/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.5: Offering Session Transfer Mechanisms

Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
   I5-FL-0213-9
ROLE
                                    Session Split / Synchronizing
 LAYERS                    packet sent to bare JID: delivery depends on server
                            implementation…
                           XEP-0280: Message Carbons experimental
                               – forwarding in- and outbond messages to other resources
                         Case A:                                   Case B:
                         Juliet sends Message to romeo@example.net: Juliet sends Message to romeo@example.net/home:

                         Message is forked and sent to:            Message is sent to:
                                   romeo@example.net/home                    romeo@example.net/home
                                   romeo@example.net/garden        …and forwarded to:
                                                                             romeo@example.net/garden
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-10
ROLE
                                          Packet Filtering
 LAYERS                   intelligent packet routing
                          defined by endpoint



                                                            fig.7: communication footprint of a LBG

                            XEP-0273: Stanza Interception and Filtering
                             Technology (SIFT) deferred
                             – Stanza
                             – Sender/Recipient
                             – Payload
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-11
ROLE
                                                Conclusion
 LAYERS                     Problems
                             – extension implementation & deferrals & experimentals
                             – OAuth
                            ad-hoc
                             – session transfer over local link
                             – towards IoT
                            state transfer using publish-subscribe
                             – as a more general approach
                            more evaluation needed…
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-12
ROLE
                                        XMPP @ our chair
 LAYERS                     ROLE project
                             – Interwidget Communication with XMPP (see DevRoom
                               talk last year…)
                             – XMPP over Websockets (not BOSH)


                            Teaching: Web Science lecture

                            Bachelor & Master theses…

Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-13
                            new projects
ROLE
                                    Mobilis Framework
 LAYERS




                         …for more information please check:
Lehrstuhl Informatik 5
(Information Systems)    http://mobilis.inf.tu-dresden.de
   Prof. Dr. M. Jarke
  I5-FL-0213-14
ROLE
                                                 Thank you!
 LAYERS                     Contact me:
                             xmpp://koren@role.dbis.rwth-aachen.de
                             koren@dbis.rwth-aachen.de
                             http://www.istvank.eu


                            Check out ROLE SDK of RWTH
                             http://sourceforge.net/projects/role-project


                            Check out the Mobilis framework of TU Dresden
Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-15
                             https://github.com/danielschuster/mobilis
ROLE
                         Crazy Stuff with XMPP (or webinos)
 LAYERS




Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-16
ROLE
                                                  References
 LAYERS
                         http://tools.ietf.org/html/rfc5631
                         https://developers.google.com/talk/jep_extensions/oauth
                         http://msdn.microsoft.com/library/live/hh826554

                         http://xmpp.org/extensions/xep-0235.html
                         http://xmpp.org/extensions/xep-0174.html
                         http://xmpp.org/extensions/xep-0280.html
                         http://xmpp.org/extensions/xep-0273.html




Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-17
ROLE
                         fin
 LAYERS




Lehrstuhl Informatik 5
(Information Systems)
   Prof. Dr. M. Jarke
  I5-FL-0213-18

FOSDEM: Session Mobiliy using XMPP

  • 1.
    ROLE LAYERS Session Mobility using XMPP FOSDEM 2013 – XMPP DevRoom, 2012-02-02 István Koren RWTH Aachen University Advanced Community Information Systems (ACIS) Lehrstuhl Informatik 5 koren@dbis.rwth-aachen.de (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-1 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
  • 2.
    ROLE Session Mobility? LAYERS  Refers to… – IP mobility protocols – multimedia session mobility – application migration  SIP – REFER fig.1: SIP REFER – RFC 5631  this talk is about Session Mobility for Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke Collaborative Pervasive Apps! I5-FL-0213-2
  • 3.
    ROLE Session Mobility! LAYERS  Session Transfer  Session Split Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-3
  • 4.
    ROLE Session Mobility in the wild… LAYERS fig.1: Deep Shot © Google Lehrstuhl Informatik 5 (Information Systems) fig.2: Cisco WebEx © Cisco Prof. Dr. M. Jarke I5-FL-0213-4
  • 5.
    ROLE Device Discovery Personal Device <!-- Out --> LAYERS  <iq from="alice@mobilis.inf.tu-dresden.de/desktop" to="alice@mobilis.inf.tu-dresden.de" type="get" id="1"> <query xmlns="http://jabber.org/protocol/disco#items"> </query> </iq> <!-- In --> Resources! <iq type="result" from="alice@mobilis.inf.tu-dresden.de" to="alice@mobilis.inf.tu-dresden.de/desktop" id="123"> <query xmlns="http://jabber.org/protocol/disco#items"> <item jid="alice@mobilis.inf.tu-dresden.de/desktop"/> <item jid="alice@mobilis.inf.tu-dresden.de/phone"/> <item jid="alice@mobilis.inf.tu-dresden.de/tablet"/> </query> </iq> lst.1: Querying own resources  QR codes, NFC Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-5
  • 6.
    ROLE Public Device – Kiosk LAYERS  standalone device  XMPP daemon  as personal device  remote login mechanism fig.3: Kiosk Device Lehrstuhl Informatik 5 (Information Systems) fig.4: Remote Login Prof. Dr. M. Jarke I5-FL-0213-6
  • 7.
    ROLE OAuth & XMPP LAYERS  XEP-0235: OAuth Over XMPP? deferred  the Google Talk & Windows Live Messenger way… <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> lst.2: OAuth @ Google Talk <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-MESSENGER-OAUTH2"> ACCESS_TOKEN </auth> lst.3: OAuth @ Windows Live Messenger  integrate browser-based authentication? Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-7
  • 8.
    ROLE ad hoc Discovery LAYERS  XEP-0174: Serverless Messaging jid=lightsensor@xmpp.org port.p2pj=5562 status=avail lst.4: Advertising Presence via mDNS fig.5: mDNS Service Discovery Lehrstuhl Informatik 5 (Information Systems) fig.6: ad-hoc Light Switch Prof. Dr. M. Jarke I5-FL-0213-8
  • 9.
    ROLE Session Transfer LAYERS  two general approaches – packet logging and replay – application specific bundling <iq from="alice@example.org/mobile“ to="alice@example.org/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.5: Offering Session Transfer Mechanisms Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-9
  • 10.
    ROLE Session Split / Synchronizing LAYERS  packet sent to bare JID: delivery depends on server implementation…  XEP-0280: Message Carbons experimental – forwarding in- and outbond messages to other resources Case A: Case B: Juliet sends Message to romeo@example.net: Juliet sends Message to romeo@example.net/home: Message is forked and sent to: Message is sent to: romeo@example.net/home romeo@example.net/home romeo@example.net/garden …and forwarded to: romeo@example.net/garden Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-10
  • 11.
    ROLE Packet Filtering LAYERS  intelligent packet routing  defined by endpoint fig.7: communication footprint of a LBG  XEP-0273: Stanza Interception and Filtering Technology (SIFT) deferred – Stanza – Sender/Recipient – Payload Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-11
  • 12.
    ROLE Conclusion LAYERS  Problems – extension implementation & deferrals & experimentals – OAuth  ad-hoc – session transfer over local link – towards IoT  state transfer using publish-subscribe – as a more general approach  more evaluation needed… Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-12
  • 13.
    ROLE XMPP @ our chair LAYERS  ROLE project – Interwidget Communication with XMPP (see DevRoom talk last year…) – XMPP over Websockets (not BOSH)  Teaching: Web Science lecture  Bachelor & Master theses… Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-13  new projects
  • 14.
    ROLE Mobilis Framework LAYERS …for more information please check: Lehrstuhl Informatik 5 (Information Systems) http://mobilis.inf.tu-dresden.de Prof. Dr. M. Jarke I5-FL-0213-14
  • 15.
    ROLE Thank you! LAYERS  Contact me: xmpp://koren@role.dbis.rwth-aachen.de koren@dbis.rwth-aachen.de http://www.istvank.eu  Check out ROLE SDK of RWTH http://sourceforge.net/projects/role-project  Check out the Mobilis framework of TU Dresden Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-15 https://github.com/danielschuster/mobilis
  • 16.
    ROLE Crazy Stuff with XMPP (or webinos) LAYERS Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-16
  • 17.
    ROLE References LAYERS http://tools.ietf.org/html/rfc5631 https://developers.google.com/talk/jep_extensions/oauth http://msdn.microsoft.com/library/live/hh826554 http://xmpp.org/extensions/xep-0235.html http://xmpp.org/extensions/xep-0174.html http://xmpp.org/extensions/xep-0280.html http://xmpp.org/extensions/xep-0273.html Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-17
  • 18.
    ROLE fin LAYERS Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke I5-FL-0213-18