Aller au contenu

« Extensibilité » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Silex6 (discuter | contributions)
Aucun résumé des modifications
Silex6 (discuter | contributions)
nouvelle section
Ligne 8 : Ligne 8 :




== Technique ==
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'')<ref name="mobile">{{en}}Shoshana Loeb - Benjamin Falchuk - Euthimios Panagos - Thimios Panagos,''The fabric of mobile services: software paradigms and business demands'',Wiley-Interscience - 2009,{{ISBN|9780470277997}}</ref>.

La scalabilité est une capacité recherchée pour tout les systèmes qui travaillent à la demande, tels les applications de [[base de données]], les moniteurs de [[transaction informatique|transactions]] et les [[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<ref>{{en}}Seif Haridi - 1995 EURO-PAR 1 - Stockholm,''Parallel processing - Volume 966 de Lecture notes in computer science'',Springer - 1995,{{ISBN|9783540602477}}</ref>.

De nombreuses applications [[client-serveur]] sont construites en mode de communication ''synchrone'': la partie client envoie une demande à la partie serveur, puis attends jusqu'à recevoir le résultat. Ce mode est plus simple à mettre en oeuvre, 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]]<ref name="mobile" />.

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]]<ref name="mobile" />.
== Matériel ==
== Matériel ==
un dispositif informatique est extensible s'il est possible de faire face à une augmentation de la demande par des modifications après coup du matériel informatique.
un dispositif informatique est extensible s'il est possible de faire face à une augmentation de la demande par des modifications après coup du matériel informatique.

Version du 14 août 2011 à 12:06

erreur du modèle {{langue}} : texte absent («  ») En informatique et en télécommunications, le mot anglais scalability désigne la capacité d'un produit à s'adapter à une augmentation de l'échelle de la demande (montée en charge). En particulier sa capacité à maintenir ses fonctionalités et ses performances en cas de forte demande[1].

le mot anglais scalability, dérivé du verbe to scale, 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] ou extensibilité[6]. Le calque français scalabilité est également utilisé ou alors le mot anglais scalability est conservé tel quel[7].

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 (typiquement 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.


Technique

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)[8].

La scalabilité est une capacité recherchée pour tout les systèmes qui travaillent à la demande, tels les applications de base de données, les moniteurs de transactions et les 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[9].

De nombreuses applications client-serveur sont construites en mode de communication synchrone: la partie client envoie une demande à la partie serveur, puis attends jusqu'à recevoir le résultat. Ce mode est plus simple à mettre en oeuvre, 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[8].

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[8].

Matériel

un dispositif informatique est extensible s'il est possible de faire face à une augmentation de la demande par des modifications après coup du matériel informatique.

Le processeur est une des pièces les plus chères d'un serveur informatique, et un ordinateur peut souvent en contenir qu'un nombre limité - typiquement moins de quatre processeurs. Il en va de même pour d'autres pièces de matériel informatique.

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

L'extensibilité verticale consiste à utiliser un ordinateur qui offre de nombreuses possibilité d'ajout de pièces, sur lequel il est possible de mettre une grande quantité de mémoire, de nombreux processeurs, plusieurs cartes mère, et de nombreux disque 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[11].

Logiciels

Quelle que soit la taille et la complexité d'un logiciel, ses fonctionalités, ses performances son l'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 (abr. OLTP) sont particulièrement concernées[12].

Les mesures d'extensibilité font ressortir la variation de la performance du logiciel en fonction de l'augmentation de la demande. Il est généralement attendu par le consommateur que la performance (temps de réponses) ne varie pas tant que la charge (nombre d'opérations par secondes) n'atteint pas la valeur nominale que le produit est sensé 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[13].

Il y a un défaut d'extensibilité de type 1 lorsque la performance se détériore rapidement avec l'augmentation de la demande avant 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 sont 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[14].

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[10].

Voir aussi

Articles connexes

Notes et références


  1. « scalability », Grand Dictionnaire terminologique, Office québécois de la langue française
  2. Serveurs Multiprocesseurs Et Sgbd Parallelises,Ed. 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. Integration IP et ATM, Ed. Techniques Ingénieur, page 5
  6. Serveurs Video et Media,Ed. Techniques Ingénieur, page 18
  7. Djillali Seba,CISCO: interconnexion des réseaux à l'aide des routeurs et commutateurs,Editions ENI - 2003, (ISBN 9782746021440),page 274
  8. 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)
  9. (en)Seif Haridi - 1995 EURO-PAR 1 - Stockholm,Parallel processing - Volume 966 de Lecture notes in computer science,Springer - 1995, (ISBN 9783540602477)
  10. a et b (en)Cal Henderson,Building scalable web sites,O'Reilly Media Inc. - 2006, (ISBN 9780596102357)
  11. (en)Jeff Horwitz,Unix system management: primer plus,Sams Publishing - 2002, (ISBN 9780672323720)
  12. (en)Cal Henderson,Building scalable web sites,O'Reilly Media Inc. - 2006, (ISBN 9780596102357)
  13. (en)Jack Y. B. Lee,Scalable continuous media streaming systems: architecture, design, analysis and implementation,John Wiley and Sons - 2005, (ISBN 9780470857540)
  14. (en)Henry H. Liu,Software performance and scalability: a quantitative approach,John Wiley and Sons - 2009, (ISBN 9780470462539)