Device Servers - PowerPoint PPT Presentation

About This Presentation
Title:

Device Servers

Description:

It runs script that checks schedule and sets thermostat. 13. Arriving/leaving home. Today ... Need a way for SSDP to deactivate before network storms created ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 101
Provided by: Prasun2
Learn more at: http://www.cs.unc.edu
Category:

less

Transcript and Presenter's Notes

Title: Device Servers


1
Device Servers
Prasun Dewan
Department of Computer Science University of
North Carolina dewan_at_unc.edu
2
Issues in Device Servers
  • Device is just a server.
  • So what is different?

Network
3
Addressing Devices vs. Traditional Servers
  • Sever and network is always around - static
    address
  • Centralized heavyweight scheme acceptable to give
    install and give unique addresses to servers
  • Client expected to know traditional server
    address
  • imap.cs.unc.edu
  • Discovery phase possible
  • www.cnn.com
  • logical name to physical name can be bound
    dynamically
  • Devices may be dynamically added on ad-hoc
    networks - dynamic address
  • With so many dynamic devices and ad-hoc networks
    lightweight decentralized scheme needed
  • Client may not know or care about device server
    address
  • print to the nearest printer
  • turn off all light bulbs
  • Implies later binding and thus a discovery phase

4
Communicating with Device vs. Traditional Servers
  • Client expected to know exact server interface
  • get mail
  • send mail
  • Client may not know exact server interface
  • palm computer controlling a VCR it knows nothing
    about
  • security system composer substituting Axis camera
    with Aibot Robot, which may not share an
    interface
  • impromptu interoperability
  • implies an interface (capability) discovery phase

5
Communicating with Device vs. Traditional Servers
  • Client polls for traditional server changes
  • New mail arrived?
  • Cannot track fast changing information
  • Client may wish to notified of device changes
  • current channel changed, so redisplay it
  • Implies an eventing mechanism that is
  • distributed
  • can be dynamically discovered

6
Deploying Remote User Interfaces
  • Run preloaded client user-interface program
  • xmh
  • netscape
  • Because of late binding, client UI program may
    not exist
  • Implies dynamic user-interface deployment

7
Composing Devices
  • Traditional servers not composed into a single
    unit
  • Not the same as replicas
  • Composite device may be composed out of multiple
    devices
  • security system
  • CD
  • How to support composite and individual device
    services.

8
UPnP (Universal Plug and Play)
  • Formed in 1999 with 200 vendors
  • Consumer electronics,Home security, Networking,
    Mobile devices
  • Late binding
  • Dynamic Server discovery
  • Dynamic Interface discover
  • Dynamic Event discovery
  • Dynamic UI Deployment
  • Static Service Composition
  • Language- and OS- Neutral Solution
  • Avoid trojan horses
  • Ship data rather than code
  • Open
  • Use existing standards

9
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

10
UPNP Examples Installing a printer
  • Today
  • Attach it to server PC
  • Load device driver
  • Share printer
  • Manually bind each client to printer
  • Vision
  • Just connect printer to network

11
Installing a device store
  • Today
  • Attach a new disk drive to computer
  • Vision
  • Just connect drive to network

12
Intelligent Alarm clock
  • Today
  • Set alarm clock
  • May vary depending on weekday or weekend
  • Set thermostat
  • Hope meeting not missed
  • Vision
  • Alarm clock tells PC
  • It runs script that checks schedule and sets
    thermostat

13
Arriving/leaving home
  • Today
  • Turn on entrance light
  • Change thermostat
  • Play answering machine messages
  • Turn on TV
  • Set channel to CNN
  • Raise/lower blinds depending on before/after
    sunset
  • Turn on other lights
  • Reverse steps when turning off light
  • Vision
  • Light switch communicates with PC, which runs
    script and its inverse

14
Arriving/leaving town
  • Today
  • Manually change thermostat
  • Change water heater
  • Close/open water valve
  • Hold mail
  • Set vacation message(s)
  • Inform neighbour(s)
  • Throw trash
  • Vision
  • Push button saying on vacation
  • Could do it remotely
  • Must still throw trash

15
Power outage
  • Today
  • Manually set all clocks
  • Vision
  • They automatically synchronize with an a
    networked atomic clock
  • Script runs periodically or when power comes on

16
Home theater
  • Script to
  • Turn on DVD
  • Turn on TV
  • Set it to DVD channel
  • Set stereo to Video mode
  • Set stereo volume to theater levels
  • Dim lights

17
Ball game
  • Mobile device used to
  • pick up traffic info on road
  • receive commentary at stadium
  • track player statistics
  • order food
  • chat with buddies at game

18
Other apps
  • Appliance remotely fixed or set
  • Calendars of family members synchronized
  • Product barcode scanned to order new instance
  • Presentation displayed on discovered display
    devices

19
UPnP Device Architecture
20
Architecture/Terminology
  • Components
  • Control points
  • Controller, usually client
  • Device
  • Controlled,usually server
  • An actual devicemight containboth functions

21
Architecture
22
Example Configuration
23
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

24
UPnP Protocol Stack
  • Vendor-specific API aboveVendor-specific
    OS below

Wire protocols
Multiple http servers
25
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
26
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

Could use DNS and include DNS Client
27
Overview -ad hoc
28
Overview - configured
29
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
30
1 Discovery Pull (Active) vs. Push (Passive)
  • Client (Control point) could pull info
  • Servers could be dynamically added
  • Needs to poll for new devices
  • Server (Device) could push advertisement
  • Control points can be dynamically added
  • Needs to continuously send info, using network

Server
Client
Server
Client
31
1 Discovery Pull (Active) vs. Push (Passive)
  • SSDP Solution
  • Hybrid approach
  • Advertisement has lifetime
  • Can simulate pure push model
  • HTTP over UDP
  • What if message gets lost?
  • Must send UDP message 3 times
  • Solution over TCP planned

Server
32
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

33
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

34
1 Discovery Protocol Stack
35
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
  • 1 time with NT upnprootdevice

NOTIFY HTTP/1.1HOST 239.255.255.2501900
CACHE-CONTROL max-age seconds until
advertisement expiresLOCATION URL for UPnP
description for root device
NT search targetNTS ssdpaliveUSN
advertisement UUID
36
GENA
  • Notification method format defined by GENA
  • An event delivery scheme over HTTP
  • Allows subscription
  • May be used later
  • Will allow it to be not depend on the largely
    non-existent Internet multicast infrastructure

37
Multicast Scope
  • Entire internet
  • Idea to find local service
  • Link local
  • Does not support bridged/routed LANS
  • Local administrative scope
  • Relative address
  • 239.255.255.250
  • Relative address vs local scope
  • Relative address allows progressively larger
    scopes
  • Based on physical location?

38
Location vs. USN
  • Location needed to send messages
  • USN a unique, location-independent ID
  • UUID is a USN example
  • Decentralized assignment
  • Allows services to move
  • Change IP address
  • Change DNS name

39
Byebye message
  • Sent before device ceases to operate
  • NTS ssdpbyebye
  • NT service type

40
1 Discovery Searching
  • Who? Control point multicasts
  • When? Looking for device or service
  • What?
  • ST one of
  • Service type
  • Device type
  • Device UUID
  • upnprootdevice
  • ssdpall

M-SEARCH HTTP/1.1HOST 239.255.255.2501900
MAN "ssdpdiscover"MX seconds to delay response
ST search target
41
Broadcast message
  • Can send message to all devices
  • ssdp all
  • Network analysis tool
  • Remote control unit

42
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 OKCACHE-CONTROL max-age seconds
until advertisement expires
LOCATION URL for UPnP description for root
deviceST search targetUSN advertisement UUID
43
Network traffic
  • SSDP traffic on recovery after power outage.
  • Control points will all send discover messages.
  • to find printer
  • In large companies multicast admin domain will be
    large
  • Can be entire company
  • Need a way for SSDP to deactivate before network
    storms created
  • Even with directory services, low-level SSDP may
    activate

44
Bandwidth requirements
  • TP some time period
  • DR of clients sending discovery messages in
    TP
  • RS of devices responding to each discover
    message
  • AM average message size
  • Bandwidth (DR 3 DR9RS)AM/TP

45
E.g. Network traffic
  • 100, 000 hosts
  • 5,000 printers
  • Requests evenly distributed over 30 second period
  • Message size 512 bytes
  • Bandwidth 585976 Megabits per second

46
E.g. Network traffic
  • 1000 hosts
  • 50 printers
  • Requests evenly distributed over 30 second period
  • Message size 512 bytes
  • Bandwidth 59 Megabits per second

47
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
48
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

49
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

50
XML
  • Like HTML
  • Describes a tree
  • Unlike HTML
  • Describes contents rather than UI
  • Style sheets describe UI
  • Tags are user-defined
  • Via Schema Language (DDT)
  • Supported by Web browsers

51
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

52
2 Description Device (phys)
p-orgdevice-1-0"   base URL for all
relative URLs     
short user-friendly
title    manufacture
r name    URL to
manufacturer site   
long user-friendly
title    model
name    model
number    URL to model
site    manufacturer's
serial number   
uuidUUID    Universal Product
Code    urnschemas-upnp-orgde
vicedeviceType   
             
urnschemas-upnp-orgserviceserviceT
ypev        urnupnp-or
gserviceIdserviceID       
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 presentationnURL       
1 0 

53
2 Description Device (logical)
p-orgdevice-1-0"  base URL for all
relative URLs     
short user-friendly
title    manufacture
r name    URL to
manufacturer site   
long user-friendly
title    model
name    model
number    URL to model
site    manufacturer's
serial number   
uuidUUID    Universal Product
Code    urnschemas-upnp-orgde
vicedeviceType v   
             
urnschemas-upnp-orgserviceserviceT
ypev        urnupnp-or
gserviceIdserviceID       
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 presentationnURL       
1 0 

54
2 Description Device (other)
p-orgdevice-1-0"   base URL for all
relative URLs     
short user-friendly
title    manufacture
r name    URL to
manufacturer site   
long user-friendly
title    model
name    model
number    URL to model
site    manufacturer's
serial number   
uuidUUID    Universal Product
Code   urnschemas-upnp-orgdev
icedeviceType   
             
urnschemas-upnp-orgserviceserviceT
ypev        urnupnp-or
gserviceIdserviceID       
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 presentationnURL       
1 0 

55
2 Description Service (actns)
p-orgservice-1-0"     
      actionName     
                 
formalParameterName         
in xor out         
          stateVa
riableName       
       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         
    sendEventsyes xor no     
variableName     
variable data type     
default value     
        some
value        some
value         
    Declarations for other
state variables (if any) go here 
     
1 0 

56
2 Description Service (vars)
p-orgservice-1-0"     
      actionName     
                 
formalParameterName         
in xor out         
          stateVa
riableName       
       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         
    sendEventsyes xor no     
variableName     
variable data type     
default value     
        some
value        some
value         
    Declarations for other
state variables (if any) go here 
     
1 0 

57
2 Description Service (vars)
p-orgservice-1-0"     
      actionName     
                 
formalParameterName         
in xor out         
          stateVa
riableName       
       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         
    sendEventsyes xor no     
variableName     
variable data type     
default value     
        some
value        some
value         
    Declarations for other
state variables (if any) go here 
     
1 0 

58
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
59
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

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

61
3 Control Invoke Action
  • Who? Control point
  • When? To invoke action on device
  • What?

POST path of control URL HTTP/1.1HOST host of
control URLport of control URLCONTENT-TYPE
text/xml charset"utf-8"SOAPACTION
"urnschemas-upnp-orgserviceserviceTypevaction
Name"
ap/envelope/"    sencodingStyle"http//schemas.
xmlsoap.org/soap/encoding/"   

    rviceserviceTypev"      in arg
value      other in args and
their values (if any) go here   
62
3 Control Action Result
  • Who? Device
  • When? Action completes
  • What?

HTTP/1.1 200 OKCONTENT-TYPE text/xml
charset"utf-8" as.xmlsoap.org/soap/envelope/"   
sencodingStyle"http//schemas.xmlsoap.org/soap/e
ncoding/"    e
    xmlnsu"urnschemas-upnp-orgserviceserviceType
v"      out arg
value      other out args and
their values (if any) go here   

63
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
64
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

65
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

66
4 Eventing Subscribing
  • Who? Control point
  • When? Before receiving any events
  • What?

SUBSCRIBE publisher path HTTP/1.1HOST publisher
hostpublisher port
CALLBACK NT upnpeventTIMEOUT
Second-requested subscription duration
67
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 OKSID uuidsubscription-UUID
TIMEOUT Second-actual subscription duration
68
4 Eventing Notify
  • Who? Device
  • When? A state variable changes
  • What?

NOTIFY delivery path HTTP/1.1HOST delivery
hostdelivery portCONTENT-TYPE
text/xml
NT upnpeventNTS upnppropchange
SID uuidsubscription-UUIDSEQ event key
-1-0"      new
value    Other
variable names and values (if any) go
here
69
Steps to UPnP Networking
5 Presentation
4 Eventing
3 Control
  • 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

2 Description
1 Discovery
0 Addressing
70
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

71
Example Device (Intel Implementation)
  • TV Composite
  • Control Service
  • Volume
  • Power
  • .
  • Picture Service
  • Color
  • Tint
  • Contrast
  • .

72
Example Composition
xmlns"urnschemas-upnp-orgdevice-1-0"
1
0
http//192.168.0.45431
73
Example Composition
urnschemas-upnp-
orgdevicetvdevice1
UPnP Television Emulatorme TV Manufacturer
Name http/
/www.manufacturer.com
UPnP Television Device Emulator
1.0 TVEmulato
r 1.0 http//www.manufacturer.com/TV
Emulator/ 12345678
9001 uuidUpnp-TVEmulat
or-1_0-1234567890001
123456789
74
Example Service Composition

urnschemas-upnp-orgservicetvcontro
l1 urnupnp-org
serviceIdtvcontrol1
/upnp/control/tvcontrol1
/upnp/event/tvcontrol1ntSubURL /tvcontrolSCPD.xmlCPDURL
urnschemas-upnp-orgservicetvpictur
e1 urnupnp-or
gserviceIdtvpicture1
/upnp/control/tvpicture1
/upnp/event/tvpicture1tSubURL /tvpictureSCPD.xmlDURL
75
Example Service
pnp-orgservice-1-0"
1 0

76
Example Action List

PowerOn
SetChannel

Channel Channel
in


.
77
Example Variables
sendEvents"yes"
Power
Boolean
0
sendEvents"yes"
Channel
i4

1
100
1

1
..
78
Example Presentation
Described using HTML
79
Example Server Code
Object processMessages (Message message) switch
(message.kind) case GET_VAR_REQUEST switch
((GetVarMessage) message).varName) case
Channel message.result getChannel()
case ACTION_REQUEST actionMessage
(ActionMessage) message. switch
(actionMessage.actionName) case setChannel
setChannel(parseString(actionMessage.params0))
int channel int getChannel () return
curentChannel void setChannel (int newChannel)
channel newChannel
UPnP.announce(Channel, toString(getChannel())
...
80
Another Example Composite greater than sum of
parts
  • TV Composite
  • Simply combines services
  • CD Composite
  • Adds services
  • Record with fields vs Object with instance
    variables

81
CD Example
  • When disc insertion event received play CD
  • Play random (CD)

82
Elaborate Scenario
  • New DVD player connected to network
  • Assigns itself an IP address after looking for
    DHCP several times or Auto-IP
  • Sends advertisement, possibly multiple times
    because UDP
  • Father brings laptop home
  • Assigns address and sends advertisement
  • Video remote control started
  • Searches for and displays Video devices

83
Elaborate Scenario
  • DVD selected by father
  • Controller retrieves description/presentation URL
  • User can choose between using URL or controller
    UI
  • Run invoked on DVD
  • Run time of current disc can be queried
  • Clock flashing
  • Retrieves clock synchronizer from disk server
  • Clock synchronizer finds clocks and syncs them

84
Elaborate Scenario
  • Father prints file
  • Printer out ink message appears on fathers and
    sons computers
  • Son fixes it. Needs printer in room to print HW
  • Disconnects printer
  • Bye bye message sent and seen by father
  • Moves printer to room
  • IP assignment and advertisement
  • Mother presses button for mood control
  • Lights get dimmed, shades down, soft music
    starts, laptop shuts down

85
Issues raised by UPnP
  • 0 Control point and device get addresses (Auto
    IP)
  • 1 Control point finds interesting device
    (push/pull multicast, type)
  • 2 Control point learns about device capabilities
    (XML)
  • 3 Control point invokes actions on device (SOAP)
  • 4 Control point listens to state changes of
    device (GENA)
  • 5 Control point controls device and/or views
    device status using HTML UI

86
Issues raised by UPnP
  • Scaling problem of multicast-based discovery
  • Auto Shut off problem
  • Simple-minded search
  • Lack of access and concurrency control
  • Static, manual, procedural service composition
  • Device-independent UI
  • No programmer-defined types
  • High programming and maintenance costs

87
Auto-Shutoff
  • Auto Shut off problem
  • Network storm when devices reboot in sync
  • Combine address discovery and routing

88
Simple-minded Search Facilities
  • Choices
  • All
  • Service type
  • Device Type
  • Specific
  • Complex queries
  • Attributes?

89
Lack of Control
  • Ignores access control.
  • prevents accidents
  • turning on neighbors TV
  • prevents intentional sabotage
  • opening garage door to steal
  • Classic AC applicable?
  • Ignores concurrency control.
  • Two remote users concurrently setting thermostat
  • Two users editing VCR settings offline
  • Classic CC applicable?
  • Mobile CC applicable?

90
Static, Manual, Procedural Composition
  • Dynamic collections
  • e.g. All lamps in a room
  • All services explicitly statically enumerated in
    UPnP
  • Must create a new description when new service
    added to collection
  • new lamp to room
  • Declarative/automatic composition
  • issue when composite greater than sum of parts
  • low-level procedural code to add functionality in
    UPnP
  • play CD when disc inserted
  • set printer output to camera
  • distribute multi-media presentation to audio and
    video devices

91
Device-Independent UI
  • Fixed UI for all devices
  • may wish one specific to interactive computer
    used
  • palm computers and laptops have different form
    factors and I/O capabilities
  • may wish to show each variable in separate
    screen.
  • the kind of interactive computer may not be known
    when service defined

92
No Programmer-Defined Types
  • XML 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

93
No Programmer-Defined Types
  • Only supports predefined types
  • state variables
  • action parameters
  • No way to model dynamic composites

94
High Programming Cost
  • Device developer must
  • define the XML-based external representation of
    the device
  • translate the client operation-invocation and
    variable-access requests to local
    operation-invocations
  • announce variable change notifications
  • Exporting functionality requires more code than
    implementing it in example Intel device
  • not counting UI code
  • Cost proportional to complexity of type.
  • Reason for not allowing complex types?

95
High Maintenance Cost
  • Information repeated multiple times
  • operation implementation code
  • action list
  • state variable table
  • message processing code
  • event announcement code
  • All repetitions must be changed
  • tedious
  • error-prone
  • Channel - Current Channel requires 9 changes!

96
Changed Action List

PowerOn
SetCurrentChannel

CurrentChannel
eCurrentChannel
in


.
97
Changed State Variable Table
sendEvents"yes"
Power
Boolean
0
sendEvents"yes"
CurrentChannel
i4

1
100
1

1
..
98
Changed Server Code
Object processMessages (Message message) switch
(message.kind) case GET_VAR_REQUEST switch
((GetVarMessage) message).varName) case
CurrentChannel message.result
getCurrentChannel() case ACTION_REQUEST
actionMessage (ActionMessage) message.
switch (actionMessage.actionName) case
setCurrentChannel setCurrentChannel(parseString
(actionMessage.params0)) int
channel int getCurrentChannel () return
channel void setCurrentChannel (int newChannel)
channel newChannel
UPnP.announce(CurrentChannel,
toString(getCurrentChannel()) ...
99
Ideal Developer Effort
int getChannel () return channel void
setChannel (int newChannel) channel
newChannel ...
100
Issues raised by UPnP
  • Scaling problem of multicast-based discovery
  • Auto Shut off problem
  • Simple-minded search
  • Lack of access and concurrency control
  • Static, manual, procedural service composition
  • Device-independent UI
  • No programmer-defined types
  • High programming and maintenance costs
Write a Comment
User Comments (0)
About PowerShow.com