`
`
`
`UPnP DEFINES COMMON PROTOCOLS AND PROCEDURES TO
`
`GUARANTEE INTEROPERABILITY AMONG NETWORK-
`
`ENABLED PCS. APPLIANCES. AND WIRELESS DEVICES.
`
`Devices that play together,
`work together
`
`
`
`DEVICE AND
`CONTROL POINT
`
` fl
`
`HAT 15 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 PLC, machine—
`tool controller, and conveyor-belt controller; or in
`a process plant, connecting setpoint controllers,
`smart sensors, and a PIC.
`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 running 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—
`
`www.cdnmag.com
`
`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
`
`IhenextUPnPFomm nieetingwlilbeOCI la
`m19.2001mheMicrowftCorporateCm
`When you add a new control point (in this use, a laptop) to a network, the
`lemme can“ Redm' WA For Im device may ask the network to find UPnP-enabled devices. These devices
`tion email: upnpemt@miaosoftcom.
`respond with their URLs and device dest:riptioni.\I
`.
`Exhibit 1 0 12
`etfl1x, Inc. et a1.
`SEPTEMBER 13, 2001 | EDN 65
`Page 1 of 4
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 1 of 4
`
`
`
`
`
`
`designfeature Manley
`
`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 (H'I'I'PU, or
`HTTP Unicast UDP).
`HTTPMU is a new addi—
`tion to the HTTP stan-
`
`dard. In Figure l, 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
`
`nodes can be devices, control
`points, or both. Devices have
`sewices tha a control point
`can monitor or control.
`
`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.
`
`
`
`The presentation layer
`appears to be required, be-
`cause a pointer to the presentation URL
`is part of the device description. Howev-
`er, if the control point is handling the de—
`vice programmatically 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-Lo-
`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 HTTP", I SAY HTTPMU
`
`Searching for devices on a network or
`advertising that a device is on a network
`
`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 infor—
`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 information. The UPnP Fo—
`
`rum defines device types. Each device
`type may have one or more UPnP 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 information, 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 ofinformation in a decentralized,
`
`discovers a device, the device provides a
`description of itself and the services it
`provides. It presents this information 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, l, 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
`
`UPnP S'I'I|.|. NEEDS WORK
`
`Today, no templates or standards
`dictate how industrial madline
`tools, automaic tst equipment,
`or medical devics wrll communi-
`
`for consumer devica
`Invensys, an armrnationand
`oorlrolsindlstry vendor, has
`asked the UPnP Fonrn to create
`
`control points. You an still imple
`rnent UPnP on the laaorylloor
`witllout the comfort of a common
`standard of data
`In
`
`devices a network can support.
`You can imagine that aftera powL
`er larltre, every active UPnP de
`vine er send multicast ever! not‘r
`
`one data using UPnP (Universal
`Plug and Play). UPnP working
`wmmittees create devicespedfic
`ternplat5.A number ottem
`plateseristbuttheyaremostly
`
`an industrial working committee
`to define tanplats forfaaory and
`procesth use. Tanplatts pro
`videinteropeiabiitynltsformarr
`uladuelsds‘lnflardeviceswith
`
`fad, many devias support d'scw titatiom, and every control point
`eryand prserlation without the
`will send inquiis of discovery.
`use of standard templata
`For a ndwkwith many UPnP-
`there has been notestingto
`enableddevicrs,sudltraflicootld
`deteminethenumberofUPnP
`bringthenetmrktoitsknees
`
`66 EDN | SEPTEMBER 13, 2001
`
`Netflix, Inc. et a1. Exhibit 1012
`www.cdnmagxam
`Page 2 of 4
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 2 of 4
`
`
`
`
`
`
`designfeaturemam
`
`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
`airrent 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 H'I'I'P defined by the IETF
`draft standard. GENA is designed to send
`and receive notifications using H'ITP
`over TCP and UDP.
`
`The presentation function presents in-
`formation and control to the user. Pre—
`
`sentation requires the completion of lay—
`ers 0, l, and 2: getting an address,
`discovering the device, and obtaining the
`device description. The description doc-
`
`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-llllll-PLAY STABKS
`
`So far, UPnP looks straightforward.
`However, some pieces of the technology
`that UPnP uses are absent from typical
`network-enabled devices. Many imple-
`menters have no knowledge of some of
`the newer protocols.
`Most irnplementers will purchase their
`UPnP protocol stacks as they now pur-
`chase TCP/IP stacks. The descriptions of
`the functions mention some of the pro-
`
`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 of this article, defines the UPnP
`structure. Microsoft designed the archi—
`tecture and contributed it to the UPnP
`
`Forum 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
`specify their own extensions to working—
`committee definitions. Vendors can use
`
`FOR MORE INFORMATION...
`Formoreinfonnaliononplodudssudlasthosedismssed inflnisarfidegotowwwednnagcom.
`Whenyou wind anyofthefolowing manufacturers diredly. please letthem knouyou read
`wout their products in EDN.
`m m
`1.973.264.5500
`mjwmm
`EnterNo. 301
`
`mmnkm
`Emalllo, 305
`
`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 UPnP on a variety of physi-
`cal networks;the onlyrequirement is that
`mm mM
`the network must support IP.
`mumpmg
`You can obtain more information at
`mun 309
`— the UPnP Forum Web site (www.upnp.
`W1C (World WideWell
`org). To obtain complete information,
`Hanson
`Will-ll)
`you must first join the UPnP Forum,
`mniaosoltcom
`IEIF (Internet Ella'leef'llz
`WWW-"3.0%
`which charges no membership fee. The
`WEND- 306
`73* flue)
`“Hf-0'3 — Em”"0- 3'0
`UPnP Forum, a nonprofit organization,
`WM" 302
`m '"I
`defines UPnP protocols and UPnP device
`m m
`I“
`templates and isthe source ofdevice cer—
`SUPER INFO NUMBER
`.
`.
`.
`.
`tification.
`.
`.
`I-4OB-765-8080
`mmtsubtshldnpscmt/
`.
`.
`.
`.
`For more Infonnatlon on the
`hwy/manhqu
`pmdumlmmml
`I The UPnP Forum is an industry m1-
`products available from all of
`Eme, M 303
`Em, Na 307
`native desrgned to enable easy and robust
`— — the vendors listed in this box.
`connectivity among stand—alone devices
`mmm m In:
`go to wwwednmagcom, dle
`and computers from many vendors. The
`yum
`Hum—1m
`on the Reader Service link, and
`UPnP Forum is open to any company
`wijsyscom
`mnetsiconcom
`enter no. 3|]
`wanting to participate in driving the
`EntaNo. 304
`EnterNa 308
`adoption of UPnP. Companies with in-
`'
`'Cul d '
`h
`Netfii'igft lr’t'é’f'rgt air. “Em? fiiiz
`mednmgcam
`Page 3 of 4
`
`68 EDN | SEPTEMBER 13, 2001
`
`
`
`tocols that make up UPnP. You
`can find complete information at
`the UPnP Forum, W3C, and
`IETF Web sites.
`
`UPnP starts with IP (Figure4).
`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
`
`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.
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 3 of 4
`
`
`
`
`
`designfeatureMb
`
`
`
`UPnP-network—device implementers use protocol standards, sud: as GENA
`(General Event Notification Ardlitedue), SSDP (Simple Device Discovery Pro-
`tocol). and SOAP (Simple Obied Access Protocol), to enable automatic tiscovery and description.
`
`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.
`
`VlllAl ABllllT JAVA?
`
`For companies using a total lava op—
`tion, Metro Link Inc has a complete set
`of lava—based UPnP software stacks. The
`Metro EnableWorks Device software-de-
`
`velopment kit for Java 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 Java gives developers all the tools they
`need to develop UPnP control points for
`lava-1.2—compliant platforms.
`Silicon is coming to UPnP in 2001.
`Mitsubishi Electric and Electronics has
`
`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.l:l
`
`AUTHOR’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 Equipth Corp, Ven-
`turCom Inc, and Phar Lap Soflware. His
`international experience includes a stint in
`Hong Kong as a Far East channels man-
`ager and responsibility 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
`come UPnP control points, it will be eas—
`Lap Software. At the time, it may have
`ier to deploy smart devices on 1fieetffileent Ie1jérstedtisa sWfigsefi'leBit 1012
`X,
`.
`.
`ednmag.com
`Page 4 of 4
`
`Xm
`
`announced a set of microprocessors for
`the implementation of Intemet—enabled
`devices. Mitsubishi will include a Control
`
`Point reference design with these offer—
`has
`NetSilicon will be delivering UPnP
`software along with its NET+ARM sys—
`tem on a chip, 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 085 be-
`
`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.
`
`SllFlVlAllE—IJEVELIIPMEIIT Allll llllll 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.comlial/upnp
`or http://upnp.sourceforge.net, and
`the Microsoft SDK for Windows devel-
`
`is available at http://www.
`opment
`n1icrosofi.oomlhwdev/upnp.
`The Intel Linux SDK includesAPI 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, dommentation,
`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 [[8 (Internet Information
`Server) or Wmdows CE Web servers; a
`mini-XML parser; documentation; tools,
`such as generic UCP and network-mon—
`itor parsers, and sample code that imple-
`ments the X10 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 of vendors
`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—
`
`work and provides a list in a window.You
`can click on the device name to see a
`
`70 eon l SEPTEMBER 13, 2001
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 4 of 4
`
`