`
`
`
`UPnP DEFINES COMMON PROTOCOLS AND PROCEDURES TO
`
`GUARANTEE INTEROPERABILITY AMONG NETWORK-
`
`ENABLEDPCs, APPLIANCES, AND WIRELESS DEVICES.
`
`Devicesthatplay together,
`work together
`
`ances, wireless devices, and computers of varying
`form factors. UPnP defines a set of commonservic-
`es (protocols) that devices can use to join a network
`and describe themselves and their capabilities, en-
`abling other devices and peopleto use them without
`a complicated setup or configuration.
`UPnPhassix basic layers or functions: device ad-
`dressing; device discovery; device description; action
`invocation; event messaging; and presentation, or
`humaninterface. UPnPis a protocol for data trans-
`mission; it does not move byte codes or use ActiveX
`controls.It is OS-independentbutis built on various
`network standards. UPnPis 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
`
`LAPTOP
`
`HATIS THE STATUusofdevices on the Internet?
`And howdoyoustart operations on them?
`Will the devices notify you when they have a
`significant event? Andis there a simple humanin-
`terface for the networked devices? The network
`UPnP (Universal Plug and Play) technology, which
`Microsoft and the UPnP Forum are promoting,
`mighthelp you find the answers to these questions.
`UPnPtechnology applies to proximity networks
`in homes, small businesses, or commercial buildings.
`For example, the network in Figure 1 could be ina
`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 PLC.
`The UPnP smart devicesin a local network con-
`Whenyouadd a device to a network, the device
`nect using TCP/IP and communicate with a UPnP
`advertises itself, letting all control points know that
`control point. The control point could be an oper-
`the device is online. A control point can search the
`ator’s station or just another device on the network.
`In a typical scenario, a network supervisor con- networkfor devices (Figure 2). Onceacontrol point
`
`nects a laptop either directly to the
`hub, via 802.11b, or remotely across
`the network to determine what de-
`vices are running andthestatus of
`each. The laptop is a UPnP control
`point; it can query the network de-
`vices for status and receive transmis-
`sionsfrom each 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.
`UPnParchitecture targets peer-to-
`peer networkingofintelligent appli-
`
`HUB
`
`
`
`
`
`DEVICE
`
`DEVICE
`
`L
`
`DEVICE AND
`CONTROL POINT
`
`
`
`7
`
`The next UPnP Forum meeting will be Oct 18
`to 19, 2001 at the Microsoft Corporate Con-
`ference Center, Redmond, WA. For informa-
`tion e-mail: upnpevnt@microsoft.com.
`
`www.ednmag.com
`
`Whenyou add a new control point (in this case, a laptop) to a network, the
`device may ask the network to find UPnP-enabled devices. These devices
`respondwith their URLs and device Aescriptions
`.
`etflix, Inc. et al.
`Exhibit 1012
`SEPTEMBER 13, 2001 | EDN 65
`Page 1 of 4
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 1 of 4
`
`
`
`
`
`designfeatureUPnPtechnology
`
`
`
`
`
`event messaging(layer 4);
`the device creates an
`event, and a control point
`listens for the event. De-
`vices can senddata or the
`results of an action they
`have taken withoutiniti-
`ating a control point.
`Somedevices might pro-
`vide a control point with
`only a presentation user
`interface (layer 5). The
`control point’s browser
`displays the device’s Web
`userinterface. 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 ofthe device description. Howev-
`er,ifthe control point is handling the de-
`vice programmatically and not through
`a Web browser,the presentation layeris
`not required. Because every UPnPdevice
`uses a Webserver,it is simple to use the
`control point’s browseras 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 DHCPserver, or devices
`can use Auto IP to assign an IP address.
`AutoIP is a new draft of the IETF (Inter-
`net Engineering Task Force) standard,
`Dynamic Configuration ofIpv4 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
`whetheranotherdevice is usingit.
`
`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 HTTP Multicast
`UDP).A control point an-
`swers using a unicast vari-
`ant of HTTP (HTTPU,or
`HTTP Unicast UDP).
`HTTPMUis 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 HTTPUreply.
`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
`andevents, icons, and a URL for presen-
`tation, as well as the manufacturer’s
`name, serial number, product code, and
`othersimilar 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 sendsa 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 asa “light-
`weight, XML-based protocol for ex-
`changeofinformationina 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 messageto the device. For example,
`the control point mayinstruct the device
`to send a messagedirectly to an Internet
`URL. Once the action completes, the de-
`vice notifies the control point.
`A device does not often need to betold
`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,” andit 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 uniquepresen-
`tation, or Web homepage.It sends the
`home-page URL to controlpoints as part
`ofits description.
`Today, UPnP control points are avail-
`able only in Windows Mesystems.All
`standard Windows Me systems come
`with UPnPsoftware, but users must in-
`stall it. Intel provides a free software-de-
`velopmentkit for creating a Linux-based
`control point. A network can have any
`numberof vendor-enabled or Windows
`Mecontrolpoints.
`UPnP devices have embedded func-
`tions called “services.” Services can in-
`cludeturningoffthe device, scanning in-
`puts fordata,or similar functions. Either
`the device itself or a control pointiniti-
`ates a service. Some objects on a network
`can be both a control point and a device.
`This situation is most commonin facto-
`
`ry systems.
`UPnP-enabled devices or control
`points havesix 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.
`Controlpoints can initiate an action on
`a device (layer 3). Manydevices offer only
`
`UPnP-network
`nodes can be devices, control
`points, or both. Devices have
`services that a control point
`can monitor or control.
`
`YOU SAY HTTPU,| SAY HTTPMU
`
`Searching for devices on a network or
`advertising that a device is on a network
`
`UPnP STILL NEEDS WORK
`
`Today, no templates or standards—_for consumer devices. control points. You can still imple- devices a network can support.
`
`dictate how industrial machine
`Invensys, an automation-and-
`ment UPnP on the factory floor
`You can imagine that after a pow-
`
`tools, automatic test equipment, without the comfort of acommon__er failure, every active UPnP de-_controls-industry vendor, has
`
`
`
`or medical devices will communi- asked the UPnP Forum to create—_—standard of data identification. In —_vice will send multicast event noti-
`
`cate data using UPnP (Universal fact, many devices support discov-_fications, and every control point—_anindustrial working committee
`
`Plug and Play). UPnP working
`to define templates for factory and
`—_ery and presentation without the
`—_will send inquiries of discovery.
`
`committees create device-specific—process-plant use. Templates pro- _use of standard templates. For a network with many UPnP-
`
`templates. A number of tem-
`vide interoperability rules for man-
`There has been no testing to
`enabled devices, such traffic could
`plates exist, but they are mostly
`ufacturers of similar devices with
`determine the number of UPnP
`bringthe network to its knees.
`Netflix, Inc. etal. Exhibit 1012
`www.ednmag.com
`Page 2 of 4
`
`66 EDN | SEPTEMBER 13, 2001
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 2 of 4
`
`
`
`
`
`designfeatureUPnPtechnology
`
`distributed environment.” The device
`completes the action and re-
`sponds using SOAP.
`The event-messaging layer appears to
`be a basic push modelin 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 wantto listen to more than
`one networkservice butnotall of them.
`By subscribing and unsubscribing to
`events, control points can beselective.
`Whena 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. GENAis designed to send
`and receive notifications using HTTP
`over TCP and UDP.
`Thepresentation function presents in-
`formation and controlto the user. Pre-
`sentation requires the completionoflay-
`ers 0, 1, and 2: getting an address,
`discovering the device, and obtaining the
`device description. The description doc-
`
`
`
`
`
`
`UPnP’ssix layers consist of IP addressing; discovery;
`description of URLs and services; optional control of
`other UPnPdevices; event messaging; and presentation,
`or the Web pagefor the device. Layers 0 to 2 exist in all
`UPnP-enabled devices and control points.
`
`umentprovides 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 documentprovides a URL for
`the initial presentation page for the de-
`vice. An unlimited number of linked
`presentation pages is permitted.
`
`PLUG-AND-PLAY STACKS
`
`So far, UPnP looks straightforward.
`However, somepieces of the technology
`that UPnPuses are absent from typical
`network-enabled devices. Many imple-
`menters have no knowledge of some of
`the newerprotocols.
`Most implementers will purchase their
`UPnPprotocol stacks as they now pur-
`chase TCP/IP stacks. The descriptions of
`the functions mention someofthe pro-
`
`tocols that make up UPnP. You
`can find complete information at
`the UPnP Forum, W3C, and
`IETF Websites.
`UPnP starts with IP (Figure4).
`UDPis used for discovery and
`events because it is multicast.
`TCP handles description, con-
`trol, and presentation. A device
`uses HTTPMUto broadcastits
`presence to the network, and a
`control point uses HTTPMUto
`ask what devices are present.
`Both use GENA and SSDP (Sim-
`ple Device Discovery Protocol). The con-
`trol function uses SOAP. The IETFdefine
`GENAand SSDP, and the W3C defines
`SOAP. HTTPMUis notpart ofthe HTTP
`standard. HTTPMUwas created for use
`in UPnP, and HTTPUisused in the re-
`sponseto a search as well as in descrip-
`tion, control, and events.
`The UPnP Device Architecturelayer,
`the focus ofthis 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
`any language to call UPnP functions.
`UPnPis 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 ona variety of physi-
`
`FOR MORE INFORMATION...
`For more information on products such as those discussed inthis article, go to www.ednmag.com.
`When you contact any of the following manufacturers directly, please let them know you read
`about their products in EDN.
`
`mentCorp metroinkIne pee an calnetworks;theonlyrequirementisthat
`
`
`1-978-264-6600
`wwwmetrolink.com
`wwwupnp.org
`the network must support IP.
`wwwallegrosoft.com
`EnterNo. 305
`EnterNo. 309
`You can obtain more information at
`EnterNo. 301
`——
`the UPnP Forum Website (www.upnp.
`——
`W3C (World Wide Web
`org). To obtain complete information,
`IETF (Internet Engineering
`Consortium)
`you mustfirst join the UPnP Forum,
`Task Force)
`Www.w3.0rg
`which charges no membership fee. The
`wwwietforg
`EnterNo. 310
`UPnP Forum,a nonprofit organization,
`EnterNo. 302
`defines UPnPprotocols and UPnPdevice
`Intel Corp
`templatesandisthesourceofdevicecer-
`tification.
`1-408-765-8080
`:
`:
`-e
`hitp://intelcomyial/upnp
`; The UPnP Forum is an industry ini-
`EnterNo. 303
`tiative designed to enable easy and robust
`—__
`connectivity among stand-alone devices
`Invensys Software Systems
`and computers from manyvendors. The
`1-703-234-6000
`UPnP Forum is open to any company
`wwwiinvensys.com
`wanting to participate in driving the
`EnterNo. 304
`adoption of UPnP. Companies with in-
`i
`icular
`devi
`hi
`
`Microsoft
`wwwmicrosoft.com
`EnterNo. 306
`—_
`Mitsubishi Electric and
`RlectromicsUSAinc
`rene eiets
`www.mitsubishichips.com/
`products/may/indexhtml
`EnterNo. 307
`—__
`NetSilicon Inc
`1-781-647-1234
`wwwnetsilicon.com
`EnterNo. 308
`
`SUPER INFO NUMBER
`.
`.
`For more information on the
`products available from all of
`the vendors listed in this box,
`go to www.ednmag.com,click
`onthe Reader Service link, and
`enter no. 311
`
`68 EDN | SEPTEMBER 13, 2001
`
`Netflix.Ine:et al. Exhibit 1612
`
`www.ednmag.com
`Page 3 of 4
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 3 of 4
`
`
`
`
`
`designfeatureUPnPtechnology
`
`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.
`
`SOFTWARE-DEVELOPMENT ANDTOOL KITS
`
`
`
`Both Microsoft and Intel offer UPnP
`software-developmentkits at no cost to
`developers. The Intel Linux SDKis avail-
`able online at http://intel.com/ial/upnp
`or http://upnp.sourceforge.net, and
`the Microsoft SDK for Windows devel-
`opment
`is available at http://www.
`microsoft.com/hwdev/upnp.
`TheIntel Linux SDKincludesAPI and
`Linux source code to implement UPnP-
`compliant control points and devices,
`sample source code with comments,
`headerfiles, an integrated Webserver, an
`optimized XMLparser, documentation,
`anda Berkeley-style open-source license.
`The Microsoft SDK includes codefor dis-
`covery, control, and events; Windows
`2000 and WindowsCEsupport; ISAPI
`(Internet Server API) control, which
`works with an IIS (Internet Information
`Server) or Windows CE Webservers; a
`mini-XMLparser; documentation;tools,
`For companiesusinga total Java op-
`such as generic UCP and network-mon-
`tion, Metro Link Inc has a complete set
`itor parsers, and sample codethat imple-
`ments the X10light bridge.
`of Java-based UPnP software stacks. The
`Metro EnableWorks Device software-de-
`If you are unfamiliar with GENA,
`velopmentkit for Java was built for both
`SSDP, SOAP, and multicast HTTPorif
`Java 1.1 and 1.2. It works with any OS
`you would rather have someoneelse do
`that is fully compliant with Java 1.1 or
`all the basics, a small numberof vendors
`higher. The Metro EnableWorks UPnP
`are shipping UPnP toolsets. The tool-set
`vendors are members of the UPnP Fo-
`control-point software-developmentkit
`for Java gives developers all the tools they
`rum. They havetested their products at
`need to develop UPnP controlpoints for
`UPnP Plug Fests for adherence to the
`Java-1.2-compliantplatforms.
`specification and compatibilitywith oth-
`AUTHOR’S BIOGRAPHY
`Silicon is coming to UPnP in 2001.
`er vendors’ products.
`Mitsubishi Electric and Electronics has
`Edward Steinfeld has more than 25 years
`Products shipping today from Allegro
`experience in real-time and embedded
`announced a set of microprocessors for
`Software Development Corp include
`RomUPNPBasic and RomUPNP Ad-
`computing. He has marketed embedded
`the implementation of Internet-enabled
`devices. Mitsubishi will include a Control
`vanced tool kits. RomUPNP Basic in-
`andreal-time products to OEMsandre-
`sellers for Digital Equipment Corp, Ven-
`Point reference design with these offer-
`cludes discovery, description, and pres-
`turCom Inc, and Phar Lap Software. His
`entation, and RomUPNP Advanced adds
`ings.
`events and control. Control turns a de-
`international experience includes a stint in
`NetSilicon will be delivering UPnP
`Hong Kong as a Far East channels man-
`software along with its NET+ARM sys-
`vice into an UPnPcontrol point. These
`ager and responsibility for international
`tem ona chip, a high-performance, high-
`products, along with all other Allegro
`OEM marketing in Europe and the Pacif-
`ly integrated embedded Ethernetproces-
`Software products, such as its micro-
`ic Rim. Steinfeld is nowproviding market
`sor targeting today’s demanding net-
`XMLparser and Webclient, follow the
`research, planning, and services to the em-
`work-appliance applications. NetSilicon
`UPnP principal of being hardware, op-
`bedded-computing industry. He has been
`believes that UPnP will help untrained
`erating-system, and language independ-
`workers to use network-enabled devices.
`an evangelistfor embedded Web products
`ent. Allegro provides a UPnP Device
`As more devices become UPnP-en-
`Viewerprogram forall Windows systems
`since 1995, when he announced the
`that looks for UPnP devices on the net-
`abled and more workstation OSs be-
`“World’s Smallest Web Server” for Phar
`
`work and providesalist in a window.You come UPnP controlpoints, it will be eas- Lap Software. At the time, it may have
`
`can click on the device nameto see a
`ier to deploy smart devices on NEt(fee eafirstSeats Wepsever 1012
`
`UPnP-network-device implementers use protocol standards, such as GENA
`(General Event Notification Architecture), SSDP (Simple Device Discovery Pro-
`tocol), and SOAP (Simple Object Access Protocol), to enable automatic discovery and description.
`
`complete device description or double
`click to launch a browseranddisplay the
`device’s HTML page. When a UPnP de-
`vice is shut down (not aborted) or a new
`UPnPdevice comes online, it will belist-
`ed in the control-point window.
`
`WHAT ABOUT JAVA?
`
`network. A workstation’s browserwill
`becomethe operatorinterface forall 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
`sameway. Thebest 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 makingit
`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.o
`
`70 EDN | SEPTEMBER 13, 2001
`
`www.ednmag.com
`Page 4 of 4
`
`5
`
`.
`
`.
`
`Netflix, Inc. et al. Exhibit 1012
`
`Page 4 of 4
`
`