Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM
ALM Forum sur le cycle de vie du logiciel : Gestion de projet, ingénierie logicielle, conception, architecture, modélisation, méthodes, tests, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 22/02/2011, 13h24   #1
Idelways
Expert Confirmé Sénior
 
Avatar de Idelways
 
Homme Ihssen Idelways
Développeur Ruby on Rails / iOS
Inscription : juin 2010
Messages : 1 390
Détails du profil
Informations personnelles :
Nom : Homme Ihssen Idelways

Informations professionnelles :
Activité : Développeur Ruby on Rails / iOS

Informations forums :
Inscription : juin 2010
Messages : 1 390
Points : 69 174
Points : 69 174
Par défaut Google présente « Courgette », son algorithme de compression différentielle

Google présente « Courgette », son algorithme de compression différentielle
Utilisé pour réduire la taille des mises à jour du navigateur Chrome



Pour une application qui évolue aussi vite que Google Chrome, le téléchargement des nombreuses mises à jour pourrait devenir un véritable casse-tête si les utilisateurs devaient rapatrier chaque fois l'installable du navigateur (environ 10 MO)

Nombre d'entre eux renâcleraient certainement à l'idée de saturer leur connexion de mises à jour volumineuses et répétées et risqueraient de les désactiver.

La solution qu'utilise Google est de n'envoyer à l'utilisateur que les différences avec la version installée et laisser le navigateur générer la nouvelle version.

Si cette manœuvre peut sembler triviale avec du code source, elle s'avère beaucoup moins évidente quand il s'agit d'applications compilées où une petite intervention sur le code source peut induire des changements considérables d'octets.

Les (très nombreux) pointeurs internes du programme pourraient changer de valeurs et compliqueraient la différentiation.

Éternels insatisfaits et obstinés de l'optimisation, les ingénieurs de Google ont donc développé leur propre algorithme de compression différentielle appelé « Courgette ». L'utilitaire bsdiff étant jugé bon, mais insuffisant.

Courgette utilise un désassembleur primitif pour retrouver les pointeurs internes et divise le programme en trois parties : une liste des adresses des pointeurs internes, tous les autres octets et enfin une séquence d'instruction qui détermine comment ces octets pourraient être entrelacés et ajustés pour retrouver l'exécutable original.

La différentiation des octets dépourvus de pointeurs (environ 80% de l'application) devient alors plus simple et bsdiff réduit ainsi de 30% la taille du fichier de différentiation.

Courgette gère ensuite la partie pointeurs en introduisant des « labels » aux adresses. Ces adresses seront stockées dans des tableaux de symboles et les pointeurs seront remplacés par une liste d’index de tableaux. Cela permet de changer les adresses dans le tableau et porter les modifications correspondances dans la liste des index.

Courgette désassemble selon le procédé sus-décrit l'exécutable original et celui de la mise à jour . Il lance ensuite cette procédure d'ajustement qui minimise grandement la taille du fichier de différentiation.

Résultat, un format alternatif de différentiation qui est à la fois plus qu'un seul exécutable et moins qu'un exécutable.

On ne sait pas si Google envisage de publier courgette sous licence open source.

Mais on sait que beaucoup de développeurs espèrent déjà que Apple et Adobe mettent en place des solutions similaires.


Source : Présentation de Courgette sur le projet Chromium

Et vous ?

Qu'en pensez-vous ?
Aimeriez-vous un système similaire pour d'autres applications et d'autres outils ?
Idelways est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 22/02/2011, 14h02   #2
Benav
Membre actif
 
Avatar de Benav
 
Homme
Ingénieur développement logiciels
Inscription : janvier 2004
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 48
Points : 150
Points : 150
La seule vraie question, c'est de savoir comment un groupe d'êtres humains suffisamment étendu pour qu'on puisse statistiquement considérer comme acquis qu'il comporte au moins un membre sain de corps et d'esprit peut décider d'appeler une de ses créations "Courgette".
Benav est déconnecté   Envoyer un message privé Réponse avec citation 72
Vieux 22/02/2011, 14h15   #3
vintz72
Membre confirmé
 
Avatar de vintz72
 
Vincent
Inscription : octobre 2005
Messages : 154
Détails du profil
Informations personnelles :
Nom : Vincent
Âge : 41
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 154
Points : 235
Points : 235
Y'en a bien qu'ils font des block-busters avec "Ratatouille" !
vintz72 est déconnecté   Envoyer un message privé Réponse avec citation 24
Vieux 22/02/2011, 14h28   #4
jpvincent
Membre chevronné
 
Inscription : février 2010
Messages : 120
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 120
Points : 678
Points : 678
c'est vraiment des génis ces types

ils ont un système équivalent en javascript, pour google maps, qui fait que l'utilisateur ne télécharge que les lignes de JS (compilé) de la nouvelle version (par rapport au cache) et s'auto patche

je n'imagine pas le cauchemard que ça doit être à inventer des trucs comme ça
jpvincent est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 22/02/2011, 17h38   #5
pseudocode
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 815
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 40
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 815
Points : 16 461
Points : 16 461
J'admire l'effort de Google pour trouver de meilleures techniques de compression des updates pour gagner 600Ko.

En meme temps, ca m'amuse de comparer ce gain avec la taille des données transférées lorsqu'on va sur la page d'accueil de Youtube ou Maps par exemple.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 23/02/2011, 09h42   #6
cd090580
Membre régulier
 
Inscription : décembre 2002
Messages : 176
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 176
Points : 88
Points : 88
Ils engagent des cuisiniers chez Google ????

J'adore tous leurs termes de "cuisine"
cd090580 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 09h49   #7
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 422
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 422
Points : 39 747
Points : 39 747
C'est très intéressant comme principe ... cela me rappelle les patcher de certains cracks... sauf que l'a, ils nous disent que cela fonctionne de manière générique.
Est ce c'est compatible pour tout les systèmes d'exploitation, ou juste un vu que le format de l’exécutable dépend aussi du système d'exploitation.

Toujours est il qu'il faudra télécharger la prochaine mis à jour intégralement pour avoir le patcher dedans
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 12h01   #8
abriotde
Membre habitué
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 146
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2007
Messages : 146
Points : 146
Points : 146
S'il y a une société innovante au monde c'est bien Google. C'est de la haute voltige ce qu'ils font et le résultat est là.
abriotde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 12h42   #9
zeavan
Membre chevronné
 
Avatar de zeavan
 
Chemouny Frederic
Inscription : avril 2003
Messages : 571
Détails du profil
Informations personnelles :
Nom : Chemouny Frederic
Âge : 36

Informations forums :
Inscription : avril 2003
Messages : 571
Points : 629
Points : 629
Haute voltige qui existe depuis un peu moins d'une decenie avec install shield et click once de microsoft.
zeavan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 12h43   #10
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 572
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 572
Points : 11 865
Points : 11 865



J'avoue mon incrédulité devant vos nombreux messages....

Comme si c'était extraordinaire.....


Mais DEC pour ne citer qu'eux, mais aussi HP et autres, pratiquent le patchage binaire depuis plus de 25 ans.... Les VMS updates de 1984 étaient déjà du binaire, qui allaient s'insérer directement au bon endroit dans le binaire du kernel....




Ou comment faire du marketing avec le fil à couper le beurre...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 23/02/2011, 14h16   #11
pseudocode
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 815
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 40
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 815
Points : 16 461
Points : 16 461
Citation:
Envoyé par souviron34 Voir le message
Mais DEC pour ne citer qu'eux, mais aussi HP et autres, pratiquent le patchage binaire depuis plus de 25 ans.... Les VMS updates de 1984 étaient déjà du binaire, qui allaient s'insérer directement au bon endroit dans le binaire du kernel....
Google utilise déjà les techniques usuelles de patchage binaire, à l'aide de bsdiff/bspatch. Là, il s'agit de procéder à une optimisation du "binaire" à patcher.

Traditionnellement, lorsqu'on ajoute une ligne dans un source, le binaire résultant se voit ajouté une suite d'instructions. So far, so good.

Le problème c'est que cette suite d'instruction "décale" la position du reste des instructions. Et donc ca décale d'autant les adresses des pointeurs. Conclusion, le reste du binaire se trouve modifié sporadiquement à chaque fois qu'il y a une adresse de pointeur.

L'idée de Google c'est donc de désassembler le binaire afin d'avoir des labels au lieu d'avoir des adresses mémoires, de procéder au diff/patch sur ce code désassemblé (donc uniquement sur la suite d'instructions qui a changé), puis de réassembler le code ce qui remplace les labels par les nouvelles adresses mémoires.

J'ai un peu simplifié la problématique, mais c'est pour clarifier les choses.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 24/02/2011, 11h04   #12
TheDrev
Membre confirmé
 
Avatar de TheDrev
 
Inscription : novembre 2006
Messages : 305
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2006
Messages : 305
Points : 212
Points : 212
décidément ces appellations commerciales sont de plus en plus idiotes
__________________
all your base are belong to us.
TheDrev est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 24/02/2011, 15h21   #13
Nebulix
Membre chevronné
 
Inscription : avril 2004
Messages : 592
Détails du profil
Informations personnelles :
Localisation : France, Essonne (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 592
Points : 759
Points : 759
L'étape suivante sera de lyophiliser les courgettes ...
__________________
Ce qui s'énonce clairement se conçoit bien ( Le hautbois)
Nebulix est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 24/02/2011, 19h20   #14
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 572
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 572
Points : 11 865
Points : 11 865
ben non...

Soit les virtualiser, soit les "nuagifier" (cloud)

Vous me referez bien une t'ite courgette dans un nuage !!

(ça fait penser à Astérix chez les Bretons )
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 24/02/2011, 20h33   #15
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 697
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 697
Points : 4 526
Points : 4 526
Salut,

Citation:
Envoyé par souviron34 Voir le message
Mais DEC pour ne citer qu'eux, mais aussi HP et autres, pratiquent le patchage binaire depuis plus de 25 ans.... Les VMS updates de 1984 étaient déjà du binaire, qui allaient s'insérer directement au bon endroit dans le binaire du kernel....
Patcher les binaires posait le même problème que le truc de Google résoud: il faut inscruster au bon endroit un JUMP vers le code patché et revenir au code "normal" ensuite pour ne pas foutre le b... sur le code qu'on ne voulait pas toucher. En gros, on faisait une sorte de dérivation.

L'intérêt de cette techno avant "internet" était non seulement de réduire la quantité d'information à transférer, et de pouvoir le faire sous forme texte.

Cette technique a été abandonnée avec l'arrivée des cpu Risc et la possibilité de transférer des binaires assez vite:
- trop d'instructions à écrire pour se passer d'un compilo,
- la dérivation jette à la poubelle les optimisations effectuées, ce qui est dommage,

Il n'est pas complètement farfelu de remettre ce genre de techno au goût du jour: imaginez un gadget qui ne puisse se mettre à jour que via des connexions WEB.
Espérez en vendre beaucoup et d'avoir le même succès que Windows auprès des crackers. Il va falloir réaliser une infrastructure et disposer de la bande passante nécessaire pour diffuser des patchs de sécurité raisonnablement vite.
Si on peut diviser la taille du problème par 10 ou 100, on n'a peut être pas encore la solution mais... un peu moins mal à la tête.

- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/02/2011, 09h27   #16
Trois Sangs Onze
Nouveau Membre du Club
 
Inscription : août 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 14
Points : 28
Points : 28
On peut dire que Google cherche vraiment à bien faire les choses: c'est assez rassurant quelque part
Merci wiztricks d'avoir résumé le détail du concept!
Trois Sangs Onze est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h30.


 
 
 
 
Partenaires

Hébergement Web