Styles d'architecture logicielle
Les styles d'architecture logicielle sont des schémas d'organisation nommés et réutilisables qui définissent les types de composants et de connecteurs qu'un système utilise, ainsi que les contraintes régissant leur combinaison.
Definition
Un style architectural est une famille d'architectures caractérisée par un vocabulaire de types de composants et de connecteurs, et un ensemble de contraintes sur la manière dont les instances de ces types peuvent être configurées.
Scope
Ce sujet couvre les styles classiques tels que l'architecture en couches, client-serveur, tuyaux et filtres, référentiel (centrée sur les données), événementielle et publication-abonnement, micro-noyau, ainsi que les architectures orientées services et microservices ; le style architectural REST pour les systèmes en réseau ; et les compromis d'attributs de qualité qui motivent le choix d'un style plutôt qu'un autre.
Core questions
- Quel vocabulaire de composants et de connecteurs définit chaque style ?
- Quels attributs de qualité un style donné favorise-t-il ou inhibe-t-il ?
- Comment les styles sont-ils combinés au sein d'un même système ?
- En quoi les styles en réseau et distribués, tels que REST et les microservices, diffèrent-ils des styles classiques ?
Key theories
- Les styles comme vocabulaires de composants-connecteurs
- Shaw et Garlan ont caractérisé les architectures par des modèles récurrents de composants et de connecteurs avec des contraintes associées, dotant ainsi le domaine d'un vocabulaire de styles tels que tuyaux et filtres, en couches et référentiel.
- Style architectural REST
- Fielding a dérivé REST comme un ensemble de contraintes — absence d'état, interface uniforme, capacité de mise en cache, système en couches — qui expliquent l'évolutivité et la capacité d'adaptation du web et guident la conception de services basés sur le réseau.
Clinical relevance
Le choix précoce d'un style approprié aligne la structure du système avec ses exigences de qualité dominantes ; un mauvais ajustement entre le style et les besoins est difficile et coûteux à corriger une fois le développement en cours.
Evidence & guidelines
La norme ISO/IEC/IEEE 42010 encadre la description de l'architecture en termes de points de vue et de vues, au sein desquels les styles sont documentés et analysés.
History
La catalogation des styles architecturaux a débuté avec Shaw et Garlan au milieu des années 1990, lorsque l'architecture logicielle est devenue une discipline reconnue ; la thèse de Fielding en 2000 a formalisé REST, et les années 2010 ont vu l'essor des styles microservices et événementiels pour les systèmes à l'échelle du cloud.
Key figures
- Mary Shaw
- David Garlan
- Roy Fielding
- Len Bass
Related topics
Seminal works
- shaw1996
- fielding2000
- bass2012
Frequently asked questions
- Quelle est la différence entre un style architectural et un patron de conception ?
- Un style architectural décrit l'organisation à l'échelle du système — les types de composants et de connecteurs et les règles pour les combiner — tandis qu'un patron de conception résout un problème de conception plus localisé au sein des composants ; les styles opèrent à un niveau de granularité plus élevé.
- Un système peut-il utiliser plus d'un style ?
- Oui. Les systèmes réels sont généralement hétérogènes, combinant des styles — par exemple une architecture en couches dont la couche de présentation est événementielle et dont les services communiquent via REST — chaque style étant appliqué là où ses compromis sont les plus appropriés.