| November 29, -0001 11:00 PM PST | |
This article, written for software developers and technical architects working for audio independent software vendors (ISVs), provides a brief overview of the digital home, UPnP* technology and the UPnP A/V standard. The article demonstrates the value of UPnP-enabled applications in the digital home and the opportunities created by enabling A/V applications for UPnP technology. The article also discusses UPnP tools and technologies available to assist in this process.
The proliferation of personal computers (PCs) and home networks, along with availability of broadband connectivity, has resulted in new usage models and scenarios for how consumers can use the digital media residing on their personal computer. While the consumer electronic devices in the living room – television, VCR, audio players have been considered the main source of entertainment, in today’s digital world, a large number of consumers are using their PC for both their computation as well as entertainment needs. In fact, there is a growing need to access the content residing on the PCs anytime, anywhere and on any device. This need for “Any content, any time, any where, on any device” is energizing the development and growth of the digital home. Figure 1 below portrays the vision of a digital home:
Let’s look at the various scenarios that are likely to happen in the digital home of the future.
Audio: John is a financial analyst for a company in Eugene, Oregon and is an avid follower of Wall Street. In the morning when he wakes up, he likes to listen to a radio station which specializes in delivering financial news around the world. The radio station is only available locally in New York City or via Internet radio. John hates getting up early in the morning and going on-line to listen to the Internet radio. Instead, he runs a media application on his PC that delivers the financial news from the PC onto his favorite audio system residing in his bedroom.
After a hectic day in the office, when John returns home, he enjoys listening to his favorite Jazz collection of MP3 songs residing on his PC. While he prepares his dinner in the kitchen, his favorite multi-media application running on Pentium® 4 processor-based PC delivers Jazz music to John’s under the counter kitchen stereo.
Emily chooses the latter.
In both the usage scenarios above, there is a fundamental technological and usage model shift where John and Emily no longer have to be in front of their PCs to participate in their favorite personal media activities. The world gets even more interesting if you now consider transmitting audio from your PC to your favorite audio system in your living room or kitchen, wirelessly! Imagine having a video chat with your mom - you speak into a camera that wirelessly streams video frames to the PC - while she helps you prepare your favorite family recipe. Wouldn’t it be exciting if you could receive weather information, news, audio, video, e-mail etc. from your PC onto the various devices and appliances in your home in a wirelessly and on-demand.
In the above usage models, John and Emily were able to remotely use the applications residing on their PC and also deliver content to any device, any where within the home network. How? The answer is: UPnP technology.
UPnP technology is the framework for the digital home. The UPnP Forum* formed on October 18, 1999, consisting of more than 600 vendors, including Intel, has laid the foundation for UPnP architecture as well as device specifications. The goal of UPnP technology is to enable automatic configuration and discovery of devices, allowing the ability to send and receive data over TCP/IP and internet protocols, as well as to define an open, distributed architecture to allow various applications and devices to communicate with each other in a seamless manner.
The UPnP Architecture provides support for the following features [1]:
| (a) | Standards-based architecture: The UPnP architecture is based on open standards, including a foundation of existing and proposed standard Internet Engineering Task Force (IETF) and World Wide Web Consortium (W3C) protocols such as IP, TCP, UDP, HTTP, XML, SSDP, GENA, and SOAP. | |
| (b) | Device connectivity: The UPnP architecture defines the protocols for devices to interact with other devices. UPnP devices can join and leave the network transparently, advertise their services, discover other devices and services, send events, and control other devices | |
| (c) | Ad-hoc networking: Devices participating in an UPnP network can join networks in a dynamic manner. | |
| (d) | Media and Device Independence: UPnP technology can run on any medium for which there is an IP stack, including phone lines, power lines, Ethernet, RF, and IEEE 1394. | |
| (e) | Programmatic and Manual Device Control: The UPnP architecture enables applications to programmatically control home networking devices. In addition, users can manually control devices using the device’s browser-based administrative interface, or with UPnP enabled Windows* applications. |
As you go about enabling applications and devices for UPnP, it is important to understand some of the terminology associated with UPnP. The key terms in UPnP are: (a) Devices (b) Services and (c) Control Points
| (a) | Devices: Any entity (hardware or software) on the network that communicates to other entities on the network using the UPnP-defined communication protocol is called a device. | |
| (b) | Services: Each device offers zero or more services. A service is an aggregation of zero or more actions which other control points can invoke. The UPnP working group has defined services for some of the devices that exist in the market place but for those devices for which the services have not been defined, the manufacturers have the freedom to define their own services. | |
| (c) | Control Points: An entity on the network that discovers, and invokes service actions offered by devices is called a control point. A control point may subscribe to events provided by a service and invoke actions provided by the service. |
Figure 2 below depicts the relationship between a control point and a UPnP-enabled device:
The UPnP-enabled application and device go through the following process to invoke a service offered by the application or device.
When a device is connected to the UPnP network, the device initiates a discovery process. During the discovery process, a control point queries the network using Simple Service Discovery Protocol (SSDP) and identifies devices that are hosting various services. Upon query by the control point, the device offering a particular service responds to the control point by offering a URL of the device description and services offered by the device. The control point can interrogate the XML-based device description document to identify the make, model and services offered by the device. A detailed description of various services – input and output parameters will be contained in the XML-based service description document. By having access to the various services offered by the device, the control point can invoke actions on one or more services using SOAP protocol.
Problem: SHM Corporation is in the business of developing multi-media audio application. Its current customers are audio enthusiasts who enjoy listening to digital music on their PC. While these customers enjoy listening to their audio collection on their PC, they would also like to also hear it on the entertainment system residing in their living room.
Recognizing an opportunity to cater to this new usage model, SHM Corporation has decided to enable their multi-media audio application for UPnP. This would allow the consumers to take advantage of UPnP technology and be able to play their favorite audio songs in the living room while the songs are actually stored on their favorite PC.
Solution
In order to enable their existing audio application for UPnP technology, the architects of SHM Corporation first decided to get a better understanding of the UPnP AV standard.
The UPnP AV specification is aimed at enabling flow of audio-visual (AV) content between different devices while supporting arbitrary communication protocols and content formats. Figure 3 below shows the UPnP AV architecture, which includes: (a) Media server device (b) Control Point and (c) Media Renderer device.
| (a) | Media Server: The media server typically stores the content – in this case, audio files that the end user would like to render on the media renderer. A Media Server has 3 logical services:
|
|
| (b) | Control Point Application: A control point application allows an end-user to undertake a particular task/operation enabled by the Media Server. For instance, in order to play an audio file residing on the PC, a control point would provide the end- user “Play” functionality to hear an audio file. To summarize, the Control Point will undertake the commands given by the end-user and communicate them to the Media server and Media Renderer. It is important to note that the Control Point is not involved in actual data transfer between the Media server and Media Renderer. | |
| (c) | Media Renderer: The Media Renderer is responsible for rendering of the media received from the Media Server. The media renderer receives commands from the Control Point and depending upon the command, the media renderer changes the format of media rendering (“Play”, “Pause”, “Stop”, “Display”, “Scan”, “Volume”, “Brightness” etc). Similar to Media Server, a Media Renderer has 3 logical services
|
In the context of the application SHM Corporation, the Media server would run on the consumer’s favorite PC whereas the Media renderer would be their favorite audio device.
While there are various companies that offer tools to help you create UPnP-enabled solutions, Intel also provides variety of tool support for developing UPnP-based applications.
The following are software development tools offered by Intel [5]:
- Intel® Authoring Tools for UPnP Technologies
This Intel evaluation toolkit includes the Intel® Device Builder tool for quickly generating custom, efficient, portable, and easy-to-use device and control point stacks. Developers can quickly build for many platforms including Linux*, Microsoft Windows*, and Microsoft Pocket PC*. The full source code for many sample applications is also included. This toolkit is available at no cost. - Intel® Remote I/O for UPnP Technologies
This evaluation package demonstrates how Remote I/O technology would allow a computer user interface to interact remotely between a UPnP-enabled device, such as a television or Microsoft Pocket PC. Sample user experience and client source code are included. This toolkit is available at no cost. - Intel® Tools for UPnP Technologies
Based on the Microsoft .NET* Framework, this Intel e valuation toolkit helps software engineers accelerate the development, testing, and deployment of UPnP-compliant devices, including full support for AV media distribution. This toolkit is available at no cost.
The tools can be downloaded from Intel Tools for UPnP Technology web site at http://www.intel.com/technology/UPnP/download.htm
UPnP-enabled multi-media applications running on PC will spur new usage models and hence growth opportunities for the audio ISVs. The tools to support design and development of UPnP-based applications are now available for software developers. Now is the time for software architects and developers to take advantage of these tools and enable their applications to have UPnP support. In particular, audio ISVs should start understanding the MediaServer and MediaRenderer specification available at UPnP Home Page [4] and start prototyping their current applications for UPnP technology support.
[1] UPnP* Design by Example: A Software Developer’s Guide to Universal Plug and Play ISBN 0-9717861-1-9
[2] Intel Tools for UPnP Technology web site:
[4] UPnP Forum web site can be found at: http://www.upnp.org/*
[5] Intel® Tools for UPnP Technology – Download: http://www.intel.com/technology/UPnP/download.htm
Articles
- Building PCs for the Digital Home
- Digital Technology Integrates Into the Fabric of the Home
- Convergence Spells New Opportunities for Devices and Applications in the Digital Home
Developer Centers
Community
For more complete information about compiler optimizations, see our Optimization Notice.

