Upload
sony03
View
226
Download
0
Embed Size (px)
Citation preview
15/04/2011
1
Présenté par : Mlle. Nourhène ALAYA
2010-2011
Cours Architecture
Logicielle
Institut Supérieur des Etudes Technologiques de Mahdia
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.
Chapitre 2:
Styles architecturaux
15/04/2011
2
Style architectural
3
Est un patron (modèle) décrivant une architecturelogicielle permettant de résoudre un problème particulieret 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
Constitue un modèle éprouvé et enrichi par l’expériencede plusieurs développeurs Compréhensibilité, maintenance, évolution, réutilisation,
performance, documentation, etc.
Principales familles
4
Les styles d’architectures logicielles se répartirent sur quatre familles comme suit:
1. Styles Généraux : Filtres/Canaux (Pipeline),
Architecture avec référentiel, multicouches.
2. Styles Interactifs : Basé évènement, Model View
Controller (MVC).
3. Styles Distribués : n-tiers, SOA.
4. Adaptatifs : micro-kernel, réflexion.
15/04/2011
3
1. Architecture Pipeline
2. Architecture avec référentielle
3. Architecture multicouches
Styles Architecturaux généraux
1. Architecture Filtres/Canaux : Pipeline
6
Convient bien aux systèmes de traitement et detransformation de données.
Composants = filtre ; Connecteur = canal
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éesde sortie produites sur un ou plusieurs canaux de sorties.
Canal Unidirectionnel au travers duquel circulent un flot de données
(stream).
15/04/2011
4
1. Architecture Pipeline
7
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)
Système de traitement du son
Encodeur pour sortie de microphone
Filtrer
l’écho
Filtrer
le bruit
Retirer les
fréquences non vocales
Égaliser les
les intervalles
dynamiques
CompresserTransmettreRecevoirDécompresser
Encoder la sortie
des haut-parleurs
Encodeur de bruit ambiant
1. Exemple d’architecture Pipeline
15/04/2011
5
2. Architecture avec référentielle
9
Utilisée dans le cas où des données sont partagées et
fréquemment échangées entre les composants
Deux types de composants : référentiel de données et accesseur de
données
Les référentiels constituent le medium de communication entre les
accesseurs (demandant accès aux données)
Connecteur : relie un accesseur à un référentiel
Rôle de communication, mais aussi possiblement de coordination, de conversion et de facilitation
2. Architecture avec référentielle
10
Variantes
Style tableau noir (Blackboard) : les référentiels sont desagents actifs. Lorsqu’ils reçoivent une données, ilsinforment tous les accesseurs concernés afin desynchroniser l’accès. Exemple: Environnement de programmation (compilateur), JVM (Java) ,
Le noyau du système Linux.
Style référentiel passif: les référentiels sont des simplesvocations de stockage. Les composants accède auxréférentiels comme ils le désirent. Exemples: application de bases de données, systèmes centrés sur les
données (e.g. système bancaire, système de facturation ,etc.),
15/04/2011
6
3. Architecture multicouche
11
C’est une décomposition logique d’un système en couches.
Composants : chaque couche réalise un service
Une couche of f re un service (serveur) aux couches externes (client)
Service créé indépendamment du logiciel
Met à prof it la notion d’abstraction, les couches externes sont plus
abstraites (haut niveau) que les couches internes
Connecteurs : dépendent du protocole d’interaction souhaité entre
couches
Exemple: Modèle OSI, le protocole (TCP/IP), Décomposition d’application
en couches applicatives.
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
Système Fermé Système Ouvert
12
15/04/2011
7
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.
Le découpage en couche permet de modif ier l'implémentation d'une couche sans impacter les autres couches applicatives.
Les couches communiquent entre elles au travers d'un modèle d'échange « les contrôleurs » , et chacune d'entre elles propose un ensemble de services rendus.
14
Elle gère et assure l'af f ichage des Interfaces Homme-Machine (IHM : fenêtres, pages, composants graphiques...)
On distingue trois catégories d'IHM pour les applications interactives :
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 etté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..)
Client riche (Smart Client) : Compromis entre le client léger et le client lourd
Plusieurs options sont disponibles pour le développement d'IHM riches, à savoirAjax, Flex, Microsoft Silverlight, Google Web Toolkit qui permettent d’exécuterdirectement le code dans le navigateur
3. Architecture multicouches: Couche de Présentation
15/04/2011
8
3. Arch. Multicouche: Couche Métier
15
Elle correspond aux traitements qu’effectue l’application.
Implémentation de la logique des cas d’utilisation (use-casefonctionnels)
Cette couche doit :
implémenter la logique métier
gérer la sécurité applicative
gérer les transactions
gérer les appels aux objets métiers.
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èglesde gestion respectives.
3. Arch. multicouche: Couche de Persistance
16
Nommée aussi couche d’accès aux données. Elle prend en charge l'accèsà la source de données (SGBDR, fichiers XML, LDAP, …).
La couche Persistance offre les fonctionnalités de base qui permettent:
de créer, rechercher, modifier et supprimer des composants objetsmétiers dans le respect des propriétés transactionnelles classiques.
d’utiliser le mécanisme de projection objet vers relationnel (mappingObjet / Relationnel) qui consiste en la transformation de lareprésentation des données en une représentation objet.
15/04/2011
9
3. Arch. multicouches: Couche de persistance
• Le mapping objet relationnel crée une illusion d’une BD Orientée
Objet à partir d’une BD relationnelle
public class Obj {
private int id;
private String name;
public Obj(){
}
public Obj(String name) {
this.name = name;
}
public void setId(int i) {
id = i;
}
….
}
Il existe plusieurs Framework de mapping
objet/relationnel : Java Persistance API, TopLink,
Java Data Object, Hibernate, Object Relational
Bridge…
Donc on peut bénéficier de l’orienté objet et gérer une BD relationnelle d’une façon transparente.
Table
Classe Java correspondante
1. Architecture basée événements
2. Architecture MVC
18
Style architectural interactif
15/04/2011
10
1. Architecture basée événements
19
Composant: ils sont de nature abstraite, exposant des procédures et desévénements.
Procédure: Composant graphique
Evénement = clic de souris, détection d’un signal par un capteur, arrivée d’un message,etc.
Connecteur: Des liaisons entre des procédures et des événements. Uncomposant annonce un événement et tous les composants qui se sont enregistréscomme observateurs de cet événement sont prévenus.
Appropriée pour les systèmes dont les composants doivent interagir avecl’environnement.
Exemples : La bibliothèque de composants graphiques Qt, Eclipse, Ajax, Erlang,JoCaml, Triggers de BD.
2. Architecture Modèle-Vue-Contrôleur (MVC)
20
Séparer la couche interface utilisateur des autres parties
du système
Composé de trois types de composants
Modèle : rassemble des données du domaine, des connaissances
du système. Contient les classes dont les instances doivent être
vues et manipulées
Vue : utilisé pour présenter/af f icher les données du modèle dans
l’interface utilisateur
Contrôleur : contient les fonctionnalités nécessaires pour gérer et
contrôler les interactions de l’utilisateur avec la vue et le modèle
15/04/2011
11
2. Architecture Modèle-Vue-Contrôleur (MVC)
21
La notification des changements d'état se font de façon asynchrone
entre le modèle et les vues et
entre la vue et les contrôleurs
agit sur ContrôleurVue
Modèle
Utilisateur
ManipuleMet à jour
Est perçue parutilise
2. MVC avec les composants graphiques
15/04/2011
12
2. Architecture Modèle-Vue-Contrôleur (MVC)
23
• Exemple du MVC pour le Web
1. Architecture n-tiers
2. Architecture SOA
Styles architecturaux distribués
15/04/2011
13
1. Architecture n-tiers
25
La vue en niveaux (tiers) donne une vision plus «physique» de la structuration del’application. Les niveaux peuvent être répartis physiquement sur différentscomposants matériels:
N.b. L’architecture multicouches est généralement utilisée pour décrire la structureinterne (non distribuée) d’un composant qui peut lui-même appartenir à unearchitecture (distribuée) n-partie.
Composants : chaque niveaux est représenté par un composant qui joue le rôlede client et/ou de serveur
Connecteurs : relient un client à un serveur. Connexion asymétrique. Doitsupporter les communication distantes (e.g., requêtes RPC, HTTP, TCP/IP)
Exemples: Architecture 1-tiers
Architecture 2-tiers
Architecture 3-tiers
Architecture n-tiers
1. Architecture: 1 tiers
26
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é
• Dépendance d’un constructeur
• Coûts de maintenance très élevés
• Possibilités graphiques et multimédia très limitées
15/04/2011
14
27
• 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 facile de la micro informatique
Inconvénients
Risque de surcharge du client
Syndrome du «client obèse»
Architecture: 2-tiers
Architecture 3-tiers
28
Architecture Distribuée
Tous ces niveaux étant indépendants, ils peuvent être implantés sur des machines dif férentes:
Le poste client ne supporte plus l'ensemble des traitements (client riche ou léger)
Facilité de déploiement
Sécurité : pas d ’exposition du schéma de la base de données
La manipulation des données est indépendante du support physique de stockage.
Présentation
Traitement
données
Navigateur
Tier 1 : Client
Base de données
Tier 3:Base de données
Tier 2:Serveur d’applications
Client: Gestion de la présentation
Serveur applicatif: lien entre clients et plusieurs serveurs de BD
Serveur de données: Gestion accès à BD
15/04/2011
15
Architecture: n-tiers
29
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
Résumé sur l’architecture multi-tiers
30
(client riche)
15/04/2011
16
2. Architecture orientée services: SOA
31
Dans une SOA un niveau d'indirection supplémentaire est introduit sous
la forme de la couche Services.
Composant: Services
Connecteurs : Techniques et protocoles de communication entre
service : Bus de communication, HTTP,
Les services agissent comme des « boites noires », encapsule ces
traitements et données et masque ainsi l’hétérogénéité du système
d’information.
2. Architecture orientée services: SOA
32
Un service n’est pas nécessairement un web service
il peut être local ou distant.
Les services sont interopérables
peuvent interagir même s’ils sont hétérogènes de point de vue implémentation (≠
langages) et architecture.
15/04/2011
17
2. Architecture orientée services: SOA
33
Les partenaires de SOA
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.
2. Architecture orientée services: SOA
34
Les partenaires de SOA
15/04/2011
18
2. Architecture orientée services: SOA
35
Bus de communication
Servicesimplémentés pour l’application
Services existants disponibles sur le Web