Implementing Universal Plug Implementing Universal Plug And Play In Smart Objects And Play In Smart Objects And Intelligent AppliancesAnd Intelligent Appliances
Bengt Christensson Bengt Christensson CTOCTOAxis Communications Axis Communications
Session OverviewSession Overview
Technology trendsTechnology trends Challenges and requirementsChallenges and requirements Solutions to date and the Solutions to date and the
Universal Plug and Play WayUniversal Plug and Play Way ImplementationImplementation DemoDemo Call to actionCall to action
Technology TrendsTechnology Trends
Focus shifting from connectivity Focus shifting from connectivity to servicesto services More devices/services will be networkedMore devices/services will be networked Use your time efficientlyUse your time efficiently
Ubiquitous communicationsUbiquitous communications Anywhere, anything and intuitive, tooAnywhere, anything and intuitive, too Useful bandwidth availableUseful bandwidth available Home networkingHome networking
ServicesServices
Technologies converge, devices don’tTechnologies converge, devices don’t
Devices, PCs And Devices, PCs And Services InterconnectServices Interconnect
ChallengesChallenges
SimplicitySimplicity Robustness - “always on”Robustness - “always on” Scalability- ad hoc/configuredScalability- ad hoc/configured Interoperability, manageability, securityInteroperability, manageability, security Lightweight cost-effective technologyLightweight cost-effective technology Building networking applicationsBuilding networking applications Wide range of different devices Wide range of different devices
and services...and services...
Protocol RequirementsProtocol Requirements
““Automatic networking”Automatic networking” Address assignment, naming, discovery, Address assignment, naming, discovery,
and service identificationand service identification ScalabilityScalability
Work in serverless environments and Work in serverless environments and leverage directory services, if availableleverage directory services, if available
Dynamic ad hoc environmentsDynamic ad hoc environments FlexibilityFlexibility
Support device and service individualitySupport device and service individuality Open standards-basedOpen standards-based
Internet RFCs, public sourceInternet RFCs, public source
Solutions To DateSolutions To Date
Ad hoc (serverless, peer-to-peer)Ad hoc (serverless, peer-to-peer) Manual IP address assignment, ARPManual IP address assignment, ARP No intuitive namingNo intuitive naming SLP, SMB, Salutation, “flood-ping”SLP, SMB, Salutation, “flood-ping”
Configured (server-based)Configured (server-based) DHCP, BOOTP, RARPDHCP, BOOTP, RARP DNS, WINSDNS, WINS Directory (LDAP, NDS, SLP, Salutation)Directory (LDAP, NDS, SLP, Salutation)
The Universal Plug The Universal Plug And Play WayAnd Play Way Works in both ad hoc and Works in both ad hoc and
configured environmentsconfigured environments
Ad Hoc Configured
Address AutoNet DHCP
Naming Multicast DNS DNS
Discovery Simple Discovery Directory service
XML and XSL style sheets in the device XML and XSL style sheets in the device define service and interactiondefine service and interaction
NICNIC
TCP/IP stackTCP/IP stack
NDISNDIS
XMLXMLSimple ServiceSimple ServiceDiscoveryDiscovery
Universal Universal Plug and Plug and Play Play providerprovider
WINSOCKWINSOCK
LDAPLDAP
ApplicationsApplications
ADSIADSI
Client ComponentsClient Components
Physical mediaPhysical media
Device functionsDevice functions
HTTP (~20k)HTTP (~20k)SimpleSimpleDiscovery (~4k)Discovery (~4k)
XML, XSLXML, XSLschemaschema
TCP/IP stack (~40k) TCP/IP stack (~40k)
DHCPDHCPAutoNetAutoNet
Smart Object ComponentsSmart Object Components
1. DHCP broadcast1. DHCP broadcast
(Timeout)(Timeout)
2. Assign AutoNet address2. Assign AutoNet address
3. DNS name multicast3. DNS name multicast
4. Announce service4. Announce service
(Timeout - wait for requests)(Timeout - wait for requests)
5. Discover service5. Discover service
7. Response to discover7. Response to discover
8. GetXMLschema8. GetXMLschema
9. XML schema9. XML schema
Universal Plug And Play In Action - Universal Plug And Play In Action - Ad HocAd Hoc
1. DHCP broadcast1. DHCP broadcast
2. Address from DHCP server2. Address from DHCP server
3. Name unicast to DNS server3. Name unicast to DNS server
4. Announce service to listener4. Announce service to listener
6. Directory updated by listener6. Directory updated by listener
5. Listener Get_HTTP XML5. Listener Get_HTTP XML
8. LDAP query directory8. LDAP query directory
7. Device-specific negotiation7. Device-specific negotiation
Server
Server
Universal Plug And Play In Action - Universal Plug And Play In Action - ConfiguredConfigured
Packet Examples Packet Examples AnnounceAnnounce
HTTP packet data exampleHTTP packet data exampleANNOUNCE * HTTP/1.1ANNOUNCE * HTTP/1.1
HOST: *HOST: *
Location: http://170.1.128.135/Location: http://170.1.128.135/description.xmldescription.xml
Object-Class: printerObject-Class: printer
Multicast UDP packetMulticast UDP packet
Packet ExamplesPacket ExamplesDiscover and responseDiscover and response
DiscoverDiscoverDISCOVER (objectClass=printer)DISCOVER (objectClass=printer)
HTTP/1.1HTTP/1.1
HOST: 172.*.*.*HOST: 172.*.*.*
Request-ID: 54Request-ID: 54
Response to discoverResponse to discoverHTTP/1.1 302 FoundHTTP/1.1 302 Found
Request-ID: 54Request-ID: 54
Location: http://172.1.128.135/description.xmlLocation: http://172.1.128.135/description.xml
Object-Class: printerObject-Class: printer
Axis Camera ExampleAxis Camera Example
ImplementationImplementation Network-attached Network-attached
surveillance camerasurveillance camera Self-contained with TCP/IP Self-contained with TCP/IP
and HTTP supportand HTTP support UPnP with XML/XSL UPnP with XML/XSL
descriptiondescription Approx. 40 k bytes for Approx. 40 k bytes for
UPnP neededUPnP needed
XML Schema XML Schema Axis CameraAxis Camera
Key elementsKey elements Name spaces definitionsName spaces definitions Device description and functionalityDevice description and functionality Support and purchasing informationSupport and purchasing information References to XSL style sheets for UIReferences to XSL style sheets for UI
Refer to white paper for sample code, Refer to white paper for sample code, XML schema and XSL style sheets XML schema and XSL style sheets http://www.axis.com/products/documentation/ http://www.axis.com/products/documentation/ UpnP.docUpnP.doc
‘‘Device Browser’ ExampleDevice Browser’ Example
1 Client runs Device Browser application, Client runs Device Browser application, based on Internet Explorer 5.0based on Internet Explorer 5.0
2 Discover deviceDiscover device3 Fetch description.xml from deviceFetch description.xml from device4 Parse XML data to extract informationParse XML data to extract information5 Present device in viewPresent device in view6 User selects deviceUser selects device7 Present UI links referred by description.xmlPresent UI links referred by description.xml8 User selects UIUser selects UI9 Fetch and view the UI (style sheet)Fetch and view the UI (style sheet)
Live DemoLive Demo
Showing UPnPShowing UPnP Device discovery - ‘Device Browser’Device discovery - ‘Device Browser’ Device interaction - XSL Style SheetsDevice interaction - XSL Style Sheets
Camera Printer CD tower
PC
Ethernet
DocumentationDocumentation
Simple Service Discovery ProtocolSimple Service Discovery Protocol httphttp
://search.ietf.org/internet-drafts/draft-cai-://search.ietf.org/internet-drafts/draft-cai-ssdp-v1-00.txtssdp-v1-00.txt
Automatic Private IP AddressingAutomatic Private IP Addressing httphttp://://wwwwww..ietfietf..orgorg//internetinternet-drafts/draft--drafts/draft-
ietfietf--dhcdhc-ipv4--ipv4-autoconfigautoconfig-03.-03.txttxt
Multicast DNS (name resolution)Multicast DNS (name resolution) httphttp://://search.search.ietfietf
.org/internet-drafts/draft-manning-multic.org/internet-drafts/draft-manning-multicast-dns-01.txtast-dns-01.txt
DocumentationDocumentation
White paperWhite paper httphttp://://wwwwww
.axis.com/products/documentation/.axis.com/products/documentation/UpnPUpnP
.doc.doc
Home Networking & Universal Plug Home Networking & Universal Plug and Play web sitesand Play web sites http://www.microsoft.com/homenethttp://www.microsoft.com/homenet http://www.upnp.orghttp://www.upnp.org
Call to ActionCall to Action
UPnP is work in progress!UPnP is work in progress! Review your business opportunities Review your business opportunities
with respect to UPnPwith respect to UPnP Get to understand the principles and Get to understand the principles and
general requirementsgeneral requirements Study released documentationStudy released documentation Keep an eye on Keep an eye on www.upnp.orgwww.upnp.org More great news to come!More great news to come!