from home enabled personal media to instant personal media sharing
DESCRIPTION
TRANSCRIPT
… through Innovation
From home enabled
Personal Media to
Bernardo Cardoso
S@H
3.12.2009
Personal Media to
Instant Personal
Media Sharing
This document is intellectual property of PT Inovação, SA and it´s use or spread is prohibited without express written permission.
… through Innovation
Digital Home
• Our homes are evolving
Yesterday Today Tomorrow
Disconnected Siloed Convergent
… through Innovation
Digital Life
• Our gadgets are proliferating
… 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…• 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
… through Innovation
Two technologies to the rescue
12/16/2009
… 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
… through Innovation
Vendor-specific API above
UPnP Protocol Stack
physicaln
et
UPnP Device ArchitectureUPnP Device ArchitectureUPnP Device ArchitectureUPnP Device Architecture
UPnP ForumUPnP ForumUPnP ForumUPnP Forum
UPnP vendorUPnP vendorUPnP vendorUPnP vendor
Vendor-specific OS below Vendor-sp
ecificphysical
UPnP Device ArchitectureUPnP Device ArchitectureUPnP Device ArchitectureUPnP Device Architecture
UDPUDPUDPUDP
IPIPIPIP
HTTPU/MUHTTPU/MUHTTPU/MUHTTPU/MU GENAGENAGENAGENA SSDPSSDPSSDPSSDP SOAPSOAPSOAPSOAP
HTTPHTTPHTTPHTTP
HTTPHTTPHTTPHTTP GENAGENAGENAGENA
TCPTCPTCPTCP
… 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?• 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
… through Innovation
UPnP Device ArchitectureDevices Controllers
NOTIFY messages (presence announcements)
M-SEARCH messages (device/service search)
SSDP
SSDP
Disco
very
Disco
very
GET device & service description
XML
UPnP ActionsSOAP
Event subscriptions
Event notifications
Description
Description
Control
Control
Events
Events GENA
GENA
… through Innovation
1 Discovery
• New device can advertise its services to
control points
• Control point can search for the devices • 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
… 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
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
• Sends a cancellation message if device is going to
become unavailable
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
… 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
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
– Uses multicast variant of HTTP that has been extended using SSDP methods headers
– M-Search is a method defined by SSDP
HOST: 239.255.255.250:1900HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: seconds to delay response
ST: search target
… 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 unicast
HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
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
… 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>
<?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>
16-12-2009
<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>
<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>
… through Innovation
3 Control: Invoke ActionM-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:
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: 01-SOAPACTION:
"urn:schemas-upnp-org:service:serviceType:v#actionName"
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>
</s:Body>
</s:Envelope>
<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>
… through Innovation
4 Eventing: Subscribing
SUBSCRIBE publisher path HTTP/1.1
HOST: publisher host:publisher port
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
TIMEOUT: Second-requested subscription duration
… 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
NOTIFY delivery path HTTP/1.1
HOST: delivery host:delivery port
CONTENT-TYPE: text/xmlNT: upnp:event
16-12-2009
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>
… 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/
… through Innovation
Hands OnHands On
… through Innovation
UPnP Media Devices
Devices Controllers
MediaServer CPUPnP
UPnP Control Point
MediaServer CP
MediaRenderer CP
UPnP
MediaServer
UPnP
MediaRenderer
… through Innovation
DLNA• Industry consortium
– 250+ companies
– Consumer Electronics
– Computing Industry
– Mobile Devices
– Content distributors– Content distributors
• Goal: Establish an ecosystem of
compatible products for networked media
devices
• Develops standards-based specifications:
“DLNA Guidelines”
… through Innovation
DLNA Stack
… through Innovation
DLNA 2-Box Models1. Get Media Library info
2. Select
content
3. Get Content stream2-box pull
1. Get Media Library info
and select content
2. Pass URI for selected content
3. Get Content binary stream
2-boxpush
… through Innovation
DLNA 3-Box Model
1. Get Media Library info
2. Select
content
3. Pass URI & metadata for
selected content
4. Get Content binary stream
… through Innovation
Device Classes
Digital Media Server (DMS)Digital Media Server (DMS)
Digital Media Player (DMP)Digital Media Player (DMP)
Digital Media Renderer (DMR)Digital Media Renderer (DMR)
Digital Media Controller (DMC)Digital Media Controller (DMC)
Digital Media Printer (DMPr)Digital Media Printer (DMPr)
Mobile Digital MediaMobile Digital Media ServerServer (M(M--DMS)DMS)
Mobile Digital Media Player (MMobile Digital Media Player (M--DMP)DMP)
Mobile Digital Media Controller (MMobile Digital Media Controller (M--DMC)DMC)
Category: Home Networked Devices (HND) Category: Mobile Handheld Devices (MHD)
16-12-2009
Digital Media Printer (DMPr)Digital Media Printer (DMPr)
Mobile Digital Media Uploader (MMobile Digital Media Uploader (M--DMU)DMU)
Mobile Digital Media Downloader (MMobile Digital Media Downloader (M--DMD)DMD)
Upload Controller (+UP+)Upload Controller (+UP+)
Download Controller (+DN+)Download Controller (+DN+)
Push Controller (+PU+)Push Controller (+PU+)
Printing Controller 1 (+PR1+)Printing Controller 1 (+PR1+)
Printing Controller 2 (+PR2+)Printing Controller 2 (+PR2+)
DMS with upload supportDMS with upload support
DMS with download supportDMS with download support
DMRDMR
DMPrDMPr
DMPrDMPr
… through Innovation
Media Formats
• The term “Format” is equivalent to “codec” or “codec family”
• List of DLNA-approved formats:
MPEG-1
MPEG-2
H.263
MPEG-4 Part 2
MPEG-4 Part 10
WMV9
VC-1
LPCM
MPEG-1/2 L2
MPEG-1/2 L3
MPEG-4 AAC LC
MPEG-4 AAC LTP
MPEG-4 HE AAC
MPEH-4 BSAC
AC-3
ATRAC3plus
WMA
WMA Professional
AMR
AMR-WB+
G.726
JPEG
PNG
GIF
TIFF
Video Audio Images
… through Innovation
DMS Protocols and Services
Content Directory
Service (CDS)
Connection
Manager Service
UPnP MediaServer
Wi-Fi and/or Ethernet
TCP/IP
HTTP
Media
StreamingUPnP DA (Device)
Manager Service
(CMS)
… 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
– Items
• Resources
– DMCs and DMPs retrieve media library information from a
DMS using different CDS actions
�� Single entity that users perceive as one Single entity that users perceive as one piece of content piece of content
�� Binary representation of the content (a file or a stream)
… through Innovation
Hands OnHands On
… 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
… through Innovation
Hands OnHands On
… through Innovation
MAD
Media Aggregator and Distributor
… through Innovation
MAD – All Content
… through Innovation
MAD – Personal DMS
… through Innovation
MAD – Check movies on theater
… through Innovation
MAD – Browse my DMS
… through Innovation
MAD – Upload to Sapo Fotos
… through Innovation
MAD – Share with Friends
… through Innovation
MAD – Sapo Fotos – Mais Vistas
… through Innovation
Q&AQ&A
… 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• 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/
… 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.