from home enabled personal media to instant personal media sharing

42
… through Innovation From home enabled Personal Media to Bernardo Cardoso S@H 3.12.2009 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.

Upload: guest829cce0

Post on 01-Sep-2014

2.127 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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.

Page 2: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Digital Home

• Our homes are evolving

Yesterday Today Tomorrow

Disconnected Siloed Convergent

Page 3: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Digital Life

• Our gadgets are proliferating

Page 4: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 5: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Two technologies to the rescue

12/16/2009

Page 6: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 7: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 8: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 9: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 10: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 11: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 12: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 13: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 14: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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>

Page 15: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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>

Page 16: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 17: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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>

Page 18: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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/

Page 19: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Hands OnHands On

Page 20: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

UPnP Media Devices

Devices Controllers

MediaServer CPUPnP

UPnP Control Point

MediaServer CP

MediaRenderer CP

UPnP

MediaServer

UPnP

MediaRenderer

Page 21: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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”

Page 22: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

DLNA Stack

Page 23: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 24: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 25: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 26: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 27: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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)

Page 28: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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)

Page 29: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Hands OnHands On

Page 30: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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

Page 31: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Hands OnHands On

Page 32: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD

Media Aggregator and Distributor

Page 33: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – All Content

Page 34: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Personal DMS

Page 35: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Check movies on theater

Page 36: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Browse my DMS

Page 37: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Upload to Sapo Fotos

Page 38: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Share with Friends

Page 39: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

MAD – Sapo Fotos – Mais Vistas

Page 40: From Home Enabled Personal Media To Instant Personal Media Sharing

… through Innovation

Q&AQ&A

Page 41: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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/

Page 42: From Home Enabled Personal Media To Instant Personal Media Sharing

… 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.