Click here to load reader
View
2
Download
0
Embed Size (px)
Introduction aux styles architecturaux
GLO-3001
Architecture logicielle
Luc Lamontagne
Hiver 2010
Styles architecturaux
• 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
2
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
3
Styles architecturaux
• Ne pas confondre style architectural et modèle architectural (ou vue architecturale)
• Modèles (vues, visualisation) – Utilisés pour documenter une architecture
• Modèle statique qui présente les composantes
• Modèle dynamique qui décrit la structure de traitement
• Modèle d’interface qui définit les sous-systèmes
• Modèle de relation qui décrit les relations entre les composantes
• Modèle de distribution des sous-systèmes sur différents ordinateurs
4
Patrons, styles et autres
5
Propriétés des architectures
• Les objectifs de conception de l’architecture sont caractérisés par les propriétés que l’on désire obtenir pour le système
– Propriétés fonctionnelles • Fonctionnalités requises du système
– Propriétés non-fonctionnelles • Maintenabilité
– Évolution, adaptation ou correction du système
• Disponibilité • Performance • Interopérabilité • Robustesse
– Gestion des erreurs – Tolérance aux fautes
• Sécurité
6
Survol - principaux styles architecturaux
• Traditionnel influencé par un style de programmation – Main program and subroutines – Orienté object
• En couche – Machine virtuelle – Client-serveur – N-tiers
• Data-flow – Batch sequential – Pipe and filter
• Shared memory – Blackboard – Systèmes à base de règles
• Adaptatif – Microkernel – Reflexive – Plug-in
• Interactif – Model-View-Controller
• Embarqué – Sense-Compute-Control
• Interpréteur – Interpréteur – Code mobile
• Invocation implicite – Event-based – Publish-subscribe
• Peer to peer • Styles dérivés
– C2 – CORBA
7
Survol - principaux styles architecturaux
• Main program & Subroutines – Un programme principal qui appelle les composantes à
tour de rôle – Contrôle hiérarchique – Le style le plus simple
8
Survol - principaux styles architecturaux
• Style orienté objet (…) – Topologie et structure de contrôle arbitraire.
– La durée de vie des instances peut varier
– Comprendre le système : relations statiques et dynamiques
9
Survol - principaux styles architecturaux
• Couches (Layers) – Organisation en couches de
composantes offrant des groupes de services
– Échanges limités aux composantes de la couche sous- jacente • Les composantes d’une couche ne
font appel qu’aux composantes de la même couche ou de la couche inférieure
– Principe des machines virtuelles
10
Couche 1
Couche 2
Couche 3
Programme A
Programme B
Programme D
Programme C
Survol - principaux styles architecturaux
• Client-serveur – Modèle à deux couches – La base des systèmes distribués – 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
– Thin-client vs. Fat-client
– Connecteurs • RPC • Protocole réseau
11
Survol - principaux styles architecturaux
• Modèle 3-tiers – Cas particulier d’un :
• Modèle en couche (3) • Modèle client-serveur (2)
– Autre dénomination : • State-logic-display
– Rôle des niveaux : • Présentation • Logique d’application • Données (état du système)
12
Survol des principaux styles architecturaux
• Model-View-Controller (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
13
Survol - principaux styles architecturaux
• Batch sequential – Style de flot de données (dataflow) – Un des styles le plus anciens – Repose sur la conversion d’un flux de données – Pour les applications de systèmes financiers
14
Survol - principaux styles architecturaux
• Pipelines (Pipes and Filters) – Inspiré de la composition de fonctions en Unix
ls invoices | 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
15
Pump SinkFilterFilter pipe pipe pipe
Survol - principaux styles architecturaux
• Sense-Compute-Control
16 Objectif : Structurer les applications embarquées (contrôle)
Survol - principaux styles architecturaux
• Dépôts de données (Repository – shared memory) – Dépôt de données commun aux composantes du
système
– Les composantes interagissent par l’entremise du dépôt de données
– Applications traditionnelles – Base de données avec triggers
– Autres – Blackboard – Système à base de règles / système expert
17
Survol - principaux styles architecturaux
• Dépôts de données (Repository) – Cas particulier: Blackboard
• Dépôt de données central
• Composantes de traitement sur les données (Knowledge Sources) – Pas d’interactions directes entre les KS
• Composante de gestion des traitements (Controller)
• Résolution de problème par des modifications successives des données
18
Survol - principaux styles architecturaux
• Système à base de règles – Contient
– Un interface usager – Un moteur d’inférence – Une base de connaissance
– Le moteur d’inférence décortique les inputs de l’usager
– Il détermine si c’est un fait, une règle ou une requête.
– Un fait ou une règle – Ajouter à la base de connaissance
– Un requête – Interroger la base de connaissance pour obtenir les
règles applicables et tenter de résoudre la requête
19
Survol - principaux styles architecturaux
• Publish-Subscribe – De type implicit invocation
– Abonnement pour recevoir des messages ou un contenu spécifique.
– Les abonnées peuvent s’enregistrer ou se désabonner.
– Les publieurs font un broadcast de leurs messages à leurs abonnés
• Soit de façon synchrone ou asynchrone
21
Survol - principaux styles architecturaux
• Peer-to-peer – Peer : généralisation du modèle
client-serveur
– Une composante peut agir selon les deux modes
– Doit contenir des services pour localiser les peers et les ressources
22
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
• La suite… – Description détaillée de quelques styles – Conception architecturale
• Comment choisir un o