In operation, each peer in the network can publish its content along with metadata pertaining to the content. The advanced metadata service is responsible for storing the metadata across multiple peers. Other peers in the network can then access the content and/or metadata pertaining to the content using a content identifier in a manner further described below.
In an exemplary embodiment, the metadata management architecture 10 employs the content reference identifier (CRID) as defined in accordance with the TV-anytime specification. CRID provides separation between content reference and content location as well as ties multiple metadata types together for a given piece of content. CRID also provides a reference for content that may not exist yet, but will be available at some later time. However, it is envisioned that other types of content identifiers could also be utilized within the broader aspects of this disclosure.
CRID syntax is Uniform Resource Identifier (URI) compliant. An exemplary syntax for CRID is CRID://<DNSname>;<name_extension>/<data>, where <DNSname>;<name_extension> is an authority name and <data> is a free format string that is also URI compliant as well as meaningful to the specified authority. More specifically, <DNS name> is a registered Internet domain name and must be a fully qualified name according to the rules given by RFC 1591, and <name_extension> is an optional string to enable multiple authorities to use the same DNS name. All <name_extension> elements which share the same DNS name must be unique.
Generally speaking, distributed hash table mechanisms may not be adequate to reference large amounts of related metadata, as the amount of related metadata to which hashes and pointers need to be kept in hash tables could be very large. However, this problem is simplified when CRID is used to tie multiple metadata types together. With reference to
With continued reference to
To access a piece of content, a requesting application 12 may first access the CRID resolution service 14. For example, a requesting application may be interested in content having “Star Wars” in the title. In this case, a search query is sent from the requesting application to the CRID resolution service 14. An exemplary search query message is as follows:
In response, the CRID resolution service 15 will send a search response to the requesting application. The response will provide the requesting application with content identifiers for content which meets the search criteria. In this case, content identifiers for content having “Star Wars” in the title. An exemplary search response message is as follows:
In this way, a requesting application learns of content reference identifiers for available content which may be of interest to the requesting application. Alternatively, it is envisioned that content identifiers for content may be known to a requesting application or learned through other mechanisms.
To learn more about a piece of content, the requesting application 12 may then access the advanced metadata service 15 using its content identifier. As noted above, the advanced metadata service is comprised of a plurality of peer-based metadata services 16 distributed amongst the peers of the network. Each peer-based service 16 is able to resolve content identifiers assigned thereto. Content identifiers are assigned to an individual peer-based metadata service 16 based on a hash value of the content identifier. In other words, each peer-based metadata service 16 is responsible for resolving content identifiers having a hash value within an expected range of hash values assigned thereto. In this way, metadata services are scalable and distributed amongst the peers of the peer-to-peer network.
A peer locator service 18 manages the different ranges of hash values assigned to each peer. In an exemplary embodiment, a peer locator table is used by the peer locator service to maintain a list of peer identifiers (e.g., a network address) and a range of hash values assigned to each peer. It is envisioned that emerging DHT algorithms (e.g., CAN, Chord, Pastry, etc.) can be used to manage the distributed hash references.
In operation, a requesting application 12 passes a content identifier of interest to the advanced metadata service. More specifically, the peer locator service 18 receives the content reference identifier and applies a one-way hash function (e.g., MD5) to the content reference identifier. The peer locator service in turn accesses the peer locator table using the hash value of the content identifier. By accessing the peer locator table 18, the peer locator service 18 learns of the peer-based metadata service 16 which is responsible for the metadata pertaining to the content of interest.
A metadata request is then passed from the peer locator service 16 to the applicable peer-based metadata service 16. In response thereto, the peer-based metadata service 18 retrieves the requested metadata and transmits the metadata to the requesting application 12. Such metadata services are generally known in the art. Further details regarding an exemplary metadata service may be found in International Patent Publication No. WO/2006010107 published on Jan. 26, 2006 and which is incorporated herein by reference.
The metadata management architecture described above may be integrated with JXTA technology. JXTA technology is a set of protocols that have been specifically designed for peer-to-peer networks. Using JXTA protocols, peers can cooperate to form self-organized and self-configured peer groups independently of their positions in the network and without the need for centralized management infrastructure. Because the JXTA protocols are not rigidly defined, their functionality can be extended to support the AMS functions and architecture in the manner described below.
The content management service 36 is a known JXTA service that supports the sharing and retrieval of content within a peer group. Each piece of shared content is referenced by a unique content identifier and represented by a content advertisement which provides metadata about the content. Rather than using a 128-bit MD5 hash as the content identifier, this exemplary implementation employs the hash of CRID as the content identifier. The content management service 36 manages the shared content for a local peer and allows application to browse and download content from other peers. To do so, it employs a protocol based on JXTA pipes for transferring content between peers. The content management service 36 is also interoperable with the remainder of the JXTA platform 38 in a manner known in the art, where the JXTA platform provides the basic underlying communication between peers.
Based on this type of architecture, an exemplary messaging scheme used by the AMS for sharing content amongst peers is further described below. First, it may be necessary for peers to discover the other peers in the network. In this case, a requesting peer may send a discovery query message as provided below:
In response to this message, the requesting application will receive a list of accessible peers. An exemplary response message is as follows:
To identify content of interest, a requesting application may send search queries to the CRID resolution service 14. In some instances, a specific search query (e.g., keywords in the title of the content) may be sent to the CRID resolution service as described above. In other instances, one or more global search queries may be needed to identify the content of interest. In any case, the search queries are preferably formulated as XPath requests.
Referring to
In response to this query, the CRID resolution service will provide a list of content groups in a response message as follows:
Given a group CRID, the requesting application may request program information for content found in this group. The search query to obtain the program information follows:
In this example, the requesting application is interested in movies found in the group entitled “Fantasy-Movies” and having a fantasy genre. The search query in turn yields the following response from the CRID resolution service:
A CRID is provided for each program found in the response. It is readily understood that other types of search queries or combinations of queries may be used to identify CRIDs for content of interest.
Next, a requesting application may use known CRIDs to access metadata, including content location metadata, for the content of interest. An advanced metadata service will be employed to resolve the CRID as discussed above. In other words, the peer locator service 18 first resolves the location of the applicable peer-based metadata service and then a request for metadata may then be directed to the peer hosting the applicable advanced metadata service 16. A exemplary request for content location metadata may be formulated as follows:
If there is content corresponding to the passed CRID, then a response from the advanced metadata service would look like:
On the other hand, if there is no content for the passed CRID, then the response would be as follows:
A requesting application may also request other types of metadata. For instance, when the content location metadata specifies that the content of interest has been segmented amongst two or more different locations, a requesting application may request additional content segmentation data from the advanced metadata service. In this instance, a request for content segmentation data may be formulated as follows:
A response to such a query may look as follows:
Finally, the requesting application can retrieve the content of interest from the peer that has the data. In particular, a JXTA send message is sent from the requesting application to the content provider using the content location metadata provided by the advanced metadata service. An exemplary data request message may be as follows:
After receiving the JXTA send message, the content provider responds using a JXTA send message formatted as follows:
The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features.