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,

Slides:



Advertisements
Similar presentations
Web Services & EAI.
Advertisements

WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Universal Plug and Play protocol (UPnP)
UPnP Technology 2009/03/31 Hsin-Han Yang, Cheng-Yi Chien, Po-Cheng Huang.
Certification Test Tool Jon Wheeler Test Lead Microsoft Corporation.
Web Service Architecture
TU/e Service Discovery Mechanisms: two case studies / IC2002 Service Discovery Mechanisms: Two case studies Control point Device UPnP Terminal Domain Host.
Yunling Wang VoIP Security COMS 4995 Nov 24, 2008 XCAP The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)
CSE 6331 © Leonidas Fegaras Web Services1 Web Services (adapted from Erdogan Dogdu's presentation) Leonidas Fegaras.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Presenter: James Huang Date: Sept. 29,  HTTP and WWW  Bottle Web Framework  Request Routing  Sending Static Files  Handling HTML  HTTP Errors.
Telecooperation Technische Universität Darmstadt Copyrighted material; for TUD student use only Telecooperation P4: Internet Praktikum Q&A Session Telecooperation.
Simple Object Access Protocol (SOAP) v1.1 CS-328 Dick Steflik.
SOAP : Simple Object Access Protocol
XML in the real world (2) SOAP. What is SOAP? ► SOAP stands for Simple Object Access Protocol ► SOAP is a communication protocol ► SOAP is for communication.
SOAP SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol * SOAP is a communication protocol * SOAP is for communication.
Topics Acronyms in Action SOAP 6 November 2008 CIS 340.
Information Management NTU Web Services. Information Management NTU What Are Web Services? Semantically encapsulate discrete functionality Loosely coupled,
4.01 How Web Pages Work.
SE 370: Programming Web Services Week 4: SOAP & NetBeans Copyright © Steven W. Johnson February 1, 2013.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Lecture 5 Middleware: Peer-to-Peer Computing
Windows OS support of UPnP Peter K. Jarvis UPnP Group Program Manager Microsoft Corporation.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
Universal Plug and Play (UPnP) Presented by: Kamal Kamal Kamal Kamal Mohammad Atieh Mohammad Atieh.
The Computer Communication Lab (236340) Spring 2005 Universal Plug and Play on Mobile Phone With Qualcomm - Device -
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
IT 210 The Internet & World Wide Web introduction.
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Networking Basics TCP/IP TRANSPORT and APPLICATION LAYER Version 3.0 Cisco Regional Networking Academy.
Universal Plug and Play Dirk Grunwald University of Colorado.
Device Servers Prasun Dewan Department of Computer Science University of North Carolina
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
Enabling Embedded Systems to access Internet Resources.
UPnP & DLNA Speaker: Yi-Lei Chang Advisor: Dr. Kai-Wei Ke 2012/03/27 1.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
Universal Plug and Play (UPnP) and XML Shridhar Bhat
IETF-50 UPnP Update Prakash Iyer Intel Corporation
Implementing Universal Plug And Play In Smart Objects And Intelligent Appliances Bengt Christensson CTO Axis Communications.
Doc.: IEEE /0961r0 Submission July 2012 Alex Ashley, NDS LtdSlide 1 Layer 2 Service Discovery Protocols Date: Authors:
Certification Test Tool Sarat Manni Test Lead Microsoft Corporation.
MediaServer:1 Device Template Version 1.01 Date: June 25, 2002 For UPnP™ Version 1.0 Status: Standardized DCP File from: MediaServer1.0.pdf Author: John.
MobileMAN Internal meetingHelsinki, June 8 th 2004 NETikos activity in MobileMAN project Veronica Vanni NETikos S.p.A.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
UPnP Introduction 教授 : 逄愛君 組員 : 資訊三 張弘霖 資訊四 陳錦翰 資訊四 蔡旻諧.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
UPnP AV Architecture - Generic Interface Design And Java Implementation Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering.
Basic Device Definition Version 1.0 Date: For UPnP™ Version 1.0 (Status: Template Design Complete) File from: BasicDevice-1.0.pdf Author: Scott.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
GENA (General Event Notification Architecture) RTLAB 이 남 지 2003/01/08.
Ch 2. Application Layer Myungchul Kim
Why oBIX? XML standard Enterprise friendly protocol High fidelity.
SOAP, Web Service, WSDL Week 14 Web site:
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
Preview of Universal Plug and Play RTLAB 배대호
Java Web Services Orca Knowledge Center – Web Service key concepts.
Jonathan Rosenberg dynamicsoft
UPnP Device Architecture
Sabri Kızanlık Ural Emekçi
WEB SERVICES.
Unit – 5 JAVA Web Services
WEB API.
Network Connected Devices
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Implementation and validation of UPnP in a home networking environment
Universal Plug and Play protocol (UPnP)
Presentation transcript:

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

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

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

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

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

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

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

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 /16 range Check to see if it is used (ARP) Periodically check for DHCP server

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

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

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

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

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

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: :1900 MAN: "ssdp:discover" MX: seconds to delay response ST: search target

1 Discovery: Responding Who? Device unicasts When? If ST matches an NT What? 1 time for each NT that matches Very simple matching HTTP/ OK CACHE-CONTROL: max-age = seconds until advertisement expires LOCATION: URL for UPnP description for root device ST: search target USN: advertisement UUID

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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/ OK SID: uuid:subscription-UUID TIMEOUT: Second-actual subscription duration

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

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

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

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: Questions?