Modèles de systèmes et d'architectures
Les modèles d'architecture décrivent la manière dont les composants d'un système distribué sont organisés et comment la responsabilité du calcul et des données est répartie entre eux.
Definition
Un modèle architectural d'un système distribué spécifie les types de composants (processus), les rôles qu'ils jouent et les modèles de communication et de dépendance entre eux, en faisant abstraction des machines physiques sur lesquelles ils s'exécutent.
Scope
Ce sujet aborde les principaux styles architecturaux des systèmes distribués : client-serveur, multiniveau (n-tiers), pair-à-pair et les organisations hybrides, ainsi que les modèles structurels tels que les architectures en couches, basées sur les objets, centrées sur les ressources (REST) et basées sur les événements. Il couvre également le placement des processus et les compromis liés au partitionnement, à la réplication et à la mise en cache des composants sur différentes machines.
Core questions
- Comment la responsabilité du calcul et des données devrait-elle être répartie entre les composants ?
- Quand une organisation pair-à-pair est-elle préférable à une organisation client-serveur ?
- Quel style architectural prend le mieux en charge l'évolutivité et la capacité d'évolution pour une charge de travail donnée ?
Key theories
- Organisation client-serveur et multiniveau
- Les composants sont divisés en clients demandeurs et serveurs répondeurs, et la logique applicative est structurée en couches de présentation, de traitement et de données qui peuvent être distribuées indépendamment pour équilibrer la charge et l'échelle.
- Organisation pair-à-pair et décentralisée
- Tous les nœuds sont fonctionnellement équivalents et agissent à la fois comme clients et serveurs, permettant des superpositions auto-organisées sans point de contrôle ou de défaillance central, au prix de mécanismes de recherche et de cohérence plus complexes.
- Architecture orientée ressources (REST)
- Representational State Transfer (Transfert d'État Représentationnel) structure un système autour de ressources adressables manipulées via une interface uniforme et sans état, un style architectural dérivé pour expliquer et guider l'évolutivité du web.
Clinical relevance
Le style architectural représente la décision précoce la plus influente dans la conception d'un système : il régit l'évolutivité, l'isolation des pannes et la capacité des équipes à faire évoluer les composants de manière indépendante, et il sous-tend le choix entre les déploiements monolithiques, de microservices et pair-à-pair.
History
Les architectures distribuées ont évolué des mainframes centralisés vers l'informatique client-serveur dans les années 1980, puis vers les systèmes d'entreprise multiniveaux et les superpositions pair-à-pair à grande échelle dans les années 1990 et 2000, et enfin vers les architectures web orientées ressources dont les principes ont été articulés par la thèse de Fielding sur REST en 2000.
Key figures
- Roy Fielding
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- tanenbaum2017
- fielding2000
Frequently asked questions
- Quelle est la différence entre un modèle architectural et un déploiement physique ?
- Le modèle architectural décrit les composants logiques et leurs schémas d'interaction, tandis qu'un déploiement physique mappe ces composants sur des machines et des réseaux réels. Un même modèle architectural peut être déployé dans de nombreuses configurations physiques.