Conception pour la scalabilité

La scalabilité est la capacité d’une application à traiter une charge supplémentaire avec une augmentation linéaire de l’utilisation des ressources. La scalabilité est importante dans n’importe quelle application distribuée. Les limites de la scalabilité sont généralement centrées sur l’utilisation des ressources et les dépendances créées par inadvertance dans la conception de l’application.

La liste suivante décrit les problèmes de scalabilité et suggère des solutions :

  • Ressources intra-ordinateur. Le nombre de threads et de mémoire disponibles peut limiter la scalabilité. Utilisez un modèle de thread qui est le plus efficace pour votre application.

  • Ressources inter-ordinateurs. Le nombre d’ordinateurs disponibles pour distribuer la charge de travail de l’application peut affecter la scalabilité.

  • Affinité cliente. Deux situations d’affinité peuvent être créées par inadvertance par une application : une situation où l’application dépend de l’état des données que le client envoie avec sa demande ; et une situation où l’application nécessite un état spécifique au client. Évitez de concevoir une dépendance d’état entre le client et l’application.

  • Affinité serveur. Une application COM+ peut limiter sa scalabilité en créant une affinité de serveur, où l’application dépend de l’accès à un ordinateur serveur particulier pour plus d’informations. Cette affinité peut se produire avec de nombreuses applications orientées base de données. La meilleure façon d’éviter un goulot d’étranglement de l’affinité serveur consiste à partitionner des données sur différents ordinateurs serveurs. Par exemple, divisez les données client entre les serveurs par la clé la plus fréquemment consultée, ou étendez une base de données client sur plusieurs serveurs à l’aide du nom du client (par exemple, Server1 : a-f, Server2 : g-m, Server3 : n-z).

    Notes

    Le partitionnement des données peut ajouter beaucoup de complexité à la logique de programmation et ne doit être effectué qu’après que d’autres options d’augmentation de la scalabilité ont été essayées.

     

  • Durée de vie de l’objet. Pour être évolutive, une application COM+ doit accorder une attention particulière à la durée de vie des objets. Lorsqu’un objet existe, il consomme des ressources. Il est important de s’assurer que les durées de vie des objets qui contiennent des ressources coûteuses sont gérées avec soin. Pour les objets à forte demande qui ne consomment pas de ressources coûteuses, le regroupement d’objets COM+ peut augmenter la scalabilité, car vous pouvez ajuster administrativement les valeurs de regroupement pour tirer parti du matériel dont vous disposez. Et c’est un moyen naturel de gouverner les connexions : par exemple, si vous disposez d’une licence pour 20 connexions SQL, vous pouvez le dicter avec le paramètre Pool maximal.

  • Regroupement de composants d’application. Pour améliorer la scalabilité d’une application COM+, les composants de niveau intermédiaire doivent être divisés en services dépendant du temps et indépendants du temps. Cela vous permet de vous concentrer sur l’utilisation éventuelle d’un service Microsoft Windows pour implémenter une action de composant requise. Par exemple, vous pouvez choisir d’utiliser un service tel que Message Queuing ou des composants en file d’attente COM+ pour gérer des tâches asynchrones indépendantes du temps.

Conception pour la disponibilité

Conception pour le déploiement

Conception pour la sécurité