Vous êtes sur la page 1sur 33

Les styles architecturaux

Chapitre 2

Dr. Rim Negra 1


Choix d’une architecture
• Dépend des exigences fonctionnelles et non fonctionnelles du logiciel
• Choix favorisant la stabilité : l’ajout de nouveaux éléments sera facile et ne
nécessitera en général que des ajustements mineurs à l’architecture

• Influencé par certains « modèles connus » de décomposition en composants


(styles architecturaux) et de mode d’interactions (e.g., orienté objet)

Dr. Rim Negra 2


Introduction
• Un style architectural est un modèle définissant comment sera le
système.
• Un style architectural définit quels sont les composants, les
connecteurs et les contraintes définissant l’architecture d’un système.

Dr. Rim Negra 3


Définitions
• Patrons de structures génériques fréquemment rencontrées dans la
pratique
• Ces patrons ont des propriétés biens définies qui permettent la
réutilisation
• Architecture = composantes + connecteurs
• Spécification d’une décomposition en composantes qui sont en
interrelation
• Permet d’atteindre des objectifs de conception
• Une compréhension de ces styles peut simplifier le choix et la conception
d’une architecture logicielle
• La plupart des systèmes de grande échelle sont hétérogènes
• Ils ne correspondent pas à un style architectural unique
Dr. Rim Negra 4
Définitions
• Il définit:
• Un ensemble de composants et de connecteurs (et leur type)
• Les règles de configuration des composants et connecteurs
• (topologie)
• Une spécification du comportement du patron
• Des exemples de systèmes construits selon ce patron
• Constitue un modèle éprouvé et enrichi par l’expérience de plusieurs
développeurs
• Compréhensibilité, maintenance, évolution, réutilisation,
performance, documentation, etc
Dr. Rim Negra 5
Avantages
• Un style architectural aide a avoir un aperçu du système
avant son développement.
• Les styles sont indépendants des technologies.
• Plusieurs technologies peuvent réaliser un certain styles.
• Facilite la réutilisation.
• Un système peut s’appuyer sur plusieurs styles.

Dr. Rim Negra 6


Bénéfices d’utiliser des styles
• Réutilisation d’un design
• Des solutions bien comprises appliquées à de nouveaux problèmes
• Réutilisation de code
• Partage de l’implémentation des aspects invariants d’un style
• Compréhension de l’organisation d’un système
• Une expression comme client-serveur communique beaucoup d’information
• Interopérabilité
• Supporté par la standardisation d’un style

Dr. Rim Negra 7


Styles standards
• Pipe / Filtre
• Client / Serveur
• 3-tiers/N-tiers
• Multi-couches
• MVC: Model View Controller
• Cloud computing

Dr. Rim Negra 8


Pipe / Filtre (pipeline)
• Permet à l’information d’être traitée par plusieurs
• composants d’une manière séquentielle
• La configuration détermine l’ordre de traitement
• Le filtre est un composant qui traite l’information.
• La pipe est un canal par lequel transite l’information.

Dr. Rim Negra 9


Pipe / Filtre fonctionnement
• Exemple: Unix shell, Windows Powershell
• Application de traitement de texte, de traitement de signaux.
Compilateur (analyse lexicale, syntaxique, sémantique)

Dr. Rim Negra 10


Pipe / Filtre
• Inspiré de la composition de fonctions en Unix
Ls months | grep–e August | sort
• Composantes de transformation (Filtres)
• Les filtres sont des unités de traitement qui sont spécifiées uniquement pas les
entrées qu’elles acceptent et les sorties qu’elles produisent
• Les filtres ne partagent pas d’état entre eux
• Les filtres n’ont pas d’interaction entre eux
• Composantes de communication (Pipes)
• Les pipes sont des connecteurs
• Ils relient les composantes sources et les composantes réceptrices
• Ils propagent les données entre elles

Dr. Rim Negra 11


Pipe / Filtre
• Avantages
• Forte décomposition du systèmes
• Filtres facile à réutiliser
• Facilite la maintenance
• La dépendance entre les filtres est faible
• Inconvénients
• Ne convient pas aux applications à haute interactivité
• Les performances dépendent des filtres.

Dr. Rim Negra 12


MVC - définition
• MVC= Model view Controller
• Le modèle représente les entités du système
• Le contrôleur implémente la logique métier et la logique
des interactions
• La vue représente L’interface utilisateur

Dr. Rim Negra 13


MVC-Exemple

Dr. Rim Negra 14


MVC
• Applications interactives -GUI
• L’application est divisée en 3 composantes
• Modèle
• Représente les données et les fonctionnalités du domaine de l’application
• Vues
• Représentations visuelles des données qui forment l’application
• Il peut y avoir plus d’une vue pour un même modèle
• Contrôleurs
• Composantes de contrôle qui traitent les entrées (événements) en provenance des
vues et du système et les traduit en opérations effectuées sur le modèle est les vues
• Un contrôleur pour chacune des vues

Dr. Rim Negra 15


MVC
• Avantages
• Modèle de conception largement apprécié de la communauté des
développeurs
• Séparation de la logique des interfaces
• Testabilité accrue
• Inconvénients
• Assez complexe
• Plus d’effort de développement
• Un nombre énorme de fichiers à manipuler

Dr. Rim Negra 16


Client-Serveur
• Le système est composé de deux composants principaux se trouvant
généralement dans des machines séparées. (La base des systèmes
distribués)
• Le client envoie des requêtes au serveur
• Le serveur réagit des requêtes en renvoyant des réponses.
• L’interface est au niveau du client.
• Modèle à deux couches
• Les données sont distribuées dans un ensemble de composantes
• Le traitement est réparti parmi les composantes
• Composantes
• Serveurs –fournissent des services
• Clients –utilisent ces services
• Connecteurs
• RPC
• Protocole réseau

Dr. Rim Negra 17


Client-Serveur : Exemple

Serveur web (IIS / Apache), Client web (FireFox / Chrome


/ Internet Explorer)
 Serveur
Dr. Rim FTP
Negra (ftpd) / Client FTP (FileZilla) 18
Client- Serveur
• Avantages
• Séparation des taches
• Simple à utiliser
• Inconvénients
• Souvent insuffisant pour des cas complexe

Dr. Rim Negra 19


Architecture pair-à-pair
• Architecture pair-à-pair = une généralisation de l’architecture client-
serveur
• Les composants peuvent tous à la fois être client et serveur
• Conception plus difficile: flot de contrôle plus complexe dû à la
• possibilité de deadlocks…

Dr. Rim Negra 20


Architecture N-tiers
• Fragmente le système a plusieurs
niveaux
• Le niveau présentation, le niveau logique
ou le niveau données sont des exemples
de niveaux
• Chaque niveau dépend uniquement du
niveau qui est supérieur

Dr. Rim Negra 21


Architecture N-tiers

Dr. Rim Negra 22


Architecture 3-niveaux
• – Organisation en trois couches
• Couche interface: Composé d’objets interfaces (boundary objects) pour
interagir avec l’utilisateur (fenêtres, formulaires, pages Web, etc.)
• Couche logique applicative : Comporte tous les objets de contrôle et d’entités
nécessaire pour faire les traitements, la vérification des règles et les
notifications requises par l’application
• Couche de stockage : réalise le stockage, la récupération et la recherche des
objets persistants
• Avantage sur l’architecture client-serveur
• Permet le développement et la modification de différentes interfaces
utilisateurs pour la même logique applicative

Dr. Rim Negra 23


Dr. Rim Negra 24
Dr. Rim Negra 25
Architecture N-tiers: Exemple

Dr. Rim Negra 26


Architecture N-tiers
• Avantages
• Séparation poussée des tâches
• Haute flexibilité
• Inconvénients
• Nécessite des ressources matérielles importantes

Dr. Rim Negra 27


SOA- Définition
• SOA (Service oriented architecture) est une évolution du modèle
client serveur
• SOA est basée sur des services faiblement couplés, indépendants des
protocoles, basés sur les standards distribués.
• Chaque ressources disponible sur le réseau est utilisé comme service.

Dr. Rim Negra 28


Caractéristique des services
• Les services sont autonomes
• Les services sont composables
• Les services sont réutilisables
• Une architecture SAO est basé sur un consommateur de service, un
fournisseur de service et un registre de service.
• Un consommateur utilise le service
• Un fournisseur assure le service
• Le registre fait le lien entre le fournisseur et le consommateur

Dr. Rim Negra 29


SOA

Dr. Rim Negra 30


SOA
• Avantages
• Indépendance et facilité de découverte
• Permettant l’utilisation des application depuis n’importe quel équipement

Dr. Rim Negra 31


Le Cloud Computing
• Le Cloud computing est une technologie basé sur internet qui permet
de fournir des ressources d’une manière évolutive sur internet.
• Le cloud computing est la base de Saas (software as service)
• Avec Saas, les utilisateurs ne se soucient plus de l’évolution et de la
maintenance des logiciels.
• Le cloud permet aux entreprise une réduction des coûts.

Dr. Rim Negra 32


Conclusion

• Différents styles répertoriés dans la littérature


• Certains largement répandus, d’autres peu utilisés

• Chaque style a ses caractéristiques


• Rôle des composantes
• Connecteurs spécifiques

Dr. Rim Negra 33

Vous aimerez peut-être aussi