Professional Documents
Culture Documents
Cours Architecture
Logicielle
Chapitre 2:
Styles architecturaux
1. Introduction
2. Styles Généraux : pipe and filters, Architecture
avec référentiel, multi-couche.
3. Styles Interactifs : Basée évènement, Model
View Controller.
4. Styles Distribués : n-tiers, broker, SOA.
1
15/04/2011
Style architectural
Est un patron (modèle) décrivant une architecture
logicielle permettant de résoudre un problème particulier
et récurrent.
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
Principales familles
Les styles d’architectures logicielles se
répartirent sur quatre familles comme suit:
2
15/04/2011
1. Architecture Pipeline
2. Architecture avec référentielle
3. Architecture multicouches
Filtre
Reçoit ses données d’un ou plusieurs canaux d’entrée, effectue
la transformation/traitement des données et envoie les données
de sortie produites sur un ou plusieurs canaux de sorties.
Canal
Unidirectionnel au travers duquel circulent un flot de données
6
(stream).
3
15/04/2011
1. Architecture Pipeline
Exemples : application de traitement de texte, de
traitement de signaux. Compilateur (analyse lexicale,
syntaxique, sémantique), modèle de communication entre
processus Linux.
Avantages
Bon pour traitement en lot.
Très flexible
Analyse facilitée : performance, synchronisation, etc.
Se prête bien à la décomposition fonctionnelle d’un
système
Inconvénients
Mauvais pour le traitement interactif (Interface utilisateur)
7
Encodeur pour
sortie de microphone
Égaliser les
Filtrer Filtrer Retirer les
les intervalles
l’écho le bruit fréquences non vocales
dynamiques
Encodeur de
bruit ambiant
Encoder la sortie
des haut-parleurs
4
15/04/2011
10
5
15/04/2011
3. Architecture multicouche
3. Architecture multicouches
On distingue deux variantes du système multicouche:
Système fermé : une couche n’a accès qu’aux couches adjacentes. Les
connecteurs ne relient que les couches adjacentes
Système ouvert : toutes les couches ont accès à toutes les autres. Les
connecteurs peuvent relier deux couches quelconques
12
6
15/04/2011
3. Architecture multicouches:
Notion de couches applicatives
La structuration des applications se traduit par une décomposition
logique en couches applicatives (couches logicielles) au sein d'une
même application ou système.
Client léger :
Aucun déploiement n'est réalisé sur le poste client à l'exception d'un navigateur
Web (page HTML simple statique)
Les différents écrans de l'application sont générés en temps réel côté serveur et
téléchargés par le poste client.
Client lourd :
L'ensemble des écrans de l'application sont stockés ou générés sur le poste
client et doivent avoir été déployés sur celui-ci préalablement à l'exécution:
(Applets,Flash..)
7
15/04/2011
Exemple bancaire :
Services métiers: l’opération de virement de compte à compte.
Objets métiers: le compte bancaire et le client et leurs règles
de gestion respectives.
15
8
15/04/2011
public Obj(){
}
public Obj(String name) {
this.name = name;
}
public void setId(int i) {
id = i;
Table }
….
}
Il existe plusieurs Framework de mapping
objet/relationnel : Java Persistance API, TopLink,
Classe Java correspondante
Java Data Object, Hibernate, Object Relational
Bridge…
18
9
15/04/2011
Appropriée pour les systèmes dont les composants doivent interagir avec
l’environnement.
19
10
15/04/2011
Utilisateur
utilise
Est perçue par
agit sur
Vue Contrôleur
Modèle Manipule
Met à jour
11
15/04/2011
23
1. Architecture n-tiers
2. Architecture SOA
12
15/04/2011
1. Architecture n-tiers
La vue en niveaux (tiers) donne une vision plus «physique» de la structuration de
l’application. Les niveaux peuvent être répartis physiquement sur différents
composants matériels:
Composants : chaque niveaux est représenté par un composant qui joue le rôle
de client et/ou de serveur
Exemples:
Architecture 1-tiers
Architecture 2-tiers
Architecture 3-tiers
Architecture n-tiers
25
1. Architecture: 1 tiers
Architecture Centralisée
Les trois couches applicatives sont liées et s'exécutent sur
le même ordinateur.
• Serveur (Mainframe) :
• Client léger : passif utilisé pour l’af f ichage terminale .
• Inconvénients:
• Dépendance totale d’un système
centralisé
13
15/04/2011
Architecture: 2-tiers
• Architecture Décentralisée
• L’ensemble des traitements applicatifs est géré par le poste
client : Client lourd
• La gestion des données est prise en charge par un SGBD
centralisé.
Avantages:
Environnement graphique et multimédia avancé
Intégration f acile de la micro inf ormatique
Inconvénients
Risque de surcharge du client
27
Syndrome du «client obèse»
Architecture 3-tiers
Navigateur
Architecture Distribuée
14
15/04/2011
Architecture: n-tiers
La littérature parle du modèle générique «N-tiers» (ou N-
niveaux)
Rajoute des étages / couches en plus
La couche applicative n'est pas monolithique
Le modèle N-tiers est celui mis en œuvre dans le cadre
des projets web
Exemple : tiers impliqués dans le modèle d’architecture
J2EE
29
(client riche)
30
15
15/04/2011
Composant: Services
Connecteurs : Techniques et protocoles de communication entre
service : Bus de communication, HTTP,
31
32
16
15/04/2011
Le fournisseur de services
crée le service Web, puis publie son interface ainsi que les
informations d'accès au service, dans un annuaire de services
Web.
(Ex: Google, Yahoo)
L'annuaire de services
rend disponible l'interface du service ainsi que ses informations
d'accès, pour les demandeurs potentiels du service.
Le demandeur de service (Consommateur)
accède à l'annuaire de service
recherche afin de trouver le service désiré.
se lier au fournisseur pour invoquer le service.
33
34
17
15/04/2011
Bus de
communication
Services existants
disponibles sur le Web
Services
implémentés pour l’application
35
18