SlideShare a Scribd company logo
1 of 50
Download to read offline
SECOND SCREEN, XMPP
Steffen Larsen
slarsen@braintrust.dk
twitter: @zooldk
IoT Day, April 2014, Stockholm
<STREAM> ABOUT ME	

• Developing XMPP since 2007, MSc. Copenhagen Uni. - developed
pidginVOIP/Video plugin, XMPP for signalling	

• Member of the XMPP Standard Foundation (XSF) since 2009 -
now also on the editorial team	

• Developed software since 1998 for various companies: telcos,
streaming companies etc.	

• Have my own consulting company (BrainTrust) - Developing
software and doing some startups!
RELATED PROJECTS
• I have been working with:	

• Open source:Tigase server, components, Strophe.js plugins etc.	

• Various chat applications, for video playback commentator, support tools etc.	

• XMPP over satellites - standardised maritime satellite project (MSDS) for
maritime safety service (advanced group chat)	

• XMPP in gaming and betting industry	

• XMPP forTV presence for various telcos and cable operators in scandinavia
and Europe (first one in 2008!)
I’ve done
AGENDA
• Intro to Second Screen	

• Brief intro to XMPP	

• Second Screen in a XMPP environment
(no demo - sorry!)	

• Beyond Second Screen
SECOND SCREEN?
Second screen, sometimes also referred to as “companion device” (or
“companion apps” when referring to software applications), is a term that refers
to an additional electronic device (e.g. tablet, smartphone) that allows a
content consumer to interact with the content they are consuming, such
as TV shows, movies, music, or video games. Extra data is displayed on a
portable device synchronised with the content being viewed on television.	

-wikipedia
EVES C-CAST	

control multiple
view 	

and cameras	

Do replays etc.
Do betting
APPLE AIRPLAY
AIRPLAY
• Proprietary protocol (formerly known as AirTunes)	

• Allows wireless streaming of audio, video and photos	

• Troublesome license..Audio part can be licensed	

• Screen casting	

• Discover Airplay devices on same network	

• Request device control such as trick play (play, pause, ff, rev, stop etc.)	

• Streams can only be decrypted by using apple keys (no other DRM systems)
CHROMECAST
CHROMECAST
• An implementation of DIAL (netflix)	

• DIscover And Launch - Simple! - Multicast for discover, HTTP/
REST to open and launch apps (urls).	

• Not “locked” to any device, but can discovered on the same
network	

• Gives you playback of Netflix,Youtube etc. on a simple cheap stick	

• Supports screen casting from chrome etc.
CHROMECAST
• Libraries for IOS and Android only (no windows)	

• Browser to browser support, JS (Chrome only)	

• Supports Play Ready and Encrypted Media Extensions (DRM)	

• Uses Smooth Streaming and MPEG-Dash - No HLS? WTF!	

• Uses Google DNS.. :-(	

• White listings of AppIds
SECOND SCREEN?	

• An offer to interact through a secondary device than the one you are
using as primary screen	

• Some call it:“Multi screen”,“Companion devices”,“Beaming”	

• The secondary / companion device: smart phone, tablets and laptops
etc	

• Primary:TV, set-top box, xbox, play station etc.	

• Second screen for implemented: kiosk systems, remote controlling,
multimedia trickplay,“flick-to-screen”.. which I am going to talk about
WHY SECOND SCREEN?
TRENDS!
TV IS DEAD, LONG LIVETV!
“The ways we access television content is changing and evolving, and the multitude of devices on
which we can viewTV is ever growing; withTV everywhere on your tablet, mobile or PC, set top
boxes and connectedTV’s. How do broadcasters and content providers target audiences
appropriately, and where should they be focussing their attentions?”	

• Usage is different now than before the smart devices,
like iPhone,Android and tablets - the want to reach
the new audience!	

!
• second screen for better experience. Some “Smart
TVs” and STB are horrible UI and slow on rendering.	

!
• Make theTV/STB device a stream device, make the UI
on second screen
MULTIPLE DEVICES
THEY NEED A WAYTO COMMUNICATE
KNOWN PROTOCOLS
• DIAL - DIscovery And Launch protocol (Google chromecast) - 2012	

• Apple AirPlay	

• MQTT - weak security (why not use SASL?), pub/sub only in
application layer	

• COAP (HTTP / REST based)	

• APIs and REST? (many IoT companies does this!)	

• Others
REQUIREMENTS
• Support for many devices! 	

• Routable over the Internet	

• Secure with authorisation and authentication (because
it over the Internet!)	

• Transport agnostic (diverse devices, software stacks etc)	

• Do not want to reinvent the wheel!
REQUIREMENTS
• Easy Discovery & pairing - how do they find each other?	

• Roles, authorisation and authentication (diff. devices and users)	

• Single user or multi - let others do remote stuff.	

• Control over the infrastructure (no dependencies to silos)	

• Streaming media or signalling? - most want just signalling	

• A protocol instead of an API
API’SVS
PROTOCOLS
•Many IoT vendors only
focus on API 	

!
•Via an open standard
protocol we would be
able to communicate a
cross vendors and
devices.
DISCOVERY
• Scan QR code, click download, wait, launch app =
tedious!	

• Open web browser, type in URL	

• OpenWRT, DDWrt and others: connect to SSID etc	

• Have a protocol doing discovery and signalling for
you
• Roles - user login / auth or simple devices with
no login? 	

• provisioning / re-provisioning devices.	

• Single user / Multiuser	

• Do you owe all of the device stack???.. login vs.
kiosk system (no login, presentation/buying etc)
ROLESVS PROVISIONING
TO CAST ORTO MIRROR?
• Mirror: to mirror your display and to transcode it on the
second screen device	

• Cast: to send play and trick play “commands” from the
second screen to first screen and let 1’st screen decode etc.	

• Stream vs. signalling. Content owners have a hard time
accepting streaming (airplay mirroring.. transcending on the
sending device etc)
SECOND SCREEN ENVIRONMENTS
AND LIMITATIONS
• To be used on aTV or manyTVs!.. 	

• Many people in a household!	

• Some native, some are browser based! (only a small limited numbers are native of STB)..
a diversity of clients and hardware. need a protocol!	

• DRM	

• Easy to use.. people normally have a phone and have a special application installed where
they can watchTV and seVOD (video on demand) - no need for discovery of the app!	

• Pairing should only be done if another customer wants to take control of yourTV
experience!
• An Open Standard! yay!	

• Secure & proven over many
years! (many implementations,
open source / commercial)	

• Many routing mechanisms 	

• Federated! (setup your own)	

• Flexible - beyond Second
Screen!
• Transport agnostic	

• TCP, BOSH - XMPP over HTTP, Websockets	

• Diff. backends (many servers support native MySQL,
REST or own plugins) for login and authentication	

• Easy to plugin your own business logic and extensions	

• Many extensions! - for routing possibilities, and others!
• Started as a chat protocol - Google, Facebook,
WhatsApp etc.	

• Also used in gaming (e.g chess, Bingo),
synchronisation software, white boarding and
collaboration software, taxi hailing etc.	

• Now used in many other places!
WHY?
• Can route over the internet (you do not need to be home
to use your second-screen)	

• Can be used locally (link local - bonjour) as well (instead of
client/server model) 	

• Versatile protocol - and not just yet another API!	

• Open and can federate your data. Move it if you like to
your own domain and server
XMPP ARCHITECTURE
•Clients (persistent connection)	

•Servers	

•Plugins	

•Components & Gateways
• Normal XMPP architecture involves a server
and a lot of clients.	

• A user can login with several clients	

• Servers can be federated pr. domain	

• Server less mode - Link Local (Bonjour)
XMPP ARCHITECTURE
XMPP CONNECTION
LIFECYCLE
• Connect with your user and cred. or anonymous login (authorisation)	

• Get resource from server (or given from client)	

• Send initial presence and capabilities	

• Get presence from your other clients if any	

• Get roster	

• Communicate with communication primitives (persistent connection)
XMPP ADDRESSING AND
ROUTING
• Domain routing like mail (SMTP)	

• Many diff. mechanisms that can affect a route	

• bare JID vs. full JID	

• me@example.com vs me@example.com/Home	

• extensions like: Pub/Sub, MUC, etc.
COMMUNICATION PRIMITIVES
• 3 Stanzas, thats it!	

• <presence/>	

• <message/>	

• <iq/> (information / query)
<STANZAS>
• You can define the payload it self.	

• Make an extension!	

• Define your own <tag> with your own name
space.	

• Embed and use JSON containers or other as
payload. easier for browsers to understand
  <message from=‘me@example.com’ to='francisco@denmark.lit' id=‘foo'>"
" " " <body/>"
         <json xmlns="urn:xmpp:json:0">"
           { "name": "romeo", "age": "421", "status": "single" }"
         </json>         "
   </message>
<STANZAS>
EXTENSIONS
RELEVANT EXTENSIONS
• Entity Capabilities - XEP-0115	

• Service Discovery - XEP-0030	

• BOSH / XMPP over HTTP - XEP-0124	

• MUC (Multi User Chat) - XEP-0045	

• User Location - Geo/GPS - XEP-0080	

• Stream Compression - XEP-0138	

• PEP - Personal Eventing Protocol - XEP-0163
RELEVANT EXTENSIONS
• Jingle -VOIP/Video - XEP-0166	

• Server less Messaging (Bonjour/mDNS) - XEP-0174	

• Stream Management (acknowledgement / stream resumption) - XEP-0198	

• Message Carbons - XEP-0280	

• Remote controlling agents - XEP-146	

• MAM - Message Archiving Management - XEP-313	

• Message Delivery Receipts - XEP-0184
RELEVANT EXTENSIONS
• Event Logging over XMPP - XEP-0337	

• IoT: Sensor Data	

• IoT: Provisioning	

• IoT: Control	

• IoT: Concentrators
USING XMPP IN 	

SECOND SCREEN
• Almost all OTT (over-the-top) devices like smartTVs and
set-top boxes (STB) are browser based.	

• We have STBs that support HTTP/1.0!	

• Devices that connect nativelyTCP (like IOS,Android,
Microsoft etc)	

• Customers can use the website to watchTV/Video as well..
that is also connected (via. websockets)
customer scenario
• You connect with. second screen (IOS): 	

• me@example.com/IOS	

• Turn on (smart)TV or STB and it connects auto. 	

• me@example.com/TV1	

• me@example.com/TV2
CONNECTION AND
DISCOVERY
COMMUNICATE!
  <message from=‘me@example.com/IOS’ to=‘me@example.com/TV1’>"
" " " <body/>"
           <json xmlns="urn:xmpp:json:0">"
           { “play-url": “http://something.dk/nicemovieUrl.ts“ }"
           </json>         "
   </message>
USAGES
• Second Screen stuff (trick play etc) - sending play/stop,ff commands!	

• Capabilities and service discovery pr. device 	

• Use presence for watching the number of concurrent clients and
throttle it (DRM purposes)	

• Use presence for watching user interaction (channel changes,VOD,
follow me etc)	

• Push notifications via. full JID, bare JID, Pub/Sub (groups) and broadcasts
to all
• Remote logging / control the device (customer
support)	

• Let your devices talk together in many topologies -
one-to-one, many-to-one , many-to-many	

• Remote recordings on local storage (PVR)	

• Exchange bandwidth between devices
BEYOND SECOND SCREEN
BEYOND SECOND SCREEN
• Instant Context Switching	

• Instant statistics for online devices (second screen as well asTV etc)	

• InterconnectedTV with your IoT home! (GW for MQTT, zigbee
etc)	

• Connect with your alarm, turn off theTV etc.	

• The living room devices gives away a lot of data for
recommendation
XMPP AND IOT
• We can connect a lot of diverse devices. No matter transport	

• Create your own gateways if you want to connect to other APIs or
protocols	

• I’ve created a Pub/Sub to MQTT gateway to connect to MQTT
connected devices	

• WebRTC - federation and discovery	

• UPnP cloud - uses XMPP standard for interconnecting devices	

• Usage stats! - delivery of a huge amount of real-time data == BIG DATA!
UPNP CLOUD
“Cloud support in the UPnP architecture will enable
IoT and internet-wide usage by allowing IP-based
devices and servers to discover each other and
communicate independent of the network they
are connected with.”
QUESTIONS? </STREAM>
Email / XMPP:
slarsen@braintrust.dk	

Twitter: @zooldk thanks to t.christensen from nordija 	

for inspiration to the slides.

More Related Content

Viewers also liked

Internet Of Things with XMPP
Internet Of Things with XMPPInternet Of Things with XMPP
Internet Of Things with XMPP
Rikard Strid
 
XMPP a Unified Fabric for Internet Of Things
XMPP a Unified Fabric for Internet Of ThingsXMPP a Unified Fabric for Internet Of Things
XMPP a Unified Fabric for Internet Of Things
Rikard Strid
 
XMPP & Internet Of Things
XMPP & Internet Of ThingsXMPP & Internet Of Things
XMPP & Internet Of Things
Rikard Strid
 

Viewers also liked (17)

Valparaiso
ValparaisoValparaiso
Valparaiso
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud Computing
 
XSF - XMPP Standards Foundation
XSF - XMPP Standards FoundationXSF - XMPP Standards Foundation
XSF - XMPP Standards Foundation
 
Internet Of Things with XMPP
Internet Of Things with XMPPInternet Of Things with XMPP
Internet Of Things with XMPP
 
digital concrete breakfast meeting
digital concrete breakfast meetingdigital concrete breakfast meeting
digital concrete breakfast meeting
 
FOSDEM "XMPP and the IoT" talk by joachim_lindborg 20140202
FOSDEM "XMPP and the IoT" talk by joachim_lindborg 20140202 FOSDEM "XMPP and the IoT" talk by joachim_lindborg 20140202
FOSDEM "XMPP and the IoT" talk by joachim_lindborg 20140202
 
Web 3.0 & IoT (English)
Web 3.0 & IoT (English)Web 3.0 & IoT (English)
Web 3.0 & IoT (English)
 
Intelligent Internet of Things (IIoT): System Architectures and Communications
Intelligent Internet of Things (IIoT): System Architectures and CommunicationsIntelligent Internet of Things (IIoT): System Architectures and Communications
Intelligent Internet of Things (IIoT): System Architectures and Communications
 
XMPP a Unified Fabric for Internet Of Things
XMPP a Unified Fabric for Internet Of ThingsXMPP a Unified Fabric for Internet Of Things
XMPP a Unified Fabric for Internet Of Things
 
150522 itarc2015 intro_joachim_lindborg
150522 itarc2015 intro_joachim_lindborg150522 itarc2015 intro_joachim_lindborg
150522 itarc2015 intro_joachim_lindborg
 
Web 3.0 & IoT
Web 3.0 & IoTWeb 3.0 & IoT
Web 3.0 & IoT
 
XMPP & Internet Of Things
XMPP & Internet Of ThingsXMPP & Internet Of Things
XMPP & Internet Of Things
 
Fosdem IoT devroom, 2015, open scalable IoT systems with XMPP
Fosdem IoT devroom, 2015, open scalable IoT systems with XMPPFosdem IoT devroom, 2015, open scalable IoT systems with XMPP
Fosdem IoT devroom, 2015, open scalable IoT systems with XMPP
 
XMPP 101
XMPP 101XMPP 101
XMPP 101
 
How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT ...
How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT ...How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT ...
How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT ...
 
XMPP IoT Sensor Data (XEP-0323)
XMPP IoT Sensor Data (XEP-0323)XMPP IoT Sensor Data (XEP-0323)
XMPP IoT Sensor Data (XEP-0323)
 
M2M, IOT, Device Managment: COAP/LWM2M to rule them all?
M2M, IOT, Device Managment: COAP/LWM2M to rule them all?M2M, IOT, Device Managment: COAP/LWM2M to rule them all?
M2M, IOT, Device Managment: COAP/LWM2M to rule them all?
 

Similar to Second screen iot_day_stockholm_2014

WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Hyun-woo Park
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
davyjones
 

Similar to Second screen iot_day_stockholm_2014 (20)

Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
Xmpp intro 2014
Xmpp intro 2014Xmpp intro 2014
Xmpp intro 2014
 
IoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukeboxIoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukebox
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development Landscape
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
Thin Clients for InduSoft Web Studio
Thin Clients for InduSoft Web StudioThin Clients for InduSoft Web Studio
Thin Clients for InduSoft Web Studio
 
Elements of Connected Products
Elements of Connected ProductsElements of Connected Products
Elements of Connected Products
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
Stackato
StackatoStackato
Stackato
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Responsive vs Adaptive Web Design - What about Device Channels?
Responsive vs Adaptive Web Design - What about Device Channels?Responsive vs Adaptive Web Design - What about Device Channels?
Responsive vs Adaptive Web Design - What about Device Channels?
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
 
HTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerfulHTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerful
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 

Recently uploaded

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

Second screen iot_day_stockholm_2014

  • 1. SECOND SCREEN, XMPP Steffen Larsen slarsen@braintrust.dk twitter: @zooldk IoT Day, April 2014, Stockholm
  • 2. <STREAM> ABOUT ME • Developing XMPP since 2007, MSc. Copenhagen Uni. - developed pidginVOIP/Video plugin, XMPP for signalling • Member of the XMPP Standard Foundation (XSF) since 2009 - now also on the editorial team • Developed software since 1998 for various companies: telcos, streaming companies etc. • Have my own consulting company (BrainTrust) - Developing software and doing some startups!
  • 3. RELATED PROJECTS • I have been working with: • Open source:Tigase server, components, Strophe.js plugins etc. • Various chat applications, for video playback commentator, support tools etc. • XMPP over satellites - standardised maritime satellite project (MSDS) for maritime safety service (advanced group chat) • XMPP in gaming and betting industry • XMPP forTV presence for various telcos and cable operators in scandinavia and Europe (first one in 2008!) I’ve done
  • 4. AGENDA • Intro to Second Screen • Brief intro to XMPP • Second Screen in a XMPP environment (no demo - sorry!) • Beyond Second Screen
  • 5. SECOND SCREEN? Second screen, sometimes also referred to as “companion device” (or “companion apps” when referring to software applications), is a term that refers to an additional electronic device (e.g. tablet, smartphone) that allows a content consumer to interact with the content they are consuming, such as TV shows, movies, music, or video games. Extra data is displayed on a portable device synchronised with the content being viewed on television. -wikipedia
  • 6.
  • 7. EVES C-CAST control multiple view and cameras Do replays etc. Do betting
  • 9. AIRPLAY • Proprietary protocol (formerly known as AirTunes) • Allows wireless streaming of audio, video and photos • Troublesome license..Audio part can be licensed • Screen casting • Discover Airplay devices on same network • Request device control such as trick play (play, pause, ff, rev, stop etc.) • Streams can only be decrypted by using apple keys (no other DRM systems)
  • 11. CHROMECAST • An implementation of DIAL (netflix) • DIscover And Launch - Simple! - Multicast for discover, HTTP/ REST to open and launch apps (urls). • Not “locked” to any device, but can discovered on the same network • Gives you playback of Netflix,Youtube etc. on a simple cheap stick • Supports screen casting from chrome etc.
  • 12. CHROMECAST • Libraries for IOS and Android only (no windows) • Browser to browser support, JS (Chrome only) • Supports Play Ready and Encrypted Media Extensions (DRM) • Uses Smooth Streaming and MPEG-Dash - No HLS? WTF! • Uses Google DNS.. :-( • White listings of AppIds
  • 13. SECOND SCREEN? • An offer to interact through a secondary device than the one you are using as primary screen • Some call it:“Multi screen”,“Companion devices”,“Beaming” • The secondary / companion device: smart phone, tablets and laptops etc • Primary:TV, set-top box, xbox, play station etc. • Second screen for implemented: kiosk systems, remote controlling, multimedia trickplay,“flick-to-screen”.. which I am going to talk about
  • 16. TV IS DEAD, LONG LIVETV! “The ways we access television content is changing and evolving, and the multitude of devices on which we can viewTV is ever growing; withTV everywhere on your tablet, mobile or PC, set top boxes and connectedTV’s. How do broadcasters and content providers target audiences appropriately, and where should they be focussing their attentions?” • Usage is different now than before the smart devices, like iPhone,Android and tablets - the want to reach the new audience! ! • second screen for better experience. Some “Smart TVs” and STB are horrible UI and slow on rendering. ! • Make theTV/STB device a stream device, make the UI on second screen
  • 17.
  • 18. MULTIPLE DEVICES THEY NEED A WAYTO COMMUNICATE
  • 19. KNOWN PROTOCOLS • DIAL - DIscovery And Launch protocol (Google chromecast) - 2012 • Apple AirPlay • MQTT - weak security (why not use SASL?), pub/sub only in application layer • COAP (HTTP / REST based) • APIs and REST? (many IoT companies does this!) • Others
  • 20. REQUIREMENTS • Support for many devices! • Routable over the Internet • Secure with authorisation and authentication (because it over the Internet!) • Transport agnostic (diverse devices, software stacks etc) • Do not want to reinvent the wheel!
  • 21. REQUIREMENTS • Easy Discovery & pairing - how do they find each other? • Roles, authorisation and authentication (diff. devices and users) • Single user or multi - let others do remote stuff. • Control over the infrastructure (no dependencies to silos) • Streaming media or signalling? - most want just signalling • A protocol instead of an API
  • 22. API’SVS PROTOCOLS •Many IoT vendors only focus on API ! •Via an open standard protocol we would be able to communicate a cross vendors and devices.
  • 23. DISCOVERY • Scan QR code, click download, wait, launch app = tedious! • Open web browser, type in URL • OpenWRT, DDWrt and others: connect to SSID etc • Have a protocol doing discovery and signalling for you
  • 24. • Roles - user login / auth or simple devices with no login? • provisioning / re-provisioning devices. • Single user / Multiuser • Do you owe all of the device stack???.. login vs. kiosk system (no login, presentation/buying etc) ROLESVS PROVISIONING
  • 25. TO CAST ORTO MIRROR? • Mirror: to mirror your display and to transcode it on the second screen device • Cast: to send play and trick play “commands” from the second screen to first screen and let 1’st screen decode etc. • Stream vs. signalling. Content owners have a hard time accepting streaming (airplay mirroring.. transcending on the sending device etc)
  • 26. SECOND SCREEN ENVIRONMENTS AND LIMITATIONS • To be used on aTV or manyTVs!.. • Many people in a household! • Some native, some are browser based! (only a small limited numbers are native of STB).. a diversity of clients and hardware. need a protocol! • DRM • Easy to use.. people normally have a phone and have a special application installed where they can watchTV and seVOD (video on demand) - no need for discovery of the app! • Pairing should only be done if another customer wants to take control of yourTV experience!
  • 27. • An Open Standard! yay! • Secure & proven over many years! (many implementations, open source / commercial) • Many routing mechanisms • Federated! (setup your own) • Flexible - beyond Second Screen!
  • 28. • Transport agnostic • TCP, BOSH - XMPP over HTTP, Websockets • Diff. backends (many servers support native MySQL, REST or own plugins) for login and authentication • Easy to plugin your own business logic and extensions • Many extensions! - for routing possibilities, and others!
  • 29. • Started as a chat protocol - Google, Facebook, WhatsApp etc. • Also used in gaming (e.g chess, Bingo), synchronisation software, white boarding and collaboration software, taxi hailing etc. • Now used in many other places!
  • 30. WHY? • Can route over the internet (you do not need to be home to use your second-screen) • Can be used locally (link local - bonjour) as well (instead of client/server model) • Versatile protocol - and not just yet another API! • Open and can federate your data. Move it if you like to your own domain and server
  • 31. XMPP ARCHITECTURE •Clients (persistent connection) •Servers •Plugins •Components & Gateways
  • 32. • Normal XMPP architecture involves a server and a lot of clients. • A user can login with several clients • Servers can be federated pr. domain • Server less mode - Link Local (Bonjour) XMPP ARCHITECTURE
  • 33. XMPP CONNECTION LIFECYCLE • Connect with your user and cred. or anonymous login (authorisation) • Get resource from server (or given from client) • Send initial presence and capabilities • Get presence from your other clients if any • Get roster • Communicate with communication primitives (persistent connection)
  • 34. XMPP ADDRESSING AND ROUTING • Domain routing like mail (SMTP) • Many diff. mechanisms that can affect a route • bare JID vs. full JID • me@example.com vs me@example.com/Home • extensions like: Pub/Sub, MUC, etc.
  • 35. COMMUNICATION PRIMITIVES • 3 Stanzas, thats it! • <presence/> • <message/> • <iq/> (information / query)
  • 36. <STANZAS> • You can define the payload it self. • Make an extension! • Define your own <tag> with your own name space. • Embed and use JSON containers or other as payload. easier for browsers to understand
  • 37.   <message from=‘me@example.com’ to='francisco@denmark.lit' id=‘foo'>" " " " <body/>"          <json xmlns="urn:xmpp:json:0">"            { "name": "romeo", "age": "421", "status": "single" }"          </json>         "    </message> <STANZAS>
  • 39. RELEVANT EXTENSIONS • Entity Capabilities - XEP-0115 • Service Discovery - XEP-0030 • BOSH / XMPP over HTTP - XEP-0124 • MUC (Multi User Chat) - XEP-0045 • User Location - Geo/GPS - XEP-0080 • Stream Compression - XEP-0138 • PEP - Personal Eventing Protocol - XEP-0163
  • 40. RELEVANT EXTENSIONS • Jingle -VOIP/Video - XEP-0166 • Server less Messaging (Bonjour/mDNS) - XEP-0174 • Stream Management (acknowledgement / stream resumption) - XEP-0198 • Message Carbons - XEP-0280 • Remote controlling agents - XEP-146 • MAM - Message Archiving Management - XEP-313 • Message Delivery Receipts - XEP-0184
  • 41. RELEVANT EXTENSIONS • Event Logging over XMPP - XEP-0337 • IoT: Sensor Data • IoT: Provisioning • IoT: Control • IoT: Concentrators
  • 42. USING XMPP IN SECOND SCREEN • Almost all OTT (over-the-top) devices like smartTVs and set-top boxes (STB) are browser based. • We have STBs that support HTTP/1.0! • Devices that connect nativelyTCP (like IOS,Android, Microsoft etc) • Customers can use the website to watchTV/Video as well.. that is also connected (via. websockets) customer scenario
  • 43. • You connect with. second screen (IOS): • me@example.com/IOS • Turn on (smart)TV or STB and it connects auto. • me@example.com/TV1 • me@example.com/TV2 CONNECTION AND DISCOVERY
  • 44. COMMUNICATE!   <message from=‘me@example.com/IOS’ to=‘me@example.com/TV1’>" " " " <body/>"            <json xmlns="urn:xmpp:json:0">"            { “play-url": “http://something.dk/nicemovieUrl.ts“ }"            </json>         "    </message>
  • 45. USAGES • Second Screen stuff (trick play etc) - sending play/stop,ff commands! • Capabilities and service discovery pr. device • Use presence for watching the number of concurrent clients and throttle it (DRM purposes) • Use presence for watching user interaction (channel changes,VOD, follow me etc) • Push notifications via. full JID, bare JID, Pub/Sub (groups) and broadcasts to all
  • 46. • Remote logging / control the device (customer support) • Let your devices talk together in many topologies - one-to-one, many-to-one , many-to-many • Remote recordings on local storage (PVR) • Exchange bandwidth between devices BEYOND SECOND SCREEN
  • 47. BEYOND SECOND SCREEN • Instant Context Switching • Instant statistics for online devices (second screen as well asTV etc) • InterconnectedTV with your IoT home! (GW for MQTT, zigbee etc) • Connect with your alarm, turn off theTV etc. • The living room devices gives away a lot of data for recommendation
  • 48. XMPP AND IOT • We can connect a lot of diverse devices. No matter transport • Create your own gateways if you want to connect to other APIs or protocols • I’ve created a Pub/Sub to MQTT gateway to connect to MQTT connected devices • WebRTC - federation and discovery • UPnP cloud - uses XMPP standard for interconnecting devices • Usage stats! - delivery of a huge amount of real-time data == BIG DATA!
  • 49. UPNP CLOUD “Cloud support in the UPnP architecture will enable IoT and internet-wide usage by allowing IP-based devices and servers to discover each other and communicate independent of the network they are connected with.”
  • 50. QUESTIONS? </STREAM> Email / XMPP: slarsen@braintrust.dk Twitter: @zooldk thanks to t.christensen from nordija for inspiration to the slides.