Patent Application Number: 2005321287
Filing Date: December 22, 2005Priority Date: December 29, 2004
Inventors: Lei Ma, Lin Ma, Yu Chen Zhou
Applicants: International Business Machines Corporation
Description

Technical Field

The present invention relates to content sharing technology in a network, more particularly relates to technology for sharing content information in a network.

Technical Background

With the advent of consumer digital technology, content such as music and movies are no longer bound to the physical media that carry it. Advances in consumer digital technology enable users to share and protect content within a private network which consists of connected PC, laptop, set-top box, residential gateway, media center, consumer electronic device and mobile devices, etc. In such network environment, proper protection mechanism is required to protect the content to be shared among authorized devices. For this reason, broadcast encryption technology based on public key cryptography provides an efficient sharing and protection method. In comparison with public key methods, broadcast encryption requires orders of magnitude less computational overhead in compliant devices. In addition, broadcast encryption protocols are one-way, not requiring any low-level handshakes. Low-level handshakes will increase the dependence on the network connection at server end, and tend to weaken the security of copy protection schemes. IBM has developed a content protection system based on broadcast encryption called extensible Content Protection, referred to as "xCP." xCP supports a trusted domain called a 'cluster' that groups together a number of compliant devices with xCP cluster protocol, the structure of which is shown in figure 1. Content in cluster with cluster specific information can be freely moved among these devices, but it is useless to devices that are outside the cluster. There could be more than one cluster within private network.

In the above prior art for providing content protection and sharing, e.g. the network shown in figure 1, there might be a plurality kinds of devices, e.g. PDA 120, set top box/TV 130, computer 140 and DVD player 150 in the figure. Content (e.g. media content) is shared among authorized devices by copy or stream (e.g. media stream), etc. However, there might be some problems for sharing content among different devices. Sometimes, content could not be shared effectively among the devices. Even worse, some content could not be shared among the devices. This causes waste of human resource or resources.

Summary of the Invention

The present invention provides a method as claimed in claim 1, and corresponding method and computer program.

According to a preferred aspect of the present invention, a device for content information sharing is provided. The device for content information sharing is a first device, said first device comprises: a communication module, for exchange information with at least a second device via a network, and receiving a content information request from the second device; a content management module, for managing the content information of the content that the first device could provide; wherein, the content information request from the second device comprises the capability information of the second device, and wherein said first device further comprises a content information filter, for filtering the content information of the content that the first device could provide according to the capability information of the second device, and sending the filtered content information of the content that the first device could provide to the second device.

Further preferably, the present invention also provides a method for content information sharing, the method comprises: a first device sending a content information request to a second device via a network, said content information request comprises the capability information of the first device; said first device receiving content information from said second device, said content information is obtained by the second device filtering the content information of the content that the second device could provide according to the capability information of the first device.

Further preferably, the present invention also provides a device for content information sharing, said device is a first device, said first device comprises: a communication module, for exchange information with a second device via a network; a device capability management module, for managing the capability information of the first device; and a content information handler, for generating a content information request according to the capability information of the first device, sending the request to a second device in a network, and receiving content information from said second device, said content information is obtained by the second device filtering the content information of the content that the second device could provide according to the capability information of the first device.

The present invention realizes effective content sharing among devices by sharing content information according to the capability of devices.

The first device of the present invention might have the function of the second device for content information sharing as described above. While the second device might implement the content information sharing method of the first device as described above. Differentiating the first device and the second device herein and after is just for description. A person skilled in the art could understand the function of the first device and the function of the second device might be same or different according to the real requirement.

In comparison with the client-server mode, the first device and the second device are preferably peer to peer in a network or in a cluster. Wherein, the first device and the second device implement the method of the present invention independently.

Brief Description of Figures

Figure 1 illustrates an example private network for implementing the present invention.

Figure 2 illustrates a device for content information sharing according to one embodiment of the present invention.

Figure 3 illustrates a flowchart for content information sharing according to another embodiment of the present invention.

Figure 4 illustrates a flowchart for content information updating according to a further embodiment of the present invention.

Detailed Description of Embodiment

The present invention is suitable but not limited to be implemented in middle or small networks, and more particularly in broadcast encryption networks, e.g. an xCP network. The present invention is also suitable for other kinds of networks, e.g. a home network or an office network, which require content sharing. The following description of the present invention in combination with the prior art is for explaining rather than limiting the invention.

The broadcast encryption method is a well known method in the technical field of content sharing. In a broadcast encryption network, every device sharing protected content uses its device key to decrypt a management key from a key management block. The management key is used for protecting shared content. Devices sharing protected content together constitute a cluster or a domain. In the present invention, sharable contents are preferably protected with broadcast encryption technology.

Preferably, the present invention is implemented in a network using broadcast encryption, and devices are peer to peer in the network or a cluster. Wherein, every device in the cluster has passed certification based on broadcast encryption technology between each other when joining an associated cluster, and will share media content. Furthermore, every device could implement the present invention independently.

When the present invention is implemented in an xCP network, i.e. a network using xCP technology, the devices are preferably peer to peer in associated clusters or in the same cluster.

Figure 1 illustrates an example private network for implementing the present invention. In figure 1, contents are shared among PDA 120, set top box/TV 130, computer 140 and DVD player 150. Licensing agency 110 manages device keys and key management block. Every device in figure 1 uses its device key to decrypt management key from the key management block provided by licensing agency 110. Then, these devices share contents in peer to peer mode or in end to end mode. These devices that could share contents via a network together form a cluster. However, in such peer to peer network with different devices, sometimes, contents could not be shared, copied and played effectively among the devices due to the difference in the content types, the required storage spaces and network bandwidths and devices' capability. This causes waste of human resources or other resources.

In the network of figure 1, extensible Content Protection (xCP) technology of IBM could be implemented. xCP technology could be implemented in PDA 120, set top box/TV 130, computer 140 and DVD player 150. These devices together form an xCP cluster. Contents are shared among the devices in the xCP cluster. For example, computer 140 or set top box/TV 130 may play the media contents stored in DVD player 150. Although it is not a must, the network according to the present invention, e.g. an xCP network, usually has the following features.

1. Peer to peer network structure

The devices in such environment are loosely coupled without central server. The structure of cluster is dynamically changed with device leaving and joining.

2. Distributed storage of content

The content is stored on different devices. When a device wants to rend some content on other devices, some mechanism should be provided to access remote content, for example, copy or media steaming.

3. Diversity of media capability

The network always consists of devices with different hardware and software media player, and there may be more than one media player installed on one device.

4. Heterogeneous structure

The network always consists of diversified devices with different system capability, such as display, decoder, processor, storage, and network bandwidth based on different network connection types (Ethernet, wireless LAN, Bluetooth ... )

In such environment, content shared is dynamically changed, accordingly any device should be aware of change of content within a network in real-time. Typically, content information is shared in client- server mode with centralized directory or registry service. It means that a device registers content information to a centralized server and other devices gets information of shared content from the server. Such solution always uses technologies derived from enterprise technologies, such as JNDI/LDAP. Some dedicated solutions defined for home network multimedia applications, for example, the registration service of open source project Network-Integrated Multimedia Middleware, are also working in such mode. Conventional peer-to-peer system also always involve server for content sharing and popularity, for example, methods presented by US Patent 2003/0005035 Al and 2003/0204613.

While such solutions are difficult to solve the problem caused by peer to peer nature of network described above, for usually there is no highly available centralized server in such private network, and the fault of device with centralized content information may cause problem. And also, it could not meet the need of heterogeneous structure for lack of device capability information involved, in case of which all the content information shared within cluster will be gotten by a device, while only part of the content could be rendered by the device. So some errors may occur when devices want to render content out of scope of its system capability and content processing capability (e.g. media capability). For example, a PDA may copy a huge movie to local storage, or device with only mp3 player may try to render MPEG4 content.

Currently, some capability information is used in mobile web access. Typical ones are W3C Device Independent and OMA devices. These technologies mainly focus on conventional client/server architecture; but they could not meet the need of peer-to-peer system architecture. For example, there is no mechanism to notify changes of contents in server side to client side dynamically, and the server also does not know the capability of a device set for sharing beforehand.

The present invention provides a peer-to-peer method to enable the private network (e.g. xCP private network) as a virtual multimedia device, in which content information is dynamically shared according to device capability. Each device is responsible for management of local content information and capability information. The content information is requested based on device capability within cluster. The changes of content information one each device or topology of cluster may trigger the update of content information. It has following advantages

1. Peer-to-peer structure for content sharing.

The content and content information are maintained by each device and updated dynamically within cluster. It is consistent to the network structure.

2. Capability based information sharing

Each device could only get the information of content that could be rendered according to its device capability. It could avoid replicating and rendering of useless content, and decrease the user involvement. In other words, a user does not need to consider the system capability and/or content processing capability of the device being used when the user selects content according to the content information. Furthermore, the user even does not need to know the system capability and/or content processing capability of the device being used and the location where the content is stored. The user just directly selects the required content according to the content information.

3. Synthetically device capability

The capability used for content sharing comprises both static and dynamic system capability and media processing capability, where media processing capability comprises the capability of all the software and hardware media players in the device system.

4. Dynamically content information updating

The changes of content information will be broadcast actively. The content information updating could be triggered by changes of content, cluster topology and device capability.

5. Fault Tolerance

In comparison to client-server mode, it is fault tolerant for system level changes of device and cluster. The fault or change of one device only has limited effect on the whole cluster.

Figure 2 illustrates a device for content information sharing according to one embodiment of the present invention. According to one aspect of the present invention, as shown in figure 2, the device 200 for content information sharing comprises the following components.

Communication Module (202)

Communication Module 202 is responsible for interacting with other devices, sending messages and, receiving and dispatching message to internal components. Communication Module 202 will process the following messages.

CONTENT_REQUEST

Requesting device sends this message to requested device to ask for shared content information. It contains information of clusters that requesting device belongs to, media capability and system capability of requesting device.

C0NTENT_INFO

Requested device sends this message in response to CONTENT_REQUEST. It contains all the information of shared content that could be rendered by requesting device according to device capability.

NOTIFY_REFRESH

This message is sent to other devices to notify the changes of local content.

xCP Cluster Management Module (203)

This module maintains information of xCP clusters that local device belongs to. The cluster is built based on broadcast encryption mechanism, and contains all the authorized devices among those the content could be shared. The change of cluster topology, for example, new device joining and device leaving, will also trigger the notification to other devices, and a transaction of content information updating within cluster.

Media Capability Management Module (206)

This module acts as a virtual media player and manages all the media players (210) that could be used to render xCP content shared within clusters. It collects all the media capability information from managed media players, including support media type and input mode. It triggers a transaction of content information updating to other devices when local media capability changed.

System Capability Management Module (207)

This module maintains all the local system capability related information, including CPU information, memory, network connection of the device, size and color set of display, etc. It triggers a transaction of content information updating to other devices when system capability changed.

xCP Content Management Module (208)

xCP Content Management Module 208 manages all the local encrypted xCP content stored in local content repository (218) and could provide local content information, for example content name, type, size, etc. to content information handler 204 and content information filter 205. It triggers a transaction of content information updating to other devices within cluster when local content changed, for example, new content is ingested. Preferably, these sharable contents are protected with broadcast encryption.

Content Information Handler (204)

Content Information Handler 204 is responsible for the following tasks. Content Information Handler 204 receives and responds to a user request or request from outside applications, change of local device capability and changes of cluster topology, and sends a content information request to collect content information shared within private network and merge the information with local content information.

Notify change of local content within private network trigged by xCP Content Management Module 208.

Content Information Filter(205)

Content Information Filter 205 filters local content information using device capability information, e.g. system capability information and media processing capability information attached in CONTENT_REQUEST message.

The composition of the content information device shown in figure 2 is for example only to explain and not to limit the present invention. According to the present invention, a device for content information sharing is provided; said device is a first device, said first device preferably comprises: a communication module 202, for exchanging information with at least a second device via a network, and receiving a content information request from the second device; a content management module 208, for managing the content information of the content that the first device could provide; the content information request from the second device comprising the capability information of the second device, and said first device further comprising: a content information filter 205, for filtering the content information of the content that the first device could provide according to the capability information of the second device, and sending the filtered content information of the content that the first device could provide to the second device.

Corresponding to the above device, another device for content information sharing is provided; said device is a first device, said first device comprises: a communication module 202, for exchange information with a second device via a network; a device capability management module 206 or 207, for managing the capability information of the first device; and a content information handler 204, for generating a content information request according to the capability information of the first device, sending the request to a second device in a network, and receiving content information from said second device via the communication module 202, said returned content information is obtained by the second device filtering the content information of the content that the second device could provide according to the capability information of the first device. This first device is suitable for requesting other devices returning content information as required.

Figure 3 illustrates a flowchart for content information sharing according to another embodiment of the present invention. Following local events may trigger the process to collect content information within private network. User request, wherein the user could be an end user or an application. System capability change, for example, change of one or more of the CPU capability information, local storage quota, addition of memory and storage means, network connection information and displayer information of the device. Media capability change, for example, installing and removing content processing software, e.g. media player.

The embodiments of figures 3 and 4 will be explained in connection with the device of figure 2. A person skilled in the art could understand that the method according to the present invention might be implemented on other types of system or device structures, or be implemented by means of general purpose computer/computing means in combination with software.

At step S301, the Content Information Handler 204 of local device 380 receives request for collecting content information from a user. Or At step S302, when the device capability of the local device 380 changes, e.g. the system capability or media processing capability changes, Media Processing Capability Management Module 206 or System Capability Management Module 207 sends a request for updating content information to the Content Information Handler 204. At step S303, the Content Information Handler 204 obtains from the xCP Cluster Management Module 203 all the related cluster information of the cluster that this local device belongs to. At step S304, the Content Information Handler 204 obtains from the xCP Cluster Management Module 203 the addresses of all the authorized devices (or xCP devices) in the cluster or in the related clusters. At step S305, the Content Information Handler 204 sends content information request to remote devices according to the addresses via the communication module 202. The step S305 further comprises steps S306-S312. A person skilled in the art could understand that the local device 380 might send the request to other devices by other means, e.g. by broadcasting the request to other devices (e.g. the remote device 390).

At step S306, the Content Information Handler 204 obtains the local media processing capability information from the Media Capability Management Module 206. At step S307, the Content Information Handler 204 obtains the local system capability information from the System Capability Management Module 207. Then, at step S308, the Content Information Handler 204 add the local system capability information and the local media processing capability information to the content information request message CONTENT_INFO_REQUEST, and sends the message via the Communication Module 202 to other connected devices, e.g. the remote device 390.

The remote device will carry out steps S309-S312. At step S309, the remote device receives the content information request message CONTENT_INFO_REQUEST. At step S310, the content information filter of the remote device obtains its local content information from its xCP content management module. At step S311, the content information filter of the remote device filters the local content information of the remote device 390 according to the system capability information and the media capability information of the device 380 in the content information request message CONTENT_INFO_REQUEST. At step S312, the remote device sends the filtered local content information to the content information requester, the device 380. At step S313, the Content Information Handler 204 of the local device 380 check whether responses are received from all the requested devices. If yes, then process step S314; if no, then repeat the steps S306-S308 at the requesting device, while non-responding remote devices process steps S309-S312. At step S314, the Content Information Handler 204 provides the remote device content information and local content information to the user. Thus, the requesting device 380 obtains the content information of the content it can process or display. Then, the user of the local device 380 might request contents suitable for its system capability via proper means as required. The requested content will be suitable for its system, and its local media player can display the content.

A person skilled in the art can understand that step S314 might be carried out during the time when steps S306-S313 are repeated.

The method for content information sharing illustrated in figure is only for explaining, not for limiting the present invention. The method for content information sharing of the present invention preferably comprises: step S309, a first device receiving a content information request from at least a second device via a network, said content information request comprises the capability information of the second device; step S310, said first device retrieving the information of the content that the first device could provide; step S311, said first device filtering the content information of the content that the first device could provide according to the capability information of the second device; and step S312, said first device sending the filtered content information of the content that the first device could provide to the second device.

Corresponding to the above method, another method for content information sharing of the present invention comprises: step S306 and/or step S307, a first device sending a content information request to a second device via a network, said content information request comprises the capability information of the first device; said first device receiving content information from said second device, said content information is obtained by the second device filtering the content information of the content that the second device could provide according to the capability information of the first device.

According to one aspect of the present invention, remote events may trigger content information updating within private network: e.g. notification of change of content on remote device, notification of change of cluster topology.

Figure 4 illustrates a flowchart for content information updating in a private network according to a further embodiment of the present invention. In the method, when contents in some devices change, the content information will be updated in the private network.

First at step S401, the content information handler of device B receives from its xCP content management module the information that its local content changes. At step S402, the device B obtains cluster information related with the device B in the private network. At step S403, device B obtains all the addresses of all the authorized devices (or xCP devices) in the clusters related with device B. At step S404, device B generates an update message NOTIFY_REFRESH and sends it to the above devices. At step S417, other devices (e.g. device A in the figure) receive the update message NOTIFY_REFRESH. At step S418, according to the update message, device A as a local device and device B as a remote device will carry out content information request process similar to the above step S305. The device A as a local device will carry out procedures similar to steps S306-S308 of figure 3; and device B as a remote device will carry out procedures similar to steps S309-S312 of figure 3.

Therefore, the content changes in a device in the private network is broadcast to related devices in the network, and the related device will update the resource information it could utilize in the network.

The following changes will cause change of the topology structure of an xCP cluster, and the shared content in a network will change. A new device is authorized and added in the xCP cluster, or a device belonging to the cluster is physically reconnected to the private network of the cluster. A device logically leaves the cluster, or a device physically disconnects to the private network of the cluster.

Figure 4 also shows the process for updating content information when the cluster topology changes. When the cluster topology changes, the xCP cluster management module of device A informs the content information handler to carry out corresponding process. The information of cluster topology change might be obtained from the following ways. The device A periodically or intermittently communicates with other cluster devices to explore cluster topology changes. The device which caused the cluster topology change sends message to other devices. The information of cluster topology change might also be obtained by other means known to a person skilled in the art. At step S414, device A receives a cluster topology change notification. At step S415, the type of cluster topology change is identified. If a remote device logically leaves the cluster, or a remote device physically disconnect from the private network of the cluster, then execute step S416, device A cancels the content information related to the remote device. If a new device is authorized to join the xCP cluster, or a device belonging to the cluster reconnects to the private network of the cluster, then execute step S418, device A and the remote device will execute content information request similar to the above step S305. Device A as a local device executes steps similar to the above steps S306-S308, the remote device executes steps similar to the above steps S309-S312.