Transcript
Page 1: Génie Logiciels : Introduction aux architectures

1

Cours 6 :Architectures de logiciels

COURS IGL

COURS 6INTRODUCTION AUX ARCHITECTURES DE

LOGICIELS

Mostefai Mohammed Amine – [email protected] Sofiane – [email protected]

Page 2: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

2

Présenter la notion d’architecture logicielleDonner un aperçu des principaux styles architecturauxDécouvrir le lien entre l’architecture et le déploiement

physique à travers le diagramme de déploiement

O B J EC T I FS D U C O U RSCours 6 – Introduction Aux Architectures de Logiciels

Objectifs du cours

Page 3: Génie Logiciels : Introduction aux architectures

3

Cours IGL, Copyright © 2011, ESI

Cours 6Introduction aux architectures logicielles

INTRODUCTION AU GÉNIE LOGICIELSection 1 :

Introduction

Section 2 : Diagramme de

composants

Section 2 : Styles

architecturaux

Section 5 : Diagramme de déploiement

Page 4: Génie Logiciels : Introduction aux architectures

4

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 1 : Introduction

Page 5: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

5

L’architecture d’un programme ou d’un système informatique est la structure (ou les structures) du système qui comprend les éléments logiciels, leurs propriétés visibles et leur relations

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Définition

Page 6: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

6

L’architecture d’un système est sa conception de haut niveau

N’importe quel système complexe est composé de s ous-systèmes qui interagissent entre eux

La conception de haut niveau est le processus qui consiste à identifier ces sous-systèmes ainsi que les relations qu’ils entretiennent entre eux

L’architecture d’un système est le résultat de ce processus

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Introduction

Page 7: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

7

L’architecture implique plusieurs choix dont les technologies , les produits et les serveurs à utiliser

Il n’y a pas une architecture unique permettant de réaliser le système, il y en a plusieurs.

Le concepteur ou l’architecte tâchera de choisir la meilleure architecture possible selon plusieurs critères dont la nature du projet, les compétences de l’équipe, les budgets et outils disponibles, …etc.

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Introduction

Page 8: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

8

Il existe plusieurs représentations graphiques des architectures

Une des représentations les plus utilisées est la représentation C&C : Composants et Connecteurs

Un composant est un module logiciel (application, bibliothèque, module, …etc.) ou un entrepôt de données (base de données, système de fichiers, …etc.)

Le connecteur représente les interactions entre les composants

La représentation C&C est un graphe contenant des composants et des connecteurs

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Représentation des architectures

Page 9: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

9

Un composant est un module logiciel ou un entrepôt de données

Un composant est identifié par son nom qui indique son rôle dans le système

Les composants communique entre eux en utilisant des ports (ou interfaces)

Les architectures utilisent des composants standards : serveurs , bases de données , application , clients , …etc.

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Composants

Page 10: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

10

Un serveur est un module logiciel qui répond aux requêtes d’autres modules appelés clients

Généralement, les services et les clients sont hébergés dans des machines différentes et communiquent via le réseau (intranet / internet)

Par exemple, le service http répond aux requêtes des clients qui sont les navigateurs web

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Serveurs et clients

Page 11: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

11

Une application est un module logiciel qui a un rôle défini dans le système logiciel

Par exemple, une application d’envoi de mails

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Application

Page 12: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

12

Une base de données est un entrepôt stockant les données sous un format normalisé

L’interrogation et la modification des données se fait en utilisant un langage spécial appelé SQL

La plupart des bases de données obéissent au modèle relationnel

Un SGBD (Système de Gestion de Base de Données) est une base de données puissante et accessible sur le réseau conçue généralement pour les gros systèmes

SQL Server, Oracle, MySQL, PostgreSQL sont des exemples de SGBD connus sur le marché

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Base de données

Page 13: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

13

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Vue C&C

Client Serveur

Base de données Application

Page 14: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

14

Le connecteur modélise une interaction entre deux composants

Un connecteur peut modéliser une interaction simple (appel de procédure) ou une interaction complexe (par exemple utilisation d’un protocole comme http)

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Connecteurs

Page 15: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

15

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Exemple – Site JSP

Navigateur

Serveur web SGBD MySQL

http

JDBC

Page 16: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

16

La vue logique d’une architecture logicielle définit les principaux composants d’une architecture sans se soucier des détails physiques (équipements, machines, …etc.)

La vue physique s’intéresse au déploiement physique des différents services

La vue physique est peu précise lors de la conception. Elle devient concrète lors de la phase de déploiement.

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Vue Physique et Vue Logique

Page 17: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

17

Serveur 1

Exemple 1 : services déployés dans le même serveur

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Vue Physique et Vue Logique

Navigateur

Serveur web SGBD MySQL

http

JDBC

Page 18: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

18

Serveur 2Serveur 1

Exemple 2 : services déployés dans des serveurs différents

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Vue Physique et Vue Logique

Navigateur

Serveur web SGBD MySQL

http

JDBC

Page 19: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

19

Donne un aperçu de haut niveau du système qui va faciliter la communication et la compréhension

Aide à comprendre des systèmes existantsDécompose le système en sous-systèmes et sous-modules

ce qui réduit la complexité et facilite la distribution des tâches

Facilite l’évolution du système en remplaçant uniquement le sous-système désiré

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

Utilisation de l’architecture

Page 20: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

20

Plusieurs formalismes peuvent décrire une architecture logicielle

UML 2 est un bon moyen de représenter une architecture logicielle

Le diagramme de composants peut servir à représenter la vue logique d’une architecture

Le diagramme de déploiement peut servir à représenter la vue physique d’une architecture

S EC T I O N 1 - I N T RO D U C T I O N

Cours 6 – Introduction Aux Architectures de Logiciels

UML et les architectures logicielles

Page 21: Génie Logiciels : Introduction aux architectures

21

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 1 : Introduction, débat (05 mns)

Page 22: Génie Logiciels : Introduction aux architectures

22

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 2 : Diagramme de composants

Page 23: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

23

Un composant est une unité autonome dans un systèmeUn composant définit un système ou un sous-système de

n’importe quelle taille ou complexitéLes diagrammes de composants permettent de modéliser

les composants et leurs interactionsLes composants d’un système sont facilement réutilisés

ou remplacés

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Composant

Page 24: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

24

Un composant est une unité modulaire avec des interfaces bien définies

Les interfaces définissent comment le composant peut être appelé ou intégré

Le composant est remplaçable et autonomeL’implémentation du composant est cachée (encapsulée)

aux entités externes

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Caractéristiques d’un composant

Page 25: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

25

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Représentation UML

Composant

Page 26: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

26

Un composant a un nom unique dans son contexteUn composant peut être étendu par un stéréotypeIl existe des stéréotypes standard pour les composants

comme « subsytem », « database » ou « executable »L’utilisateur peut ajouter ses propres stéréotypes à

condition que ça soit consistant avec l’objectif du diagramme

Dans le cadre d’architectures logicielle, ces stéréotypes peuvent être utilisés : « service », « client », … etc.

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Caractéristiques d’un composant

Page 27: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

27

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Exemples de stéréotypes

«service»Composant1

«client»Composant2

«database»Composant3

«subsystem»Composant4

Page 28: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

28

Un composant définit son comportement en terme d’interfaces fournies et interfaces requises

Une interface est une collection d’opérations ayant un lien sémantique et qui n’ont pas d’implémentation

L’implémentation des interface se fait par une ou plusieurs classes implémentant le composant

Les noms d’interfaces commencent par « I » (convention)Un contrat entre C1 et C2 est défini quand C1 fournit une

interface I qui est requise par C2

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Interfaces

Page 29: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

29

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Interfaces - Exemple

«interface»IEmployeeManager

+ getEmployeeById(int) : Employee+ addEmployee(Employee) : void

Page 30: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

30

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Interfaces - Exemple

«interface»IEmployeeManager

+ getEmployeeById(int) : Employee+ addEmployee(Employee) : void

Nom de l’interface

Opérations

Page 31: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

31

Une interface fournie définie les fonctions qu’un composant pourrait faire

Exemple : un serveur web peut gérer les requêtes HTTP de type get ou post

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Interfaces fournie

ServeurWebIGet

IPost

Page 32: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

32

Définit la (ou les interfaces) qu’un composant attend de son environnement

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Interfaces requise

NavigateurIGet

IPost

Page 33: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

33

Un assemblage entre deux composants est lorsqu’une même interface est requise pour un composant et fournie par l ’autre

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Assemblage

«client»Navigateur

«service»ServeurWeb

get

Page 34: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

34

Un composant C1 dépend d’un autre composant C2 lorsque C1 requiert C2 pour son implémentation (C1 appelle un des services de C2)

En d’autres mots, l’exécution de C1 requiert la présence de C2

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Utilisation

Component1 Component2«use»

Page 35: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

35

Un composant peut être lui-même composé d’autres composants. On parle alors de composition.

Par exemple, le navigateur est composé de getManager (gestionnaire des requêtes get), postManager (gestionnaire des requêtes POST) et GUI (interface)

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Composition

Page 36: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

36

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Composition

«client»Navigateur

getManager postManager

«UI»GUI

«use»«use»

Page 37: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

37

Un composant peut avoir des sous-composants qui incluent des interfaces fournies ou des interfaces requises

La délégation consiste à transférer les interfaces fournies / requises du composant interne vers le composant externe

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Délégation

Page 38: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

38

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Délégation

«client»Navigateur

IGet

IPost

getManager

IGet

postManager

IPost

«delegate»

«delegate»

Page 39: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

39

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Délégation – Exemple 2

«client»Navigateur

IGet

IPost

getManager

IGet

postManager

IPost

«service»Serveur

IGet

IPost

serverGetManagerIGet

serverPostManagerIPost

«delegate»

«delegate»

«delegate»

«delegate»

Page 40: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

40

Les paquets peuvent être aussi utilisés dans les diagrammes de composants pour organiser les composants

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Paquets

Page 41: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

41

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Paquets

«database»BDD

DataAccess

EmployeeAccess SalaryAccess

Presentation

EmployeeView SalaryView

«use» «use»

«use» «use»

Page 42: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

42

Les classes sont « packagées » dans des bibliothèquesPar exemple une bibliothèque est un fichier jar (java) ou

une assembly dll (.NET)Le diagramme de composants définit aussi le packaging

des classes du systèmeLe connecteur liant les classes aux composants est le

connecteur « realize »

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Composants et classes

Page 43: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

43

Un artifact est une pièce physique utilisée par le systèmeUn artifact peut être un document, un fichier, un code

source ou n’importe quel élément ayant une relation avec le système

La dépendance avec le stéréotype « manifest » indique qu’un artifact est la représentation physique d’un composant.

Par exemple, un fichier jar est une représentation physique d’une classe java

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Artifacts

Artifact

Page 44: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

44

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Artifacts

bibliotheque.jar«library»

Bibliotheque«manifest»

Page 45: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

45

S EC T I O N 2 – D I A G R A M M E D E

C O M P O S A N T S

Cours 6 – Introduction Aux Architectures de Logiciels

Composants et classes

«library»Model

Model.jarClient Product

«executable»Program

Programlogiciel.exe

«manifest»«use»

«manifest»

Page 46: Génie Logiciels : Introduction aux architectures

46

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 2 : Diagramme de composants, débat (05 mns)

Page 47: Génie Logiciels : Introduction aux architectures

47

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 3 : Styles architecturaux

Page 48: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

48

Un style architectural est un modèle définissant comment sera le système

Comme les systèmes ont des points communs, ces systèmes auront des architectures qui se ressemblent. Le regroupement de ces architectures est appelé «  style architectural  »

Un style architectural définit quels sont les composants , les connecteurs et les contraintes définissant l’architecture d’un système

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Introduction

Page 49: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

49

Un style architectural aide à avoir un aperçu du système avant son développement

Le styles sont indépendants des technologies.Plusieurs technologies peuvent réaliser un certain style.

Par exemple des serveur sous Linux et des clients sous Windows.

Facilite la réutilisationUn système peut s’appuyer sur plusieurs styles

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Bénéfices d’un style architectural

Page 50: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

50

Il existe plusieurs standardsLes styles standards les plus connus sont « pipe / filtre »,

« client/serveur », « 3 tiers / N-tiers », « architecture multi-couches », « MVC », « cloud computing »

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Styles standards

Page 51: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

51

Permet à l’information d’être traitée par plusieurs composants d’une manière séquentielle

La configuration détermine l’ordre des traitementsLe filtre est un composant qui traite l’informationLa pipe est un canal par lequel transite l’information

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Définition

Page 52: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

52

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Définition

«application»filtre1

«application»filtre2

«application»filtre3

pipe pipe

Page 53: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

53

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Fonctionnement

SourceDeDonnées «application»filtre1

pipe1 «application»filtre2

lire()

traiter()

ecrire()

lire()

traiter()

Page 54: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

54

Unix ShellWindows PowershellUnix Shell : cat fichier.txt | grep logiciel | wc : compte le

nombre de mots logiciel dans le fichier fichier.txt

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Exemples

Page 55: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

55

Forte décomposition du systèmesFiltres faciles à réutiliserFacilite la maintenanceLa dépendance entre les filtres est faible

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Avantages

Page 56: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

56

Ne convient pas aux applications à haute interactivitéLes performances dépendent des pipes

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Pipe / Filtre - Inconvénients

Page 57: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

57

MVC = Model View ControllerLe modèle représente les entités du systèmeLe contrôleur implémente la logique métier et la logique

des interactionsLa vue représente l’interface utilisateur

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

MVC - Définition

Page 58: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

58

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

MVC - Exemple

Modèle

Model::Page Model::Blog

Controleur

Controller::CMSHandler

VueHTML

Page 59: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

59

.NET : ASP.NET MVC, MonoRailJava : JavaServer Faces (JSF), StrutsRuby On RailsPython : Zope

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

MVC - Exemples

Page 60: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

60

Modèle de conception largement apprécié de la communauté de développeurs

Séparation de la logique de l’interfaceTestabilité accrue (les tests unitaires supportent le

modèle et le contrôleur)

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

MVC - Avantages

Page 61: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

61

Assez complexePlus d’efforts de développement car chaque tâche

concerne les trois couches

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

MVC - Inconvénients

Page 62: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

62

Le système est composé de deux composants principaux se trouvant généralement dans des machines séparées : le client et le serveur

Le client envoie des requêtes au serveurLe serveur réagit au requêtes en renvoyant des réponsesL’interface utilisateur se trouve au niveau du client

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Client-Serveur - Définition

Page 63: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

63

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Client-Serveur – Fonctionnement

«client»client

«service»serveur

requête réponse

Page 64: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

64

Serveur web (IIS / Apache), Client web (FireFox / Chrome / Internet Explorer)

Serveur FTP (ftpd) / Client FTP (FileZilla)

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Client-Serveur - Exemples

Page 65: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

65

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Client-Serveur - Exemples

client FTP serveur FTP

demanderFichier()

trouverFichier()

:File

Page 66: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

66

AVANTAGESSéparation des tâchesSimple à utiliserINCONVÉNIENTSSouvent insuffisant pour des cas complexes

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Client-Serveur – Avantages et inconvénients

Page 67: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

67

Fragmente le système en plusieurs niveauxLe niveau présentation, le niveau logique ou le niveau

données sont des exemples de niveauxChaque niveau dépend uniquement du niveau qui est au

dessusExemple : applications web modernes

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Architecture N-Tiers - Définition

Page 68: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

68

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Architecture N-Tiers - Exemple

«client»client

«service»serveur web

«service»interpréteur

«database»BDD

Page 69: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

69

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

Architecture N-Tiers - Exemple

«client»client

«service»serveur web

«service»interpréteur

«database»BDD

get(url)

invoquer()

executerSQL()

:resultats

formaterResultats():HTML

:HTML

Page 70: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

70

AVANTAGESSéparation poussée des tâchesHaute flexibilitéINCONVÉNIENTSNécessite des ressources matérielles importantes

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

N-Tiers – Avantages et inconvénients

Page 71: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

71

SOA ou (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 et distribués

Chaque ressource disponible sur le réseau est utilisée comme un service

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

Cours 6 – Introduction Aux Architectures de Logiciels

SOA - Définition

Page 72: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Les service sont autonomesLes services sont composables : créer un service à partir

d’autres servicesLes services sont réutilisablesLes services permettent leur découverte

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

72

Cours 6 – Introduction Aux Architectures de Logiciels

Caractéristiques des services

Page 73: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Une architecture SOA est basé sur un consommateur de service , un fournisseur de service et un registre de services (Service Broker)

Le consommateur utilise le serviceLe fournisseur assure le serviceLe registre fait le lien entre le fournisseur et le

consommateur

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

73

Cours 6 – Introduction Aux Architectures de Logiciels

Composants de SOA

Page 74: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

74

Cours 6 – Introduction Aux Architectures de Logiciels

Composants de SOA

«client»consommateur

«service»registre

«client»fournisseur

contrat

«use» «use»

Page 75: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Deux tendances permettent d’implémenter SOA : SOAP / WSDL / UDDI ou REST

SOAP est un protocole basé sur XML permettant de véhiculer des données via HTTP en utilisant XML

WSDL permet de décrire un service webUDDI permet de découvrir un service webSOAP / WSDL / SOAP sont utilisées conjointementREST est un protocole basée sur HTTP uniquementDans REST, HTTP est le protocole de transmission et

aussi le service web en même temps

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

75

Cours 6 – Introduction Aux Architectures de Logiciels

SOA – Technologies

Page 76: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Indépendance et facilité de découvertePermettent à l’utilisation des applications depuis

n’importe quel équipement (PC, mobile, etc…)

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

76

Cours 6 – Introduction Aux Architectures de Logiciels

SOA – Avantages

Page 77: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Google Search Engine (web + application android + application iOs)

Youtube (web + application android + application WP7 + application blackberry + application iOs)

Facebook (web + applications mobiles)

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

77

Cours 6 – Introduction Aux Architectures de Logiciels

SOA – Exemples

Page 78: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Le Cloud Computing est une technologie basée sur internet qui permet de fournir des ressources d’une manière évolutive sur internet

Le Cloud Computing décharge le client de l’infrastructure IT puisqu’elle fournit le matériel et l’infrastructure

Le Cloud Computing est la base du SaaS (Software As A Service)

Avec le SaaS, les utilisateurs ne se soucient plus de l’évolution et de la maintenance des logiciels

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

78

Cours 6 – Introduction Aux Architectures de Logiciels

Cloud Computing

Page 79: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Le Cloud Computing permet aux entreprises une réduction des coûts car le client ne paye que le stockage et l’utilisation des processeurs

Une structure basée sur le cloud est théoriquement infaillible car lorsque les serveurs actuels ne peuvent plus répondre à la demande, un nouveau serveur virtuel est automatiquement créé

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

79

Cours 6 – Introduction Aux Architectures de Logiciels

Cloud Computing

Page 80: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Google AppEngineAmazonWindows Azure

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

80

Cours 6 – Introduction Aux Architectures de Logiciels

Cloud Computing - Infrastructures

Page 81: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Le cloud est dit privé lorsqu’une entreprise décide de mettre en œuvre le cloud dans sa propre infrastructure IT

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

81

Cours 6 – Introduction Aux Architectures de Logiciels

Cloud privé

Page 82: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Office 365Google Documents

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

82

Cours 6 – Introduction Aux Architectures de Logiciels

SaaS basés sur le cloud

Page 83: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Office 365Google Documents

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

83

Cours 6 – Introduction Aux Architectures de Logiciels

SaaS basés sur le cloud

Page 84: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Idéal lorsqu’une entreprise ne veut pas (ou ne peut pas) se charger de l’infrastructure IT

Peut répondre à n’importe quelle chargeEvolution instantanée des SaaS (pas de besoin de

redéploiement)

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

84

Cours 6 – Introduction Aux Architectures de Logiciels

Avantages

Page 85: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

Grosses problématiques de sécurité : le client ne sait pas où sont ses données et si elles sont vraiment sécurisées

S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X

85

Cours 6 – Introduction Aux Architectures de Logiciels

Inconvénients

Page 86: Génie Logiciels : Introduction aux architectures

86

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 4 : Diagramme de déploiement

Page 87: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

87

Le diagramme de composants s’intéresse à l’architecture d’un point de vue logique tandis que le diagramme de déploiement s’y intéresse d’un point de vue physique

Le diagramme de déploiement s’intéresse aux relations entre les relations entre les composants et les équipements

Les équipements hébergeant des unités logicielles sont appelés nœuds (nodes)

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Introduction

Page 88: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

88

Le diagramme de déploiement est composé de nœuds et de connecteurs

Un nœud représente un équipement dans le systèmeUn connecteur représente une communication entre les

noeuds

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Introduction

Page 89: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

89

Dans UML 2, un nœud est illustré comme ceci :

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Noeud

Noeud

Page 90: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

90

Dans UML, un nœud peut aussi avoir un stéréotype pour préciser la nature du nœud

«cdrom», «cd-rom», «computer», «disk array», «pc», «pc client», «pc server», «secure», «server», «storage», «unix server», «user pc» sont des exemples de stéréotypes

Deux stéréotypes très importants : « device  » et « execution environment  »

Le stéréotype « device » représente un équipement hardware

Le stéréotype « execution environment » détermine un environnement où les processus s’exécutent : par exemple un framework ou un système d’exploitation

Les nouds peuvent être imbriqué

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Nœud

Page 91: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

91

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Nœud - Exemple

«device»PC Toshiba

«executionEnvironment»Windows 7

«executionEnvironment».NET Framework

«device»Serveur HP Pavillon

«executionEnvironment»Linux Ubuntu

«executionEnvironment»Java Runtime

Page 92: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

92

Un composant réside physiquement dans un nœudL’artifact est la manifestation physique d’un composant

où tout autre élément physique (document, exécutable, code source,…)

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Nœuds, composants et artifacts

Page 93: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

93

Les composants Listener et Diagnostic sont hébergés dans « Serveur »

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Exemple 1

«device»Serveur

Listener

Diagnostic

Page 94: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

94

Les composants Listener et Diagnostic sont hébergés dans « Serveur ». Les artifastc représentent les exécutables associés

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Exemple 2

«device»Serveur

Listener

Diagnostic

Listener.exe

Diagnostic.exe

«manifest»

«manifest»

Page 95: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

95

Le lien de communication est une association entre les nœuds modélisation la communication entre ces nœuds

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Lien de communication

Page 96: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

96

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Lien de communication - Exemple

«device»Serveur

«network»réseau local

«device»PC Client

+1

tcp

1

0..*

tcp

1

Page 97: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

97

S EC T I O N 4 – D I A G R A M M E D E

D É P LO I E M E N T

Cours 6 – Introduction Aux Architectures de Logiciels

Exemple d’architecture N/Tiers

«device»Serveur BDD

«database»BDD

«device»Serveur Application

Application web

Serveur web

PC Client

«executable»Navigateur

TCP HTTP

Page 98: Génie Logiciels : Introduction aux architectures

98

Cours IGL, Copyright © 2011, ESI

Cours N° 6Introduction aux architectures logicielles

COURS IGL

Section 4 : Diagramme de déploiement, débat (05

mns)

Page 99: Génie Logiciels : Introduction aux architectures

Cours IGL, Copyright ©

2011, ESI

99

UML Component Diagrams, Veronica Carrega, 2004Introduction to Software Architecture”David Garlanand

Mary Shaw, January 1994Analyse, Conception ObjetDiagrammes de déploiement, SIMMO/ENSM.SE, 2002

B I B L I O G R A P H I ECours 6 – Introduction aux architectures de logiciels

Bibliographie


Recommended