SlideShare une entreprise Scribd logo
1  sur  99
Télécharger pour lire hors ligne
Cours 6 :
Architectures
de logiciels
COURS IGL
COURS 6
INTRODUCTION AUX
ARCHITECTURES DE
LOGICIELS
1
Mostefai Mohammed Amine – m_mostefai@esi.dz
Batata Sofiane – s_batata@esi.dz
Cours
IGL,
Copyright
©
2011,
ESI
 Présenter la notion d’architecture logicielle
 Donner un aperçu des principaux styles architecturaux
 Découvrir le lien entre l’architecture et le déploiement
physique à travers le diagramme de déploiement
OBJECTIFS DU COURS
2
Cours 6 – Introduction Aux
Architectures de Logiciels
Objectifs du cours
Cours IGL, Copyright © 2011, ESI
Cours 6
Introduction
aux
architectures
logicielles
3
INTRODUCTION
AU GÉNIE
LOGICIEL
Section 1 :
Introduction
Section 2 :
Diagramme de
composants
Section 2 :
Styles
architecturaux
Section 5 :
Diagramme de
déploiement
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
4
COURS IGL
Section 1 : Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 1 -
INTRODUCTION
5
Cours 6 – Introduction Aux
Architectures de Logiciels
Définition
Cours
IGL,
Copyright
©
2011,
ESI
 L’architecture d’un système est sa conception de haut
niveau
 N’importe quel système complexe est composé de sous-
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
SECTION 1 -
INTRODUCTION
6
Cours 6 – Introduction Aux
Architectures de Logiciels
Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 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.
SECTION 1 -
INTRODUCTION
7
Cours 6 – Introduction Aux
Architectures de Logiciels
Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 1 -
INTRODUCTION
8
Cours 6 – Introduction Aux
Architectures de Logiciels
Représentation des architectures
Cours
IGL,
Copyright
©
2011,
ESI
 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.
SECTION 1 -
INTRODUCTION
9
Cours 6 – Introduction Aux
Architectures de Logiciels
Composants
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 1 -
INTRODUCTION
10
Cours 6 – Introduction Aux
Architectures de Logiciels
Serveurs et clients
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 1 -
INTRODUCTION
11
Cours 6 – Introduction Aux
Architectures de Logiciels
Application
Cours
IGL,
Copyright
©
2011,
ESI
 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é
SECTION 1 -
INTRODUCTION
12
Cours 6 – Introduction Aux
Architectures de Logiciels
Base de données
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 1 -
INTRODUCTION
13
Cours 6 – Introduction Aux
Architectures de Logiciels
Vue C&C
Client Serveur
Base de données Application
Cours
IGL,
Copyright
©
2011,
ESI
 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)
SECTION 1 -
INTRODUCTION
14
Cours 6 – Introduction Aux
Architectures de Logiciels
Connecteurs
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 1 -
INTRODUCTION
15
Cours 6 – Introduction Aux
Architectures de Logiciels
Exemple – Site JSP
Navigateur
Serveur web SGBD MySQL
JDBC
Cours
IGL,
Copyright
©
2011,
ESI
 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.
SECTION 1 -
INTRODUCTION
16
Cours 6 – Introduction Aux
Architectures de Logiciels
Vue Physique et Vue Logique
Cours
IGL,
Copyright
©
2011,
ESI
Serveur 1
 Exemple 1 : services déployés dans le même serveur
SECTION 1 -
INTRODUCTION
17
Cours 6 – Introduction Aux
Architectures de Logiciels
Vue Physique et Vue Logique
Navigateur
Serveur web SGBD MySQL
JDBC
Cours
IGL,
Copyright
©
2011,
ESI
Serveur 2
Serveur 1
 Exemple 2 : services déployés dans des serveurs
différents
SECTION 1 -
INTRODUCTION
18
Cours 6 – Introduction Aux
Architectures de Logiciels
Vue Physique et Vue Logique
Navigateur
Serveur web SGBD MySQL
JDBC
Cours
IGL,
Copyright
©
2011,
ESI
 Donne un aperçu de haut niveau du système qui va
faciliter la communication et la compréhension
 Aide à comprendre des systèmes existants
 Dé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é
SECTION 1 -
INTRODUCTION
19
Cours 6 – Introduction Aux
Architectures de Logiciels
Utilisation de l’architecture
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 1 -
INTRODUCTION
20
Cours 6 – Introduction Aux
Architectures de Logiciels
UML et les architectures logicielles
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
21
COURS IGL
Section 1 : Introduction,
débat (05 mns)
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
22
COURS IGL
Section 2 : Diagramme de
composants
Cours
IGL,
Copyright
©
2011,
ESI
 Un composant est une unité autonome dans un système
 Un 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 interactions
 Les composants d’un système sont facilement réutilisés
ou remplacés
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
23
Cours 6 – Introduction Aux
Architectures de Logiciels
Composant
Cours
IGL,
Copyright
©
2011,
ESI
 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 autonome
 L’implémentation du composant est cachée (encapsulée)
aux entités externes
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
24
Cours 6 – Introduction Aux
Architectures de Logiciels
Caractéristiques d’un composant
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
25
Cours 6 – Introduction Aux
Architectures de Logiciels
Représentation UML
Composant
Cours
IGL,
Copyright
©
2011,
ESI
 Un composant a un nom unique dans son contexte
 Un composant peut être étendu par un stéréotype
 Il 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.
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
26
Cours 6 – Introduction Aux
Architectures de Logiciels
Caractéristiques d’un composant
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
27
Cours 6 – Introduction Aux
Architectures de Logiciels
Exemples de stéréotypes
«service»
Composant1
«client»
Composant2
«database»
Composant3
«subsystem»
Composant4
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
28
Cours 6 – Introduction Aux
Architectures de Logiciels
Interfaces
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
29
Cours 6 – Introduction Aux
Architectures de Logiciels
Interfaces - Exemple
«interface»
IEmployeeManager
+ getEmployeeById(int) : Employee
+ addEmployee(Employee) : void
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
30
Cours 6 – Introduction Aux
Architectures de Logiciels
Interfaces - Exemple
«interface»
IEmployeeManager
+ getEmployeeById(int) : Employee
+ addEmployee(Employee) : void
Nom de
l’interface
Opérations
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
31
Cours 6 – Introduction Aux
Architectures de Logiciels
Interfaces fournie
ServeurWeb
IGet
IPost
Cours
IGL,
Copyright
©
2011,
ESI
 Définit la (ou les interfaces) qu’un composant attend de
son environnement
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
32
Cours 6 – Introduction Aux
Architectures de Logiciels
Interfaces requise
Navigateur
IGet
IPost
Cours
IGL,
Copyright
©
2011,
ESI
 Un assemblage entre deux composants est lorsqu’une même
interface est requise pour un composant et fournie par l’autre
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
33
Cours 6 – Introduction Aux
Architectures de Logiciels
Assemblage
«client»
Navigateur
«service»
ServeurWeb
get
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
34
Cours 6 – Introduction Aux
Architectures de Logiciels
Utilisation
Component1 Component2
«use»
Cours
IGL,
Copyright
©
2011,
ESI
 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)
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
35
Cours 6 – Introduction Aux
Architectures de Logiciels
Composition
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
36
Cours 6 – Introduction Aux
Architectures de Logiciels
Composition
«client»
Navigateur
getManager postManager
«UI»
GUI
«use»
«use»
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
37
Cours 6 – Introduction Aux
Architectures de Logiciels
Délégation
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
38
Cours 6 – Introduction Aux
Architectures de Logiciels
Délégation
«client»
Navigateur
IGet
IPost
getManager
IGet
postManager
IPost
«delegate»
«delegate»
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
39
Cours 6 – Introduction Aux
Architectures de Logiciels
Délégation – Exemple 2
«client»
Navigateur
IGet
IPost
getManager
IGet
postManager
IPost
«service»
Serveur
IGet
IPost
serverGetManager
IGet
serverPostManager
IPost
«delegate»
«delegate»
«delegate»
«delegate»
Cours
IGL,
Copyright
©
2011,
ESI
 Les paquets peuvent être aussi utilisés dans les
diagrammes de composants pour organiser les
composants
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
40
Cours 6 – Introduction Aux
Architectures de Logiciels
Paquets
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
41
Cours 6 – Introduction Aux
Architectures de Logiciels
Paquets
«database»
BDD
DataAccess
EmployeeAccess SalaryAccess
Presentation
EmployeeView SalaryView
«use» «use»
«use» «use»
Cours
IGL,
Copyright
©
2011,
ESI
 Les classes sont « packagées » dans des bibliothèques
 Par 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ème
 Le connecteur liant les classes aux composants est le
connecteur « realize »
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
42
Cours 6 – Introduction Aux
Architectures de Logiciels
Composants et classes
Cours
IGL,
Copyright
©
2011,
ESI
 Un artifact est une pièce physique utilisée par le système
 Un 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
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
43
Cours 6 – Introduction Aux
Architectures de Logiciels
Artifacts
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
44
Cours 6 – Introduction Aux
Architectures de Logiciels
Artifacts
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 2 –
DIAGRAMME DE
COMPOSANTS
45
Cours 6 – Introduction Aux
Architectures de Logiciels
Composants et classes
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
46
COURS IGL
Section 2 : Diagramme de
composants, débat (05 mns)
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
47
COURS IGL
Section 3 : Styles
architecturaux
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 3 – STYLES
ARCHITECTURAUX
48
Cours 6 – Introduction Aux
Architectures de Logiciels
Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 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éutilisation
 Un système peut s’appuyer sur plusieurs styles
SECTION 3 – STYLES
ARCHITECTURAUX
49
Cours 6 – Introduction Aux
Architectures de Logiciels
Bénéfices d’un style architectural
Cours
IGL,
Copyright
©
2011,
ESI
 Il existe plusieurs standards
 Les styles standards les plus connus sont « pipe / filtre »,
« client/serveur », « 3 tiers / N-tiers », « architecture
multi-couches », « MVC », « cloud computing »
SECTION 3 – STYLES
ARCHITECTURAUX
50
Cours 6 – Introduction Aux
Architectures de Logiciels
Styles standards
Cours
IGL,
Copyright
©
2011,
ESI
 Permet à l’information d’être traitée par plusieurs
composants d’une manière séquentielle
 La configuration détermine l’ordre des traitements
 Le filtre est un composant qui traite l’information
 La pipe est un canal par lequel transite l’information
SECTION 3 – STYLES
ARCHITECTURAUX
51
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Définition
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
52
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Définition
«application»
filtre1
«application»
filtre2
«application»
filtre3
pipe pipe
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
53
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Fonctionnement
SourceDeDonnées «application»
filtre1
pipe1 «application»
filtre2
lire()
traiter()
ecrire()
lire()
traiter()
Cours
IGL,
Copyright
©
2011,
ESI
 Unix Shell
 Windows Powershell
 Unix Shell : cat fichier.txt | grep logiciel | wc : compte le
nombre de mots logiciel dans le fichier fichier.txt
SECTION 3 – STYLES
ARCHITECTURAUX
54
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Exemples
Cours
IGL,
Copyright
©
2011,
ESI
 Forte décomposition du systèmes
 Filtres faciles à réutiliser
 Facilite la maintenance
 La dépendance entre les filtres est faible
SECTION 3 – STYLES
ARCHITECTURAUX
55
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Avantages
Cours
IGL,
Copyright
©
2011,
ESI
 Ne convient pas aux applications à haute interactivité
 Les performances dépendent des pipes
SECTION 3 – STYLES
ARCHITECTURAUX
56
Cours 6 – Introduction Aux
Architectures de Logiciels
Pipe / Filtre - Inconvénients
Cours
IGL,
Copyright
©
2011,
ESI
 MVC = Model View Controller
 Le modèle représente les entités du système
 Le contrôleur implémente la logique métier et la logique
des interactions
 La vue représente l’interface utilisateur
SECTION 3 – STYLES
ARCHITECTURAUX
57
Cours 6 – Introduction Aux
Architectures de Logiciels
MVC - Définition
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
58
Cours 6 – Introduction Aux
Architectures de Logiciels
MVC - Exemple
Modèle
Model::Page Model::Blog
Controleur
Controller::CMSHandler
Vue
HTML
Cours
IGL,
Copyright
©
2011,
ESI
 .NET : ASP.NET MVC, MonoRail
 Java : JavaServer Faces (JSF), Struts
 Ruby On Rails
 Python : Zope
SECTION 3 – STYLES
ARCHITECTURAUX
59
Cours 6 – Introduction Aux
Architectures de Logiciels
MVC - Exemples
Cours
IGL,
Copyright
©
2011,
ESI
 Modèle de conception largement apprécié de la
communauté de développeurs
 Séparation de la logique de l’interface
 Testabilité accrue (les tests unitaires supportent le
modèle et le contrôleur)
SECTION 3 – STYLES
ARCHITECTURAUX
60
Cours 6 – Introduction Aux
Architectures de Logiciels
MVC - Avantages
Cours
IGL,
Copyright
©
2011,
ESI
 Assez complexe
 Plus d’efforts de développement car chaque tâche
concerne les trois couches
SECTION 3 – STYLES
ARCHITECTURAUX
61
Cours 6 – Introduction Aux
Architectures de Logiciels
MVC - Inconvénients
Cours
IGL,
Copyright
©
2011,
ESI
 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 serveur
 Le serveur réagit au requêtes en renvoyant des réponses
 L’interface utilisateur se trouve au niveau du client
SECTION 3 – STYLES
ARCHITECTURAUX
62
Cours 6 – Introduction Aux
Architectures de Logiciels
Client-Serveur - Définition
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
63
Cours 6 – Introduction Aux
Architectures de Logiciels
Client-Serveur – Fonctionnement
«client»
client
«service»
serveur
requête réponse
Cours
IGL,
Copyright
©
2011,
ESI
 Serveur web (IIS / Apache), Client web (FireFox / Chrome
/ Internet Explorer)
 Serveur FTP (ftpd) / Client FTP (FileZilla)
SECTION 3 – STYLES
ARCHITECTURAUX
64
Cours 6 – Introduction Aux
Architectures de Logiciels
Client-Serveur - Exemples
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
65
Cours 6 – Introduction Aux
Architectures de Logiciels
Client-Serveur - Exemples
client FTP serveur FTP
demanderFichier()
trouverFichier()
:File
Cours
IGL,
Copyright
©
2011,
ESI
AVANTAGES
 Séparation des tâches
 Simple à utiliser
INCONVÉNIENTS
 Souvent insuffisant pour des cas complexes
SECTION 3 – STYLES
ARCHITECTURAUX
66
Cours 6 – Introduction Aux
Architectures de Logiciels
Client-Serveur – Avantages et inconvénients
Cours
IGL,
Copyright
©
2011,
ESI
 Fragmente le système en plusieurs niveaux
 Le niveau présentation, le niveau logique ou le niveau
données sont des exemples de niveaux
 Chaque niveau dépend uniquement du niveau qui est au
dessus
 Exemple : applications web modernes
SECTION 3 – STYLES
ARCHITECTURAUX
67
Cours 6 – Introduction Aux
Architectures de Logiciels
Architecture N-Tiers - Définition
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
68
Cours 6 – Introduction Aux
Architectures de Logiciels
Architecture N-Tiers - Exemple
«client»
client
«service»
serveur web
«service»
interpréteur
«database»
BDD
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
69
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
Cours
IGL,
Copyright
©
2011,
ESI
AVANTAGES
 Séparation poussée des tâches
 Haute flexibilité
INCONVÉNIENTS
 Nécessite des ressources matérielles importantes
SECTION 3 – STYLES
ARCHITECTURAUX
70
Cours 6 – Introduction Aux
Architectures de Logiciels
N-Tiers – Avantages et inconvénients
Cours
IGL,
Copyright
©
2011,
ESI
 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
SECTION 3 – STYLES
ARCHITECTURAUX
71
Cours 6 – Introduction Aux
Architectures de Logiciels
SOA - Définition
Cours
IGL,
Copyright
©
2011,
ESI
 Les service sont autonomes
 Les services sont composables : créer un service à partir
d’autres services
 Les services sont réutilisables
 Les services permettent leur découverte
SECTION 3 – STYLES
ARCHITECTURAUX
72
Cours 6 – Introduction Aux
Architectures de Logiciels
Caractéristiques des services
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 service
 Le fournisseur assure le service
 Le registre fait le lien entre le fournisseur et le
consommateur
SECTION 3 – STYLES
ARCHITECTURAUX
73
Cours 6 – Introduction Aux
Architectures de Logiciels
Composants de SOA
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 3 – STYLES
ARCHITECTURAUX
74
Cours 6 – Introduction Aux
Architectures de Logiciels
Composants de SOA
«client»
consommateur
«service»
registre
«client»
fournisseur
contrat
«use» «use»
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 web
 UDDI permet de découvrir un service web
 SOAP / WSDL / SOAP sont utilisées conjointement
 REST est un protocole basée sur HTTP uniquement
 Dans REST, HTTP est le protocole de transmission et
aussi le service web en même temps
SECTION 3 – STYLES
ARCHITECTURAUX
75
Cours 6 – Introduction Aux
Architectures de Logiciels
SOA – Technologies
Cours
IGL,
Copyright
©
2011,
ESI
 Indépendance et facilité de découverte
 Permettent à l’utilisation des applications depuis
n’importe quel équipement (PC, mobile, etc…)
SECTION 3 – STYLES
ARCHITECTURAUX
76
Cours 6 – Introduction Aux
Architectures de Logiciels
SOA – Avantages
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)
SECTION 3 – STYLES
ARCHITECTURAUX
77
Cours 6 – Introduction Aux
Architectures de Logiciels
SOA – Exemples
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
SECTION 3 – STYLES
ARCHITECTURAUX
78
Cours 6 – Introduction Aux
Architectures de Logiciels
Cloud Computing
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éé
SECTION 3 – STYLES
ARCHITECTURAUX
79
Cours 6 – Introduction Aux
Architectures de Logiciels
Cloud Computing
Cours
IGL,
Copyright
©
2011,
ESI
 Google AppEngine
 Amazon
 Windows Azure
SECTION 3 – STYLES
ARCHITECTURAUX
80
Cours 6 – Introduction Aux
Architectures de Logiciels
Cloud Computing - Infrastructures
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
SECTION 3 – STYLES
ARCHITECTURAUX
81
Cours 6 – Introduction Aux
Architectures de Logiciels
Cloud privé
Cours
IGL,
Copyright
©
2011,
ESI
 Office 365
 Google Documents
SECTION 3 – STYLES
ARCHITECTURAUX
82
Cours 6 – Introduction Aux
Architectures de Logiciels
SaaS basés sur le cloud
Cours
IGL,
Copyright
©
2011,
ESI
 Office 365
 Google Documents
SECTION 3 – STYLES
ARCHITECTURAUX
83
Cours 6 – Introduction Aux
Architectures de Logiciels
SaaS basés sur le cloud
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 charge
 Evolution instantanée des SaaS (pas de besoin de
redéploiement)
SECTION 3 – STYLES
ARCHITECTURAUX
84
Cours 6 – Introduction Aux
Architectures de Logiciels
Avantages
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
SECTION 3 – STYLES
ARCHITECTURAUX
85
Cours 6 – Introduction Aux
Architectures de Logiciels
Inconvénients
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
86
COURS IGL
Section 4 : Diagramme de
déploiement
Cours
IGL,
Copyright
©
2011,
ESI
 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)
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
87
Cours 6 – Introduction Aux
Architectures de Logiciels
Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 Le diagramme de déploiement est composé de nœuds et
de connecteurs
 Un nœud représente un équipement dans le système
 Un connecteur représente une communication entre les
noeuds
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
88
Cours 6 – Introduction Aux
Architectures de Logiciels
Introduction
Cours
IGL,
Copyright
©
2011,
ESI
 Dans UML 2, un nœud est illustré comme ceci :
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
89
Cours 6 – Introduction Aux
Architectures de Logiciels
Noeud
Noeud
Cours
IGL,
Copyright
©
2011,
ESI
 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é
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
90
Cours 6 – Introduction Aux
Architectures de Logiciels
Nœud
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
91
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
Cours
IGL,
Copyright
©
2011,
ESI
 Un composant réside physiquement dans un nœud
 L’artifact est la manifestation physique d’un composant
où tout autre élément physique (document, exécutable,
code source,…)
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
92
Cours 6 – Introduction Aux
Architectures de Logiciels
Nœuds, composants et artifacts
Cours
IGL,
Copyright
©
2011,
ESI
 Les composants Listener et Diagnostic sont hébergés
dans « Serveur »
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
93
Cours 6 – Introduction Aux
Architectures de Logiciels
Exemple 1
«device»
Serveur
Listener
Diagnostic
Cours
IGL,
Copyright
©
2011,
ESI
 Les composants Listener et Diagnostic sont hébergés
dans « Serveur ». Les artifastc représentent les
exécutables associés
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
94
Cours 6 – Introduction Aux
Architectures de Logiciels
Exemple 2
Cours
IGL,
Copyright
©
2011,
ESI
 Le lien de communication est une association entre les
nœuds modélisation la communication entre ces nœuds
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
95
Cours 6 – Introduction Aux
Architectures de Logiciels
Lien de communication
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
96
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
Cours
IGL,
Copyright
©
2011,
ESI
SECTION 4 –
DIAGRAMME DE
DÉPLOIEMENT
97
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
Cours IGL, Copyright © 2011, ESI
Cours N° 6
Introduction
aux
architectures
logicielles
98
COURS IGL
Section 4 : Diagramme de
déploiement, débat (05
mns)
Cours
IGL,
Copyright
©
2011,
ESI
 UML Component Diagrams, Veronica Carrega, 2004
 Introduction to Software Architecture”David Garlanand
Mary Shaw, January 1994
 Analyse, Conception Objet
 Diagrammes de déploiement, SIMMO/ENSM.SE, 2002
BIBLIOGRAPHIE
99
Cours 6 – Introduction aux
architectures de logiciels
Bibliographie

Contenu connexe

Similaire à A SIMPLIFIED APPROACH FOR QUALITY.pdf

Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptxPrinceLankoand
 
Partie3 cif et dcif
Partie3  cif et dcifPartie3  cif et dcif
Partie3 cif et dcifLilia Sfaxi
 
Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-cxerty
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeNarjes Weslati
 
uml ikram elcaid.pdf
uml ikram elcaid.pdfuml ikram elcaid.pdf
uml ikram elcaid.pdfikram679173
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiMadjid KETFI
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
cours_SOA_AO+FB_en_informatique_SOA_.pdf
cours_SOA_AO+FB_en_informatique_SOA_.pdfcours_SOA_AO+FB_en_informatique_SOA_.pdf
cours_SOA_AO+FB_en_informatique_SOA_.pdfwaliakeabraham
 
Cours chapitre3 2012
Cours chapitre3 2012Cours chapitre3 2012
Cours chapitre3 2012Yves Caseau
 
ppt sur Le langage de modélisation UML.pdf
ppt sur  Le langage de modélisation UML.pdfppt sur  Le langage de modélisation UML.pdf
ppt sur Le langage de modélisation UML.pdfimenhamada17
 
Présentation UML.ppt
Présentation UML.pptPrésentation UML.ppt
Présentation UML.pptNajiHita1
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxSouadZid
 
Diagramme de-composants152
Diagramme de-composants152Diagramme de-composants152
Diagramme de-composants152Sirafina Rosa
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLuc Desruelle
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLuc Desruelle
 

Similaire à A SIMPLIFIED APPROACH FOR QUALITY.pdf (20)

Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
Partie3 cif et dcif
Partie3  cif et dcifPartie3  cif et dcif
Partie3 cif et dcif
 
Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicative
 
uml ikram elcaid.pdf
uml ikram elcaid.pdfuml ikram elcaid.pdf
uml ikram elcaid.pdf
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGi
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Lecon 1.1
Lecon 1.1Lecon 1.1
Lecon 1.1
 
Cours spring
Cours springCours spring
Cours spring
 
cours_SOA_AO+FB_en_informatique_SOA_.pdf
cours_SOA_AO+FB_en_informatique_SOA_.pdfcours_SOA_AO+FB_en_informatique_SOA_.pdf
cours_SOA_AO+FB_en_informatique_SOA_.pdf
 
Cours chapitre3 2012
Cours chapitre3 2012Cours chapitre3 2012
Cours chapitre3 2012
 
Cy35558564
Cy35558564Cy35558564
Cy35558564
 
ppt sur Le langage de modélisation UML.pdf
ppt sur  Le langage de modélisation UML.pdfppt sur  Le langage de modélisation UML.pdf
ppt sur Le langage de modélisation UML.pdf
 
Présentation UML.ppt
Présentation UML.pptPrésentation UML.ppt
Présentation UML.ppt
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docx
 
Diagramme de-composants152
Diagramme de-composants152Diagramme de-composants152
Diagramme de-composants152
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applications
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et Applications
 
Mysql
MysqlMysql
Mysql
 

Dernier

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 

Dernier (15)

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 

A SIMPLIFIED APPROACH FOR QUALITY.pdf

  • 1. Cours 6 : Architectures de logiciels COURS IGL COURS 6 INTRODUCTION AUX ARCHITECTURES DE LOGICIELS 1 Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz
  • 2. Cours IGL, Copyright © 2011, ESI  Présenter la notion d’architecture logicielle  Donner un aperçu des principaux styles architecturaux  Découvrir le lien entre l’architecture et le déploiement physique à travers le diagramme de déploiement OBJECTIFS DU COURS 2 Cours 6 – Introduction Aux Architectures de Logiciels Objectifs du cours
  • 3. Cours IGL, Copyright © 2011, ESI Cours 6 Introduction aux architectures logicielles 3 INTRODUCTION AU GÉNIE LOGICIEL Section 1 : Introduction Section 2 : Diagramme de composants Section 2 : Styles architecturaux Section 5 : Diagramme de déploiement
  • 4. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 4 COURS IGL Section 1 : Introduction
  • 5. Cours IGL, Copyright © 2011, ESI  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 SECTION 1 - INTRODUCTION 5 Cours 6 – Introduction Aux Architectures de Logiciels Définition
  • 6. Cours IGL, Copyright © 2011, ESI  L’architecture d’un système est sa conception de haut niveau  N’importe quel système complexe est composé de sous- 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 SECTION 1 - INTRODUCTION 6 Cours 6 – Introduction Aux Architectures de Logiciels Introduction
  • 7. Cours IGL, Copyright © 2011, ESI  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. SECTION 1 - INTRODUCTION 7 Cours 6 – Introduction Aux Architectures de Logiciels Introduction
  • 8. Cours IGL, Copyright © 2011, ESI  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 SECTION 1 - INTRODUCTION 8 Cours 6 – Introduction Aux Architectures de Logiciels Représentation des architectures
  • 9. Cours IGL, Copyright © 2011, ESI  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. SECTION 1 - INTRODUCTION 9 Cours 6 – Introduction Aux Architectures de Logiciels Composants
  • 10. Cours IGL, Copyright © 2011, ESI  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 SECTION 1 - INTRODUCTION 10 Cours 6 – Introduction Aux Architectures de Logiciels Serveurs et clients
  • 11. Cours IGL, Copyright © 2011, ESI  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 SECTION 1 - INTRODUCTION 11 Cours 6 – Introduction Aux Architectures de Logiciels Application
  • 12. Cours IGL, Copyright © 2011, ESI  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é SECTION 1 - INTRODUCTION 12 Cours 6 – Introduction Aux Architectures de Logiciels Base de données
  • 13. Cours IGL, Copyright © 2011, ESI SECTION 1 - INTRODUCTION 13 Cours 6 – Introduction Aux Architectures de Logiciels Vue C&C Client Serveur Base de données Application
  • 14. Cours IGL, Copyright © 2011, ESI  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) SECTION 1 - INTRODUCTION 14 Cours 6 – Introduction Aux Architectures de Logiciels Connecteurs
  • 15. Cours IGL, Copyright © 2011, ESI SECTION 1 - INTRODUCTION 15 Cours 6 – Introduction Aux Architectures de Logiciels Exemple – Site JSP Navigateur Serveur web SGBD MySQL JDBC
  • 16. Cours IGL, Copyright © 2011, ESI  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. SECTION 1 - INTRODUCTION 16 Cours 6 – Introduction Aux Architectures de Logiciels Vue Physique et Vue Logique
  • 17. Cours IGL, Copyright © 2011, ESI Serveur 1  Exemple 1 : services déployés dans le même serveur SECTION 1 - INTRODUCTION 17 Cours 6 – Introduction Aux Architectures de Logiciels Vue Physique et Vue Logique Navigateur Serveur web SGBD MySQL JDBC
  • 18. Cours IGL, Copyright © 2011, ESI Serveur 2 Serveur 1  Exemple 2 : services déployés dans des serveurs différents SECTION 1 - INTRODUCTION 18 Cours 6 – Introduction Aux Architectures de Logiciels Vue Physique et Vue Logique Navigateur Serveur web SGBD MySQL JDBC
  • 19. Cours IGL, Copyright © 2011, ESI  Donne un aperçu de haut niveau du système qui va faciliter la communication et la compréhension  Aide à comprendre des systèmes existants  Dé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é SECTION 1 - INTRODUCTION 19 Cours 6 – Introduction Aux Architectures de Logiciels Utilisation de l’architecture
  • 20. Cours IGL, Copyright © 2011, ESI  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 SECTION 1 - INTRODUCTION 20 Cours 6 – Introduction Aux Architectures de Logiciels UML et les architectures logicielles
  • 21. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 21 COURS IGL Section 1 : Introduction, débat (05 mns)
  • 22. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 22 COURS IGL Section 2 : Diagramme de composants
  • 23. Cours IGL, Copyright © 2011, ESI  Un composant est une unité autonome dans un système  Un 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 interactions  Les composants d’un système sont facilement réutilisés ou remplacés SECTION 2 – DIAGRAMME DE COMPOSANTS 23 Cours 6 – Introduction Aux Architectures de Logiciels Composant
  • 24. Cours IGL, Copyright © 2011, ESI  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 autonome  L’implémentation du composant est cachée (encapsulée) aux entités externes SECTION 2 – DIAGRAMME DE COMPOSANTS 24 Cours 6 – Introduction Aux Architectures de Logiciels Caractéristiques d’un composant
  • 25. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 25 Cours 6 – Introduction Aux Architectures de Logiciels Représentation UML Composant
  • 26. Cours IGL, Copyright © 2011, ESI  Un composant a un nom unique dans son contexte  Un composant peut être étendu par un stéréotype  Il 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. SECTION 2 – DIAGRAMME DE COMPOSANTS 26 Cours 6 – Introduction Aux Architectures de Logiciels Caractéristiques d’un composant
  • 27. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 27 Cours 6 – Introduction Aux Architectures de Logiciels Exemples de stéréotypes «service» Composant1 «client» Composant2 «database» Composant3 «subsystem» Composant4
  • 28. Cours IGL, Copyright © 2011, ESI  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 SECTION 2 – DIAGRAMME DE COMPOSANTS 28 Cours 6 – Introduction Aux Architectures de Logiciels Interfaces
  • 29. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 29 Cours 6 – Introduction Aux Architectures de Logiciels Interfaces - Exemple «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void
  • 30. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 30 Cours 6 – Introduction Aux Architectures de Logiciels Interfaces - Exemple «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void Nom de l’interface Opérations
  • 31. Cours IGL, Copyright © 2011, ESI  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 SECTION 2 – DIAGRAMME DE COMPOSANTS 31 Cours 6 – Introduction Aux Architectures de Logiciels Interfaces fournie ServeurWeb IGet IPost
  • 32. Cours IGL, Copyright © 2011, ESI  Définit la (ou les interfaces) qu’un composant attend de son environnement SECTION 2 – DIAGRAMME DE COMPOSANTS 32 Cours 6 – Introduction Aux Architectures de Logiciels Interfaces requise Navigateur IGet IPost
  • 33. Cours IGL, Copyright © 2011, ESI  Un assemblage entre deux composants est lorsqu’une même interface est requise pour un composant et fournie par l’autre SECTION 2 – DIAGRAMME DE COMPOSANTS 33 Cours 6 – Introduction Aux Architectures de Logiciels Assemblage «client» Navigateur «service» ServeurWeb get
  • 34. Cours IGL, Copyright © 2011, ESI  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 SECTION 2 – DIAGRAMME DE COMPOSANTS 34 Cours 6 – Introduction Aux Architectures de Logiciels Utilisation Component1 Component2 «use»
  • 35. Cours IGL, Copyright © 2011, ESI  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) SECTION 2 – DIAGRAMME DE COMPOSANTS 35 Cours 6 – Introduction Aux Architectures de Logiciels Composition
  • 36. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 36 Cours 6 – Introduction Aux Architectures de Logiciels Composition «client» Navigateur getManager postManager «UI» GUI «use» «use»
  • 37. Cours IGL, Copyright © 2011, ESI  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 SECTION 2 – DIAGRAMME DE COMPOSANTS 37 Cours 6 – Introduction Aux Architectures de Logiciels Délégation
  • 38. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 38 Cours 6 – Introduction Aux Architectures de Logiciels Délégation «client» Navigateur IGet IPost getManager IGet postManager IPost «delegate» «delegate»
  • 39. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 39 Cours 6 – Introduction Aux Architectures de Logiciels Délégation – Exemple 2 «client» Navigateur IGet IPost getManager IGet postManager IPost «service» Serveur IGet IPost serverGetManager IGet serverPostManager IPost «delegate» «delegate» «delegate» «delegate»
  • 40. Cours IGL, Copyright © 2011, ESI  Les paquets peuvent être aussi utilisés dans les diagrammes de composants pour organiser les composants SECTION 2 – DIAGRAMME DE COMPOSANTS 40 Cours 6 – Introduction Aux Architectures de Logiciels Paquets
  • 41. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 41 Cours 6 – Introduction Aux Architectures de Logiciels Paquets «database» BDD DataAccess EmployeeAccess SalaryAccess Presentation EmployeeView SalaryView «use» «use» «use» «use»
  • 42. Cours IGL, Copyright © 2011, ESI  Les classes sont « packagées » dans des bibliothèques  Par 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ème  Le connecteur liant les classes aux composants est le connecteur « realize » SECTION 2 – DIAGRAMME DE COMPOSANTS 42 Cours 6 – Introduction Aux Architectures de Logiciels Composants et classes
  • 43. Cours IGL, Copyright © 2011, ESI  Un artifact est une pièce physique utilisée par le système  Un 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 SECTION 2 – DIAGRAMME DE COMPOSANTS 43 Cours 6 – Introduction Aux Architectures de Logiciels Artifacts
  • 44. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 44 Cours 6 – Introduction Aux Architectures de Logiciels Artifacts
  • 45. Cours IGL, Copyright © 2011, ESI SECTION 2 – DIAGRAMME DE COMPOSANTS 45 Cours 6 – Introduction Aux Architectures de Logiciels Composants et classes
  • 46. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 46 COURS IGL Section 2 : Diagramme de composants, débat (05 mns)
  • 47. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 47 COURS IGL Section 3 : Styles architecturaux
  • 48. Cours IGL, Copyright © 2011, ESI  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 SECTION 3 – STYLES ARCHITECTURAUX 48 Cours 6 – Introduction Aux Architectures de Logiciels Introduction
  • 49. Cours IGL, Copyright © 2011, ESI  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éutilisation  Un système peut s’appuyer sur plusieurs styles SECTION 3 – STYLES ARCHITECTURAUX 49 Cours 6 – Introduction Aux Architectures de Logiciels Bénéfices d’un style architectural
  • 50. Cours IGL, Copyright © 2011, ESI  Il existe plusieurs standards  Les styles standards les plus connus sont « pipe / filtre », « client/serveur », « 3 tiers / N-tiers », « architecture multi-couches », « MVC », « cloud computing » SECTION 3 – STYLES ARCHITECTURAUX 50 Cours 6 – Introduction Aux Architectures de Logiciels Styles standards
  • 51. Cours IGL, Copyright © 2011, ESI  Permet à l’information d’être traitée par plusieurs composants d’une manière séquentielle  La configuration détermine l’ordre des traitements  Le filtre est un composant qui traite l’information  La pipe est un canal par lequel transite l’information SECTION 3 – STYLES ARCHITECTURAUX 51 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Définition
  • 52. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 52 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Définition «application» filtre1 «application» filtre2 «application» filtre3 pipe pipe
  • 53. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 53 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Fonctionnement SourceDeDonnées «application» filtre1 pipe1 «application» filtre2 lire() traiter() ecrire() lire() traiter()
  • 54. Cours IGL, Copyright © 2011, ESI  Unix Shell  Windows Powershell  Unix Shell : cat fichier.txt | grep logiciel | wc : compte le nombre de mots logiciel dans le fichier fichier.txt SECTION 3 – STYLES ARCHITECTURAUX 54 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Exemples
  • 55. Cours IGL, Copyright © 2011, ESI  Forte décomposition du systèmes  Filtres faciles à réutiliser  Facilite la maintenance  La dépendance entre les filtres est faible SECTION 3 – STYLES ARCHITECTURAUX 55 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Avantages
  • 56. Cours IGL, Copyright © 2011, ESI  Ne convient pas aux applications à haute interactivité  Les performances dépendent des pipes SECTION 3 – STYLES ARCHITECTURAUX 56 Cours 6 – Introduction Aux Architectures de Logiciels Pipe / Filtre - Inconvénients
  • 57. Cours IGL, Copyright © 2011, ESI  MVC = Model View Controller  Le modèle représente les entités du système  Le contrôleur implémente la logique métier et la logique des interactions  La vue représente l’interface utilisateur SECTION 3 – STYLES ARCHITECTURAUX 57 Cours 6 – Introduction Aux Architectures de Logiciels MVC - Définition
  • 58. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 58 Cours 6 – Introduction Aux Architectures de Logiciels MVC - Exemple Modèle Model::Page Model::Blog Controleur Controller::CMSHandler Vue HTML
  • 59. Cours IGL, Copyright © 2011, ESI  .NET : ASP.NET MVC, MonoRail  Java : JavaServer Faces (JSF), Struts  Ruby On Rails  Python : Zope SECTION 3 – STYLES ARCHITECTURAUX 59 Cours 6 – Introduction Aux Architectures de Logiciels MVC - Exemples
  • 60. Cours IGL, Copyright © 2011, ESI  Modèle de conception largement apprécié de la communauté de développeurs  Séparation de la logique de l’interface  Testabilité accrue (les tests unitaires supportent le modèle et le contrôleur) SECTION 3 – STYLES ARCHITECTURAUX 60 Cours 6 – Introduction Aux Architectures de Logiciels MVC - Avantages
  • 61. Cours IGL, Copyright © 2011, ESI  Assez complexe  Plus d’efforts de développement car chaque tâche concerne les trois couches SECTION 3 – STYLES ARCHITECTURAUX 61 Cours 6 – Introduction Aux Architectures de Logiciels MVC - Inconvénients
  • 62. Cours IGL, Copyright © 2011, ESI  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 serveur  Le serveur réagit au requêtes en renvoyant des réponses  L’interface utilisateur se trouve au niveau du client SECTION 3 – STYLES ARCHITECTURAUX 62 Cours 6 – Introduction Aux Architectures de Logiciels Client-Serveur - Définition
  • 63. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 63 Cours 6 – Introduction Aux Architectures de Logiciels Client-Serveur – Fonctionnement «client» client «service» serveur requête réponse
  • 64. Cours IGL, Copyright © 2011, ESI  Serveur web (IIS / Apache), Client web (FireFox / Chrome / Internet Explorer)  Serveur FTP (ftpd) / Client FTP (FileZilla) SECTION 3 – STYLES ARCHITECTURAUX 64 Cours 6 – Introduction Aux Architectures de Logiciels Client-Serveur - Exemples
  • 65. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 65 Cours 6 – Introduction Aux Architectures de Logiciels Client-Serveur - Exemples client FTP serveur FTP demanderFichier() trouverFichier() :File
  • 66. Cours IGL, Copyright © 2011, ESI AVANTAGES  Séparation des tâches  Simple à utiliser INCONVÉNIENTS  Souvent insuffisant pour des cas complexes SECTION 3 – STYLES ARCHITECTURAUX 66 Cours 6 – Introduction Aux Architectures de Logiciels Client-Serveur – Avantages et inconvénients
  • 67. Cours IGL, Copyright © 2011, ESI  Fragmente le système en plusieurs niveaux  Le niveau présentation, le niveau logique ou le niveau données sont des exemples de niveaux  Chaque niveau dépend uniquement du niveau qui est au dessus  Exemple : applications web modernes SECTION 3 – STYLES ARCHITECTURAUX 67 Cours 6 – Introduction Aux Architectures de Logiciels Architecture N-Tiers - Définition
  • 68. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 68 Cours 6 – Introduction Aux Architectures de Logiciels Architecture N-Tiers - Exemple «client» client «service» serveur web «service» interpréteur «database» BDD
  • 69. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 69 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
  • 70. Cours IGL, Copyright © 2011, ESI AVANTAGES  Séparation poussée des tâches  Haute flexibilité INCONVÉNIENTS  Nécessite des ressources matérielles importantes SECTION 3 – STYLES ARCHITECTURAUX 70 Cours 6 – Introduction Aux Architectures de Logiciels N-Tiers – Avantages et inconvénients
  • 71. Cours IGL, Copyright © 2011, ESI  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 SECTION 3 – STYLES ARCHITECTURAUX 71 Cours 6 – Introduction Aux Architectures de Logiciels SOA - Définition
  • 72. Cours IGL, Copyright © 2011, ESI  Les service sont autonomes  Les services sont composables : créer un service à partir d’autres services  Les services sont réutilisables  Les services permettent leur découverte SECTION 3 – STYLES ARCHITECTURAUX 72 Cours 6 – Introduction Aux Architectures de Logiciels Caractéristiques des services
  • 73. 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 service  Le fournisseur assure le service  Le registre fait le lien entre le fournisseur et le consommateur SECTION 3 – STYLES ARCHITECTURAUX 73 Cours 6 – Introduction Aux Architectures de Logiciels Composants de SOA
  • 74. Cours IGL, Copyright © 2011, ESI SECTION 3 – STYLES ARCHITECTURAUX 74 Cours 6 – Introduction Aux Architectures de Logiciels Composants de SOA «client» consommateur «service» registre «client» fournisseur contrat «use» «use»
  • 75. 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 web  UDDI permet de découvrir un service web  SOAP / WSDL / SOAP sont utilisées conjointement  REST est un protocole basée sur HTTP uniquement  Dans REST, HTTP est le protocole de transmission et aussi le service web en même temps SECTION 3 – STYLES ARCHITECTURAUX 75 Cours 6 – Introduction Aux Architectures de Logiciels SOA – Technologies
  • 76. Cours IGL, Copyright © 2011, ESI  Indépendance et facilité de découverte  Permettent à l’utilisation des applications depuis n’importe quel équipement (PC, mobile, etc…) SECTION 3 – STYLES ARCHITECTURAUX 76 Cours 6 – Introduction Aux Architectures de Logiciels SOA – Avantages
  • 77. 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) SECTION 3 – STYLES ARCHITECTURAUX 77 Cours 6 – Introduction Aux Architectures de Logiciels SOA – Exemples
  • 78. 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 SECTION 3 – STYLES ARCHITECTURAUX 78 Cours 6 – Introduction Aux Architectures de Logiciels Cloud Computing
  • 79. 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éé SECTION 3 – STYLES ARCHITECTURAUX 79 Cours 6 – Introduction Aux Architectures de Logiciels Cloud Computing
  • 80. Cours IGL, Copyright © 2011, ESI  Google AppEngine  Amazon  Windows Azure SECTION 3 – STYLES ARCHITECTURAUX 80 Cours 6 – Introduction Aux Architectures de Logiciels Cloud Computing - Infrastructures
  • 81. 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 SECTION 3 – STYLES ARCHITECTURAUX 81 Cours 6 – Introduction Aux Architectures de Logiciels Cloud privé
  • 82. Cours IGL, Copyright © 2011, ESI  Office 365  Google Documents SECTION 3 – STYLES ARCHITECTURAUX 82 Cours 6 – Introduction Aux Architectures de Logiciels SaaS basés sur le cloud
  • 83. Cours IGL, Copyright © 2011, ESI  Office 365  Google Documents SECTION 3 – STYLES ARCHITECTURAUX 83 Cours 6 – Introduction Aux Architectures de Logiciels SaaS basés sur le cloud
  • 84. 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 charge  Evolution instantanée des SaaS (pas de besoin de redéploiement) SECTION 3 – STYLES ARCHITECTURAUX 84 Cours 6 – Introduction Aux Architectures de Logiciels Avantages
  • 85. 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 SECTION 3 – STYLES ARCHITECTURAUX 85 Cours 6 – Introduction Aux Architectures de Logiciels Inconvénients
  • 86. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 86 COURS IGL Section 4 : Diagramme de déploiement
  • 87. Cours IGL, Copyright © 2011, ESI  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) SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 87 Cours 6 – Introduction Aux Architectures de Logiciels Introduction
  • 88. Cours IGL, Copyright © 2011, ESI  Le diagramme de déploiement est composé de nœuds et de connecteurs  Un nœud représente un équipement dans le système  Un connecteur représente une communication entre les noeuds SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 88 Cours 6 – Introduction Aux Architectures de Logiciels Introduction
  • 89. Cours IGL, Copyright © 2011, ESI  Dans UML 2, un nœud est illustré comme ceci : SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 89 Cours 6 – Introduction Aux Architectures de Logiciels Noeud Noeud
  • 90. Cours IGL, Copyright © 2011, ESI  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é SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 90 Cours 6 – Introduction Aux Architectures de Logiciels Nœud
  • 91. Cours IGL, Copyright © 2011, ESI SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 91 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
  • 92. Cours IGL, Copyright © 2011, ESI  Un composant réside physiquement dans un nœud  L’artifact est la manifestation physique d’un composant où tout autre élément physique (document, exécutable, code source,…) SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 92 Cours 6 – Introduction Aux Architectures de Logiciels Nœuds, composants et artifacts
  • 93. Cours IGL, Copyright © 2011, ESI  Les composants Listener et Diagnostic sont hébergés dans « Serveur » SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 93 Cours 6 – Introduction Aux Architectures de Logiciels Exemple 1 «device» Serveur Listener Diagnostic
  • 94. Cours IGL, Copyright © 2011, ESI  Les composants Listener et Diagnostic sont hébergés dans « Serveur ». Les artifastc représentent les exécutables associés SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 94 Cours 6 – Introduction Aux Architectures de Logiciels Exemple 2
  • 95. Cours IGL, Copyright © 2011, ESI  Le lien de communication est une association entre les nœuds modélisation la communication entre ces nœuds SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 95 Cours 6 – Introduction Aux Architectures de Logiciels Lien de communication
  • 96. Cours IGL, Copyright © 2011, ESI SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 96 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
  • 97. Cours IGL, Copyright © 2011, ESI SECTION 4 – DIAGRAMME DE DÉPLOIEMENT 97 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
  • 98. Cours IGL, Copyright © 2011, ESI Cours N° 6 Introduction aux architectures logicielles 98 COURS IGL Section 4 : Diagramme de déploiement, débat (05 mns)
  • 99. Cours IGL, Copyright © 2011, ESI  UML Component Diagrams, Veronica Carrega, 2004  Introduction to Software Architecture”David Garlanand Mary Shaw, January 1994  Analyse, Conception Objet  Diagrammes de déploiement, SIMMO/ENSM.SE, 2002 BIBLIOGRAPHIE 99 Cours 6 – Introduction aux architectures de logiciels Bibliographie