Article: Universal Plug and Play — the Foundation of the Digital Home
Jun 6, 2003 — by LinuxDevices Staff — from the LinuxDevices Archive — 3 viewsOverview: Making PCs Easier to Set Up and Use
I have a friend — an energetic senior citizen named Pat. About a year ago, she and her husband Darryl decided to buy a new computer system — a computer, printer, scanner, and digital camera, so that they could send e-mail to their friends and family, browse the Web, view online stock quotes, and print and e-mail digital photos.
Pat was very excited to get her new computer and peripherals and was excited about the things she would soon be able to do. Unfortunately, Pat had no idea how to hook up all of the equipment, no idea what device drivers were, and didn't know how to connect her computer to the Internet. After a few lunch hours over at Pat's house, helping her to set up the new equipment, her new system was up and running.
These sessions reminded me of how much people have to know to set up and use computers and peripherals. There is still too much complexity exposed to the end user and too much for them to know about the underlying technology. One solution to this problem is Universal Plug and Play. Below we'll discuss how UPnP is helping enable the digital revolution.
Bringing Technological Innovation While Increasing Usability
Technologists at Intel Corporation and throughout the industry are imagining the future digital home. We can see the current and new technologies on the horizon and can imagine the possibilities: wireless networking allowing us to connect to other devices from anywhere in the home; broadband Internet connections giving us high-speed access to Internet-based content and services, such as video-on-demand; Internet gateways that can host services and shield the home network from the outside Internet; networked A/V (audio/video) equipment providing digital content to networked displays throughout the home; more devices in the home becoming networked instead of tethered to the PC — scanners, digital cameras, A/V equipment, MP3 players, digital displays; the list goes on. As these devices begin to work together synergistically, they will enable many futuristic usage models that have not been possible before.
While this potential digital home vision is exciting, it won't be possible without a technical foundation that hides much of the complexity of installing, configuring and using networked devices in the home. Perhaps soon Pat will want DSL (digital subscriber line) instead of her current 56K dial-up connection. Wouldn't it be great if she brought home a wireless Internet gateway device, and instead of having to learn about IP addresses, packet filtering routers, ports, and so on, she could just plug in the power, Ethernet, and phone cables, turn the device on, and it just worked?
Maybe someday Darryl will decide to upgrade their television to a high-end network TV. Wouldn't he be surprised if he could use the TV to automatically browse all of the digital photos he's taken that are stored on their PC in the den?
Universal Plug and Play is an important part of the answer. The UPnP device architecture is a standards-based technology for transparent network device connectivity. It allows devices, from various vendors, to “just work” when plugged into the network, eliminating the administrative hassle typically associated with networking devices and making them programmable entities that can be controlled across the network. UPnP technology will reduce complexity for everyone — technical and nontechnical alike.
The “Digital Home Platform”
UPnP is gaining momentum as the preferred device discovery and control protocol for IP networks in the home and small office. Today, the UPnP Forum has over 550 member companies and many working committees producing standard device types. There are also many UPnP SDKs (software development kits) and development tools available.
Over time, as more and more UPnP devices appear based on these SDKs, a new digital home platform will emerge with UPnP technology as the foundation. The digital home platform will span wired and wireless networks, entertainment devices, telephone equipment, home control, and so on. It will link the various networks in the home — entertainment, home control and automation, communications, and the data network — into a single logical network of programmable devices.
The resulting logical network will contain a multitude of UPnP devices that will be able to interact with each other. Speakers, for example, could be networked and used for a variety of purposes, not just for playing audio. Control points on the network, such as the PC in the den, or the television and remote in the entertainment area, will have programmatic access to all of the devices on this network and will be able to run programs that aggregate the devices into innovative applications.
The UPnP foundation of the digital home will enable a transition to new home networking usage models. This transition will have great benefits for people in the home, as the focus will shift from a specific user interaction model — “the computer in the den” — to devices supporting user activities in the home in their natural settings.
For example, Intel's digital media adapter is a device that resides in the entertainment cluster with outputs to the television and audio equipment, and a wired or wireless connection to the home network. The software on the device implements both a UPnP A/V Rendering device to render digital audio and pictures on the TV and a UPnP Remote I/O device that presents the user interface on the TV. Software running remotely on the PC can transparently drive the user interface and control the A/V on the device, without the user knowing that the program is actually running on the PC or that the content is coming from the PC.
Figure 1 shows the relationship between the PC in the home, the television and the digital media adapter. The desktop PC, located in the den or anywhere else in the home, is wirelessly connected to the Digital Media Adapter. The PC serves up information, resources, media, to networked devices throughout the home. You can also view an animated illustration of this concept.
Figure 1: Intel's Digital Media Adapter
Eventually, entertainment devices like this will be networked and have UPnP device capabilities built-in and won't need a proxy UPnP device. Devices will work together to provide new usage models that support the various activities in the home, providing new kinds of user interaction paradigms and new levels of automation. To make some of these ideas a little more tangible, let's take a look at a home network with some of today's UPnP devices, as shown in Figure 2.
Figure 2: A Digital Home of UPnP Devices
The UPnP Device Architecture
UPnP devices are logical containers with specified device types. Each UPnP device can contain any number of logical services, each with its own unique service type. Each service can contain any number of actions (remote procedure calls), each of which can reference any number of service-defined state variables.
Logical UPnP devices are passive entities that can be discovered and controlled by a UPnP control point. Devices periodically advertise their presence on the network and can also respond to search requests issued by other nodes on the network. A control point application typically provides the user access to a device's capabilities, invoking actions, and retrieving state information on behalf of the user.
To encourage interoperability between devices that perform similar functions, the UPnP Forum has defined standard device and service types. These device control protocols (DCPs) define required interfaces and capabilities for compliant devices such that no matter what instance of a particular device type you're dealing with you can be sure they will have implemented the same baseline set of capabilities specified by the UPnP Forum. In this way, devices that share a common device type are interoperable with any control point application built for that device type.
For example, a UPnP A/V media renderer, whether implemented physically in a television, bookshelf stereo, or handheld MP3 player, will share a common device type defined by the UPnP Forum for UPnP A/V media renderers. When discovered by a control point application such as a UPnP-enabled media player, the application will be able to interact with and make use of all of the media renderer devices regardless of prior knowledge or experience with those devices. It is the standardized interfaces that provide a foundation for device interoperability never seen before; where devices from different manufacturers — in wildly different form factors and even designed and built in different countries — can coexist and interoperate with each other.
A DCP defines a device type, with a set of services supported by that device. UPnP devices advertise their presence on the network using the Simple Service Discovery Protocol (SSDP), which extends the HTTP (Hypertext Transfer Protocol) header to provide a simple multicast discovery protocol. A discovery packet contains a link to an XML (extensible markup language) device description document.
The device description document, in addition to containing the device type, manufacturer, model, and so on, also contains references to UPnP Forum-defined service types with associated URLs to retrieve additional XML description documents describing the service capabilities in detail. Figure 3 illustrates the device and service description hierarchy.
Figure 3: The UPnP Device and Service Hierarchy
Recall that control points are the active entities on the network that discover UPnP devices. Sometimes even after recognizing a UPnP Forum device type, the control point may need to introspect the individual service description documents. This is because some service interfaces are optional, and not all vendors may have chosen to implement a particular capability. For example, a UPnP-enabled printer that does not support color printing will likely choose to not implement actions to adjust color properties. Figure 4 illustrates the steps taken by a UPnP control point application to discover and introspect a device's capabilities.
Figure 4: Retrieving Device and Service Descriptions
Although implementing standard device types contributes to an interoperable framework of devices, vendors are not required to restrict themselves to implementing only the standard device and service types defined by the UPnP Forum. In fact, the UPnP Device Architecture explicitly supports and encourages the definition of vendor specific device and service types. In this way, vendors can add their own value-added capabilities to provide market product differentiation, or even to create a completely new kind of device.
Implementing UPnP Devices: “UPnP Design By Example”
In the new book from Intel Press, “UPnP Design By Example,” the reader is led through a step-by-step process to create from start-to-finish a new UPnP device type: the Super Toaster. The reader will learn all about the basic concepts behind Universal Plug and Play, understand the protocols that make up the UPnP architecture, build fully functional UPnP devices from the ground up, as well as learn about exciting new developments such as UPnP Audio/Video and Simple Control Protocol (SCP).
The Super Toaster, in addition to containing services that provide toaster control services, also contains the UPnP Forum-defined service types for a UPnP A/V media rendering device. Yes, this toaster can play music too! This is an excellent example of how vendors can leverage standard device and service types defined by the UPnP Forum, while still providing unique value-added features and capabilities that consumers desire.
The UPnP Forum, and the UPnP Device Architecture provide the best of both worlds: a common framework upon which interoperable devices and services can be built, while still allowing vendors the freedom to innovate and create interesting new device types for the digital home.
Intel's Support for UPnP Technology
To facilitate the creation of UPnP-based devices, Intel provides a plethora of tools and development kits for the UPnP developer. Intel's Tools for UPnP Technologies is the market leading toolkit for the UPnP software developer.
For building devices, Intel has also provided an open-source SDK for the development of Linux-based UPnP devices. This open-source library is hosted at SourceForge. This library has been used in numerous UPnP products that will soon be available on the market. The CD-ROM included in the new book “UPnP Design By Example” contains both the Intel Tools for UPnP technologies, as well as complete source code of the open-source library for UPnP device development, and the sample Super Toaster device created in the book.
To learn more about Intel's vision of the digital home, explore that web site, which includes a video and interactive graphic. To learn more about Intel's work with UPnP technologies, visit the UPnP Web site. Or, find out more about the UPnP Forum.
About the authors:
Michael Jeronimo has been a developer for 14 years and is currently a software architect at Intel Corporation. Jeronimo is at the forefront of advancing the PC in the home of the future and has been active in evangelizing the UPnP standard, including a role in the Remote I/O working committee in the UPnP Forum. His product expertise includes compilers, security, networking, software architecture, design patterns and human-computer interaction. Jeronimo has four patents pending for Intel and has been actively involved in standards development with groups such as the Distributed Management Task Force (DMTF), the Internet Engineering Task Force (IETF), and the UPnP Forum.
Jack Weast is a senior software engineer at Intel Corporation and leads the development of UPnP-based devices for media distribution within the “Digital Home.” Weast's work has ranged from solving laptop power management and mobility issues to developing Bluetooth and Intel XScale-based embedded Linux devices. As a developer involved with emerging technologies that extend the PC's role in the home, Weast has spoken at a variety of events, including the Intel Developer Forum.
Copyright © Intel Corporation 2003. All rights reserved. Reproduced by LinuxDevices.com with permission. This article was originally published in Intel's “[email protected] Magazine.”
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.