PROCEDE DE STOCKAGE
La présente invention concerne un procédé de stockage d'une première version d'un fichier dans un premier espace mémoire.
Un tel procédé est connu du document US 2006/0136548. Ce document décrit un procédé de stockage de logiciels d'application et de données qui sont liées à ces applications dans une mémoire d'un terminal, par exemple un téléphone portable. Le procédé du document US 2006/0136548 prévoit, avant une transmission d'un logiciel d'application vers la mémoire du téléphone portable, la réservation d'une espace mémoire qui correspond à la taille du logiciel d'application concerné. Ainsi, si le logiciel d'application a une taille de 10 ko, l'espace réservé comprendra 10 ko. Par contre, si le logiciel d'application a une taille de 40 ko, l'espace réservé comprendra 40 ko. La taille de l'espace mémoire réservé est donc égale à la taille du logiciel d'application. Par la suite, le logiciel d'application est enregistré dans l'espace mémoire ainsi réservé.
Dans le cas où la mémoire du téléphone portable ne comprend pas suffisamment de l'espace pour permettre la réservation, c'est-à-dire si par exemple l'espace disponible dans la mémoire n'est que 20 ko, tandis que la réservation doit être 30 ko, la réservation ne pourra pas être faite et l'application et ses données ne seront donc pas enregistrées. SiI s'agit d'une nouvelle version d'une application qui doit remplacer une version actuelle, par exemple dans le cadre d'une mise à jour de cette application, cette mise à jour ne sera donc pas possible. Un exemple est la mise à jour d'un type de logiciel appelé en anglais "firmware". La présente invention vise par conséquent à remédier l'inconvénient mentionné ci-dessus en proposant un procédé pour mieux gérer l'espace dans une mémoire avec une faible capacité de stockage, telle celle dont est généralement muni un téléphone portable.
En effet, selon l'invention, un procédé conforme au paragraphe introductif est caractérisé en ce qu'il comprend en outre :
- une étape de transmission d'une quantité de données depuis ledit premier espace mémoire vers un deuxième espace mémoire, ladite quantité étant au moins égale à une différence entre la taille de ladite première version dudit fichier et la taille d'une partie non-occupée dudit premier espace mémoire,
- une étape de remplacement d'une deuxième version dudit fichier par ladite première version, et
- une étape de retransmission de ladite quantité depuis ledit deuxième espace mémoire vers ledit premier espace mémoire.
De cette façon, une mise à jour d'un fichier peut se réaliser même si la mémoire du terminal est complètement occupée. I l n'est plus nécessaire d'avoir une espace mémoire non-utilisable libre et réservée pour les mises à jour des fichiers.
Dans un mode de mise en œuvre de l'invention, le procédé est caractérisé en ce qu'il comprend en outre
- une étape de vérification que ledit espace mémoire (1 1 ) a une taille au moins égale à une taille nécessaire pour la réception de ladite première version (1 13) et ladite partie occupée par ladite deuxième version.
Cette étape assure que le procédé ne sera pas déclenché s'il ne peut pas se réaliser physiquement, c'est-à-dire faute d'espace disponible dans l'espace mémoire.
Dans un mode de mise en oeuvre de l'invention, le procédé est caractérisé en ce que ladite étape de transmission comprend un choix des données en fonction d'un libellé préalablement attribué aux dites données.
Ceci permettra avantageusement que des données jugées sensibles par un utilisateur ne seront pas transmis vers le deuxième espace mémoire. Cette mémoire pourrait notamment se trouver par exemple sur un serveur de stockage temporaire en dehors de contrôle par l'utilisateur. Ainsi l'utilisateur évitera qu'un tiers ayant accès au serveur de stockage peut accéder aux données jugées sensibles par lui. Aussi, si le serveur de stockage temporaire tombera en panne pendant le procédé, cela sera sans conséquence néfaste pour de ces données.
L'invention concerne également un dispositif apte à être utilisé dans un procédé de stockage d'une première version d'un fichier dans un premier espace mémoire caractérisé en ce que le dispositif comprend en outre :
- des moyens pour réception d'une quantité de données depuis ledit premier espace mémoire, ladite quantité étant au moins égale à une différence entre la taille de ladite première version dudit fichier et la taille d'une partie non-occupée dudit premier espace mémoire, et
- des moyens pour retransmission de ladite quantité vers ledit premier espace mémoire. L'invention concerne également un dispositif de communication comprenant un premier espace mémoire comprenant une deuxième version d'un fichier caractérisé en ce que le dispositif comprend en outre :
- des moyens pour transmission d'une quantité de données depuis ledit premier espace mémoire vers un deuxième espace mémoire, ladite quantité étant au moins égale à une différence entre la taille de l'une première version dudit fichier et la taille d'une partie non- occupée dudit premier espace mémoire, - des moyens pour remplacement de ladite deuxième version dudit fichier par ladite première version, et
- des moyens pour réception de ladite quantité depuis ledit deuxième espace mémoire.
L'invention concerne également un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution d'au moins l'une des étapes d'un procédé comme décrit ci-dessus, lorsque ledit programme est exécuté sur un ordinateur.
L'invention concerne également un support de données incluant un programme comme décrit ci-dessus.
L'invention sera mieux comprise à l'aide de la description suivante, faite à titre d'exemple non-limitatif et en regard des dessins annexés, dans lesquels :
- la figure 1 est un schéma illustrant un inconvénient de l'art antérieur en détail, - la figure 2 est un schéma illustrant l'invention, et
- la figure 3 est chronogramme illustrant les étapes selon l'invention.
La figure 1 représente schématiquement un espace mémoire 1 1 , qui peut se trouver dans un terminal par exemple un téléphone portable. L'espace mémoire 11 comprend une partie occupée (j usqu'à la ligne référencée 1 15 : zone hachuré) et une partie non-occupée ou libre (référencée 19 : zone non-hachuré) . Dans la partie occupée sont stockées des applications logicielles et des données, collectivement désignées dans la suite avec le mot "fichiers" . Dans la partie occupé de l'espace mémoire 1 1 se trouve une version actuelle d'un fichier 13 qui occupe l'espace 1 1 jusqu'à la ligne référencée 15. Le fichier 13 peut par exemple être un "firmware" . Des autres fichiers occupent l'espace mémoire 1 1 entre la ligne 15 et la ligne 1 15 Chaque fichier comprend un identifiant ce qui permet de faire la distinction entre les fichiers et des données leur associées. La figure 1 montre également une mémoire 1 1 1 par exemple un disque dur d'un serveur de contenus où se trouve une nouvelle version 1 13 du fichier 13. Avant une transmission de la nouvelle version 1 13 vers l'espace mémoire 1 1 , un logiciel de gestion mémoire essaye de réserver l'espace nécessaire correspondante. Dans l'espace mémoire 1 1 , se trouve encore la partie non-occupée 19. Toutefois, pour recevoir la nouvelle version 1 13 du fichier 13 en entier dans l'espace mémoire 1 1 , une quantité de l'espace additionnelle montrée entre les lignes 1 15 et 17 sera nécessaire. Cette quantité est pourtant déjà occupée. Dès que le logiciel de gestion constate que la quantité nécessaire n'est plus disponible dans l'espace mémoire 1 1 , la transmission de la nouvelle version ne sera pas effectuée.
L'invention résout ce problème comme il sera décrit par rapport à la figure 2. Dans la figure 2 est en plus montrée une mémoire 21 par exemple un autre disque dur se trouvant sur par exemple un serveur de stockage temporaire. Dans le cas du problème évoqué en relation avec la figure 1 , selon l'invention, la quantité de l'espace mémoire 1 1 occupé i.e. la quantité de l'espace mémoire entre les lignes 1 15 et 17, est transmise vers la mémoire 21 et y stockée comme un fichier 23. De cette façon, l'espace entre la ligne 1 15 et la ligne 17 devient disponible pour la transmission de la nouvelle version 1 13 du fichier 13 depuis l'espace
mémoire 1 1 1 . Le logiciel de gestion libérera ensuite cette quantité dans l'espace mémoire 11 . Pendant remplacement, la version actuelle du fichier 13 dans l'espace mémoire 1 1 sera remplacée par la nouvelle version 1 13. Après remplacement de la version actuelle du fichier 13 par la nouvelle version 1 13, l'espace entre la ligne 17 et la ligne 1 15 pourra à nouveau être utilisé. Le fichier 23 sera après retransmis depuis le serveur 21 vers la mémoire 11 dans cet espace libre.
Le procédé selon l'invention sera expliqué en plus de détail à propos de la figure 3. Dans la figure 3 sont montrés un terminal 31 où se trouve la mémoire 1 1 , un serveur 33 de stockage temporaire où se trouve la mémoire 21 et un serveur 35 de contenus où se trouve la mémoire 1 1 1 . Le procédé commence par une requête 37 depuis un terminal 31 vers le premier serveur 35 d'envoi d'une nouvelle version d'un fichier. Cette requête contiendra une identifiant qui permet au serveur 35 de connaître le fichier concerné. Ensuite, pendant une étape 39 de transmission, la taille d'une espace mémoire libre nécessaire pour une réception de la nouvelle version dudit fichier pour que le premier terminal 31 puisse le recevoir sera transmis depuis le premier serveur 35 vers ledit terminal 31 Pour rappel, l'espace mémoire 1 1 du terminal 31 comprend une partie occupée et une partie non-occupée. Seulement la partie non-occupée sera disponible pour la réception de la nouvelle version du fichier. Ensuite, pendant une étape 311 de transmission, une quantité des données se trouvant dans la partie occupée (zone hachuré dans la figure 2) de l'espace mémoire 1 1 est transmise depuis la mémoire 1 1 vers un deuxième serveur 33. Cette quantité sera au moins égale à la différence entre la taille de la nouvelle version du fichier et la taille de la partie non-occupée (zone non-hachuré dans la figure 2) de l'espace mémoire 11 . Comme il sera compris par l'homme du métier cette quantité ne doit pas être choisie parmi l'espace mémoire occupé par la version actuelle du fichier 13 si le fichier 13 est nécessaire pour le fonctionnement du terminal 31 , par exemple dans le cas où le fichier 13 est un "firmware" et le procédé est utilisé pour mettre à jour ce "firmware". Toutefois, cette quantité peut être choisie parmi l'espace mémoire 1 1 occupé par des autres fichiers : l'espace mémoire entre la ligne 15 et la ligne 1 15 dans la figure 2. Un exemple pour illustrer le précédent - si la partie non-occupée de l'espace mémoire 1 1 comprend 80 ko mais la nouvelle version du fichier a une taille de 130 ko, au moins une quantité de l'espace mémoire occupé de 130 - 80 = 50 ko devra être transmise vers le deuxième serveur 33. Ainsi, une quantité de 50 ko sera libérée et devient disponible dans l'espace mémoire 1 1 du terminal 31 pour accommoder la nouvelle version du fichier 13 en entier. Pendant une étape 313 de transmission, la nouvelle version est transmise depuis ledit premier serveur 35 vers ladite partie ainsi libérée et a priori non-occupée, c'est-à-dire non- utilisée pour le moment. Maintenant deux versions du fichier 13 sont présentes dans l'espace mémoire 1 1 : la version actuelle et la nouvelle version 1 13. Ensuite, pendant une étape 315,
la version actuelle du fichier déjà présent dans le terminal est remplacée par la nouvelle version. Maintenant la nouvelle version 1 13 du fichier est deux fois présente dans la mémoire 1 1 et une version pourrait donc être sacrifiée pour recevoir, à nouveau, la quantité de l'espace mémoire temporairement transmise vers le serveur 33. Pendant une étape 317 de retransmission, ladite quantité, dans le présent exemple donc 50 ko, est retransmise depuis le deuxième serveur 33 dans une partie de la mémoire 1 1 occupée par une des nouvelles versions.
Dans le cas où la nouvelle version du fichier a une taille qui est différente de la taille de la version actuelle, comme il sera compris par l'homme du métier, une espace égale à la différence entre les deux tailles sera de plus disponible, le cas échéant, de plus occupé dans l'espace mémoire, après exécution du procédé.
Dans un mode de réalisation il y a une étape préalable de vérification que la mémoire du terminal peut effectivement recevoir la nouvelle version et la version actuelle du fichier au même temps, c'est-à-dire, la taille de la mémoire est assez grande pour recevoir les deux versions simultanément.
Dans un mode de réalisation, tous les fichiers présents dans la mémoire seront munis d'un identifiant numérique ou textuel ou alphanumérique, par exemple "secret" ou "personnel", lorsque leur enregistrement dans le mémoire. Avant l'étape 31 1 de transmission, un utilisateur peut décider qu'il souhaite que seulement des fichiers libellés "personnel" soient transmises vers la mémoire 21 du serveur de stockage temporaire. Et notamment pas les fichiers libellés "secret".