Abstract:
This method of managing at least one application referenced by a device (TRM) comprises a step of deleting execution data of said application, said execution data including at least some of the execution context of said application and said execution data that have been stored on remote equipment (SRV), and a step of downloading execution data of said application from said remote equipment.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    The present invention lies in the field of electronic devices. 
         [0002]    In particular but in non-limiting manner, it applies to electronic devices for home use and having relatively limited storage capacity. 
         [0003]    The invention applies in particular to devices constituting a gateway between a home network and an operator network, to set-top boxes forming an interface between a television content distribution network and a television set, and to games consoles. 
         [0004]    Numerous terminals nowadays enable users to download or to install new applications. Unfortunately, in the present state of the art, when the resources of the terminal are not sufficient for storing and/or properly executing an application, the user needs to deinstall an application from the terminal or more generally to delete data contained in the terminal in order to release sufficient memory for the new application. This situation is not satisfactory. 
         [0005]    One of the objects of the invention is to remedy the shortcomings of the state of the art. 
       OBJECT AND SUMMARY OF THE INVENTION 
       [0006]    Thus, in a first aspect, the invention provides a method of managing at least one application referenced by a device, the method comprising a step of deleting execution data of the application, the execution data comprising at least part of the execution context of said at least one application and said execution data having been stored on remote equipment, and a step of downloading execution data of said application from said remote equipment by a second device. 
         [0007]    Correspondingly, the invention relates to a device including means for deleting execution data of an application referenced on the device, the execution data having been stored in remote equipment. 
         [0008]    The device of the invention may be a terminal. 
         [0009]    The invention thus makes it possible to release space in the terminal in order to enable another application to be installed or executed but without losing the deleted execution data, which may be recovered from the remote equipment. 
         [0010]    In a particular implementation of the invention, the management method of the invention includes a step of backing up execution data of the application in the remote equipment before deleting it. 
         [0011]    Backing up in this way is not necessary if the execution data has already been stored in the remote equipment. 
         [0012]    In the meaning of this patent application, the remote equipment may be connected to a device of the invention via any type of network, in particular via the network of a telecommunications operator or via a local network, e.g. a home network. 
         [0013]    In this sense, the invention lies in the field of “cloud” computing and, in original manner, proposes using the resources of the cloud to back up execution data of applications. 
         [0014]    In a preferred implementation, the management method of the invention includes a step of updating a link pointing to the execution data in a memory of the device or in the remote equipment. 
         [0015]    This characteristic makes it easy to recover the execution data regardless of whether it is backed up locally in the device or in the remote equipment in order to release space. 
         [0016]    In an implementation, the above-mentioned execution data includes at least a portion of the code of the application. 
         [0017]    For example, in a particular implementation, the management method of the invention comprises:
       a step of receiving a request to install a first application in the device;   a step of deinstalling a second application of the device; and   a step of installing the first application in the device.       
 
         [0021]    In an implementation, the above-mentioned execution data includes at least a portion of the execution context of the application. 
         [0022]    The invention thus proposes backing up the execution context of an application that is executable by the device in equipment that is remote, with this context being downloaded by the device only when the application is to be executed. 
         [0023]    The invention thus makes it possible to avoid memory being occupied by the execution context of an application that is not being executed. 
         [0024]    In this patent application, the notion of an “execution context” specifies the image of an application at a given instant, in other words all of the memory variables and registers known to the application at that given instant. 
         [0025]    In accordance with this aspect of the invention, the entire execution context may be backed up in remote equipment, or only a portion thereof, with this second option serving to reduce the time needed for downloading the execution context into the device before executing the application. 
         [0026]    For example, the management method of the invention includes a step of executing the application, with the execution context of the application while it is executed being backed up in a memory zone of said device; and
       at least one step of sending at least a portion of the memory zone to the remote equipment for storing at least a portion of said execution context on the remote equipment.       
 
         [0028]    In an implementation, the execution method of the invention includes:
       a step of downloading an execution context of the application from the remote equipment;   a step of backing up the context in a memory zone of the device; and   a step of executing the application that is performed starting from the context backed up in the memory zone.       
 
         [0032]    In a particular implementation of the invention, the memory zone in which the context of an application is stored is a zone reserved for that application, i.e. it is isolated from the other applications. 
         [0033]    By way of example, it is possible for this purpose to make use of a zone that is known to the person skilled in the art as a “sandbox”, where such a zone makes it possible to define an execution environment that is specific to each application and secure, i.e. it is isolated from the other applications. 
         [0034]    The characteristics and advantages of the above-mentioned management method may be transposed to the device or the terminal of the invention. 
         [0035]    In a particular implementation, the various steps of the execution method and the various steps of the management method are determined by computer program instructions. 
         [0036]    Consequently, the invention also provides a computer program on a data medium, the program being suitable for being performed by a computer, the program including instructions adapted to performing steps of the execution method or the steps of the management method as mentioned above. 
         [0037]    The invention also provides a computer program on a data medium, the program being suitable for being performed by a computer, the program including instructions adapted to performing steps of the execution method or of the management method as mentioned above. 
         [0038]    The program may use any programming language, and it may be in the form of source code, object code, or code intermediate between source code and object code, such as in a partially compiled form, or in any other desireable form. 
         [0039]    The invention also provides a computer readable data medium that includes instructions of a computer program as mentioned above. 
         [0040]    The data medium may be any entity or device capable of storing the program. For example, the medium may comprise storage means such as a read only memory (ROM), e.g. a compact disk (CD) ROM, or a microelectronic circuit ROM, or indeed magnetic recording means, e.g. a floppy disk or a hard disk. 
         [0041]    Furthermore, the data medium may be a transmissible medium such as an electrical or optical signal, suitable for being conveyed via an electrical or optical cable, by radio, or by other means. The program of the invention may in particular be downloaded from an Internet type network. 
         [0042]    Alternatively, the data medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0043]    Other characteristics and advantages of the present invention appear from the following description made with reference to the drawings, which show an implementation having no limiting character. 
           [0044]    In the figures: 
           [0045]      FIG. 1  is a flow chart showing the main steps of a method of execution and the principles of a management method in accordance with a particular implementation of the invention; and 
           [0046]      FIG. 2  is a diagram showing a device in accordance with a particular embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0047]    With reference to  FIG. 2 , there can be seen a device TRM in accordance with the invention. 
         [0048]    The device has a hardware architecture of a computer. In particular, it comprises a processor  11 , a random access memory (RAM)  12 , and a ROM  13 . The ROM  13  constitutes a data medium in the meaning of the invention; it stores a computer program PG that includes instructions for executing steps of the management method shown in  FIG. 1 . 
         [0049]    The device TRM has an operating system OS and communications means COM enabling the device to communicate via a network NTW with a server SRV and an application server APSRV. 
         [0050]    In the presently-described embodiment, the device TRM has a rewritable non-volatile memory  14  storing the executable code EXE 4  and EXE 5  for two applications AP 4  and AP 5 , and also storing the execution content CTXT 4  of the application AP 4 . 
         [0051]    The executable code and the execution context of an application constitute the execution data of the application. 
         [0052]    The device TRM has a table TAB storing the states of a plurality of applications, and specifically in this example the states of three applications AP 4 , AP 5 , and AP 6 , and respective links pointing to the execution data of these applications, either in a memory of the device TRM or in a remote server SRV. 
         [0053]    In this example, the table TAB shows that:
       the code EXE 4  and the context CTXT 4  of the application AP 4  are stored in the memory  14 ;   the code EXE 5  of the application AP 5  is stored in the memory  14 , while the context CTXT 5  of the application is backed up in the remote server SRV; and   the code EXE 6  and the context CTXT 6  of the application AP 6  are backed up in the remote server SRV.       
 
         [0057]    In this example, the device TRM has a module MNG for managing applications that are referenced by the device, and a man-machine interface MMI. 
         [0058]    In this example, the remote server SRV stores a database MD including the code EXE 6  and the context CTXT 6  of the application AP 6  and the context CTXT 5  of the application AP 5 . 
         [0059]    The application server APSRV is a server from which the device TRM can download a new application AP 1  of code EXE 1 . 
         [0060]    The steps E 10  to E 80  in  FIG. 1  show the main steps of a management method in accordance with the invention. 
         [0061]    It is assumed that during a step E 5  the user of the device TRM seeks to install the application AP 1  that is available with the server APSRV. 
         [0062]    To this end, the user makes use of the man-machine interface MMI of the device and an installation command INST is issued by the man-machine interface to the management module MNG of the terminal. 
         [0063]    During a step E 10 , the management module MNG verifies whether the memory  14  has sufficient capacity to receive the code EXE 1  of the application AP 1 . 
         [0064]    If so, the result of the test E 10  is positive and the application is downloaded by the communications means COM and installed in the memory  14 . 
         [0065]    A new link is created in the table TAB in order to indicate that the executable EXE 1  is backed up in the memory  14 . 
         [0066]    If the flash memory  14  does not enable the code EXE 1  of the application AP 1  to be installed, the result of the test E 10  is negative. 
         [0067]    This test is then followed by a step E 15  during which the management module MNG selects from the applications that are installed in the device the application that is used the least frequently. 
         [0068]    To this end, in the presently-described implementation, the table TAB includes a usage column US including a usage indicator for each of the applications. 
         [0069]    In the presently-described implementation, it is assumed that the least used application is the application AP 6 . 
         [0070]    The code EXE 6  and the context CXT 6  of this application are backed up via the network NTW in the database BD of the server SRV during a step E 20 . 
         [0071]    The application AP 6  is deinstalled from the flash memory of the device  14  during a step E 25 . The links to the execution data of the application AP 6  are updated to point to the server SRV. 
         [0072]      FIG. 2  shows the state of the table TAB, of the database BD, and of the memory  14  after backing up and deinstalling in this way. 
         [0073]    During the step E 30 , the application AP 1  is downloaded by the communications means COM of the device TRM from the application server APSRV and installed in the memory  14 . 
         [0074]    It is now assumed that the user of the device TRM uses the man-machine interface MMI to launch an application (command STRT). 
         [0075]    If the executable EXE and/or the context CTXT of the application are not stored in the memory  14  of the device, the management module MNG acts in a step E 40  to follow the application links of this application to download the executable EXT and/or the context CTXT of the application from the server SRV via the network NTW. 
         [0076]    During a step E 45 , the management module MNG reserves a reserve zone ZR in a memory  15  of the device TRM for this application. 
         [0077]    It backs up the executable EXE and/or the context CTXT of the application in the reserved zone ZR during a step E 50 . The links are updated. 
         [0078]    Thereafter, during a step E 55 , the application is executed. 
         [0079]    In the presently-described implementation, the management module MNG backs up the execution context CTXT of the application being executed in the remote server SRV on a regular basis, every T seconds. 
         [0080]    For this purpose, the execution method of the invention acts during a test E 60  to verify whether the duration T has expired. 
         [0081]    If it has, the device TRM acts during a step E 65  to send all or part of the context CTXT of the application that is currently being executed to the remote server SRV. The links relating to this context are updated. 
         [0082]    Thereafter, during a step E 70 , the terminal verifies whether the user has used the man-machine interface MMI to request that the application be stopped (STOP command). 
         [0083]    If so, the terminal TRM backs up the execution context of the application once more in the remote server during a step E 75  and stops execution of the application during a step E 80 .