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
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