Presentation is loading. Please wait.

Presentation is loading. Please wait.

Device Servers Prasun Dewan Department of Computer Science University of North Carolina

Similar presentations


Presentation on theme: "Device Servers Prasun Dewan Department of Computer Science University of North Carolina"— Presentation transcript:

1 Device Servers Prasun Dewan Department of Computer Science University of North Carolina dewan@unc.edu

2 2 Issues in Device Servers n Device is just a server. n So what is different? Network

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19 19 UPnP Device Architecture

20 20 Architecture/Terminology n Components u Control points F Controller, usually client u Device F Controlled, usually server u An actual device might contain both functionsDeviceDeviceServiceService Control Point DeviceDevice ServiceService

21 21 Architecture UPnP Enabled Device Control Point Device Root Device Embedded Device Device Service Service 2Service 1 Service Service 2Service 1 Control Point Service State Table Control Server Event Server

22 22 Example Configuration

23 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 0 Addressing 1 Discovery 2 Description 5 Presentation 4 Eventing 3 Control

24 24 Vendor-specific API above Vendor-specific OS below UPnP Protocol Stack UPnP Device Architecture UDPUDP IPIP HTTPU/MUHTTPU/MU GENAGENASSDPSSDP SOAPSOAP HTTPHTTP HTTPHTTP GENAGENA TCPTCP UPnP Forum UPnP vendor Multiple http servers Name Discovery and Events Capability Discovery Operation Control State Events Schemas (Prog Lang) Standardized Schema Instances (Types) URLs, Model, Device # Wire protocols

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

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

27 27 Overview -ad hoc

28 28 Overview - configured

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

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

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

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

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

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

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

36 36 GENA n Notification method format defined by GENA n An event delivery scheme over HTTP n Allows subscription u May be used later u Will allow it to be not depend on the “largely non-existent Internet multicast infrastructure”

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

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

39 39 Byebye message n Sent before device ceases to operate n NTS = ssdp:byebye n NT = service type

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

41 41 Broadcast message n Can send message to all devices u ssdp: all u Network analysis tool u Remote control unit

42 42 1 Discovery: Responding n Who? Device unicasts n When? If ST matches an NT n What? u 1 time for each NT that matches u 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

43 43 Network traffic n SSDP traffic on recovery after power outage. u Control points will all send discover messages. F to find printer u In large companies multicast admin domain will be large F Can be entire company u Need a way for SSDP to deactivate before network storms created u Even with directory services, low-level SSDP may activate

44 44 Bandwidth requirements u TP = some time period u DR = # of clients sending discovery messages in TP u RS = # of devices responding to each discover message u AM = average message size u Bandwidth = (DR* 3 + DR*9*RS)*AM/TP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

61 61 3 Control: Invoke Action n Who? Control point n When? To invoke action on device n 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

62 62 3 Control: Action Result n Who? Device n When? Action completes n 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

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

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

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

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

67 67 4 Eventing: Subscription n Who? Device n When? Accepts subscription n What? u 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

68 68 4 Eventing: Notify n Who? Device n When? A state variable changes n 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

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

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

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

72 72 Example Composition 1 0 http://192.168.0.4:5431

73 73 Example Composition urn:schemas-upnp- org:device:tvdevice:1 UPnP Television Emulator TV Manufacturer Name http://www.manufacturer.com UPnP Television Device Emulator 1.0 TVEmulator 1.0 http://www.manufacturer.com/TVEmulator/ 123456789001 uuid:Upnp-TVEmulator-1_0-1234567890001 123456789

74 74 Example Service Composition urn:schemas-upnp- org:service:tvcontrol:1 urn:upnp-org:serviceId:tvcontrol1 /upnp/control/tvcontrol1 /upnp/event/tvcontrol1 /tvcontrolSCPD.xml urn:schemas-upnp- org:service:tvpicture:1 urn:upnp-org:serviceId:tvpicture1 /upnp/control/tvpicture1 /upnp/event/tvpicture1 /tvpictureSCPD.xml

75 75 Example Service 1 0

76 76 Example Action List PowerOn SetChannel Channel in ….

77 77 Example Variables Power Boolean 0 Channel i4 1 100 1 1 …..

78 78 Example Presentation Described using HTML

79 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.params[0])) … } int channel; int getChannel () { return curentChannel}; void setChannel (int newChannel) { channel = newChannel; UPnP.announce(“Channel”, toString(getChannel()); }...

80 80 Another Example: Composite greater than sum of parts TV Composite u Simply combines services n CD Composite u Adds services u Record with fields vs Object with instance variables

81 81 CD Example CD Composite Power Player Changer Audio When disc insertion event received play CD Play random (CD)

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

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

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

85 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 0 Addressing 1 Discovery 2 Description 5 Presentation 4 Eventing 3 Control

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

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

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

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

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

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

92 92 No Programmer-Defined Types n XML defines 24 data types F ui1, ui2, ui4, i1, i2, i4, int F r4, r8, number, fixed.14.4, float F char, string F date, dateTime, dateTime.tz, time, time.tz F boolean F bin.base64, bin.hex F uri F uuid

93 93 No Programmer-Defined Types n Only supports predefined types u state variables u action parameters n No way to model dynamic composites Dynamic programmer- defined collection

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

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

96 96 Changed Action List PowerOn SetCurrentChannel CurrentChannel in ….

97 97 Changed State Variable Table Power Boolean 0 CurrentChannel i4 1 100 1 1 …..

98 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.params[0])) … } int channel; int getCurrentChannel () {return channel}; void setCurrentChannel (int newChannel) { channel = newChannel; UPnP.announce(“CurrentChannel”, toString(getCurrentChannel()); }...

99 99 Ideal Developer Effort int getChannel () { return channel}; void setChannel (int newChannel) { channel = newChannel; }...

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


Download ppt "Device Servers Prasun Dewan Department of Computer Science University of North Carolina"

Similar presentations


Ads by Google