



相关申请的交叉引用Cross References to Related Applications
本申请要求2004年8月19日提交的美国临时申请No.60/603,021的权益。This application claims the benefit of US Provisional Application No. 60/603,021, filed August 19,2004.
技术领域technical field
本发明总体涉及通信,并且更具体地涉及控制消费电子产品网络环境中的多媒体数据。The present invention relates generally to communications, and more particularly to controlling multimedia data in a consumer electronics network environment.
背景技术Background technique
诸如蜂窝电话的移动通信设备正在得到更广泛的接受,这是因为多种能力被添加到这种设备中。在增长的个人数字通信领域中,现代移动技术已经变成一个重要的特殊领域。一些移动通信设备包括允许设备与计算机和其他消费电子产品设备通信的功能。例如,公知为通用即插即用TM(UPnP)的标准提供了用于异类处理设备经由网络交换数据的方式。UPnP标准通过多个电子设备定义了针对端对端网络连通性的架构。UPnP标准包括用于服务发现的标准,并且UPnP标准主要目的是用于邻近或ad hoc网络。Mobile communication devices, such as cellular telephones, are gaining wider acceptance as capabilities are added to such devices. Modern mobile technology has become an important niche in the growing field of personal digital communications. Some mobile communication devices include features that allow the device to communicate with computers and other consumer electronics devices. For example, a standard known as Universal Plug and Play™ (UPnP) provides a means for heterogeneous processing devices to exchange data over a network. The UPnP standard defines an architecture for peer-to-peer network connectivity through multiple electronic devices. The UPnP standard includes standards for service discovery, and the UPnP standard is mainly intended for proximity or ad hoc networks.
各种设备公布UPnP设备和服务描述,因此创建易于连接设备的方式,并简化了网络的实现。UPnP被设计用于工作在多种环境下,包括家庭、商业、公共场所和附着于互联网的设备。UPnP标准是影响Web技术的开放架构,并且被设计用于提供ad-hoc组网和分布式计算。Various devices publish UPnP device and service descriptions, thus creating an easy way to connect devices and simplifying network implementation. UPnP is designed to work in a variety of environments, including homes, businesses, public places and Internet-attached devices. The UPnP standard is an open architecture that influences Web technologies and is designed to provide ad-hoc networking and distributed computing.
UPnP模型被设计用于支持针对多种设备类别的零配置组网和自动发现。这允许设备动态地加入网络、获取网络地址、传达设备的能力并知道其他设备的出现和能力。诸如动态主机配置协议(DHCP)和域名服务(DNS)的互联网协议可以可选地包括在UPnP网络中,尽管不需要这些协议。The UPnP model is designed to support zero-configuration networking and auto-discovery for multiple device classes. This allows a device to dynamically join a network, obtain a network address, communicate a device's capabilities, and be aware of the presence and capabilities of other devices. Internet protocols such as Dynamic Host Configuration Protocol (DHCP) and Domain Name Service (DNS) may optionally be included in a UPnP network, although these protocols are not required.
DHCP标准还包括音频-视频(AV)规范,具体面向消费电子产品(CE)设备,诸如TV、VCR、DVD播放器、立体声系统、MP3播放器等。通常,CE设备表示与多媒体内容(例如,电影、音频和静止图像)交互的任何设备,并且CE设备可以包括计算机和移动通信设备。The DHCP standard also includes audio-video (AV) specifications specifically for consumer electronics (CE) devices such as TVs, VCRs, DVD players, stereo systems, MP3 players, and the like. In general, a CE device refers to any device that interacts with multimedia content (eg, movies, audio, and still images), and CE devices may include computers and mobile communication devices.
UPnP AV框架定义三个主要逻辑实体:媒体服务器、媒体呈现器(Renderer)和AV控制点。媒体服务器可以使用多媒体内容,并可以经由UPnP网络将该内容发送到媒体呈现器设备。媒体呈现器能够将从UPnP网络接收的多媒体内容进行呈现。AV控制点基于端用户需求来协调媒体服务器和媒体呈现器的操作。The UPnP AV framework defines three main logical entities: media server, media renderer (Renderer) and AV control point. A media server can consume multimedia content and can send this content to a media renderer device via a UPnP network. The media presenter is capable of presenting multimedia content received from the UPnP network. The AV Control Point coordinates the operation of the Media Server and Media Renderer based on end-user requirements.
AV控制点包括在UPnP AV网络的命令和控制操作中。控制点访问内容目录服务器(CDS),以发现和列举经由媒体服务器可访问的内容。经由CDS可发现的内容可以包括诸如歌曲和视频剪辑的多条内容。CDS内容还可以包括容器,其代表诸如播放列表和相册的条目的集合。每个CDS内容对象,不论是条目或容器,都包括描述对象的各种属性(诸如标题、艺术家等)的元数据。The AV control point is included in the command and control operation of the UPnP AV network. The control point accesses a content directory server (CDS) to discover and list content accessible via the media server. Content discoverable via a CDS may include pieces of content such as songs and video clips. CDS content may also include containers, which represent collections of items such as playlists and photo albums. Each CDS content object, whether an item or a container, includes metadata describing various attributes of the object (such as title, artist, etc.).
UPnP媒体服务器的一个优点是,它能够在中心位置存储多媒体集合,而由于UPnP网络的分布式属性,所以内容可以由整个家庭中的不同位置的设备访问。因此,诸如移动通信设备的便携式单元制造理想的控制点以用于控制对这种数据的访问。为了移动通信设备从一个或多个媒体服务器访问数据,则移动通信设备必须与CDS进行通信。One advantage of a UPnP media server is that it can store multimedia collections in a central location, while due to the distributed nature of the UPnP network, the content can be accessed by devices at different locations throughout the home. Therefore, portable units such as mobile communication devices make ideal control points for controlling access to such data. In order for a mobile communication device to access data from one or more media servers, the mobile communication device must communicate with the CDS.
将可以理解,CDS可以包含对几千个内容对象的引用。如果移动设备必须列举出大量对象,则从移动设备访问CDS中消耗的带宽可能是非常大的。与有线设备相比,移动通信设备通常具有有限的带宽,因此如果要求移动设备重复地访问如此大的数据量,则移动设备可能显示出较差的可用率和性能。为了移动设备经由UPnP或类似的网络来控制多媒体内容的部署,希望提供一种方式,用以在移动设备和提供目录服务器的那些网络实体之间有效地传送内容目录数据。It will be appreciated that a CDS may contain references to thousands of content objects. The bandwidth consumed in accessing the CDS from a mobile device can be very large if the mobile device has to enumerate a large number of objects. Mobile communication devices generally have limited bandwidth compared to wired devices, so mobile devices may show poor availability and performance if they are required to repeatedly access such a large amount of data. For mobile devices to control the deployment of multimedia content via UPnP or similar networks, it is desirable to provide a way to efficiently communicate content catalog data between mobile devices and those network entities providing catalog servers.
发明内容Contents of the invention
本公开涉及用于控制网络上的设备之间的多媒体数据的部署的系统、设备和方法。根据本发明的一个实施方式,一种方法包括在目录服务器上存储多个数据条目。每个数据条目描述可经由网络访问的一个或多个多媒体数据对象。目录服务器的同步对象与数据条目关联。同步对象能够描述对数据条目的改变。数据条目从目录服务器经由网络下载到控制点设备的高速缓存。响应于目录服务器的数据条目的至少一个中的改变,而改变目录服务器的同步对象。基于目录服务器的同步对象的改变,利用至少一个数据条目中的改变,更新控制点设备的高速缓存。The present disclosure relates to systems, devices and methods for controlling the deployment of multimedia data between devices on a network. According to one embodiment of the invention, a method includes storing a plurality of data entries on a directory server. Each data entry describes one or more multimedia data objects accessible via the network. A synchronization object of the directory server is associated with a data entry. Synchronization objects can describe changes to data items. Data entries are downloaded from the directory server over the network to the cache of the control point device. A synchronization object of the directory server is changed in response to a change in at least one of the data entries of the directory server. A cache of the control point device is updated with a change in at least one data entry based on the change in the synchronization object of the directory server.
在更具体的实施方式中,本方法进一步包括修改所述同步对象,以反映控制点设备的高速缓存的更新。在一种配置中,同步对象可以包括数据条目的散列。在其他配置中,同步对象能够描述在与所述多媒体数据对象关联的时间戳和签名的至少一个中的改变。在其他配置中,同步对象能够描述对多个数据条目的一个条目的增加和删除。In a more specific embodiment, the method further comprises modifying said synchronization object to reflect the update of the cache of the control point device. In one configuration, a synchronization object may include a hash of data entries. In other configurations, the synchronization object can describe a change in at least one of a timestamp and a signature associated with the multimedia data object. In other configurations, a synchronization object can describe additions and deletions to one of the plurality of data items.
在更具体的实施方式中,响应于目录服务器的数据条目的至少一个中的改变,而对目录服务器的同步对象改变包括将数据添加到同步对象。所添加的数据描述至少一个数据条目中的改变。在其他更具体的实施方式中,对目录服务器的同步对象改变还可以包括创建描述改变的新的同步对象,并可以将新的同步对象与条目进行关联。在这些具体的实施方式中,更新控制点设备的高速缓存可以包括检查在高速缓存的先前更新之后和在高速缓存的当前更新之前所添加的多个新的同步对象。In a more specific embodiment, changing the synchronization object to the directory server in response to a change in at least one of the data entries of the directory server includes adding data to the synchronization object. The added data describes a change in at least one data item. In other more specific implementation manners, changing the synchronization object to the directory server may also include creating a new synchronization object describing the change, and associating the new synchronization object with the entry. In these particular implementations, updating the cache of the control point device may include checking for a plurality of new synchronization objects that were added after a previous update of the cache and before a current update of the cache.
根据本发明的另一实施方式,一种装置包括:网络接口,其能够经由ad hoc对等网络与目录服务器进行通信;处理器,其耦接到所述网络接口;以及存储器,其耦接到所述处理器。所述存储器包括能够存储数据的高速缓存并包括控制点模块。控制点模块具有使得处理器进行以下步骤的指令:将多个数据条目从目录服务器经由网络下载到高速缓存,每个数据条目描述可经由网络访问的一个或多个多媒体数据对象;经由网络访问与目录服务器的数据条目关联的目录服务器的同步对象,同步对象能够描述对数据条目的改变;检测目录服务器的同步对象中的改变,该改变响应于目录服务器的数据条目的至少一个中的改变而出现;以及基于目录服务器的同步对象的改变,利用至少一个数据条目中的改变,更新高速缓存。According to another embodiment of the present invention, an apparatus includes: a network interface capable of communicating with a directory server via an ad hoc peer-to-peer network; a processor coupled to the network interface; and a memory coupled to the processor. The memory includes a cache memory capable of storing data and includes a control point module. The control point module has instructions causing the processor to: download a plurality of data entries from the directory server to the cache via the network, each data entry describing one or more multimedia data objects accessible via the network; a synchronization object of the directory server associated with the data entry of the directory server, the synchronization object capable of describing a change to the data entry; detecting a change in the synchronization object of the directory server, the change occurring in response to a change in at least one of the data entries of the directory server ; and updating the cache with a change in at least one data entry based on a change in the synchronization object of the directory server.
根据本发明的另一实施方式,一种计算机可读介质存储了可由能够耦接到ad hoc对等网络的数据处理设备执行的指令。该指令可用于执行包括以下的步骤:存储多个数据条目,每个数据条目描述一个或多个多媒体数据对象,所述多媒体对象可由网络实体经由网络访问;将数据条目向网络实体进行传递;存储能够描述到数据条目的改变的同步对象;响应于至少一个数据条目中的改变,而改变同步对象;以及将同步对象中的改变传送到网络实体,从而网络实体能够基于同步对象中的改变而更新数据条目的高速缓存。According to another embodiment of the present invention, a computer readable medium stores instructions executable by a data processing device capable of being coupled to an ad hoc peer-to-peer network. The instructions are operable to perform steps comprising: storing a plurality of data entries, each data entry describing one or more multimedia data objects accessible by the network entity via the network; delivering the data entry to the network entity; storing a synchronization object capable of describing changes to a data item; changing the synchronization object in response to a change in at least one data item; and communicating the change in the synchronization object to a network entity so that the network entity can update based on the change in the synchronization object A cache of data entries.
根据本发明的另一实施方式,一种设备包括能够经由ad hoc对等网络进行通信的网络接口。处理器耦接到网络接口,而存储器耦接到处理器。存储器包括目录服务模块,其具有引起所述处理器进行以下操作的指令:存储多个数据条目,每个数据条目描述一个或多个多媒体数据对象,所述多媒体对象是网络实体可经由网络访问的;将数据条目向网络实体传递;将同步对象与数据实体关联,同步对象能够描述对数据实体的改变;响应于与同步对象关联的至少一个数据条目中的改变,而改变所述同步对象;以及将同步对象中的改变传送到网络实体,从而网络实体能够基于同步对象中的改变而更新数据条目的高速缓存。According to another embodiment of the present invention, a device comprises a network interface capable of communicating via an ad hoc peer-to-peer network. The processor is coupled to the network interface, and the memory is coupled to the processor. The memory includes a directory services module having instructions that cause the processor to: store a plurality of data entries, each data entry describing one or more multimedia data objects accessible by a network entity via the network ; passing the data entry to the network entity; associating a synchronization object with the data entity, the synchronization object being capable of describing changes to the data entity; changing the synchronization object in response to a change in at least one data entry associated with the synchronization object; and Changes in the synchronization object are communicated to the network entity so that the network entity can update a cache of data entries based on the change in the synchronization object.
根据本发明的另一实施方式,计算机可读介质具有存储的指令,该指令可由能够耦接到ad hoc对等网络的数据处理设备执行。该指令可以用于执行包括以下的步骤:存储多个数据条目,每个数据条目描述一个或多个多媒体数据对象,所述多媒体对象是网络实体可经由网络访问;将数据条目向网络实体传递;存储能够描述对数据实体的改变的同步对象;响应于在至少一个数据实体中的改变,而改变所述同步对象;以及将所述同步对象中的改变传递到网络实体,从而所述网络实体能够基于所述同步对象中的改变而更新所述数据条目的高速缓存。According to another embodiment of the present invention, a computer readable medium has stored instructions executable by a data processing device capable of being coupled to an ad hoc peer-to-peer network. The instruction may be used to perform steps comprising: storing a plurality of data entries, each data entry describing one or more multimedia data objects, the multimedia objects being accessible by the network entity via the network; delivering the data entry to the network entity; storing a synchronization object capable of describing a change to a data entity; changing the synchronization object in response to a change in at least one data entity; and communicating the change in the synchronization object to a network entity so that the network entity can The cache of data entries is updated based on changes in the synchronization objects.
根据本发明的另一实施方式,一种系统包括ad hoc对等网络。目录服务器耦接到网络并被配置为在数据仓库(data store)上存储多个数据条目。每个数据条目描述可经由网络访问的一个或多个多媒体数据对象。将目录服务器的同步对象与所述数据实体关联。响应于改变所述数据条目,而改变目录服务器的同步对象。该系统还包括耦接到网络的控制点。该控制点被配置为将多个数据条目从目录服务器下载到控制点的高速缓存,并检测目录服务器的同步对象中的改变。控制点基于目录服务器的同步对象的改变,利用至少一个数据条目中的改变,更新高速缓存。According to another embodiment of the present invention, a system includes an ad hoc peer-to-peer network. A directory server is coupled to the network and is configured to store a plurality of data items on a data store. Each data entry describes one or more multimedia data objects accessible via the network. Associating a synchronization object of the directory server with the data entity. In response to changing the data entry, a synchronization object of the directory server is changed. The system also includes a control point coupled to the network. The control point is configured to download a plurality of data entries from the directory server to the control point's cache, and to detect changes in synchronization objects of the directory server. The control point updates the cache with the change in at least one data entry based on the change in the synchronization object of the directory server.
根据本发明的另一实施方式,一种设备包括:用于将从目录服务器下载的多个数据条目进行存储的装置,每个数据条目描述可经由网络访问的一个或多个多媒体数据对象;用于访问与目录服务器的数据条目关联的目录服务器的同步对象的装置,同步对象能够描述对目录服务器的数据条目的改变;用于检测目录服务器的同步对象中的改变的装置,所述改变响应于目录服务器的数据条目的至少一个中的改变而出现;以及用于基于所述目录服务器的同步对象的改变,利用至少一个数据条目中的改变,更新所述设备上存储的数据条目的装置。According to another embodiment of the present invention, an apparatus comprises: means for storing a plurality of data entries downloaded from a directory server, each data entry describing one or more multimedia data objects accessible via a network; means for accessing a synchronization object of a directory server associated with a data entry of the directory server, the synchronization object being capable of describing a change to a data entry of the directory server; means for detecting a change in a synchronization object of the directory server, the change being responsive to a change in at least one of the directory server's data entries; and means for updating the data entry stored on the device with the change in the at least one data entry based on the change in the synchronization object of the directory server.
根据本发明的另一实施方式,一种设备包括:用于将从目录服务器下载的多个数据条目进行存储的装置,每个数据条目描述可经由网络访问的一个或多个多媒体数据对象;用于访问与目录服务器的数据条目关联的目录服务器的同步对象的装置,同步对象能够描述对目录服务器的数据条目的改变;用于检测目录服务器的同步对象中的改变的装置,所述改变响应于所述目录服务器的数据条目的至少一个中的改变而出现;以及用于基于所述目录服务器的同步对象的改变,利用至少一个数据条目中的改变,更新所述设备上存储的数据条目的装置。According to another embodiment of the present invention, an apparatus comprises: means for storing a plurality of data entries downloaded from a directory server, each data entry describing one or more multimedia data objects accessible via a network; means for accessing a synchronization object of a directory server associated with a data entry of the directory server, the synchronization object being capable of describing a change to a data entry of the directory server; means for detecting a change in a synchronization object of the directory server, the change being responsive to occurs from a change in at least one of the data entries of the directory server; and means for updating the data entry stored on the device with the change in the at least one data entry based on the change in the synchronization object of the directory server .
根据本发明的另一实施方式,一种方法包括在目录服务器上存储多个数据条目。每个数据条目描述可经由网络访问的一个或多个多媒体数据对象。将目录服务器的唯一ID与至少一个数据条目进行关联。将数据条目从所述目录服务器经由网络下载到移动终端的高速缓存。响应于与所述唯一ID关联的数据条目的至少一个中的改变,改变所述目录服务器的唯一ID。基于目录服务器的唯一ID的改变,利用至少一个数据条目中的改变,更新所述移动终端的高速缓存。According to another embodiment of the present invention, a method includes storing a plurality of data entries on a directory server. Each data entry describes one or more multimedia data objects accessible via the network. The unique ID of the directory server is associated with at least one data entry. Data entries are downloaded from the directory server to a cache of the mobile terminal via a network. The unique ID of the directory server is changed in response to a change in at least one of the data entries associated with the unique ID. A cache of the mobile terminal is updated with a change in at least one data entry based on a change in the unique ID of the directory server.
特别地,利用附在这里并形成这里一部分的权利要求书指出了表征本发明新颖性的这些和各种其他优势和特征。然而,为了更好地理解本发明,其优点以及通过其使用所达到的目的,应该对形成本发明另外部分的附图进行参考,并对伴随的描述性内容进行参考,其中存在根据本发明的系统、设备和方法而示出的和描述的特定例子。These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and forming a part hereof. However, for a better understanding of the invention, its advantages and objects attained by its use, reference should be made to the accompanying drawings which form a further part hereof, and to the accompanying descriptive matter in which there are Specific examples of systems, devices, and methods are shown and described.
附图说明Description of drawings
结合在以下附图中示出的实施方式描述本发明。The invention is described in conjunction with the embodiments shown in the following figures.
图1示出根据本发明的实施方式的通用即插即用多媒体系统;Fig. 1 shows a universal plug and play multimedia system according to an embodiment of the present invention;
图2A示出根据本发明的实施方式的用于初始填充目录服务器高速缓存的过程;Figure 2A illustrates a process for initially populating a directory server cache according to an embodiment of the invention;
图2B示出根据本发明的实施方式的递归地读取目录服务器容器从而填充目录服务器高速缓存的过程。Figure 2B illustrates the process of recursively reading a directory server container to populate a directory server cache, according to an embodiment of the invention.
图3示出根据本发明的实施方式的在可用于跟踪内容目录改变的目录服务器上存储的对象和容器的设置;Figure 3 illustrates an arrangement of objects and containers stored on a directory server that can be used to track content directory changes, according to an embodiment of the invention;
图4示出根据本发明的实施方式的用于使用高速缓存同步来备份媒体服务器数据的交换序列;以及Figure 4 illustrates an exchange sequence for backing up media server data using cache synchronization, according to an embodiment of the invention; and
图5示出根据本发明的实施方式的被配置为控制点和媒体呈现器的移动终端。FIG. 5 illustrates a mobile terminal configured as a control point and a media renderer according to an embodiment of the present invention.
具体实施方式Detailed ways
在以下各种示例性实施方式的描述中,参考构成这里一部分的附图,其中通过图示可实现本发明的各种实施方式来进行表示。将理解到在不偏离本发明的范围的情况下,可以利用其他的实施方式,如可以做出结构上的和操作上的改变。In the following description of various exemplary embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized, as structural and operational changes may be made without departing from the scope of the present invention.
通常,本发明提供一种由控制设备控制多媒体数据的部署的方式。控制设备利用描述多媒体对象的目录数据以及多媒体对象之间的定义关系(例如分层结构)。元数据可以包括诸如多媒体数据文件的位置、多媒体对象的描述和分类、编解码器、传输协议、定制用户数据等的信息。关系数据可以包括对多媒体对象进行分组的集合定义或容器。In general, the invention provides a way of controlling the deployment of multimedia data by a control device. The control device utilizes catalog data describing multimedia objects and defined relationships (eg hierarchical structures) between multimedia objects. Metadata may include information such as the location of multimedia data files, description and classification of multimedia objects, codecs, transport protocols, custom user data, and the like. Relational data may include collection definitions or containers that group multimedia objects.
本发明可以利用一种机制,该机制使用现有的UPnP AV框架来提供用于触发CDS和UPnP AV控制点之间的元数据的同步的信息。另外,CDS元数据可以由控制点或作为代表该控制点的设备来存储/高速缓存,从而可以根据用户的位置以良好的方式管理媒体文件(即,高级搜索、上下文感知搜索等)。这些同步机制还可以用于使得家庭网络中的媒体文件的备份过程自动化。The present invention may utilize a mechanism that uses the existing UPnP AV framework to provide information for triggering synchronization of metadata between CDS and UPnP AV control points. In addition, CDS metadata can be stored/cached by the control point or as a device acting on behalf of the control point, so that media files can be managed in a good way according to the user's location (ie, advanced search, context-aware search, etc.). These synchronization mechanisms can also be used to automate the backup process of media files in the home network.
典型地,多媒体目录数据存储在网络的一个或多个服务器单元。控制设备经由网络访问来自服务器单元(例如,媒体服务器的CDS)的多媒体目录数据。控制设备在数据存储装置中对目录数据进行本地高速缓存。用户设备和服务器单元可以通过系统和对象标识符的使用来对数据进行同步。标识符是使得控制设备确定服务器单元的数据是否已经整体出现改变的标记。标识符还可以用于提供更细粒度的改变确定,诸如跟踪多媒体对象、容器或其他关系数据的状态。Typically, multimedia catalog data is stored at one or more server units of the network. The control device accesses multimedia catalog data from a server unit (eg CDS of a media server) via a network. The control device caches the directory data locally in the data store. User equipment and server units can synchronize data through the use of system and object identifiers. The identifier is a flag that enables the control device to determine whether or not the data of the server unit has changed as a whole. Identifiers can also be used to provide more fine-grained determination of changes, such as tracking the state of multimedia objects, containers, or other relational data.
标识符可以包括在CDS中具体格式化的条目,该CDS将存储媒体服务器的“签名”。每次在CDS中增加、删除或更新新的条目时,媒体服务器将更新该签名。该签名可以表示为每次有改变时进行增加的简单的计数器、元数据的散列或者可以具有也指示改变的属性的更高级的含义。可选地,CDS可以定义新条目以用于同步,或者内容总结/备份数据,并且该条目可以包括:时间戳、签名等。在这种设置中的控制点还将存储与控制点连接的每个CDS的唯一ID。The identifier may comprise a specifically formatted entry in the CDS that will store the "signature" of the media server. The media server will update the signature every time a new entry is added, deleted or updated in the CDS. This signature may represent a simple counter that is incremented each time there is a change, a hash of metadata, or may have a higher-level meaning that also indicates a property of the change. Optionally, CDS can define a new entry for synchronization, or content summary/backup data, and this entry can include: timestamp, signature, etc. A control point in such a setup will also store a unique ID for each CDS connected to the control point.
传统上,消费电子产品设备使用专用电缆和电接口交换数据。例如,音频/视频(AV)接收器可以具有用于接收模拟合成视频、模拟音频、数字音频、模拟分量视频、数字视频、远程控制信号等的任何组合的输入端。消费电子设备通常经由电缆连接到AV接收器,因此通常的娱乐中心在中央位置周围聚集。随着无线家庭组网的不断采用,要求所有设备连接到诸如AV接收器的控制位置和中央交换的概念正在变得过时。数字组网技术使得将被访问的多媒体和其他内容分布于家庭中。在一些设置中,还可以经由诸如互联网的长距离接入网而远程访问数据。Traditionally, consumer electronics devices exchange data using specialized cables and electrical interfaces. For example, an audio/video (AV) receiver may have inputs for receiving any combination of analog composite video, analog audio, digital audio, analog component video, digital video, remote control signals, and the like. Consumer electronics devices are usually connected to the AV receiver via cables, so a typical entertainment center is clustered around a central location. As wireless home networking continues to be adopted, the concept of requiring all devices to be connected to a control location and central switch such as an AV receiver is becoming obsolete. Digital networking technologies enable the distribution of accessed multimedia and other content throughout the home. In some settings, data may also be accessed remotely via a long-distance access network such as the Internet.
在家庭环境中提供数据分发能力的期望导致产生诸如UPnP标准的技术。UPnP被开发用于允许在诸如家庭网络的本地网络中的电子设备之间的容易互操作性。UPnP AV规范是UPnP的修改版,其允许消费电子产品设备在整个家庭网络中分发娱乐内容。尽管针对UPnP网络描述了本发明,可以理解,本发明还可以应用于允许在设备之间数字地分发娱乐内容的其他技术。例如,这里描述的概念可以等同地应用于家庭自动化技术中,诸如X-10、xAP、Jini、HomeRF、蓝牙、IrDA等。The desire to provide data distribution capabilities in the home environment has led to technologies such as the UPnP standard. UPnP was developed to allow easy interoperability between electronic devices in a local network, such as a home network. The UPnP AV specification is a modified version of UPnP that allows consumer electronics devices to distribute entertainment content throughout a home network. Although the invention has been described with respect to a UPnP network, it will be appreciated that the invention can also be applied to other technologies that allow digital distribution of entertainment content between devices. For example, the concepts described here can be equally applied in home automation technologies such as X-10, xAP, Jini, HomeRF, Bluetooth, IrDA, etc.
现在参考图1,根据本发明的实施方式示出了UPnP AV架构100的各种实体。具体地,示出了UPnP架构的三个逻辑实体:媒体服务器102、媒体呈现器104和控制点106。媒体服务器102可以对位于一个或多个数据仓库108中的娱乐内容107访问。媒体服务器102能够经由网络112向诸如媒体呈现器104的另一个UPnP AV设备发送内容107。媒体呈现器104能够从网络112接收多媒体内容107,并将内容107呈现在其硬件接口上。控制点106协调媒体服务器102和媒体呈现器104的操作,从而执行端用户所期望的动作。Referring now to FIG. 1 , various entities of a UPnP AV architecture 100 are shown in accordance with an embodiment of the present invention. Specifically, three logical entities of the UPnP architecture are shown:
媒体服务器102和媒体呈现器104实现一组UPnP AV服务。这些服务能够由控制点106使用,以将内容从服务器102传送到呈现器104。在媒体服务器102与媒体呈现器104之间传输数据中,通常仅在命令和控制操作中涉及控制点106。这些操作通常包括识别和选择将要用于数据传输的数据、数据传输协议和数据格式。媒体服务器102和媒体呈现器104将使用由网元102、104二者都支持的协议和格式来传输希望的内容。因此,可以独立于由服务器102和呈现器104所用的协议或数据格式而实现控制点106。
媒体服务器102、媒体呈现器104和控制点106是在UPnP AV架构100中定义的逻辑实体。在架构100中采用的设备可以包括这些实体102、104、106的任意组合的功能。例如,设备可以包括如虚线114所标识的媒体服务器104和嵌入的控制点106。这样的设备114包括对来自呈现内容的相同位置的操作进行控制的能力。
UPnP架构100适合于由广泛的电子设备使用。例如,消费电子产品设备120可以利用UPnP网络112。消费电子设备120可以包括音频设备122,电视124、摄像机126、视频游戏128、红外(IR)远程控制129或传统上与消费娱乐相关的任何其他设备,如通用消费电子产品设备130所代表的。The UPnP framework 100 is suitable for use by a wide range of electronic devices. For example, consumer electronics device 120 may utilize UPnP network 112 . Consumer electronics device 120 may include audio equipment 122, television 124, video camera 126, video game 128, infrared (IR) remote control 129, or any other device traditionally associated with consumer entertainment, as represented by general consumer electronics device 130.
还可以在UPnP架构100中利用数据处理设备132。数据处理设备132通常提供计算或通信功能。数据处理设备132的例子包括蜂窝电话134、台式计算机136、便携式计算机138、路由器140、个人数字助理(PDA)142或由通用设备144所代表的任何其他设备。将可以理解,消费电子产品设备120与数据处理设备132之间的区别是稍微任意的,因为大多数现代电子设备包括数据处理功能(例如,嵌入式微处理器)并且大多数有用的计算/通信设备具有家用应用。Data processing device 132 may also be utilized in UPnP architecture 100 . Data processing device 132 typically provides computing or communication functionality. Examples of data processing device 132 include cellular telephone 134 , desktop computer 136 , portable computer 138 , router 140 , personal digital assistant (PDA) 142 , or any other device represented by general purpose device 144 . It will be appreciated that the distinction between consumer electronics device 120 and data processing device 132 is somewhat arbitrary, since most modern electronic devices include data processing functionality (e.g., embedded microprocessors) and most useful computing/communication devices Has household applications.
通常在例如家庭或办公室的本地环境中利用UPnP架构100。架构100可以利用有线和无线网络媒体和协议的任何组合。还可以使得UPnP架构100的网络和设备120、132是经由诸如互联网146的公共数据传输媒体外部可访问的。例如,UPnP网关/路由器148可以使得远程设备150经由互联网146或其他公共可访问媒体(例如,公共无线电波)来访问UPnP网络112的一些或所有单元。The UPnP architecture 100 is typically utilized in a local environment such as a home or office. Architecture 100 can utilize any combination of wired and wireless networking media and protocols. The network and devices 120 , 132 of the UPnP architecture 100 may also be made externally accessible via a public data transmission medium such as the Internet 146 . For example, UPnP gateway/router 148 may enable remote device 150 to access some or all elements of UPnP network 112 via Internet 146 or other publicly accessible medium (eg, public airwaves).
利用UPnP AV网络的AV能力通常涉及设备之间的交互,所述设备扮演媒体服务器102、媒体呈现器104和控制点106的一个或多个角色。这些实体102、104、106的逻辑功能可以包括在现有技术已知的消费电子产品和数据处理设备120、132中。例如,PDA 142可以作为控制点106,以便从用作媒体服务器102的计算机136选择可用的流传输视频。流传输视频可以被引导到用作媒体呈现器104的电视124。假设架构100中的所有设备统一地包括UPnP标准,则在设备之间的这种类型的交互可以仅利用用户的最少设置和配置而发生。AV capabilities utilizing UPnP AV networks typically involve interactions between devices that play one or more roles of
UPnP AV技术的特别有用的应用包括将无线设备(例如,蜂窝电话134)用作控制点106。通常,这些无线设备134可以被适用于通过多种无线网络和协议通信,包括802.11 WLAN、蓝牙、CDMA、TDMA等。无线设备134通常是便携式的和由电池供电的,并且理想地适于作为控制点106,因为用户易于携带无线设备134用于例如接收电话呼叫的目的。因此,能够提供UPnP控制106的无线设备134使得用户不必搜索指定的远程控制129或其他设备。而且,现代蜂窝电话134和类似设备的高级显示能力对于传送控制点106所需的潜在的复杂用户接口而言是理想的。A particularly useful application of UPnP AV technology includes using a wireless device (eg, cell phone 134) as
使用无线设备134作为控制点106的缺点涉及这种设备使用的通常低的带宽连接。尽管一些无线协议(例如,802.11g)提供不断增加的带宽,但大多数便携式设备不能利用这种带宽,例如由于功率传输限制。因此,当执行网络通信时,用作UPnP控制点106的无线设备134将需要仔细限制带宽的使用。为了更好地理解UPnP控制点106的带宽利用率的问题,提出了关于控制点106在UPnP AV规范中怎样操作的更详细的讨论。A disadvantage of using wireless devices 134 as control points 106 relates to the typically low bandwidth connections used by such devices. Although some wireless protocols (eg, 802.11g) provide ever-increasing bandwidth, most portable devices cannot take advantage of this bandwidth, for example due to power transfer limitations. Accordingly, a wireless device 134 acting as a
UPnP控制点106通常控制媒体服务器102和媒体呈现器104之间的数据传输。这可以包括:在网络上定位服务器102和呈现器104;列举从服务器102可获得的内容;询问服务器102和呈现器106,以确定公共传输协议和数据格式;利用期望的内容以及选择的协议和格式,配置服务器102和呈现器104;启动内容的传输;规定对于诸如数据速率、数量等内容的调整。控制点106通常将包括用户接口152,用于将目录信息传达给用户并从用户接收命令。控制管理器154可以用于用户接口152和服务器102以及呈现器104之间的通信,以便执行用户所期望的数据传输任务。The
控制点106执行的一个任务包括询问媒体服务器102,以确定服务器102上可用的内容。媒体服务器102可以访问娱乐内容107,并能够将该内容107发送到另一设备用于呈现。媒体服务器102包括内容目录服务(CDS)156,其使得控制点106发现和列举服务器的所有内容。服务器102还包括连接管理器158,其允许控制点106协商并选择当在媒体服务器102和呈现器104之间传输内容时所使用的协议和数据格式。服务器102可以可选择地包括AV传送服务160,其用于在媒体呈现器104上回放期间控制内容流(例如暂停、快进)。One task performed by the
媒体呈现器104被配置为经由网络112或其他装置(例如直接的有线连接)接收内容107,并呈现内容107。内容107可以由任何形式的电子设备呈现,所述电子设备包括视频显示器、扬声器、发动机、加热/制冷单元、电化学设备、开关设备等。媒体呈现器104包括呈现控制162,其可以被用于控制内容怎样被呈现。呈现控制162可以用于改变诸如视频亮度和音量的参数。媒体呈现器104包括连接管理器164,其用于与媒体服务器102协商和选择协议和数据格式。类似于媒体服务器102,媒体呈现器可以包括AV传送服务166,其被用于控制内容流。Media renderer 104 is configured to receive content 107 via network 112 or other means (eg, a direct wired connection) and to render content 107 . Content 107 may be presented by any form of electronic device, including video displays, speakers, motors, heating/cooling units, electrochemical devices, switchgear, and the like. Media renderer 104 includes rendering controls 162, which may be used to control how content is rendered. Presentation controls 162 may be used to change parameters such as video brightness and volume. The media renderer 104 includes a
关于由无线设备134所使用的带宽,特别关注的是CDS 156与控制点106之间的通信。CDS 156使得控制点106发现和列举可由媒体服务器102访问的内容107。以术语“对象”描述媒体服务器102上可用的内容107。CDS 156提供描述这些对象的各种属性的元数据。元数据包括诸如作为题目、持续时间、创建时间、修改时间等属性。Of particular concern with respect to the bandwidth used by the wireless device 134 is the communication between the
当控制点106加入网络112时,其使用简单服务发现协议(SSDP)来发现网络中的所有媒体服务器102和媒体呈现器104。实现媒体服务器和媒体呈现器模板的所有设备将以设备的描述文档的URL来响应于该请求。一旦定位媒体服务器和呈现器,控制点106得到和解析描述文档,以确定每个设备的确切能力。When the
在初始化之后,控制点106可以使用每个媒体服务器的CDS 156来列举可从服务器102获得的内容。控制点106可以从多个服务器收集CDS 156信息,并且将该信息聚集到可从特定网络112获得的所有内容的单个视图中。CDS 156利用可扩展标记语言(XML)描述对象和它们的相关性质。对象是能够由CDS从浏览或搜索动作返回的任何数据实体。一种性质代表CDS 156或对象的客户端定义特征。CDS 156将XML中的性质表达为单元或属性。After initialization, the
CDS 156利用对象分类的层次。具体地,对象的两个高层分类是“项目”和“容器”。项目通常表示AV数据的单元,诸如CD轨道或电影文件。容器代表对象的集合。容器可以包含项目和其他容器。CDS 156形成提供这些对象的描述的XML文档。
CDS 156主要是基于“动作”的,意指能够从控制点106调用某些预定的动作,并且CDS 156以数据做出响应。控制点106可以调用至少两个动作,以从CDS发现对象:“浏览”和“搜索”。CDS 156至少支持“浏览”动作,并且可以选择地支持“搜索”动作。浏览包括在CDS目录结构的条目点(即,容器对象)处提取数据对象列表。浏览动作可以由功能原型“Browse(ObjectID、BrowseFlag、Filter、StartingIndex、RequestedCount)”来表示。ObjectID指当前被浏览的对象的ID。CDS 156中的根容器具有总是为“0”的ObjectID。如果BrowseFlag被设置为“BrowseMetadata”,则CDS 156将返回与ObjectID相关的元数据。如果BrowseFlag被设置为“BrowseDirectChildren”,则ObjectID指容器,并且CDS 156将返回与在容器中包含的对象关联的元数据的列表。The
控制点106可以使用在根容器处开始的浏览动作来发现CDS156的整个内容。作为该动作和随后动作所找到的结果的任何容器被用作针对随后的浏览请求的条目点。以这种方式,控制点106可以遍历由CDS所展示的整个目录结构。
响应于“浏览”动作,CDS 156将返回描述所请求的对象的XML段。CDS 156还将返回指示结果中返回的对象数目、容器中对象的总数目(如果BrowseFlag被设置为BrowseDirectChildren)以及UpdateID的值。UpdateID是由CDS 156使用的标识符,以指示容器的当前状态。如果容器的性质或内容改变,则其UpdateID被增加。如果ObjectID是零(即,对象是根容器),则返回的UpdateID是称为SystemUpdateID的特定标识符。无论何时CDS 156目录中发生任何改变,SystemUpdateID变量都改变。In response to the "Browse" action,
CDS 156可以可选择地相应于“搜索”动作。搜索用于找到匹配特定搜索准则的一组对象。CDS 156能够提供性质列表,在其上能够通过响应于GetSearchCapability动作进行搜索。由于利用浏览动作,所以CDS 156将返回描述满足该搜索的对象的XML段(如果能够找到任何所述对象)。
在控制点106通过浏览或搜索动作得到对象的列表时,控制点106可以将结果显示在用户接口152中。用户可以从该接口152选择项目以用于进一步浏览,或选择项目以用于呈现。在用户选择将要被呈现的内容之后,控制点106从CDS 156提取元数据,用于所选择的项目。该元数据被用于确定所支持的传送协议和数据格式。接着控制点106将该元数据与来自呈现器的连接管理器164的数据进行比较,以确定呈现器104是否能够呈现所期望的内容。When
在识别公共协议/格式之后,控制点106在服务器102和呈现器104二者上调用连接管理器服务158、164。向每个设备通知目标协议/格式,并且相应的连接管理器158、164基于所选择的公共协议和格式建立和配置多媒体回放会话。After identifying the common protocol/format, the
CDS 156主要设计用于使得控制点106发现可经由CDS 156访问的数据。控制点106可以完全依赖于CDS 156来确定媒体服务器102上的内容的当前状态。但是,存在当将CDS 156数据高速缓存在控制点设备106上是优选的情况。例如,控制点106可以提供经由CDS 156不可得到的高级搜索能力,诸如上下文感知搜索。另外,控制点106可以更快地搜索本地高速缓存而不是通过低带宽连接向CDS 156发送请求。当从网络112完全断开连接时,控制点106甚至可以访问本地高速缓存。在其他情况下,控制点106可以访问多个CDS 156服务器,所述多个CDS 156服务器不总是可由控制点106访问。通过将搜索限制到仅在当前网络连接上可用的那些CDS,可以改善搜索。
根据本发明的一个实施方式,控制点106包含高速缓存管理器168和高速缓存170,该高速缓存用于存储从CDS 156接收的对象元数据。高速缓存170可以在任何形式的易失性或非易失性存储器上实现,所述易失性或非易失性存储器包括硬驱动器、可移动介质、闪存、随机存取存储器(RAM)等。高速缓存168是软件组件,其能够自动启动动作(例如,浏览),以从CDS 156提取对象数据,并将该数据存储到高速缓存170中。高速缓存管理器168还可以监视由用户接口152执行的CDS动作,以及控制管理器154以创建部分CDS高速缓存和/或以更新现有的高速缓存条目。用户接口152可以显示数据和启动动作,例如,经由高速缓存管理器168进行搜索,代替经由控制管理器154和CDS 156进行搜索。According to one embodiment of the invention, the
当在UPnP网络上第一次发现CDS 156时,控制点106设备可以被配置为读取和高速缓存整个CDS 156数据集合。用于根据本发明的实施方式的将CDS数据读取到高速缓存170的一个示例过程在图2A和2B中示出。通过以根容器作为参量调用202图2B中所示的Read_Container例程204,Build_Cache例程200开始。通过取得206This_Container中的所有对象,Read_Container例程204开始,This_Container是传递到例程204中的参量。例如,通过以BrowseDirectChildren的BrowseFlag调用浏览(Browse),可以执行该步骤206。通过在This_Container中找到的容器(如果有的话)循环迭代208,并且在每个找到的容器上重复地调用210Read_Container。在Read_Container 210返回之后,针对每个容器的元数据被添加212添加到高速缓存。接着,通过循环迭代214,项目以及每个项目的元数据被添加216添加到高速缓存。在所有容器和项目的元数据被添加到高速缓存之后,例程退出218。When a
作为图2A和图2B所示例程的可选方案,对于CDS接口的修改可以允许在单个动作中下载整个CDS目录结构。例如,浏览动作可以被扩展到允许在单个调用中下载整个CDS数据集合。这可以通过配置浏览动作以支持诸如“BrowseAll”的BrowseFlag而完成。使用BrowseAll标志的浏览动作将返回列出整个CDS元数据存放的文档。As an alternative to the routine shown in Figures 2A and 2B, modifications to the CDS interface may allow downloading of the entire CDS directory structure in a single action. For example, the browse action can be extended to allow downloading an entire collection of CDS data in a single call. This can be done by configuring the browse action to support a BrowseFlag such as "BrowseAll". A browse action using the BrowseAll flag will return a document listing the entire CDS metadata repository.
再次参考图1,当第一次连接到UPnP网络112上时,高速缓存170可以被填充一些或所有的CDS数据。一旦高速缓存170包含至少部分的CDS内容时,必须存在一种方式来确定CDS 156中的条目何时改变。重要的是,高速缓存170和CDS 156仍是同步的,以便控制点106正确地操作。目前,CDS 156保持SystemUpdateID,无论何时当由CDS 156跟踪的任何对象被添加或删除时,或当对象的元数据改变时,该SystemUpdateID将改变。CDS 156提供异步事件,该异步事件将SystemUpdateID的值通知给系统实体。另外,在任何时间,客户端实体都能够通过在CDS 156处调用GetSystemUpdateID动作来请求SystemUpdateID的当前值。客户端可以使用后一种方法,以针对SystemUpdateID的当前值而轮询CDS 156。Referring again to FIG. 1, when connecting to the UPnP network 112 for the first time, the
通常,控制点106将本地存储其遇到的每个CDS的内容。当控制点106连接到已知的CDS 156时,控制点106将首先读取“签名”条目(例如,SystemUpdateID)。如果“签名”不同于在控制点106中高速缓存的“签名”,则CDS内容已经改变,并且同步过程被触发。Typically, the
无论何时CDS对象改变,CDS 156仅被要求修改SystemUpdateID,但不规定SystemUpdateID被改变的方式。SystemUpdateID可以是每次改变时增加的计数器,或可以是被特定编码以指示改变的属性和范围的值。最后一个选择的一个例子是设置SystemUpdateID的一个位元,以指示最后一次改变包含或不包含对元数据的改变。类似的位元可以用于指示对象的添加或删除,或其他改变类型。在另一实现中,SystemUpdateID的一些位元可以用于指示其中发生改变的一部分CDS目录树,从而加速对所改变的数据的提取。The
SystemUpdateID的使用给出了CDS 156内的改变的粗粒度指示,因为其仅指示CDS 156已经改变,但不指示改变了什么或在哪里发生改变。CDS 156还可以提供ContainerUpdateID,当单个容器的内容改变时,该ContainerUpdateID改变。ContainerUpdateID可以作为事件由CDS 156发送出去。ContainerUpdateID事件包括一组定制(ordered)对。每个定制对包括“ContainerID、ContainerUpdateID”。控制点106可以监视ContainerUpdateID事件,通过浏览或搜索提取当前容器数据,并使用所提取的数据以更新高速缓存170。The use of SystemUpdateID gives a coarse-grained indication of changes within the
控制点106可以存储这些ContainerUpdateID和/或SystemUpdateID作为用于CDS 156的每个对应条目的唯一标识符。这使得控制点106智能地仅激活网络中实际可用的高速缓存107中的那些条目。例如,用户可以在家庭或工作处具有音乐收藏。用户可能想在这两个位置使用相同的应用和相同的设备来管理音乐。工作和家庭CDS将具有不同的唯一ID(例如,SystemUpdateID),并且CDS内的各个条目还将具有唯一ID(例如,ContainerUpdateID)。通过跟踪这些唯一ID,控制点106能够为用户检测位置和激活可用条目。
通常,控制点106能够针对更新ID中的改变而轮询CDS 156或监听常规出现的更新事件。尽管更新ID的这种跟踪对连续地连接的系统是有用的,但用作控制点106的移动设备134可以仅与CDS 156间断地连接。因此,如果控制点106在给定的时间量与网络112断开连接,则关于接收更新事件的信任(reliance)将不保证高速缓存170被同步。在这种情况下,控制点106可在重新连接时遍历CDS目录并且重新下载所有或一些改变的条目时。但是,如果仅存在对CDS 156的微小改变而控制点106被断开连接,则这可能消耗大量带宽,并且不是有效的。Typically, the
一种用于对于间断连接的控制点106的高速缓存170进行同步的方案是,将CDS 156改变的记录作为CDS目录服务的一部分保存。根据本发明的一个实施方式的保存CDS改变的一种方式如图3所示。CDS 156可以保存特定分类的容器,所述特定分类的容器存储在根容器302之下。在该例子中,容器是类object.container.cache_delta的。当将多媒体对象数据提供给用户时,控制点和其他客户端将被配置为忽略这种类型的容器。没有这种同步特性的控制点还将忽略该条目,因为其与常规的树相分离,并且该条目将不截断现有的条目。直接在根容器之下的cache_delta容器的位置是任意的;CDS目录结构中的任何已知位置将是足够的。可以理解,利用最新的CDS树信息,媒体服务器将连续地保存这些条目。One approach for synchronizing the
在所示的例子中,两个cache_delta容器302、304位于根容器300之下。针对两个客户端CLIENT_1和CLIENT_2保存容器302、304。通过CDS 156上调用的动作,控制点或其他客户端能够自动地创建这些目录结构。在每个容器之下是object.ite.cache_delta类型的对象列表,例如项目306。在本例中,容器302、304包含多个cache_delta项目。每个cache_delta可以包含对CDS目录的单次改变的记录。控制点或其他客户端可以查看它们自身的cache_delta容器,读取该cache_delta项目,并将cache_delta项目中列出的改变应用到客户端的本地高速缓存。接着客户端可以从容器删除cache_delta项目。其他设置可以包括针对当前或未来的删除而对已经检查的条目加标志或者标记。这样,CDS 156可以将改变列表提供给客户端,而客户端不必遍历整个CDS目录结构。In the example shown, two cache_delta containers 302 , 304 are located below the root container 300 . Containers 302, 304 are held for two clients CLIENT_1 and CLIENT_2. Through actions invoked on the
在另一设置中,cache_delta目录302、304可以仅包含与改变相连的单个文件。在这种设置中,可以针对根容器300或CDS 156中的其他已知位置的每个客户端保存单个文件,因此消除了对于特定cache_delta容器302、304的需要。在每个设置中,cache_delta项目将包含这种数据,诸如时间戳、签名、0bjectID、改变的属性和更新本地高速缓存所需的其他数据。In another arrangement, the cache_delta directory 302, 304 may contain only a single file associated with a change. In such an arrangement, a single file can be saved for each client in the root container 300 or other known location in the
图3中所示的设置上的其他变化包括在CDS 156中放置“同步元数据”条目。同步元数据可以包括类似于SystemID的唯一ID,但还将包括签名或全部或部分CDS 156的散列。同步元数据还可以包括允许控制点确定改变的属性的其他元数据,类似于cache_delta项目306。控制点可以包括“同步代理”,其被配置为读取该元数据并仅应用在该元数据中描述的那些改变。Other variations on the setup shown in Figure 3 include placing a "Sync Metadata" entry in the
根据UPnP执行同步所使用的同步协议,CDS 156可以具有这种同步元数据条目的多个实例。例如,如果利用SyncML完成同步,则将存在包括SyncML需要的一些元数据的一个条目。在另一设置中,可以保存多个同步元数据条目,每个条目包括关联的SystemID。如果SystemID是计数器,则控制点将比较SystemID的高速缓存值与CDS 156上最近的值。更新控制点将包含增加地读取和应用具有关联的id值的每个同步元数据条目,该关联的id值的范围在旧的SystemID和当前SystemID之间。将可以理解,多CDS系统中的每个CDS 156可以利用不同的同步协议,并且该条目将包括这种信息和那些协议所需的其他元数据。Depending on the synchronization protocol used by UPnP to perform the synchronization, the
如在以上各个例子中所描述的同步能够由用户当进行浏览或搜索动作时触发,或者可能由运行在设备上的同步代理自动触发。控制点106可以这种方式被配置,即当接近于媒体服务器102时,控制点106将自动地下载所有相关数据,和/或在object.container.cache_delta或其他同步元数据中搜索。在控制点106已确定可下载的数据可从CDS 156获得之后,可以自动地触发同步,或者控制点106能够提示用户,指示在媒体服务器102中存在新的或修改的数据。接着用户可以浏览以观看新内容和启动同步。Synchronization as described in the various examples above can be triggered by the user when browsing or searching, or possibly automatically by a synchronization agent running on the device. The
通常,在搜索和系统浏览期间,对数据进行有规律地高速缓存的控制点将具有较快地响应。对于无线设备而言尤其如此,所述无线设备通常具有比有线连接更低的带宽和更高的延时。由于典型的系统仅不频繁地改变,所以本地高速缓存的下载和更新将对带宽利用具有最小的影响。In general, control points that regularly cache data will have faster responses during searches and system browsing. This is especially true for wireless devices, which typically have lower bandwidth and higher latency than wired connections. Since typical systems change only infrequently, the download and update of the local cache will have minimal impact on bandwidth utilization.
CDS改变的跟踪可以用于除移动控制点之外的其他应用中。图4示出了根据本发明的实施方式的使用高速缓存更新概念的数据备份方案。在图4中,媒体服务器102包含如前所述的数据仓库108和CDS 156。备份服务器402包括用于与CDS 156交互的控制点106。备份服务器402发挥功能以将来自媒体数据仓库108的数据备份到备份数据仓库404上。Tracking of CDS changes can be used in other applications than moving control points. Figure 4 shows a data backup scheme using the cache update concept according to an embodiment of the present invention. In FIG. 4,
在第一次使用中,控制点106可能需要确定CDS 156的整个内容。在该说明中,控制点106使用具有先前描述的BrowseAll扩展的浏览命令406。作为响应,CDS 156以针对CDS数据存储装置108中的所有条目408的元数据进行回答。将理解到使用如图2A和2B中所示的目录遍历,可以得到相同的条目408。On first use, the
控制点106向备份数据存储装置404发出备份命令410,该备份数据存储装置404包括需要被提取以供备份的所有条目。备份数据存储装置404启动条目的提取412(例如,FTP GET),并且条目从媒体数据存储装置108下载414到备份数据存储装置404。将可以理解,提取414的数据可以包括存储在媒体服务器102或任何其他地方的实际数据对象(例如,媒体文件)与CDS元数据的任何组合。此后,备份服务器402仅需要执行增加的备份。The
图4示出了增加备份的两个方案。在第一方案中,控制点106针对改变主动地轮询416CDS 156。该轮询156可以包含检查SystemUpdateID、ContainerUpdateID,或使用关于图3所述的规定的高速缓存的数据。如果已经发生了改变,响应418用于确定delta。类似于完全备份,控制点106命令420备份数据仓库404对文件进行备份。然而,这次仅delta需要被备份。如以前那样,数据仓库404、108执行提取请求422并下载424,以立即备份该数据。Figure 4 shows two schemes for adding backup. In a first approach, the
图4中的下一个方案使用由CDS 156生成的异步更新事件。CDS156有规律地发送传递媒体数据存储装置108中任何改变的事件426。控制点106仅将delta高速缓存428到内部高速缓存(例如,图1所示的高速缓存170)。在这种方案下,备份服务器402被配置为在一定时间期间执行备份,诸如在深夜当网络可能不活跃时。因此,在预定时间,控制点106响应于内部产生的定时器事件430并启动备份请求432,这将得到数据提取请求434和递增数据436的下载。将可以理解,如图4所示的完全的和增加的备份可以使用CDS轮询和CDS事件的任何组合以确定备份数据,以及立即备份和定时器时间备份的任何组合。The next scheme in FIG. 4 uses asynchronous update events generated by
UPnP标准是足够灵活的,以允许多种类型的设备执行作为媒体服务器、媒体呈现器和控制点的角色。移动设备作为控制点是特别有用的,并且还可以用作媒体呈现器。现在参考图5,示出了代表性的移动计算设备500的例子,其能够根据本发明的实施方式执行操作。本领域的技术人员将可以理解,示例性移动计算设备500仅代表可以与这种移动设备关联的通用功能,而且地面计算系统类似地包括计算电路,以执行这种操作。The UPnP standard is flexible enough to allow various types of devices to perform roles as media servers, media renderers, and control points. Mobile devices are especially useful as control points and can also be used as media renderers. Referring now to FIG. 5 , there is shown an example of a representative
所示的移动计算设备500适于执行作为UPnP AV网络中的媒体呈现器和控制点二者的角色。移动计算设备500包括处理/控制单元502,诸如微处理器、简化指令集计算机(RISC)或其他中央处理模块。处理单元502不需要是单个设备,并且可以包括一个或多个处理器。例如,处理器单元可以包括主处理器和关联的从处理器,所述从处理器被耦接用于与主处理器进行通信。The illustrated
处理单元502控制设备500的基本功能。可以包括关联的那些功能作为存储在程序存贮器/存储器504中的指令。在本发明的一个实施方式中,与存贮器/存储器504关联的程序模块存储在非易失性电可擦可编程只读存储器(EEPROM)、闪存只读存储器(ROM)等中,从而当移动终端掉电时信息不会丢失。用于执行传统的移动终端操作和根据本发明的操作的相关软件还可以经由数据信号被发送到移动计算设备500,例如经由诸如互联网和中间无线网络的一个或多个网络进行电下载。The
程序存贮器/存储器504还可以包括操作系统,用于执行与移动计算设备500上的功能关联的应用和功能。程序存储器504可以包括一个或多个只读存储器(ROM)、闪存ROM、可编程和/或可擦ROM、随机存取存储器(RAM)、用户接口模块(SIM)、无线接口模块(WIM)、智能卡、硬盘驱动器或其他可移动存储设备。Program storage/
为了执行控制点功能,程序存贮器/存储器504包括控制点管理器154、高速缓存管理器168和高速缓存170。控制点管理器154与用户接口应用程序接口(API)506进行接口连接,用于显示媒体服务器元数据,并用于接收用户选择,从而控制UPnP多媒体服务。为了执行媒体呈现功能,程序存贮器/存储器504包含连接管理器164、AV传送模块166和呈现器控制162。呈现器控制162还与UP API 506进行接口连接,以便将输出呈现给诸如显示器和扬声器的物理设备。To perform control point functions, program storage/
移动计算设备500包括耦合到处理/控制单元502的硬件和软件部件,用于执行网络数据交换。移动计算设备500可以包括多网络接口,用于维持有线或无线数据连接的任何组合。具体地,所示的移动计算设备500包括无线数据传输电路,用于执行网络数据交换。
该无线电路包括数字信号处理器(DSP)516,用于执行多种功能,包括模数(A/D)转换,数模(D/A)转换、语音编码/解码、加密/解密、检错和纠错、比特流变换、滤波等。通常耦接到天线520的收发器518发射输出的无线电信号522并接收与该无线设备关联的进入的无线电信号524。The wireless circuitry includes a digital signal processor (DSP) 516 for performing a variety of functions including analog-to-digital (A/D) conversion, digital-to-analog (D/A) conversion, speech encoding/decoding, encryption/decryption, error detection And error correction, bitstream transformation, filtering, etc. A
处理器502还耦合到与移动终端关联的用户接口528单元。移动终端的用户接口528可以包括,例如,诸如液晶显示器的显示器526、键盘510、扬声器512和麦克风514。将这些和其他用户接口部件耦接到处理器502是现有技术所公知的。可以采用其他用户接口机制,诸如语音命令、开关、触摸板/屏、使用指向设备、跟踪球、操纵杆的图形用户接口、或任何其他用户接口机制。The
提供图5的移动计算设备500作为计算环境的代表性例子,在该环境中可以应用本发明的原理。根据这里提供的描述,本领域的那些技术人员将可以理解,本发明可等同地应用于多种其他当前已知的和未来的移动和地面计算环境。例如,桌面计算设备类似地包括处理器、存储器、用户接口和数据通信电路。因此,本发明可应用于任何已知的计算结构,其中可以经由网络对数据进行传递。
硬件、固件、软件或其组合可以用于执行这里所描述的各种功能和操作。用以执行与本发明关联的功能的多项包含代码的加工产品旨在包含在任何计算机可用媒体上或在传输这种程序的任何传输媒体中永久存在或临时存在的计算机程序。传输媒体包括但不限于经由无线/无线电波通信网络、互联网、内联网、基于电话/调制解调器的网络通信、硬连线/电缆连接的通信网络、卫星通信和其他静止或移动网络系统/通信链接的传输。从这里提供的描述,本领域的技术人员很容易能够将如所述创建的软件与合适的通用或专用计算机硬件进行组合,以创建根据本发明的系统、设备和方法。Hardware, firmware, software, or a combination thereof can be used to perform the various functions and operations described herein. The various code-containing work-ups to carry out the functions associated with the present invention are intended to comprise the computer program, whether permanently or temporarily, on any computer-usable medium or in any transmission medium that transmits such a program. Transmission media include, but are not limited to, via wireless/radio wave communication networks, the Internet, intranets, telephone/modem based network communications, hardwired/cable connected communications networks, satellite communications and other stationary or mobile network systems/communication links transmission. From the description provided herein, one skilled in the art will readily be able to combine software created as described with suitable general purpose or special purpose computer hardware to create systems, devices and methods in accordance with the present invention.
为了说明和描述的目的,给出了本发明的示例性实施方式的以上描述。其不旨在将本发明进行穷尽或限制到所公开的精确形式。根据以上教导,可以进行多种修改和变形。不旨在利用该详细描述对本发明的范围进行限制,而由这里所附的权利要求书来限定。The foregoing description of exemplary embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. It is not intended that the scope of the invention be limited by this detailed description, but rather be defined by the claims appended hereto.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60302104P | 2004-08-19 | 2004-08-19 | |
| US60/603,021 | 2004-08-19 | ||
| US11/029,027 | 2005-01-03 |
| Publication Number | Publication Date |
|---|---|
| CN101023627A CN101023627A (en) | 2007-08-22 |
| CN100553209Ctrue CN100553209C (en) | 2009-10-21 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB2005800315123AExpired - Fee RelatedCN100553209C (en) | 2004-08-19 | 2005-08-11 | Caching directory server data to control deployment of multimedia data on a network |
| Country | Link |
|---|---|
| CN (1) | CN100553209C (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
| US9386064B2 (en)* | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
| US8806101B2 (en)* | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
| US20110060812A1 (en)* | 2009-09-10 | 2011-03-10 | Level 3 Communications, Llc | Cache server with extensible programming framework |
| US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
| US9444876B2 (en) | 2010-11-08 | 2016-09-13 | Microsoft Technology Licensing, Llc | Content distribution system |
| CN102279880B (en)* | 2011-07-28 | 2014-07-16 | 赵香芳 | Method and system for updating cache in real time |
| US9002973B2 (en)* | 2011-10-21 | 2015-04-07 | Fisher Controls International Llc | Delayed publishing in process control systems |
| US9294582B2 (en)* | 2011-12-16 | 2016-03-22 | Microsoft Technology Licensing, Llc | Application-driven CDN pre-caching |
| CN103780682B (en)* | 2014-01-07 | 2017-03-08 | 中国船舶重工集团公司第七0九研究所 | A kind of information sharing system towards Ad Hoc network |
| CN105516794B (en)* | 2015-12-11 | 2019-04-16 | Oppo广东移动通信有限公司 | The method and device of file read list is provided |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1200608A (en)* | 1997-05-08 | 1998-12-02 | 国际商业机器公司 | Method for coordinating actions among group of servers |
| CN1327349A (en)* | 2000-06-03 | 2001-12-19 | 三星电子株式会社 | System and method for providing multimedia business by using mobile communication terminal |
| US6513056B1 (en)* | 1994-09-16 | 2003-01-28 | International Business Machines Corporation | System and method for efficiently synchronizing cache and persistant data in an object oriented transaction processing system |
| WO2003107597A1 (en)* | 2002-06-15 | 2003-12-24 | Lg Electronics Inc. | SYNCHRONIZATION METHOD OF UPnP-BASED HOME NETWORK |
| US20040024580A1 (en)* | 2002-02-25 | 2004-02-05 | Oak Technology, Inc. | Server in a media system |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6513056B1 (en)* | 1994-09-16 | 2003-01-28 | International Business Machines Corporation | System and method for efficiently synchronizing cache and persistant data in an object oriented transaction processing system |
| CN1200608A (en)* | 1997-05-08 | 1998-12-02 | 国际商业机器公司 | Method for coordinating actions among group of servers |
| CN1327349A (en)* | 2000-06-03 | 2001-12-19 | 三星电子株式会社 | System and method for providing multimedia business by using mobile communication terminal |
| US20040024580A1 (en)* | 2002-02-25 | 2004-02-05 | Oak Technology, Inc. | Server in a media system |
| WO2003107597A1 (en)* | 2002-06-15 | 2003-12-24 | Lg Electronics Inc. | SYNCHRONIZATION METHOD OF UPnP-BASED HOME NETWORK |
| Publication number | Publication date |
|---|---|
| CN101023627A (en) | 2007-08-22 |
| Publication | Publication Date | Title |
|---|---|---|
| US20060041596A1 (en) | Caching directory server data for controlling the disposition of multimedia data on a network | |
| CN101681320B (en) | Synchronizing content between content directory service and control point | |
| US20060168126A1 (en) | Aggregated content listing for ad-hoc peer to peer networks | |
| US11138150B2 (en) | Network repository for metadata | |
| Sinitsyn | A synchronization framework for personal mobile servers | |
| US7890470B2 (en) | Method and apparatus for synchronizing device providing content directory service with device not providing content directory | |
| US20070078959A1 (en) | Low-power proxy for providing content listings in ad-hoc, peer to peer networks | |
| US20060200570A1 (en) | Discovering and mounting network file systems via ad hoc, peer-to-peer networks | |
| CN101385020B (en) | Method of synchronizing a plurality of content directory service (cds) devices, cds device, and system | |
| US20050055352A1 (en) | Content directory and synchronization bridge | |
| KR20050113626A (en) | A method of sharing files between user stations in a network | |
| US20090248713A1 (en) | Method and apparatus for synchronizing metadata and media based on upnp protocol | |
| CN101690129A (en) | Coordination and management of content distribution | |
| CN102124752A (en) | Apparatus and method for sharing bookmarks with other users in home network | |
| CN100553209C (en) | Caching directory server data to control deployment of multimedia data on a network | |
| US20070220114A1 (en) | Advanced search feature for UPnP media content | |
| CN101517957B (en) | Method and apparatus synchronizing content directory service objects of universal plug and play media servers | |
| CN101438563A (en) | Storage Capacity Query for UPNP AV Media Server CDS | |
| US8756303B2 (en) | Method and apparatus for determining object updates in a home network | |
| KR20070101000A (en) | Content classification method and apparatus using digital content management function in DLAN network | |
| US20080120338A1 (en) | Trigger for targeted brute force synchronization in a upnp client-driven synchronization model |
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| C17 | Cessation of patent right | ||
| CF01 | Termination of patent right due to non-payment of annual fee | Granted publication date:20091021 Termination date:20110811 |