Digital Identity is Under Attack: FIDO Paris Seminar.pptx
From Home Enabled Personal Media To Instant Personal Media Sharing
1. … through Innovation
From home enabled
Personal Media to
Instant Personal
Media Sharing
Bernardo Cardoso
S@H
3.12.2009
This document is intellectual property of PT Inovação, SA and it´s use or spread is prohibited without express written permission.
2. … through Innovation
Digital Home
• Our homes are evolving
Yesterday Today Tomorrow
Disconnected Siloed Convergent
4. … through Innovation
Digital Devices and Assets
• Taking hundreds or thousands of photos and videos
is easy, but sorting and uploading them? Not really...
• Lets not forget the music too…
• Lots of new gadgets are network enabled…
• Everything will be network enabled
• So, let them discovery, search and do the work, we
just want to control…
12/16/2009
6. … through Innovation
UPnP Technologies
• Use established Internet standards
– XML, UDP/TCP/IP, SOAP
• Have an open, flexible architecture for service discovery and control
– Simple Service Discovery Protocol (SSDP)
– Generic Event Notification Architecture (GENA)
– Service Control Protocol Description/Device Description Document (SCPD/DDD)
• UPnP Device Architecture (UDA)
– 0 Addressing: IP assignment on any network (AutoIP)
– 1 Discovery: Of services/devices (SSDP)
– 2 Description: Syntax for devices/services (SCPD/DDD)
– 3 Control: Of device services (SOAP)
– 4 Eventing: Updates of variables (GENA)
– 5 Presentation: Access to device HTML page
• Device Control Protocols (DCPs)
– APIs for various device functionality
– Described using SCPD syntax and UDA protocols
7. … through Innovation
UPnP Protocol Stack
Vendor-specific API above
Vendor-specific physical net
UPnP vendor
UPnP Forum
UPnP Device Architecture
HTTPU/MU GENA SSDP SOAP HTTP GENA
HTTP
UDP TCP
IP
Vendor-specific OS below
8. … through Innovation
0 Addressing
• Control point and device get address
– Use a DHCP server
– Else use Auto IP (Always looking for DHCP
server)
• What is Auto IP?
– Pick an address in 169.254/16 range
– Check to see if it is used (ARP)
– Periodically check for DHCP server
• Use DNS if available
– Easier for a human to use
– More static
9. … through Innovation
UPnP Device Architecture
Devices Controllers
NOTIFY messages (presence announcements)
Discovery
SSDP
M-SEARCH messages (device/service search)
SSDP
Description
GET device & service description
XML
Control
UPnP Actions
SOAP
Event subscriptions
Events
GENA
Event notifications
GENA
10. … through Innovation
1 Discovery
• New device can advertise its services to
control points
• Control point can search for the devices
of interest
• Control point gets to know about the
devices, its services and a pointer to a
more detailed information
11. … through Innovation
1 Discovery: Advertising
• New device multicasts a number of discovery
messages to a standard multicast
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age = seconds until advertisement expires
LOCATION: URL for UPnP description for root device
NT: search target
NTS: ssdp:alive
USN: advertisement UUID
• Sends a cancellation message if device is going to
become unavailable
12. … through Innovation
1 Discovery: Search
– Control point multicasts a search message
with a target equal to the type or identifier for
a device or service
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: seconds to delay response
ST: search target
– Uses multicast variant of HTTP that has been
extended using SSDP methods headers
– M-Search is a method defined by SSDP
13. … through Innovation
1 Discovery: Response
– Responses from devices contain discovery
messages identical to those advertised by newly
connected devices except that now they are
unicast
HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
LOCATION: URL for UPnP description for root device
ST: search target
USN: advertisement UUID
14. … through Innovation
2 Description: Device (phys)
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<URLBase>base URL for all relative URLs</URLBase>
<device>
<friendlyName>short user-friendly title</friendlyName>
<manufacturer>manufacturer name</manufacturer>
<manufacturerURL>URL to manufacturer site</manufacturerURL>
<modelDescription>long user-friendly title</modelDescription>
<modelName>model name</modelName>
<modelNumber>model number</modelNumber>
<modelURL>URL to model site</modelURL>
<serialNumber>manufacturer's serial number</serialNumber>
<UDN>uuid:UUID</UDN> Unique Device Name
<UPC>Universal Product Code</UPC>
<deviceType>urn:schemas-upnp-org:device:deviceType</deviceType>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>
<serviceId>urn:upnp-org:serviceId:serviceID</serviceId>
<SCPDURL>URL to service description</SCPDURL>
<controlURL>URL for control</controlURL>
<eventSubURL>URL for eventing</eventSubURL>
</service>
Declarations for other services (if any) go here
</serviceList>
<deviceList>Description of embedded devices (if any) go here</deviceList>
<iconList>
<icon>
<mimetype>image/format</mimetype>
<width>horizontal pixels</width>
<height>vertical pixels</height>
<depth>color depth</depth>
<url>URL to icon</url>
</icon>
XML to declare other icons, if any, go here
</iconList>
<presentationURL>URL for presentation</presentationURL>
</device>
<specVersion>
<major>1</major> <minor>0</minor>
</specVersion>
</root>
16-12-2009
15. … through Innovation
3 Control: Invoke Action
M-POST path of control URL HTTP/1.1
HOST: host of control URL:port of control URL
CONTENT-TYPE: text/xml; charset="utf-8"
MAN:
"http://schemas.xmlsoap.org/soap/envelope/";
ns=01
01-SOAPACTION:
"urn:schemas-upnp-org:service:serviceType:v#actionName"
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:actionName xmlns:u="urn:schemas-upnp-org:service:serviceType:v">
<argumentName>in arg value</argumentName>
other in args and their values (if any) go here
</u:actionName>
</s:Body>
</s:Envelope>
16. … through Innovation
4 Eventing: Subscribing
SUBSCRIBE publisher path HTTP/1.1
HOST: publisher host:publisher port
CALLBACK: <delivery URL>
NT: upnp:event
TIMEOUT: Second-requested subscription duration
• Control point subscribes to receive messages of a
services
• Sends a URL to receive event messages
• Subscribe, callback and NT are GENA headers
• Publisher sends a response to this message
17. … through Innovation
4 Eventing: Notify
• The values of changed state variables to all the
subscribers. The initial message contains all the state
variables.
NOTIFY delivery path HTTP/1.1
HOST: delivery host:delivery port
CONTENT-TYPE: text/xml
NT: upnp:event
NTS: upnp:propchange
SID: uuid:subscription-UUID
SEQ: event key
<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
<e:property>
<variableName>new value</variableName>
</e:property>
Other variable names and values (if any) go here
</e:propertyset>
16-12-2009
18. … through Innovation
UPnP Stacks
• Intel UPnP SDK and Reference Code
– http://software.intel.com/en-us/articles/intel-software-for-upnp-technology-
download-tools/
• Microsoft UPnP APIs
– http://msdn.microsoft.com/en-us/library/aa382303%28VS.85%29.aspx
• Platinum UPnP SDK
– http://www.plutinosoft.com/blog/projects/platinum/
• CyberLink for Java
– http://cgupnpjava.sourceforge.net/
• Portable UPnP SDK (libupnp)
– http://pupnp.sourceforge.net/
• Coherence - a DLNA/UPnP Framework for the Digital Living (Python)
– http://coherence.beebits.net/
23. … through Innovation
DLNA 2-Box Models
2. Select
1. Get Media Library info content
2-box pull
3. Get Content stream
1. Get Media Library info
and select content
2-box push
2. Pass URI for selected content
3. Get Content binary stream
24. … through Innovation
DLNA 3-Box Model
2. Select
content
1. Get Media Library info
3. Pass URI & metadata for
selected content
4. Get Content binary stream
25. … through Innovation
Device Classes
Category: Home Networked Devices (HND) Category: Mobile Handheld Devices (MHD)
Digital Media Server (DMS) Mobile Digital Media Server (M-DMS)
(M-
Digital Media Player (DMP) Mobile Digital Media Player (M-DMP)
(M-
Digital Media Renderer (DMR)
Digital Media Controller (DMC) Mobile Digital Media Controller (M-DMC)
(M-
Digital Media Printer (DMPr)
Mobile Digital Media Uploader (M-DMU)
(M-
Mobile Digital Media Downloader (M-DMD)
(M-
Upload Controller (+UP+) DMS with upload support
Download Controller (+DN+) DMS with download support
Push Controller (+PU+) DMR
Printing Controller 1 (+PR1+) DMPr
Printing Controller 2 (+PR2+)
16-12-2009 DMPr
26. … through Innovation
Media Formats
• The term “Format” is equivalent to “codec” or “codec family”
• List of DLNA-approved formats:
Video Audio Images
MPEG-1 LPCM AC-3
MPEG-2 MPEG-1/2 L2 ATRAC3plus
JPEG
H.263 MPEG-1/2 L3 WMA
PNG
MPEG-4 Part 2 MPEG-4 AAC LC WMA Professional
GIF
MPEG-4 Part 10 MPEG-4 AAC LTP AMR
TIFF
WMV9 MPEG-4 HE AAC AMR-WB+
VC-1 MPEH-4 BSAC G.726
27. … through Innovation
DMS Protocols and Services
UPnP MediaServer
Content Directory
Service (CDS)
Connection
Manager Service
(CMS)
Media
Streaming
UPnP DA (Device)
HTTP
TCP/IP
Wi-Fi and/or Ethernet
28. … through Innovation
Content Directory Service - CDS
• The CDS provides a logical structure for the media library
available in the Server:
– Containers Collection of other containers or items
Single entity that users perceive as one
– Items piece of content
• Resources Binary representation of the content (a
file or a stream)
– DMCs and DMPs retrieve media library information from a
DMS using different CDS actions
30. … through Innovation
New ideas
• Make UPnP not only use Internet Protocols (kind of ) but
actually connect to the Internet
– Upload content from local devices directly to Online Media Sharing sites:
Flickr, Youtube, Sapo Fotos, Sapo Vídeos
– Make Online Media accessible to UPnP AV/DLNA devices
• Get to non-media assets
– RSS feeds to TV via UPnP AV/DLNA
– Check movies to see in theater
• Interconnect UPnP domains
– Share my media with my friends instantaneous, with a little help from a little
fiber
12/16/2009
41. … through Innovation
Referências
• UPnP Standards
– http://www.upnp.org/standardizeddcps/default.asp
• UPnP Overview - Oct 2007
– http://www.upnp.org/resources/documents/UPnPOverview-Oct2007.pdf
• An Overview of the DLNA Architecture / DLNA Device Implementation
– http://download.microsoft.com/download/f/0/5/f05a42ce-575b-4c60-82d6-
208d3754b2d6/DLNA_Part_1_RS08.pptx
– http://download.microsoft.com/download/f/0/5/f05a42ce-575b-4c60-82d6-
208d3754b2d6/DLNA_Part_2_RS08.pptx
• UPnP MediaServer using Intels SDK for Windows Home Server and Xbox 360
– http://www.mperfect.net/whsUpnp360/
42. … through Innovation
Bernardo Cardoso
S@H
3.12.2009
This document is intellectual property of PT Inovação, SA and it´s use or spread is prohibited without express written permission.