Extensibilité

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 22 juin 2014 à 15:20 et modifiée en dernier par 78.195.228.32 (discuter). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

En informatique matérielle et logicielle et en télécommunications, la scalability ou scalabilité (calque de traduction) désigne la capacité d'un produit à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande[1].

Selon René J. Chevance, le mot anglais scalability, formé sur l'adjectif scalable dérivé du verbe to scale (« changer d'échelle »), « n'a pas d'équivalent communément admis en français »[2]. Les traductions utilisées sont extension graduelle[3], évolutivité[4], facteur d'échelle[5], extensibilité[6], passage à l'échelle[7], ou capacité à monter en charge[8]. En radio-télévision, on parle d’échelonnabilité [9]. Le calque français scalabilité est également utilisé ou alors le mot anglais scalability est conservé tel quel[10].

La scalabilité peut faire référence à la capacité d’un système à accroître sa capacité de calcul sous une charge accrue quand des ressources (généralement du matériel) sont ajoutées. L’expression porte un sens similaire quand elle est utilisée dans un contexte commercial, quand l’extensibilité d’une entreprise implique que le modèle économique offre le potentiel d’une croissance économique pour l’entreprise.

Cet aspect doit être étudié de près dans tout service réseau, sujet en particulier à des afflux très brusques de trafic (ex: publicité télévisée, réaction à une actualité sensible, début d'un évènement sportif, effet Slashdot, etc.), lesquels peuvent provoquer une augmentation importante du temps de réponse entraînant le découragement des usagers, une baisse de rentabilité, et parfois jusqu'à l'impossibilité technique de servir tous les clients[11].

Introduction

La « scalabilité » est la capacité d'un dispositif informatique à s'adapter au rythme de la demande. La capacité du matériel étant fixe, en particulier le débit binaire des réseaux et des disques durs, il existe une limite dans le nombre de demandes qui peuvent être traitées dans un temps donné. Au-dessus de cette limite les demandes sont multiplexées et la concurrence entre les demandes traitées simultanément provoque des délais d'attente supplémentaires qui font effet de goulot d'étranglement (anglais bottleneck)[12].

L'évolutivité est une caractéristique cruciale de tous les services réseau, sans laquelle le service peut se retrouver victime de son succès. La popularité élevée d'un service peut apporter des difficultés techniques qui entraînent un coût élevé de maintenance. Sous l'effet de l'arrivée de nouveaux clients, le fournisseur peut se retrouver en difficulté économique voire dans l'impossibilité technique de servir à la fois les nouveaux et les anciens clients[11].

La scalabilité est une capacité recherchée des applications de base de données, des moniteurs de transactions et des systèmes d'exploitation. Le système d'exploitation étant l'intermédiaire obligé entre les applications et le matériel, la « scalabilité » de ce dernier est d'une importance critique - mais largement ignorée - pour la scalabilité de l'ensemble du système informatique[13].

Matériel

Le matériel informatique doit non seulement être suffisant pour faire face au débit actuel de la demande, mais, dans une perspective d'évolutivité, doit également être en mesure d'accepter des ajouts de pièces pour faire face à une demande accrue[14].

Les processeurs sont des composants onéreux d'un serveur informatique, et leur nombre sera souvent limité soit par leur architecture matérielle - nombre de processeurs - soit par la baisse de performances unitaires due à la répartition de charge sur plusieurs machines physiques plus ou moins éloignées. Il en va de même pour d'autres pièces de matériel informatique.

L'évolutivité horizontale consiste à ajouter des ordinateurs pour faire face à une demande accrue d'un service. La méthode la plus courante est la répartition de charge (load balancing) par utilisation d'une grappe de serveurs (cluster). C'est une technique couramment utilisée pour les serveurs web[15].

L'évolutivité verticale consiste à utiliser un ordinateur qui offre de nombreuses possibilités d'ajout de pièces, sur lequel il est possible de mettre une grande quantité de mémoire, de nombreux processeurs, plusieurs cartes mères et de nombreux disques durs. Par exemple un ordinateur Sun Enterprise peut contenir jusqu'à 64 processeurs, 16 cartes mères, 64 Go de mémoire et des baies de stockage (disk array). L'ensemble tout équipé peut coûter jusqu'à 1 million de dollars[14].

L'évolutivité architecturale consiste à prévoir d'emblée une application pour qu'elle puisse être répartie sur plusieurs machines sans réécriture. Le fonctionnement en mode client-serveur ajoute une excellente flexibilité dans ce domaine : serveurs web, serveurs applicatifs, serveurs de bases de données dupliqués là où les journaux système indiquent un sous-dimensionnement à mesure que la fréquentation augmente au cours du temps, et uniquement là.

Logiciels

Quelles que soient la taille et la complexité d'un logiciel, ses fonctionnalités, ses performances, son extensibilité et son coût doivent correspondre aux attentes de l'utilisateur final. Dans le domaine des bases de données, les applications de traitement transactionnel en ligne (en anglais on-line transactional processing ou OLTP) sont particulièrement concernées[15].

Les mesures d'extensibilité font ressortir la variation de la performance du logiciel en fonction de l'augmentation de la demande. Le consommateur s'attend généralement à ce que la performance (le temps de réponse) ne varie pas tant que la charge (le nombre d'opérations par seconde) n'atteint pas la valeur nominale que le produit est censé supporter.

Les mesures d'extensibilité s'intéressent au seuil à partir duquel la performance commence à se dégrader ainsi que la vitesse de la dégradation par rapport à l'augmentation de la demande[16].

Il y a défaut d'extensibilité de type 1 lorsque la performance se détériore rapidement avec l'augmentation de la demande avant d'avoir atteint le niveau nominal et que le défaut peut être corrigé par des opérations de tuning et d'optimisation.

Il y a défaut d'extensibilité de niveau 2 lorsque la performance se détériore jusqu'à devenir inacceptable, et qu'aucune amélioration ne peut être apportée, pas même le remplacement du matériel informatique. Le seul moyen de corriger un tel défaut est alors de coûteuses remises en question de l'architecture du produit. Un produit présentant ce type de défaut est considéré comme non extensible[17].

De nombreuses applications client-serveur sont construites en mode de communication synchrone : la partie client envoie une demande à la partie serveur, puis attend jusqu'à ce qu'elle reçoive le résultat. Ce mode est plus simple à mettre en œuvre, mais provoque des temps de latence qui sont perçus par l'utilisateur comme un manque de scalabilité. Le mode asynchrone permet d'effectuer des opérations durant les temps de latence et de multiplexer le traitement des demandes ; ce mode est utilisé dans les applications multithread, les services Web et la programmation événementielle[12].

Une technique en vue d'augmenter la résistance à une forte demande d'un logiciel consiste à pré-réserver un groupe de ressources qui sont continuellement disponibles pour multiplexer les demandes en cas de besoin et ainsi économiser le temps qui aurait été nécessaire pour des réservations au besoin. Cette technique de pooling est utilisée notamment pour la connexion aux bases de données[12].

L'utilisation de files d'attente, l'architecture orientée services (SOA), l'utilisation de services Web et de systèmes de gestion de base de données (DBMS) influencent l'extensibilité d'un logiciel[15].

Télécommunications

L'industrie des télécommunications est particulièrement concernée par l'évolutivité et la fiabilité des réseaux qui sont amenés à servir un très grand nombre de clients. Une dorsale (anglais backbone) doit pouvoir supporter le trafic provenant de plusieurs services et fournir de très nombreux clients sans qu'il soit nécessaire d'ajouter des équipements[18].

Les lignes de télécommunication desservent généralement à la fois la téléphonie, le réseau Internet et les réseaux informatiques privés. Les fournisseurs de télécommunication cherchent à diminuer les coûts de maintenance du réseau tout en fournissant tous les services demandés par les consommateurs[18]. L'évolutivité d'un réseau concerne autant la résistance au changement d'ordre de grandeur du débit binaire du réseau que du nombre d'abonnés[19].

Dans les réseaux publics, avec de très nombreux abonnés (téléphonie, Internet), il est attendu que le remplacement du terminal soit une mesure suffisante pour adapter le réseau à la demande. Vu que tous les clients ne remplacent pas leur terminal en même temps, le réseau doit pouvoir exploiter simultanément différentes générations de terminaux[19].

Voir aussi

Articles connexes

Notes et références


  1. « scalability », Grand Dictionnaire terminologique, Office québécois de la langue française
  2. René J. Chevance, Serveurs multiprocesseurs et SGBD parallélisés, Éd. Techniques Ingénieur, page 4.
  3. Édouard Rivier, Communication audiovisuelle, Springer, 2003, (ISBN 9782287597688), page 180.
  4. Luigi Zaffalon, Programmation concurrente et temps réel avec Java, PPUR presses polytechniques, 2007, (ISBN 9782880746988), page 47.
  5. Dr. Omar Elloumi, Dr. Mohsen Souissi, Intégration IP et ATM, Éd. Techniques Ingénieur, 2003, page 5.
  6. Jean-Noël Gouyet, Serveurs vidéo et média, Éd. Techniques Ingénieur, 2008, page 18.
  7. Patrick Rompen, Introduction au passage à l'échelle d'un site internet: Introductions aux concepts de répartition de charge, mise en cache, virtualisation et base de données distribuées (French Edition), 2011.
  8. NoSQL
  9. Termium, Bureau de la traduction du gouvernement du Canada : « Le principe d'échelonnabilité permet à partir d'un seul encodage la diffusion à des débits différents »
  10. Djillali Seba, CISCO : interconnexion des réseaux à l'aide des routeurs et commutateurs, Éditions ENI, 2003, (ISBN 9782746021440), page 274.
  11. a et b (en) Ina Minei et Julian Lucek, MPLS-Enabled Applications: Emerging Developments and New Technologies, John Wiley and Sons, 2011, (ISBN 9780470665459)
  12. a b et c (en) Shoshana Loeb - Benjamin Falchuk - Euthimios Panagos - Thimios Panagos,The fabric of mobile services: software paradigms and business demands, Wiley-Interscience - 2009, (ISBN 9780470277997)
  13. (en) Seif Haridi - 1995 EURO-PAR 1 - Stockholm, Parallel processing - Volume 966 de Lecture notes in computer science, Springer - 1995, (ISBN 9783540602477)
  14. a et b (en) Jeff Horwitz, Unix system management: primer plus, Sams Publishing - 2002, (ISBN 9780672323720)
  15. a b et c (en) Cal Henderson, Building scalable web sites, O'Reilly Media Inc., 2006, (ISBN 9780596102357)
  16. (en) Jack Y. B. Lee,Scalable Continuous Media Streaming Systems: Architecture, Design, Analysis and Implementation, John Wiley and Sons, 2005, (ISBN 9780470857540)
  17. (en) Henry H. Liu,Software Performance and Scalability: A Quantitative Approach, John Wiley and Sons, 2009, (ISBN 9780470462539)
  18. a et b (en) Monique Morrow et Kateel Vijayananda, Developing IP-based services: solutions for service providers and vendors, Morgan Kaufmann - 2003, (ISBN 9781558607798)
  19. a et b (en) Biswanath Mukherjee, Optical WDM networks, Birkhäuser - 2006, (ISBN 9780387290553)