From Home Enabled Personal Media To Instant Personal Media Sharing

Post on 01-Sep-2014

2,125 views 0 download

Tags:

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.