Method for updating contents of a DMS in a DLNA system

A method for updating contents of a Digital Media Server (DMS) in a digital living network alliance system (DLNA) is disclosed. An update process is performed through a periodic update event in a Digital Media Player (DMP) that receives all content information of the DMS. Upon determining that information loss has occurred in the update process, the DMP sends to the DMS a request for information about a list of items possessed by the DMS. The DMP receives the requested information about the list of items and compares the received information about the list of items with information about pre-stored items to obtain a comparison result. When a difference occurs as the comparison result, all information about contents of the DMS is obtained through a browse action. When the difference does not occur as the comparison result, the update process is continuously performed.

CLAIM OF PRIORITY

This application claims priority under 35 U.S.C. §119 to an application entitled “Method for Updating Contents of a DMS in a DLNA System,” filed in the Korean Intellectual Property Office on Dec. 5, 2005 and assigned Serial No. 2005-117722, the contents of which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to a Digital Living Network Alliance (DLNA) system, and more particularly to a method for identifying content update information sent between a Digital Media Player (DMP) and a Digital Media Server (DMS).

2. Description of the Related Art

Home network technology provides a future-oriented home environment in which anyone can receive various high-quality home services when all information appliances in the home are connected to a wired/wireless network, irrespective of place and time. Because this home network technology is regarded as the underlying enabling technology of an ubiquitous environment and is the key technology, research is on-going into ways to improve performance while maintaining quality and scope of services.

One organization whose objectives include improving home network technology is the Digital Living Network Alliance (DLNA), a standardization organization for home network technology. The DLNA solves compatibility problems encountered in commercializing home network products by serving as a standardization organization. The DLNA was created as a result of efforts of an existing Digital Home Working Group (DHWG) created by Microsoft, IBM, HP, Intel, Sony, Matsushita, Samsung Electronics, and others on Jun. 2003. Digital Living Network Alliance and DLNA are registered trademarks of the Digital Living Network Alliance.

The DLNA defines a Personal Computer (PC) Internet network (of a PC, printer, etc.), a mobile network (of a Personal Digital Assistant (PDA), mobile phone, notebook computer, etc.), and an appliance network (of a Television (TV), audio, Digital Video Disc (DVD) player, etc.) as networks coexisting in the home. Moreover, the DLNA has attempted to provide interoperability through three schemes based on cooperation between leading industrial companies, standardization of an interoperability framework, products conforming thereto, and so on.

Specifically, the technology considered by the DLNA is to obtain, transmit, and manage a plurality of digital media contents (e.g., images, music, video, etc.) from personal devices such as mobile devices, PCs, etc. for consumers. That is, the DLNA technology allows media contents to be conveniently enjoyed on a home device, irrespective of the position and the type of device in the home.

For this, the DLNA is developing standards for physical media, network transmission, media formats, streaming protocols, Digital Right Management (DRM), among others on the basis of Universal Plug and Play (UPnP) technology.

Next, the DLNA will be described in detail. First, a network connection in the DLNA is based on Internet Protocol (IP). The IP is the basic network communication protocol for a device operating on the Internet. Through the IP, information can be transparently exchanged by instances of an application program executing on various media.

For example, a PC or Set-Top Box (STB) can wirelessly transmit media contents to a TV of the home through an Institute of Electrical and Electronics Engineers (IEEE) 802.11 Access Point (AP) connected to an Ethernet cable. Accordingly, all DLNA devices can communicate with other devices connected to the Internet through the IP, anywhere in the world.

A physical layer of the DLNA uses at least one of a wired high-speed Ethernet (802.11u) and a wireless Ethernet (802.11a/b/g). The stability of the wired Ethernet has been already verified. The wireless Ethernet has adopted Wi-Fi according to an increase of wireless home network communication.

The technology for discovering and controlling a device within a DLNA network is based on the existing UPnP Audio Video (AV) architecture and the existing UPnP device architecture to automatically configure networking setup for an IP address and identify and manage other devices. Similarly, the technology for discovering and controlling a service within a DLNA network is also based on the existing UPnP AV architecture and the existing UPnP device architecture.

In the above-described DLNA, device classes are divided into a Digital Media Server (DMS) and a Digital Media Player (DMP). The DMS performs a function of a server for providing media in the UPnP AV spec, and the DMP performs functions of a Media Renderer Device (MRD) and a Media Renderer Control Point (MRCP), i.e., functions for selecting, controlling, and playing media.

FIG. 1illustrates an example of a conventional DLNA system to which the present invention is applied.

As illustrated inFIG. 1, the DLNA system is configured on the basis of a DMS13for providing multimedia contents and a Mobile DMP (M-DMP)11for executing the provided multimedia contents. The M-DMP11conventionally includes wired and wireless DMPs. The M-DMP11of the present invention is preferably wireless, but the present invention includes a wired DMP. A Mobile-Network Connection Function (M-NCF) entity12used as an intermediate node for coupling the DMP11and the M-DMS13.

In this DLNA system, content update information of the DMS is obtained through a periodic update process after the DMP receives all initial information.

This process will be described with reference toFIG. 2.

FIG. 2is a flowchart illustrating an example of a process for updating contents of the DMS in a conventional DLNA system.

Referring toFIG. 2, a DMP21obtains all information about contents of the DMS22through a browse action thereto (Steps201and202).

Through this browse action, a content (or item) list of the DMS22is received in Extensible Markup Language (XML) format. Information received in the XML format includes each content Identifier (ID), item tree-related information such as a parent ID, child count, content title, content class, and content size mapped to the associated content, and detailed information about contents.

The update of content information received from the DMS22through the browse action is identified in a “ContainerUpdateIDs” event of a “ContentDirectory” (Step203). In the “ContainerUpdateIDs” event, information about changed items is transferred in a regular period. However, the basic environment of the DLNA system is based on the IP. Because a sequential packet transmission may not be guaranteed according due to the variable traffic of a network environment, a reliability problem occurs in the “ContainerUpdateIDs” event when only a pard if ab updated item is received by the DMS22.

When an associated event is lost in the “ContainerUpdateIDs” event of the current DLNA content directory spec, information about contents (or items) may differ between the DMS22and the DMP21, i.e., it may be wrong.

When accessing the DMS22using this wrong item information, the DMP21must wait for a predetermined time because an item cannot be searched for. When the DMP21accesses a different item and wrong information or contents, a problem in the associated DMP21service occurs. The “ContainerUpdateIDs” event is not an event to be transferred at every update time, but is an event to be transferred periodically. When a content update of the DMS22is not transferred in real time, synchronization may not be acquired when the DMP21uses a content list.

When update information is lost (Step204), the conventional DMP21obtains all information about contents of the DMS22using the browse action (Steps205and206).

When the amount of information lost about contents (or items) of the DMS22is small, a special problem does not occur. However, if the amount of information lost about contents (or items) is large as in a computer, significant overhead occurs when all information about contents is fetched by the DMP21from the DMS22using the browse action. When update information is frequently lost, it significantly affects DNLA system performance.

SUMMARY OF THE INVENTION

Accordingly, the present invention has been designed to solve the above and other problems occurring in the prior art, by providing a method for identifying updated contents of a Digital Media Server (DMS) on a Digital Living Network Alliance (DLNA) authentication network such that information about contents between a Digital Media Player (DMP) and the DMS can be continuously and correctly updated, by defining an action based on a new state variable that obtains a smaller amount of data than a browse action for obtaining detailed information about all items and that can more effectively identify all the items than the conventional “ContainerUpdateIDs” event.

The present invention provides the correct content information by defining a state variable relative to a Digital Media Server (DMS) and receiving content information of the DMS when a Digital Media Player (DMP) needs the information.

In accordance with a first embodiment of the present invention, there is provided a method for updating contents of a Digital Media Server (DMS) in a Digital Living Network Alliance (DLNA) system, comprising the steps of:

a) performing an update process through a periodic update event in a Digital Media Player (DMP) that receives all content information of the DMS;

b) sending a request for information about a list of items possessed by the DMS from the DMP to the DMS, upon determining that information loss has occurred in the performed update process;

c) receiving the requestd information about the list of items and comparing the received information about the list of items with information about pre-stored items to obtain a comparison result;

d) obtaining all information about contents of the DMS through a browse action when a difference occurs as the comparison result of step c); and

e) performing to steps a) through e) when the difference does not occur as the comparison result of step c).

In accordance with a second embodiment of the present invention, there is provided a method for updating contents of a Digital Media Server (DMS) in a Digital Living Network Alliance (DLNA) system, comprising the steps of:

a) performing an update process through a periodic update event in a Digital Media Player (DMP) that receives all content information of the DMS;

b) requesting by the DMP information about a list of items possessed to the DMS, upon determining that information loss has occurred in the update process;

c) receiving the requested information about the list of items and comparing the received information about the list of items with information about pre-stored items to obtain a comparison result;

d) requesting contents of a different list of items and obtaining information about the contents of the different list of items from the DMS, when a difference occurs as a comparison result of the step c); and

e) performing steps a) through e) when the difference does not occur as the comparison result of the step c).

DETAILED DESCRIPTION OF THE INVENTION

Exemplary embodiments of the present invention will be described in detail herein below with reference to the accompanying drawings. For the purposes of clarity and simplicity, detailed descriptions of functions and configurations incorporated herein that are well known to those skilled in the art are omitted for clarity and conciseness.

The present invention is a method for identifying and periodically updating contents of a Digital Media Server (DMS) in a Digital Media Player (DMP) of a Digital Living Network Alliance (DLNA) system. The method of the present invention is different from a method for getting updated container Identifiers (IDs) of contents of the DMS using the conventional “ContainerUpdateIDs” event.

That is, the present invention is a new method for identifying update information about contents of the DMS in an Internet Protocol (IP)-based DLNA system, comprising a new “state variable” and a new “Action” relating to “ContentDirectory” of a UPnP Audio Video (AV) stack.

In a first preferred embodiment of the present invention, a DLNA device (e.g., DMS, DMP, etc.) has IP connectivity and includes a Hypertext Transfer Protocol (HTTP) server/client. Moreover, the DLNA device can receive and transmit Universal Plug and Play (UPnP) messages and has one module of a UPnP device or Control Point (CP).

A S/W stack of each device uses an IP-based HTTP Multicast (HTTPMU) (directory), HTTP Unicast (HTTPU) (directory), and HTTP stack, and includes a protocol stack as defined in the UPNP device architecture, a protocol stack as defined in the UPNP forum working committee, and a protocol stack as defined in the UPNP vendor.

In the first preferred embodiment of the present invention, an “ItemTreeList” state variable is used to store a content tree list of the DMS. This “ItemTreeList” state variable includes item IDs within a tree in the Extensible Markup Language (XML) format. This XML is hierarchically stored. Through this, the DMP can identify all tree layers and layer-by-layer IDs.

The “ItemTreeList” state variable is defined in Table 1.

A “GetItemTreeList” action is defined as the action for identifying an “ItemTreeList” value.

TABLE 2NameReq or OptGetItemTreeListOpt

Also, a “GetActionFinishedNotify” is defined as follows.

Example 1 illustrates the format of an action response used in the conventional DLNA system. When the “GetItemTreeList” action as shown in Table 2 is invoked, content IDs of the DMS are transferred through a response Simple Object Access Protocol (SOAP) message.

FIG. 3illustrates a flowchart illustrating a process for updating contents of the DMS in a DLNA system in accordance with the first preferred embodiment of the present invention.

Referring toFIG. 3, a DMP31obtains all information about contents of the DMS32through a browse action thereto (Steps301and302).

Through the browse action, a content (or item) list of the DMS32is received in XML format. Information received in XML format includes each content ID, item tree-related information such as a parent ID, child count, content title, content class, and content size mapped to the associated content, and detailed information about contents.

The update of content information received from the DMS32through the browse action is identified in a “ContainerUpdateIDs” event of “ContentDirectory” (Step303). In the “ContainerUpdateIDs” event, information about changed items is transferred in a regular period. A regular period is one that occurs regularly with a given period or time between occurrences. However, the basic environment of the DLNA system is based on the IP. Because a sequential packet transmission cannot be guaranteed due to the variable nature of a network environment a reliability problem may result in the “ContainerUpdateIDs” event due to transfer only a part of an updated item between the DMS32AND THE DMP31.

When an associated event is lost in the “ContainerUpdateIDs” event of the prior art DLNA content directory spec, information about contents (or items) can differ between the DMS32and the DMP31, i.e., item information may be wrong.

When accessing the DMS32using wrong item information, the DMP31must wait for a predetermined time because an item cannot be found. When the DMP31accesses a different item, and wrong item information, or wrong contents, a problem in a service occurs. The “ContainerUpdateIDs” event is not an event to be transferred at every update time, but is an event to be transferred periodically. When a content update of the DMS32is not transferred in real time, synchronization may not be acquired when the DMP31uses a content list.

Thus, the case where update information is lost is taken into account in this first embodiment (Step304). That is, upon determining that update information has been lost, in a first preferred embodiment the DMP31receives “ItemTreeList” through the “GetItemTreeList” action (Steps305and306).

In this case, “ItemTreeList” includes only information about item tree layers and layer-by-layer IDs. In comparison with an amount of all content information received through the conventional browse action, a smaller amount of data is received in the first embodiment of the present invention.

When “ItemTreeList” is received (Step306), the DMP31compares its stored information with only “ItemTreeList” (Step307), and detects a content information difference between the information stored by the DMP31and the information received from the DMS32whenever such a difference occurs. If the content information difference is detected, all information about contents of the DMS is obtained through the conventional browse action (Steps308and309).

On the other hand, if the content information difference is not detected, it is determined that a content update is not lost, such that the conventional action “ContainerUpdateIDs” event is then performed (not shown).

FIG. 4is a flowchart illustrating a process for updating contents of the DMS in the DLNA system in accordance with a second preferred embodiment of the present invention.

Referring toFIG. 4, a DMP41obtains all information about contents of the DMS42through a browse action thereto (Steps401and402).

Through the browse action, a content (or item) list of the DMS42is received in XML format. Information received in the XML format includes each content ID, item tree-related information such as a parent ID, child count, content title, content class, and content size mapped to the associated content, and detailed information about contents.

The update of content information received from the DMS42through the browse action is identified in a “ContainerUpdateIDs” event of “ContentDirectory” (Step403). In the “ContainerUpdateIDs” event, information about changed items is transferred in a regular period where a regular period is as defined above for the first preferred embodiment. However, the basic environment of the DLNA system is based on the IP. Because a sequential packet transmission cannot be guaranteed due to the variability of traffic of a network environment, a reliability problem can occur in the “ContainerUpdateIDs” event when transferring only an updated part of an item.

When an associated event is lost in the “ContainerUpdateIDs” event of the prior arat DLNA content directory spec, information about contents (or items) can be different between the DMS42and the DMP41, i.e., the information at the DMP41can be wrong.

When accessing the DMS42and executing wrong item information, the DMP41must wait for a predetermined time because an item cannot be found. When the DMP41accesses a different item and wrong information or contents, a problem in a service can occur. The “ContainerUpdateIDs” event is not an event to be transferred at every update time, but is an event to be transferred periodically, i.e., in a regular period as defined above. When a content update of the DMS42is not transferred in real time, synchronization may not be acquired when the DMP41uses a content list.

Thus, the case where update information is lost is considered (Step404). That is, in a second preferred embodiment, upon determining that update information has been lost, the DMP41receives “ItemTreeList” through the “GetItemTreeList” action (Steps405and406).

In the second preferred embodiment, “ItemTreeList” includes only information about item tree layers and layer-by-layer IDs. In comparison with an amount of all content information received through the conventional browse action, a smaller amount of data is received in the present invention.

When “ItemTreeList” is received (Step406), the DMP41compares its stored information with only “ItemTreeList” (Step407), and detects a content information difference between the information stored by the DMP41and the information received from the DMS42whenever such a difference occurs. If the content information difference is detected, content information of the different list (the list corresponding to the received different content information) is requested (Step408), and the associated information of the different list is obtained (Step409).

On the other hand, if the difference is not detected, it is determined that a content update is not lost, such that the conventional “ContainerUpdateIDs” event is then performed (not shown).

FIG. 5illustrates an example of a content directory item for generating an “ItemTreeList” state variable used in the process for updating contents of the DMS in the DLNA system in accordance with the present invention.

A process for generating an “ItemTreeList” state variable through the DMS32or42will be described with reference toFIG. 5.

In relation to a DMS content directory item ofFIG. 5, a container and an item form a tree.

When only tree node IDs and arranged layers are identified because nodes are assigned IDs, a tree structure can be constructed.

“ItemTreeList” corresponding to the state variable defined in all embodiments of the present invention includes node ID numbers in XML format. In accordance with a layer and order of a tag, a layer and order of the tree is identified. Herein, a tree search method is performed from the left to the right of the tree.

In the example illustrated inFIG. 5, nodes are visited in order of IDs, i.e., the nodes are visited in the order0,1,2,3,4,5,11,21,22,31,32, and33. “ItemTreeList” is configured as shown in Example 2. According to each layer, a repeated layer of an XML tag is designated. Along with a tree ID, a container and an item layer is identified in the DMP31or41. The DMP31or41identifies a content tree.

Example 3 shows a response message to a “GetItemTreeList” action that is transferred with respect to the tree structure as shown in Example 2. A response is made in a SOAP packet. The response information is transferred along with the generated “ItemTreeList” state variable.

As described above, all preferred embodiments of the present invention are implemented with a program and that is stored in a computer readable recoding medium selected from the group consisting of a CD-ROM, RAM, floppy disk, hard disk, and optical magnetic disk.

All preferred embodiments of the present invention continuously update information about contents between a DMP and a DMS without any problem, by defining an action based on a new state variable that obtains a smaller amount of data than a conventional browse action for obtaining detailed information about all items and therefore can more effectively identify all the items in comparison with the conventional “ContainerUpdateIDs” event.

The present invention can provide the most correct content information by defining and maintaining a state variable at a DMP relative to a given DMS that is coupled to the DMP and receiving content information of the given DMS as a state variable when the DMP needs the information and comparing the content information received from the given DMS by the DMP in the form of a state variable with the maintained state variable at the DMP for the given DMS to obtain a comparison result. Whenever the comparison result is a difference, the DMP can take appropriate corrective action. Otherwise, the DMS is continuously updated.

Although the preferred embodiments and the accompanying drawings of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions, and substitutions are possible, without departing from the scope of the present invention as defined by the appended claims.