This invention relates to systems which use a Content Directory Service (CDS) to store media content information, such as systems which conform to the Universal Plug and Play (UPnP) architecture.
There is an ever increasing use of digital storage devices to store media content. The media content can range from simple text files to multi-media content such as audio, pre-recorded or user-recorded video, broadcast digital audio (e.g. Internet radio)i broadcast digital video or digital images (e.g. digital photos.)
Universal Plug and Play (UPnP) is a communications protocol which allows electronic devices produced by different manufacturers to operate with one another. UPnP is designed to support zero-configuration, “invisible” networking, with automatic discovery of new devices. This means a device can dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices. A further development of UPnP is the UPnP Audio-Visual (AV) Architecture which describes extensions of the UPnP architecture relevant to Audio-Visual devices. The UPnP AV Architecture defines a Media Server, a Media Renderer and a Control Point.
Many devices within a UPnP compliant network, such as a UPnP home network, contain various types of content that other devices in the network would like to access (e.g. music, videos, still images). As an example, a Media Server device might contain audio, video, and still-image libraries. In order for the user to enjoy this content, the user must be able to browse the objects stored on the Media Server, select a specific one, and cause it to be played on an appropriate rendering device (e.g. an audio player for music objects, a TV for video content, an Electronic Picture Frame for still-images). For maximum convenience, it is desirable to allow the user to initiate these operations from a variety of user interface (UI) devices. In most cases, these UI devices will either be a UI built into the rendering device, or it will be a stand-alone UI device such as a remote control unit, wireless personal digital assistant (PDA) or tablet. It is desirable that a user can access the content without having to interact directly with the device containing the content.
One of the primary parts of the UPnP AV Architecture is the Content Directory Service (CDS). The CDS provides a set of features which allow UPnP Control Point (CP) devices to access the content stored on Media Server (MS) devices. The current publicly available description of CDS is the “Content Directory Service Template Version 1.01” for Universal Plug and Play Version 1.0, Jun. 25, 2002. The Content Directory Service allows clients (e.g., UI devices) to locate individual objects (e.g. songs, movies, pictures) that the server device is capable of providing. For example, this service can be used to provide a list of songs stored on an MP3 player, a list of still-images comprising various slide-shows, a list of movies stored in a DVD Jukebox, a list of TV shows currently being broadcast, a list of songs stored in a CD Jukebox, a list of programs stored on a PVR (Personal Video Recorder) device. Nearly any type of content can be listed via the CDS and multiple types of content (e.g. MP3, MPEG2, JPEG) can be listed together by the CDS.
Content is stored in a hierarchical structure of UPnP container objects, each container having a collection of objects stored within them. Each object includes media content information and a media content locator such as a Uniform Resource Identifier (URI). Although the UPnP AV Working Committee has issued a set of class definitions (see Appendix C of the “Content Directory Service Template Version 1.01” for Universal Plug and Play Version 1.0, Jun. 25, 2002), UPnP does not require a Media Server's CDS to be arranged in a particular way and so the way in which containers and objects are arranged is decided by each vendor or user. Consequently, each CDS can have a unique structure and individual objects within the structure may be labelled with different combinations of descriptive metadata. Additionally, UPnP defines two mechanisms by which a CDS can be inspected by a querying device: a “Browse” mechanism by which a querying device can browse through the CDS structure and a more useful “Search” mechanism by which a querying device can request a CDS to return items meeting specified search terms. However, the “Search” mechanism is optional and it is possible that the CDS hosted by a Media Server does not implement UPnP's optional “Search” functionality but instead requires the CP to “Browse” it's hierarchy on a container-by-container basis.
When a Control Point queries a CDS, there is an inevitable delay before a response is received. This delay includes time taken to search the CDS database for the required information, as well as time taken to collate extracted information. This delay may vary, depending on factors including the type and scale of the search, the performance of individual devices and the efficiency of communication between devices. The delay is further prolonged in situations where the user interface is arranged in a different manner to the CDS of storage devices or where the CDS only supports the ‘browse’ operation. In both cases, the querying device must make multiple queries to extract the required information. Long delays before responses are received, as well as variability in the delays, degrades the user's experience of using the system.
Accordingly, the present invention seeks to provide an improved way of operating a system in which a content directory service is used.
A first aspect of the present invention provides a method of storing query information at a caching device in a system which uses a Content Directory Service (CDS) to store media content information, comprising:
By allowing a caching device to perform the query and store the result, the processing and storage resources of the querying device are not burdened with providing a caching service. The stored, or cached, results can be accessed by the querying device in preference to re-performing the required query. This can result in a faster delivery of results which improves the user's experience of interacting with the querying device.
Preferably, the cached results are maintained up-to-date, either at the request of the querying device or automatically without involvement of the querying device. This improves the usefulness of the caching service and further reduces the burden on the resources of the querying device.
Preferably, the service is provided to multiple querying devices in the system.
Preferably, only the most relevant queries are cached. Thus, only a relatively small number of results need to be stored and maintained and the time taken to retrieve a result is reduced, in relation to accessing the CDS directly.
The method can be performed by a device, either for internal use by that device or as a service which can be used by other devices in the system. The method can be hosted by a storage device (such as a UPnP device of the Media Server type) or any other device with processing and storage resources. The method may be hosted by a device which provides another service to devices on the network, and is particularly suited for hosting by any device. which holds knowledge about storage devices on the network.
A further aspect of the invention provides a method of operating a querying device in a system which uses a Content Directory Service (CDS) to store media content information, comprising:
Further aspects of the invention provide apparatus for implementing the methods.
The functionality described here can be implemented in software, hardware or a combination of these. Accordingly, another aspect of the invention provides software for performing the method. The software may be stored on an electronic memory device, hard disk, optical disk or other machine-readable storage medium and will be executed by a suitable processing device on the host device. The software may be delivered as a computer program product on a machine-readable carrier or it may be downloaded directly to the host device via a network connection. It will be appreciated that the software may be installed at any point during the life of the host device.
The term ‘Content Directory Service’ (CDS) is intended to include the CDS used in UPnP systems, but it is not to be taken as limited to just UPnP systems. It can include any CDS-like storage system for media content information which has a hierarchical structure that is loosely defined and thus unpredictable and difficult for querying devices to extract required information from.
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
FIGS. 3 to 5 show an embodiment of a system which includes a query caching service in accordance with the invention;
Before describing the invention in detail, a conventional UPnP system will be briefly described. A more thorough explanation can be obtained from “UPnP AV Architecture” published by the UPnP Forum. The main components of a UPnP AV system are a Control Point (CP) 20, a Media Server (MS) 50 and a Media Renderer (MR) 60. All of these are logical entities: a physical device may include only one of these entities (e.g. a Control Point in the form of a remote control) or, more commonly, a combination of several of these entities. As an example, a CD player comprises a user interface and control circuitry for operating the player (a Control Point), apparatus for reading digital content from an optical disk (a Media Server) and apparatus for converting the digital content into an audio signal for presentation to a user (a Media Renderer).
Media Server (MS) 50 includes a store 52 of media content. The content can include, for example, audio, video, still images or a combination of these. The Media Server also supports a Content Directory Service (CDS) 55 which catalogues the content in store 52. The CDS is hierarchically organised in a manner similar to a computer file system. A container (analogous to a folder or directory) can include a plurality of objects (analogous to a file) and containers that are hierarchically one level lower. The object includes an object description with an identifier and optionally metadata. The metadata may include properties such as object name, artist, composer, date created, size, etc. The object may also include the object content (item) or include a locator, such as a URI, for locating the content. An example CDS structure is shown in
Media Renderer (MR) 60 is responsible for rendering (reproducing) media content which is received from a Media Server 50. Reproduction equipment 62 is shown with a display 63 and speaker 64 although the output can take many forms. Typically, the reproduction equipment 62 includes one or more decoders, digital to analog converter and amplifiers. The Media Renderer 60 also supports a Connection Manager Service 65 for establishing a new connection with a Media Server and Render Control 61 for controlling the way in which the content is rendered. For audio reproduction this can include features such as a volume control.
Control Point (CP) 20 coordinates operation of the Media Server 50 and Media Renderer 60 and includes a user interface (UI) 21 by which a user can select content. The Control Point 20 supports the conventional UPnP mechanisms for discovering new devices and also supports mechanisms for finding the capabilities of Media Rendering devices and establishing connections between a Media Server and a Media Renderer. The UPnP AV Architecture supports a wide variety of AV devices such as TVs, VCRs, CD/DVD players/jukeboxes, set-top boxes, stereo systems, MP3 players, still-image cameras, camcorders, electronic picture frames (EPFs), and the PC. The AV Architecture allows devices to support different types of formats for the entertainment content (such as MPEG2, MPEG4, JPEG, MP3, Windows Media Architecture (WMA), bitmaps (BMP), NTSC, PAL, ATSC, etc.) and multiple types of transfer protocols (such as IEC-61883/IEEE-1394, HTTP GET, RTP, HTTP PUT/POST, TCP/IP, etc.).
Multiple physical devices, each having one or more or the CP, MS and MR entities, can be operated together as a network.
Referring again to
Referring again to
The CP can request the QCS to refresh a particular cached result at any time by sending a message to the QCS which specifies the reference of the cached query. In response to receiving the refresh message, the QCS performs a further query of the CDS and stores the updated results. The CP may send a refresh message in this manner because the CP thinks it might need to retrieve that particular result very soon, or because the QCS does not have it's own method of deciding when to refresh it's caches, or because the QCS has a policy which involves discarding any caches if they are not explicitly re-requested by the CP. In this case, only a confirmatory message that the refresh has occurred needs to be returned to the CP and not the actual result.
The CP can also ask the QCS for an update of a result that the CP already holds. In this case, the QCS sends the CP some representation of it's currently cached result, rather than re-performing the CDS query for itself. The QCS re-performs the query to produce a new set of results. There are several ways in which the QCS can respond. In order to minimise the amount of data which needs to be transmitted to the CP, it is preferred that the QCS compares the new results with the previous results and returns a message to the CP which indicates what modifications have been made to the result currently held by the CP. This further reduces the communication and processing demands on the CP as unchanged parts of the cache are not communicated. Alternatively, the QCS can provide a full listing of the cached result to the CP or it can simply store the new result until it is required.
Cached results can be deleted at the request of the CP or QCS. In the case of a CP initiated query, the CP can send a message to the QCS specifying the reference of the cached query that it wishes to delete.
The QCS can be hosted by one physical device 75. As the UPnP architecture does not allow a MS device to query another MS, the correct way of showing the QCS is as a MS device embedded within a CP device, as a CP device embedded within an MS device or as separate MS and CP devices which are able to co-operate closely, for example, because they are hosted by the same physical device. Thus, the storage function 85 is shown as part of a Media Server device, MS-QCS, which is embedded within a Control Point device, CP-QCS, which hosts the control functions 81, 82, 83.
The query processing unit 94 can check whether a cache already exists for a query which is indicated as being a good candidate for caching. If a cache does not exist then the query processing unit can decide to request one from the QCS. If a request is made for a result which unit 94 knows has already been cached by the QCS, and which may shortly be needed, unit 94 can request the results from the QCS in advance of the actual selection by the user for storage in a short term cache on the CP. The extent to which the CP will cache in this way depends on the storage resources 95. Alternatively, unit 94 requests the results only when that menu selection is made.
Referring again to
By storing the query results at the QCS, rather than on the Control Point, the storage and communication requirements for the Control Point are reduced. However, the amount of caching is constrained by the processing and storage resources of the QCS and by the resources of the MS hosting the CDS that is to be queried.
The reduced overhead for each caching operation allows the CP to request more queries to be cached on a speculative basis, thereby improving the chances of a relevant cache being available, and so improving the average response time of the system. This should also improve the operating performance of the UI. This is particularly important if the CP device is resource limited and connected to the network by a low bandwidth link, such as a wireless remote control unit.
For completeness,
Number | Date | Country | Kind |
---|---|---|---|
0322797.2 | Sep 2003 | GB | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB04/51879 | 9/27/2004 | WO | 3/27/2006 |