# Patent

## Title
Method of synchronizing a plurality of content directory device (CDS) devices, CDS device, and system

## Abstract

Provided is a method and system for synchronizing a plurality of content directory service (CDS) devices in a home network environment. The method of synchronizing the plurality of CDS devices of a home network, which includes the plurality of CDS devices and a control point (CP), comprises (a) requesting a first CDS device among the plurality of CDS devices to start synchronization using the CP; (b) performing the synchronization with a second CDS device among the plurality of CDS devices using the first CDS device; (c) selecting a third CDS device from the plurality of CDS devices and requesting the third CDS device to start synchronization with the first CDS device or the second CDS device using the CP; and (d) performing the synchronization with the first CDS device or the second CDS device using the third CDS device.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from Korean Patent Application No. 10-2006-0130138 filed on Dec. 19, 2006 in the Korean Intellectual Property Office and U.S. Provisional Patent Application No. 60/772,897 filed on Feb. 14, 2006 in the United States Patent and Trademark Office, the disclosures of which are incorporated herein by reference in its entirety.


BACKGROUND OF THE INVENTION
1. Field of the Invention
Methods and systems consistent with the present invention relates to home network technology, and more particularly, to synchronizing a plurality of content directory service (CDS) devices in a home network environment.
2. Description of the Related Art
Generally, a home network is formed of an Internet protocol (IP)-based private network. In the home network, various devices used at home, such as all forms of personal computers (PCs), intelligent products, and wireless devices, are connected to a single network through a common virtual computing environment called ‘middleware’ and controlled accordingly. Middleware connects various digital devices in a peer-to-peer manner and thus enables them to communicate with each other. Related art middleware includes home AV interoperability (HAVI), universal plug and play (UPnP), Java intelligent network infrastructure (Jini), and home wide web (HWW).
In particular, UPnP network is home network technology which is expected to be most widely used in the near future. The UPnP network defines an UPnP device, an UPnP service, and a protocol between the UPnP device and the UPnP service. The UPnP network is composed of controlled devices (CDs) and a control point (CP). The CDs are home network devices, which are connected to an IP-based home network and controlled accordingly, and the CP is a device controlling the CDs. The CP requests an event, and receives the requested event. Each of the CDs performs a predetermined function at the request of the CP. If the state of a CD changes, the CD sends an event to the CP at the request of the CP.
An operational process between devices in the related art UPnP network includes advertisement, discovery, description, control, and eventing processes.
UPnP audio/video (AV) technology, which enables a user to enjoy multimedia content, such as AV content, based on the UPnP technology, is described in an UPnP AV specification. According to the UPnP AV specification, UPnP AV architecture includes a media server providing a multimedia file using a CDS, a media renderer rendering the multimedia file provided by the media server, and a CP controlling the media server and the media renderer to communicate with each other. The CDS is a service built in the media server. The CDS provides metadata of content, which exists inside or outside a home network or is stored in the media server, to the CP. The CP identifies the metadata from the CDS and requests the media renderer to render the metadata.
If a plurality of devices, which form the UPnP AV architecture described above, is used at home, there is a need for a plurality of media servers storing different content. Accordingly, there must be a plurality of CDS's. As such, a method of synchronizing content scattered over a plurality of different CDS's on a home network environment is needed.
SUMMARY OF THE INVENTION
The present invention provides a method and system for synchronizing a plurality of CDS devices, which is capable of synchronizing content respectively retained by the CDS devices.
The present invention also provides a method and system for synchronizing a plurality of CDS devices, which is capable of reducing dependency on a CP after the synchronization of the CDS devices starts, thereby minimizing the time required to synchronize the CDS devices and network traffic due to the synchronization.
According to an aspect of the present invention, there is provided a method of synchronizing a plurality of CDS devices of a home network including the plurality of CDS devices and a CP. The method includes (a) requesting a first CDS device among the plurality of CDS devices to start synchronization using the CP; (b) performing the synchronization with a second CDS device among the plurality of CDS devices using the first CDS device; (c) selecting a third CDS device from the plurality of CDS devices and requesting the third CDS device to start synchronization with the first CDS device or the second CDS device using the CP; and (d) performing the synchronization with the first CDS device or the second CDS device using the third CDS device.
According to another aspect of the present invention, there is provided a CDS device including a synchronization descriptor which comprises synchronization information for synchronization with other CDS device; a synchronization descriptor management unit which manages the synchronization descriptor; and an embedded CP which exchanges the synchronization information with the other CDS device.
According to another aspect of the present invention, there is provided a system including a media server which has a plurality of CDS devices, the media server providing multimedia content; a media renderer which renders the provided multimedia content; and a CP which controls the media server and the media renderer to communicate with each other and supports synchronization of the CDS devices, in which the CP requests a first CDS device among the plurality of CDS devices of a home network to start synchronization, the first CDS device performs the synchronization with a second CDS device among the plurality of CDS devices, and a third CDS device among the plurality of CDS devices performs synchronization with the first CDS device or the second CDS device.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and other aspects of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, in which:
FIG. 1 illustrates a process of synchronizing two CDS devices according to an exemplary embodiment of the present invention;
FIG. 2 illustrates the two CDS devices updated as a result of the synchronization process of FIG. 1;
FIG. 3 illustrates a concept of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention;
FIG. 4 is a conceptual diagram illustrating a process of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention;
FIG. 5 is a block diagram of a system including a CP and a CDS device according to an exemplary embodiment of the present invention; and
FIG. 6 is a flowchart illustrating a method of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention.



DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS OF THE INVENTION
The present invention will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the present invention are shown. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein; rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Like reference numerals in the drawings denote like elements, and thus their description will be omitted.
Hereinafter, a method of synchronizing a plurality of CDS devices, a CDS device, and a system according to exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
For convenience, a UPnP AV system, which operates based on UPnP architecture, will mainly be described in the exemplary embodiments of the present invention. Devices for implementing the present invention will be named as defined in an UPnP AV specification. However, the scope of the present invention will not be affected by the home network system or the names of the devices.
FIG. 1 illustrates a process of synchronizing two CDS devices according to an exemplary embodiment of the present invention. FIG. 2 illustrates the two CDS devices updated as a result of the synchronization process of FIG. 1.
First of all, a CP 10 detects two CDS devices, i.e., CDS A 20 and CDS B 30 (operation S11), and requests each of the detected CDS A and B 20 and 30 for a CDS list (operation S12). The CP 10 selects objects, which are to be synchronized, in the CDS list received from each of the CDS A 20 and the CDS B 30 at its request (operation S13). If the CP 10 transmits a StartSync message to the CDS A 20 in order to request the CDS A 20 to start synchronization (operation S14), the CDS A 20 forwards a StartPeerSync message to the CDS B 30 in order to notify the CDS B 30 that it will start synchronization (operation S15).
In this process, synchronization between the CDS A 20 and the CDS B 30 starts. That is, the CDS A 20 and the CDS B 30 request each other for a list of objects to be synchronized and download resources and metadata based on the received object list (operation S16). Once downloading the resources and metadata, each of the CDS A 20 and the CDS B 30 updates the object list according to the downloaded resources and metadata and transmits the updated result to the CP 10 (operation S117).
The updated object list is illustrated in FIG. 2. After downloading the resources and metadata, the CDS A 20 and the CDS B 30 store the same object list, that is, circular and triangular objects. Hence, it can be understood that the CDS A 20 and the CDS B 30 are synchronized with each other.
In the exemplary embodiment of the present invention, synchronization denotes exchanging content and metadata of the content, which are retained by individual CDS devices, between the CDS devices according to a policy designated by a user. For example, if a device, such as an MP3 player, is synchronized with a home media center, multimedia content stored in the device can be enjoyed at high volume using a Hi-Fi device within a house.
If the number of CDS's, which are to be synchronized, is not two but N (N≧3), the situation becomes complicated. In the exemplary embodiment, a case where there are three CDS's will be described as an example. However, it is obvious to those of ordinary skill in the art that the synchronization process according to the exemplary embodiment can also be applied to a case where the number of CDS's exceeds three.
FIG. 3 illustrates a concept of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention.
In FIG. 3, the relationship between three CDS devices, i.e., CDS A 200A, CDS B 200B and CDS C 200C, centering around a CP 100 is illustrated. The CDS A 200A through CDS C 200C are targets of synchronization, and the CP 100 issues a command to perform synchronization. Specifically, the CP 100 collects latest synchronization information of the CDS A 200A through CDS C 200C distributed over a home network, compares the collected synchronization information with previously collected synchronization information, and issues a synchronization related command to the CDS A 200A through CDS C 200C using a difference between the two pieces of information.
A process of synchronizing a plurality of CDS devices, such as those described above, according to an exemplary embodiment of the present invention will now be described in more detail with reference to FIG. 4. FIG. 4 is a conceptual diagram illustrating a process of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention.
Referring to FIG. 4, a CP 100 selects two of three CDS devices, i.e., CDS A 200A, CDS B 200B and CDS C 200C, and synchronizes the selected two CDS devices. Then, the CP 100 repeatedly selects another pair of CDS devices and synchronizes the selected pair of CDS devices.
It is assumed that the CP 100 has selected and synchronized the CDS A 200A and the CDS B 200B. As in the synchronization process performed in FIGS. 1 and 2, the CP 100 detects two CDS devices, i.e., the CDS A 200A and the CDS B 200B, and requests each of the detected CDS A 200A and CDS B 200B for a CDS list. The CP 100 selects objects, which are to be synchronized, in the CDS list received from each of the CDS A 200A and the CDS B 200B at its request, and transmits a StartSync message to the CDS A 200A in order to request the CDS A 200A to start synchronization. Accordingly, the CDS A 200A forwards a StartPeerSync message to the CDS B 200B in order to notify the CDS B 200B that it will start synchronization. Then, the CDS A 200A and the CDS B 200B download resources and metadata of each other based on a list of objects to be synchronized (operation {circle around (1)}).
In operation ({circle around (1)}), the CDS A 200A is synchronized with the CDS B 200B. Then, the CP 100 selects and synchronizes the CDS B 200B and the CDS C 200C in the same manner as described above (operation {circle around (2)}). Finally, the CP 100 selects and synchronizes the CDS C 200C and the CDS A 200A (operation ({circle around (3)}). Detailed operations in each of operations ({circle around (2)}) and ({circle around (3)}) is identical to those in operation ({circle around (1)}), and thus a description thereof will be omitted.
In order to synchronize N (N≧3) CDS devices as an extension of the synchronization concept described above with reference to FIG. 4, two of the N CDS devices are selected and synchronized. Then, this process is repeated, thereby sequentially synchronizing the N CDS devices. To this end, the CP 100 should have an algorithm for selecting each pair of the CDS devices from the N CDS devices and combining the selected pair of CDS devices.
FIG. 5 is a block diagram of a system including a CP 100 and a CDS device 200 according to an exemplary embodiment of the present invention. In FIG. 5, an UPnP AV architecture system will be described as an example, and it is assumed that the UPnP AV architecture system includes N CDS devices and a CP. In addition to the CP and the N CDS devices, the UPnP AV architecture system includes a media server having the N CDS devices and a media renderer rendering and executing multimedia content stored in the media server.
Referring to FIG. 5, the CP 100 supports synchronization of the N CDS devices, which are included in the UPnP AV system and provide multimedia content, and controls the N CDS devices that will be synchronized. In addition, the CP 100 controls devices included in the UPnP AV system, such as the media server or the media renderer, to render the multimedia content.
The CDS device 200 controlled by the CP 100 includes an embedded CP 210, a synchronization descriptor 220, a synchronization descriptor management unit 230, and a storage unit 240.
The embedded CP 210 exchanges synchronization information with another CDS device.
The synchronization descriptor 220 contains the synchronization information for synchronization with a target CDS device. The synchronization information includes identification (ID) information of an object, which is to be synchronized, included in the CDS device 200, information regarding changes in the object, and information regarding a synchronization policy. In addition, the synchronization information includes information regarding a list of objects that are to be synchronized. The synchronization information may be changed as the object changes, i.e., is generated, modified, or deleted. The object to be synchronized includes an item corresponding to a multimedia file and a container containing the item.
The synchronization descriptor management unit 230 manages the synchronization descriptor 220. For example, the synchronization descriptor management unit 230 allows the synchronization descriptor 220 to be shared with another CDS device in order for synchronization with the CDS device.
The storage unit 240 obtains and stores information regarding changes in the synchronization information using the shared synchronization descriptor 220. In this case, the embedded CP 210 performs synchronization using the information regarding the changes in the synchronization information. Advantages of performing synchronization using the information regarding the changes in the synchronization information are as follows.
In an initial synchronization operation, all synchronization information including object lists of other CDS devices should be collected and compared. However, once the initial synchronization operation is performed, subsequent synchronization operations can be performed by updating changes in the synchronization information, which occurred in previous synchronization operations. Therefore, network resources can be efficiently utilized.
FIG. 6 is a flowchart illustrating a method of synchronizing a plurality of CDS devices according to an exemplary embodiment of the present invention.
Referring to FIG. 6, a CP requests a first CDS device among N CDS devices of a home network to start synchronization (operation S110). In this case, the CP 100 may request the first CDS device to generate a synchronization descriptor describing synchronization information between the first CDS device and a second CDS device. In response to the request, the first CDS device generates the synchronization descriptor, and the first and the second CDS devices share the synchronization descriptor.
The synchronization descriptor includes the synchronization information, and the synchronization information includes ID information of an object to be synchronized, information regarding changes in the object, and information regarding a synchronization policy.
After the synchronization descriptor is shared, the first CDS device performs synchronization with the second CDS device in earnest (operation S120). Specifically, for the synchronization, the shared synchronization descriptor is compared with a previously shared synchronization descriptor. That is, the synchronization is performed by obtaining changes in the synchronization information instead of inefficiently retrieving and comparing all information regarding objects to be synchronized.
After the synchronization is performed using the above method, the first and the second CDS devices exchange messages with each other to inform the completion of synchronization. Accordingly, the completion of synchronization is reflected in the synchronization descriptor, and thus the synchronization descriptor is updated.
After the two of the N CDS devices have been synchronized, the CP selects another CDS device from the N CDS devices of the home network and requests the selected CDS device to start synchronization with the first or the second CDS device (operation S130).
The requested CDS device performs the synchronization with the first or the second CDS device using the same method as described above (operation S140). Further, synchronization is performed on all of the N CDS devices (operation S150).
It is obvious to those of ordinary skill in the art that the scope of an apparatus for synchronizing a plurality of CDS devices according to the exemplary embodiments of the present invention extends to a computer-readable recording medium on which a program code for executing the above method using a computer is recorded.
As described above, the exemplary embodiments of the present invention provides at least one of the following advantages.
Since a plurality of CDS devices are synchronized with each other, the convenience of a home network user can be enhanced.
In addition, an embedded CP of a CDS device performs synchronization using information regarding changes in synchronization information. Therefore, once an initial synchronization operation is formed, subsequent synchronization operations can be performed without a CP. That is, CP-independent synchronization is possible.
Furthermore, the present invention can secure increased synchronization speed over related art UPnP technology and can perform synchronization using the related art UPnP technology.
However, the effects of the exemplary embodiments of the present invention are not restricted to the one set forth herein. The above and other effects of the exemplary embodiments of the present invention will become more apparent to one of daily skill in the art to which the present invention pertains by referencing the claims.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the exemplary embodiments of the present invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.

## Claims

1. A method of synchronizing a plurality of content directory service (CDS) devices of a home network which comprises the plurality of CDS devices and a control point (CP), the method comprising:
(a) requesting, by the CP, a CDS list from a first CDS device among the plurality of CDS devices and a CDS list from a second CDS device among the plurality of CDS devices;
(b) selecting, by the CP, objects from the CDS list from the first CDS device and objects from the CDS list from the second CDS device which are to be synchronized;
(c) requesting, by the CP, the first CDS device to start synchronization;
(d) performing, by the first CDS device, the synchronization with the second CDS device among the plurality of CDS devices;
(e) selecting, by the CP, a third CDS device from the plurality of CDS devices and requesting the third CDS device to start synchronization with the first CDS device and synchronization with the second CDS device; and
(f) performing, by the third CDS device, the synchronization with the first CDS device and the second CDS device after the synchronization between the first CDS device and the second CDS device has been completed,
wherein the plurality of CDS devices and the CP are connected via a network.

2. The method of claim 1, further comprising repeating operations (e) and (f) on all of the plurality of CDS devices to thereby synchronize the plurality of CDS devices.

3. The method of claim 1, wherein (c) comprises:
requesting the first CDS to generate a synchronization descriptor, which comprises synchronization information between the first CDS device and the second CDS device, using the CP; and
sharing the synchronization descriptor between the first CDS device and the second CDS device.

4. The method of claim 3, wherein the synchronization information comprises identification (ID) information of each object, which is to be synchronized and is included in each of the first CDS device and the second CDS devices, information regarding changes in the object, and information regarding a synchronization policy.

5. The method of claim 3, wherein (d) comprises:
comparing the synchronization descriptor shared by the first CDS device and the second CDS device with a previously shared synchronization descriptor to obtain information regarding changes in the synchronization information; and
performing synchronization using the information regarding the changes in the synchronization information.

6. The method of claim 5, wherein (d) further comprises exchanging messages between the first CDS device and the second CDS device in order to inform completion of the synchronization, reflecting the completion of the synchronization in the synchronization descriptor, to thereby update the synchronization descriptor.

7. The method of claim 1, wherein the home network is based on universal plug and play audio/video architecture.

8. A content directory service (CDS) device comprising:
a synchronization descriptor which comprises synchronization information for synchronization with another CDS device which is determined to be synchronized;
a synchronization descriptor management unit which manages the synchronization descriptor; and
an embedded control point (CP) which exchanges the synchronization information with the another CDS device,
wherein after an initial synchronization operation is performed between respective CDS devices, subsequent synchronization operations between the respective CDS devices are only performed to update changes in the synchronization operation,
wherein objects to be synchronized between the CDS device and the another CDS device are selected by a control point which refers to a CDS list received from the CDS device and a CDS list received from the another CDS device,
wherein the initial synchronization operation or the subsequent synchronization operations is performed in response to a synchronization command issued by the control point, and
wherein the CDS device, the another CDS device and the control point are connected via a network.

9. The device of claim 8, wherein the synchronization information comprises identification (ID) information of an object, which is to be synchronized and is included in the CDS device, information regarding changes in the object, and information regarding a synchronization policy.

10. The device of claim 8, wherein the synchronization descriptor is shared with the another CDS device for the synchronization with the another CDS device.

11. The device of claim 10, further comprising a storage unit which obtains and stores information regarding changes in the synchronization information using the shared synchronization descriptor, wherein the embedded CP performs the synchronization using the information regarding the changes in the synchronization information.

12. A system comprising:
a media server which comprises a plurality of content directory service (CDS) devices, the media server providing multimedia content;
a media renderer which renders the provided multimedia content; and
a control point (CP) which requests a CDS list from a first CDS device and a CDS list from a second CDS device, and controls the media server and the media renderer to communicate with each other and supports synchronization of the CDS devices by selecting objects from the CDS list of the first CDS device and objects from the CDS list of the second CDS device which are to be synchronized,
wherein the CP requests the first CDS device among the plurality of CDS devices of a home network to start synchronization, the first CDS device performs the synchronization with the second CDS device among the plurality of CDS devices, and a third CDS device among the plurality of CDS devices performs synchronization with the first CDS device and the second CDS device after the synchronization between the first CDS device and the second CDS device has been completed, and
wherein the plurality of CDS devices and the CP are connected via a network.

13. The system of claim 12, wherein the first CDS device comprises:
a synchronization descriptor which comprises synchronization information for synchronization with the second CDS device;
a synchronization descriptor management unit which manages the synchronization descriptor; and
an embedded CP which exchanges the synchronization information with the second CDS device.

14. The system of claim 13, wherein the synchronization information comprises identification (ID) information of an object, which is to be synchronized and is included in the first CDS device, information regarding changes in the object, and information regarding a synchronization policy.

15. The system of claim 13, wherein the synchronization descriptor is shared with the second CDS device for the synchronization with the second CDS device.

16. The system of claim 15, wherein the first CDS device further comprises a storage unit which obtains and stores information regarding changes in the synchronization information using the shared synchronization descriptor.

17. The system of claim 12, wherein the home network is based on universal plug and play audio/video architecture.

18. A non-transitory computer readable recording medium storing a computer program for performing a method of synchronizing a plurality of content directory service (CDS) devices of a home network which comprises the plurality of CDS devices and a control point (CP), the method comprising:
(a) requesting, by the CP, a CDS list from a first CDS device among the plurality of CDS devices and a CDS list from a second CDS device among the plurality of CDS devices;
(b) selecting, by the CP, objects from the CDS list from the first CDS device and objects from the CDS list from the second CDS device which is to be synchronized;
(c) requesting, by the CP, the first CDS device to start synchronization;
(d) performing, by the first CDS device, the synchronization with the second CDS device among the plurality of CDS devices;
(e) selecting, by the CP, a third CDS device from the plurality of CDS devices and requesting the third CDS device to start synchronization with the first CDS device and synchronization with the second CDS device; and
(f) performing, by the third CDS device, the synchronization with the first CDS device and the second CDS device after the synchronization between the first CDS device and the second CDS device has been completed,
wherein the plurality of CDS devices and the CP are connected via a network.