18
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

Cours Arch Ch2

  • Upload
    sony03

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours Arch Ch2

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

Page 2: Cours Arch Ch2

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.

Page 3: Cours Arch Ch2

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

Page 4: Cours Arch Ch2

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

Page 5: Cours Arch Ch2

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.),

Page 6: Cours Arch Ch2

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

Page 7: Cours Arch Ch2

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

Page 8: Cours Arch Ch2

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.

Page 9: Cours Arch Ch2

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

Page 10: Cours Arch Ch2

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

Page 11: Cours Arch Ch2

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

Page 12: Cours Arch Ch2

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

Page 13: Cours Arch Ch2

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

Page 14: Cours Arch Ch2

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

Page 15: Cours Arch Ch2

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)

Page 16: Cours Arch Ch2

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.

Page 17: Cours Arch Ch2

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

Page 18: Cours Arch Ch2

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