Presentation is loading. Please wait.

Presentation is loading. Please wait.

UPnP Device Architecture. Networking is easy, except… Ad hoc networks don't have resources just for the sake of the network E.g., DHCP, DNS, directory,

Similar presentations


Presentation on theme: "UPnP Device Architecture. Networking is easy, except… Ad hoc networks don't have resources just for the sake of the network E.g., DHCP, DNS, directory,"— Presentation transcript:

1 UPnP Device Architecture

2 Networking is easy, except… Ad hoc networks don't have resources just for the sake of the network E.g., DHCP, DNS, directory, … Network is unreliable Nodes added / removed unpredictably Programs need to talk to programs But software is heterogeneous One size doesn't fit all Must upgrade system piece at a time

3 UPnP Strategy 1. Just send data over the network (No executables) Minimize version issues Minimize security issues 2. Keep implementation private Be agnostic re: programming language, OS Update implementation w/o affecting interop Improve performance Reduce footprint Improve capabilities 3. Agree on meaning / format of data Choose substrate of proven protocols Define device (service) specific protocols in a Forum

4 UPnP Tactics Start simple Build in only universal things that everybody needs (and can live with) Add as needed Minimize requirements Basic IP network connectivity Common HTTP protocol stack Leverage existing standards HTTP, XML

5 Goals Describe the protocols for communication between Control points Controller, usually client Device Controlled, usually server An actual device might contain both functionsDeviceDeviceServiceService Control Point DeviceDevice ServiceService

6 Steps to UPnP Networking 0 Control point and device get addresses 1 Control point finds interesting device 2 Control point learns about device capabilities 3 Control point invokes actions on device 4 Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0 Addressing 1 Discovery 2 Description 5 Presentation 4 Eventing 3 Control

7 Vendor-specific API above Vendor-specific OS below UPnP Protocol Stack Vendor-specific physical net UPnP Device Architecture UDPUDP IPIP HTTPU/MUHTTPU/MU GENAGENASSDPSSDP SOAPSOAP HTTPHTTP HTTPHTTP GENAGENA TCPTCP UPnP Forum UPnP vendor

8 Steps to UPnP Networking 0* Control point and device get addresses 1 Control point finds interesting device 2 Control point learns about device capabilities 3 Control point invokes actions on device 4 Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0* Addressing 1 Discovery 2 Description 5 Presentation 4 Eventing 3 Control

9 0 Addressing Control point and device get address Use a DHCP server Else use Auto IP What is Auto IP? IETF Draft Automatically Choosing an IP Address in an Ad-Hoc IPv4 Network What steps does it take? Pick an address in 169.254/16 range Check to see if it is used (ARP) Periodically check for DHCP server

10 Steps to UPnP Networking 0 Control point and device get addresses 1* Control point finds interesting device 2 Control point learns about device capabilities 3 Control point invokes actions on device 4 Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0 Addressing 1* Discovery 2 Description 5 Presentation 4 Eventing 3 Control

11 1 Discovery Control point finds interesting device 0 get address 1 discover device Advertise / find typed devices (services) Guarantee of minimal capabilities Simple Devices Advertise when added Refresh advertisements (cf. lease) Cancel advertisements when removed Control points search as needed Devices respond Control points filter

12 1 Discovery: Protocol Stack UPnP vendor UPnP Forum UPnP Device Architecture UDPUDP IPIP HTTPMU (multicast) GENAGENASSDPSSDP HTTPU (unicast) SSDPSSDP

13 1 Discovery: SSDP Sidebar What is SSDP? IETF Draft Simple Service Discovery Protocol Key design principles Administratively-scoped multicast Unicast responses UDP Very simple advertisements Very simple search

14 1 Discovery: Advertising Who? Device multicasts When? Added or refresh (cf. lease) What? 1 time / service type with NT == service type 1 time / device type with NT == device type 1 time / device with NT == device UUID upnp:rootdevice 1 time with NT == upnp:rootdevice 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

15 1 Discovery: Searching Who? Control point multicasts When? Looking for device or service What? ST one of Service type Device type Device UUID upnp:rootdevice upnp:rootdevice ssdp:all ssdp:all M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: seconds to delay response ST: search target

16 1 Discovery: Responding Who? Device unicasts When? If ST matches an NT What? 1 time for each NT that matches Very simple matching 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

17 Steps to UPnP Networking 0 Control point and device get addresses 1 Control point finds interesting device 2* Control point learns about device capabilities 3 Control point invokes actions on device 4 Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0 Addressing 1 Discovery 2* Description 5 Presentation 4 Eventing 3 Control

18 2 Description Control point learns about device capabilities 0 get address 1 discover device get URL for description 2 retrieve descr get URL for service description Declare capabilities Protocol stack UPnP vendor UPnP Forum UPnP Device Architecture IPIP HTTPHTTP TCPTCP

19 2 Description Device description Type Physical container Logical container For each service Type URL for description URL for control URL for eventing UI Icons URL for presentation Services Functional units within devices Service description Actions State variables Actual (vs. designed) implementation Expressed in XML

20 2 Description: XML Sidebar What is XML? W3C Recommendation Extensible Markup Language "Universal format for structured documents and data on the Web." Field names in Field values between names Defines 24 data types ui1, ui2, ui4, i1, i2, i4, int r4, r8, number, fixed.14.4, float char, string date, dateTime, dateTime.tz, time, time.tz boolean bin.base64, bin.hex uri uuid

21 2 Description: Device (phys) base URL for all relative URLs short user-friendly title manufacturer name URL to manufacturer site long user-friendly title model name model number URL to model site manufacturer's serial number uuid:UUID Universal Product Code urn:schemas-upnp-org:device:deviceType urn:schemas-upnp-org:service:serviceType:v urn:upnp-org:serviceId:serviceID URL to service description URL for control URL for eventing Declarations for other services (if any) go here Description of embedded devices (if any) go here image/format horizontal pixels vertical pixels color depth URL to icon XML to declare other icons, if any, go here URL for presentation 1 0

22 2 Description: Device (logical) base URL for all relative URLs short user-friendly title manufacturer name URL to manufacturer site long user-friendly title model name model number URL to model site manufacturer's serial number uuid:UUID Universal Product Code urn:schemas-upnp-org:device:deviceType :v urn:schemas-upnp-org:service:serviceType:v urn:upnp-org:serviceId:serviceID URL to service description URL for control URL for eventing Declarations for other services (if any) go here Description of embedded devices (if any) go here image/format horizontal pixels vertical pixels color depth URL to icon XML to declare other icons, if any, go here URL for presentation 1 0

23 2 Description: Device (other) base URL for all relative URLs short user-friendly title manufacturer name URL to manufacturer site long user-friendly title model name model number URL to model site manufacturer's serial number uuid:UUID Universal Product Code urn:schemas-upnp-org:device:deviceType urn:schemas-upnp-org:service:serviceType:v urn:upnp-org:serviceId:serviceID URL to service description URL for control URL for eventing Declarations for other services (if any) go here Description of embedded devices (if any) go here image/format horizontal pixels vertical pixels color depth URL to icon XML to declare other icons, if any, go here URL for presentation 1 0

24 2 Description: Service (actns) actionName formalParameterName in xor out stateVariableName Declarations for other arguments (if any) go here Declarations for other actions (if any) go here variableName variable datatype default value minimum value maximum value increment value variableName variable data type default value some value some value Declarations for other state variables (if any) go here 1 0

25 2 Description: Service (vars) actionName formalParameterName in xor out stateVariableName Declarations for other arguments (if any) go here Declarations for other actions (if any) go here variableName variable datatype default value minimum value maximum value increment value variableName variable data type default value some value some value Declarations for other state variables (if any) go here 1 0

26 2 Description: Service (vars) actionName formalParameterName in xor out stateVariableName Declarations for other arguments (if any) go here Declarations for other actions (if any) go here variableName variable datatype default value minimum value maximum value increment value variableName variable data type default value some value some value Declarations for other state variables (if any) go here 1 0

27 Steps to UPnP Networking 0 Control point and device get addresses 1 Control point finds interesting device 2 Control point learns about device capabilities 3* Control point invokes actions on device 4 Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0 Addressing 1 Discovery 2 Description 5 Presentation 4 Eventing 3* Control

28 3 Control Control point invokes actions on device 0 get address 1 discover device 2 retrieve descr get URL for control 3 send actions to device Protocol stack UPnP vendor UPnP Forum UPnP Device Architecture IPIP SOAPSOAP HTTPHTTP TCPTCP

29 3 Control: SOAP Sidebar What is SOAP? IETF Draft Simple Object Access Protocol "Lightweight, XML-based protocol for exchange of information in a decentralized, distributed environment." Envelope: defines a framework for describing what is in a message and how to process it. Convention: represent remote procedure calls and responses.

30 3 Control: Invoke Action Who? Control point When? To invoke action on device What? POST path of control URL HTTP/1.1 HOST: host of control URL:port of control URL CONTENT-TYPE: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:serviceType:v#actionName" in arg value other in args and their values (if any) go here

31 3 Control: Action Result Who? Device When? Action completes What? HTTP/1.1 200 OK CONTENT-TYPE: text/xml; charset="utf-8" HTTP/1.1 200 OK CONTENT-TYPE: text/xml; charset="utf-8" out arg value other out args and their values (if any) go here

32 Steps to UPnP Networking 0 Control point and device get addresses 1 Control point finds interesting device 2 Control point learns about device capabilities 3 Control point invokes actions on device 4* Control point listens to state changes of device 5 Control point controls device and/or views device status using HTML UI 0 Addressing 1 Discovery 2 Description 5 Presentation 4* Eventing 3 Control

33 4 Eventing Control point listens to state changes of device 0 get address 1 discover device 2 retrieve descr get URL for eventing 4 subscribe to events from device Basic push model Simple Protocol stack UPnP vendor UPnP Forum UPnP Device Architecture IPIP HTTPHTTP GENAGENA TCPTCP

34 4 Eventing: GENA Sidebar What is GENA? IETF Draft General Event Notification Architecture "Send and receive notifications using HTTP over TCP/IP and administratively- scoped multicast UDP." SUBSCRIBE to notifications UNSUBSCRIBE NOTIFY Of device availability Of state variable changes

35 4 Eventing: Subscribing Who? Control point When? Before receiving any events What? SUBSCRIBE publisher path HTTP/1.1 HOST: publisher host:publisher port CALLBACK: NT: upnp:event TIMEOUT: Second-requested subscription duration

36 4 Eventing: Subscription Who? Device When? Accepts subscription What? Device immediately sends a special, initial event to control point with the value of all evented variables HTTP/1.1 200 OK SID: uuid:subscription-UUID TIMEOUT: Second-actual subscription duration

37 4 Eventing: Notify Who? Device When? A state variable changes What? 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 new value Other variable names and values (if any) go here

38 Steps to UPnP Networking 0 Control point and device get addresses 1 Control point finds interesting device 2 Control point learns about device capabilities 3 Control point invokes actions on device 4 Control point listens to state changes of device 5* Control point controls device and/or views device status using HTML UI 0 Addressing 1 Discovery 2 Description 5* Presentation 4 Eventing 3 Control

39 5 Presentation Control point controls device and/or views device status using HTML UI 0 get address 1 discover device 2 retrieve descr get URL for presentation 5 load presentation page (Don't constrain implementation) Protocol stack UPnP vendor UPnP Device Architecture IPIP HTTPHTTP TCPTCP

40 Summary UPnP says 1. Just send data 2. Keep implementation private 3. Agree on content / format of data UPnP is Web-based protocols Tailored by a Forum for device (service) types That are API, OS, physical network neutral For discovery, description, control, eventing (And simple HTML UI too) For more information Resources: http://www.upnp.orghttp://www.upnp.org Questions? mailto:UPNPWORLD@FORUM.UPNP.ORGmailto:UPNPWORLD@FORUM.UPNP.ORG


Download ppt "UPnP Device Architecture. Networking is easy, except… Ad hoc networks don't have resources just for the sake of the network E.g., DHCP, DNS, directory,"

Similar presentations


Ads by Google