Oups ! je voulais dire en fait un système comme celui-là (c'est juste une idée comme ça, formuler juste avant l'apéro ... alors ça vaut ce que ça vaut ):
Sur le serveur central est stocké une liste de site miroir qui doivent normalement disposé de la dernière version, aisni qu'un hash md5 des fichiers à télécharger.
Le client pour faire son update se connecte au serveur central, récupére une adresse d'un site miroir et la liste des hash md5 correspondant.
Le client se connecte au miroir et récupére les fichiers, vérifie que le hash MD5 des fichiers récupérés est valide et réalise l'update.
Le procédé pour la sélection du miroir correspondant, peut s'effectuer par round robin (c'est à dire chaque miroir à son tour), ou par bande passante (si un miroir à 2x plus de bp qu'un autre, il vaut mieux qu'il satisfasse 2x plus de requêtes), ou encore par répartition géographique ... ou les 3 à la fois ...
Bon ce qu'il y a d'intéressant à gérer ce sont aussi tout les cas d'erreur :
- les md5 ne correspondent
- le serveur miroir ne répond pas
- le serveur miroir ne contient pas la bonne version
Et bien sur dans ce cas, il ne faut pas que le serveur central renvoie encore sur le même serveur miroir (peut-etre le client devrait envoyé une liste de serveur pour lesquels l'update à échoué)
Enfin voila, juste 2, 3 petites idées en l'air, j'espére que c'est un peu plus clair ...