`
`
`
`UPnP DEFINES COMMON PROTOCOLS AND PROCEDURES TO
`
`GUARANTEE INTEROPERABILITY AMONG NETWORK-
`
`ENABLED PCS. APPLIANCES. AND WIRELESS DEVICES.
`
`Devices that play together,
`work together
`
`HAT IS THE STATUS ofdevices on the Internet?
`
`And how do you start operations on them?
`Will the devices notify you when they have a
`significant event? And is there a simple human in-
`terface for the networked devices? The network
`
`UPnP (Universal Plug and Play) technology, which
`Microsoft and the UPnP Forum are promoting,
`might help you find the answers to these questions.
`UPnP technology applies to proximity networks
`in homes, small businesses, or commercial buildings.
`For example, the network in Figure 1 could be in a
`hospital lab, connecting a cell counter, chromato-
`graph, and blood analyzer; in an office, connecting
`a print server, fax machine, DSL router, and HVAC
`controller; in a factory, connecting a PIJC, machine-
`tool controller, and conveyor—beIt controller; or in
`a process plant, connecting setpoint controllers,
`smart sensors, and a PLC.
`The UPnP smart devices in a local network con-
`
`nect using TCP/IP and communicate with a UPnP
`control point. The control point could be an oper-
`ator’s station or just another device on the network.
`In a typical scenario, a network supervisor con-
`nects a laptop either directly to the
`hub, via 802.1 lb, or remotely across
`the network to determine what de-
`
`vices are nmning and the status of
`each. The laptop is a UPnP control
`point; it can query the network de-
`vices for status and receive transmis-
`sions from ch device that in-
`
`
`clude a description of the
`device and a pointer to the device's
`URL. Better yet, when an event occurs
`on an UPnP-enabled device, the de-
`vice notifies
`subscribing control
`points of the event.
`UPnP architecture targets peer—to—
`peer networking of intelligent appli-
`
`ances, wireless devices, and computers of varying
`form factors. UPnP defines a set of common servic-
`
`es (protocols) that devices can use to join a network
`and describe themselves and their capabilities, en-
`abling other devices and people to use them without
`a complicated setup or configuration.
`UPnP has six basic layers or functions: device ad-
`dressing; device discovery; device description; action
`invocation; event messaging; and presentation, or
`human interface. UPnP is a protocol for data trans-
`mission; it does not move byte codes or use ActiveX
`controls. It is OS-independent but is built on various
`network standards. UPnP is designed to work in a
`peer—to—peer or ad—hoc network. Devices can use a
`DHCP (Dynamic Host Configuration Protocol)
`server or Auto IP (Internet Protocol) to automatically
`choose an IP address from a range of addresses.
`
`DEVICE DISCOVERY
`
`When you add a device to a network, the device
`advertises itself, letting all control points know that
`the device is online. A control point can search the
`network for devices (Figure 2). Once a control point
`
`LAPTOP
`
`HUB
`
`
`
`DEVICE
`
`DEVICE
`
`L
`
`DEVICE AND
`CONTROL POINT
`
`
`
`Ihe next UPnP Fomm meetingwill beoct Is
`to I9,2(X)I attheMiaosottCoIporateCorr
`terence Center, Redmond. WA For informer
`tion email: upnpevnt@microsottcom.
`
`www.cdnmag.com
`
`When you add a new control point (in this case, a laptop) to a netvvorlt, the
`device may ask the network to find UPnP-enabled devices. These devices
`respond with their URLs and device descriptions.
`
`Netflix, Inc. Exhibit 1012
`Serrnunan 13, 2001 I EDN 65
`
`Netflix, Inc. Exhibit 1012
`
`
`
`designfeature l112zzP_tecb_zzQlogy
`
`event messaging (layer 4);
`the device creates an
`
`event, and a control point
`listens for the event. De-
`vices can send data or the
`
`results of an action they
`have taken without initi-
`
`ating a control point.
`Some devices might pro-
`vide a control point with
`only a presentation user
`interface (layer 5). The
`control point’s browser
`displays the device’s Web
`user interface. This
`user interface may
`either display events or
`status or control the de-
`vice.
`
`discovers a device, the device provides a
`description of itself and the services it
`provides. It presents this infomration in
`an XML document. Control points can
`initiate an action on the device by send-
`ing a message to the device. For example,
`the control point may instruct the device
`to send a message directly to an Internet
`URL. Once the action completes, the de-
`vice notifies the control point.
`A device does not often need to be told
`
`to perform its function, but it does need
`to report its status to one or more con-
`trol points. In UPnP, this reporting is
`called “event messaging,” and it is based
`on a basic push model. Devices send
`events only to control points that sub-
`scribe to a device’s events.
`
`Each device can have a unique presen-
`tation, or Web home page. It sends the
`home-page URL to control points as part
`of its description.
`Today, UPnP control points are avail-
`able only in Windows Me systems. All
`standard Windows Me systems come
`with UPnP software, but users must in-
`stall it. Intel provides a free software—de-
`velopment kit for creating a Linux-based
`control point. A network can have any
`number of vendor—enabled or Windows
`
`Me control points.
`UPnP devices have embedded func-
`tions called “services.” Services can in-
`
`clude turning off the device, scanning in-
`puts for data, or similar functions. Either
`the device itself or a control point initi-
`ates a service. Some objects on a network
`can be both a control point and a device.
`This situation is most common in facto-
`
`ry systems.
`UPnP-enabled devices or control
`
`points have six layers of functions (Fig-
`ure 3). Layers 0, 1, and 2 are fundamen-
`tal; they exist in all devices and control
`points. Layers 3, 4, and 5 are optional.
`Control points can initiate an action on
`a device (layer 3). Many devices offer only
`
`The presentation layer
`appears to be required, be-
`cause a pointer to the presentation URL
`is part of the device description. Howev-
`er, ifthe control point is handling the de-
`vice prograrnmatically and not through
`a Web browser, the presentation layer is
`not required. Because every UPnP device
`uses a Web server, it is simple to use the
`control point’s browser as the front pan-
`el of the device.
`
`The addressing layer is where control
`points and devices obtain their IP ad-
`dresses. The addresses can be hardwired
`or come from a DHCP server, or devices
`can use Auto IP to assign an IP address.
`Auto IP is a new draft of the IETF (Inter-
`net Engineering Task Force) standard,
`Dynamic Configuration of Ipv4 Link-Io-
`cal Addresses. Auto IP permits a UPnP
`device to select an IP address from a range
`of nonroutable addresses. Once selected,
`the device tests the address to determine
`
`whether another device is using it.
`
`Yllll SAY IIIIPII, I SAY HTTPMU
`
`Searching for devices on a network or
`advertising that a device is on a network
`
`
`
`UPnP-network
`nodes can be devices, control
`points, or both. Devices have
`services thd a control point
`can monitor or control.
`
`is the function of the dis-
`
`covery layer. When you
`add a device to a network,
`the discovery layer adver-
`tises the device’s presence
`by sending a multicast
`variant of HTTP (HTTP-
`MU, or I-I'I'I'P Multicast
`UDP). A control point an-
`swers using a unicast vari-
`ant of HTTP (HTI'PU, or
`HTTP Unicast UDP).
`HTTPMU is a new addi-
`tion to the HTTP stan-
`
`dard. In Figure 1, a con-
`trol point (the laptop) is
`added to the network. To
`find out what UPnP nodes
`
`exist, the control point
`sends out a HTTPMU,
`and each UPnP-enabled
`
`device responds with an H'I'I'PU reply.
`Once a control point discovers a de-
`vice, it can obtain a description from the
`device. The device expresses the ir1for—
`mation in XML (Extensible Markup Lan-
`guage). XML is used throughout the
`UPnP implementation. A description in-
`cludes a device type, URLs for control
`and events, icons, and a URL for presen-
`tation, as well as the manufacturer’s
`name, serial number, product code, and
`other similar infonnation. The UPnP Fo-
`
`rum defines device types. Each device
`type may have one or more UPr1P tem-
`plates to define the content and presen-
`tation of data.
`To initiate device action, a control
`point sends a control message using the
`definitions from the device-description
`document. To exchange infomration, the
`control layer uses a W3C (World Wide
`Web Consortium) draft standard, SOAP
`(Simple Object Access Protocol). The
`consortium defines SOAP as a “light-
`weight, XML-based protocol for ex-
`change of information in a decentralized,
`
`UPnP STILL NEEDS WORK
`
`Today, no templates or standards
`didate how industrial madiine
`tools, automatic test equipment,
`or medical devices will communi-
`
`for consumer devices
`Invens/5, an automation-and
`corirols-indrsuyvendor, has
`asked the UPnP Forum to aeate
`
`oontrol poirls You (an stfll imple
`ment UPnP on the laaory floor
`withoutthecomfortofa common
`standard of rhta
`In
`
`device a network ran support
`You (an 'lnag'nethat after a pow-
`erlaiue, everyadive UPnPde
`vice wil send multicast ever! nofr
`
`rate data using UPnP (Universal
`Plug and Play). UPnP working
`committees aeate devicespedlic
`templatuAnumberoftenr
`platesexistbuttheyaremostly
`
`an industrial working committee
`to defne templatsfor ladory and
`processplant use. Templates pro
`videirteroperabiityrrlsformarr
`ufamrasofsirniardeviceswith
`
`fad, many devices support discov
`ery and prsentation withoulthe
`use of standard templata
`Therehasbeennotestingto
`detenninethenumberofUPnP
`
`firations, and every control point
`wil send inqriis ofdmovery.
`For a network with many UPnPL
`enableddevicessudttralliccorld
`bringthenetworktoitsknees
`
`G6 EDN I Srarramnrzn 13, 2001
`
`Netflix, Inc. Exhibit 1012
`www.cdnmag.com
`
`Netflix, Inc. Exhibit 1012
`
`
`
`designfeature 1112zzP_tecb_z2Qlogy
`
`
`
`distributed environment.” The device
`
`completes the action and re-
`sponds using SOAP.
`The event-messaging layer appears to
`be a basic push model in which control
`points listen for notifications of UPnP—
`device state changes. But actually, the
`process is a little more complex. To ob-
`tain event messages, control points sub-
`scribe to event messages for a specific
`service within a device. A network can
`
`contain multiple control points and mul-
`tiple UPnP—enabled devices. A control
`point might want to listen to more than
`one network service but not all of them.
`
`By subscribing and unsubscribing to
`events, control points can be selective.
`When a service within a device has an
`
`event, it sends that event (Notify) to all
`current subscribers. Consequently, all
`subscribers have current knowledge of
`the state of the device.
`
`Event messages use GENA (General
`Event Notification Architecture), an ex-
`tension to HTTP defined by the IETF
`draft standard. GENA is designed to send
`and receive notifications using H'I'I‘P
`over TCP and UDP.
`
`The presentation function presents in-
`formation and control to the user. Pre-
`
`sentation requires the completion oflay-
`ers 0, l, and 2: getting an address,
`discovering the device, and obtaining the
`device description. The description doc-
`
`tocols that make up UPnP. You
`can find complete information at
`the UPnP Forum, W3C, and
`IETF Web sites.
`
`UPnP starts with IP (Figure 4).
`UDP is used for discovery and
`events because it is multicast.
`
`TCP handles description, con-
`trol, and presentation. A device
`uses HTTPMU to broadcast its
`
`presence to the network, and a
`control point uses HTTPMU to
`ask what devices are present.
`Both use GENA and SSDP (Sim-
`ple Device Discovery Protocol). The con-
`trol function uses SOAP. The IETF define
`GENA and SSDP, and the W3C defines
`SOAP. HTTPMU is not part ofthe HTTP
`standard. HTTPMU was created for use
`in UPnP, and H'I'I‘PU is used in the re-
`sponse to a search as well as in descrip-
`tion, control, and events.
`The UPnP Device Architecture layer,
`the focus ofthis article, defines the UPnP
`structure. Microsoft designed the archi-
`tecture and contributed it to the UPnP
`
`Fonim to be used royalty-free. Working
`committees of the UPnP forum define
`
`UPnP Forum Templates. They also define
`domain— and device—specific meaning
`and data format on top of UPnP Device
`Architecture. UPnP vendors may also
`spedfy their own extensions to working-
`committee definitions. Vendors can use
`
`UPnP's six layers consist of IP addressing; discovery;
`description of URLs and services; optional control of
`other UPnP devices; event messaging; and presentation,
`or the Web page for the device. layers 0 to 2 exist in all
`UPnP-enabled devices and control points.
`
`ument provides the device URL for the
`presentation page. There are no con-
`straints on the use of the Web page you
`obtain from the device. The device—de—
`
`scription document provides a URL for
`the initial presentation page for the de-
`vice. An unlimited number of linked
`
`presentation pages is permitted.
`
`Plllli-Allll-PLAY STICKS
`
`So far, UPnP looks straightforward.
`However, some pieces of the teclmology
`that UPnP uses are absent from typical
`network-enabled devices. Many imple-
`menters have no knowledge of some of
`the newer protocols.
`Most implementers will purchase their
`UPnP protocol stacks as they now pur-
`chase TCP/IP stacks. The descriptions of
`the functions mention some of the pro-
`
`new [it It
`1,954_6w25o0
`mmmenoinkmm
`gnenva 305
`
`FOR MORE INFORMATION...
`For more information on produdssudi aslhose disaissed in this artide, go tovvvvvv.ednmag.con1
`When you contact any of the folrming manulacturers diedly, please let them know you read
`about meg, produds in 1_:DN_
`"*0 “man and»
`nm on
`13752545500
`mm,a||egm5ofLcom
`Enterflo. 301
`T licrosoft
`'5" tllillfllfi Ellfllflill
`VMW1"-U050llC0"|
`T83 F0!!!)
`EM€fN0- 305
`W _ I.‘
`3-gwngglgw
`HM
`SUPER It_ll=0 NUl£BER
`mmmsubshidlipsmml
`H08_7658080
`For more information on the
`pmduds/"mfindexhm
`mp:/fimdmmfiavupm
`produds available
`all of
`EmaNo_ 307
`Eme,"Q 303
`T T the vendors listed In this box.
`[M 5.“... 5,5“;
`“egg” 1,‘
`go to wwwednmagcom, did
`1.7o3_234.5ooo
`1.731.547.1234
`onthe Reader Service link, and
`vrvvwjiverisyscorn
`wwvmetsilicoricom
`enter no. 311
`EMEINO. 304
`EMEINO. 300
`
`any language to call UPnP functions.
`UPnP is designed to be both language
`and operating—system independent.
`The UPnP vendor-specific layer com-
`prises the application, the user interface,
`and vendor-specific hardware. Vendors
`can deliver DPnP on a variety of physi-
`up‘, (univusd HI‘ and
`cal networks. the only requirement is that
`Hay) mu
`the network must support IP.
`w,,,,,_upnp_o,g
`You can obtain more information at
`gm-;No_ 309
`T the UPnP Forum Web site (www.upnp.
`lIlJC(lIlor|dlIfirlelIleb
`org). To obtain complete information,
`C0l|$0|'|l|ll)
`you must first join the UPnP Forum,
`WWW-W3-0'8
`which charges no membership fee. The
`9''‘*’N‘‘ 3'0
`UPnP Forum, a nonprofit organization,
`§i?5'S”1§.l§.lZ"nl:i‘§.”.i.‘L°s‘L'Z.“§fo‘§1§35'i.‘3.°Z'.§3
`tification.
`_
`.
`.
`_
`I The UFnP Forum is an industry mi-
`tiative designed to enable easy and robust
`connectivity among stand—alone devices
`and computers from many vendors. The
`UPnP Forum is open to any company
`wanting to participate in driving the
`adoption of UPnP. Companies with in-
`‘C " ‘é%¥fi‘§;’§“i‘r‘f5f‘°"‘i§°>§i‘{ffit"‘ft3‘i2
`www.cdnmag.cam
`
`58 EDN I SEPTEMBER 13, 2001
`
`Netflix, Inc. Exhibit 1012
`
`
`
`designteaturemm
`
`
`
`UPnP-network-device implementers use protocol standards, sud: as GENA
`(General Event Notification Ardlitectwe). SSDP (Simple Device Discovery Pro-
`tocol), and SOAP (Simple Obiect Access Protocol), to enable automatic tflscovery and
`
`become UPnP Forum members and par-
`ticipate in the process to design schema
`templates for their device classes. More
`than 300 companies are UPnP Forum
`members.
`
`SIIFIWAIIE-IIEVELIIPMEIIT llllll Tlllll KITS
`
`Both Microsoft and Intel offer UPnP
`
`software-development kits at no cost to
`developers. The Intel Linux SDK is avail-
`able online at http://intel.comIial/upnp
`or http://upnp.sourceforge.net, and
`the Microsoft SDK for Windows devel-
`
`is available at http:/lwww.
`opment
`microsoft.comIhwdev/upnp.
`The Intel Linux SDK includes API and
`
`Linux source code to implement UPnP-
`compliant control points and devices,
`sample source code with comments,
`header files, an integrated Web server, an
`optimized XML parser, doaimentation,
`and a Berkeley-style open-source license.
`The Microsoft SDK includes code for dis-
`
`covery, control, and events; Windows
`2000 and Windows CE support; ISAPI
`(Internet Server API) control, which
`works with an IIS (Internet Infonnation
`Server) or Windows CE Web servers; a
`mini—XML parser; docinnentation; tools,
`such as generic UCP and network-mon-
`itor parsers, and sample code that imple-
`ments the Xlo light bridge.
`If you are unfamiliar with GENA,
`SSDP, SOAP, and multicast HTTP or if
`you would rather have someone else do
`all the basics, a small number ofvendors
`are shipping UPnP tool sets. The tool—set
`vendors are members of the UPnP Fo-
`
`rum. They have tested their products at
`UPnP Plug Fests for adherence to the
`specification and compatibility with oth-
`er vendors’ products.
`Products shipping today from Allegro
`Software Development Corp include
`RomUPNP Basic and RomUPNP Ad-
`vanced tool kits. RomUPNP Basic in-
`
`cludes discovery, description, and pres-
`entation, and RomUPNP Advanced adds
`events and control. Control turns a de-
`
`vice into an UPnP control point. These
`products, along with all other Allegro
`Software products, such as its micro-
`XML parser and Web client, follow the
`UPnP principal of being hardware, op-
`erating—system, and language independ-
`ent. Allegro provides a UPnP Device
`Viewer program for all Windows systems
`that looks for UPnP devices on the net-
`
`complete device description or double
`click to launch a browser and display the
`device’s HTML page. When a UPnP de-
`vice is shut down (not aborted) or a new
`UPnP device comes online, it will be list-
`ed in the control-point window.
`
`WHAT ABOIIT JAVA?
`
`For companies using a total lava op-
`tion, Metro Link Inc has a complete set
`of Iava—based UPnP software stacks. The
`Metro Enableworks Device software-de-
`
`velopment kit for lava was built for both
`Java 1.1 and 1.2. It works with any OS
`that is fully compliant with lava 1.1 or
`higher. The Metro EnableWorks UPnP
`control-point software-development kit
`for Iava gives developers all the tools they
`need to develop UPnP control points for
`lava-l.2—compliant platforms.
`Silicon is coming to UPnP in 2001.
`Mitsubishi Electric and Electronics has
`
`armounced a set of microprocessors for
`the implementation of Internet-enabled
`devices. Mitsubishi will include a Control
`
`Point reference design with these olfer-
`ings
`Netsilicon will be delivering UPnP
`software along with its NET+ARM sys-
`tem on a dllp, a high-performance, high-
`ly integrated embedded Ethernet proces-
`sor targeting today’s demanding net-
`work-appliance applications. NetSilicon
`believes that UPnP will help untrained
`workers to use network-enabled devices.
`As more devices become UPnP-en-
`abled and more workstation OSs be-
`
`network. A workstation’s browser will
`
`become the operator interface for all the
`smart networked devices. Operators can
`start actions in the devices, or the actions
`can begin programmatically, and oper-
`ators will be able to obtain the results the
`
`same way. The best part of UPnP is that
`it lets you find out what devices are on
`the network and how to communicate
`with them.
`
`UPnP implementation is not rocket
`science, and excellent tools are making it
`even easier to design UPnP-enabled de-
`vices. User—interface designs can be as
`simple as HTML pages, with no addi-
`tional hardware required. Once vendors
`and users see the power of UPnP, every
`network-enabled device will be UPnP-
`enabled.I:l
`
`Au'rHon’s BIOGRAPHY
`
`Edward Steinfeld has more than 25 years
`experience in real-time and embedded
`computing. He has marketed embedded
`and real-time products to OEMs and re-
`sellers for Digital Equipment Corp, Ven-
`turCom Inc, and Phar Lap Software. His
`international experience includa a stint in
`Hong Kong as a Far East channels man-
`ager and raponsibility for international
`OEM marketing in Europe and the
`ic Rim. Steinfeld is now providing market
`research, planning, and services to the em-
`bedded-computing industry. He has been
`an evangelistfor embedded Web products
`since 1995, when he announced the
`“World's Smallest Web Server” for Phar
`Lap Software. At the time, it may have
`"“K'IE"t‘ 1'§2§"l‘1"c‘7 Wfifififfiit 1012
`www.ednmag.com
`
`work and provides a list in a window. You
`can click on the device name to see a
`
`come UPnP control points, it will be eas-
`ier to deploy smart devices on the
`
`70 non I SEPTEMBER 13, 2001
`
`Netflix, Inc. Exhibit 1012
`
`