Abstract:
Provided is a method and apparatus for providing a client with an application received through a data broadcast channel as a type of content of a content directory service (CDS) or a Universal Plug and Play (UPnP) service newly defined to provide applications by a server.

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATION 
       [0001]    This application claims priority from Korean Patent Application No. 10-2008-0134955, filed on Dec. 26, 2008, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    Apparatuses and methods consistent with the -inventive concept_relate to a home network, and more particularly, using an application stored in a server by a client in a home network. 
         [0004]    2. Description of the Related Art 
         [0005]    Home network services such as a Content Directory Service (CDS), an Audio Video Transport Service (AVTS), and a Rendering Control Service (RCS) have emerged based on Universal Plug and Play (UPnP) which is home network middleware. By combining data broadcasting and home network technology, a data broadcasting application can be recorded by a digital video recorder (DVR) and a recorded broadcast stream can be provided to another device in a home network. 
         [0006]      FIG. 1  is a diagram for explaining a method in which a device (device A) uses an application stored in another device (device B) in a home network according to the prior art. 
         [0007]    A UPnP standardized service, such as a CDS, provides general contents like general AV, a moving picture, or a music file, but does not provide a method of using an application. Thus, in order for a device (a client) having installed therein middleware supporting Open Cable Application Platform (OCAP), Multimedia Home Platform (MHP), or Blu-ray Disc Java (BD-J), i.e., having an environment capable of driving an application, to use an application of a remote device (a server), the device has to request a stream including the application and execute the application with reference to an application information table (AIT) included in the stream. 
         [0008]    Therefore, as shown in  FIG. 1 , in order to provide an application as a component included in a broadcast stream, the client (device A) also has to receive an AV stream from the server (device B) even when it desires to drive only the application, irrespective of the AV stream. If the server separately stores the AV stream and the application, it may be difficult to provide the AV stream and the application together. 
       SUMMARY OF THE INVENTION 
       [0009]    One or more exemplary embodiments provide a method and apparatus for allowing a device (e.g., a client) to use a remote application stored in another device (e.g., a server) in a home network. 
         [0010]    According to an aspect of an exemplary embodiment, there is provided a method of providing an application by a server in a home network, the method including transmitting at least one document including information for remotely using the application to a client, receiving a control request for the application from the client, and controlling the application according to the control request. 
         [0011]    The document may include at least one of a UPnP device description and a UPnP service description. 
         [0012]    The document may indicate that a content directory service (CDS) of the server provides the application as a type of content. 
         [0013]    The method may further include transmitting metadata of the application to the client in response to calling a browse( ) or search( ) action of the client. 
         [0014]    The metadata may include at least one of an AIT for the application, position information of the AIT, an application management table (AMT) for the application, and position information of the AMT. 
         [0015]    The metadata may include at least one of profile information of middleware to which the application is subordinate, attribute information of the middleware, and release version information of the middleware. 
         [0016]    The document may include at least one of a UPnP device description indicating that the server provides a predetermined UPnP service defined to provide applications and a UPnP service description including information about actions for remotely using the application. 
         [0017]    The document may include at least one of a UPnP device description indicating that the server provides a plurality of applications subordinate to a plurality of middleware as an independent UPnP service for each of the plurality of middleware and a UPnP service description including information about actions for remotely using the plurality of applications. 
         [0018]    The server may operate as an OpenCable-Digital Media Server (OC-DMS) and the client may operate as an OpenCable-Digital Media Player (OC-DMP). 
         [0019]    According to another aspect of an exemplary embodiment, there is provided a computer-readable recording medium having recorded thereon a computer program for executing the method of providing an application by a server in a home network. 
         [0020]    According to another aspect of an exemplary embodiment, there is provided an apparatus for providing an application of a server to a client in a home network, the apparatus including an information providing unit which transmits at least one document including information for remotely using the application to the client, a request receiving unit which receives a control request for the application from the client, and a control unit which controls the application according to the control request. 
         [0021]    According to another aspect of an exemplary embodiment, there is provided a method of using an application of a server by a client in a home network, the method including searching for a server which holds the application in the home network, extracting information which controls the application from a Universal Plug and Play (UPnP) service description of the found server, and controlling the application by using the extracted information. 
         [0022]    The searching for the server may include searching for devices which provide applications as a type of content in a CDS by using one of a UPnP device description and the UPnP service description and searching for a device which holds the application as a content item from among the devices which provide applications as the type of content by using a browse( ) or a search( ) action. 
         [0023]    The searching for the server may include searching for a device which provides a predetermined UPnP service defined to provide applications by using a UPnP device description. 
         [0024]    The controlling of the application may include generating a service module in a form of an object, which allows a local application installed in the client to control the application of the server, by using a UPnP service description for the predetermined UPnP service, and calling a corresponding action of the predetermined UPnP service when a request for the application of the server from the local application through the service module is received. 
         [0025]    The server may operate as an OC-DMS and the client may operate as an OC-DMP. 
         [0026]    According to another aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon a computer program for executing the method of using an application of a server by a client in a home network. 
         [0027]    According to another aspect of the present invention, there is provided a client apparatus which uses a remote application in a home network, the client apparatus including a searching unit which searches for a server which holds the application in the home network, an information extracting unit which extracts information for controlling the application from a UPnP service description of the server which holds the application, and a control unit which controls the application by using the extracted information. 
         [0028]    The control unit may include: an object generating unit which generates a service module in a form of an object, which allows a local application installed in the client apparatus to control the application of the server, by using a UPnP service description for the predetermined UPnP service; and an action calling unit which calls a corresponding action of the predetermined UPnP service when a request for the application of the server from the local application through the service module is received. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0029]    The above and other aspects will become more apparent by describing in detail exemplary embodiments with reference to the attached drawings in which: 
           [0030]      FIG. 1  is a diagram for explaining a method in which a device uses an application stored in another device in a home network according to the related art; 
           [0031]      FIG. 2  is a conceptual diagram for explaining a method of providing an application as content of a CDS to a client by a server according to an exemplary embodiment; 
           [0032]      FIG. 3  is a conceptual diagram for explaining a method of providing an application as an independent service by a server according to an exemplary embodiment; 
           [0033]      FIGS. 4A and 4B  illustrate a device description of a server which provides an application service according to an exemplary embodiment; 
           [0034]      FIG. 5  is a conceptual diagram for explaining a method of providing an application service for each middleware by a server according to an exemplary embodiment; 
           [0035]      FIG. 6  is a flowchart illustrating a process of providing an application to a client by a server according to an exemplary embodiment; 
           [0036]      FIG. 7  is a flowchart illustrating a process of using an application of a server by a client according to an exemplary embodiment; 
           [0037]      FIGS. 8A to 8C  illustrate documents indicating that a server has an application providing function according to an exemplary embodiment; and 
           [0038]      FIG. 9  illustrates structures of a server and a client according to an exemplary embodiment. 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0039]    Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. 
         [0040]    In the following description, in an exemplary home network, a device which provides an application will be referred to as a server and a device which uses a remote application will be referred to as a client. 
         [0041]      FIG. 2  is a conceptual diagram for explaining a method of providing an application as content of a Content Directory Service (CDS) to a client by a server according to an exemplary embodiment. 
         [0042]    As shown in  FIG. 2 , according to an exemplary embodiment of the present invention, a server (e.g., device B) provides an application as content of a UPnP CDS. That is, the server may register the application as its content and the client (e.g., device A) may obtain a list and metadata of applications by calling an action such as browse( ) search( ) or the like. 
         [0043]    In a home network to which the OCAP standard is applied, a server and a client may operate as an OC-DMS and an OC-DMP, respectively. In this case, once the application is registered as content, ContentContainer of the client sets a type of the content as &lt;application&gt;. In this way, for local applications installed in the client, content types may be set as &lt;application&gt; and thus application contents may be searched. An application may also be searched based on a data broadcasting standard or a type of middleware, such as OCAP, Advanced Common Application Platform (ACAP), MHP, or BD-J. Moreover, for a specific standard, executable applications may be searched by using profile information and a release version of middleware of a client. 
         [0044]    Since a local application of the client may determine whether a found remote application can be executed in the client with reference to metadata of the remote application, it is desirable to selectively request only an executable application. 
         [0045]    The local application of the client may obtain abstract service information from the metadata of the remote application and request the remote application by using the abstract service information through a ServiceContext module. 
         [0046]    The local application of the client may also request the remote application by using the metadata of the remote application through an application manager module. In response to a request for executing an application, the application manager module requests a server to provide the application with reference to metadata of the application, such as position information, an application information table (AIT), and an application management table (AMT). At this time, reference may be made to the position information of the application, attributes of the application, such as an ID of the application (e.g., Appl 1 , App 2 , App 3 , App 4 ), author or provider information, and functions of the application, initial start state information of the application, parameter information for executing the application, and a caching method of the application, all of which are included in the metadata. 
         [0047]      FIG. 3  is a conceptual diagram for explaining a method of providing an application as an independent service by a server according to an exemplary embodiment of the present invention. 
         [0048]    As shown in  FIG. 3 , according to an exemplary embodiment, a server (e.g., device B) provides an application through a predetermined UPnP service (“AppS” in  FIG. 3 , which will hereinafter be referred to as an application service) defined separately for the purpose of providing the application, instead of providing the application as content of a particular service (e.g., a CDS). That is, the server provides the application in a service level like a CDS or an Audio Video Transport Service (AVTS). 
         [0049]    Thus, the server provides a UPnP service description (which will hereinafter be referred to as a service description) for the application service to the client, and the service description includes information about actions for controlling the application. For example, in the service description, an action for searching for the application, an action for loading the application, and an action for loading a particular application from a third client may be defined. 
         [0050]    If the client operates as an OC-DMP and the server operates an OC-DMS, the client generates a service module in the form of an object, which allows a local application installed in the client to use an application of the server, by referring to the service description. The local application of the client may also use an application service of the server by referring to metadata of a remote application through the application manager module. The local application may also obtain abstract service information from metadata of a remote application and then use a service of the remote application based on the abstract service information through a module having a presentation function, such as a ServiceContext module. 
         [0051]      FIGS. 4A and 4B  illustrate a UPnP device description (which will hereinafter be referred to as a device description) of a server which provides an application service according to an exemplary embodiment. 
         [0052]    Referring to  FIG. 4A , the device description of the server indicates that an application service AppS is provided together with a CDS and an RCS. More specifically, as shown in  FIG. 4B , a service list of the device description of the server which provides the application service includes information associated with the application service, more specifically, a uniform resource locator (URL) of the service description, a URL for requesting a control action of the application, and a URL for monitoring an event. 
         [0053]      FIG. 5  is a conceptual diagram for explaining a method of a server providing an application service for each middleware according to an exemplary embodiment of the present invention. 
         [0054]    Although the server provides all applications thereof through a single application service in the exemplary embodiment shown in  FIG. 3 , the server can provide an independent application service for each middleware to which applications are subordinate in the exemplary embodiment of the present invention. For example, as shown in  FIG. 5 , the server (e.g., device B) may provide an OCAP application service which provides an application service being subordinate to OCAP, a BD-J application service which provides an application service being subordinate to BD-J, an ACAP application service which provides an application service being subordinate to ACP, and an MHP application service which provides an application service being subordinate to MHP, independently of one another. 
         [0055]    In this case, the server (e.g., device B) may provide attributes of each middleware, profile information of each middleware, release version information of each middleware, and attribute information associated with an operating environment of each middleware through metadata. 
         [0056]      FIG. 6  is a flowchart illustrating a process of providing an application to a client by a server according to an exemplary embodiment of the present invention. 
         [0057]    In operation  601 , a server transmits a document including information for remotely using an application of the server to a client. The information may include information requested in order for the client to ultimately load the application of the server. Thus, the information may include information indicating that the server provides the application as a type of content of a CDS or through an application service, and information about actions for controlling the application. The document may include at least one of a device description and a service description. 
         [0058]    In operation  602 , the server transmits metadata of the application to the client. If the server provides the application as content of a CDS, the metadata may be a response to a browse( ) or a search( ) call. If the server provides the application through an application server, an action for requesting the metadata may be defined in the application service, and the metadata may be a response to the action. 
         [0059]    The metadata of the application is a concept including information associated with the application. For example, the information associated with the application may be profile information of middleware to which the application is subordinate, attribute information and release version information of middleware, position information of the application, attributes of the application (e.g., an ID of the application, author or provider information, and functions of the application), initial start state information of the application, parameter information for executing the application, and information about a caching method of the application, most of which are indicated in an AIT or AMT for the application. Thus, the metadata of the application may include at least one of an AIT for the application, position information of the application, an AMT for the application, and position information of the application. 
         [0060]    In operation  603 , the server receives a control request for the application from the client which receives the document. 
         [0061]    In operation  604 , the server controls the application according to the control request. For example, the server transmits the application to the client indicated in the control request. 
         [0062]    Thus, according to the exemplary embodiment, in a home network, a device can efficiently search for and use an application of another device, irrespective of an audio/video (AV) stream. 
         [0063]      FIG. 7  is a flowchart illustrating a process of using an application of a server by a client according to an exemplary embodiment. 
         [0064]    In operation  701 , the client searches for a server which holds a particular (target) application. If the server provides an application as content of a CDS, the client first has to search for devices which provide applications as a type of content of a CDS. Information about a search result may be inserted into a device description or a service description. Next, the client has to search for a device which holds the target application as a content item from among the found devices. To this end, the browse( ) or search( ) action may be used. 
         [0065]    If the server provides an application through an application service, the client first searches for devices which provide application services in the home network by referring to device descriptions. In a service list of a device description provided by a device which provides an application service, the application service is indicated, whereby the devices which provide the application services can be found by referring to the device descriptions of the devices. Once the devices which provide the application services are found, a search for a device having the target application, from among the found devices, is performed. To this end, a predetermined action defined for searching for an application in an application service may be used. 
         [0066]    In operation  702 , the client extracts information for controlling the target application from a service description. That is, the client extracts information about an action for controlling the target application. 
         [0067]    In operation  703 , the client controls the target application by using the extracted information. The client generates a service module in the form of an object, which allows a local application installed in the client to use an application of the server, by referring to the service description of the application service, and calls a corresponding action upon receiving a request for the application of the server from the local application through the service module. 
         [0068]    According to an exemplary embodiment, the client may determine whether the client can execute the application by referring to metadata of the application, and then call a corresponding action if the client can execute the application. 
         [0069]      FIGS. 8A to 8C  illustrate documents indicating that a server supports an application providing function according to an exemplary embodiment. 
         [0070]    As mentioned above, in order to remotely use an application of a server, the client first has to search for the server which provides the application as content of a CDS or in a service level. To this end, information (hereinafter be referred to as “support indicating information”) indicating that the server supports the application providing function may be inserted into a device description or a service description. 
         [0071]    The support indicating information is included in a service list of a device description in  FIG. 8A , is included in a service description in  FIG. 8B , and is inserted by using a separate attribute tag in a device description in  FIG. 8C . 
         [0072]      FIG. 9  illustrates structures of a server and a client according to an exemplary embodiment. 
         [0073]    As shown in  FIG. 9 , a server  900  according to an exemplary embodiment includes an information providing unit  901 , a request receiving unit  902 , and a request processing unit  903 . 
         [0074]    The information providing unit  901  transmits a document including information for remotely using an application  951  stored in a local storage  950  to a client  910 . The document may include at least one of a device description and a service description. The document includes support indicating information indicating that the server  900  provides the application  951  as a type of content of a CDS or through an application service which is a service newly defined in the present invention. Thus, the client  910  may recognize that the server  900  is a device supporting an application providing function in the home network. 
         [0075]    If the server  900  supports an application service, the service description may include information about actions for remotely using the application  951  of the server  900 . 
         [0076]    As previously described with reference to  FIG. 5 , application services may be provided independently for each middleware. In this case, a service list of a device description of the server  900  may indicate that the server  900  provides applications being subordinate to middleware as a single service for each middleware. 
         [0077]    The request receiving unit  902  transmits metadata of the application  951  to the client  910  in response to a browse( ) or search( ) call defined in a CDS of the client  910  or a predetermined action call of an application service newly defined in an exemplary embodiment. The metadata of the application  951  may include profile information of middleware to which the application  951  is subordinate, attribute information of the middleware, and release version information of the middleware. The metadata may also include an AIT or AMT for the application  951 . 
         [0078]    The request processing unit  903  controls the application at the request from the client  910 . For example, the request processing unit  903  transmits the application  951  to the client  910  or another client (not shown). 
         [0079]    The client  910  includes a searching unit  911 , an information extracting unit  912 , and a control unit  920 . 
         [0080]    The searching unit  911  searches for a server which holds the application  951  in the home network. More specifically, the searching unit  911  searches for devices which provide applications as a type of content of a CDS by referring to a device description or a service description, and finally finds out the server  900  which holds the target application  951  as a CDS content item from among the found devices by using a browse( ) or a search( ) call. 
         [0081]    If the server  900  provides an application service, the searching unit  911  searches for devices which provide application services in the home network by referring to device descriptions. Next, the searching unit  911  calls a predetermined action provided in an application service, thereby finally finding out the server  900  which holds the target application  951 . 
         [0082]    The information extracting unit  912  extracts information for controlling the application  951  from the service description of the found server  900 , such as a parameter used for a control message. 
         [0083]    The control unit  920  controls the application  951  by using the information extracted by the information extracting unit  912 . 
         [0084]    The control unit  920  includes an object generating unit  921  and an action calling unit  922 . 
         [0085]    The object generating unit  921  generates a service module in the form of an object, which allows a local application installed in the client  910  to use the remote application  951 , by referring to a service description for the application service of the server  900 . 
         [0086]    Upon receiving a request for the remote application  903  from the local application through the service module, the action calling unit  922  calls a corresponding action of the application service. As a result, the client  910  receives all or some of the application  951  and loads it in a memory, whereby the application  951  becomes available. 
         [0087]    The exemplary embodiments can be embodied as a program that can be executed on a computer and can be implemented in a general-purpose digital computer executing the program using a computer-readable recording medium. 
         [0088]    Examples of the computer readable recording medium include magnetic recording media such as a read-only memory (ROM), a random-access memory (RAM), floppy disks, and hard disks, and optical data storage devices such as CD-ROMs and digital versatile disks (DVDs). 
         [0089]    While the exemplary embodiments have been particularly shown and described with reference to the 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.